diff options
author | JinweiClarkChao <[email protected]> | 2014-02-20 12:50:15 +0800 |
---|---|---|
committer | JinweiClarkChao <[email protected]> | 2014-02-20 12:52:51 +0800 |
commit | 31fb10f393fbfd4d7adf528ec70624d2b8d247a8 (patch) | |
tree | 1009bb2a4f5fe89b8bc822b68104018ea8df5261 /Blocks | |
parent | be404e3e01ca839e730c884309c25abef10863c9 (diff) | |
download | jinwei.me-31fb10f393fbfd4d7adf528ec70624d2b8d247a8.tar.gz |
Six Blocks Version
Diffstat (limited to 'Blocks')
209 files changed, 21450 insertions, 0 deletions
diff --git a/Blocks/72906-106.jpg b/Blocks/72906-106.jpg new file mode 100644 index 0000000..ea44056 --- /dev/null +++ b/Blocks/72906-106.jpg | |||
Binary files differ | |||
diff --git a/Blocks/Flipboard/css/demo.css b/Blocks/Flipboard/css/demo.css new file mode 100644 index 0000000..2bf1e5b --- /dev/null +++ b/Blocks/Flipboard/css/demo.css | |||
@@ -0,0 +1,49 @@ | |||
1 | /* @import url('normalize.css'); */ | ||
2 | /* General Demo Style */ | ||
3 | *{ | ||
4 | -webkit-box-sizing: border-box; | ||
5 | -moz-box-sizing: border-box; | ||
6 | box-sizing: border-box; | ||
7 | } | ||
8 | body{ | ||
9 | font-family: 'Open Sans Condensed','Arial Narrow', serif; | ||
10 | background: #ddd url(../images/fabric_plaid.png) repeat top left; | ||
11 | font-weight: 400; | ||
12 | font-size: 15px; | ||
13 | color: #333; | ||
14 | -webkit-font-smoothing: antialiased; | ||
15 | -moz-font-smoothing: antialiased; | ||
16 | font-smoothing: antialiased; | ||
17 | margin: 0; | ||
18 | overflow: hidden; | ||
19 | } | ||
20 | a{ | ||
21 | color: #555; | ||
22 | text-decoration: none; | ||
23 | } | ||
24 | .clr{ | ||
25 | clear: both; | ||
26 | padding: 0; | ||
27 | height: 0; | ||
28 | margin: 0; | ||
29 | } | ||
30 | .main-title{ | ||
31 | position: absolute; | ||
32 | z-index: -1; | ||
33 | width: 50%; | ||
34 | padding: 20px 40px; | ||
35 | text-shadow: 1px 1px 1px rgba(255, 255, 255, 0.7); | ||
36 | } | ||
37 | .main-title h1{ | ||
38 | font-size: 45px; | ||
39 | line-height: 52px; | ||
40 | font-weight: 300; | ||
41 | color: #777; | ||
42 | } | ||
43 | .main-title h1 strong{ | ||
44 | font-weight: 700; | ||
45 | } | ||
46 | .main-title p{ | ||
47 | font-size: 18px; | ||
48 | color: #F86738; | ||
49 | } \ No newline at end of file | ||
diff --git a/Blocks/Flipboard/css/fallback.css b/Blocks/Flipboard/css/fallback.css new file mode 100644 index 0000000..6ceae5a --- /dev/null +++ b/Blocks/Flipboard/css/fallback.css | |||
@@ -0,0 +1,41 @@ | |||
1 | .no-csstransforms3d body{ | ||
2 | overflow: auto; | ||
3 | } | ||
4 | .no-csstransforms3d .f-page.f-cover, | ||
5 | .no-csstransforms3d .f-page.f-cover-back{ | ||
6 | display: none !important; | ||
7 | } | ||
8 | .no-csstransforms3d .f-title{ | ||
9 | position: relative; | ||
10 | } | ||
11 | .no-csstransforms3d .main-title{ | ||
12 | position: relative; | ||
13 | width: 100%; | ||
14 | } | ||
15 | .no-csstransforms3d .box{ | ||
16 | width: auto; | ||
17 | float: none; | ||
18 | height: auto; | ||
19 | margin: 20px; | ||
20 | box-shadow: 1px 1px 3px rgba(0,0,0,0.2); | ||
21 | cursor: auto; | ||
22 | } | ||
23 | .no-csstransforms3d .box:after, | ||
24 | .no-csstransforms3d .box-img-left:after, | ||
25 | .no-csstransforms3d .box-img-right:after{ | ||
26 | display: none; | ||
27 | } | ||
28 | .no-csstransforms3d .box .img-cont, | ||
29 | .no-csstransforms3d .box-img-left .img-cont, | ||
30 | .no-csstransforms3d .box-img-right .img-cont{ | ||
31 | width: 300px; | ||
32 | height: 200px; | ||
33 | float: left; | ||
34 | margin: 10px 20px 20px 0; | ||
35 | } | ||
36 | .no-csstransforms3d .box-img-left p{ | ||
37 | margin-left: 0px | ||
38 | } | ||
39 | .no-csstransforms3d .box-img-right p{ | ||
40 | margin-right: 0px | ||
41 | } \ No newline at end of file | ||
diff --git a/Blocks/Flipboard/css/style.css b/Blocks/Flipboard/css/style.css new file mode 100644 index 0000000..577dc52 --- /dev/null +++ b/Blocks/Flipboard/css/style.css | |||
@@ -0,0 +1,465 @@ | |||
1 | .container { | ||
2 | position: relative; | ||
3 | margin: 0 auto; | ||
4 | -webkit-perspective: 2200px; | ||
5 | -moz-perspective: 2200px; | ||
6 | perspective: 2200px; | ||
7 | } | ||
8 | .page { | ||
9 | width: 50%; | ||
10 | height: 100%; | ||
11 | position: absolute; | ||
12 | -webkit-transform-style: preserve-3d; | ||
13 | -moz-transform-style: preserve-3d; | ||
14 | -webkit-transform-origin: left center; | ||
15 | -moz-transform-origin: left center; | ||
16 | -webkit-touch-callout: none; | ||
17 | -webkit-user-select: none; | ||
18 | -khtml-user-select: none; | ||
19 | -moz-user-select: none; | ||
20 | -ms-user-select: none; | ||
21 | user-select: none; | ||
22 | } | ||
23 | .page > div { | ||
24 | display: block; | ||
25 | height: 100%; | ||
26 | width: 100%; | ||
27 | position: absolute; | ||
28 | background: #fff; | ||
29 | -webkit-transform-style: preserve-3d; | ||
30 | -moz-transform-style: preserve-3d; | ||
31 | -webkit-backface-visibility: hidden; | ||
32 | -moz-backface-visibility: hidden; | ||
33 | } | ||
34 | .page .back { | ||
35 | -webkit-transform: rotateY(-180deg); | ||
36 | -moz-transform: rotateY(-180deg); | ||
37 | } | ||
38 | .page .outer{ | ||
39 | width: 100%; | ||
40 | height: 100%; | ||
41 | position: absolute; | ||
42 | top: 0px; | ||
43 | left: 0px; | ||
44 | overflow: hidden; | ||
45 | z-index: 999; | ||
46 | } | ||
47 | .page .content{ | ||
48 | height: 100%; | ||
49 | position: absolute; | ||
50 | top: 0px; | ||
51 | left: 0px; | ||
52 | } | ||
53 | .overlay, .flipoverlay{ | ||
54 | background-color: rgba(0, 0, 0, 0.6); | ||
55 | position: absolute; | ||
56 | top: 0px; | ||
57 | left: 0px; | ||
58 | width: 100%; | ||
59 | height: 100%; | ||
60 | opacity: 0; | ||
61 | } | ||
62 | .flipoverlay{ | ||
63 | background-color: rgba(0, 0, 0, 0.2); | ||
64 | } | ||
65 | .page .content .inner{ | ||
66 | padding: 50px 15px 10px; | ||
67 | height: 100%; | ||
68 | } | ||
69 | .page h1{ | ||
70 | text-align: center; | ||
71 | } | ||
72 | .page.cover .front .content, | ||
73 | .page.cover-back .back .content{ | ||
74 | width: 100% !important; | ||
75 | } | ||
76 | .page.cover .front .content:after, | ||
77 | .page.cover-back .back .content:after{ | ||
78 | position: absolute; | ||
79 | top: 0px; | ||
80 | left: 0px; | ||
81 | width: 10px; | ||
82 | height: 100%; | ||
83 | content: ''; | ||
84 | background: -webkit-linear-gradient(left, rgba(0,0,0,0.25) 0%,rgba(0,0,0,0.01) 16%,rgba(0,0,0,0) 17%,rgba(0,0,0,0) 44%,rgba(0,0,0,0.08) 60%,rgba(0,0,0,0.09) 61%,rgba(0,0,0,0.35) 100%); | ||
85 | opacity: 0.2; | ||
86 | } | ||
87 | .page.cover-back .back .content:after{ | ||
88 | left: auto; | ||
89 | right: 0px; | ||
90 | background:-webkit-linear-gradient(left, rgba(0,0,0,0.53) 0%,rgba(0,0,0,0.1) 10%,rgba(0,0,0,1) 100%); | ||
91 | } | ||
92 | .page.cover .front .content .inner{ | ||
93 | padding-top: 20px; | ||
94 | } | ||
95 | .page.cover .front .content{ | ||
96 | background: #ddd url(../images/cover1.jpg) no-repeat center center; | ||
97 | background-size: cover; | ||
98 | } | ||
99 | .page.cover-back .back .content{ | ||
100 | background: #B0D5FF; | ||
101 | } | ||
102 | .page.cover h1{ | ||
103 | color: rgba(255,255,255,0.9); | ||
104 | text-align: right; | ||
105 | font-weight: 300; | ||
106 | font-size: 34px; | ||
107 | text-transform: uppercase; | ||
108 | margin: 0 0 0 60%; | ||
109 | line-height: 34px; | ||
110 | padding-bottom: 10px; | ||
111 | cursor: default; | ||
112 | } | ||
113 | .page.cover h1 span{ | ||
114 | display: block; | ||
115 | font-weight: 300; | ||
116 | font-size: 15px; | ||
117 | } | ||
118 | .page.cover .f-cover-story{ | ||
119 | color: rgba(255,255,255,0.9); | ||
120 | font-weight: 600; | ||
121 | font-size: 50px; | ||
122 | line-height: 46px; | ||
123 | position: absolute; | ||
124 | bottom: 60px; | ||
125 | left: 40px; | ||
126 | margin: 0; | ||
127 | text-transform: uppercase; | ||
128 | cursor: default; | ||
129 | } | ||
130 | a.f-ref{ | ||
131 | line-height: 20px; | ||
132 | font-size: 16px; | ||
133 | position: absolute; | ||
134 | top: 252px; | ||
135 | font-weight: 300; | ||
136 | text-indent: 1px; | ||
137 | } | ||
138 | .page.cover .f-cover-story span{ | ||
139 | display: block; | ||
140 | font-size: 26px; | ||
141 | line-height: 26px; | ||
142 | } | ||
143 | .page a, | ||
144 | .page.cover .f-cover-story span{ | ||
145 | color: #F86738; | ||
146 | } | ||
147 | .page a:hover{ | ||
148 | color: #000; | ||
149 | } | ||
150 | .f-cover-flip{ | ||
151 | background: #000; | ||
152 | color: #ddd; | ||
153 | position: absolute; | ||
154 | right: 0px; | ||
155 | padding: 5px 30px 5px 20px; | ||
156 | font-size: 30px; | ||
157 | text-transform: uppercase; | ||
158 | font-weight: 500; | ||
159 | top: 50%; | ||
160 | margin-top: -25px; | ||
161 | cursor: default; | ||
162 | } | ||
163 | .logo{ | ||
164 | width: 180px; | ||
165 | height: 180px; | ||
166 | position: absolute; | ||
167 | top: 20px; | ||
168 | left: 30px; | ||
169 | line-height: 428px; | ||
170 | color: white; | ||
171 | font-size: 59px; | ||
172 | font-weight: bold; | ||
173 | text-indent: -3px; | ||
174 | cursor: default; | ||
175 | } | ||
176 | .logo:before{ | ||
177 | position: absolute; | ||
178 | width: 49%; | ||
179 | height: 50%; | ||
180 | content: ''; | ||
181 | top: 0px; | ||
182 | left: 0px; | ||
183 | background: rgba(255,255,255,0.4); | ||
184 | box-shadow: 0 95px 0px rgba(255,255,255,0.6); | ||
185 | } | ||
186 | .logo:after{ | ||
187 | position: absolute; | ||
188 | width: 49%; | ||
189 | height: 50%; | ||
190 | content: ''; | ||
191 | top: 0px; | ||
192 | right: 0px; | ||
193 | background: rgba(255,255,255,0.6); | ||
194 | box-shadow: 0 95px 0px rgba(255,255,255,0.4); | ||
195 | } | ||
196 | .f-title{ | ||
197 | position: absolute; | ||
198 | top: 0px; | ||
199 | left: 0px; | ||
200 | height: 50px; | ||
201 | text-align:center; | ||
202 | width: 100%; | ||
203 | } | ||
204 | .f-title h2{ | ||
205 | line-height: 50px; | ||
206 | margin: 0; | ||
207 | font-weight: 300; | ||
208 | font-size: 28px; | ||
209 | color: #aaa; | ||
210 | float: left; | ||
211 | width: 33%; | ||
212 | } | ||
213 | .f-title a{ | ||
214 | width: 33%; | ||
215 | float: left; | ||
216 | text-align: right; | ||
217 | overflow: hidden; | ||
218 | height: 50px; | ||
219 | font-size: 12px; | ||
220 | line-height: 50px; | ||
221 | padding: 0px 15px; | ||
222 | color: #777; | ||
223 | font-style: italic; | ||
224 | font-family: "Calisto MT", "Bookman Old Style", Bookman, "Goudy Old Style", Garamond, "Hoefler Text", "Bitstream Charter", Georgia, serif; | ||
225 | } | ||
226 | .f-title a:first-child{ | ||
227 | text-align: left; | ||
228 | } | ||
229 | .f-title a:hover{ | ||
230 | color: #000; | ||
231 | } | ||
232 | .box{ | ||
233 | border-top: 1px solid #f2f2f2; | ||
234 | float: left; | ||
235 | padding: 20px; | ||
236 | overflow: hidden; | ||
237 | position: relative; | ||
238 | background: #fff; | ||
239 | cursor: pointer; | ||
240 | } | ||
241 | .img-cont{ | ||
242 | height: 40%; | ||
243 | width: 100%; | ||
244 | background-repeat: no-repeat; | ||
245 | background-position: top center; | ||
246 | background-size: cover; | ||
247 | } | ||
248 | .img-1{ | ||
249 | background-image: url(../images/1.gif); | ||
250 | } | ||
251 | .img-2{ | ||
252 | background-image: url(../images/beijing.png); | ||
253 | height: 60%; | ||
254 | } | ||
255 | .img-3{ | ||
256 | background-image: url(../images/31.png); | ||
257 | } | ||
258 | .img-4{ | ||
259 | background-image: url(../images/32.png); | ||
260 | } | ||
261 | .img-5{ | ||
262 | background-image: url(../images/33.png); | ||
263 | } | ||
264 | .img-6{ | ||
265 | background-image: url(../images/34.png); | ||
266 | } | ||
267 | .img-7{ | ||
268 | background-image: url(../images/44.jpg); | ||
269 | } | ||
270 | .img-8{ | ||
271 | background-image: url(../images/41.jpg); | ||
272 | } | ||
273 | .img-9{ | ||
274 | background-image: url(../images/43.jpg); | ||
275 | } | ||
276 | .box h3{ | ||
277 | padding: 10px 0px; | ||
278 | margin: 0; | ||
279 | font-size: 18px; | ||
280 | } | ||
281 | .box h3 span{ | ||
282 | display: block; | ||
283 | font-size: 11px; | ||
284 | font-weight: 300; | ||
285 | text-transform: uppercase; | ||
286 | letter-spacing: 2px; | ||
287 | color: #74726f; | ||
288 | } | ||
289 | .box:after{ | ||
290 | position: absolute; | ||
291 | background: -moz-linear-gradient(top, rgba(255,255,255,0) 0%, rgba(255,255,255,0.73) 22%, rgba(255,255,255,0.73) 23%, rgba(255,255,255,1) 91%); | ||
292 | background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,0)), color-stop(22%,rgba(255,255,255,0.73)), color-stop(23%,rgba(255,255,255,0.73)), color-stop(91%,rgba(255,255,255,1))); | ||
293 | background: -webkit-linear-gradient(top, rgba(255,255,255,0) 0%,rgba(255,255,255,0.73) 22%,rgba(255,255,255,0.73) 23%,rgba(255,255,255,1) 91%); | ||
294 | background: -o-linear-gradient(top, rgba(255,255,255,0) 0%,rgba(255,255,255,0.73) 22%,rgba(255,255,255,0.73) 23%,rgba(255,255,255,1) 91%); | ||
295 | background: -ms-linear-gradient(top, rgba(255,255,255,0) 0%,rgba(255,255,255,0.73) 22%,rgba(255,255,255,0.73) 23%,rgba(255,255,255,1) 91%); | ||
296 | background: linear-gradient(top, rgba(255,255,255,0) 0%,rgba(255,255,255,0.73) 22%,rgba(255,255,255,0.73) 23%,rgba(255,255,255,1) 91%); | ||
297 | filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#00ffffff', endColorstr='#ffffff',GradientType=0 ); | ||
298 | height: 50px; | ||
299 | bottom: 0px; | ||
300 | left: 0px; | ||
301 | right: 0px; | ||
302 | content: ''; | ||
303 | } | ||
304 | .box p{ | ||
305 | margin: 0; | ||
306 | padding: 0; | ||
307 | text-align: justify; | ||
308 | font-family: Georgia; | ||
309 | font-size: 13px; | ||
310 | line-height: 20px; | ||
311 | display: block; | ||
312 | position: relative; | ||
313 | padding-bottom: 30px; | ||
314 | } | ||
315 | .w-25{ width: 25%; } | ||
316 | .w-30{ width: 30%; } | ||
317 | .w-40{ width: 40%; } | ||
318 | .w-50{ width: 50%; } | ||
319 | .w-60{ width: 60%; } | ||
320 | .w-70{ width: 70%; } | ||
321 | .w-75{ width: 75%; } | ||
322 | .w-100{ width: 100%; } | ||
323 | |||
324 | .h-25{ height: 25%; } | ||
325 | .h-30{ height: 30%; } | ||
326 | .h-40{ height: 40%; } | ||
327 | .h-50{ height: 50%; } | ||
328 | .h-60{ height: 60%; } | ||
329 | .h-70{ height: 70%; } | ||
330 | .h-75{ height: 75%; } | ||
331 | .h-100{ height: 100%; } | ||
332 | |||
333 | .box-expanded.box-img-left .img-cont, | ||
334 | .box-img-left .img-cont{ | ||
335 | float: left; | ||
336 | width: 40%; | ||
337 | height: 100%; | ||
338 | margin-right: 2%; | ||
339 | } | ||
340 | .box-img-left:after{ | ||
341 | left: 42%; | ||
342 | } | ||
343 | .box-img-left p{ | ||
344 | margin-left: 42%; | ||
345 | } | ||
346 | .box-img-right .img-cont{ | ||
347 | float: right; | ||
348 | width: 40%; | ||
349 | height: 100%; | ||
350 | margin-left: 2%; | ||
351 | } | ||
352 | .box-img-right:after{ | ||
353 | right: 42%; | ||
354 | } | ||
355 | .box-img-right p{ | ||
356 | margin-right: 42%; | ||
357 | } | ||
358 | .title-top h3{ | ||
359 | padding-top: 0px; | ||
360 | } | ||
361 | .box-b-r{ | ||
362 | border-right: 1px solid #f2f2f2; | ||
363 | } | ||
364 | .box-b-l{ | ||
365 | border-left: 1px solid #f2f2f2; | ||
366 | } | ||
367 | .box-expanded{ | ||
368 | border: none; | ||
369 | padding: 50px; | ||
370 | } | ||
371 | .box-expanded .img-cont{ | ||
372 | box-shadow: 1px 1px 2px rgba(0,0,0,0.1); | ||
373 | float: left; | ||
374 | width: 50%; | ||
375 | height: 50%; | ||
376 | margin-right: 20px; | ||
377 | box-shadow: 1px 1px 2px rgba(0,0,0,0.1); | ||
378 | } | ||
379 | .box.box-expanded h3{ | ||
380 | font-size: 50px; | ||
381 | line-height: 50px; | ||
382 | padding-top: 0px; | ||
383 | } | ||
384 | .box.box-expanded h3 span{ | ||
385 | font-size: 14px; | ||
386 | } | ||
387 | .box.box-expanded p{ | ||
388 | font-size: 20px; | ||
389 | line-height: 30px; | ||
390 | } | ||
391 | .box.box-expanded:after{ | ||
392 | background: transparent; | ||
393 | } | ||
394 | .box-expanded .box-close{ | ||
395 | position: absolute; | ||
396 | top: 0px; | ||
397 | right: 20px; | ||
398 | width: 80px; | ||
399 | height: 30px; | ||
400 | background: #000; | ||
401 | color: #fff; | ||
402 | font-weight: bold; | ||
403 | font-size: 16px; | ||
404 | text-align: center; | ||
405 | line-height: 30px; | ||
406 | } | ||
407 | @media screen and (max-width: 760px){ | ||
408 | .f-title a { | ||
409 | height: 30px; | ||
410 | line-height: 14px; | ||
411 | margin-top: 10px; | ||
412 | } | ||
413 | .f-title h2{ | ||
414 | font-size: 18px; | ||
415 | line-height: 18px; | ||
416 | margin-top: 5px; | ||
417 | } | ||
418 | } | ||
419 | @media screen and (max-width: 690px){ | ||
420 | .page .box{ | ||
421 | width: 100%; | ||
422 | height: 20%; | ||
423 | padding: 5px; | ||
424 | border: none; | ||
425 | border-top: 1px solid #ddd; | ||
426 | } | ||
427 | .page .box h3{ | ||
428 | font-size: 16px; | ||
429 | } | ||
430 | .page .box h3 span, | ||
431 | .page .box .img-cont, | ||
432 | .page .box p, | ||
433 | .page .box:after{ | ||
434 | display: none; | ||
435 | } | ||
436 | .box.box-expanded h3{ | ||
437 | font-size: 26px; | ||
438 | line-height: 30px; | ||
439 | padding-top: 15px; | ||
440 | clear: both; | ||
441 | } | ||
442 | .box.box-expanded p{ | ||
443 | font-size: 16px; | ||
444 | line-height: 22px; | ||
445 | } | ||
446 | .box-img-left p, | ||
447 | .box-img-right p{ | ||
448 | margin: 0; | ||
449 | } | ||
450 | .box.box-expanded h3 span{ | ||
451 | font-size: 12px; | ||
452 | } | ||
453 | body .box-expanded{ | ||
454 | padding: 40px 20px 20px; | ||
455 | } | ||
456 | body .box-expanded .img-cont{ | ||
457 | width: 100% !important; | ||
458 | height: 50% !important; | ||
459 | margin: 0; | ||
460 | } | ||
461 | .cover-elements{ | ||
462 | display: none; | ||
463 | } | ||
464 | |||
465 | } \ No newline at end of file | ||
diff --git a/Blocks/Flipboard/images/1.gif b/Blocks/Flipboard/images/1.gif new file mode 100644 index 0000000..391d383 --- /dev/null +++ b/Blocks/Flipboard/images/1.gif | |||
Binary files differ | |||
diff --git a/Blocks/Flipboard/images/1.jpg b/Blocks/Flipboard/images/1.jpg new file mode 100644 index 0000000..c8623c3 --- /dev/null +++ b/Blocks/Flipboard/images/1.jpg | |||
Binary files differ | |||
diff --git a/Blocks/Flipboard/images/2.jpg b/Blocks/Flipboard/images/2.jpg new file mode 100644 index 0000000..f463a7d --- /dev/null +++ b/Blocks/Flipboard/images/2.jpg | |||
Binary files differ | |||
diff --git a/Blocks/Flipboard/images/3.jpg b/Blocks/Flipboard/images/3.jpg new file mode 100644 index 0000000..900e75a --- /dev/null +++ b/Blocks/Flipboard/images/3.jpg | |||
Binary files differ | |||
diff --git a/Blocks/Flipboard/images/31.png b/Blocks/Flipboard/images/31.png new file mode 100644 index 0000000..d3eac5e --- /dev/null +++ b/Blocks/Flipboard/images/31.png | |||
Binary files differ | |||
diff --git a/Blocks/Flipboard/images/32.png b/Blocks/Flipboard/images/32.png new file mode 100644 index 0000000..941876a --- /dev/null +++ b/Blocks/Flipboard/images/32.png | |||
Binary files differ | |||
diff --git a/Blocks/Flipboard/images/33.png b/Blocks/Flipboard/images/33.png new file mode 100644 index 0000000..486fc92 --- /dev/null +++ b/Blocks/Flipboard/images/33.png | |||
Binary files differ | |||
diff --git a/Blocks/Flipboard/images/34.png b/Blocks/Flipboard/images/34.png new file mode 100644 index 0000000..53a3f82 --- /dev/null +++ b/Blocks/Flipboard/images/34.png | |||
Binary files differ | |||
diff --git a/Blocks/Flipboard/images/4.jpg b/Blocks/Flipboard/images/4.jpg new file mode 100644 index 0000000..a487d1f --- /dev/null +++ b/Blocks/Flipboard/images/4.jpg | |||
Binary files differ | |||
diff --git a/Blocks/Flipboard/images/41.jpg b/Blocks/Flipboard/images/41.jpg new file mode 100644 index 0000000..c7f7d40 --- /dev/null +++ b/Blocks/Flipboard/images/41.jpg | |||
Binary files differ | |||
diff --git a/Blocks/Flipboard/images/43.jpg b/Blocks/Flipboard/images/43.jpg new file mode 100644 index 0000000..a37db8e --- /dev/null +++ b/Blocks/Flipboard/images/43.jpg | |||
Binary files differ | |||
diff --git a/Blocks/Flipboard/images/44.jpg b/Blocks/Flipboard/images/44.jpg new file mode 100644 index 0000000..1289d2d --- /dev/null +++ b/Blocks/Flipboard/images/44.jpg | |||
Binary files differ | |||
diff --git a/Blocks/Flipboard/images/5.jpg b/Blocks/Flipboard/images/5.jpg new file mode 100644 index 0000000..9033d04 --- /dev/null +++ b/Blocks/Flipboard/images/5.jpg | |||
Binary files differ | |||
diff --git a/Blocks/Flipboard/images/6.jpg b/Blocks/Flipboard/images/6.jpg new file mode 100644 index 0000000..45cbb34 --- /dev/null +++ b/Blocks/Flipboard/images/6.jpg | |||
Binary files differ | |||
diff --git a/Blocks/Flipboard/images/7.jpg b/Blocks/Flipboard/images/7.jpg new file mode 100644 index 0000000..1dfd8cb --- /dev/null +++ b/Blocks/Flipboard/images/7.jpg | |||
Binary files differ | |||
diff --git a/Blocks/Flipboard/images/8.jpg b/Blocks/Flipboard/images/8.jpg new file mode 100644 index 0000000..a591327 --- /dev/null +++ b/Blocks/Flipboard/images/8.jpg | |||
Binary files differ | |||
diff --git a/Blocks/Flipboard/images/ImageAttribution.txt b/Blocks/Flipboard/images/ImageAttribution.txt new file mode 100644 index 0000000..962294f --- /dev/null +++ b/Blocks/Flipboard/images/ImageAttribution.txt | |||
@@ -0,0 +1,4 @@ | |||
1 | Background Pattern from http://subtlepatterns.com/ | ||
2 | |||
3 | Photos by NASA HQ: http://www.flickr.com/photos/nasahqphoto/ | ||
4 | |||
diff --git a/Blocks/Flipboard/images/beijing.png b/Blocks/Flipboard/images/beijing.png new file mode 100644 index 0000000..c90b15c --- /dev/null +++ b/Blocks/Flipboard/images/beijing.png | |||
Binary files differ | |||
diff --git a/Blocks/Flipboard/images/cover.jpg b/Blocks/Flipboard/images/cover.jpg new file mode 100644 index 0000000..55565f8 --- /dev/null +++ b/Blocks/Flipboard/images/cover.jpg | |||
Binary files differ | |||
diff --git a/Blocks/Flipboard/images/cover1.jpg b/Blocks/Flipboard/images/cover1.jpg new file mode 100644 index 0000000..6e48737 --- /dev/null +++ b/Blocks/Flipboard/images/cover1.jpg | |||
Binary files differ | |||
diff --git a/Blocks/Flipboard/images/fabric_plaid.png b/Blocks/Flipboard/images/fabric_plaid.png new file mode 100644 index 0000000..7120bb4 --- /dev/null +++ b/Blocks/Flipboard/images/fabric_plaid.png | |||
Binary files differ | |||
diff --git a/Blocks/Flipboard/index.html b/Blocks/Flipboard/index.html new file mode 100644 index 0000000..b97d914 --- /dev/null +++ b/Blocks/Flipboard/index.html | |||
@@ -0,0 +1,316 @@ | |||
1 | <!DOCTYPE html> | ||
2 | <html lang="en"> | ||
3 | <head> | ||
4 | <meta charset="UTF-8" /> | ||
5 | <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> | ||
6 | <title>说好的约定</title> | ||
7 | <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"> | ||
8 | <meta name="description" content="Experimental Page Layout Inspired by Flipboard" /> | ||
9 | <meta name="keywords" content="flip, pages, flipboard, layout, responsive, web, web design, grid, ipad, jquery, css3, 3d, perspective, transitions, transform" /> | ||
10 | <meta name="author" content="Jinwei" /> | ||
11 | <link href='http://fonts.googleapis.com/css?family=Open+Sans+Condensed:700,300,300italic' rel='stylesheet' type='text/css'> | ||
12 | <link rel="stylesheet" type="text/css" href="css/demo.css" /> | ||
13 | <link rel="stylesheet" type="text/css" href="css/style.css" /> | ||
14 | <script type="text/javascript" src="js/modernizr.custom.08464.js"></script> | ||
15 | <script id="pageTmpl" type="text/x-jquery-tmpl"> | ||
16 | <div class="${theClass}" style="${theStyle}"> | ||
17 | <div class="front"> | ||
18 | <div class="outer"> | ||
19 | <div class="content" style="${theContentStyleFront}"> | ||
20 | <div class="inner">{{html theContentFront}}</div> | ||
21 | </div> | ||
22 | </div> | ||
23 | </div> | ||
24 | <div class="back"> | ||
25 | <div class="outer"> | ||
26 | <div class="content" style="${theContentStyleBack}"> | ||
27 | <div class="inner">{{html theContentBack}}</div> | ||
28 | </div> | ||
29 | </div> | ||
30 | </div> | ||
31 | </div> | ||
32 | </script> | ||
33 | </head> | ||
34 | <body> | ||
35 | |||
36 | <header class="main-title"> | ||
37 | <h1>说好的约定 </br><strong>TransSiberian</strong></h1> | ||
38 | <p>Swipe or drag to flip the pages, click to open items </p> | ||
39 | <p><strong>Best viewed in a Webkit browser (Safari, Chrome)</strong></p> | ||
40 | </header> | ||
41 | |||
42 | <div id="flip" class="container"> | ||
43 | |||
44 | <div class="f-page f-cover"> | ||
45 | <div class="cover-elements"> | ||
46 | <div class="logo"> | ||
47 | Start | ||
48 | |||
49 | </div> | ||
50 | |||
51 | |||
52 | </div> | ||
53 | <div class="f-cover-flip"></div> | ||
54 | </div> | ||
55 | |||
56 | <div class="f-page"> | ||
57 | <div class="f-title"> | ||
58 | |||
59 | <h2 align="center">从北京到莫斯科</h2> | ||
60 | |||
61 | </div> | ||
62 | <div class="box w-25 h-70"> | ||
63 | <div class="img-cont img-1"></div> | ||
64 | <h3>A brief introduction <span>Published May 3, 2013</span></h3> | ||
65 | <p>记得最早是在人人网上看到了德铁的数据库里有从德国到北京的火车。具体是从德国到华沙,从华沙到莫斯科,从莫斯科到北京。后来好像就能经常看到莫斯科到北京的火车的消息了。也许是自己开始不经意地关注了。今天早上特意在维基百科上仔细地看了有关莫斯科到北京的这条线路的火车的信息,在豆瓣上看到了几篇坐过这趟火车的游者的笔记,下午又看了一部有关这趟世界上最长的铁路的电影,TransSiberian,(穿越西伯利亚),毫无疑问,我已经深深地征服了。很显然,我是一直以来都喜欢坐火车出行的。这趟6天5夜的旅行,如果能够成行,必然是生命中不可多得的一次大冒险。首先简要地介绍一下有关这趟火车的细节。从北京到莫斯科的火车线路一共有两趟。一趟是K3/4次列车,经二连浩特进入蒙古国然后进入俄罗斯境内,列车及乘务员全部由中国方面负责。另一趟是K29/30次列车,从北京出发,经满洲里进入俄罗斯境内,列车及乘务人员全部由俄罗斯方面负责。如果是我,我肯定会选择由中方担当营运的K3/4次,一来与乘务员的语言交流方便(这是最主要的),好像其他也没啥理由了。接下来也围绕这一次列车展开。票价方面,分为高包软卧,软卧,硬卧三个档次,分别是6021元,5501元,3737元(数据来自http://rw19.net/record/)。高包就是两人一个包厢,然后一些设施方面比较豪华,普通的软卧是4人一个包厢,硬卧也是4人包房。发车时间方面,每周一班,每周三北京站早上07:45发车,次周一14:19抵达莫斯科。途中主要的站点有大同、二连浩特、扎门乌德、乌兰巴托、伊尔库茨克、新西伯利亚等站。因为中国用的是国际标准轨,而蒙古国和俄罗斯用的是更宽的宽轨,所以在中国边境的二连浩特,列车将会被整列被吊起,更换铁轨。这毫无疑问是激动人心的一次体验。</p> | ||
66 | </div> | ||
67 | <div class="box w-50 h-70 box-b-l box-b-r"> | ||
68 | <div class="img-cont img-2"></div> | ||
69 | <h3>(一)地图</span></h3> | ||
70 | <p>如果我们把目光从中国版图移向世界,那么这样一条铁路线会让你惊叹不已,从太平洋沿岸的符拉迪沃斯托克(海参崴)到乌拉尔山脉的车里雅宾斯克,乌拉尔山是欧洲和亚洲的分界线,车里雅宾斯克是2007年上合军演的所在地,这条线路就是横贯亚欧大陆的西伯利亚大铁路,俄罗斯西伯利亚-远东地区的交通大动脉。当从北京站始发的k3次国际列车出境二连浩特,经乌兰巴托进入俄罗斯境内后,从蒙古国延伸过来的铁轨便与西伯利亚大铁路汇合了,而汇合点距离传说中的贝加尔湖仅半天多的路程而已。 | ||
71 | K3次国际列车的票价是2700元,加上180元的蒙古国的过境签证,约2900元。我知道,经过努力我可能在网上找到3000-4000元的从北京到莫斯科的飞机票,飞机只需要7、8个小时即可到莫斯科,而火车需要六天五夜。然而,10月份正是俄罗斯的深秋季节,遥远的西伯利亚充满着无尽的想象,浩瀚的贝加尔湖,金黄的白桦林,坚韧豪放的俄罗斯农庄……时间和价格都不是我可以错过这条线路的理由,我义无反顾地选择了这条路线,从北京去莫斯科大学亚非学院交流学习。 | ||
72 | 列车时刻表上,这条线路被标记为“北京-乌兰巴托-莫斯科”,但这条线路的主角既不是北京、乌兰巴托,也不是莫斯科,而是西伯利亚。 | ||
73 | 列车从北京站出发,星期三早晨7点45分,经张家口南、大同、集宁南、晚上8点多到达中国的边境检查站二连浩特,在这里护照会被盖上出境章,旅客需要填写(旅客行李)物品(申)报(海)关单,同时还要更换铁轨,因为中国的铁轨与蒙古国、俄罗斯的铁轨宽窄不同。换轨在“国际换轮库”里进行,火车厢被一节一节地吊起,中国的铁轨撤掉,俄式的铁轨换上,整个过程旅客无须下车,也感觉不到任何震荡。因为换轨和边境检查,所以列车会在二连停3个小时左右。晚上11点多火车离开二连浩特进入蒙古国,随即停在蒙方的边境检查站上,进行蒙方入(过)境签证检查、物品报关等手续,第二天下午1点多达到乌兰巴托,晚上9点左右再次到达蒙古国边境,进行蒙方的出境检查。乌兰巴托时间和北京时间大概是相同的,所以无须调整手表。 | ||
74 | 乌兰巴托时间晚上10点多出蒙古国进入俄罗斯,莫斯科时间比北京时间晚4个小时,所以莫斯科时间下午6点左右进入俄罗斯。列车在边境的纳乌什基(наушки)停车,进行俄方的入境签证检查,填写物品报关单、移民卡,这里的检查比较细致。至此,烦琐的边境检查终于结束了,列车奔驰在辽阔的西伯利亚土地上了。经贝加尔湖、伊尔库茨克、克拉斯诺雅尔斯克、新西伯利亚、奥姆斯克、秋明油田(大概在这附近,列车不再走西伯利亚大铁路,转而向西北的东欧平原进发),进入乌拉尔山区的叶卡捷林堡,现在的叶卡也叫做斯维尔德洛夫斯克,过了乌拉尔山,列车正式驶入欧洲,再经别尔米、基洛夫、古都弗拉基米尔,最后进入900万人口的莫斯科,时值莫斯科时间星期一下午2点多。 | ||
75 | 这条线路共经过三个国家,纵贯蒙古国南北,经过俄罗斯至少14个行政单位(州、共和国、自治区、边疆区),经过蒙古高原、蒙俄边境的雅布洛诺夫山脉、世界上最深的内陆湖贝加尔湖、中西伯利亚高原的南部、西西伯利亚平原南部,翻过乌拉尔山区后进入东欧平原。列车出中国需要1天,过蒙古也需要1天,其余4天都在广袤的俄罗斯领土上奔驰。 | ||
76 | 向东这条线路可以延伸至太平沿岸的海参崴,向西可以延伸至乌克兰、捷克、德国、巴黎等等,跟我同火车包厢的伙伴就是乘坐这条线路回比利时。 | ||
77 | </p> | ||
78 | </div> | ||
79 | <div class="box w-25 h-70"> | ||
80 | <div class="img-cont img-3"></div> | ||
81 | <h3>(二)离别<span>Published May 3, 2012</span></h3> | ||
82 | <p>10月3号凌晨4点多,lan和几个好朋友一起送我去北京站。出租车上,我默默地流泪了,我忍不住我的眼泪,可能是因为我马上就要离开我最熟识的朋友了,大约八个月我们见不到面,也可能是因为胆怯,因为我马上就要步入一个高度不确定的环境中,而我从未经历过这种不确定性。 | ||
83 | 出发前的两个星期内,我不停地与亲朋师友们告别。见过了pictures版的老友 | ||
84 | 们、小柯、Q艳、小米夫妇和YQ,跟宿舍的哥们喝过,跟同班同学喝过,跟同高中的师兄、师姐、师妹们聚过,同门师友聚会为我饯行,dai爷又以俄餐送行,还去天津看过妹妹,见到了阿蒙和单姐,……临走时,班级的几个穷哥们撕扭着塞给我500块钱……所有这一切,我很感动,也很满足……离别,让生命和友情绽放,却又瞬间将其置于深远的时空下,煎熬着,飘散在空气中的味道叫伤感。 | ||
85 | 就这样上火车了。安检很松,只需查看车票。 | ||
86 | 我在11车厢第11铺,属于第3包厢,跟我同包厢的是一个比利时人,并且四人包厢里面只有我们两个旅客,看来,我不得不用我蹩脚的英语跟他交流了。lan和好朋友送我到包厢里,把行李放到床铺下面,我们在车厢外壁上的国徽前合影作别,几分钟后,列车缓缓启动…… | ||
87 | 我身上带着1500元的美金、笔记本电脑和护照,所以,上了火车心里总是忐忑不安。dai爷曾经在1992年坐过这趟列车,他特别嘱咐我小心看管自己的财物,晚上睡觉的时候要把包厢门反锁好,必要时要用绳子把门锁再缠一遍。在百度网,我也试图搜索一些对这趟列车的介绍,结果搜索出来的消息大部分与90年代的抢劫、偷窃案件有关,也有案件发生在近几年。不过,这么多年过去了,车上的治安应该所有改善吧,我这样想,况且利用国际列车运输货物的高峰期早过去了,车上旅客所携带贵重财物已经很少了。 | ||
88 | 愿上帝保佑我一路平安! | ||
89 | </p> | ||
90 | </div> | ||
91 | <div class="box w-50 h-30 box-b-r title-top"> | ||
92 | <h3>(三)启程<span>Published May 3, 2012</span></h3> | ||
93 | <p>出发前的晚上我只睡了一个小时,火车离站后,困意迅速来袭。跟比利时人简单打了招呼,我把包厢门反锁,把随身背的361度运动斜挎包放在枕边,倒在卧席上很快就睡着了。 | ||
94 | 当我醒来时,发现比利时人也睡着了,他头戴耳机,眼带黑眼罩,身上的毛仿佛野草,杂乱而茂盛……此时列车好像正在经过山区,每隔一会儿就会出现一个隧道,我走出包厢向窗外看,丛山延绵,硕大的山谷扑面而来,我顿时失去了方向,竟不知道这是什么地方。自从去年11月份“京郊穿越黄草梁”一事闹得满城风雨后(此事参见《柏峪-黄草梁-七座楼-向阳村……穿行记》),近一年的时间内我没有“撒野”了,更是很少见到大山。我仔细寻找着路边的字迹,发现了“官厅”、“怀来”字样,才意识到这里是北京的怀柔区。我想起,北京城地处平原,北京小平原的西北方向就是燕山,此刻列车正在穿越燕山,向内蒙古高原方向驶去。 | ||
95 | 我回到包厢继续补觉,昏睡中被叫醒,原来是列车乘务员送来免费的午餐券和晚餐券,餐券上有中文、英文和俄文三种语言。既然车上有免费餐券,那我的那些食物岂不白带了?隔壁包厢有女乘客高声说,“怎么还没出河北”,原来列车刚过河北沙城,我心想,旅程刚刚开始就如此心急,那以后的六天五夜她该如何度过呢?我出发时,朋友们也担心我该如何度过这漫长的六天五夜,师兄甚至给我copy了130多集的评书《隋唐演义》,让我在火车上解闷儿,可我毫不担心,我给远在南京的“jia先生”发短信说,六天里我会写日记、看俄罗斯国情方面的书、学俄语、吃东西、做俯卧撑锻炼身体、看风景拍照片……我会有很多事情做,只要不丢东西,我相信这将是一次很难忘的旅行。 | ||
96 | 大约11点多,我背着361度运动包,拿着餐券去餐车吃免费午餐,比利时人还在睡觉。运动包里面装着笔记本电脑和证件,所以我决定包不离身。在餐车里,我点了炒花菜、炒蒜苗和一碗米饭,饮料4元一听,需要单独付费。对面来了一个年轻男子,大概27、28岁,个子与我相仿,他点了同样的菜,我主动与他搭话,算是礼貌性地打招呼,他则告诉我“免费餐券过了今天不再有”,原来这免费午餐是对旅客的“慰问餐”。他是北京人,家住宣武区,在莫斯科做生意,正属我的研究群体之列,所以我多问了他几句,他把货物装在包厢里。 | ||
97 | 90年代,苏联解体后,俄罗斯的商品极其短缺,尤其是日用品,这为廉价的中国商品进入俄罗斯市场提供了机会,而国际列车就成为最早的商品运输工具。列车规定,旅客行李限重35公斤,但大概这个规定没人理会,或者早被旅客们疏通得名存实亡了,所以这些中国旅客们往往携带很多日用品上车,而列车所停靠的小站往往成为中国商品的集散地,通常尚未到莫斯科,车上的商品早已换成大把的卢布了。正因为车上的商人较多,钱财较多,所以抢劫、偷窃比较猖獗。dai爷讲,他当年坐这趟列车时,从莫斯科上来一个俄罗斯男人,带着两个俄罗斯姑娘,从莫斯科到北京,一直向旅客提供性服务;而这些中国商人也趾高气昂地嫖娼,还宣称为中国失去那么多北方领土报仇雪恨……啧啧……鱼龙混杂、藏污纳垢的东方快车! | ||
98 | 吃饭之际,对面的男子突然堆笑着向我提出要求:“帮个忙儿吧,帮我带几条烟在你房间里”。面对突如其来的要求,我没有任何心理准备。他开始谩骂俄方的女检查员,憎恨俄方的例行检查,我不知怎么拒绝他的要求,当然更不想接受,因为这可能会给我带来麻烦,我只好岔开话题。我非常不爽,凭什么让我帮他做这种事?我立即感觉到他脸上的笑容很猥琐,饭没有吃完,我就起身走了。走廊里,我突然记起,我曾经把包厢地址告诉过他,而餐桌上我也没有明确拒绝他的要求,想必他会找来,我该如何是好? | ||
99 | 免费晚餐我没有去吃,因为我不想再碰到这个商人。我在日记里写道: | ||
100 | “我阅读翁杏法的小册子《到莫斯科去》,这本小册子是90年代写的,作者明确写道‘不要轻易向别人透露你的居住地址’,我想,我也没有想到,竟是一个中国人首先让我体会到了这个道理……其实,在国外,也许外国人比中国人更友善,中国人由于经济利益的原因往往更功利,更不友善,更坏。可以这样对比,同样互不熟识的情况下,中国人比外国人更愿意向对方提出令对方为难的要求,如果对方拒绝了,中国人也许比外国人更愿意谩骂、憎恨对方”。 | ||
101 | 大概晚上8点30分,火车到达二连浩特,这是中国边境检查站,过了这里,我就 | ||
102 | 身处异国了,我的手机也将没有信号,无法再跟爸妈、lan、同学联系了。我有些怅然。火车在这里要换轨,我用数码相机拍了换轨过程的小短片,打算回去给同学看。11点多,火车进入蒙古国,在蒙方的检查站停留了一段时间,火车重新启动后,我和比利时人方才入睡,因为今晚不再有检查。</p> | ||
103 | </div> | ||
104 | <div class="box w-50 h-30 title-top"> | ||
105 | <h3>(四)蒙古 <span>Published May 3, 2012</span></h3> | ||
106 | <p>我在蒙古国大使馆办过境签证的时候,曾经遇到一个中国女人,她说“蒙古什么都没有”。也许她说得没错,透过车窗,我什么都看不到,只有无边无际的大地,比利时朋友不停地念叨着“Nothing, nothing, crazy country”!也许,盛夏季节,这里会是满山遍野的碧绿,但现在正值深秋,草已枯黄,也看不见灌木丛和树林,只有短草勉强包裹着大地。当大地上缺少高大植被的时候,大地所呈现给我们的是标准的“地势”,或平坦如砥,或高低起伏,线条凸凹感十分强烈,大地展现了他性感的一面!很罕见地,我看到一摊水,巴掌那么大,水边围着一群羊,我真担心一个钟头以后,这摊水会被饥渴的羊群喝干。偶尔会见到房屋,远远望去,八、九个房屋围坐在一起,仿佛正在召开部落会议,这里的房屋也像蒙古包,只是尖顶下面围着的是方形墙壁,房屋表面经常涂着墨绿色和铁红色,墨绿色的门窗,铁红色的山墙,别有一番味道。铁路沿线可以看到很多电线杆,但这些电线杆多为木制,并且大多是由两节木头连接而成,印象中,这些木头电线杆是我小时候家乡的景象,而现在家乡的电线杆早已更换成水泥混凝土的了,更加结实耐用。看着这些,我意识到蒙古国的生产能力大致处在什么水平了。蒙古国大使馆门前的那个中国女人告诉我,她给朋友办理签证,而她的朋友是去蒙古国做房屋装潢,想必蒙古国的房屋建设、装潢水平也不高。 | ||
107 | 下午1点多(10月4日),列车进入乌兰巴托,我赶紧用小数码录像。乌兰巴托没有想象中那么明净美丽,这应该是蒙古国的“大都市”了,但是我没有看到林立的高楼,楼房多为6、7层,10到20层之间的楼房在乌兰巴托想必是少有的高层建筑了吧,大概更多的居民居住的是平房。蒙古全国也就200多万人口,乌兰巴托的人口能有100万吗?高层建筑大多出现在上海、香港、东京、纽约这样人口高度集中的城市,而乌兰巴托没必要致力于垂直开发空间,也许汽车较房屋的需求更强,在铁路一侧,我看到几个轿车聚集的地方,大概是停车场。 | ||
108 | 列车在乌兰巴托站停一会儿,旅客可以下车走动,比利时朋友要去买Mongolian milk,我跟他下车去转转。车站不大,相当于中国中等城市的车站,乌兰巴托下点小雨,一个蒙古中年男子用中文向我兜售蒙古邮票,我没有理会,我们没有找到Mongolian milk,却看到了韩国和中国方便面,比利时朋友在一个小摊铺前驻足,售货大婶可以说俄语,比利时朋友用20元人民币买了一大根香肠和两袋大面包,兴高采烈地往回走,在餐车前,我为他和香肠、面包照相留念。1元人民币大概等于758蒙元,所以一个香肠、两袋面包卖20元人民币很赚,而比利时人也觉得20元人民币买了这么多食物不贵,皆大欢喜。一个国家的货币价格可以反映该国的生产能力,从蒙元的汇率上足见蒙古国的生产水平了。 | ||
109 | 30分钟后,列车离开乌兰巴托,我的目光再次陷入苍茫大地。比起乌兰巴托,我更喜欢这辽阔无边的大地,正像久居北京的人喜欢去坝上草原放松心情一样,但习惯了荒芜人烟的大草原的蒙古人也许更喜欢乌兰巴托,在那里游牧的人们可以定居、群居。我在日记里写下: | ||
110 | “蒙古国一定很贫穷,但这里拥有人烟稀少的土地,因此这里拥有别样的心情和别样性格的人。《乌兰巴托的夜》,是怎样的呢?天上有许多星星?还是地上有许多明亮的车灯?我希望是前者”。 | ||
111 | </p> | ||
112 | </div> | ||
113 | </div> | ||
114 | |||
115 | <div class="f-page"> | ||
116 | <div class="f-title"> | ||
117 | |||
118 | <h2>从北京到莫斯科</h2> | ||
119 | </div> | ||
120 | <div class="box w-70 h-50 box-b-r title-top box-img-left"> | ||
121 | <div class="img-cont img-4"></div> | ||
122 | <h3>(五)纳乌什基(наушки)<span>Published May 3, 2012</span></h3> | ||
123 | <p>傍晚,列车出蒙古进入俄罗斯,在наушки站先后上来4个俄罗斯工作人员进行了3次检查,包括仔细的行李检查,但无需打开行李,检查签证时通常会把护照收走一段时间,待盖完入境章后重新还给旅客。中国、蒙古、俄罗斯三国检查签证的工作人员皆为女性。列车在наушки停车约5个小时,停车时厕所会关闭,可比利时朋友恰好这时想去厕所,所以十分苦恼,直说要找个瓶子撒尿,然后把瓶子扔出窗外,说完我们哈哈大笑。在这一站,我把手表调回了4个小时,开始使用莫斯科时间。 | ||
124 | 不出所料,那个中国商人来找我了,我正躺在床上看书,他出现在门口大声说:“原来你在这里啊”,我瞟了他一眼,没有说话,继续看书,然后他走了。我以冷漠表示了拒绝,后来我们再次相遇的时候,他没有再跟我搭话,看来他还很知趣。有了这次经历,我告诫自己“有些事情不要给对方留任何希望”,很快这个经验再次应用上了。наушки站停车时,我听到有个中年男子在走廊里喊:“我得借个护照,要不得罚款了”,听到这个喊声,我下意识地去关包厢门,他恰好走到我们的包厢门口:“能借护照用一下吗”?这是个大约45岁左右的中国男子,我反问道:“护照怎么能借”?他马上回答“是海关让我来借的”,我随即把门关上,不再理他。我心想,为了逃避罚款居然编出“海关让他借护照”的瞎话儿,真是见鬼了。这个男子是第二个向我提出无理要求的中国人,我猜,他可能是长期寄居在列车上的商人,可能负责货物运输,因为他跟列车员有些熟。当我用两种方式拒绝了两个无理要求后,才有所安心。 | ||
125 | 过了наушки站,以后的4天将不再有各种检查,真正开始享受西伯利亚之旅了! | ||
126 | 列车在此前的停车时间最长,前后共有4次证件、行李检查,每次检查都要停车几个小时,中间还有一次换轨,这就是通关手续所带来的麻烦。但欧洲就大不一样,欧洲一体化带来的一个重要影响就是简化了欧洲各国之间的通关手续,如果不是这样,乘火车从希腊走到荷兰不知要浪费多少时间和金钱在通关手续上。我的一个朋友大约4年前开始在巴黎读书,迄今已经到过好多欧洲国家,但她的护照上却只有法国签证,当她抱怨护照上签证太少的时候,殊不知签证丰富所意味着的繁琐手续。 | ||
127 | 列车再次启动,我知道,明天早晨就能见到贝加尔湖了……噢,贝加尔湖,我心中的梦……今晚,我将带着神秘的贝加尔入梦,good night! | ||
128 | </p> | ||
129 | </div> | ||
130 | <div class="box w-30 h-50"> | ||
131 | <div class="img-cont img-5"></div> | ||
132 | <h3>(六)贝加尔<span>Published May 3, 2012</span></h3> | ||
133 | <p>一觉醒来,手表显示凌晨3点多,但是太阳却光彩夺目……我有些糊涂了,弄不清时间了。我赶紧起身,打开包厢门向窗外望去,天啊!Какой красивый пейзаж! 太漂亮了!当你的眼睛已经习惯了漫无边际的光秃草原,眼前却突然出现大片大片的金黄色白桦林时,你根本无法抑制那种兴奋与激动,到处都是白桦树,到处都是金黄色,一片连着一片,没有尽头,无边无际,那是一种来自心底的震撼!秋天在这里化身海洋,你向远处看吧,麦田是金色的,白桦林是金色的,阳光是金色的……你会感慨万千,为什么仅仅一线之隔,这边遍地白桦,而那边却只有光秃秃的草原,造物主分配植被的时候未免太苛刻了吧。 | ||
134 | 我赶紧回到包厢记下自己的心情,又立刻跑回走廊,生怕错过什么。 | ||
135 | 突然,包厢里的比利时朋友大叫一声“lake”!我转身又回到包厢,哇塞!I can’t believe my eyes! 车厢这边一片蔚蓝,像大海一样浩瀚,真大,真漂亮,真干净!这就是贝加尔湖吗?我丝毫没有心理准备,应该就是了,贝加尔湖,梦幻般的出场!I want stay here all my life!Как море!Like the sea ……我的语言系统完全混乱了,我完全找不到词来形容贝加尔湖,那是一种让嘴巴无能为力,让眼睛不知所措的感觉。这分明就是海!它有翻滚的波涛,拍打在岸边还激起雪白的浪花,那布满细沙的岸边不正是海滩吗?可它确实是湖泊,世界上最深、最富有的内陆湖,在地图上你可以看见它被陆地环保,轮廓清晰可见。贝加尔,这大概是海洋之母远嫁人间的一个女儿,她干净美丽得让人窒息,我真想跳下火车去触摸她,去感受她的湖水,她的波涛,她的一切,却又不忍心碰触,担心这样会惊到她,破坏她那原生态的美丽。 | ||
136 | 湖岸边,生长着挺拔的白桦树,白桦林间散落着一座座俄式木屋,木屋旁时而走过几个俄罗斯大叔。比利时人猜那是俄罗斯人的度假别墅,在这里,任何一间破木板房都是别墅!贝加尔湖,真的是人间天堂,望不尽的山林,望不尽的湖水,湖水藏在山桦林后面,白桦林却怎么也挡不住贝加尔湖的面庞。上帝啊!多么神奇!多么伟大! | ||
137 | 我拿着相机尽情地拍摄着,远处忽然浮现出高低起伏的青白色,Snow mountain!我大叫了一声,比利时朋友赶紧凑过来。哇呜!这里居然看见了雪山!不可思议!这时我生平第一次见到雪山,居然在贝加尔,我居然在同一天见到了贝加尔湖和雪山!2007年10月5日!我弄不清楚了,雪山、白桦林、蔚蓝的湖水、浪花、天空、飞鸟、秋天、木屋、小河、山泉、铁路桥、俄罗斯大叔……噢,我眼花缭乱,铁路两侧,一切尽收眼底,却又怎么都看不过来,美丽是需要秩序的,可是我弄不清这么多的美丽究竟是如何组合起来的,这么多的美丽,它们之间到底是什么关系,我完全不能理解,浑然天成。我能确定的是,所有这些美丽都有一个共同的名义——贝加尔湖。能亲眼目睹这壮丽的景象,真是莫大的幸福! | ||
138 | 车停了,我得去看看……原来是一个叫Байкальск(贝加尔斯克)的小站,只停了半分钟,我还没来得及照相……远处的山,一层秋黄,一层墨绿,又一层枫红,整片山仿佛色带,墨绿中点缀着金黄,金黄中又泛起墨绿,而枫红镶嵌其中,啊,真是迷人,天生的油画,无需任何人工雕琢;更远处的山,灰灰的,白白的,灰的是树,白的是雪,也许是去年的积雪,也许是今年的新雪。山脚下,白桦林中,贝加尔湖畔,木屋点点,其中有一个小村庄就叫贝加尔斯克,多么幸福的村庄,多么幸运的村民。当年,海洋之母为贝加尔准备了丰厚的嫁妆出嫁远方,让这个女儿拥有336条注入河,占全世界总储量近1/5的淡水,还有极为丰富的煤炭、金属铝、森林资源,让这个海拔456m的高山少女闻名世界。噢!依傍着贝加尔湖,贝加尔斯克的村民一定生活得很富足。 | ||
139 | 火车沿着贝加尔湖走了很久,我也忙个不停,一会儿从包厢跑到走廊,看铁路那边的白桦林和村庄,一会儿又从走廊跑回包厢,看铁路这边的蔚蓝湖泊。起初我还拍些照片,但很快就觉得不过瘾,全部改成录制短片了,可相机记忆卡的空间实在很小,两三个短片下来记忆卡就满了,这样我又得把视频倒到笔记本里面。恰好这个时候,我的相机和笔记本都快没电了,然后我又翻找充电器、转换插头,给相机充电十几分钟(列车上有低压电源,电流不稳定),又开始录短片……我想,我的亲朋师友们不会有太多机会亲眼目睹这些景象,我应该把视频带回去给他们看。 | ||
140 | 外面似乎飘起了雪,我还不太确定,乘务员招呼我“小伙子,下雪了,赶快拍吧”。几天下来,乘务员们早已习惯了我拿着相加跑来跑去,拍来拍去。真的是下雪了!雪花纷纷扬扬,天空朦朦胧胧,只能看见近处的村庄,稍远一点的房屋在雪雾中若隐若现,真的像庄园,仿佛雪雾里隐藏着一个更大的城堡。而贝加尔湖边,也早已白茫茫一片,分不清哪里是天空,哪里是湖面,只是地平线上隐约一条粗线,线下的颜色多一点青蓝,应该是湖,线上的颜色多一些灰白,大概是天。雪越来越大,水天逐渐融为一体,贝加尔湖成为想象。 | ||
141 | 看来列车又要经过一个站,地面的铁轨增加至四五条,天空的电线也便变成了网,路边七八个橘黄色的铁路工人站成一排,看着疾驰而过的国际列车。铁路线上停着暗红色的货运列车,有集装箱、汽油灌、起重机等等,又看见了绿色的客运列车,里面空荡荡的。地面上开始出现两三层的楼房,还横七竖八地停着很多轿车,这大概是个中转站,而贝加尔湖早已躲到车站后面。列车在这站未停,小站过后,水天一色的贝加尔湖又来到眼前。 | ||
142 | 我的心逐渐平静下来,不再忙乱,我回到桌旁拿起笔和日记本,望着贝加尔湖开始临摹我的心情,贝加尔湖也逐渐化作一壶绿茶,让我慢慢品味……列车在贝加尔湖畔整整走了四、五个钟头,在地图上,这段路程大概相当于贝加尔湖周长的1/7。莫斯科时间上午8点多,列车经过了斯柳迪扬卡(Слюдянка),噢,美丽的贝加尔湖,Time to say goodbye,下次再见吧。下一次,我将环绕着你走上几天几夜,给你拍一套漂亮的写真集,你的夕阳,你的日升,你的暴雨,你的海浪,你的蔚蓝,你的所有美丽……再见!贝加尔…… | ||
143 | 前方66公里处,伊尔库茨克(Иркутск)还在等待。 | ||
144 | </p> | ||
145 | </div> | ||
146 | <div class="box w-30 h-50 box-b-r title-top"> | ||
147 | <h3>(七)YAHZEE<span>Published May 3, 2012</span></h3> | ||
148 | <p>哦,离开贝加尔湖了…… | ||
149 | 当我为贝加尔湖兴奋不已的时候,比利时朋友却比较平静,后来他甚至睡了一会儿,只是我大喊“Snow mountain”的时候,他赶紧起来趴窗看,然后照了几张相,又去听他的mp3。列车临近伊尔库茨克的时候,比利时朋友邀请我跟他玩游戏,游戏的名字叫YAHZEE。这个游戏非常有趣,很适合长途旅行中消遣时光,我想把这个游戏带回中国跟朋友们玩,所以这里详述游戏规则,但在火车上,无论如何我都无法把游戏规则清楚地讲给隔壁的中国人听。游戏需要5个骰子,每个玩家每回有3次(3次为1回)掷骰机会,每次可以5骰全掷,也可以根据上次的结果选择其中几个骰子掷出,以求更满意的数字组合。3次过后,根据该回最终得到的数字组合计分,但计分的形式有很多种(见下表中的“解释”),玩家可以选择计分的形式,填入相应的计分表格中,每轮必须要填写表格,如因分数较低不想填写,可以划去概率较低的栏目(例如YAHZEE、BS等),14回过后,一局游戏结束,最后总积分多的玩家胜出。 | ||
150 | </p> | ||
151 | </div> | ||
152 | <div class="box w-70 h-50 title-top box-img-left"> | ||
153 | <div class="img-cont img-6"></div> | ||
154 | <h3>(八)马克西姆<span>Published May 3, 2012</span></h3> | ||
155 | <p>YAHZEE这个游戏,是比利时人上车第一天教我玩的,起初我只能连续玩3局,因为我还不太熟悉规则,3局下来之后我的大脑已经转不动了,很需要休息。但每天都跟他玩一会儿,很快就轻车熟路了。玩过游戏,我跟这个比利时人已经很熟了,尽管我的英语不太好,说起话来磕磕绊绊,但是他仍然能理解我说的意思,他说起话来总是附带很多很夸张的动作,有时甚至尚未开口,动作已经结束,而我已经理解他的意思。他的笑声也很多,早晨起来一句“morning”,然后“呵呵呵”一声笑,笑得有些傻,但让我觉得很亲近,从这个“呵呵呵”开始,一整天笑声不断。我们这节火车厢,只有3个包厢里有旅客,隔壁是一男一女,再隔壁是个荷兰人,其他4、5个包厢都由乘务员使用,其中几个包厢被乘务员装满了中国食品,而所有这些包厢里面,就我们这个3号包厢笑声最多,通常是比利时人笑声在先,我的笑声在后。 | ||
156 | 比利时人给我看他的各种签证,我才知道他叫马克西姆,他的护照上有好多签证,中国的、韩国的、蒙古的、澳大利亚的、新西兰的、俄罗斯的、日本的,还有好多看不懂的。他向我展示比利时护照的防伪技术,确实很棒,护照底页内涵一块电子芯片,马克西姆告诉我他的护照合人民币1000多,我告诉他我的护照只有200人民币,他很喜欢中国的签证,觉得长城背景很漂亮。马克西姆说,他已经在外面旅游两年多了,现在他没钱了,要回比利时工作了,还要参加他最好朋友的婚礼,会有一个很大的party,会有很多啤酒。常年在外,他对很多语言都有所了解,还给我展示了各种语言中数字的读法,但他不懂俄语,我就教他俄语的日常用语。他说了西班牙文、法文的绕口令给我听,我把中文的绕口令“四是四,十是十,十四是十四,四十是四十”说给他听,他听了很兴奋,跟我学了很多次,每次都对中文里面的四个声调叫苦不堪,他用相机录下我说中文绕口令的情景,要带回比利时给朋友们听。他还说了英文绕口令“any noise annoy an oyster, but a noisy noise annoy an oyster more”,我也跟着学了很多遍。离京前,师兄买了好多水果给我,我把这些水果分给马克西姆一些,而他把饼干、斯里兰卡红茶分给我,我们交换着食物,相处得很愉快。 | ||
157 | 每到大站,马克西姆都想下去买点东西,在蒙古国想买Mongolian milk,结果买了面包和香肠。列车一进入俄罗斯,他就嚷着要买伏特加尝尝,但各车站只收卢布,所以他在列车上到处兑换卢布。在新西伯利亚(Новосибирск.莫斯科时间10月6日16:00左右),马克西姆终于买了一大瓶俄罗斯啤酒(биво),我们举杯畅饮,那一晚我们都喝醉了,所以说了更多话。我们聊起比利时的巧克力和奶酪,马克希姆很想念家乡的这些食品。他说起两年前在公司的经历,有一个bad boss避开法律解除了他和一些朋友的劳动合同,他很生气,然后就决定旅游。我们说起美国,他非常鄙夷,他问我信仰宗教吗,并愤慨地拿出美元,指责在钞票上印刷“in god we trust”太过分。我说我不信仰宗教,但我信nature,尤其我在外面旅游时,我说“maybe, every traveler must trust in nature”,他非常赞同,并举例说一只小船在大海上,大海随时可以杀了你,这就是大自然的力量。马克希姆喜欢中国、俄罗斯、欧洲,他最常用的是词是crazy,中国的人口crazy,俄罗斯的疆域crazy,埃及的金字塔crazy,他不喜欢美国,认为那是capitalism, just money。批评了美国对伊拉克的战争,并希望中国强大起来与之抗衡,关于社会主义,他认为苏联、中国、古巴有一个好的开端和想法,但后面的发展方向错了,出现了集权,我们都认为互联网会推动社会更加民主,因为人们拥有更多的信息来源,来辨别信息的真伪。马克希姆还批评了电视,认为人们总是坐在电视机前,只会被动地接受电视里的内容,而电视节目总是由政府控制的,所以他希望人们离开电视,出来旅游“眼见为实”。他还讲到2008年奥运会,认为那会是一个巨大的盛会,很多人会来到中国亲眼看到中国所发生的变化。我告诉他,奥运会也带来了中国房价的大幅上涨,我很担心之后的经济危机,但马克希姆认为中国经济增长会放慢速度,逐渐趋于平稳,他用英语和手势表达了这个意思。 | ||
158 | 关于电影,我们谈了很多。他说他离开朋友去旅行时,把300多张电影送给了朋友,他的朋友非常happy。我们谈到电影《伯恩的身份》、《天使艾米丽》、《泰坦尼克》、《骇客帝国》、《指环王》、《美丽人生》……他还模仿了《美丽人生》里面的高个子男主角。我们都喜欢南斯拉夫电影《地下》,他告诉我《地下》的导演本身就是音乐制作人,他直叹服电影中的音乐crazy,我也有同感。他提到阿莫多瓦的《关于我妈妈的一切》、《不良教育》,不过我没有看过这两部片子,但我看过阿莫多瓦的《Talk to her》,可马克希姆没有看过。我们还说起南美电影《摩托日记》,于是说起切•格瓦拉,我告诉他几年前切•格瓦拉的传记在中国也很流行。不过马克希姆对俄罗斯电影、中国电影和伊朗电影了解不多,我告诉他前苏联导演梁赞诺夫的电影《办公室的故事》很有趣,中国电影他仅仅知道《少林寺》。我们还共同缅怀了逝去的伯格曼和安东尼奥尼,我说台湾的大导演杨德昌也是刚刚去世。他不喜欢美国商业电影,但也承认美国电影中有些精品…… | ||
159 | 最后我有些醉了,马克西姆取笑我,但他也晕菜了,然后他连续睡了20个小时,而我却失眠了。4个小时候后我醒来,在卧席上我辗转反侧,回想着离开北京前的情形,想起爸爸妈妈,想起琳岚,想起妹妹,想起老师、同学和朋友……马克西姆也是个很好的朋友,我们之间似乎有很多相似之处,但他有西方人的爽朗,而我是内敛的东方人,马克西姆说“You can be open-minded”,他说得对,我需要“open-mind”,在莫斯科我更需要。 | ||
160 | </p> | ||
161 | </div> | ||
162 | </div> | ||
163 | |||
164 | <div class="f-page"> | ||
165 | <div class="f-title"> | ||
166 | |||
167 | <h2>从北京到莫斯科</h2> | ||
168 | |||
169 | </div> | ||
170 | <div class="box w-30 h-60 box-b-r title-top"> | ||
171 | <h3>(九)城市<span>Published May 3, 2012</span></h3> | ||
172 | <p>马克西姆安静的时候,我经常翻看地图,查找我们正在经过的城市,熟悉俄罗斯的基本国情。 | ||
173 | 俄罗斯幅员辽阔,东西跨度极大,如果全国都使用莫斯科时间,产生的时间差将会很大。莫斯科一般早晨8、9点钟亮天,人们通常到凌晨1、2点钟才睡觉,而贝加尔湖畔凌晨3点多太阳已经照屁股,更东边的太平洋沿岸海港城市海参崴,这里的日出时间肯定比贝加尔湖还要早。乘坐火车横穿西伯利亚可以真切地感受到这种时间变化。据说远东地区有自己的时间,如果这样,与莫斯科交流信息时不知会产生多少麻烦。 | ||
174 | 俄罗斯的地势大体东高西低,最西边是东欧平原,向东依次是乌兰尔山、西西伯利亚平原、中西伯利亚高原和东西伯利亚山地。我们熟知的蒙古高原向北可以逐渐过渡到中西伯利亚高原,中国东北的大小兴安岭与俄罗斯的东西伯利亚山地也是一脉相承的。东高西低的地势造就了俄罗斯全国气温大体东低西高的特点,所以贝加尔湖正在下雪,西伯利亚这个时候也出现了零下2度的气温,铁路沿线经常看到积雪,但随着列车逐渐西行,积雪不再有,翻过乌拉尔山,东欧平原秋意盎然。 | ||
175 | K3国际列车实际上沿着俄罗斯的南部边缘行驶,而西西伯利亚平原和中西伯利亚高原的南部边缘属多山地带,植被以针叶林和白桦树为主,所以铁路沿线的白桦林和针叶林延绵不断,几乎未间断过,列车从森林深处驶来,进入城市,离开城市又迅速钻进广袤的森林。一路上,我除了赞叹俄罗斯壮美的自然风光,对俄罗斯丰富的自然资源也羡慕不已。也许是我的错觉,我感觉每隔几分钟、十几分钟都会有俄罗斯的货运列车疾驰而过,列车上装满石油、汽油、煤炭、木材、机械……可见这条铁路的繁忙,货运和客运调度之紧张。事实上,俄罗斯最发达的铁路网在乌拉尔山以西的欧洲部分,广袤的西伯利亚-远东地区只有西伯利亚大铁路和贝(贝加尔湖)阿(阿穆尔河,即黑龙江)铁路。这两条铁路在西伯利亚-远东地区的南部边缘构成一条狭长的运输带,而辽阔的北方几乎再没有什么铁路了,那里主要依靠公路运输、空运和短期的航运(俄罗斯北方河流结冰期较长),而这些运输方式都承担不了大宗的自然资源运输任务,所以西伯利亚-远东地区的自然资源会有相当一部分汇集到贝阿铁路和西伯利亚大铁路附近,再从这里输向东欧平原、中国、太平洋沿岸港口。 | ||
176 | 俄罗斯共有88个行政单位,包括各种共和国、边疆区、州、自治州、直辖市、民族自治区,众多行政单位在地图上看起来十分凌乱。但有一点很明显,东欧平原、西伯利亚-远东地区南部的行政区划最为密集,每个行政区的面积也比较小,这实在是因为这些地区人口稠密;而气候寒冷、人口稀少的极地地区,那里的行政单位十分辽阔。行政区划永远都是一种管理人口的手段。国际列车经过的南部地区、东欧平原正是俄罗斯城市化最高的地区,所以铁路沿线的大城市大部分是俄罗斯的能源基地、工业基地、地区经济中心: | ||
177 | 伊尔库茨克(Иркутск,莫斯科时间10月5日11:00左右经过),位于伊尔库特河和安哥拉河交汇处,距贝加尔湖66公里,而贝加尔湖的淡水储量占全俄地表淡水总储量4/5;该市生产的采金船和金刚石开采设备直接供远东地区使用,而远东地区是俄罗斯最大的黄金储备区和金刚石生产区。 | ||
178 | 克拉斯诺雅尔斯克(Красноярск,莫斯科时间10月6日凌晨4:00点左右经过),位于叶尼塞河畔,东西伯利亚地区最大的城市,而东西伯利亚地区的木材储量占全俄第一位,且多为优质木材。 | ||
179 | 新西伯利亚(Новосибирск,莫斯科时间10月6日16:00左右经过),位于鄂毕河畔,是整个西伯利亚地区最大的城市,西西伯利亚地区的经济中心,而西西伯利亚地区的石油储量占俄罗斯60%以上,天然气储量近90%,俄罗斯最大的煤田库兹巴斯也在该区。 | ||
180 | 秋明(Тюмень,莫斯科时间10月7日上午7:00左右经过),位于图拉河畔,属西西伯利亚经济区,附近地区的石油、天然气储量是美国阿拉斯加、德克萨斯、加利福尼亚三大油田的总和。该油田的开发,使俄罗斯赶超美国,成为世界上最大的石油生产国和出口国。 | ||
181 | 叶卡捷林堡,现称斯维尔德洛夫斯克(Свердловск,莫斯科时间10月7日上午12:00左右经过),位于乌拉尔山区伊谢季河畔,乌拉尔经济区最大的城市。该区钢铁产量占俄罗斯2/3,原铜产量占俄罗斯90%,是俄罗斯第一大冶金基地。该区一半面积为针叶林覆盖。 | ||
182 | …… | ||
183 | 当列车经过这些城市的时候,我总会首先想到这又是一个能源聚集地和工业中心,然后马上就可以看高耸的烟囱、巨大的吊车、粗壮的输油道,在车站又总会看到长长的货运列车,一派繁忙景象。我不禁为这个国家丰富的自然资源、扎实的重工业水平连连感叹,这样的国家,怎能不会重新崛起?又连连咂舌,如此幅员辽阔,俄罗斯还在向北极扩张……我还常常想,坐拥资源,俄罗斯的经济发展模式岂不应该很简单,找个油田、煤田、气田,或者林区,坐下来开采、深加工不就行了?能源依托型的发展模式在乌拉尔、西伯利亚-远东地区到处都可以复制。哪里像中国,不知道有多少城市在为发展模式发愁,谋求产业转型,寄希望于旅游业、服务业等等。中国所承受的各种压力决定了中国要在发展模式上“精耕细作”,而几十年内俄罗斯不需要这样,恐怕这既是它的优势,也是它的劣势。 | ||
184 | 仅从铁路两侧看俄罗斯的城市是看不出什么明堂的,待到达莫斯科后,我会用更多的时间仔细观察。不过俄罗斯的很多城市都位于河畔,比如伊尔库茨克、克拉斯诺雅尔斯克、新西伯利亚、秋明、叶卡捷林堡城内都有河流穿过,此外,车里雅宾斯克坐落在米阿斯河畔,伏尔加格勒坐落在伏尔加河畔,奥姆斯克坐落在鄂木河畔,莫斯科城内有莫斯科河,圣彼得堡更是“北方威尼斯”……城市有河,就增添了许多灵气,人们的生活也会多几分浪漫和宁静。火车经过新西伯利亚的时候,我拍了长达20分钟的短片,正值暮色降临,天空布满深蓝色的云,只有太阳落山的地方泛出霞红,仿佛是上帝的眼睛窥视苍生,突然经过铁路桥,桥下流淌着一条明亮的河,倒映着天空的深蓝与绯红,岸边安静地泊着轮船,各种吊车高高耸起,远处似乎还有一座大桥,桥上灯火相连,俨然一串白色珍珠……那种感觉,真是静谧、安详、通透。然后我想起北京,未名湖只是一摊小水,墙外的护城河被水泥包裹着,经常看不见蓝天,苍穹是一片混沌,生活也浑浑噩噩,并貌似繁忙,哎…… | ||
185 | 还是应该走出来。 | ||
186 | </p> | ||
187 | </div> | ||
188 | <div class="box w-70 h-60 box-img-left title-top"> | ||
189 | <div class="img-cont img-7"></div> | ||
190 | <h3>(十)食物<span>Published May 3, 2012</span></h3> | ||
191 | <p>大概,列车进入蒙古后就会换上蒙古国的餐车,进入俄罗斯后就会换上俄方的餐车,所以从第二天开始列车上就不再提供免费食物。我自己带了很多食物,约10包方便面、方便馄炖和方便米饭各一包、两大袋切片面包、1大盒蛋黄派、两包饼干、6袋儿牛奶……lan给我买了两大盒德芙巧克力,师兄和好友又买了好多苹果、桔子、香蕉,还有一个大柚子。 列车上我和马克西姆交换着食物,吃得不亦乐乎。马克西姆吃东西静悄悄,我正在低头看书之际,他已经把一碗泡面报销了,而我毫未察觉,出于礼貌,我也静悄悄地吃东西,不再有吃面时的“呲溜呲溜”声音。 | ||
192 | 我想,我还是会比较适应西餐的吃法儿,包括俄餐。因为在彼得堡餐厅吃面包和奶酪,我觉得很香,而lan觉得不好吃;在列车上,我吃面包夹香肠,我也觉得津津有味,马克西姆也这么吃。如果我能很快适应这种简单的食物,那么我在莫斯科的一日三餐,至少会有一餐很便宜。我觉得,要适应西餐,应该学着适应食物的原味儿,西餐中很多蔬菜是生吃的,肉类的烹调方法也比较简单,调料种类不多,因此这些食物保留原味的可能性更大。与之相比,中国食物的烹调手段过于丰富,煎、炒、炸、炝、煮、蒸、拌、焖等不胜枚举,还大量使用酱油、味精等人工调料,这固然会增加我们的食物多样性,但也使大部分食物丧失了原味,并且我们还经常把多种菜放在一起混合加工以充实味道,这更使我们难以分辨单种食物的原味。在城市里,人们现在不吃麻、辣就觉得不香、没味儿,这多少说明了城市人味觉系统的逐渐麻木。但凡美食家、大厨师,都要从分辨食物的原味开始,然后才会对混合味道进行评判。 | ||
193 | 我觉得,我可能有逐渐喜爱原味食物的趋势。在学校食堂里,我最爱吃的饭菜组合是:米饭,醋熘白菜(或简单的煮白菜)和牛肉片;我最喜欢的牛奶是纯牛奶,咖啡也比较喜欢黑咖啡,各种饮料逐渐不喜欢了,转而喜欢白开水和绿茶。我相信,我的餐饮会逐渐趋于简单,大概我的爱好和性情在逐渐向这个方向变化。 | ||
194 | 面包、酸黄瓜、牛肉、香肠、牛奶、鱼罐头、土豆、菜豆、奶酪……我对简单的俄餐生活充满了期待。 | ||
195 | </p> | ||
196 | </div> | ||
197 | <div class="box w-40 h-40 box-img-left box-b-r title-top"> | ||
198 | <div class="img-cont img-8"></div> | ||
199 | <h3>(十一)期待<span>Published May 3, 2012</span></h3> | ||
200 | <p>莫斯科时间10月8日上午,还有几个小时列车就要抵达莫斯科了,六天五夜的旅程即将结束。火车厢内,人心惶惶,隔壁的中国人不断地询问时间,不断埋怨“时间过得真慢”,这些天来,他总来我们包厢“攫取”欢乐,对马克西姆充满好奇,经常要我帮他问马克西姆一些问题,比如“一年挣多少钱”,“怎么还不结婚”。起初马克西姆还经常邀请他一起玩YAHZEE游戏,到了后来,马克西姆朝我挤眉弄眼,要我把门关上,我们两个人悄悄玩YAHZEE。 | ||
201 | 我和马克西姆也开始收拾行李。马克西姆把剩下的方便面都给了我,还给我了一些药片,他告诉我在野外没有干净水源时,只需舀起河水,放入这些药片就可以杀死水里的病菌。马克西姆给我推荐了旅行网站www.wikipedia.org,在这个网站上可以找到很多城市的免费旅馆、便宜餐厅以及其他方便旅行的信息,他就是利用这个网站开始全球旅行的,我们也交换了email,他邀请我去比利时玩,我答应他几年后肯定会在比利时找到他。 (wikipedia不就是维基百科么。。。怎么会有免费旅馆之类的信息。。。想不通——Jinwei注) | ||
202 | 我整理了我的东西,证件、笔记本、美元都在,箱子里的东西也都不少,但我的经验告诉我,下车的时候有可能会发生些事,但愿什么都不要发生,想到这里,我不由得增加了警觉。但愿有同学在车站接我,但如果同学不能准时到车站呢?幸好昨晚我在乘务员那里换了100卢布,如果在车站我见不到同学,那我就自己去找метро(地铁),然后到университет(大学)站下车,据说下车就是莫斯科大学。 | ||
203 | 和马克西姆又说了些话,他说他们全家都是旅游爱好者,他有两个sister,祖母已经80多岁了,结果我听成他母亲80多岁,我们哈哈大笑,他父亲和他一样都是漫画迷。东西收拾完毕,我开始望着窗外的俄罗斯村庄,一座座小木屋从眼前掠过,屋顶很高很大,多是三角形,或者是匀称的五边形,想必屋顶就是阁楼,不知是储藏食物的,还是住着美丽的俄罗斯小女孩。几乎每家农户都有一个菜园,用整齐的木板围成栅栏,菜园里又会有一两个简陋矮屋,大概是仓房。人们并没有把居住区的桦树、松树都砍掉,“夷为平地”似乎不是俄罗斯居民的生活习惯,木屋总是散布在林间,远远望去,村庄常常藏在树林后面,挂满金黄的白桦林又总是让村庄露出一些马脚。不过我有些好奇,这些木屋该怎样取暖呢?又该怎样防火?我想起,初中学俄语的时候,课文里最常出现的描写居住环境的单词就是село(村庄),река(河),лес(森林),береза(白桦树),город(城市),деревня(农村)……正是这些词以及对这些词的想象形成了我对俄罗斯的想象,并逐渐沉淀、凝结为我的俄罗斯情结,这种情结不但没有因为六天来的旅行而消散,反而变得更深更切,我的想象也更加热烈,也许,这就是期待吧。 | ||
204 | 我开始看见很多房屋和更茂密的白桦林……开始看见停在铁路上的货运列车和客运列车……开始看见修剪整齐的草坪……开始看见楼房……开始看见墙上涂抹的镰刀斧头……开始看见立交桥和路边广告牌……我感觉到车速变慢了…… | ||
205 | 马克西姆拿出比利时国旗,手舞足蹈地唱起被他称为“shit”的比利时国歌。 | ||
206 | 列车缓缓停下了,乘务员高声说“莫斯科到了”……莫斯科到了,我说不清自己的心情。 | ||
207 | 马克西姆帮我提一个箱子下车,一个刚上车的中国胖子对乘务员说:“这是3000多卢布,在国内肯定能换1000多人民币”,乘务员说:“有什么需求再给我打电话”,然后胖子搬走了很多食品,那些食品就放在没有旅客的包厢里。 | ||
208 | 莫斯科好像刚下过雨,站台上湿漉漉的,我跟马克西姆握手告别,see you in Belgium!然后马克西姆背起双肩包,消失在行色匆匆的人群中。 | ||
209 | 我在站台上没有看到同学,有些失望,正打算拖着两个箱子自己走,忽见前方一个瘦高男子迎面走来,撑着伞,头略低,手里拿着一张硬纸,上面写着汉字“莫大”,我急忙迎上去。“Здравствуйте(你好)”!“你是北京来的”?“Да(是的)”!“是研究生吗”?“yeah,аспирант(研究生)”,“一路辛苦哩”……我的语言系统又乱了,而这个俄罗斯人的汉语讲得真地道! | ||
210 | “我们坐地铁去莫大吧”! | ||
211 | “太好了”! | ||
212 | 出火车站无需任何检查,这出乎我的意料。俄罗斯大个子告诉我,“前面不远处的高大建筑就是地铁”,我知道这肯定是комсомольская(共青团)站。 | ||
213 | 我跟着大个子径直向传说中的莫斯科地铁走去。 | ||
214 | [email protected] | ||
215 | 莫斯科时间10月21日 (完) | ||
216 | </p> | ||
217 | </div> | ||
218 | <div class="box w-30 h-40 box-b-r title-top"> | ||
219 | <h3>(十二)Ich Lieb Dich Immer Noch So Sehr <span>Published May 3, 2012</span></h3> | ||
220 | <p>我仍然如此爱你 | ||
221 | 你将自己锁进我心里 | ||
222 | 悄悄地在我心里越走越深 | ||
223 | 我失去对自己意志的控制 | ||
224 | 只有你控制着我的感觉 | ||
225 | 你将我们连在了一起 | ||
226 | 许诺过永远不离开我 | ||
227 | 你点燃了我的热情 | ||
228 | 却让我独自燃烧 | ||
229 | 我仍然如此爱你 | ||
230 | 仍然如此深爱你 | ||
231 | 你的眼神诱惑了我,让我们的灵魂彼此触摸 | ||
232 | 我仍然如此爱你 | ||
233 | 我泪流满面,心中空白, | ||
234 | 因为没有你,一切都没有意义 | ||
235 | |||
236 | 围着你我狂奔十万英里 | ||
237 | 我们所不能分担的痛楚让我双倍疼痛 | ||
238 | 在每一条路上我寻找着你 | ||
239 | 你将永在我心 | ||
240 | 你是倾盆大雨 | ||
241 | 我因你而哭泣 | ||
242 | |||
243 | 我仍然如此爱你 | ||
244 | 仍然如此深爱你 | ||
245 | 你的眼神诱惑了我,让我们的灵魂彼此触摸 | ||
246 | 我仍然如此爱你 | ||
247 | 我泪流满面,心中空白, | ||
248 | 因为没有你,一切都没有意义 | ||
249 | 你是一场暴雨 | ||
250 | 我因你而哭泣 | ||
251 | 我仍然如此爱你 | ||
252 | 仍然如此深爱你 | ||
253 | 你的眼神诱惑了我,让我们的灵魂彼此触摸 | ||
254 | |||
255 | 我仍然如此爱你 | ||
256 | 我泪流满面,心中空白 | ||
257 | 因为没有你,一切都没有意义 | ||
258 | 我的每个细胞 | ||
259 | 都爱着你的每个细胞 | ||
260 | 别人代替了我你会很难过吗</p> | ||
261 | </div> | ||
262 | <div class="box w-30 h-40 title-top"> | ||
263 | <h3>L&R <span>Published May 3, 2012</span></h3> | ||
264 | <p>”I can’t see anything”</p> | ||
265 | <p> “No,you can.Just try” </p> | ||
266 | <p>“I ‘m so scared”</p> | ||
267 | <p> “I ‘m here” </p> | ||
268 | <p>“What if……”</p> | ||
269 | <p> “I won’t leave”</p> | ||
270 | <p> “Really?” </p> | ||
271 | <p>“I just said it”</p> | ||
272 | <p> “But……” </p> | ||
273 | <p>“But what?”</p> | ||
274 | <p> “Thank you.”</p> | ||
275 | </div> | ||
276 | </div> | ||
277 | |||
278 | <div class="f-page f-cover-back"> | ||
279 | <div id="codrops-ad-wrapper"> | ||
280 | |||
281 | </div> | ||
282 | </div> | ||
283 | </div> | ||
284 | |||
285 | <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> | ||
286 | <script type="text/javascript"> | ||
287 | |||
288 | var $container = $( '#flip' ), | ||
289 | $pages = $container.children().hide(); | ||
290 | |||
291 | Modernizr.load({ | ||
292 | test: Modernizr.csstransforms3d && Modernizr.csstransitions, | ||
293 | yep : ['js/jquery.tmpl.min.js','js/jquery.history.js','js/core.string.js','js/jquery.touchSwipe-1.2.5.js','js/jquery.flips.js'], | ||
294 | nope: 'css/fallback.css', | ||
295 | callback : function( url, result, key ) { | ||
296 | |||
297 | if( url === 'css/fallback.css' ) { | ||
298 | $pages.show(); | ||
299 | } | ||
300 | else if( url === 'js/jquery.flips.js' ) { | ||
301 | $container.flips(); | ||
302 | } | ||
303 | |||
304 | } | ||
305 | }); | ||
306 | |||
307 | </script> | ||
308 | |||
309 | <!-- jinwei.me Baidu tongji analytics --> | ||
310 | <script type="text/javascript"> | ||
311 | var _bdhmProtocol = (("https:" == document.location.protocol) ? " https://" : " http://"); | ||
312 | document.write(unescape("%3Cscript src='" + _bdhmProtocol + "hm.baidu.com/h.js%3F91918ac6d6854623883a2b546ebc00ac' type='text/javascript'%3E%3C/script%3E")); | ||
313 | </script> | ||
314 | |||
315 | </body> | ||
316 | </html> \ No newline at end of file | ||
diff --git a/Blocks/Flipboard/js/core.string.js b/Blocks/Flipboard/js/core.string.js new file mode 100644 index 0000000..312a42e --- /dev/null +++ b/Blocks/Flipboard/js/core.string.js | |||
@@ -0,0 +1,240 @@ | |||
1 | /** | ||
2 | * @depends nothing | ||
3 | * @name core.string | ||
4 | * @package jquery-sparkle {@link http://www.balupton/projects/jquery-sparkle} | ||
5 | */ | ||
6 | |||
7 | /** | ||
8 | * Return a new string with any spaces trimmed the left and right of the string | ||
9 | * @version 1.0.0 | ||
10 | * @date June 30, 2010 | ||
11 | * @package jquery-sparkle {@link http://www.balupton/projects/jquery-sparkle} | ||
12 | * @author Benjamin "balupton" Lupton {@link http://www.balupton.com} | ||
13 | * @copyright (c) 2009-2010 Benjamin Arthur Lupton {@link http://www.balupton.com} | ||
14 | * @license GNU Affero General Public License version 3 {@link http://www.gnu.org/licenses/agpl-3.0.html} | ||
15 | */ | ||
16 | String.prototype.trim = String.prototype.trim || function() { | ||
17 | // Trim off any whitespace from the front and back | ||
18 | return this.replace(/^\s+|\s+$/g, ''); | ||
19 | }; | ||
20 | |||
21 | /** | ||
22 | * Return a new string with the value stripped from the left and right of the string | ||
23 | * @version 1.1.1 | ||
24 | * @date July 22, 2010 | ||
25 | * @since 1.0.0, June 30, 2010 | ||
26 | * @package jquery-sparkle {@link http://www.balupton/projects/jquery-sparkle} | ||
27 | * @author Benjamin "balupton" Lupton {@link http://www.balupton.com} | ||
28 | * @copyright (c) 2009-2010 Benjamin Arthur Lupton {@link http://www.balupton.com} | ||
29 | * @license GNU Affero General Public License version 3 {@link http://www.gnu.org/licenses/agpl-3.0.html} | ||
30 | */ | ||
31 | String.prototype.strip = String.prototype.strip || function(value,regex){ | ||
32 | // Strip a value from left and right, with optional regex support (defaults to false) | ||
33 | value = String(value); | ||
34 | var str = this; | ||
35 | if ( value.length ) { | ||
36 | if ( !(regex||false) ) { | ||
37 | // We must escape value as we do not want regex support | ||
38 | value = value.replace(/([\[\]\(\)\^\$\.\?\|\/\\])/g, '\\$1'); | ||
39 | } | ||
40 | str = str.replace(eval('/^'+value+'+|'+value+'+$/g'), ''); | ||
41 | } | ||
42 | return String(str); | ||
43 | } | ||
44 | |||
45 | /** | ||
46 | * Return a new string with the value stripped from the left of the string | ||
47 | * @version 1.1.1 | ||
48 | * @date July 22, 2010 | ||
49 | * @package jquery-sparkle {@link http://www.balupton/projects/jquery-sparkle} | ||
50 | * @author Benjamin "balupton" Lupton {@link http://www.balupton.com} | ||
51 | * @copyright (c) 2009-2010 Benjamin Arthur Lupton {@link http://www.balupton.com} | ||
52 | * @license GNU Affero General Public License version 3 {@link http://www.gnu.org/licenses/agpl-3.0.html} | ||
53 | */ | ||
54 | String.prototype.stripLeft = String.prototype.stripLeft || function(value,regex){ | ||
55 | // Strip a value from the left, with optional regex support (defaults to false) | ||
56 | value = String(value); | ||
57 | var str = this; | ||
58 | if ( value.length ) { | ||
59 | if ( !(regex||false) ) { | ||
60 | // We must escape value as we do not want regex support | ||
61 | value = value.replace(/([\[\]\(\)\^\$\.\?\|\/\\])/g, '\\$1'); | ||
62 | } | ||
63 | str = str.replace(eval('/^'+value+'+/g'), ''); | ||
64 | } | ||
65 | return String(str); | ||
66 | } | ||
67 | |||
68 | /** | ||
69 | * Return a new string with the value stripped from the right of the string | ||
70 | * @version 1.1.1 | ||
71 | * @date July 22, 2010 | ||
72 | * @package jquery-sparkle {@link http://www.balupton/projects/jquery-sparkle} | ||
73 | * @author Benjamin "balupton" Lupton {@link http://www.balupton.com} | ||
74 | * @copyright (c) 2009-2010 Benjamin Arthur Lupton {@link http://www.balupton.com} | ||
75 | * @license GNU Affero General Public License version 3 {@link http://www.gnu.org/licenses/agpl-3.0.html} | ||
76 | */ | ||
77 | String.prototype.stripRight = String.prototype.stripRight || function(value,regex){ | ||
78 | // Strip a value from the right, with optional regex support (defaults to false) | ||
79 | value = String(value); | ||
80 | var str = this; | ||
81 | if ( value.length ) { | ||
82 | if ( !(regex||false) ) { | ||
83 | // We must escape value as we do not want regex support | ||
84 | value = value.replace(/([\[\]\(\)\^\$\.\?\|\/\\])/g, '\\$1'); | ||
85 | } | ||
86 | str = str.replace(eval('/'+value+'+$/g'), ''); | ||
87 | } | ||
88 | return String(str); | ||
89 | } | ||
90 | |||
91 | /** | ||
92 | * Return a int of the string | ||
93 | * @version 1.0.0 | ||
94 | * @date June 30, 2010 | ||
95 | * @package jquery-sparkle {@link http://www.balupton/projects/jquery-sparkle} | ||
96 | * @author Benjamin "balupton" Lupton {@link http://www.balupton.com} | ||
97 | * @copyright (c) 2009-2010 Benjamin Arthur Lupton {@link http://www.balupton.com} | ||
98 | * @license GNU Affero General Public License version 3 {@link http://www.gnu.org/licenses/agpl-3.0.html} | ||
99 | */ | ||
100 | String.prototype.toInt = String.prototype.toInt || function(){ | ||
101 | // Convert to a Integer | ||
102 | return parseInt(this,10); | ||
103 | }; | ||
104 | |||
105 | /** | ||
106 | * Return a new string of the old string wrapped with the start and end values | ||
107 | * @version 1.0.0 | ||
108 | * @date June 30, 2010 | ||
109 | * @package jquery-sparkle {@link http://www.balupton/projects/jquery-sparkle} | ||
110 | * @author Benjamin "balupton" Lupton {@link http://www.balupton.com} | ||
111 | * @copyright (c) 2009-2010 Benjamin Arthur Lupton {@link http://www.balupton.com} | ||
112 | * @license GNU Affero General Public License version 3 {@link http://www.gnu.org/licenses/agpl-3.0.html} | ||
113 | */ | ||
114 | String.prototype.wrap = String.prototype.wrap || function(start,end){ | ||
115 | // Wrap the string | ||
116 | return start+this+end; | ||
117 | }; | ||
118 | |||
119 | /** | ||
120 | * Return a new string of a selection of the old string wrapped with the start and end values | ||
121 | * @version 1.0.0 | ||
122 | * @date June 30, 2010 | ||
123 | * @package jquery-sparkle {@link http://www.balupton/projects/jquery-sparkle} | ||
124 | * @author Benjamin "balupton" Lupton {@link http://www.balupton.com} | ||
125 | * @copyright (c) 2009-2010 Benjamin Arthur Lupton {@link http://www.balupton.com} | ||
126 | * @license GNU Affero General Public License version 3 {@link http://www.gnu.org/licenses/agpl-3.0.html} | ||
127 | */ | ||
128 | String.prototype.wrapSelection = String.prototype.wrapSelection || function(start,end,a,z){ | ||
129 | // Wrap the selection | ||
130 | if ( typeof a === 'undefined' || a === null ) a = this.length; | ||
131 | if ( typeof z === 'undefined' || z === null ) z = this.length; | ||
132 | return this.substring(0,a)+start+this.substring(a,z)+end+this.substring(z); | ||
133 | }; | ||
134 | |||
135 | /** | ||
136 | * Return a new string of the slug of the old string | ||
137 | * @version 1.1.0 | ||
138 | * @date July 16, 2010 | ||
139 | * @since 1.0.0, June 30, 2010 | ||
140 | * @package jquery-sparkle {@link http://www.balupton/projects/jquery-sparkle} | ||
141 | * @author Benjamin "balupton" Lupton {@link http://www.balupton.com} | ||
142 | * @copyright (c) 2009-2010 Benjamin Arthur Lupton {@link http://www.balupton.com} | ||
143 | * @license GNU Affero General Public License version 3 {@link http://www.gnu.org/licenses/agpl-3.0.html} | ||
144 | */ | ||
145 | String.prototype.toSlug = String.prototype.toSlug || function(){ | ||
146 | // Convert a string to a slug | ||
147 | return this.toLowerCase().replace(/[\s_]/g, '-').replace(/[^-a-z0-9]/g, '').replace(/--+/g, '-').replace(/^-+|-+$/g,''); | ||
148 | } | ||
149 | |||
150 | /** | ||
151 | * Return a new JSON object of the old string. | ||
152 | * Turns: | ||
153 | * file.js?a=1&b.c=3.0&b.d=four&a_false_value=false&a_null_value=null | ||
154 | * Into: | ||
155 | * {"a":1,"b":{"c":3,"d":"four"},"a_false_value":false,"a_null_value":null} | ||
156 | * @version 1.1.0 | ||
157 | * @date July 16, 2010 | ||
158 | * @since 1.0.0, June 30, 2010 | ||
159 | * @package jquery-sparkle {@link http://www.balupton/projects/jquery-sparkle} | ||
160 | * @author Benjamin "balupton" Lupton {@link http://www.balupton.com} | ||
161 | * @copyright (c) 2009-2010 Benjamin Arthur Lupton {@link http://www.balupton.com} | ||
162 | * @license GNU Affero General Public License version 3 {@link http://www.gnu.org/licenses/agpl-3.0.html} | ||
163 | */ | ||
164 | String.prototype.queryStringToJSON = String.prototype.queryStringToJSON || function ( ) | ||
165 | { // Turns a params string or url into an array of params | ||
166 | // Prepare | ||
167 | var params = String(this); | ||
168 | // Remove url if need be | ||
169 | params = params.substring(params.indexOf('?')+1); | ||
170 | // params = params.substring(params.indexOf('#')+1); | ||
171 | // Change + to %20, the %20 is fixed up later with the decode | ||
172 | params = params.replace(/\+/g, '%20'); | ||
173 | // Do we have JSON string | ||
174 | if ( params.substring(0,1) === '{' && params.substring(params.length-1) === '}' ) | ||
175 | { // We have a JSON string | ||
176 | return eval(decodeURIComponent(params)); | ||
177 | } | ||
178 | // We have a params string | ||
179 | params = params.split(/\&(amp\;)?/); | ||
180 | var json = {}; | ||
181 | // We have params | ||
182 | for ( var i = 0, n = params.length; i < n; ++i ) | ||
183 | { | ||
184 | // Adjust | ||
185 | var param = params[i] || null; | ||
186 | if ( param === null ) { continue; } | ||
187 | param = param.split('='); | ||
188 | if ( param === null ) { continue; } | ||
189 | // ^ We now have "var=blah" into ["var","blah"] | ||
190 | |||
191 | // Get | ||
192 | var key = param[0] || null; | ||
193 | if ( key === null ) { continue; } | ||
194 | if ( typeof param[1] === 'undefined' ) { continue; } | ||
195 | var value = param[1]; | ||
196 | // ^ We now have the parts | ||
197 | |||
198 | // Fix | ||
199 | key = decodeURIComponent(key); | ||
200 | value = decodeURIComponent(value); | ||
201 | try { | ||
202 | // value can be converted | ||
203 | value = eval(value); | ||
204 | } catch ( e ) { | ||
205 | // value is a normal string | ||
206 | } | ||
207 | |||
208 | // Set | ||
209 | // window.console.log({'key':key,'value':value}, split); | ||
210 | var keys = key.split('.'); | ||
211 | if ( keys.length === 1 ) | ||
212 | { // Simple | ||
213 | json[key] = value; | ||
214 | } | ||
215 | else | ||
216 | { // Advanced (Recreating an object) | ||
217 | var path = '', | ||
218 | cmd = ''; | ||
219 | // Ensure Path Exists | ||
220 | $.each(keys,function(ii,key){ | ||
221 | path += '["'+key.replace(/"/g,'\\"')+'"]'; | ||
222 | jsonCLOSUREGLOBAL = json; // we have made this a global as closure compiler struggles with evals | ||
223 | cmd = 'if ( typeof jsonCLOSUREGLOBAL'+path+' === "undefined" ) jsonCLOSUREGLOBAL'+path+' = {}'; | ||
224 | eval(cmd); | ||
225 | json = jsonCLOSUREGLOBAL; | ||
226 | delete jsonCLOSUREGLOBAL; | ||
227 | }); | ||
228 | // Apply Value | ||
229 | jsonCLOSUREGLOBAL = json; // we have made this a global as closure compiler struggles with evals | ||
230 | valueCLOSUREGLOBAL = value; // we have made this a global as closure compiler struggles with evals | ||
231 | cmd = 'jsonCLOSUREGLOBAL'+path+' = valueCLOSUREGLOBAL'; | ||
232 | eval(cmd); | ||
233 | json = jsonCLOSUREGLOBAL; | ||
234 | delete jsonCLOSUREGLOBAL; | ||
235 | delete valueCLOSUREGLOBAL; | ||
236 | } | ||
237 | // ^ We now have the parts added to your JSON object | ||
238 | } | ||
239 | return json; | ||
240 | }; \ No newline at end of file | ||
diff --git a/Blocks/Flipboard/js/jquery.flips.js b/Blocks/Flipboard/js/jquery.flips.js new file mode 100644 index 0000000..5c25d87 --- /dev/null +++ b/Blocks/Flipboard/js/jquery.flips.js | |||
@@ -0,0 +1,965 @@ | |||
1 | /** | ||
2 | * jquery.flips.js | ||
3 | * | ||
4 | * Copyright 2011, Pedro Botelho / Codrops | ||
5 | * Free to use under the MIT license. | ||
6 | * | ||
7 | * Date: Fri May 4 2012 | ||
8 | */ | ||
9 | |||
10 | /** | ||
11 | * Note: This is highly experimental and just a proof-of-concept! | ||
12 | * There are some few "hacks", probably some bugs, and some functionality | ||
13 | * is incomplete... definitely not ready for a production environment. | ||
14 | * | ||
15 | * | ||
16 | * Tested and working on: | ||
17 | * - Google Chrome 18.0.1025.168 | ||
18 | * - Apple Safari 5.1.5 | ||
19 | * - Apple Safari 5.1 Mobile | ||
20 | * | ||
21 | */ | ||
22 | |||
23 | (function( window, undefined ) { | ||
24 | |||
25 | $.Flips = function( options, element ) { | ||
26 | |||
27 | this.$el = $( element ); | ||
28 | this._init( options ); | ||
29 | |||
30 | }; | ||
31 | |||
32 | $.Flips.defaults = { | ||
33 | flipspeed : 900, | ||
34 | fliptimingfunction : 'linear', | ||
35 | current : 0 | ||
36 | }; | ||
37 | |||
38 | $.Flips.prototype = { | ||
39 | _init : function( options ) { | ||
40 | |||
41 | this.options = $.extend( true, {}, $.Flips.defaults, options ); | ||
42 | this.$pages = this.$el.children( 'div.f-page' ); | ||
43 | this.pagesCount = this.$pages.length; | ||
44 | this.History = window.History; | ||
45 | this.currentPage = this.options.current; | ||
46 | this._validateOpts(); | ||
47 | this._getWinSize(); | ||
48 | this._getState(); | ||
49 | this._layout(); | ||
50 | this._initTouchSwipe(); | ||
51 | this._loadEvents(); | ||
52 | this._goto(); | ||
53 | |||
54 | }, | ||
55 | _validateOpts : function() { | ||
56 | |||
57 | if( this.currentPage < 0 || this.currentPage > this.pagesCount ) { | ||
58 | |||
59 | this.currentPage = 0; | ||
60 | |||
61 | } | ||
62 | |||
63 | }, | ||
64 | _getWinSize : function() { | ||
65 | |||
66 | var $win = $( window ); | ||
67 | |||
68 | this.windowProp = { | ||
69 | width : $win.width(), | ||
70 | height : $win.height() | ||
71 | }; | ||
72 | |||
73 | }, | ||
74 | _goto : function() { | ||
75 | |||
76 | var page = ( this.state === undefined ) ? this.currentPage : this.state; | ||
77 | |||
78 | if( !this._isNumber( page ) || page < 0 || page > this.flipPagesCount ) { | ||
79 | |||
80 | page = 0; | ||
81 | |||
82 | } | ||
83 | |||
84 | this.currentPage = page; | ||
85 | |||
86 | }, | ||
87 | _getState : function() { | ||
88 | |||
89 | this.state = this.History.getState().url.queryStringToJSON().page; | ||
90 | |||
91 | }, | ||
92 | _isNumber : function( n ) { | ||
93 | |||
94 | return parseFloat( n ) == parseInt( n ) && !isNaN( n ) && isFinite( n ); | ||
95 | |||
96 | }, | ||
97 | _adjustLayout : function( page ) { | ||
98 | |||
99 | var _self = this; | ||
100 | |||
101 | this.$flipPages.each( function( i ) { | ||
102 | |||
103 | var $page = $(this); | ||
104 | |||
105 | if( i === page - 1 ) { | ||
106 | |||
107 | $page.css({ | ||
108 | '-webkit-transform' : 'rotateY( -180deg )', | ||
109 | '-moz-transform' : 'rotateY( -180deg )', | ||
110 | 'z-index' : _self.flipPagesCount - 1 + i | ||
111 | }); | ||
112 | |||
113 | } | ||
114 | else if( i < page ) { | ||
115 | |||
116 | $page.css({ | ||
117 | '-webkit-transform' : 'rotateY( -181deg )', // todo: fix this (should be -180deg) | ||
118 | '-moz-transform' : 'rotateY( -181deg )', // todo: fix this (should be -180deg) | ||
119 | 'z-index' : _self.flipPagesCount - 1 + i | ||
120 | }); | ||
121 | |||
122 | } | ||
123 | else { | ||
124 | |||
125 | $page.css({ | ||
126 | '-webkit-transform' : 'rotateY( 0deg )', | ||
127 | '-moz-transform' : 'rotateY( 0deg )', | ||
128 | 'z-index' : _self.flipPagesCount - 1 - i | ||
129 | }); | ||
130 | |||
131 | } | ||
132 | |||
133 | } ); | ||
134 | |||
135 | }, | ||
136 | _saveState : function() { | ||
137 | |||
138 | // adds a new state to the history object and triggers the statechange event on the window | ||
139 | var page = this.currentPage; | ||
140 | |||
141 | if( this.History.getState().url.queryStringToJSON().page !== page ) { | ||
142 | |||
143 | this.History.pushState( null, null, '?page=' + page ); | ||
144 | |||
145 | } | ||
146 | |||
147 | }, | ||
148 | _layout : function() { | ||
149 | |||
150 | this._setLayoutSize(); | ||
151 | |||
152 | for( var i = 0; i <= this.pagesCount - 2; ++i ) { | ||
153 | |||
154 | var $page = this.$pages.eq( i ), | ||
155 | pageData = { | ||
156 | theClass : 'page', | ||
157 | theContentFront : $page.html(), | ||
158 | theContentBack : ( i !== this.pagesCount ) ? this.$pages.eq( i + 1 ).html() : '', | ||
159 | theStyle : 'z-index: ' + ( this.pagesCount - i ) + ';left: ' + ( this.windowProp.width / 2 ) + 'px;', | ||
160 | theContentStyleFront : 'width:' + this.windowProp.width + 'px;', | ||
161 | theContentStyleBack : 'width:' + this.windowProp.width + 'px;' | ||
162 | }; | ||
163 | |||
164 | if( i === 0 ) { | ||
165 | |||
166 | pageData.theClass += ' cover'; | ||
167 | |||
168 | } | ||
169 | else { | ||
170 | |||
171 | pageData.theContentStyleFront += 'left:-' + ( this.windowProp.width / 2 ) + 'px'; | ||
172 | |||
173 | if( i === this.pagesCount - 2 ) { | ||
174 | |||
175 | pageData.theClass += ' cover-back'; | ||
176 | |||
177 | } | ||
178 | |||
179 | } | ||
180 | |||
181 | $( '#pageTmpl' ).tmpl( pageData ).appendTo( this.$el ); | ||
182 | |||
183 | } | ||
184 | |||
185 | this.$pages.remove(); | ||
186 | this.$flipPages = this.$el.children( 'div.page' ); | ||
187 | this.flipPagesCount = this.$flipPages.length; | ||
188 | |||
189 | this._adjustLayout( ( this.state === undefined ) ? this.currentPage : this.state ); | ||
190 | |||
191 | }, | ||
192 | _setLayoutSize : function() { | ||
193 | |||
194 | this.$el.css( { | ||
195 | width : this.windowProp.width, | ||
196 | height : this.windowProp.height | ||
197 | } ); | ||
198 | |||
199 | }, | ||
200 | _initTouchSwipe : function() { | ||
201 | |||
202 | var _self = this; | ||
203 | |||
204 | this.$el.swipe( { | ||
205 | threshold : 0, | ||
206 | swipeStatus : function( event, phase, start, end, direction, distance ) { | ||
207 | |||
208 | var startX = start.x, | ||
209 | endX = end.x, | ||
210 | sym, angle, | ||
211 | oob = false, | ||
212 | noflip = false; | ||
213 | |||
214 | // check the "page direction" to flip: | ||
215 | // if the page flips from the right to the left (right side page) | ||
216 | // or from the left to the right (left side page). | ||
217 | // check only if not animating | ||
218 | if( !_self._isAnimating() ) { | ||
219 | |||
220 | ( startX < _self.windowProp.width / 2 ) ? _self.flipSide = 'l2r' : _self.flipSide = 'r2l'; | ||
221 | |||
222 | } | ||
223 | |||
224 | if( direction === 'up' || direction === 'down' ) { | ||
225 | |||
226 | if( _self.angle === undefined || _self.angle === 0 ) { | ||
227 | |||
228 | _self._removeOverlays(); | ||
229 | return false; | ||
230 | |||
231 | } | ||
232 | else { | ||
233 | |||
234 | ( _self.angle < 90 ) ? direction = 'right' : direction = 'left'; | ||
235 | |||
236 | } | ||
237 | |||
238 | }; | ||
239 | |||
240 | _self.flipDirection = direction; | ||
241 | |||
242 | // on the first & last page neighbors we don't flip | ||
243 | if( _self.currentPage === 0 && _self.flipSide === 'l2r' || _self.currentPage === _self.flipPagesCount && _self.flipSide === 'r2l' ) { | ||
244 | |||
245 | return false; | ||
246 | |||
247 | } | ||
248 | |||
249 | // save ending point (symetric point): | ||
250 | // if we touch / start dragging on, say [x=10], then | ||
251 | // we need to drag until [window's width - 10] in order to flip the page 100%. | ||
252 | // if the symetric point is too close we are giving some margin: | ||
253 | // if we would start dragging right next to [window's width / 2] then | ||
254 | // the symmetric point would be very close to the starting point. A very short swipe | ||
255 | // would be enough to flip the page.. | ||
256 | sym = _self.windowProp.width - startX; | ||
257 | |||
258 | var symMargin = 0.9 * ( _self.windowProp.width / 2 ); | ||
259 | if( Math.abs( startX - sym ) < symMargin ) { | ||
260 | |||
261 | ( _self.flipSide === 'r2l' ) ? sym -= symMargin / 2 : sym += symMargin / 2; | ||
262 | |||
263 | } | ||
264 | |||
265 | // some special cases: | ||
266 | // Page is on the right side, | ||
267 | // and we drag/swipe to the same direction | ||
268 | // ending on a point > than the starting point | ||
269 | // ----------------------- | ||
270 | // | | | | ||
271 | // | | | | ||
272 | // | sym | s | | ||
273 | // | | e | | ||
274 | // | | | | ||
275 | // ----------------------- | ||
276 | if( endX > startX && _self.flipSide === 'r2l' ) { | ||
277 | |||
278 | angle = 0; | ||
279 | oob = true; | ||
280 | noflip = true; | ||
281 | |||
282 | } | ||
283 | // Page is on the right side, | ||
284 | // and we drag/swipe to the opposite direction | ||
285 | // ending on a point < than the symmetric point | ||
286 | // ----------------------- | ||
287 | // | | | | ||
288 | // | | | | ||
289 | // | sym | s | | ||
290 | // | e | | | ||
291 | // | | | | ||
292 | // ----------------------- | ||
293 | else if( endX < sym && _self.flipSide === 'r2l' ) { | ||
294 | |||
295 | angle = 180; | ||
296 | oob = true; | ||
297 | |||
298 | } | ||
299 | // Page is on the left side, | ||
300 | // and we drag/swipe to the opposite direction | ||
301 | // ending on a point > than the symmetric point | ||
302 | // ----------------------- | ||
303 | // | | | | ||
304 | // | | | | ||
305 | // | s | sym | | ||
306 | // | | e | | ||
307 | // | | | | ||
308 | // ----------------------- | ||
309 | else if( endX > sym && _self.flipSide === 'l2r' ) { | ||
310 | |||
311 | angle = 0; | ||
312 | oob = true; | ||
313 | |||
314 | } | ||
315 | // Page is on the left side, | ||
316 | // and we drag/swipe to the same direction | ||
317 | // ending on a point < than the starting point | ||
318 | // ----------------------- | ||
319 | // | | | | ||
320 | // | | | | ||
321 | // | s | sym | | ||
322 | // | e | | | ||
323 | // | | | | ||
324 | // ----------------------- | ||
325 | else if( endX < startX && _self.flipSide === 'l2r' ) { | ||
326 | |||
327 | angle = 180; | ||
328 | oob = true; | ||
329 | noflip = true; | ||
330 | |||
331 | } | ||
332 | // we drag/swipe to a point between | ||
333 | // the starting point and symetric point | ||
334 | // ----------------------- | ||
335 | // | | | | ||
336 | // | s | sym | | ||
337 | // | sym | s | | ||
338 | // | e| | | ||
339 | // | | | | ||
340 | // ----------------------- | ||
341 | else { | ||
342 | |||
343 | var s, e, val; | ||
344 | |||
345 | ( _self.flipSide === 'r2l' ) ? | ||
346 | ( s = startX, e = sym, val = startX - distance ) : | ||
347 | ( s = sym, e = startX , val = startX + distance ); | ||
348 | |||
349 | angle = _self._calcAngle( val, s, e ); | ||
350 | |||
351 | if( ( direction === 'left' && _self.flipSide === 'l2r' ) || ( direction === 'right' && _self.flipSide === 'r2l' ) ) { | ||
352 | |||
353 | noflip = true; | ||
354 | |||
355 | } | ||
356 | |||
357 | } | ||
358 | |||
359 | switch( phase ) { | ||
360 | |||
361 | case 'start' : | ||
362 | |||
363 | if( _self._isAnimating() ) { | ||
364 | |||
365 | // the user can still grab a page while one is flipping (in this case not being able to move) | ||
366 | // and once the page is flipped the move/touchmove events are triggered.. | ||
367 | _self.start = true; | ||
368 | return false; | ||
369 | |||
370 | } | ||
371 | else { | ||
372 | |||
373 | _self.start = false; | ||
374 | |||
375 | } | ||
376 | |||
377 | // check which page is clicked/touched | ||
378 | _self._setFlippingPage(); | ||
379 | |||
380 | // check which page comes before & after the one we are clicking | ||
381 | _self.$beforePage = _self.$flippingPage.prev(); | ||
382 | _self.$afterPage = _self.$flippingPage.next(); | ||
383 | |||
384 | break; | ||
385 | |||
386 | case 'move' : | ||
387 | |||
388 | if( distance > 0 ) { | ||
389 | |||
390 | if( _self._isAnimating() || _self.start ) { | ||
391 | |||
392 | return false; | ||
393 | |||
394 | } | ||
395 | |||
396 | // adds overlays: shows shadows while flipping | ||
397 | if( !_self.hasOverlays ) { | ||
398 | |||
399 | _self._addOverlays(); | ||
400 | |||
401 | } | ||
402 | |||
403 | // save last angle | ||
404 | _self.angle = angle; | ||
405 | // we will update the rotation value of the page while we move it | ||
406 | _self._turnPage( angle , true ); | ||
407 | |||
408 | } | ||
409 | break; | ||
410 | |||
411 | case 'end' : | ||
412 | |||
413 | if( distance > 0 ) { | ||
414 | |||
415 | if( _self._isAnimating() || _self.start ) return false; | ||
416 | |||
417 | _self.isAnimating = true; | ||
418 | |||
419 | // keep track if the page was actually flipped or not | ||
420 | // the data flip will be used later on the transitionend event | ||
421 | ( noflip ) ? _self.$flippingPage.data( 'flip', false ) : _self.$flippingPage.data( 'flip', true ); | ||
422 | |||
423 | // if out of bounds we will "manually" flip the page, | ||
424 | // meaning there will be no transition set | ||
425 | if( oob ) { | ||
426 | |||
427 | if( !noflip ) { | ||
428 | |||
429 | // the page gets flipped (user dragged from the starting point until the symmetric point) | ||
430 | // update current page | ||
431 | _self._updatePage(); | ||
432 | |||
433 | } | ||
434 | |||
435 | _self._onEndFlip( _self.$flippingPage ); | ||
436 | |||
437 | } | ||
438 | else { | ||
439 | |||
440 | // save last angle | ||
441 | _self.angle = angle; | ||
442 | // calculate the speed to flip the page: | ||
443 | // the speed will depend on the current angle. | ||
444 | _self._calculateSpeed(); | ||
445 | |||
446 | switch( direction ) { | ||
447 | |||
448 | case 'left' : | ||
449 | |||
450 | _self._turnPage( 180 ); | ||
451 | |||
452 | if( _self.flipSide === 'r2l' ) { | ||
453 | |||
454 | _self._updatePage(); | ||
455 | |||
456 | } | ||
457 | |||
458 | break; | ||
459 | |||
460 | case 'right' : | ||
461 | |||
462 | _self._turnPage( 0 ); | ||
463 | |||
464 | if( _self.flipSide === 'l2r' ) { | ||
465 | |||
466 | _self._updatePage(); | ||
467 | |||
468 | } | ||
469 | |||
470 | break; | ||
471 | |||
472 | }; | ||
473 | |||
474 | } | ||
475 | |||
476 | } | ||
477 | |||
478 | break; | ||
479 | |||
480 | }; | ||
481 | |||
482 | } | ||
483 | |||
484 | } ); | ||
485 | |||
486 | }, | ||
487 | _setFlippingPage : function() { | ||
488 | |||
489 | var _self = this; | ||
490 | |||
491 | ( this.flipSide === 'l2r' ) ? | ||
492 | this.$flippingPage = this.$flipPages.eq( this.currentPage - 1 ) : | ||
493 | this.$flippingPage = this.$flipPages.eq( this.currentPage ); | ||
494 | |||
495 | this.$flippingPage.on( 'webkitTransitionEnd.flips transitionend.flips OTransitionEnd.flips', function( event ) { | ||
496 | |||
497 | if( $( event.target ).hasClass( 'page' ) ) { | ||
498 | |||
499 | _self._onEndFlip( $(this) ); | ||
500 | |||
501 | } | ||
502 | |||
503 | }); | ||
504 | |||
505 | }, | ||
506 | _updatePage : function() { | ||
507 | |||
508 | if( this.flipSide === 'r2l' ) { | ||
509 | |||
510 | ++this.currentPage; | ||
511 | |||
512 | } | ||
513 | else if( this.flipSide === 'l2r' ) { | ||
514 | |||
515 | --this.currentPage; | ||
516 | |||
517 | } | ||
518 | |||
519 | }, | ||
520 | _isAnimating : function() { | ||
521 | |||
522 | if( this.isAnimating ) { | ||
523 | |||
524 | return true; | ||
525 | |||
526 | } | ||
527 | |||
528 | return false; | ||
529 | |||
530 | }, | ||
531 | _loadEvents : function() { | ||
532 | |||
533 | var _self = this; | ||
534 | |||
535 | $( window ).on( 'resize.flips', function( event ) { | ||
536 | |||
537 | _self._getWinSize(); | ||
538 | _self._setLayoutSize(); | ||
539 | |||
540 | var $contentFront = _self.$flipPages.children( 'div.front' ).find( 'div.content' ), | ||
541 | $contentBack = _self.$flipPages.children( 'div.back' ).find( 'div.content' ) | ||
542 | |||
543 | _self.$flipPages.css( 'left', _self.windowProp.width / 2 ); | ||
544 | |||
545 | $contentFront.filter( function( i ) { | ||
546 | return i > 0; | ||
547 | }).css( { | ||
548 | width : _self.windowProp.width, | ||
549 | left : -_self.windowProp.width / 2 | ||
550 | } ); | ||
551 | $contentFront.eq( 0 ).css( 'width', _self.windowProp.width ); | ||
552 | |||
553 | $contentBack.css( 'width', _self.windowProp.width ); | ||
554 | |||
555 | } ); | ||
556 | |||
557 | $( window ).on( 'statechange.flips', function( event ) { | ||
558 | |||
559 | _self._getState(); | ||
560 | _self._goto(); | ||
561 | if( !_self.isAnimating ) { | ||
562 | |||
563 | _self._adjustLayout( _self.currentPage ); | ||
564 | |||
565 | } | ||
566 | |||
567 | } ); | ||
568 | |||
569 | this.$flipPages.find( '.box' ).on( 'click.flips', function( event ) { | ||
570 | |||
571 | var $box = $(this), | ||
572 | $boxClose = $( '<span class="box-close">close</span>' ), | ||
573 | transitionProp = { | ||
574 | speed : 450, | ||
575 | timingfunction : 'linear' | ||
576 | }, | ||
577 | $overlay = $( '<div class="overlay">close</div>' ).css( { | ||
578 | 'z-index' : 9998, | ||
579 | '-webkit-transition' : 'opacity ' + transitionProp.speed + 'ms ' + transitionProp.timingfunction, | ||
580 | '-moz-transition' : 'opacity ' + transitionProp.speed + 'ms ' + transitionProp.timingfunction | ||
581 | } ).prependTo( $( 'body' ) ), | ||
582 | prop = { | ||
583 | width : $box.outerWidth(true), | ||
584 | height : $box.outerHeight(true), | ||
585 | left : $box.offset().left, | ||
586 | top : $box.offset().top | ||
587 | }, | ||
588 | $placeholder = $box.clone().css( { | ||
589 | 'position' : 'absolute', | ||
590 | 'width' : prop.width, | ||
591 | 'height' : prop.height, | ||
592 | 'left' : prop.left, | ||
593 | 'top' : prop.top, | ||
594 | 'zIndex' : 9999, | ||
595 | 'overflow-y' : 'auto', | ||
596 | '-webkit-transition': 'all ' + transitionProp.speed + 'ms ' + transitionProp.timingfunction, | ||
597 | '-moz-transition': 'all ' + transitionProp.speed + 'ms ' + transitionProp.timingfunction | ||
598 | } ) | ||
599 | .insertAfter( $overlay ) | ||
600 | .end() | ||
601 | .append( $boxClose.on( 'click.flips', function( event ) { | ||
602 | |||
603 | $overlay.css( 'opacity', 0 ); | ||
604 | |||
605 | $placeholder.children().hide().end().removeClass( 'box-expanded' ).css( { | ||
606 | width : _self.windowProp.width, | ||
607 | height : _self.windowProp.height, | ||
608 | 'overflow-y' : 'hidden' | ||
609 | } ); | ||
610 | |||
611 | setTimeout( function() { | ||
612 | $placeholder.css( { | ||
613 | left : prop.left, | ||
614 | top : prop.top, | ||
615 | width : prop.width, | ||
616 | height : prop.height, | ||
617 | '-webkit-transition' : 'all ' + transitionProp.speed + 'ms ' + transitionProp.timingfunction, | ||
618 | '-moz-transition' : 'all ' + transitionProp.speed + 'ms ' + transitionProp.timingfunction | ||
619 | }); | ||
620 | }, 0 ); | ||
621 | |||
622 | }) ) | ||
623 | .children() | ||
624 | .hide() | ||
625 | .end() | ||
626 | .on( 'webkitTransitionEnd.flips transitionend.flips OTransitionEnd.flips', function( event ) { | ||
627 | |||
628 | if( $( event.target ).hasClass( 'box-expanded' ) ) { // expanding | ||
629 | |||
630 | $(this).css( { | ||
631 | width : '100%', | ||
632 | height : '100%', | ||
633 | '-webkit-transition' : 'none', | ||
634 | '-moz-transition' : 'none' | ||
635 | } ).children().fadeIn(); | ||
636 | |||
637 | } | ||
638 | else { // collapsing | ||
639 | |||
640 | $overlay.remove(); | ||
641 | $(this).remove(); | ||
642 | |||
643 | } | ||
644 | |||
645 | }); | ||
646 | |||
647 | setTimeout( function() { | ||
648 | |||
649 | $overlay.css( { | ||
650 | opacity : 1 | ||
651 | } ); | ||
652 | |||
653 | $placeholder.addClass( 'box-expanded' ).css( { | ||
654 | left : 0, | ||
655 | top : 0, | ||
656 | width : _self.windowProp.width, | ||
657 | height : _self.windowProp.height | ||
658 | }); | ||
659 | |||
660 | }, 0 ); | ||
661 | |||
662 | } ); | ||
663 | |||
664 | }, | ||
665 | _onEndFlip : function( $page ) { | ||
666 | |||
667 | // if the page flips from left to right we will need to change the z-index of the flipped page | ||
668 | if( ( this.flipSide === 'l2r' && $page.data( 'flip' ) ) || | ||
669 | ( this.flipSide === 'r2l' && !$page.data( 'flip' ) ) ) { | ||
670 | |||
671 | $page.css( 'z-index', this.pagesCount - 2 - $page.index() ); | ||
672 | |||
673 | } | ||
674 | |||
675 | this.$flippingPage.css( { | ||
676 | '-webkit-transition' : 'none', | ||
677 | '-moz-transition' : 'none' | ||
678 | } ); | ||
679 | |||
680 | // remove overlays | ||
681 | this._removeOverlays(); | ||
682 | this._saveState(); | ||
683 | this.isAnimating = false; | ||
684 | |||
685 | // hack (todo: issues with safari / z-indexes) | ||
686 | if( this.flipSide === 'r2l' || ( this.flipSide === 'l2r' && !$page.data( 'flip' ) ) ) { | ||
687 | |||
688 | this.$flippingPage.find('.back').css( '-webkit-transform', 'rotateY(-180deg)' ); | ||
689 | |||
690 | } | ||
691 | |||
692 | }, | ||
693 | // given the touch/drag start point (s), the end point (e) and a value in between (x) | ||
694 | // calculate the respective angle ( 0deg - 180deg ) | ||
695 | _calcAngle : function( x, s, e ) { | ||
696 | |||
697 | return ( -180 / ( s - e ) ) * x + ( ( s * 180 ) / ( s - e ) ); | ||
698 | |||
699 | }, | ||
700 | // given the current angle and the default speed, calculate the respective speed to accomplish the flip | ||
701 | _calculateSpeed : function() { | ||
702 | |||
703 | ( this.flipDirection === 'right' ) ? | ||
704 | this.flipSpeed = ( this.options.flipspeed / 180 ) * this.angle : | ||
705 | this.flipSpeed = - ( this.options.flipspeed / 180 ) * this.angle + this.options.flipspeed; | ||
706 | |||
707 | }, | ||
708 | _turnPage : function( angle, update ) { | ||
709 | |||
710 | // hack / todo: before page that was set to -181deg should have -180deg | ||
711 | this.$beforePage.css({ | ||
712 | '-webkit-transform' : 'rotateY( -180deg )', | ||
713 | '-moz-transform' : 'rotateY( -180deg )' | ||
714 | }); | ||
715 | |||
716 | // if not moving manually set a transition to flip the page | ||
717 | if( !update ) { | ||
718 | |||
719 | this.$flippingPage.css( { | ||
720 | '-webkit-transition' : '-webkit-transform ' + this.flipSpeed + 'ms ' + this.options.fliptimingfunction, | ||
721 | '-moz-transition' : '-moz-transform ' + this.flipSpeed + 'ms ' + this.options.fliptimingfunction | ||
722 | } ); | ||
723 | |||
724 | } | ||
725 | |||
726 | // if page is a right side page, we need to set its z-index higher as soon the page starts to flip. | ||
727 | // this will make the page be on "top" of the left ones. | ||
728 | // note: if the flipping page is on the left side then we set the z-index after the flip is over. | ||
729 | // this is done on the _onEndFlip function. | ||
730 | var idx = ( this.flipSide === 'r2l' ) ? this.currentPage : this.currentPage - 1; | ||
731 | if( this.flipSide === 'r2l' ) { | ||
732 | |||
733 | this.$flippingPage.css( 'z-index', this.flipPagesCount - 1 + idx ); | ||
734 | |||
735 | } | ||
736 | |||
737 | // hack (todo: issues with safari / z-indexes) | ||
738 | this.$flippingPage.find('.back').css( '-webkit-transform', 'rotateY(180deg)' ); | ||
739 | |||
740 | // update the angle | ||
741 | this.$flippingPage.css( { | ||
742 | '-webkit-transform' : 'rotateY(-' + angle + 'deg)', | ||
743 | '-moz-transform' : 'rotateY(-' + angle + 'deg)' | ||
744 | } ); | ||
745 | |||
746 | // show overlays | ||
747 | this._overlay( angle, update ); | ||
748 | |||
749 | }, | ||
750 | _addOverlays : function() { | ||
751 | |||
752 | var _self = this; | ||
753 | |||
754 | // remove current overlays | ||
755 | this._removeOverlays(); | ||
756 | |||
757 | this.hasOverlays = true; | ||
758 | |||
759 | // overlays for the flipping page. One in the front, one in the back. | ||
760 | |||
761 | this.$frontoverlay = $( '<div class="flipoverlay"></div>' ).appendTo( this.$flippingPage.find( 'div.front > .outer' ) ); | ||
762 | this.$backoverlay = $( '<div class="flipoverlay"></div>' ).appendTo( this.$flippingPage.find( 'div.back > .outer' ) ) | ||
763 | |||
764 | // overlay for the page "under" the flipping page. | ||
765 | if( this.$afterPage ) { | ||
766 | |||
767 | this.$afterOverlay = $( '<div class="overlay"></div>' ).appendTo( this.$afterPage.find( 'div.front > .outer' ) ); | ||
768 | |||
769 | } | ||
770 | |||
771 | // overlay for the page "before" the flipping page | ||
772 | if( this.$beforePage ) { | ||
773 | |||
774 | this.$beforeOverlay = $( '<div class="overlay"></div>' ).appendTo( this.$beforePage.find( 'div.back > .outer' ) ); | ||
775 | |||
776 | } | ||
777 | |||
778 | }, | ||
779 | _removeOverlays : function() { | ||
780 | |||
781 | // removes the 4 overlays | ||
782 | if( this.$frontoverlay ) | ||
783 | this.$frontoverlay.remove(); | ||
784 | if( this.$backoverlay ) | ||
785 | this.$backoverlay.remove(); | ||
786 | if( this.$afterOverlay ) | ||
787 | this.$afterOverlay.remove(); | ||
788 | if( this.$beforeOverlay ) | ||
789 | this.$beforeOverlay.remove(); | ||
790 | |||
791 | this.hasOverlays = false; | ||
792 | |||
793 | }, | ||
794 | _overlay : function( angle, update ) { | ||
795 | |||
796 | // changes the opacity of each of the overlays. | ||
797 | if( update ) { | ||
798 | |||
799 | // if update is true, meaning we are manually flipping the page, | ||
800 | // we need to calculate the opacity that corresponds to the current angle | ||
801 | var afterOverlayOpacity = - ( 1 / 90 ) * angle + 1, | ||
802 | beforeOverlayOpacity = ( 1 / 90 ) * angle - 1; | ||
803 | |||
804 | if( this.$afterOverlay ) { | ||
805 | |||
806 | this.$afterOverlay.css( 'opacity', afterOverlayOpacity ); | ||
807 | |||
808 | } | ||
809 | if( this.$beforeOverlay ) { | ||
810 | |||
811 | this.$beforeOverlay.css( 'opacity', beforeOverlayOpacity ); | ||
812 | |||
813 | } | ||
814 | |||
815 | // the flipping page will have a fixed value. | ||
816 | // todo: add a gradient instead. | ||
817 | var flipOpacity = 0.1; | ||
818 | this.$frontoverlay.css( 'opacity', flipOpacity ); | ||
819 | this.$backoverlay.css( 'opacity', flipOpacity ); | ||
820 | |||
821 | } | ||
822 | else { | ||
823 | |||
824 | var _self = this; | ||
825 | |||
826 | // if we release the mouse / touchend then we will set a transition for the overlays. | ||
827 | // we will need to take in consideration the current angle, the speed (given the angle) | ||
828 | // and the delays for each overlay (the opacity of the overlay will only change | ||
829 | // when the flipping page is on the same side). | ||
830 | var afterspeed = this.flipSpeed, | ||
831 | beforespeed = this.flipSpeed, | ||
832 | margin = 60; // hack (todo: issues with safari / z-indexes) | ||
833 | |||
834 | if( this.$afterOverlay ) { | ||
835 | |||
836 | var afterdelay = 0; | ||
837 | |||
838 | if( this.flipDirection === 'right' ) { | ||
839 | |||
840 | if( this.angle > 90 ) { | ||
841 | |||
842 | afterdelay = Math.abs( this.flipSpeed - this.options.flipspeed / 2 - margin ); | ||
843 | afterspeed = this.options.flipspeed / 2 - margin ; | ||
844 | |||
845 | } | ||
846 | else { | ||
847 | |||
848 | afterspeed -= margin; | ||
849 | |||
850 | } | ||
851 | |||
852 | } | ||
853 | else { | ||
854 | |||
855 | afterspeed = Math.abs( this.flipSpeed - this.options.flipspeed / 2 ); | ||
856 | |||
857 | } | ||
858 | |||
859 | if( afterspeed <= 0 ) afterspeed = 1; | ||
860 | |||
861 | this.$afterOverlay.css( { | ||
862 | '-webkit-transition' : 'opacity ' + afterspeed + 'ms ' + this.options.fliptimingfunction + ' ' + afterdelay + 'ms', | ||
863 | '-moz-transition' : 'opacity ' + afterspeed + 'ms ' + this.options.fliptimingfunction + ' ' + afterdelay + 'ms', | ||
864 | 'opacity' : ( this.flipDirection === 'left' ) ? 0 : 1 | ||
865 | } ).on( 'webkitTransitionEnd.flips transitionend.flips OTransitionEnd.flips', function( event ) { | ||
866 | if( _self.$beforeOverlay ) _self.$beforeOverlay.off( 'webkitTransitionEnd.flips transitionend.flips OTransitionEnd.flips'); | ||
867 | setTimeout( function() { | ||
868 | _self._adjustLayout(_self.currentPage); | ||
869 | }, _self.options.flipspeed / 2 - margin ); | ||
870 | } ); | ||
871 | |||
872 | } | ||
873 | |||
874 | if( this.$beforeOverlay ) { | ||
875 | |||
876 | var beforedelay = 0; | ||
877 | |||
878 | if( this.flipDirection === 'left' ) { | ||
879 | |||
880 | if( this.angle < 90 ) { | ||
881 | |||
882 | beforedelay = Math.abs( this.flipSpeed - this.options.flipspeed / 2 - margin ) ; | ||
883 | beforespeed = this.options.flipspeed / 2 - margin; | ||
884 | |||
885 | } | ||
886 | else { | ||
887 | |||
888 | beforespeed -= margin; | ||
889 | |||
890 | } | ||
891 | |||
892 | } | ||
893 | else { | ||
894 | |||
895 | beforespeed = Math.abs( this.flipSpeed - this.options.flipspeed / 2 ); | ||
896 | |||
897 | } | ||
898 | |||
899 | if( beforespeed <= 0 ) beforespeed = 1; | ||
900 | |||
901 | this.$beforeOverlay.css( { | ||
902 | '-webkit-transition' : 'opacity ' + beforespeed + 'ms ' + this.options.fliptimingfunction + ' ' + beforedelay + 'ms', | ||
903 | '-moz-transition' : 'opacity ' + beforespeed + 'ms ' + this.options.fliptimingfunction + ' ' + beforedelay + 'ms', | ||
904 | 'opacity' : ( this.flipDirection === 'left' ) ? 1 : 0 | ||
905 | } ).on( 'webkitTransitionEnd.flips transitionend.flips OTransitionEnd.flips', function( event ) { | ||
906 | if( _self.$afterOverlay ) _self.$afterOverlay.off( 'webkitTransitionEnd.flips transitionend.flips OTransitionEnd.flips'); | ||
907 | _self._adjustLayout(_self.currentPage); | ||
908 | } ); | ||
909 | |||
910 | } | ||
911 | |||
912 | } | ||
913 | |||
914 | } | ||
915 | }; | ||
916 | |||
917 | var logError = function( message ) { | ||
918 | if ( this.console ) { | ||
919 | console.error( message ); | ||
920 | } | ||
921 | }; | ||
922 | |||
923 | $.fn.flips = function( options ) { | ||
924 | |||
925 | if ( typeof options === 'string' ) { | ||
926 | |||
927 | var args = Array.prototype.slice.call( arguments, 1 ); | ||
928 | |||
929 | this.each(function() { | ||
930 | |||
931 | var instance = $.data( this, 'flips' ); | ||
932 | |||
933 | if ( !instance ) { | ||
934 | logError( "cannot call methods on flips prior to initialization; " + | ||
935 | "attempted to call method '" + options + "'" ); | ||
936 | return; | ||
937 | } | ||
938 | |||
939 | if ( !$.isFunction( instance[options] ) || options.charAt(0) === "_" ) { | ||
940 | logError( "no such method '" + options + "' for flips instance" ); | ||
941 | return; | ||
942 | } | ||
943 | |||
944 | instance[ options ].apply( instance, args ); | ||
945 | |||
946 | }); | ||
947 | |||
948 | } | ||
949 | else { | ||
950 | |||
951 | this.each(function() { | ||
952 | |||
953 | var instance = $.data( this, 'flips' ); | ||
954 | if ( !instance ) { | ||
955 | $.data( this, 'flips', new $.Flips( options, this ) ); | ||
956 | } | ||
957 | }); | ||
958 | |||
959 | } | ||
960 | |||
961 | return this; | ||
962 | |||
963 | }; | ||
964 | |||
965 | })( window ); \ No newline at end of file | ||
diff --git a/Blocks/Flipboard/js/jquery.history.js b/Blocks/Flipboard/js/jquery.history.js new file mode 100644 index 0000000..8d4edcd --- /dev/null +++ b/Blocks/Flipboard/js/jquery.history.js | |||
@@ -0,0 +1 @@ | |||
window.JSON||(window.JSON={}),function(){function f(a){return a<10?"0"+a:a}function quote(a){return escapable.lastIndex=0,escapable.test(a)?'"'+a.replace(escapable,function(a){var b=meta[a];return typeof b=="string"?b:"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+a+'"'}function str(a,b){var c,d,e,f,g=gap,h,i=b[a];i&&typeof i=="object"&&typeof i.toJSON=="function"&&(i=i.toJSON(a)),typeof rep=="function"&&(i=rep.call(b,a,i));switch(typeof i){case"string":return quote(i);case"number":return isFinite(i)?String(i):"null";case"boolean":case"null":return String(i);case"object":if(!i)return"null";gap+=indent,h=[];if(Object.prototype.toString.apply(i)==="[object Array]"){f=i.length;for(c=0;c<f;c+=1)h[c]=str(c,i)||"null";return e=h.length===0?"[]":gap?"[\n"+gap+h.join(",\n"+gap)+"\n"+g+"]":"["+h.join(",")+"]",gap=g,e}if(rep&&typeof rep=="object"){f=rep.length;for(c=0;c<f;c+=1)d=rep[c],typeof d=="string"&&(e=str(d,i),e&&h.push(quote(d)+(gap?": ":":")+e))}else for(d in i)Object.hasOwnProperty.call(i,d)&&(e=str(d,i),e&&h.push(quote(d)+(gap?": ":":")+e));return e=h.length===0?"{}":gap?"{\n"+gap+h.join(",\n"+gap)+"\n"+g+"}":"{"+h.join(",")+"}",gap=g,e}}"use strict",typeof Date.prototype.toJSON!="function"&&(Date.prototype.toJSON=function(a){return isFinite(this.valueOf())?this.getUTCFullYear()+"-"+f(this.getUTCMonth()+1)+"-"+f(this.getUTCDate())+"T"+f(this.getUTCHours())+":"+f(this.getUTCMinutes())+":"+f(this.getUTCSeconds())+"Z":null},String.prototype.toJSON=Number.prototype.toJSON=Boolean.prototype.toJSON=function(a){return this.valueOf()});var JSON=window.JSON,cx=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,escapable=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,gap,indent,meta={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},rep;typeof JSON.stringify!="function"&&(JSON.stringify=function(a,b,c){var d;gap="",indent="";if(typeof c=="number")for(d=0;d<c;d+=1)indent+=" ";else typeof c=="string"&&(indent=c);rep=b;if(!b||typeof b=="function"||typeof b=="object"&&typeof b.length=="number")return str("",{"":a});throw new Error("JSON.stringify")}),typeof JSON.parse!="function"&&(JSON.parse=function(text,reviver){function walk(a,b){var c,d,e=a[b];if(e&&typeof e=="object")for(c in e)Object.hasOwnProperty.call(e,c)&&(d=walk(e,c),d!==undefined?e[c]=d:delete e[c]);return reviver.call(a,b,e)}var j;text=String(text),cx.lastIndex=0,cx.test(text)&&(text=text.replace(cx,function(a){return"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)}));if(/^[\],:{}\s]*$/.test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return j=eval("("+text+")"),typeof reviver=="function"?walk({"":j},""):j;throw new SyntaxError("JSON.parse")})}(),function(a,b){"use strict";var c=a.History=a.History||{},d=a.jQuery;if(typeof c.Adapter!="undefined")throw new Error("History.js Adapter has already been loaded...");c.Adapter={bind:function(a,b,c){d(a).bind(b,c)},trigger:function(a,b,c){d(a).trigger(b,c)},extractEventData:function(a,c,d){var e=c&&c.originalEvent&&c.originalEvent[a]||d&&d[a]||b;return e},onDomLoad:function(a){d(a)}},typeof c.init!="undefined"&&c.init()}(window),function(a,b){"use strict";var c=a.document,d=a.setTimeout||d,e=a.clearTimeout||e,f=a.setInterval||f,g=a.History=a.History||{};if(typeof g.initHtml4!="undefined")throw new Error("History.js HTML4 Support has already been loaded...");g.initHtml4=function(){if(typeof g.initHtml4.initialized!="undefined")return!1;g.initHtml4.initialized=!0,g.enabled=!0,g.savedHashes=[],g.isLastHash=function(a){var b=g.getHashByIndex(),c;return c=a===b,c},g.saveHash=function(a){return g.isLastHash(a)?!1:(g.savedHashes.push(a),!0)},g.getHashByIndex=function(a){var b=null;return typeof a=="undefined"?b=g.savedHashes[g.savedHashes.length-1]:a<0?b=g.savedHashes[g.savedHashes.length+a]:b=g.savedHashes[a],b},g.discardedHashes={},g.discardedStates={},g.discardState=function(a,b,c){var d=g.getHashByState(a),e;return e={discardedState:a,backState:c,forwardState:b},g.discardedStates[d]=e,!0},g.discardHash=function(a,b,c){var d={discardedHash:a,backState:c,forwardState:b};return g.discardedHashes[a]=d,!0},g.discardedState=function(a){var b=g.getHashByState(a),c;return c=g.discardedStates[b]||!1,c},g.discardedHash=function(a){var b=g.discardedHashes[a]||!1;return b},g.recycleState=function(a){var b=g.getHashByState(a);return g.discardedState(a)&&delete g.discardedStates[b],!0},g.emulated.hashChange&&(g.hashChangeInit=function(){g.checkerFunction=null;var b="",d,e,h,i;return g.isInternetExplorer()?(d="historyjs-iframe",e=c.createElement("iframe"),e.setAttribute("id",d),e.style.display="none",c.body.appendChild(e),e.contentWindow.document.open(),e.contentWindow.document.close(),h="",i=!1,g.checkerFunction=function(){if(i)return!1;i=!0;var c=g.getHash()||"",d=g.unescapeHash(e.contentWindow.document.location.hash)||"";return c!==b?(b=c,d!==c&&(h=d=c,e.contentWindow.document.open(),e.contentWindow.document.close(),e.contentWindow.document.location.hash=g.escapeHash(c)),g.Adapter.trigger(a,"hashchange")):d!==h&&(h=d,g.setHash(d,!1)),i=!1,!0}):g.checkerFunction=function(){var c=g.getHash();return c!==b&&(b=c,g.Adapter.trigger(a,"hashchange")),!0},g.intervalList.push(f(g.checkerFunction,g.options.hashChangeInterval)),!0},g.Adapter.onDomLoad(g.hashChangeInit)),g.emulated.pushState&&(g.onHashChange=function(b){var d=b&&b.newURL||c.location.href,e=g.getHashByUrl(d),f=null,h=null,i=null,j;return g.isLastHash(e)?(g.busy(!1),!1):(g.doubleCheckComplete(),g.saveHash(e),e&&g.isTraditionalAnchor(e)?(g.Adapter.trigger(a,"anchorchange"),g.busy(!1),!1):(f=g.extractState(g.getFullUrl(e||c.location.href,!1),!0),g.isLastSavedState(f)?(g.busy(!1),!1):(h=g.getHashByState(f),j=g.discardedState(f),j?(g.getHashByIndex(-2)===g.getHashByState(j.forwardState)?g.back(!1):g.forward(!1),!1):(g.pushState(f.data,f.title,f.url,!1),!0))))},g.Adapter.bind(a,"hashchange",g.onHashChange),g.pushState=function(b,d,e,f){if(g.getHashByUrl(e))throw new Error("History.js does not support states with fragement-identifiers (hashes/anchors).");if(f!==!1&&g.busy())return g.pushQueue({scope:g,callback:g.pushState,args:arguments,queue:f}),!1;g.busy(!0);var h=g.createStateObject(b,d,e),i=g.getHashByState(h),j=g.getState(!1),k=g.getHashByState(j),l=g.getHash();return g.storeState(h),g.expectedStateId=h.id,g.recycleState(h),g.setTitle(h),i===k?(g.busy(!1),!1):i!==l&&i!==g.getShortUrl(c.location.href)?(g.setHash(i,!1),!1):(g.saveState(h),g.Adapter.trigger(a,"statechange"),g.busy(!1),!0)},g.replaceState=function(a,b,c,d){if(g.getHashByUrl(c))throw new Error("History.js does not support states with fragement-identifiers (hashes/anchors).");if(d!==!1&&g.busy())return g.pushQueue({scope:g,callback:g.replaceState,args:arguments,queue:d}),!1;g.busy(!0);var e=g.createStateObject(a,b,c),f=g.getState(!1),h=g.getStateByIndex(-2);return g.discardState(f,e,h),g.pushState(e.data,e.title,e.url,!1),!0}),g.emulated.pushState&&g.getHash()&&!g.emulated.hashChange&&g.Adapter.onDomLoad(function(){g.Adapter.trigger(a,"hashchange")})},typeof g.init!="undefined"&&g.init()}(window),function(a,b){"use strict";var c=a.console||b,d=a.document,e=a.navigator,f=a.sessionStorage||!1,g=a.setTimeout,h=a.clearTimeout,i=a.setInterval,j=a.clearInterval,k=a.JSON,l=a.alert,m=a.History=a.History||{},n=a.history;k.stringify=k.stringify||k.encode,k.parse=k.parse||k.decode;if(typeof m.init!="undefined")throw new Error("History.js Core has already been loaded...");m.init=function(){return typeof m.Adapter=="undefined"?!1:(typeof m.initCore!="undefined"&&m.initCore(),typeof m.initHtml4!="undefined"&&m.initHtml4(),!0)},m.initCore=function(){if(typeof m.initCore.initialized!="undefined")return!1;m.initCore.initialized=!0,m.options=m.options||{},m.options.hashChangeInterval=m.options.hashChangeInterval||100,m.options.safariPollInterval=m.options.safariPollInterval||500,m.options.doubleCheckInterval=m.options.doubleCheckInterval||500,m.options.storeInterval=m.options.storeInterval||1e3,m.options.busyDelay=m.options.busyDelay||250,m.options.debug=m.options.debug||!1,m.options.initialTitle=m.options.initialTitle||d.title,m.intervalList=[],m.clearAllIntervals=function(){var a,b=m.intervalList;if(typeof b!="undefined"&&b!==null){for(a=0;a<b.length;a++)j(b[a]);m.intervalList=null}},m.debug=function(){(m.options.debug||!1)&&m.log.apply(m,arguments)},m.log=function(){var a=typeof c!="undefined"&&typeof c.log!="undefined"&&typeof c.log.apply!="undefined",b=d.getElementById("log"),e,f,g,h,i;a?(h=Array.prototype.slice.call(arguments),e=h.shift(),typeof c.debug!="undefined"?c.debug.apply(c,[e,h]):c.log.apply(c,[e,h])):e="\n"+arguments[0]+"\n";for(f=1,g=arguments.length;f<g;++f){i=arguments[f];if(typeof i=="object"&&typeof k!="undefined")try{i=k.stringify(i)}catch(j){}e+="\n"+i+"\n"}return b?(b.value+=e+"\n-----\n",b.scrollTop=b.scrollHeight-b.clientHeight):a||l(e),!0},m.getInternetExplorerMajorVersion=function(){var a=m.getInternetExplorerMajorVersion.cached=typeof m.getInternetExplorerMajorVersion.cached!="undefined"?m.getInternetExplorerMajorVersion.cached:function(){var a=3,b=d.createElement("div"),c=b.getElementsByTagName("i");while((b.innerHTML="<!--[if gt IE "+ ++a+"]><i></i><![endif]-->")&&c[0]);return a>4?a:!1}();return a},m.isInternetExplorer=function(){var a=m.isInternetExplorer.cached=typeof m.isInternetExplorer.cached!="undefined"?m.isInternetExplorer.cached:Boolean(m.getInternetExplorerMajorVersion());return a},m.emulated={pushState:!Boolean(a.history&&a.history.pushState&&a.history.replaceState&&!/ Mobile\/([1-7][a-z]|(8([abcde]|f(1[0-8]))))/i.test(e.userAgent)&&!/AppleWebKit\/5([0-2]|3[0-2])/i.test(e.userAgent)),hashChange:Boolean(!("onhashchange"in a||"onhashchange"in d)||m.isInternetExplorer()&&m.getInternetExplorerMajorVersion()<8)},m.enabled=!m.emulated.pushState,m.bugs={setHash:Boolean(!m.emulated.pushState&&e.vendor==="Apple Computer, Inc."&&/AppleWebKit\/5([0-2]|3[0-3])/.test(e.userAgent)),safariPoll:Boolean(!m.emulated.pushState&&e.vendor==="Apple Computer, Inc."&&/AppleWebKit\/5([0-2]|3[0-3])/.test(e.userAgent)),ieDoubleCheck:Boolean(m.isInternetExplorer()&&m.getInternetExplorerMajorVersion()<8),hashEscape:Boolean(m.isInternetExplorer()&&m.getInternetExplorerMajorVersion()<7)},m.isEmptyObject=function(a){for(var b in a)return!1;return!0},m.cloneObject=function(a){var b,c;return a?(b=k.stringify(a),c=k.parse(b)):c={},c},m.getRootUrl=function(){var a=d.location.protocol+"//"+(d.location.hostname||d.location.host);if(d.location.port||!1)a+=":"+d.location.port;return a+="/",a},m.getBaseHref=function(){var a=d.getElementsByTagName("base"),b=null,c="";return a.length===1&&(b=a[0],c=b.href.replace(/[^\/]+$/,"")),c=c.replace(/\/+$/,""),c&&(c+="/"),c},m.getBaseUrl=function(){var a=m.getBaseHref()||m.getBasePageUrl()||m.getRootUrl();return a},m.getPageUrl=function(){var a=m.getState(!1,!1),b=(a||{}).url||d.location.href,c;return c=b.replace(/\/+$/,"").replace(/[^\/]+$/,function(a,b,c){return/\./.test(a)?a:a+"/"}),c},m.getBasePageUrl=function(){var a=d.location.href.replace(/[#\?].*/,"").replace(/[^\/]+$/,function(a,b,c){return/[^\/]$/.test(a)?"":a}).replace(/\/+$/,"")+"/";return a},m.getFullUrl=function(a,b){var c=a,d=a.substring(0,1);return b=typeof b=="undefined"?!0:b,/[a-z]+\:\/\//.test(a)||(d==="/"?c=m.getRootUrl()+a.replace(/^\/+/,""):d==="#"?c=m.getPageUrl().replace(/#.*/,"")+a:d==="?"?c=m.getPageUrl().replace(/[\?#].*/,"")+a:b?c=m.getBaseUrl()+a.replace(/^(\.\/)+/,""):c=m.getBasePageUrl()+a.replace(/^(\.\/)+/,"")),c.replace(/\#$/,"")},m.getShortUrl=function(a){var b=a,c=m.getBaseUrl(),d=m.getRootUrl();return m.emulated.pushState&&(b=b.replace(c,"")),b=b.replace(d,"/"),m.isTraditionalAnchor(b)&&(b="./"+b),b=b.replace(/^(\.\/)+/g,"./").replace(/\#$/,""),b},m.store={},m.idToState=m.idToState||{},m.stateToId=m.stateToId||{},m.urlToId=m.urlToId||{},m.storedStates=m.storedStates||[],m.savedStates=m.savedStates||[],m.normalizeStore=function(){m.store.idToState=m.store.idToState||{},m.store.urlToId=m.store.urlToId||{},m.store.stateToId=m.store.stateToId||{}},m.getState=function(a,b){typeof a=="undefined"&&(a=!0),typeof b=="undefined"&&(b=!0);var c=m.getLastSavedState();return!c&&b&&(c=m.createStateObject()),a&&(c=m.cloneObject(c),c.url=c.cleanUrl||c.url),c},m.getIdByState=function(a){var b=m.extractId(a.url),c;if(!b){c=m.getStateString(a);if(typeof m.stateToId[c]!="undefined")b=m.stateToId[c];else if(typeof m.store.stateToId[c]!="undefined")b=m.store.stateToId[c];else{for(;;){b=(new Date).getTime()+String(Math.random()).replace(/\D/g,"");if(typeof m.idToState[b]=="undefined"&&typeof m.store.idToState[b]=="undefined")break}m.stateToId[c]=b,m.idToState[b]=a}}return b},m.normalizeState=function(a){var b,c;if(!a||typeof a!="object")a={};if(typeof a.normalized!="undefined")return a;if(!a.data||typeof a.data!="object")a.data={};b={},b.normalized=!0,b.title=a.title||"",b.url=m.getFullUrl(m.unescapeString(a.url||d.location.href)),b.hash=m.getShortUrl(b.url),b.data=m.cloneObject(a.data),b.id=m.getIdByState(b),b.cleanUrl=b.url.replace(/\??\&_suid.*/,""),b.url=b.cleanUrl,c=!m.isEmptyObject(b.data);if(b.title||c)b.hash=m.getShortUrl(b.url).replace(/\??\&_suid.*/,""),/\?/.test(b.hash)||(b.hash+="?"),b.hash+="&_suid="+b.id;return b.hashedUrl=m.getFullUrl(b.hash),(m.emulated.pushState||m.bugs.safariPoll)&&m.hasUrlDuplicate(b)&&(b.url=b.hashedUrl),b},m.createStateObject=function(a,b,c){var d={data:a,title:b,url:c};return d=m.normalizeState(d),d},m.getStateById=function(a){a=String(a);var c=m.idToState[a]||m.store.idToState[a]||b;return c},m.getStateString=function(a){var b,c,d;return b=m.normalizeState(a),c={data:b.data,title:a.title,url:a.url},d=k.stringify(c),d},m.getStateId=function(a){var b,c;return b=m.normalizeState(a),c=b.id,c},m.getHashByState=function(a){var b,c;return b=m.normalizeState(a),c=b.hash,c},m.extractId=function(a){var b,c,d;return c=/(.*)\&_suid=([0-9]+)$/.exec(a),d=c?c[1]||a:a,b=c?String(c[2]||""):"",b||!1},m.isTraditionalAnchor=function(a){var b=!/[\/\?\.]/.test(a);return b},m.extractState=function(a,b){var c=null,d,e;return b=b||!1,d=m.extractId(a),d&&(c=m.getStateById(d)),c||(e=m.getFullUrl(a),d=m.getIdByUrl(e)||!1,d&&(c=m.getStateById(d)),!c&&b&&!m.isTraditionalAnchor(a)&&(c=m.createStateObject(null,null,e))),c},m.getIdByUrl=function(a){var c=m.urlToId[a]||m.store.urlToId[a]||b;return c},m.getLastSavedState=function(){return m.savedStates[m.savedStates.length-1]||b},m.getLastStoredState=function(){return m.storedStates[m.storedStates.length-1]||b},m.hasUrlDuplicate=function(a){var b=!1,c;return c=m.extractState(a.url),b=c&&c.id!==a.id,b},m.storeState=function(a){return m.urlToId[a.url]=a.id,m.storedStates.push(m.cloneObject(a)),a},m.isLastSavedState=function(a){var b=!1,c,d,e;return m.savedStates.length&&(c=a.id,d=m.getLastSavedState(),e=d.id,b=c===e),b},m.saveState=function(a){return m.isLastSavedState(a)?!1:(m.savedStates.push(m.cloneObject(a)),!0)},m.getStateByIndex=function(a){var b=null;return typeof a=="undefined"?b=m.savedStates[m.savedStates.length-1]:a<0?b=m.savedStates[m.savedStates.length+a]:b=m.savedStates[a],b},m.getHash=function(){var a=m.unescapeHash(d.location.hash);return a},m.unescapeString=function(b){var c=b,d;for(;;){d=a.unescape(c);if(d===c)break;c=d}return c},m.unescapeHash=function(a){var b=m.normalizeHash(a);return b=m.unescapeString(b),b},m.normalizeHash=function(a){var b=a.replace(/[^#]*#/,"").replace(/#.*/,"");return b},m.setHash=function(a,b){var c,e,f;return b!==!1&&m.busy()?(m.pushQueue({scope:m,callback:m.setHash,args:arguments,queue:b}),!1):(c=m.escapeHash(a),m.busy(!0),e=m.extractState(a,!0),e&&!m.emulated.pushState?m.pushState(e.data,e.title,e.url,!1):d.location.hash!==c&&(m.bugs.setHash?(f=m.getPageUrl(),m.pushState(null,null,f+"#"+c,!1)):d.location.hash=c),m)},m.escapeHash=function(b){var c=m.normalizeHash(b);return c=a.escape(c),m.bugs.hashEscape||(c=c.replace(/\%21/g,"!").replace(/\%26/g,"&").replace(/\%3D/g,"=").replace(/\%3F/g,"?")),c},m.getHashByUrl=function(a){var b=String(a).replace(/([^#]*)#?([^#]*)#?(.*)/,"$2");return b=m.unescapeHash(b),b},m.setTitle=function(a){var b=a.title,c;b||(c=m.getStateByIndex(0),c&&c.url===a.url&&(b=c.title||m.options.initialTitle));try{d.getElementsByTagName("title")[0].innerHTML=b.replace("<","<").replace(">",">").replace(" & "," & ")}catch(e){}return d.title=b,m},m.queues=[],m.busy=function(a){typeof a!="undefined"?m.busy.flag=a:typeof m.busy.flag=="undefined"&&(m.busy.flag=!1);if(!m.busy.flag){h(m.busy.timeout);var b=function(){var a,c,d;if(m.busy.flag)return;for(a=m.queues.length-1;a>=0;--a){c=m.queues[a];if(c.length===0)continue;d=c.shift(),m.fireQueueItem(d),m.busy.timeout=g(b,m.options.busyDelay)}};m.busy.timeout=g(b,m.options.busyDelay)}return m.busy.flag},m.busy.flag=!1,m.fireQueueItem=function(a){return a.callback.apply(a.scope||m,a.args||[])},m.pushQueue=function(a){return m.queues[a.queue||0]=m.queues[a.queue||0]||[],m.queues[a.queue||0].push(a),m},m.queue=function(a,b){return typeof a=="function"&&(a={callback:a}),typeof b!="undefined"&&(a.queue=b),m.busy()?m.pushQueue(a):m.fireQueueItem(a),m},m.clearQueue=function(){return m.busy.flag=!1,m.queues=[],m},m.stateChanged=!1,m.doubleChecker=!1,m.doubleCheckComplete=function(){return m.stateChanged=!0,m.doubleCheckClear(),m},m.doubleCheckClear=function(){return m.doubleChecker&&(h(m.doubleChecker),m.doubleChecker=!1),m},m.doubleCheck=function(a){return m.stateChanged=!1,m.doubleCheckClear(),m.bugs.ieDoubleCheck&&(m.doubleChecker=g(function(){return m.doubleCheckClear(),m.stateChanged||a(),!0},m.options.doubleCheckInterval)),m},m.safariStatePoll=function(){var b=m.extractState(d.location.href),c;if(!m.isLastSavedState(b))c=b;else return;return c||(c=m.createStateObject()),m.Adapter.trigger(a,"popstate"),m},m.back=function(a){return a!==!1&&m.busy()?(m.pushQueue({scope:m,callback:m.back,args:arguments,queue:a}),!1):(m.busy(!0),m.doubleCheck(function(){m.back(!1)}),n.go(-1),!0)},m.forward=function(a){return a!==!1&&m.busy()?(m.pushQueue({scope:m,callback:m.forward,args:arguments,queue:a}),!1):(m.busy(!0),m.doubleCheck(function(){m.forward(!1)}),n.go(1),!0)},m.go=function(a,b){var c;if(a>0)for(c=1;c<=a;++c)m.forward(b);else{if(!(a<0))throw new Error("History.go: History.go requires a positive or negative integer passed.");for(c=-1;c>=a;--c)m.back(b)}return m};if(m.emulated.pushState){var o=function(){};m.pushState=m.pushState||o,m.replaceState=m.replaceState||o}else m.onPopState=function(b,c){var e=!1,f=!1,g,h;return m.doubleCheckComplete(),g=m.getHash(),g?(h=m.extractState(g||d.location.href,!0),h?m.replaceState(h.data,h.title,h.url,!1):(m.Adapter.trigger(a,"anchorchange"),m.busy(!1)),m.expectedStateId=!1,!1):(e=m.Adapter.extractEventData("state",b,c)||!1,e?f=m.getStateById(e):m.expectedStateId?f=m.getStateById(m.expectedStateId):f=m.extractState(d.location.href),f||(f=m.createStateObject(null,null,d.location.href)),m.expectedStateId=!1,m.isLastSavedState(f)?(m.busy(!1),!1):(m.storeState(f),m.saveState(f),m.setTitle(f),m.Adapter.trigger(a,"statechange"),m.busy(!1),!0))},m.Adapter.bind(a,"popstate",m.onPopState),m.pushState=function(b,c,d,e){if(m.getHashByUrl(d)&&m.emulated.pushState)throw new Error("History.js does not support states with fragement-identifiers (hashes/anchors).");if(e!==!1&&m.busy())return m.pushQueue({scope:m,callback:m.pushState,args:arguments,queue:e}),!1;m.busy(!0);var f=m.createStateObject(b,c,d);return m.isLastSavedState(f)?m.busy(!1):(m.storeState(f),m.expectedStateId=f.id,n.pushState(f.id,f.title,f.url),m.Adapter.trigger(a,"popstate")),!0},m.replaceState=function(b,c,d,e){if(m.getHashByUrl(d)&&m.emulated.pushState)throw new Error("History.js does not support states with fragement-identifiers (hashes/anchors).");if(e!==!1&&m.busy())return m.pushQueue({scope:m,callback:m.replaceState,args:arguments,queue:e}),!1;m.busy(!0);var f=m.createStateObject(b,c,d);return m.isLastSavedState(f)?m.busy(!1):(m.storeState(f),m.expectedStateId=f.id,n.replaceState(f.id,f.title,f.url),m.Adapter.trigger(a,"popstate")),!0};if(f){try{m.store=k.parse(f.getItem("History.store"))||{}}catch(p){m.store={}}m.normalizeStore()}else m.store={},m.normalizeStore();m.Adapter.bind(a,"beforeunload",m.clearAllIntervals),m.Adapter.bind(a,"unload",m.clearAllIntervals),m.saveState(m.storeState(m.extractState(d.location.href,!0))),f&&(m.onUnload=function(){var a,b;try{a=k.parse(f.getItem("History.store"))||{}}catch(c){a={}}a.idToState=a.idToState||{},a.urlToId=a.urlToId||{},a.stateToId=a.stateToId||{};for(b in m.idToState){if(!m.idToState.hasOwnProperty(b))continue;a.idToState[b]=m.idToState[b]}for(b in m.urlToId){if(!m.urlToId.hasOwnProperty(b))continue;a.urlToId[b]=m.urlToId[b]}for(b in m.stateToId){if(!m.stateToId.hasOwnProperty(b))continue;a.stateToId[b]=m.stateToId[b]}m.store=a,m.normalizeStore(),f.setItem("History.store",k.stringify(a))},m.intervalList.push(i(m.onUnload,m.options.storeInterval)),m.Adapter.bind(a,"beforeunload",m.onUnload),m.Adapter.bind(a,"unload",m.onUnload));if(!m.emulated.pushState){m.bugs.safariPoll&&m.intervalList.push(i(m.safariStatePoll,m.options.safariPollInterval));if(e.vendor==="Apple Computer, Inc."||(e.appCodeName||"")==="Mozilla")m.Adapter.bind(a,"hashchange",function(){m.Adapter.trigger(a,"popstate")}),m.getHash()&&m.Adapter.onDomLoad(function(){m.Adapter.trigger(a,"hashchange")})}},m.init()}(window) \ No newline at end of file | |||
diff --git a/Blocks/Flipboard/js/jquery.tmpl.min.js b/Blocks/Flipboard/js/jquery.tmpl.min.js new file mode 100644 index 0000000..f08e81d --- /dev/null +++ b/Blocks/Flipboard/js/jquery.tmpl.min.js | |||
@@ -0,0 +1 @@ | |||
(function(a){var r=a.fn.domManip,d="_tmplitem",q=/^[^<]*(<[\w\W]+>)[^>]*$|\{\{\! /,b={},f={},e,p={key:0,data:{}},h=0,c=0,l=[];function g(e,d,g,i){var c={data:i||(d?d.data:{}),_wrap:d?d._wrap:null,tmpl:null,parent:d||null,nodes:[],calls:u,nest:w,wrap:x,html:v,update:t};e&&a.extend(c,e,{nodes:[],parent:d});if(g){c.tmpl=g;c._ctnt=c._ctnt||c.tmpl(a,c);c.key=++h;(l.length?f:b)[h]=c}return c}a.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(f,d){a.fn[f]=function(n){var g=[],i=a(n),k,h,m,l,j=this.length===1&&this[0].parentNode;e=b||{};if(j&&j.nodeType===11&&j.childNodes.length===1&&i.length===1){i[d](this[0]);g=this}else{for(h=0,m=i.length;h<m;h++){c=h;k=(h>0?this.clone(true):this).get();a.fn[d].apply(a(i[h]),k);g=g.concat(k)}c=0;g=this.pushStack(g,f,i.selector)}l=e;e=null;a.tmpl.complete(l);return g}});a.fn.extend({tmpl:function(d,c,b){return a.tmpl(this[0],d,c,b)},tmplItem:function(){return a.tmplItem(this[0])},template:function(b){return a.template(b,this[0])},domManip:function(d,l,j){if(d[0]&&d[0].nodeType){var f=a.makeArray(arguments),g=d.length,i=0,h;while(i<g&&!(h=a.data(d[i++],"tmplItem")));if(g>1)f[0]=[a.makeArray(d)];if(h&&c)f[2]=function(b){a.tmpl.afterManip(this,b,j)};r.apply(this,f)}else r.apply(this,arguments);c=0;!e&&a.tmpl.complete(b);return this}});a.extend({tmpl:function(d,h,e,c){var j,k=!c;if(k){c=p;d=a.template[d]||a.template(null,d);f={}}else if(!d){d=c.tmpl;b[c.key]=c;c.nodes=[];c.wrapped&&n(c,c.wrapped);return a(i(c,null,c.tmpl(a,c)))}if(!d)return[];if(typeof h==="function")h=h.call(c||{});e&&e.wrapped&&n(e,e.wrapped);j=a.isArray(h)?a.map(h,function(a){return a?g(e,c,d,a):null}):[g(e,c,d,h)];return k?a(i(c,null,j)):j},tmplItem:function(b){var c;if(b instanceof a)b=b[0];while(b&&b.nodeType===1&&!(c=a.data(b,"tmplItem"))&&(b=b.parentNode));return c||p},template:function(c,b){if(b){if(typeof b==="string")b=o(b);else if(b instanceof a)b=b[0]||{};if(b.nodeType)b=a.data(b,"tmpl")||a.data(b,"tmpl",o(b.innerHTML));return typeof c==="string"?(a.template[c]=b):b}return c?typeof c!=="string"?a.template(null,c):a.template[c]||a.template(null,q.test(c)?c:a(c)):null},encode:function(a){return(""+a).split("<").join("<").split(">").join(">").split('"').join(""").split("'").join("'")}});a.extend(a.tmpl,{tag:{tmpl:{_default:{$2:"null"},open:"if($notnull_1){_=_.concat($item.nest($1,$2));}"},wrap:{_default:{$2:"null"},open:"$item.calls(_,$1,$2);_=[];",close:"call=$item.calls();_=call._.concat($item.wrap(call,_));"},each:{_default:{$2:"$index, $value"},open:"if($notnull_1){$.each($1a,function($2){with(this){",close:"}});}"},"if":{open:"if(($notnull_1) && $1a){",close:"}"},"else":{_default:{$1:"true"},open:"}else if(($notnull_1) && $1a){"},html:{open:"if($notnull_1){_.push($1a);}"},"=":{_default:{$1:"$data"},open:"if($notnull_1){_.push($.encode($1a));}"},"!":{open:""}},complete:function(){b={}},afterManip:function(f,b,d){var e=b.nodeType===11?a.makeArray(b.childNodes):b.nodeType===1?[b]:[];d.call(f,b);m(e);c++}});function i(e,g,f){var b,c=f?a.map(f,function(a){return typeof a==="string"?e.key?a.replace(/(<\w+)(?=[\s>])(?![^>]*_tmplitem)([^>]*)/g,"$1 "+d+'="'+e.key+'" $2'):a:i(a,e,a._ctnt)}):e;if(g)return c;c=c.join("");c.replace(/^\s*([^<\s][^<]*)?(<[\w\W]+>)([^>]*[^>\s])?\s*$/,function(f,c,e,d){b=a(e).get();m(b);if(c)b=j(c).concat(b);if(d)b=b.concat(j(d))});return b?b:j(c)}function j(c){var b=document.createElement("div");b.innerHTML=c;return a.makeArray(b.childNodes)}function o(b){return new Function("jQuery","$item","var $=jQuery,call,_=[],$data=$item.data;with($data){_.push('"+a.trim(b).replace(/([\\'])/g,"\\$1").replace(/[\r\t\n]/g," ").replace(/\$\{([^\}]*)\}/g,"{{= $1}}").replace(/\{\{(\/?)(\w+|.)(?:\(((?:[^\}]|\}(?!\}))*?)?\))?(?:\s+(.*?)?)?(\(((?:[^\}]|\}(?!\}))*?)\))?\s*\}\}/g,function(m,l,j,d,b,c,e){var i=a.tmpl.tag[j],h,f,g;if(!i)throw"Template command not found: "+j;h=i._default||[];if(c&&!/\w$/.test(b)){b+=c;c=""}if(b){b=k(b);e=e?","+k(e)+")":c?")":"";f=c?b.indexOf(".")>-1?b+c:"("+b+").call($item"+e:b;g=c?f:"(typeof("+b+")==='function'?("+b+").call($item):("+b+"))"}else g=f=h.$1||"null";d=k(d);return"');"+i[l?"close":"open"].split("$notnull_1").join(b?"typeof("+b+")!=='undefined' && ("+b+")!=null":"true").split("$1a").join(g).split("$1").join(f).split("$2").join(d?d.replace(/\s*([^\(]+)\s*(\((.*?)\))?/g,function(d,c,b,a){a=a?","+a+")":b?")":"";return a?"("+c+").call($item"+a:d}):h.$2||"")+"_.push('"})+"');}return _;")}function n(c,b){c._wrap=i(c,true,a.isArray(b)?b:[q.test(b)?b:a(b).html()]).join("")}function k(a){return a?a.replace(/\\'/g,"'").replace(/\\\\/g,"\\"):null}function s(b){var a=document.createElement("div");a.appendChild(b.cloneNode(true));return a.innerHTML}function m(o){var n="_"+c,k,j,l={},e,p,i;for(e=0,p=o.length;e<p;e++){if((k=o[e]).nodeType!==1)continue;j=k.getElementsByTagName("*");for(i=j.length-1;i>=0;i--)m(j[i]);m(k)}function m(j){var p,i=j,k,e,m;if(m=j.getAttribute(d)){while(i.parentNode&&(i=i.parentNode).nodeType===1&&!(p=i.getAttribute(d)));if(p!==m){i=i.parentNode?i.nodeType===11?0:i.getAttribute(d)||0:0;if(!(e=b[m])){e=f[m];e=g(e,b[i]||f[i],null,true);e.key=++h;b[h]=e}c&&o(m)}j.removeAttribute(d)}else if(c&&(e=a.data(j,"tmplItem"))){o(e.key);b[e.key]=e;i=a.data(j.parentNode,"tmplItem");i=i?i.key:0}if(e){k=e;while(k&&k.key!=i){k.nodes.push(j);k=k.parent}delete e._ctnt;delete e._wrap;a.data(j,"tmplItem",e)}function o(a){a=a+n;e=l[a]=l[a]||g(e,b[e.parent.key+n]||e.parent,null,true)}}}function u(a,d,c,b){if(!a)return l.pop();l.push({_:a,tmpl:d,item:this,data:c,options:b})}function w(d,c,b){return a.tmpl(a.template(d),c,b,this)}function x(b,d){var c=b.options||{};c.wrapped=d;return a.tmpl(a.template(b.tmpl),b.data,c,b.item)}function v(d,c){var b=this._wrap;return a.map(a(a.isArray(b)?b.join(""):b).filter(d||"*"),function(a){return c?a.innerText||a.textContent:a.outerHTML||s(a)})}function t(){var b=this.nodes;a.tmpl(null,null,null,this).insertBefore(b[0]);a(b).remove()}})(jQuery) \ No newline at end of file | |||
diff --git a/Blocks/Flipboard/js/jquery.touchSwipe-1.2.5.js b/Blocks/Flipboard/js/jquery.touchSwipe-1.2.5.js new file mode 100644 index 0000000..f007f55 --- /dev/null +++ b/Blocks/Flipboard/js/jquery.touchSwipe-1.2.5.js | |||
@@ -0,0 +1,478 @@ | |||
1 | /* | ||
2 | * touchSwipe - jQuery Plugin | ||
3 | * http://plugins.jquery.com/project/touchSwipe | ||
4 | * http://labs.skinkers.com/touchSwipe/ | ||
5 | * | ||
6 | * Copyright (c) 2010 Matt Bryson (www.skinkers.com) | ||
7 | * Dual licensed under the MIT or GPL Version 2 licenses. | ||
8 | * | ||
9 | * $version: 1.2.5 | ||
10 | * | ||
11 | * Changelog | ||
12 | * $Date: 2010-12-12 (Wed, 12 Dec 2010) $ | ||
13 | * $version: 1.0.0 | ||
14 | * $version: 1.0.1 - removed multibyte comments | ||
15 | * | ||
16 | * $Date: 2011-21-02 (Mon, 21 Feb 2011) $ | ||
17 | * $version: 1.1.0 - added allowPageScroll property to allow swiping and scrolling of page | ||
18 | * - changed handler signatures so one handler can be used for multiple events | ||
19 | * $Date: 2011-23-02 (Wed, 23 Feb 2011) $ | ||
20 | * $version: 1.2.0 - added click handler. This is fired if the user simply clicks and does not swipe. The event object and click target are passed to handler. | ||
21 | * - If you use the http://code.google.com/p/jquery-ui-for-ipad-and-iphone/ plugin, you can also assign jQuery mouse events to children of a touchSwipe object. | ||
22 | * $version: 1.2.1 - removed console log! | ||
23 | * | ||
24 | * $version: 1.2.2 - Fixed bug where scope was not preserved in callback methods. | ||
25 | * | ||
26 | * $Date: 2011-28-04 (Thurs, 28 April 2011) $ | ||
27 | * $version: 1.2.4 - Changed licence terms to be MIT or GPL inline with jQuery. Added check for support of touch events to stop non compatible browsers erroring. | ||
28 | * | ||
29 | * $Date: 2011-27-09 (Tues, 27 September 2011) $ | ||
30 | * $version: 1.2.5 - Added support for testing swipes with mouse on desktop browser (thanks to https://github.com/joelhy) | ||
31 | |||
32 | * A jQuery plugin to capture left, right, up and down swipes on touch devices. | ||
33 | * You can capture 2 finger or 1 finger swipes, set the threshold and define either a catch all handler, or individual direction handlers. | ||
34 | * Options: | ||
35 | * swipe Function A catch all handler that is triggered for all swipe directions. Handler is passed 3 arguments, the original event object, the direction of the swipe : "left", "right", "up", "down" and the distance of the swipe. | ||
36 | * swipeLeft Function A handler that is triggered for "left" swipes. Handler is passed 3 arguments, the original event object, the direction of the swipe : "left", "right", "up", "down" and the distance of the swipe. | ||
37 | * swipeRight Function A handler that is triggered for "right" swipes. Handler is passed 3 arguments, the original event object, the direction of the swipe : "left", "right", "up", "down" and the distance of the swipe. | ||
38 | * swipeUp Function A handler that is triggered for "up" swipes. Handler is passed 3 arguments, the original event object, the direction of the swipe : "left", "right", "up", "down" and the distance of the swipe. | ||
39 | * swipeDown Function A handler that is triggered for "down" swipes. Handler is passed 3 arguments, the original event object, the direction of the swipe : "left", "right", "up", "down" and the distance of the swipe. | ||
40 | * swipeStatus Function A handler triggered for every phase of the swipe. Handler is passed 4 arguments: event : The original event object, phase:The current swipe face, either "start?, "move?, "end? or "cancel?. direction : The swipe direction, either "up?, "down?, "left " or "right?.distance : The distance of the swipe. | ||
41 | * click Function A handler triggered when a user just clicks on the item, rather than swipes it. If they do not move, click is triggered, if they do move, it is not. | ||
42 | * | ||
43 | * fingers int Default 1. The number of fingers to trigger the swipe, 1 or 2. | ||
44 | * threshold int Default 75. The number of pixels that the user must move their finger by before it is considered a swipe. | ||
45 | * triggerOnTouchEnd Boolean Default true If true, the swipe events are triggered when the touch end event is received (user releases finger). If false, it will be triggered on reaching the threshold, and then cancel the touch event automatically. | ||
46 | * allowPageScroll String Default "auto". How the browser handles page scrolls when the user is swiping on a touchSwipe object. | ||
47 | * "auto" : all undefined swipes will cause the page to scroll in that direction. | ||
48 | * "none" : the page will not scroll when user swipes. | ||
49 | * "horizontal" : will force page to scroll on horizontal swipes. | ||
50 | * "vertical" : will force page to scroll on vertical swipes. | ||
51 | * | ||
52 | * This jQuery plugin will only run on devices running Mobile Webkit based browsers (iOS 2.0+, android 2.2+) | ||
53 | */ | ||
54 | (function($) | ||
55 | { | ||
56 | |||
57 | |||
58 | |||
59 | $.fn.swipe = function(options) | ||
60 | { | ||
61 | if (!this) return false; | ||
62 | |||
63 | // Default thresholds & swipe functions | ||
64 | var defaults = { | ||
65 | |||
66 | fingers : 1, // int - The number of fingers to trigger the swipe, 1 or 2. Default is 1. | ||
67 | threshold : 75, // int - The number of pixels that the user must move their finger by before it is considered a swipe. Default is 75. | ||
68 | |||
69 | swipe : null, // Function - A catch all handler that is triggered for all swipe directions. Accepts 2 arguments, the original event object and the direction of the swipe : "left", "right", "up", "down". | ||
70 | swipeLeft : null, // Function - A handler that is triggered for "left" swipes. Accepts 3 arguments, the original event object, the direction of the swipe : "left", "right", "up", "down" and the distance of the swipe. | ||
71 | swipeRight : null, // Function - A handler that is triggered for "right" swipes. Accepts 3 arguments, the original event object, the direction of the swipe : "left", "right", "up", "down" and the distance of the swipe. | ||
72 | swipeUp : null, // Function - A handler that is triggered for "up" swipes. Accepts 3 arguments, the original event object, the direction of the swipe : "left", "right", "up", "down" and the distance of the swipe. | ||
73 | swipeDown : null, // Function - A handler that is triggered for "down" swipes. Accepts 3 arguments, the original event object, the direction of the swipe : "left", "right", "up", "down" and the distance of the swipe. | ||
74 | swipeStatus : null, // Function - A handler triggered for every phase of the swipe. Handler is passed 4 arguments: event : The original event object, phase:The current swipe face, either "start?, "move?, "end? or "cancel?. direction : The swipe direction, either "up?, "down?, "left " or "right?.distance : The distance of the swipe. | ||
75 | click : null, // Function - A handler triggered when a user just clicks on the item, rather than swipes it. If they do not move, click is triggered, if they do move, it is not. | ||
76 | |||
77 | triggerOnTouchEnd : true, // Boolean, if true, the swipe events are triggered when the touch end event is received (user releases finger). If false, it will be triggered on reaching the threshold, and then cancel the touch event automatically. | ||
78 | allowPageScroll : "auto" /* How the browser handles page scrolls when the user is swiping on a touchSwipe object. | ||
79 | "auto" : all undefined swipes will cause the page to scroll in that direction. | ||
80 | "none" : the page will not scroll when user swipes. | ||
81 | "horizontal" : will force page to scroll on horizontal swipes. | ||
82 | "vertical" : will force page to scroll on vertical swipes. | ||
83 | */ | ||
84 | }; | ||
85 | |||
86 | |||
87 | //Constants | ||
88 | var LEFT = "left"; | ||
89 | var RIGHT = "right"; | ||
90 | var UP = "up"; | ||
91 | var DOWN = "down"; | ||
92 | var NONE = "none"; | ||
93 | var HORIZONTAL = "horizontal"; | ||
94 | var VERTICAL = "vertical"; | ||
95 | var AUTO = "auto"; | ||
96 | |||
97 | var PHASE_START="start"; | ||
98 | var PHASE_MOVE="move"; | ||
99 | var PHASE_END="end"; | ||
100 | var PHASE_CANCEL="cancel"; | ||
101 | |||
102 | var hasTouch = 'ontouchstart' in window, | ||
103 | START_EV = hasTouch ? 'touchstart' : 'mousedown', | ||
104 | MOVE_EV = hasTouch ? 'touchmove' : 'mousemove', | ||
105 | END_EV = hasTouch ? 'touchend' : 'mouseup', | ||
106 | CANCEL_EV = 'touchcancel'; | ||
107 | |||
108 | var phase="start"; | ||
109 | |||
110 | if (options.allowPageScroll==undefined && (options.swipe!=undefined || options.swipeStatus!=undefined)) | ||
111 | options.allowPageScroll=NONE; | ||
112 | |||
113 | if (options) | ||
114 | $.extend(defaults, options); | ||
115 | |||
116 | |||
117 | /** | ||
118 | * Setup each object to detect swipe gestures | ||
119 | */ | ||
120 | return this.each(function() | ||
121 | { | ||
122 | var that = this; | ||
123 | var $this = $(this); | ||
124 | |||
125 | var triggerElementID = null; // this variable is used to identity the triggering element | ||
126 | var fingerCount = 0; // the current number of fingers being used. | ||
127 | |||
128 | //track mouse points / delta | ||
129 | var start={x:0, y:0}; | ||
130 | var end={x:0, y:0}; | ||
131 | var delta={x:0, y:0}; | ||
132 | // added by Codrops | ||
133 | var lastPositionX = 0; | ||
134 | |||
135 | /** | ||
136 | * Event handler for a touch start event. | ||
137 | * Stops the default click event from triggering and stores where we touched | ||
138 | */ | ||
139 | function touchStart(event) | ||
140 | { | ||
141 | var evt = hasTouch ? event.touches[0] : event; | ||
142 | |||
143 | phase = PHASE_START; | ||
144 | |||
145 | if (hasTouch) { | ||
146 | // get the total number of fingers touching the screen | ||
147 | fingerCount = event.touches.length; | ||
148 | } | ||
149 | |||
150 | //clear vars.. | ||
151 | distance=0; | ||
152 | direction=null; | ||
153 | |||
154 | // check the number of fingers is what we are looking for | ||
155 | if (fingerCount == defaults.fingers || !hasTouch) | ||
156 | { | ||
157 | // get the coordinates of the touch | ||
158 | start.x = end.x = evt.pageX; | ||
159 | start.y = end.y = evt.pageY; | ||
160 | // changed by Codrops | ||
161 | lastPositionX = end.x; | ||
162 | |||
163 | if (defaults.swipeStatus) | ||
164 | triggerHandler(event, phase, start, end); | ||
165 | } | ||
166 | else | ||
167 | { | ||
168 | //touch with more/less than the fingers we are looking for | ||
169 | touchCancel(event); | ||
170 | } | ||
171 | |||
172 | that.addEventListener(MOVE_EV, touchMove, false); | ||
173 | that.addEventListener(END_EV, touchEnd, false); | ||
174 | |||
175 | } | ||
176 | |||
177 | /** | ||
178 | * Event handler for a touch move event. | ||
179 | * If we change fingers during move, then cancel the event | ||
180 | */ | ||
181 | function touchMove(event) | ||
182 | { | ||
183 | if (phase == PHASE_END || phase == PHASE_CANCEL) | ||
184 | return; | ||
185 | |||
186 | var evt = hasTouch ? event.touches[0] : event; | ||
187 | |||
188 | end.x = evt.pageX; | ||
189 | end.y = evt.pageY; | ||
190 | |||
191 | // changed by Codrops | ||
192 | direction = calculateDirection(); | ||
193 | lastPositionX = end.x; | ||
194 | |||
195 | if (hasTouch) { | ||
196 | fingerCount = event.touches.length; | ||
197 | } | ||
198 | |||
199 | phase = PHASE_MOVE | ||
200 | |||
201 | //Check if we need to prevent default evnet (page scroll) or not | ||
202 | validateDefaultEvent(event, direction); | ||
203 | |||
204 | if ( fingerCount == defaults.fingers || !hasTouch) | ||
205 | { | ||
206 | distance = caluculateDistance(); | ||
207 | |||
208 | if (defaults.swipeStatus) | ||
209 | triggerHandler(event, phase, start, end, direction, distance); | ||
210 | |||
211 | //If we trigger whilst dragging, not on touch end, then calculate now... | ||
212 | if (!defaults.triggerOnTouchEnd) | ||
213 | { | ||
214 | // if the user swiped more than the minimum length, perform the appropriate action | ||
215 | if ( distance >= defaults.threshold ) | ||
216 | { | ||
217 | phase = PHASE_END; | ||
218 | triggerHandler(event, phase, start, end); | ||
219 | touchCancel(event); // reset the variables | ||
220 | } | ||
221 | } | ||
222 | } | ||
223 | else | ||
224 | { | ||
225 | phase = PHASE_CANCEL; | ||
226 | triggerHandler(event, phase, start, end); | ||
227 | touchCancel(event); | ||
228 | } | ||
229 | } | ||
230 | |||
231 | /** | ||
232 | * Event handler for a touch end event. | ||
233 | * Calculate the direction and trigger events | ||
234 | */ | ||
235 | function touchEnd(event) | ||
236 | { | ||
237 | event.preventDefault(); | ||
238 | |||
239 | distance = caluculateDistance(); | ||
240 | |||
241 | //changed by codrops | ||
242 | //direction = caluculateDirection(); | ||
243 | |||
244 | if (defaults.triggerOnTouchEnd) | ||
245 | { | ||
246 | phase = PHASE_END; | ||
247 | // check to see if more than one finger was used and that there is an ending coordinate | ||
248 | if ( (fingerCount == defaults.fingers || !hasTouch) && end.x != 0 ) | ||
249 | { | ||
250 | // if the user swiped more than the minimum length, perform the appropriate action | ||
251 | if ( distance >= defaults.threshold ) | ||
252 | { | ||
253 | triggerHandler(event, phase, start, end); | ||
254 | touchCancel(event); // reset the variables | ||
255 | } | ||
256 | else | ||
257 | { | ||
258 | phase = PHASE_CANCEL; | ||
259 | triggerHandler(event, phase, start, end); | ||
260 | touchCancel(event); | ||
261 | } | ||
262 | } | ||
263 | else | ||
264 | { | ||
265 | phase = PHASE_CANCEL; | ||
266 | triggerHandler(event, phase, start, end); | ||
267 | touchCancel(event); | ||
268 | } | ||
269 | } | ||
270 | else if (phase == PHASE_MOVE) | ||
271 | { | ||
272 | phase = PHASE_CANCEL; | ||
273 | triggerHandler(event, phase, start, end); | ||
274 | touchCancel(event); | ||
275 | } | ||
276 | that.removeEventListener(MOVE_EV, touchMove, false); | ||
277 | that.removeEventListener(END_EV, touchEnd, false); | ||
278 | } | ||
279 | |||
280 | /** | ||
281 | * Event handler for a touch cancel event. | ||
282 | * Clears current vars | ||
283 | */ | ||
284 | function touchCancel(event) | ||
285 | { | ||
286 | // reset the variables back to default values | ||
287 | fingerCount = 0; | ||
288 | |||
289 | start.x = 0; | ||
290 | start.y = 0; | ||
291 | end.x = 0; | ||
292 | end.y = 0; | ||
293 | delta.x = 0; | ||
294 | delta.y = 0; | ||
295 | } | ||
296 | |||
297 | |||
298 | /** | ||
299 | * Trigger the relevant event handler | ||
300 | * The handlers are passed the original event, the element that was swiped, and in the case of the catch all handler, the direction that was swiped, "left", "right", "up", or "down" | ||
301 | */ | ||
302 | // changed by Codrops added start & end | ||
303 | function triggerHandler(event, phase, start, end) | ||
304 | { | ||
305 | //update status | ||
306 | if (defaults.swipeStatus) | ||
307 | defaults.swipeStatus.call($this,event, phase, start, end, direction || null, distance || 0); | ||
308 | |||
309 | |||
310 | if (phase == PHASE_CANCEL) | ||
311 | { | ||
312 | if (defaults.click && (fingerCount==1 || !hasTouch) && (isNaN(distance) || distance==0)) | ||
313 | defaults.click.call($this,event, event.target); | ||
314 | } | ||
315 | |||
316 | if (phase == PHASE_END) | ||
317 | { | ||
318 | //trigger catch all event handler | ||
319 | if (defaults.swipe) | ||
320 | { | ||
321 | |||
322 | defaults.swipe.call($this,event, direction, distance); | ||
323 | |||
324 | } | ||
325 | //trigger direction specific event handlers | ||
326 | switch(direction) | ||
327 | { | ||
328 | case LEFT : | ||
329 | if (defaults.swipeLeft) | ||
330 | defaults.swipeLeft.call($this,event, direction, distance); | ||
331 | break; | ||
332 | |||
333 | case RIGHT : | ||
334 | if (defaults.swipeRight) | ||
335 | defaults.swipeRight.call($this,event, direction, distance); | ||
336 | break; | ||
337 | |||
338 | case UP : | ||
339 | if (defaults.swipeUp) | ||
340 | defaults.swipeUp.call($this,event, direction, distance); | ||
341 | break; | ||
342 | |||
343 | case DOWN : | ||
344 | if (defaults.swipeDown) | ||
345 | defaults.swipeDown.call($this,event, direction, distance); | ||
346 | break; | ||
347 | } | ||
348 | } | ||
349 | } | ||
350 | |||
351 | |||
352 | /** | ||
353 | * Checks direction of the swipe and the value allowPageScroll to see if we should allow or prevent the default behaviour from occurring. | ||
354 | * This will essentially allow page scrolling or not when the user is swiping on a touchSwipe object. | ||
355 | */ | ||
356 | function validateDefaultEvent(event, direction) | ||
357 | { | ||
358 | if( defaults.allowPageScroll==NONE ) | ||
359 | { | ||
360 | event.preventDefault(); | ||
361 | } | ||
362 | else | ||
363 | { | ||
364 | var auto=defaults.allowPageScroll==AUTO; | ||
365 | |||
366 | switch(direction) | ||
367 | { | ||
368 | case LEFT : | ||
369 | if ( (defaults.swipeLeft && auto) || (!auto && defaults.allowPageScroll!=HORIZONTAL)) | ||
370 | event.preventDefault(); | ||
371 | break; | ||
372 | |||
373 | case RIGHT : | ||
374 | if ( (defaults.swipeRight && auto) || (!auto && defaults.allowPageScroll!=HORIZONTAL)) | ||
375 | event.preventDefault(); | ||
376 | break; | ||
377 | |||
378 | case UP : | ||
379 | if ( (defaults.swipeUp && auto) || (!auto && defaults.allowPageScroll!=VERTICAL)) | ||
380 | event.preventDefault(); | ||
381 | break; | ||
382 | |||
383 | case DOWN : | ||
384 | if ( (defaults.swipeDown && auto) || (!auto && defaults.allowPageScroll!=VERTICAL)) | ||
385 | event.preventDefault(); | ||
386 | break; | ||
387 | } | ||
388 | } | ||
389 | |||
390 | } | ||
391 | |||
392 | |||
393 | |||
394 | /** | ||
395 | * Calcualte the length / distance of the swipe | ||
396 | */ | ||
397 | function caluculateDistance() | ||
398 | { | ||
399 | //return Math.round(Math.sqrt(Math.pow(end.x - start.x,2) + Math.pow(end.y - start.y,2))); | ||
400 | return Math.round(Math.abs(end.x - start.x)); | ||
401 | } | ||
402 | |||
403 | /** | ||
404 | * Calcualte the angle of the swipe | ||
405 | */ | ||
406 | function caluculateAngle() | ||
407 | { | ||
408 | var X = start.x-end.x; | ||
409 | var Y = end.y-start.y; | ||
410 | var r = Math.atan2(Y,X); //radians | ||
411 | var angle = Math.round(r*180/Math.PI); //degrees | ||
412 | |||
413 | //ensure value is positive | ||
414 | if (angle < 0) | ||
415 | angle = 360 - Math.abs(angle); | ||
416 | |||
417 | return angle; | ||
418 | } | ||
419 | |||
420 | /** | ||
421 | * Calcualte the direction of the swipe | ||
422 | * This will also call caluculateAngle to get the latest angle of swipe | ||
423 | */ | ||
424 | function caluculateDirection() | ||
425 | { | ||
426 | var angle = caluculateAngle(); | ||
427 | |||
428 | if ( (angle <= 45) && (angle >= 0) ) | ||
429 | return LEFT; | ||
430 | |||
431 | else if ( (angle <= 360) && (angle >= 315) ) | ||
432 | return LEFT; | ||
433 | |||
434 | else if ( (angle >= 135) && (angle <= 225) ) | ||
435 | return RIGHT; | ||
436 | |||
437 | else if ( (angle > 45) && (angle < 135) ) | ||
438 | return DOWN; | ||
439 | |||
440 | else | ||
441 | return UP; | ||
442 | } | ||
443 | |||
444 | // added by codrops | ||
445 | function calculateDirection() | ||
446 | { | ||
447 | var dir; | ||
448 | if( end.x < lastPositionX ) { | ||
449 | dir = LEFT | ||
450 | } | ||
451 | else if( end.x > lastPositionX ) { | ||
452 | dir = RIGHT; | ||
453 | } | ||
454 | else { | ||
455 | dir = UP | ||
456 | } | ||
457 | return dir; | ||
458 | } | ||
459 | |||
460 | // Add gestures to all swipable areas if supported | ||
461 | try | ||
462 | { | ||
463 | |||
464 | this.addEventListener(START_EV, touchStart, false); | ||
465 | this.addEventListener(CANCEL_EV, touchCancel); | ||
466 | } | ||
467 | catch(e) | ||
468 | { | ||
469 | //touch not supported | ||
470 | } | ||
471 | |||
472 | }); | ||
473 | }; | ||
474 | |||
475 | |||
476 | |||
477 | |||
478 | })(jQuery); | ||
diff --git a/Blocks/Flipboard/js/modernizr.custom.08464.js b/Blocks/Flipboard/js/modernizr.custom.08464.js new file mode 100644 index 0000000..5325668 --- /dev/null +++ b/Blocks/Flipboard/js/modernizr.custom.08464.js | |||
@@ -0,0 +1,4 @@ | |||
1 | /* Modernizr 2.5.3 (Custom Build) | MIT & BSD | ||
2 | * Build: http://www.modernizr.com/download/#-csstransforms3d-csstransitions-shiv-cssclasses-teststyles-testprop-testallprops-prefixes-domprefixes-load | ||
3 | */ | ||
4 | ;window.Modernizr=function(a,b,c){function z(a){j.cssText=a}function A(a,b){return z(m.join(a+";")+(b||""))}function B(a,b){return typeof a===b}function C(a,b){return!!~(""+a).indexOf(b)}function D(a,b){for(var d in a)if(j[a[d]]!==c)return b=="pfx"?a[d]:!0;return!1}function E(a,b,d){for(var e in a){var f=b[a[e]];if(f!==c)return d===!1?a[e]:B(f,"function")?f.bind(d||b):f}return!1}function F(a,b,c){var d=a.charAt(0).toUpperCase()+a.substr(1),e=(a+" "+o.join(d+" ")+d).split(" ");return B(b,"string")||B(b,"undefined")?D(e,b):(e=(a+" "+p.join(d+" ")+d).split(" "),E(e,b,c))}var d="2.5.3",e={},f=!0,g=b.documentElement,h="modernizr",i=b.createElement(h),j=i.style,k,l={}.toString,m=" -webkit- -moz- -o- -ms- ".split(" "),n="Webkit Moz O ms",o=n.split(" "),p=n.toLowerCase().split(" "),q={},r={},s={},t=[],u=t.slice,v,w=function(a,c,d,e){var f,i,j,k=b.createElement("div"),l=b.body,m=l?l:b.createElement("body");if(parseInt(d,10))while(d--)j=b.createElement("div"),j.id=e?e[d]:h+(d+1),k.appendChild(j);return f=["­","<style>",a,"</style>"].join(""),k.id=h,(l?k:m).innerHTML+=f,m.appendChild(k),l||(m.style.background="",g.appendChild(m)),i=c(k,a),l?k.parentNode.removeChild(k):m.parentNode.removeChild(m),!!i},x={}.hasOwnProperty,y;!B(x,"undefined")&&!B(x.call,"undefined")?y=function(a,b){return x.call(a,b)}:y=function(a,b){return b in a&&B(a.constructor.prototype[b],"undefined")},Function.prototype.bind||(Function.prototype.bind=function(b){var c=this;if(typeof c!="function")throw new TypeError;var d=u.call(arguments,1),e=function(){if(this instanceof e){var a=function(){};a.prototype=c.prototype;var f=new a,g=c.apply(f,d.concat(u.call(arguments)));return Object(g)===g?g:f}return c.apply(b,d.concat(u.call(arguments)))};return e});var G=function(a,c){var d=a.join(""),f=c.length;w(d,function(a,c){var d=b.styleSheets[b.styleSheets.length-1],g=d?d.cssRules&&d.cssRules[0]?d.cssRules[0].cssText:d.cssText||"":"",h=a.childNodes,i={};while(f--)i[h[f].id]=h[f];e.csstransforms3d=(i.csstransforms3d&&i.csstransforms3d.offsetLeft)===9&&i.csstransforms3d.offsetHeight===3},f,c)}([,["@media (",m.join("transform-3d),("),h,")","{#csstransforms3d{left:9px;position:absolute;height:3px;}}"].join("")],[,"csstransforms3d"]);q.csstransforms3d=function(){var a=!!F("perspective");return a&&"webkitPerspective"in g.style&&(a=e.csstransforms3d),a},q.csstransitions=function(){return F("transition")};for(var H in q)y(q,H)&&(v=H.toLowerCase(),e[v]=q[H](),t.push((e[v]?"":"no-")+v));return z(""),i=k=null,function(a,b){function g(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x<style>"+b+"</style>",d.insertBefore(c.lastChild,d.firstChild)}function h(){var a=k.elements;return typeof a=="string"?a.split(" "):a}function i(a){var b={},c=a.createElement,e=a.createDocumentFragment,f=e();a.createElement=function(a){var e=(b[a]||(b[a]=c(a))).cloneNode();return k.shivMethods&&e.canHaveChildren&&!d.test(a)?f.appendChild(e):e},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+h().join().replace(/\w+/g,function(a){return b[a]=c(a),f.createElement(a),'c("'+a+'")'})+");return n}")(k,f)}function j(a){var b;return a.documentShived?a:(k.shivCSS&&!e&&(b=!!g(a,"article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio{display:none}canvas,video{display:inline-block;*display:inline;*zoom:1}[hidden]{display:none}audio[controls]{display:inline-block;*display:inline;*zoom:1}mark{background:#FF0;color:#000}")),f||(b=!i(a)),b&&(a.documentShived=b),a)}var c=a.html5||{},d=/^<|^(?:button|form|map|select|textarea)$/i,e,f;(function(){var a=b.createElement("a");a.innerHTML="<xyz></xyz>",e="hidden"in a,f=a.childNodes.length==1||function(){try{b.createElement("a")}catch(a){return!0}var c=b.createDocumentFragment();return typeof c.cloneNode=="undefined"||typeof c.createDocumentFragment=="undefined"||typeof c.createElement=="undefined"}()})();var k={elements:c.elements||"abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video",shivCSS:c.shivCSS!==!1,shivMethods:c.shivMethods!==!1,type:"default",shivDocument:j};a.html5=k,j(b)}(this,b),e._version=d,e._prefixes=m,e._domPrefixes=p,e._cssomPrefixes=o,e.testProp=function(a){return D([a])},e.testAllProps=F,e.testStyles=w,g.className=g.className.replace(/(^|\s)no-js(\s|$)/,"$1$2")+(f?" js "+t.join(" "):""),e}(this,this.document),function(a,b,c){function d(a){return o.call(a)=="[object Function]"}function e(a){return typeof a=="string"}function f(){}function g(a){return!a||a=="loaded"||a=="complete"||a=="uninitialized"}function h(){var a=p.shift();q=1,a?a.t?m(function(){(a.t=="c"?B.injectCss:B.injectJs)(a.s,0,a.a,a.x,a.e,1)},0):(a(),h()):q=0}function i(a,c,d,e,f,i,j){function k(b){if(!o&&g(l.readyState)&&(u.r=o=1,!q&&h(),l.onload=l.onreadystatechange=null,b)){a!="img"&&m(function(){t.removeChild(l)},50);for(var d in y[c])y[c].hasOwnProperty(d)&&y[c][d].onload()}}var j=j||B.errorTimeout,l={},o=0,r=0,u={t:d,s:c,e:f,a:i,x:j};y[c]===1&&(r=1,y[c]=[],l=b.createElement(a)),a=="object"?l.data=c:(l.src=c,l.type=a),l.width=l.height="0",l.onerror=l.onload=l.onreadystatechange=function(){k.call(this,r)},p.splice(e,0,u),a!="img"&&(r||y[c]===2?(t.insertBefore(l,s?null:n),m(k,j)):y[c].push(l))}function j(a,b,c,d,f){return q=0,b=b||"j",e(a)?i(b=="c"?v:u,a,b,this.i++,c,d,f):(p.splice(this.i++,0,a),p.length==1&&h()),this}function k(){var a=B;return a.loader={load:j,i:0},a}var l=b.documentElement,m=a.setTimeout,n=b.getElementsByTagName("script")[0],o={}.toString,p=[],q=0,r="MozAppearance"in l.style,s=r&&!!b.createRange().compareNode,t=s?l:n.parentNode,l=a.opera&&o.call(a.opera)=="[object Opera]",l=!!b.attachEvent&&!l,u=r?"object":l?"script":"img",v=l?"script":u,w=Array.isArray||function(a){return o.call(a)=="[object Array]"},x=[],y={},z={timeout:function(a,b){return b.length&&(a.timeout=b[0]),a}},A,B;B=function(a){function b(a){var a=a.split("!"),b=x.length,c=a.pop(),d=a.length,c={url:c,origUrl:c,prefixes:a},e,f,g;for(f=0;f<d;f++)g=a[f].split("="),(e=z[g.shift()])&&(c=e(c,g));for(f=0;f<b;f++)c=x[f](c);return c}function g(a,e,f,g,i){var j=b(a),l=j.autoCallback;j.url.split(".").pop().split("?").shift(),j.bypass||(e&&(e=d(e)?e:e[a]||e[g]||e[a.split("/").pop().split("?")[0]]||h),j.instead?j.instead(a,e,f,g,i):(y[j.url]?j.noexec=!0:y[j.url]=1,f.load(j.url,j.forceCSS||!j.forceJS&&"css"==j.url.split(".").pop().split("?").shift()?"c":c,j.noexec,j.attrs,j.timeout),(d(e)||d(l))&&f.load(function(){k(),e&&e(j.origUrl,i,g),l&&l(j.origUrl,i,g),y[j.url]=2})))}function i(a,b){function c(a,c){if(a){if(e(a))c||(j=function(){var a=[].slice.call(arguments);k.apply(this,a),l()}),g(a,j,b,0,h);else if(Object(a)===a)for(n in m=function(){var b=0,c;for(c in a)a.hasOwnProperty(c)&&b++;return b}(),a)a.hasOwnProperty(n)&&(!c&&!--m&&(d(j)?j=function(){var a=[].slice.call(arguments);k.apply(this,a),l()}:j[n]=function(a){return function(){var b=[].slice.call(arguments);a&&a.apply(this,b),l()}}(k[n])),g(a[n],j,b,n,h))}else!c&&l()}var h=!!a.test,i=a.load||a.both,j=a.callback||f,k=j,l=a.complete||f,m,n;c(h?a.yep:a.nope,!!i),i&&c(i)}var j,l,m=this.yepnope.loader;if(e(a))g(a,0,m,0);else if(w(a))for(j=0;j<a.length;j++)l=a[j],e(l)?g(l,0,m,0):w(l)?B(l):Object(l)===l&&i(l,m);else Object(a)===a&&i(a,m)},B.addPrefix=function(a,b){z[a]=b},B.addFilter=function(a){x.push(a)},B.errorTimeout=1e4,b.readyState==null&&b.addEventListener&&(b.readyState="loading",b.addEventListener("DOMContentLoaded",A=function(){b.removeEventListener("DOMContentLoaded",A,0),b.readyState="complete"},0)),a.yepnope=k(),a.yepnope.executeStack=h,a.yepnope.injectJs=function(a,c,d,e,i,j){var k=b.createElement("script"),l,o,e=e||B.errorTimeout;k.src=a;for(o in d)k.setAttribute(o,d[o]);c=j?h:c||f,k.onreadystatechange=k.onload=function(){!l&&g(k.readyState)&&(l=1,c(),k.onload=k.onreadystatechange=null)},m(function(){l||(l=1,c(1))},e),i?k.onload():n.parentNode.insertBefore(k,n)},a.yepnope.injectCss=function(a,c,d,e,g,i){var e=b.createElement("link"),j,c=i?h:c||f;e.href=a,e.rel="stylesheet",e.type="text/css";for(j in d)e.setAttribute(j,d[j]);g||(n.parentNode.insertBefore(e,n),m(c,0))}}(this,document),Modernizr.load=function(){yepnope.apply(window,[].slice.call(arguments,0))}; \ No newline at end of file | ||
diff --git a/Blocks/For U_files/_notes/dwsync.xml b/Blocks/For U_files/_notes/dwsync.xml new file mode 100644 index 0000000..bc9aad9 --- /dev/null +++ b/Blocks/For U_files/_notes/dwsync.xml | |||
@@ -0,0 +1,9 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" ?> | ||
2 | <dwsync> | ||
3 | <file name="love.png" server="203.124.114.1//blog/" local="130216519716025503" remote="130295604600000000" Dst="0" /> | ||
4 | <file name="life.png" server="203.124.114.1//blog/" local="130216519716035504" remote="130295604600000000" Dst="0" /> | ||
5 | <file name="train.png" server="203.124.114.1//blog/" local="130278528366283935" remote="130295604600000000" Dst="0" /> | ||
6 | <file name="world.png" server="203.124.114.1//blog/" local="130216519716065506" remote="130295604600000000" Dst="0" /> | ||
7 | <file name="time.png" server="203.124.114.1//blog/" local="130216519716075506" remote="130295604600000000" Dst="0" /> | ||
8 | <file name="python.png" server="203.124.114.1//blog/" local="130278523147365430" remote="130295604600000000" Dst="0" /> | ||
9 | </dwsync> \ No newline at end of file | ||
diff --git a/Blocks/For U_files/future.png b/Blocks/For U_files/future.png new file mode 100644 index 0000000..7722341 --- /dev/null +++ b/Blocks/For U_files/future.png | |||
Binary files differ | |||
diff --git a/Blocks/For U_files/life.png b/Blocks/For U_files/life.png new file mode 100644 index 0000000..ebfe8d2 --- /dev/null +++ b/Blocks/For U_files/life.png | |||
Binary files differ | |||
diff --git a/Blocks/For U_files/love.png b/Blocks/For U_files/love.png new file mode 100644 index 0000000..7e914b8 --- /dev/null +++ b/Blocks/For U_files/love.png | |||
Binary files differ | |||
diff --git a/Blocks/For U_files/python.png b/Blocks/For U_files/python.png new file mode 100644 index 0000000..1ff51c3 --- /dev/null +++ b/Blocks/For U_files/python.png | |||
Binary files differ | |||
diff --git a/Blocks/For U_files/time.png b/Blocks/For U_files/time.png new file mode 100644 index 0000000..b4196cd --- /dev/null +++ b/Blocks/For U_files/time.png | |||
Binary files differ | |||
diff --git a/Blocks/For U_files/train.png b/Blocks/For U_files/train.png new file mode 100644 index 0000000..9a668b9 --- /dev/null +++ b/Blocks/For U_files/train.png | |||
Binary files differ | |||
diff --git a/Blocks/For U_files/world.png b/Blocks/For U_files/world.png new file mode 100644 index 0000000..f1e1d5d --- /dev/null +++ b/Blocks/For U_files/world.png | |||
Binary files differ | |||
diff --git a/Blocks/alphabet.js b/Blocks/alphabet.js new file mode 100644 index 0000000..d5bcd4d --- /dev/null +++ b/Blocks/alphabet.js | |||
@@ -0,0 +1 @@ | |||
document.alphabet={A79:{W:75,P:[[64,89,9,-102],[57,103,9,-102],[5,89,9,-79],[16,104,8,-35],[51,122,8,-35],[23,118,8,-35],[31,133,8,50],[46,136,8,50],[34,153,8,69],[28,168,7,112],[21,183,7,112]]},A78:{W:85,P:[[10,148,8,-103],[21,137,8,-92],[33,125,7,-79],[50,124,7,-35],[58,135,7,-35],[68,148,7,-35],[40,111,7,51],[33,103,7,51],[21,86,7,51],[56,106,7,51],[67,92,7,112]]},A77:{W:98,P:[[24,148,10,-102],[67,151,10,-102],[34,133,9,-36],[61,134,9,-36],[76,132,8,-36],[16,130,8,-36],[14,112,7,50],[40,118,7,50],[58,117,7,50],[82,117,7,83],[86,100,7,83],[51,101,7,83],[11,95,7,83]]},A76:{W:70,P:[[12,88,9,-84],[32,138,5,-84],[36,148,9,-84],[44,133,8,-84],[60,84,6,119],[57,96,6,102],[53,107,6,50],[50,120,7,-35],[26,115,7,51],[29,127,6,69],[20,101,8,11]]},A75:{W:75,P:[[58,148,9,-103],[60,128,8,-84],[38,150,8,-35],[21,147,7,-35],[61,109,7,-35],[17,128,7,42],[13,110,7,80],[62,92,7,80],[14,90,7,80]]},A74:{W:68,P:[[33,149,9,-103],[35,130,9,-79],[34,108,9,-36],[33,90,8,5],[48,89,8,50],[14,89,8,56],[34,68,8,112]]},A73:{W:70,P:[[10,143,8,-103],[23,150,8,-92],[44,149,8,-79],[57,135,8,-38],[44,122,8,-35],[25,114,8,39],[17,98,7,39],[33,91,7,56],[45,88,7,102],[57,91,7,102]]},A72:{W:69,P:[[58,105,7,-102],[56,88,8,-35],[42,91,7,51],[29,96,7,91],[16,90,7,91],[18,105,8,37],[17,120,7,-50],[17,134,6,-79],[17,149,8,-102]]},A71:{W:75,P:[[51,182,10,-103],[51,159,9,-79],[55,138,9,-79],[35,149,8,-35],[18,143,7,11],[58,123,7,11],[12,126,7,50],[57,103,7,69],[16,109,6,69],[26,95,6,69],[49,88,6,69],[37,88,6,119]]},A70:{W:77,P:[[15,88,10,-103],[18,108,9,-91],[31,97,9,-50],[18,126,8,-50],[45,96,7,-35],[57,103,7,5],[17,143,7,5],[60,117,7,56],[60,131,7,56],[20,158,7,50],[51,143,7,50],[31,148,6,102],[17,172,6,102],[16,186,5,119]]},A6d:{W:111,P:[[15,148,10,-102],[58,152,10,-102],[98,151,10,-50],[98,134,9,-50],[56,133,9,-50],[15,129,8,11],[94,116,8,11],[56,113,8,11],[14,111,7,51],[15,93,7,51],[25,105,7,51],[55,98,7,51],[89,99,7,83],[77,92,7,112],[36,94,7,112]]},A6e:{W:75,P:[[17,148,10,-92],[62,149,10,-92],[17,125,9,-50],[62,127,9,-35],[61,107,8,29],[23,104,8,69],[15,86,7,69],[36,94,7,69],[55,92,7,69]]},A6f:{W:76,P:[[24,147,10,-103],[46,149,9,-84],[14,129,9,-50],[58,134,8,-35],[18,107,8,29],[61,114,7,51],[56,98,7,51],[31,92,7,102],[45,91,7,102]]},A6a:{W:58,P:[[34,62,10,-92],[35,95,9,-92],[37,117,8,-35],[38,133,8,-35],[37,152,8,37],[36,168,8,56],[29,185,7,56],[14,181,6,112],[6,170,5,119]]},A6b:{W:78,P:[[19,148,8,-84],[20,131,7,-84],[68,149,10,-84],[58,134,8,-84],[50,123,6,-84],[65,83,6,-35],[21,44,7,51],[21,59,6,83],[21,72,5,112],[21,85,6,112],[21,99,6,69],[53,99,5,102],[59,90,6,50],[42,110,10,29],[20,115,7,-35],[31,122,5,5]]},A6c:{W:40,P:[[20,150,10,56],[22,52,10,56],[20,71,9,-35],[21,133,8,-50],[21,88,7,-84],[21,120,6,-103],[20,104,6,-103]]},A68:{W:83,P:[[18,149,10,-102],[69,147,10,-102],[18,131,9,-36],[64,126,8,-36],[65,109,8,-36],[19,109,8,51],[57,93,7,69],[39,94,8,37],[20,89,8,37],[18,69,8,91],[17,52,7,119]]},A69:{W:41,P:[[23,60,10,-92],[22,91,9,-36],[21,111,8,39],[19,130,7,56],[21,148,6,112]]},A64:{W:84,P:[[68,147,10,-103],[45,151,9,-92],[22,145,9,-50],[15,124,8,-50],[17,104,8,39],[29,91,8,39],[46,90,8,39],[59,96,8,-50],[67,129,8,-50],[68,110,8,69],[68,83,7,69],[70,68,7,102],[71,47,7,119]]},A65:{W:79,P:[[16,127,10,-103],[23,145,9,-50],[41,151,8,11],[54,148,7,102],[70,142,6,119],[61,96,7,51],[54,109,7,51],[44,90,8,51],[41,117,8,-50],[27,92,8,-50],[17,107,8,-50]]},A66:{W:73,P:[[29,156,10,-103],[31,136,9,-84],[31,116,9,-50],[30,95,8,-35],[45,93,7,-35],[58,92,7,39],[14,95,7,39],[33,79,7,69],[36,67,7,69],[47,55,7,69],[65,52,6,119]]},A67:{W:76,P:[[61,97,10,-102],[61,118,9,-102],[42,90,9,-79],[24,97,8,-35],[53,137,8,-35],[12,110,8,-35],[40,148,7,29],[26,151,7,42],[11,124,6,56],[13,139,6,83],[60,156,7,-50],[54,172,7,50],[42,185,7,69],[25,187,7,102],[7,183,7,119]]},A61:{W:74,P:[[58,94,8,42],[45,89,7,69],[31,91,7,119],[20,99,7,91],[12,111,7,51],[11,124,8,-35],[29,151,8,-35],[45,149,7,-35],[65,153,6,-35],[57,126,6,-35],[57,112,6,-102],[58,142,8,-102],[15,140,9,-102]]},A62:{W:85,P:[[17,143,8,-102],[31,148,8,-102],[44,152,7,-102],[60,147,6,-36],[67,133,6,-36],[73,116,6,39],[65,98,6,83],[56,90,6,119],[42,89,6,51],[30,93,7,11],[17,102,8,-35],[18,124,10,-72],[17,79,7,51],[17,60,7,51],[17,47,7,102]]},A63:{W:74,P:[[24,142,9,-103],[37,152,8,-38],[54,150,7,50],[66,143,6,56],[14,123,8,-79],[20,106,7,5],[32,92,6,29],[47,88,6,102],[59,94,6,102]]},A7e:{W:86,P:[[13,113,5,-103],[22,103,5,-103],[31,96,5,11],[40,98,5,11],[44,108,5,11],[52,115,7,11],[66,116,7,11],[72,99,9,11]]},A7d:{W:53,P:[[42,115,9,-103],[31,104,7,5],[30,86,7,5],[30,72,7,5],[25,57,7,5],[32,128,7,5],[30,144,7,5],[27,158,7,5],[24,170,7,5],[11,174,5,112],[12,51,5,112]]},A7c:{W:61,P:[[33,41,5,-161],[33,53,5,5],[31,65,5,5],[32,79,5,69],[32,92,5,69],[31,107,5,112],[30,122,5,50],[29,136,5,-50],[28,147,5,-50],[28,159,5,-91],[27,171,5,-91]]},A7b:{W:53,P:[[6,115,10,-50],[20,105,7,-50],[20,89,7,-50],[20,73,7,-50],[22,58,7,-50],[18,126,7,-50],[20,140,7,-50],[21,152,7,-50],[23,166,6,80],[31,172,6,80],[44,172,6,80],[33,49,6,80],[47,49,6,80]]},A7a:{W:77,P:[[19,152,10,-103],[37,150,9,-79],[53,150,8,-35],[31,132,8,-35],[42,121,7,50],[53,109,7,50],[61,92,7,50],[40,89,7,83],[23,89,7,112]]},A4f:{W:114,P:[[40,147,10,-102],[82,142,10,-102],[16,119,9,-72],[63,151,9,-72],[22,136,8,11],[91,122,8,11],[17,96,8,11],[97,108,7,11],[97,89,7,11],[24,78,7,69],[94,71,7,69],[40,66,6,69],[54,60,6,69],[87,60,6,112],[73,59,6,112]]},A4d:{W:126,P:[[38,60,10,-72],[92,59,10,-72],[112,150,8,-72],[83,75,5,-72],[81,87,6,-72],[78,100,6,-72],[74,113,6,-72],[69,128,7,-72],[54,129,7,-72],[50,113,6,-72],[46,100,5,-72],[43,86,6,-72],[31,78,7,-72],[43,74,6,112],[28,94,8,-72],[16,150,10,-72],[20,131,9,51],[23,113,8,69],[103,106,6,119],[100,93,6,56],[104,119,7,83],[108,134,8,39],[97,79,7,50],[61,146,9,112]]},A4e:{W:114,P:[[16,151,8,-91],[19,55,8,-91],[95,59,8,-91],[98,147,8,-91],[98,132,7,-91],[16,133,7,-91],[17,71,7,-91],[100,72,7,5],[101,119,7,5],[103,86,7,5],[17,119,7,5],[84,138,7,5],[74,126,7,5],[32,68,6,56],[37,80,6,56],[45,90,6,56],[63,112,6,56],[101,102,6,56],[17,108,6,112],[54,101,6,112],[18,93,6,112],[16,81,6,112]]},A4b:{W:88,P:[[24,155,9,-92],[78,150,9,-92],[23,135,8,-92],[61,136,8,-92],[46,126,8,-36],[22,117,8,-36],[36,110,8,5],[22,95,7,50],[43,92,7,50],[52,82,7,50],[21,78,7,83],[23,59,7,83],[67,71,7,83],[75,57,7,83]]},A4c:{W:79,P:[[16,152,9,-50],[15,135,8,-50],[16,118,8,-50],[17,86,7,-50],[19,71,6,-50],[18,55,7,-50],[68,145,10,-50],[56,148,9,69],[44,151,7,119],[32,153,7,50],[17,101,7,69]]},A4a:{W:95,P:[[32,55,10,-103],[84,57,9,-84],[49,59,9,-84],[65,58,8,-36],[60,71,8,-36],[60,90,8,11],[61,105,8,11],[55,126,8,50],[54,141,7,56],[46,153,7,56],[28,151,7,112],[14,136,7,112]]},A51:{W:125,P:[[113,176,10,-92],[97,161,9,-92],[82,147,9,-92],[64,133,7,-50],[97,136,7,-50],[62,154,7,-35],[106,120,7,-35],[41,151,6,11],[108,103,6,11],[24,142,6,11],[103,88,6,11],[15,124,6,50],[97,73,6,50],[12,107,6,50],[15,94,6,69],[84,61,6,69],[24,80,6,69],[35,71,5,112],[71,57,5,112],[55,58,5,112],[43,63,5,112]]},A50:{W:75,P:[[49,56,5,-161],[56,65,5,-102],[62,78,5,-102],[34,54,6,-102],[56,93,6,-72],[17,51,6,-72],[17,64,6,-72],[49,100,6,11],[34,104,6,11],[15,78,7,11],[19,96,7,11],[16,111,7,83],[13,125,7,83],[13,140,7,83]]},A53:{W:99,P:[[18,139,8,-84],[32,149,7,-84],[47,150,6,-84],[65,146,6,-84],[79,138,6,50],[86,126,6,50],[81,112,6,50],[69,103,6,102],[58,101,6,102],[44,98,6,102],[30,92,7,50],[29,76,6,5],[42,63,6,5],[56,62,6,-84],[70,60,6,-84],[81,64,6,-84]]},A52:{W:90,P:[[17,148,8,-161],[17,134,7,39],[17,120,8,-72],[18,71,8,-72],[19,57,10,-72],[51,63,8,-72],[64,72,8,-72],[30,114,8,-72],[42,124,5,-72],[54,127,6,-72],[64,134,7,-72],[75,145,8,-72],[73,85,8,51],[70,98,8,119],[59,108,8,83],[46,114,8,56],[18,86,8,102],[18,103,9,51],[35,59,9,11]]},A55:{W:105,P:[[34,145,9,-92],[51,151,8,-92],[20,128,7,-92],[67,145,7,-50],[19,107,7,-35],[80,137,7,37],[86,122,7,37],[18,88,7,37],[89,105,6,80],[19,68,6,80],[88,87,6,80],[91,70,6,119]]},A54:{W:97,P:[[14,57,9,-102],[92,59,9,-102],[54,144,9,-50],[55,125,8,-50],[75,60,7,29],[30,59,7,29],[58,59,6,29],[46,59,6,51],[51,72,6,69],[53,109,6,69],[53,97,6,102],[53,85,6,119]]},A57:{W:148,P:[[45,143,10,-72],[78,62,10,-72],[100,150,10,-72],[137,58,10,-72],[92,133,9,-72],[54,126,9,-72],[37,126,9,-72],[67,81,9,-72],[82,81,8,-72],[59,112,8,-72],[63,97,7,-72],[33,109,7,-72],[87,99,7,-72],[120,104,7,119],[113,120,8,112],[127,90,8,83],[132,76,9,39],[109,134,9,56],[88,118,7,69],[23,76,9,112],[30,91,8,51],[20,58,10,50]]},A56:{W:93,P:[[47,146,10,-72],[38,128,9,-72],[33,111,8,-72],[26,81,8,-72],[22,66,7,-72],[19,54,8,-72],[56,130,8,-72],[86,55,8,-72],[77,70,8,42],[72,85,8,56],[66,100,8,119],[61,115,8,56],[30,96,8,56]]},A59:{W:91,P:[[8,59,9,-102],[77,58,9,-102],[34,151,8,-50],[43,135,8,-50],[71,73,7,5],[18,71,7,5],[25,80,7,50],[63,89,7,50],[34,95,7,50],[48,121,6,102],[57,102,6,102],[39,109,6,102]]},A58:{W:103,P:[[11,149,8,-103],[23,140,8,-103],[87,148,8,-84],[76,134,7,-50],[69,121,7,-50],[34,126,7,-50],[45,114,6,5],[62,109,6,5],[53,99,6,29],[65,92,6,29],[41,86,6,69],[76,77,6,69],[32,78,6,69],[87,64,6,69],[25,64,6,69],[14,57,6,69],[94,55,6,69]]},A5a:{W:99,P:[[15,146,10,-92],[89,148,10,-92],[33,149,9,-92],[52,150,9,-92],[69,150,8,-36],[27,129,8,-36],[38,112,7,11],[47,97,7,11],[57,87,7,56],[67,74,7,56],[79,68,7,56],[91,61,7,119],[15,56,7,-35],[29,58,7,11],[45,60,7,50],[61,58,7,112],[75,55,7,56]]},A5c:{W:79,P:[[19,58,5,-35],[25,67,5,-35],[31,76,6,-35],[35,86,6,-35],[40,95,7,-35],[45,106,6,-35],[48,116,6,-35],[54,125,6,-35],[58,136,5,-35],[63,146,5,-35],[65,152,5,-35]]},A5b:{W:55,P:[[40,57,5,-35],[31,58,5,-35],[20,57,8,-35],[20,72,8,-35],[20,85,8,-35],[20,100,8,-35],[20,115,8,-35],[20,127,8,-35],[19,144,8,-35],[17,160,8,-35],[17,175,8,-35],[29,177,6,-35],[41,176,5,-35]]},A5e:{W:83,P:[[20,70,9,-79],[65,68,9,-79],[33,58,7,50],[52,58,7,50],[42,48,6,112]]},A5d:{W:55,P:[[20,58,5,-35],[30,58,5,-35],[40,58,8,-35],[41,74,8,-35],[41,92,8,-35],[41,109,8,-35],[41,127,8,-35],[41,144,8,-35],[40,159,8,-35],[40,172,8,-35],[27,174,6,-35],[15,175,6,-35]]},A5f:{W:90,P:[[0,172,5,-35],[11,171,5,-35],[21,169,5,-35],[33,172,5,-35],[45,172,5,-35],[55,170,5,-35],[66,172,5,-35],[74,170,5,-35],[85,170,5,-35]]},A46:{W:87,P:[[20,149,9,-103],[20,128,8,-84],[20,108,8,-84],[33,98,8,-36],[20,86,8,-36],[51,96,7,29],[68,98,7,29],[21,63,7,56],[35,54,7,56],[52,54,7,112],[68,53,7,112]]},A47:{W:97,P:[[25,148,8,-103],[61,145,8,-103],[16,109,8,-79],[43,151,8,-79],[15,132,7,-36],[77,132,7,-36],[23,83,7,37],[83,110,7,37],[36,66,6,37],[49,53,6,37],[67,106,6,56],[53,112,6,56],[63,57,6,112],[40,114,6,112],[76,59,6,112]]},A44:{W:103,P:[[19,148,8,-161],[34,154,8,-79],[60,149,8,-36],[80,141,7,-36],[86,123,7,29],[20,128,8,-92],[20,110,8,-92],[21,91,8,-50],[21,73,8,5],[23,57,8,42],[37,63,8,51],[52,70,7,69],[66,78,7,69],[86,109,7,112],[79,90,7,112]]},A45:{W:89,P:[[19,149,10,-102],[18,103,10,-102],[22,55,9,-72],[17,126,9,-72],[20,79,8,5],[36,155,8,5],[38,101,8,5],[40,52,7,50],[54,157,7,50],[53,100,7,50],[56,53,7,91],[71,155,7,91],[70,99,7,91],[73,51,7,91]]},A42:{W:90,P:[[26,56,9,-102],[22,68,5,-102],[23,79,5,-102],[21,92,5,-84],[22,103,6,-50],[20,114,6,-50],[22,125,6,91],[22,137,6,91],[32,104,7,-35],[24,151,7,-35],[48,148,7,-35],[68,115,7,-35],[35,152,6,51],[43,110,6,51],[61,144,6,51],[76,124,6,51],[72,137,9,119],[52,107,9,-79],[66,81,7,80],[66,92,9,11],[42,52,9,42],[64,64,9,-102],[55,54,6,-102]]},A43:{W:86,P:[[77,69,8,-103],[76,56,7,56],[64,60,7,119],[50,61,7,29],[30,78,7,-72],[23,88,7,-35],[17,100,8,-35],[15,116,8,50],[39,69,6,83],[17,131,9,-72],[29,145,9,-72],[46,147,8,29],[61,142,8,83],[72,134,8,-103]]},A40:{W:132,P:[[95,150,7,51],[81,154,8,11],[64,156,9,11],[46,151,9,-79],[29,140,9,-79],[20,123,9,-103],[17,104,9,-103],[19,85,9,50],[28,68,9,56],[41,55,9,80],[58,49,9,112],[75,51,8,119],[91,56,8,91],[104,66,8,51],[113,80,8,50],[113,97,8,5],[107,113,8,-36],[90,118,9,-36],[75,113,7,-36],[68,108,5,5],[60,115,7,-79],[47,114,7,-79],[42,102,7,-103],[47,91,7,-35],[55,81,6,-35],[67,77,8,-103],[76,97,8,-79]]},A41:{W:104,P:[[88,148,10,-102],[29,118,10,-102],[68,57,5,-102],[23,134,8,11],[16,148,8,119],[39,103,8,51],[47,90,7,51],[55,77,7,51],[62,67,6,83],[76,95,5,-35],[77,107,6,-35],[73,83,5,83],[71,71,5,83],[79,121,7,-35],[84,134,8,-50],[65,111,6,-50],[52,114,6,-50]]},A48:{W:110,P:[[16,152,10,-103],[92,148,9,-91],[92,129,9,-91],[18,130,8,-50],[90,109,8,-50],[19,109,8,-50],[33,110,8,11],[53,106,8,11],[70,104,8,11],[94,90,8,51],[95,68,8,51],[18,85,7,102],[22,66,7,102],[22,47,7,102],[95,49,7,102]]},A49:{W:78,P:[[13,152,9,-103],[36,146,9,-84],[53,146,8,11],[68,145,8,11],[35,125,8,-36],[38,105,7,-36],[37,88,7,56],[38,72,7,56],[52,61,7,91],[65,60,7,119],[40,58,7,50],[24,58,6,-72],[12,59,6,-102]]},A33:{W:87,P:[[22,65,10,-35],[16,136,10,-35],[32,100,10,-35],[38,56,8,-35],[54,57,7,-35],[63,67,6,-35],[66,80,6,-35],[57,91,7,-35],[47,99,7,-35],[56,106,7,-35],[64,117,6,-35],[65,129,6,-35],[59,138,7,-35],[49,144,7,-35],[31,144,7,-35]]},A32:{W:87,P:[[69,148,10,-35],[51,149,9,-35],[33,149,9,-35],[14,149,8,-35],[19,133,8,-35],[28,118,8,-35],[42,109,8,-35],[56,100,7,-35],[66,88,7,-35],[68,73,7,-35],[60,57,6,-35],[47,56,6,-35],[34,57,6,-35],[24,65,6,-35],[16,72,6,-35]]},A31:{W:65,P:[[19,149,9,-35],[51,148,9,-35],[39,53,9,-35],[36,147,6,-35],[35,135,6,-35],[34,120,5,-35],[34,109,5,-35],[34,98,6,-35],[35,84,6,-35],[37,69,6,-35],[27,62,6,-35],[19,68,6,-35]]},A30:{W:87,P:[[67,138,10,-102],[48,148,10,-102],[73,117,9,-50],[74,95,9,-50],[22,144,8,11],[69,76,8,11],[15,126,8,11],[12,104,7,56],[58,63,7,56],[13,87,6,56],[46,57,6,56],[20,75,6,112],[27,64,6,112]]},A37:{W:87,P:[[26,152,10,-102],[36,133,9,-102],[47,116,9,-50],[57,100,9,5],[66,86,9,5],[80,70,8,56],[62,65,8,56],[44,63,7,56],[26,64,6,56],[11,64,6,56]]},A36:{W:87,P:[[65,145,10,-79],[46,151,9,-79],[70,127,8,-79],[66,111,8,-79],[26,148,7,-79],[52,100,7,-79],[18,131,7,11],[15,114,7,11],[37,97,7,51],[20,102,7,51],[23,86,7,51],[34,72,7,80],[44,61,7,112],[55,49,7,112]]},A35:{W:87,P:[[21,55,9,-50],[38,56,9,-50],[53,57,9,-50],[69,55,9,-50],[20,71,8,-50],[18,87,8,-50],[18,104,8,-50],[32,95,8,-50],[46,89,7,-50],[57,91,7,50],[64,101,7,50],[71,113,7,83],[69,127,7,83],[61,140,7,83],[49,146,6,83],[34,146,6,83],[22,140,6,83]]},A34:{W:87,P:[[10,117,9,-35],[25,118,9,-35],[39,117,9,-35],[55,117,9,-35],[70,117,9,-35],[61,98,8,-35],[61,78,7,-35],[61,58,7,-35],[46,68,7,-35],[36,82,7,-35],[27,94,7,-35],[61,136,7,-35],[61,149,7,-35]]},A39:{W:87,P:[[69,103,10,-103],[60,122,9,-92],[47,134,8,-50],[33,144,8,-50],[17,155,8,-50],[70,82,8,-50],[48,106,7,51],[64,68,7,51],[53,58,7,51],[34,107,7,51],[21,97,7,51],[17,82,7,51],[38,59,7,51],[26,65,7,51]]},A38:{W:87,P:[[43,98,10,-103],[61,90,8,-103],[58,105,8,-79],[27,107,8,-79],[24,91,7,-36],[67,73,7,-36],[21,75,7,-36],[29,61,7,-36],[58,61,6,102],[46,55,6,102],[17,118,7,37],[67,118,7,37],[69,131,7,37],[16,133,6,56],[66,142,6,56],[23,146,6,56],[33,151,6,56],[57,151,5,119],[46,154,5,119]]},A2a:{W:76,P:[[35,69,9,-103],[44,83,7,-35],[27,83,7,-35],[20,67,7,-35],[36,54,7,-35],[51,67,7,-35],[53,92,5,83],[17,92,5,83],[7,63,5,83],[35,42,5,83],[63,67,5,83]]},A2b:{W:69,P:[[32,109,10,-102],[32,92,6,37],[47,109,6,37],[32,126,6,37],[14,109,6,37],[33,137,6,37],[60,110,6,37],[32,79,6,37],[4,109,6,37]]},A2c:{W:41,P:[[30,150,10,-79],[24,164,7,50],[17,177,6,102]]},A2d:{W:60,P:[[12,118,9,-84],[29,117,8,69],[46,117,6,5]]},A2e:{W:37,P:[[19,152,6,-35]]},A2f:{W:74,P:[[14,154,10,-102],[23,133,9,-72],[34,114,9,5],[42,96,9,5],[50,77,8,83],[59,62,8,83]]},A20:{W:40,P:[]},A21:{W:35,P:[[17,151,9,-35],[18,50,8,-35],[17,67,8,-35],[17,85,7,-35],[18,100,6,-35],[18,114,5,-35],[19,128,5,-35]]},A22:{W:61,P:[[15,51,5,-35],[16,61,5,-35],[14,73,5,-35],[14,85,5,-35],[44,53,5,-35],[43,66,5,-35],[42,77,5,-35],[40,87,5,-35]]},A23:{W:120,P:[[31,120,9,-102],[79,120,9,-102],[90,79,9,-102],[43,80,9,-102],[48,120,7,29],[62,121,7,29],[83,103,7,29],[86,92,7,29],[73,79,7,29],[59,79,7,29],[26,79,7,29],[11,79,7,29],[47,64,7,29],[51,49,7,29],[94,62,7,29],[98,46,7,29],[107,79,7,29],[118,79,7,29],[92,121,7,29],[107,120,7,29],[75,137,7,29],[70,150,7,29],[28,135,7,29],[23,147,7,29],[37,104,7,29],[39,93,7,29],[17,121,7,29],[3,120,7,29]]},A24:{W:99,P:[[21,144,9,-35],[36,150,8,-35],[54,150,8,-35],[71,145,7,-35],[78,133,7,-35],[81,118,6,-35],[73,108,6,-35],[60,102,6,-35],[46,101,7,-35],[31,95,7,-35],[24,80,8,-35],[37,67,8,-35],[52,58,9,-35],[71,61,9,-35],[51,39,6,-35],[52,76,6,-35],[52,88,6,-35],[51,115,6,-35],[51,127,6,-35],[51,138,6,-35],[51,165,6,-35],[51,177,6,-35]]},A26:{W:94,P:[[80,151,10,-103],[68,134,9,11],[58,117,9,11],[48,98,9,11],[39,80,9,11],[32,99,7,91],[20,108,7,91],[11,120,6,91],[10,133,6,91],[17,143,5,91],[27,148,6,56],[40,150,6,-72],[54,147,6,-72],[76,123,6,-72],[81,108,6,-72],[56,81,6,-72],[63,69,5,-92],[60,57,5,-92],[47,52,5,-92],[44,63,5,-92]]},A27:{W:56,P:[[27,72,5,-35],[25,62,5,-35],[27,51,5,-35]]},A28:{W:53,P:[[39,177,10,-35],[41,49,10,-35],[27,63,9,-35],[17,80,8,-35],[25,168,8,-35],[14,152,8,-35],[10,135,7,-35],[10,120,7,-35],[13,93,7,-35],[9,108,7,-35]]},A29:{W:53,P:[[15,179,10,-92],[15,51,10,-92],[29,165,9,-35],[27,63,9,-35],[34,79,9,-35],[37,151,8,56],[41,133,8,56],[41,96,8,56],[44,113,7,119]]},A3c:{W:55,P:[[36,88,5,-35],[28,94,5,-35],[20,100,5,-35],[14,106,5,-35],[10,113,5,-35],[16,116,5,-35],[22,120,5,-35],[30,126,5,-35],[36,133,5,-35]]},A3b:{W:44,P:[[21,91,10,-79],[21,144,8,42],[11,155,6,102]]},A3a:{W:44,P:[[21,134,10,-79],[23,86,10,51]]},A3f:{W:75,P:[[24,150,10,-103],[10,68,9,11],[26,61,8,11],[41,61,8,11],[26,125,8,11],[36,117,7,11],[48,108,7,11],[57,99,6,11],[52,70,6,11],[59,84,6,11]]},A3e:{W:55,P:[[15,83,5,-35],[24,90,5,-35],[31,97,5,-35],[39,105,5,-35],[34,114,5,-35],[26,120,5,-35],[19,125,5,-35],[10,132,5,-35]]},A3d:{W:73,P:[[11,91,9,-50],[27,90,9,-50],[44,90,9,-50],[59,90,9,-50],[11,127,6,69],[21,128,6,69],[33,129,6,69],[44,129,6,69],[53,129,6,69]]}}; \ No newline at end of file | |||
diff --git a/Blocks/audiojs/Bandari-Your Smile.mp3 b/Blocks/audiojs/Bandari-Your Smile.mp3 new file mode 100644 index 0000000..a964060 --- /dev/null +++ b/Blocks/audiojs/Bandari-Your Smile.mp3 | |||
Binary files differ | |||
diff --git a/Blocks/audiojs/Richard .mp3 b/Blocks/audiojs/Richard .mp3 new file mode 100644 index 0000000..365839d --- /dev/null +++ b/Blocks/audiojs/Richard .mp3 | |||
Binary files differ | |||
diff --git a/Blocks/audiojs/The First Snowflake.mp3 b/Blocks/audiojs/The First Snowflake.mp3 new file mode 100644 index 0000000..fc43528 --- /dev/null +++ b/Blocks/audiojs/The First Snowflake.mp3 | |||
Binary files differ | |||
diff --git a/Blocks/audiojs/audio.min.js b/Blocks/audiojs/audio.min.js new file mode 100644 index 0000000..e5fde2b --- /dev/null +++ b/Blocks/audiojs/audio.min.js | |||
@@ -0,0 +1,24 @@ | |||
1 | (function(h,o,g){var p=function(){for(var b=/audio(.min)?.js.*/,a=document.getElementsByTagName("script"),c=0,d=a.length;c<d;c++){var e=a[c].getAttribute("src");if(b.test(e))return e.replace(b,"")}}();g[h]={instanceCount:0,instances:{},flashSource:' <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" id="$1" width="1" height="1" name="$1" style="position: absolute; left: -1px;"> <param name="movie" value="$2?playerInstance='+h+'.instances[\'$1\']&datetime=$3"> <param name="allowscriptaccess" value="always"> <embed name="$1" src="$2?playerInstance='+ | ||
2 | h+'.instances[\'$1\']&datetime=$3" width="1" height="1" allowscriptaccess="always"> </object>',settings:{autoplay:false,loop:false,preload:true,imageLocation:p+"player-graphics.gif",swfLocation:p+"audiojs.swf",useFlash:function(){var b=document.createElement("audio");return!(b.canPlayType&&b.canPlayType("audio/mpeg;").replace(/no/,""))}(),hasFlash:function(){if(navigator.plugins&&navigator.plugins.length&&navigator.plugins["Shockwave Flash"])return true;else if(navigator.mimeTypes&&navigator.mimeTypes.length){var b= | ||
3 | navigator.mimeTypes["application/x-shockwave-flash"];return b&&b.enabledPlugin}else try{new ActiveXObject("ShockwaveFlash.ShockwaveFlash");return true}catch(a){}return false}(),createPlayer:{markup:' <div class="play-pause"> <p class="play"></p> <p class="pause"></p> <p class="loading"></p> <p class="error"></p> </div> <div class="scrubber"> <div class="progress"></div> <div class="loaded"></div> </div> <div class="time"> <em class="played">00:00</em>/<strong class="duration">00:00</strong> </div> <div class="error-message"></div>', | ||
4 | playPauseClass:"play-pause",scrubberClass:"scrubber",progressClass:"progress",loaderClass:"loaded",timeClass:"time",durationClass:"duration",playedClass:"played",errorMessageClass:"error-message",playingClass:"playing",loadingClass:"loading",errorClass:"error"},css:' .audiojs audio { position: absolute; left: -1px; } .audiojs { width: 460px; height: 36px; background: #404040; overflow: hidden; font-family: monospace; font-size: 12px; background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #444), color-stop(0.5, #555), color-stop(0.51, #444), color-stop(1, #444)); background-image: -moz-linear-gradient(center top, #444 0%, #555 50%, #444 51%, #444 100%); -webkit-box-shadow: 1px 1px 8px rgba(0, 0, 0, 0.3); -moz-box-shadow: 1px 1px 8px rgba(0, 0, 0, 0.3); -o-box-shadow: 1px 1px 8px rgba(0, 0, 0, 0.3); box-shadow: 1px 1px 8px rgba(0, 0, 0, 0.3); } .audiojs .play-pause { width: 25px; height: 40px; padding: 4px 6px; margin: 0px; float: left; overflow: hidden; border-right: 1px solid #000; } .audiojs p { display: none; width: 25px; height: 40px; margin: 0px; cursor: pointer; } .audiojs .play { display: block; } .audiojs .scrubber { position: relative; float: left; width: 280px; background: #5a5a5a; height: 14px; margin: 10px; border-top: 1px solid #3f3f3f; border-left: 0px; border-bottom: 0px; overflow: hidden; } .audiojs .progress { position: absolute; top: 0px; left: 0px; height: 14px; width: 0px; background: #ccc; z-index: 1; background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #ccc), color-stop(0.5, #ddd), color-stop(0.51, #ccc), color-stop(1, #ccc)); background-image: -moz-linear-gradient(center top, #ccc 0%, #ddd 50%, #ccc 51%, #ccc 100%); } .audiojs .loaded { position: absolute; top: 0px; left: 0px; height: 14px; width: 0px; background: #000; background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #222), color-stop(0.5, #333), color-stop(0.51, #222), color-stop(1, #222)); background-image: -moz-linear-gradient(center top, #222 0%, #333 50%, #222 51%, #222 100%); } .audiojs .time { float: left; height: 36px; line-height: 36px; margin: 0px 0px 0px 6px; padding: 0px 6px 0px 12px; border-left: 1px solid #000; color: #ddd; text-shadow: 1px 1px 0px rgba(0, 0, 0, 0.5); } .audiojs .time em { padding: 0px 2px 0px 0px; color: #f9f9f9; font-style: normal; } .audiojs .time strong { padding: 0px 0px 0px 2px; font-weight: normal; } .audiojs .error-message { float: left; display: none; margin: 0px 10px; height: 36px; width: 400px; overflow: hidden; line-height: 36px; white-space: nowrap; color: #fff; text-overflow: ellipsis; -o-text-overflow: ellipsis; -icab-text-overflow: ellipsis; -khtml-text-overflow: ellipsis; -moz-text-overflow: ellipsis; -webkit-text-overflow: ellipsis; } .audiojs .error-message a { color: #eee; text-decoration: none; padding-bottom: 1px; border-bottom: 1px solid #999; white-space: wrap; } .audiojs .play { background: url("$1") -2px -1px no-repeat; } .audiojs .loading { background: url("$1") -2px -31px no-repeat; } .audiojs .error { background: url("$1") -2px -61px no-repeat; } .audiojs .pause { background: url("$1") -2px -91px no-repeat; } .playing .play, .playing .loading, .playing .error { display: none; } .playing .pause { display: block; } .loading .play, .loading .pause, .loading .error { display: none; } .loading .loading { display: block; } .error .time, .error .play, .error .pause, .error .scrubber, .error .loading { display: none; } .error .error { display: block; } .error .play-pause p { cursor: auto; } .error .error-message { display: block; }', | ||
5 | trackEnded:function(){},flashError:function(){var b=this.settings.createPlayer,a=j(b.errorMessageClass,this.wrapper),c='Missing <a href="http://get.adobe.com/flashplayer/">flash player</a> plugin.';if(this.mp3)c+=' <a href="'+this.mp3+'">Download audio file</a>.';g[h].helpers.removeClass(this.wrapper,b.loadingClass);g[h].helpers.addClass(this.wrapper,b.errorClass);a.innerHTML=c},loadError:function(){var b=this.settings.createPlayer,a=j(b.errorMessageClass,this.wrapper);g[h].helpers.removeClass(this.wrapper, | ||
6 | b.loadingClass);g[h].helpers.addClass(this.wrapper,b.errorClass);a.innerHTML='Error loading: "'+this.mp3+'"'},init:function(){g[h].helpers.addClass(this.wrapper,this.settings.createPlayer.loadingClass)},loadStarted:function(){var b=this.settings.createPlayer,a=j(b.durationClass,this.wrapper),c=Math.floor(this.duration/60),d=Math.floor(this.duration%60);g[h].helpers.removeClass(this.wrapper,b.loadingClass);a.innerHTML=(c<10?"0":"")+c+":"+(d<10?"0":"")+d},loadProgress:function(b){var a=this.settings.createPlayer, | ||
7 | c=j(a.scrubberClass,this.wrapper);j(a.loaderClass,this.wrapper).style.width=c.offsetWidth*b+"px"},playPause:function(){this.playing?this.settings.play():this.settings.pause()},play:function(){g[h].helpers.addClass(this.wrapper,this.settings.createPlayer.playingClass)},pause:function(){g[h].helpers.removeClass(this.wrapper,this.settings.createPlayer.playingClass)},updatePlayhead:function(b){var a=this.settings.createPlayer,c=j(a.scrubberClass,this.wrapper);j(a.progressClass,this.wrapper).style.width= | ||
8 | c.offsetWidth*b+"px";a=j(a.playedClass,this.wrapper);c=this.duration*b;b=Math.floor(c/60);c=Math.floor(c%60);a.innerHTML=(b<10?"0":"")+b+":"+(c<10?"0":"")+c}},create:function(b,a){a=a||{};return b.length?this.createAll(a,b):this.newInstance(b,a)},createAll:function(b,a){var c=a||document.getElementsByTagName("audio"),d=[];b=b||{};for(var e=0,i=c.length;e<i;e++)d.push(this.newInstance(c[e],b));return d},newInstance:function(b,a){var c=this.helpers.clone(this.settings),d="audiojs"+this.instanceCount, | ||
9 | e="audiojs_wrapper"+this.instanceCount;this.instanceCount++;if(b.getAttribute("autoplay")!=null)c.autoplay=true;if(b.getAttribute("loop")!=null)c.loop=true;if(b.getAttribute("preload")=="none")c.preload=false;a&&this.helpers.merge(c,a);if(c.createPlayer.markup)b=this.createPlayer(b,c.createPlayer,e);else b.parentNode.setAttribute("id",e);e=new g[o](b,c);c.css&&this.helpers.injectCss(e,c.css);if(c.useFlash&&c.hasFlash){this.injectFlash(e,d);this.attachFlashEvents(e.wrapper,e)}else c.useFlash&&!c.hasFlash&& | ||
10 | this.settings.flashError.apply(e);if(!c.useFlash||c.useFlash&&c.hasFlash)this.attachEvents(e.wrapper,e);return this.instances[d]=e},createPlayer:function(b,a,c){var d=document.createElement("div"),e=b.cloneNode(true);d.setAttribute("class","audiojs");d.setAttribute("className","audiojs");d.setAttribute("id",c);if(e.outerHTML&&!document.createElement("audio").canPlayType){e=this.helpers.cloneHtml5Node(b);d.innerHTML=a.markup;d.appendChild(e);b.outerHTML=d.outerHTML;d=document.getElementById(c)}else{d.appendChild(e); | ||
11 | d.innerHTML+=a.markup;b.parentNode.replaceChild(d,b)}return d.getElementsByTagName("audio")[0]},attachEvents:function(b,a){if(a.settings.createPlayer){var c=a.settings.createPlayer,d=j(c.playPauseClass,b),e=j(c.scrubberClass,b);g[h].events.addListener(d,"click",function(){a.playPause.apply(a)});g[h].events.addListener(e,"click",function(i){i=i.clientX;var f=this,k=0;if(f.offsetParent){do k+=f.offsetLeft;while(f=f.offsetParent)}a.skipTo((i-k)/e.offsetWidth)});if(!a.settings.useFlash){g[h].events.trackLoadProgress(a); | ||
12 | g[h].events.addListener(a.element,"timeupdate",function(){a.updatePlayhead.apply(a)});g[h].events.addListener(a.element,"ended",function(){a.trackEnded.apply(a)});g[h].events.addListener(a.source,"error",function(){clearInterval(a.readyTimer);clearInterval(a.loadTimer);a.settings.loadError.apply(a)})}}},attachFlashEvents:function(b,a){a.swfReady=false;a.load=function(c){a.mp3=c;a.swfReady&&a.element.load(c)};a.loadProgress=function(c,d){a.loadedPercent=c;a.duration=d;a.settings.loadStarted.apply(a); | ||
13 | a.settings.loadProgress.apply(a,[c])};a.skipTo=function(c){if(!(c>a.loadedPercent)){a.updatePlayhead.call(a,[c]);a.element.skipTo(c)}};a.updatePlayhead=function(c){a.settings.updatePlayhead.apply(a,[c])};a.play=function(){if(!a.settings.preload){a.settings.preload=true;a.element.init(a.mp3)}a.playing=true;a.element.pplay();a.settings.play.apply(a)};a.pause=function(){a.playing=false;a.element.ppause();a.settings.pause.apply(a)};a.setVolume=function(c){a.element.setVolume(c)};a.loadStarted=function(){a.swfReady= | ||
14 | true;a.settings.preload&&a.element.init(a.mp3);a.settings.autoplay&&a.play.apply(a)}},injectFlash:function(b,a){var c=this.flashSource.replace(/\$1/g,a);c=c.replace(/\$2/g,b.settings.swfLocation);c=c.replace(/\$3/g,+new Date+Math.random());var d=b.wrapper.innerHTML,e=document.createElement("div");e.innerHTML=c+d;b.wrapper.innerHTML=e.innerHTML;b.element=this.helpers.getSwf(a)},helpers:{merge:function(b,a){for(attr in a)if(b.hasOwnProperty(attr)||a.hasOwnProperty(attr))b[attr]=a[attr]},clone:function(b){if(b== | ||
15 | null||typeof b!=="object")return b;var a=new b.constructor,c;for(c in b)a[c]=arguments.callee(b[c]);return a},addClass:function(b,a){RegExp("(\\s|^)"+a+"(\\s|$)").test(b.className)||(b.className+=" "+a)},removeClass:function(b,a){b.className=b.className.replace(RegExp("(\\s|^)"+a+"(\\s|$)")," ")},injectCss:function(b,a){for(var c="",d=document.getElementsByTagName("style"),e=a.replace(/\$1/g,b.settings.imageLocation),i=0,f=d.length;i<f;i++){var k=d[i].getAttribute("title");if(k&&~k.indexOf("audiojs")){f= | ||
16 | d[i];if(f.innerHTML===e)return;c=f.innerHTML;break}}d=document.getElementsByTagName("head")[0];i=d.firstChild;f=document.createElement("style");if(d){f.setAttribute("type","text/css");f.setAttribute("title","audiojs");if(f.styleSheet)f.styleSheet.cssText=c+e;else f.appendChild(document.createTextNode(c+e));i?d.insertBefore(f,i):d.appendChild(styleElement)}},cloneHtml5Node:function(b){var a=document.createDocumentFragment(),c=a.createElement?a:document;c.createElement("audio");c=c.createElement("div"); | ||
17 | a.appendChild(c);c.innerHTML=b.outerHTML;return c.firstChild},getSwf:function(b){b=document[b]||window[b];return b.length>1?b[b.length-1]:b}},events:{memoryLeaking:false,listeners:[],addListener:function(b,a,c){if(b.addEventListener)b.addEventListener(a,c,false);else if(b.attachEvent){this.listeners.push(b);if(!this.memoryLeaking){window.attachEvent("onunload",function(){if(this.listeners)for(var d=0,e=this.listeners.length;d<e;d++)g[h].events.purge(this.listeners[d])});this.memoryLeaking=true}b.attachEvent("on"+ | ||
18 | a,function(){c.call(b,window.event)})}},trackLoadProgress:function(b){if(b.settings.preload){var a,c;b=b;var d=/(ipod|iphone|ipad)/i.test(navigator.userAgent);a=setInterval(function(){if(b.element.readyState>-1)d||b.init.apply(b);if(b.element.readyState>1){b.settings.autoplay&&b.play.apply(b);clearInterval(a);c=setInterval(function(){b.loadProgress.apply(b);b.loadedPercent>=1&&clearInterval(c)})}},10);b.readyTimer=a;b.loadTimer=c}},purge:function(b){var a=b.attributes,c;if(a)for(c=0;c<a.length;c+= | ||
19 | 1)if(typeof b[a[c].name]==="function")b[a[c].name]=null;if(a=b.childNodes)for(c=0;c<a.length;c+=1)purge(b.childNodes[c])},ready:function(){return function(b){var a=window,c=false,d=true,e=a.document,i=e.documentElement,f=e.addEventListener?"addEventListener":"attachEvent",k=e.addEventListener?"removeEventListener":"detachEvent",n=e.addEventListener?"":"on",m=function(l){if(!(l.type=="readystatechange"&&e.readyState!="complete")){(l.type=="load"?a:e)[k](n+l.type,m,false);if(!c&&(c=true))b.call(a,l.type|| | ||
20 | l)}},q=function(){try{i.doScroll("left")}catch(l){setTimeout(q,50);return}m("poll")};if(e.readyState=="complete")b.call(a,"lazy");else{if(e.createEventObject&&i.doScroll){try{d=!a.frameElement}catch(r){}d&&q()}e[f](n+"DOMContentLoaded",m,false);e[f](n+"readystatechange",m,false);a[f](n+"load",m,false)}}}()}};g[o]=function(b,a){this.element=b;this.wrapper=b.parentNode;this.source=b.getElementsByTagName("source")[0]||b;this.mp3=function(c){var d=c.getElementsByTagName("source")[0];return c.getAttribute("src")|| | ||
21 | (d?d.getAttribute("src"):null)}(b);this.settings=a;this.loadStartedCalled=false;this.loadedPercent=0;this.duration=1;this.playing=false};g[o].prototype={updatePlayhead:function(){this.settings.updatePlayhead.apply(this,[this.element.currentTime/this.duration])},skipTo:function(b){if(!(b>this.loadedPercent)){this.element.currentTime=this.duration*b;this.updatePlayhead()}},load:function(b){this.loadStartedCalled=false;this.source.setAttribute("src",b);this.element.load();this.mp3=b;g[h].events.trackLoadProgress(this)}, | ||
22 | loadError:function(){this.settings.loadError.apply(this)},init:function(){this.settings.init.apply(this)},loadStarted:function(){if(!this.element.duration)return false;this.duration=this.element.duration;this.updatePlayhead();this.settings.loadStarted.apply(this)},loadProgress:function(){if(this.element.buffered!=null&&this.element.buffered.length){if(!this.loadStartedCalled)this.loadStartedCalled=this.loadStarted();this.loadedPercent=this.element.buffered.end(this.element.buffered.length-1)/this.duration; | ||
23 | this.settings.loadProgress.apply(this,[this.loadedPercent])}},playPause:function(){this.playing?this.pause():this.play()},play:function(){/(ipod|iphone|ipad)/i.test(navigator.userAgent)&&this.element.readyState==0&&this.init.apply(this);if(!this.settings.preload){this.settings.preload=true;this.element.setAttribute("preload","auto");g[h].events.trackLoadProgress(this)}this.playing=true;this.element.play();this.settings.play.apply(this)},pause:function(){this.playing=false;this.element.pause();this.settings.pause.apply(this)}, | ||
24 | setVolume:function(b){this.element.volume=b},trackEnded:function(){this.skipTo.apply(this,[0]);this.settings.loop||this.pause.apply(this);this.settings.trackEnded.apply(this)}};var j=function(b,a){var c=[];a=a||document;if(a.getElementsByClassName)c=a.getElementsByClassName(b);else{var d,e,i=a.getElementsByTagName("*"),f=RegExp("(^|\\s)"+b+"(\\s|$)");d=0;for(e=i.length;d<e;d++)f.test(i[d].className)&&c.push(i[d])}return c.length>1?c:c[0]}})("audiojs","audiojsInstance",this); | ||
diff --git a/Blocks/audiojs/audiojs.swf b/Blocks/audiojs/audiojs.swf new file mode 100644 index 0000000..483599f --- /dev/null +++ b/Blocks/audiojs/audiojs.swf | |||
Binary files differ | |||
diff --git a/Blocks/audiojs/player-graphics.gif b/Blocks/audiojs/player-graphics.gif new file mode 100644 index 0000000..3e4d9d4 --- /dev/null +++ b/Blocks/audiojs/player-graphics.gif | |||
Binary files differ | |||
diff --git a/Blocks/code.html b/Blocks/code.html new file mode 100644 index 0000000..40ff107 --- /dev/null +++ b/Blocks/code.html | |||
@@ -0,0 +1,97 @@ | |||
1 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> | ||
2 | <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> | ||
3 | <head> | ||
4 | <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> | ||
5 | <title>World of Codes</title> | ||
6 | <script type="text/javascript" src="syntax/scripts/shCore.js"></script> | ||
7 | <script type="text/javascript" src="syntax/scripts/shBrushCpp.js"></script> | ||
8 | <link type="text/css" rel="stylesheet" href="syntax/styles/shCoreDefault.css"/> | ||
9 | <style type="text/css"> | ||
10 | body { | ||
11 | background-color: #FF0000; | ||
12 | background-image: url(); | ||
13 | } | ||
14 | </style> | ||
15 | <script type="text/javascript">SyntaxHighlighter.all();</script> | ||
16 | </head> | ||
17 | |||
18 | <body style="background: white; font-family: Helvetica"> | ||
19 | |||
20 | <h1>A gift of code</h1> | ||
21 | <pre class="brush: cpp;"> | ||
22 | /** | ||
23 | * We are both from Lanxi No.1 Middle School,where we met for the first time | ||
24 | * I write some code to celebrate your birthday. | ||
25 | */ | ||
26 | #include "stdio.h" | ||
27 | int main() | ||
28 | { | ||
29 | int i,j; | ||
30 | for(i=0;i< 9;i++) | ||
31 | { | ||
32 | if(i==0||i==8) | ||
33 | { | ||
34 | for(j=0;j< 11;j++) | ||
35 | printf("*"); | ||
36 | } | ||
37 | else | ||
38 | { | ||
39 | for(j=0;j< 11;j++) | ||
40 | { | ||
41 | if(j< 7 && j>3) | ||
42 | printf("*"); | ||
43 | else | ||
44 | printf(" "); | ||
45 | } | ||
46 | } | ||
47 | printf("\n"); | ||
48 | } | ||
49 | for(i=0;i< 2;i++) | ||
50 | { | ||
51 | for(j=0;j< 2-i;j++) | ||
52 | printf(" "); | ||
53 | for(j=0;j< 2*i+1;j++) | ||
54 | printf("*"); | ||
55 | for(j=0;j< 5-2*i;j++) | ||
56 | printf(" "); | ||
57 | for(j=0;j< 2*i+1;j++) | ||
58 | printf("*"); | ||
59 | printf("\n"); | ||
60 | } | ||
61 | printf("***********\n"); | ||
62 | for(i=0;i< 6;i++) | ||
63 | { | ||
64 | for(j=0;j< i;j++) | ||
65 | printf(" "); | ||
66 | for(j=0;j< 11-2*i;j++) | ||
67 | printf("*"); | ||
68 | printf("\n"); | ||
69 | } | ||
70 | for(i=0;i< 5;i++) | ||
71 | { | ||
72 | for(j=0;j< 11;j++) | ||
73 | if((j<=1&&j>=0)||(j<=10&&j>=9)) | ||
74 | printf("*"); | ||
75 | else | ||
76 | printf(" "); | ||
77 | printf("\n"); | ||
78 | } | ||
79 | for(i=0;i< 5;i++) | ||
80 | { | ||
81 | for(j=0;j< i;j++) | ||
82 | printf(" "); | ||
83 | printf("**"); | ||
84 | for(j=0;j< 7-2*i;j++) | ||
85 | printf(" "); | ||
86 | if(i==4) | ||
87 | printf("*"); | ||
88 | else | ||
89 | printf("**\n"); | ||
90 | } | ||
91 | printf("\n"); | ||
92 | return 0; | ||
93 | } | ||
94 | |||
95 | |||
96 | </pre> | ||
97 | </html> | ||
diff --git a/Blocks/countdown/audiojs/The First Snowflake.mp3 b/Blocks/countdown/audiojs/The First Snowflake.mp3 new file mode 100644 index 0000000..fc43528 --- /dev/null +++ b/Blocks/countdown/audiojs/The First Snowflake.mp3 | |||
Binary files differ | |||
diff --git a/Blocks/countdown/audiojs/audio.min.js b/Blocks/countdown/audiojs/audio.min.js new file mode 100644 index 0000000..e5fde2b --- /dev/null +++ b/Blocks/countdown/audiojs/audio.min.js | |||
@@ -0,0 +1,24 @@ | |||
1 | (function(h,o,g){var p=function(){for(var b=/audio(.min)?.js.*/,a=document.getElementsByTagName("script"),c=0,d=a.length;c<d;c++){var e=a[c].getAttribute("src");if(b.test(e))return e.replace(b,"")}}();g[h]={instanceCount:0,instances:{},flashSource:' <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" id="$1" width="1" height="1" name="$1" style="position: absolute; left: -1px;"> <param name="movie" value="$2?playerInstance='+h+'.instances[\'$1\']&datetime=$3"> <param name="allowscriptaccess" value="always"> <embed name="$1" src="$2?playerInstance='+ | ||
2 | h+'.instances[\'$1\']&datetime=$3" width="1" height="1" allowscriptaccess="always"> </object>',settings:{autoplay:false,loop:false,preload:true,imageLocation:p+"player-graphics.gif",swfLocation:p+"audiojs.swf",useFlash:function(){var b=document.createElement("audio");return!(b.canPlayType&&b.canPlayType("audio/mpeg;").replace(/no/,""))}(),hasFlash:function(){if(navigator.plugins&&navigator.plugins.length&&navigator.plugins["Shockwave Flash"])return true;else if(navigator.mimeTypes&&navigator.mimeTypes.length){var b= | ||
3 | navigator.mimeTypes["application/x-shockwave-flash"];return b&&b.enabledPlugin}else try{new ActiveXObject("ShockwaveFlash.ShockwaveFlash");return true}catch(a){}return false}(),createPlayer:{markup:' <div class="play-pause"> <p class="play"></p> <p class="pause"></p> <p class="loading"></p> <p class="error"></p> </div> <div class="scrubber"> <div class="progress"></div> <div class="loaded"></div> </div> <div class="time"> <em class="played">00:00</em>/<strong class="duration">00:00</strong> </div> <div class="error-message"></div>', | ||
4 | playPauseClass:"play-pause",scrubberClass:"scrubber",progressClass:"progress",loaderClass:"loaded",timeClass:"time",durationClass:"duration",playedClass:"played",errorMessageClass:"error-message",playingClass:"playing",loadingClass:"loading",errorClass:"error"},css:' .audiojs audio { position: absolute; left: -1px; } .audiojs { width: 460px; height: 36px; background: #404040; overflow: hidden; font-family: monospace; font-size: 12px; background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #444), color-stop(0.5, #555), color-stop(0.51, #444), color-stop(1, #444)); background-image: -moz-linear-gradient(center top, #444 0%, #555 50%, #444 51%, #444 100%); -webkit-box-shadow: 1px 1px 8px rgba(0, 0, 0, 0.3); -moz-box-shadow: 1px 1px 8px rgba(0, 0, 0, 0.3); -o-box-shadow: 1px 1px 8px rgba(0, 0, 0, 0.3); box-shadow: 1px 1px 8px rgba(0, 0, 0, 0.3); } .audiojs .play-pause { width: 25px; height: 40px; padding: 4px 6px; margin: 0px; float: left; overflow: hidden; border-right: 1px solid #000; } .audiojs p { display: none; width: 25px; height: 40px; margin: 0px; cursor: pointer; } .audiojs .play { display: block; } .audiojs .scrubber { position: relative; float: left; width: 280px; background: #5a5a5a; height: 14px; margin: 10px; border-top: 1px solid #3f3f3f; border-left: 0px; border-bottom: 0px; overflow: hidden; } .audiojs .progress { position: absolute; top: 0px; left: 0px; height: 14px; width: 0px; background: #ccc; z-index: 1; background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #ccc), color-stop(0.5, #ddd), color-stop(0.51, #ccc), color-stop(1, #ccc)); background-image: -moz-linear-gradient(center top, #ccc 0%, #ddd 50%, #ccc 51%, #ccc 100%); } .audiojs .loaded { position: absolute; top: 0px; left: 0px; height: 14px; width: 0px; background: #000; background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #222), color-stop(0.5, #333), color-stop(0.51, #222), color-stop(1, #222)); background-image: -moz-linear-gradient(center top, #222 0%, #333 50%, #222 51%, #222 100%); } .audiojs .time { float: left; height: 36px; line-height: 36px; margin: 0px 0px 0px 6px; padding: 0px 6px 0px 12px; border-left: 1px solid #000; color: #ddd; text-shadow: 1px 1px 0px rgba(0, 0, 0, 0.5); } .audiojs .time em { padding: 0px 2px 0px 0px; color: #f9f9f9; font-style: normal; } .audiojs .time strong { padding: 0px 0px 0px 2px; font-weight: normal; } .audiojs .error-message { float: left; display: none; margin: 0px 10px; height: 36px; width: 400px; overflow: hidden; line-height: 36px; white-space: nowrap; color: #fff; text-overflow: ellipsis; -o-text-overflow: ellipsis; -icab-text-overflow: ellipsis; -khtml-text-overflow: ellipsis; -moz-text-overflow: ellipsis; -webkit-text-overflow: ellipsis; } .audiojs .error-message a { color: #eee; text-decoration: none; padding-bottom: 1px; border-bottom: 1px solid #999; white-space: wrap; } .audiojs .play { background: url("$1") -2px -1px no-repeat; } .audiojs .loading { background: url("$1") -2px -31px no-repeat; } .audiojs .error { background: url("$1") -2px -61px no-repeat; } .audiojs .pause { background: url("$1") -2px -91px no-repeat; } .playing .play, .playing .loading, .playing .error { display: none; } .playing .pause { display: block; } .loading .play, .loading .pause, .loading .error { display: none; } .loading .loading { display: block; } .error .time, .error .play, .error .pause, .error .scrubber, .error .loading { display: none; } .error .error { display: block; } .error .play-pause p { cursor: auto; } .error .error-message { display: block; }', | ||
5 | trackEnded:function(){},flashError:function(){var b=this.settings.createPlayer,a=j(b.errorMessageClass,this.wrapper),c='Missing <a href="http://get.adobe.com/flashplayer/">flash player</a> plugin.';if(this.mp3)c+=' <a href="'+this.mp3+'">Download audio file</a>.';g[h].helpers.removeClass(this.wrapper,b.loadingClass);g[h].helpers.addClass(this.wrapper,b.errorClass);a.innerHTML=c},loadError:function(){var b=this.settings.createPlayer,a=j(b.errorMessageClass,this.wrapper);g[h].helpers.removeClass(this.wrapper, | ||
6 | b.loadingClass);g[h].helpers.addClass(this.wrapper,b.errorClass);a.innerHTML='Error loading: "'+this.mp3+'"'},init:function(){g[h].helpers.addClass(this.wrapper,this.settings.createPlayer.loadingClass)},loadStarted:function(){var b=this.settings.createPlayer,a=j(b.durationClass,this.wrapper),c=Math.floor(this.duration/60),d=Math.floor(this.duration%60);g[h].helpers.removeClass(this.wrapper,b.loadingClass);a.innerHTML=(c<10?"0":"")+c+":"+(d<10?"0":"")+d},loadProgress:function(b){var a=this.settings.createPlayer, | ||
7 | c=j(a.scrubberClass,this.wrapper);j(a.loaderClass,this.wrapper).style.width=c.offsetWidth*b+"px"},playPause:function(){this.playing?this.settings.play():this.settings.pause()},play:function(){g[h].helpers.addClass(this.wrapper,this.settings.createPlayer.playingClass)},pause:function(){g[h].helpers.removeClass(this.wrapper,this.settings.createPlayer.playingClass)},updatePlayhead:function(b){var a=this.settings.createPlayer,c=j(a.scrubberClass,this.wrapper);j(a.progressClass,this.wrapper).style.width= | ||
8 | c.offsetWidth*b+"px";a=j(a.playedClass,this.wrapper);c=this.duration*b;b=Math.floor(c/60);c=Math.floor(c%60);a.innerHTML=(b<10?"0":"")+b+":"+(c<10?"0":"")+c}},create:function(b,a){a=a||{};return b.length?this.createAll(a,b):this.newInstance(b,a)},createAll:function(b,a){var c=a||document.getElementsByTagName("audio"),d=[];b=b||{};for(var e=0,i=c.length;e<i;e++)d.push(this.newInstance(c[e],b));return d},newInstance:function(b,a){var c=this.helpers.clone(this.settings),d="audiojs"+this.instanceCount, | ||
9 | e="audiojs_wrapper"+this.instanceCount;this.instanceCount++;if(b.getAttribute("autoplay")!=null)c.autoplay=true;if(b.getAttribute("loop")!=null)c.loop=true;if(b.getAttribute("preload")=="none")c.preload=false;a&&this.helpers.merge(c,a);if(c.createPlayer.markup)b=this.createPlayer(b,c.createPlayer,e);else b.parentNode.setAttribute("id",e);e=new g[o](b,c);c.css&&this.helpers.injectCss(e,c.css);if(c.useFlash&&c.hasFlash){this.injectFlash(e,d);this.attachFlashEvents(e.wrapper,e)}else c.useFlash&&!c.hasFlash&& | ||
10 | this.settings.flashError.apply(e);if(!c.useFlash||c.useFlash&&c.hasFlash)this.attachEvents(e.wrapper,e);return this.instances[d]=e},createPlayer:function(b,a,c){var d=document.createElement("div"),e=b.cloneNode(true);d.setAttribute("class","audiojs");d.setAttribute("className","audiojs");d.setAttribute("id",c);if(e.outerHTML&&!document.createElement("audio").canPlayType){e=this.helpers.cloneHtml5Node(b);d.innerHTML=a.markup;d.appendChild(e);b.outerHTML=d.outerHTML;d=document.getElementById(c)}else{d.appendChild(e); | ||
11 | d.innerHTML+=a.markup;b.parentNode.replaceChild(d,b)}return d.getElementsByTagName("audio")[0]},attachEvents:function(b,a){if(a.settings.createPlayer){var c=a.settings.createPlayer,d=j(c.playPauseClass,b),e=j(c.scrubberClass,b);g[h].events.addListener(d,"click",function(){a.playPause.apply(a)});g[h].events.addListener(e,"click",function(i){i=i.clientX;var f=this,k=0;if(f.offsetParent){do k+=f.offsetLeft;while(f=f.offsetParent)}a.skipTo((i-k)/e.offsetWidth)});if(!a.settings.useFlash){g[h].events.trackLoadProgress(a); | ||
12 | g[h].events.addListener(a.element,"timeupdate",function(){a.updatePlayhead.apply(a)});g[h].events.addListener(a.element,"ended",function(){a.trackEnded.apply(a)});g[h].events.addListener(a.source,"error",function(){clearInterval(a.readyTimer);clearInterval(a.loadTimer);a.settings.loadError.apply(a)})}}},attachFlashEvents:function(b,a){a.swfReady=false;a.load=function(c){a.mp3=c;a.swfReady&&a.element.load(c)};a.loadProgress=function(c,d){a.loadedPercent=c;a.duration=d;a.settings.loadStarted.apply(a); | ||
13 | a.settings.loadProgress.apply(a,[c])};a.skipTo=function(c){if(!(c>a.loadedPercent)){a.updatePlayhead.call(a,[c]);a.element.skipTo(c)}};a.updatePlayhead=function(c){a.settings.updatePlayhead.apply(a,[c])};a.play=function(){if(!a.settings.preload){a.settings.preload=true;a.element.init(a.mp3)}a.playing=true;a.element.pplay();a.settings.play.apply(a)};a.pause=function(){a.playing=false;a.element.ppause();a.settings.pause.apply(a)};a.setVolume=function(c){a.element.setVolume(c)};a.loadStarted=function(){a.swfReady= | ||
14 | true;a.settings.preload&&a.element.init(a.mp3);a.settings.autoplay&&a.play.apply(a)}},injectFlash:function(b,a){var c=this.flashSource.replace(/\$1/g,a);c=c.replace(/\$2/g,b.settings.swfLocation);c=c.replace(/\$3/g,+new Date+Math.random());var d=b.wrapper.innerHTML,e=document.createElement("div");e.innerHTML=c+d;b.wrapper.innerHTML=e.innerHTML;b.element=this.helpers.getSwf(a)},helpers:{merge:function(b,a){for(attr in a)if(b.hasOwnProperty(attr)||a.hasOwnProperty(attr))b[attr]=a[attr]},clone:function(b){if(b== | ||
15 | null||typeof b!=="object")return b;var a=new b.constructor,c;for(c in b)a[c]=arguments.callee(b[c]);return a},addClass:function(b,a){RegExp("(\\s|^)"+a+"(\\s|$)").test(b.className)||(b.className+=" "+a)},removeClass:function(b,a){b.className=b.className.replace(RegExp("(\\s|^)"+a+"(\\s|$)")," ")},injectCss:function(b,a){for(var c="",d=document.getElementsByTagName("style"),e=a.replace(/\$1/g,b.settings.imageLocation),i=0,f=d.length;i<f;i++){var k=d[i].getAttribute("title");if(k&&~k.indexOf("audiojs")){f= | ||
16 | d[i];if(f.innerHTML===e)return;c=f.innerHTML;break}}d=document.getElementsByTagName("head")[0];i=d.firstChild;f=document.createElement("style");if(d){f.setAttribute("type","text/css");f.setAttribute("title","audiojs");if(f.styleSheet)f.styleSheet.cssText=c+e;else f.appendChild(document.createTextNode(c+e));i?d.insertBefore(f,i):d.appendChild(styleElement)}},cloneHtml5Node:function(b){var a=document.createDocumentFragment(),c=a.createElement?a:document;c.createElement("audio");c=c.createElement("div"); | ||
17 | a.appendChild(c);c.innerHTML=b.outerHTML;return c.firstChild},getSwf:function(b){b=document[b]||window[b];return b.length>1?b[b.length-1]:b}},events:{memoryLeaking:false,listeners:[],addListener:function(b,a,c){if(b.addEventListener)b.addEventListener(a,c,false);else if(b.attachEvent){this.listeners.push(b);if(!this.memoryLeaking){window.attachEvent("onunload",function(){if(this.listeners)for(var d=0,e=this.listeners.length;d<e;d++)g[h].events.purge(this.listeners[d])});this.memoryLeaking=true}b.attachEvent("on"+ | ||
18 | a,function(){c.call(b,window.event)})}},trackLoadProgress:function(b){if(b.settings.preload){var a,c;b=b;var d=/(ipod|iphone|ipad)/i.test(navigator.userAgent);a=setInterval(function(){if(b.element.readyState>-1)d||b.init.apply(b);if(b.element.readyState>1){b.settings.autoplay&&b.play.apply(b);clearInterval(a);c=setInterval(function(){b.loadProgress.apply(b);b.loadedPercent>=1&&clearInterval(c)})}},10);b.readyTimer=a;b.loadTimer=c}},purge:function(b){var a=b.attributes,c;if(a)for(c=0;c<a.length;c+= | ||
19 | 1)if(typeof b[a[c].name]==="function")b[a[c].name]=null;if(a=b.childNodes)for(c=0;c<a.length;c+=1)purge(b.childNodes[c])},ready:function(){return function(b){var a=window,c=false,d=true,e=a.document,i=e.documentElement,f=e.addEventListener?"addEventListener":"attachEvent",k=e.addEventListener?"removeEventListener":"detachEvent",n=e.addEventListener?"":"on",m=function(l){if(!(l.type=="readystatechange"&&e.readyState!="complete")){(l.type=="load"?a:e)[k](n+l.type,m,false);if(!c&&(c=true))b.call(a,l.type|| | ||
20 | l)}},q=function(){try{i.doScroll("left")}catch(l){setTimeout(q,50);return}m("poll")};if(e.readyState=="complete")b.call(a,"lazy");else{if(e.createEventObject&&i.doScroll){try{d=!a.frameElement}catch(r){}d&&q()}e[f](n+"DOMContentLoaded",m,false);e[f](n+"readystatechange",m,false);a[f](n+"load",m,false)}}}()}};g[o]=function(b,a){this.element=b;this.wrapper=b.parentNode;this.source=b.getElementsByTagName("source")[0]||b;this.mp3=function(c){var d=c.getElementsByTagName("source")[0];return c.getAttribute("src")|| | ||
21 | (d?d.getAttribute("src"):null)}(b);this.settings=a;this.loadStartedCalled=false;this.loadedPercent=0;this.duration=1;this.playing=false};g[o].prototype={updatePlayhead:function(){this.settings.updatePlayhead.apply(this,[this.element.currentTime/this.duration])},skipTo:function(b){if(!(b>this.loadedPercent)){this.element.currentTime=this.duration*b;this.updatePlayhead()}},load:function(b){this.loadStartedCalled=false;this.source.setAttribute("src",b);this.element.load();this.mp3=b;g[h].events.trackLoadProgress(this)}, | ||
22 | loadError:function(){this.settings.loadError.apply(this)},init:function(){this.settings.init.apply(this)},loadStarted:function(){if(!this.element.duration)return false;this.duration=this.element.duration;this.updatePlayhead();this.settings.loadStarted.apply(this)},loadProgress:function(){if(this.element.buffered!=null&&this.element.buffered.length){if(!this.loadStartedCalled)this.loadStartedCalled=this.loadStarted();this.loadedPercent=this.element.buffered.end(this.element.buffered.length-1)/this.duration; | ||
23 | this.settings.loadProgress.apply(this,[this.loadedPercent])}},playPause:function(){this.playing?this.pause():this.play()},play:function(){/(ipod|iphone|ipad)/i.test(navigator.userAgent)&&this.element.readyState==0&&this.init.apply(this);if(!this.settings.preload){this.settings.preload=true;this.element.setAttribute("preload","auto");g[h].events.trackLoadProgress(this)}this.playing=true;this.element.play();this.settings.play.apply(this)},pause:function(){this.playing=false;this.element.pause();this.settings.pause.apply(this)}, | ||
24 | setVolume:function(b){this.element.volume=b},trackEnded:function(){this.skipTo.apply(this,[0]);this.settings.loop||this.pause.apply(this);this.settings.trackEnded.apply(this)}};var j=function(b,a){var c=[];a=a||document;if(a.getElementsByClassName)c=a.getElementsByClassName(b);else{var d,e,i=a.getElementsByTagName("*"),f=RegExp("(^|\\s)"+b+"(\\s|$)");d=0;for(e=i.length;d<e;d++)f.test(i[d].className)&&c.push(i[d])}return c.length>1?c:c[0]}})("audiojs","audiojsInstance",this); | ||
diff --git a/Blocks/countdown/audiojs/audiojs.swf b/Blocks/countdown/audiojs/audiojs.swf new file mode 100644 index 0000000..483599f --- /dev/null +++ b/Blocks/countdown/audiojs/audiojs.swf | |||
Binary files differ | |||
diff --git a/Blocks/countdown/audiojs/player-graphics.gif b/Blocks/countdown/audiojs/player-graphics.gif new file mode 100644 index 0000000..3e4d9d4 --- /dev/null +++ b/Blocks/countdown/audiojs/player-graphics.gif | |||
Binary files differ | |||
diff --git a/Blocks/countdown/css/countdown.css b/Blocks/countdown/css/countdown.css new file mode 100644 index 0000000..21974f8 --- /dev/null +++ b/Blocks/countdown/css/countdown.css | |||
@@ -0,0 +1,13 @@ | |||
1 | /* ---------- DEMO TIMER CONTAINER ---------- */ | ||
2 | .timerArea {text-align: center;padding: 5em 0 0;display:block;position:relative;height:180px;clear:both;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif} | ||
3 | .timerArea h1 {color: white} | ||
4 | |||
5 | /* ---------- DEFAULT SKIN---------- */ | ||
6 | ul.countdown_default {display:block;position:relative;margin:0 auto;width:425px;height:100%} | ||
7 | ul.countdown_default li {display: block;background: transparent url('images/timer-piece.png') no-repeat left top;width: 104px;margin-bottom: 4em;text-align: center;position:relative;float:left;} | ||
8 | ul.countdown_default li span {font-size: 3em;font-weight: bold;color: #1f2225;height: 108px;line-height: 108px;position: relative} | ||
9 | ul.countdown_default li span::before {content: '';width: 100%;height: 1px;position: absolute;top: 31px} | ||
10 | ul.countdown_default li p.timeRefDays, | ||
11 | ul.countdown_default li p.timeRefHours, | ||
12 | ul.countdown_default li p.timeRefMinutes, | ||
13 | ul.countdown_default li p.timeRefSeconds {margin-top: 1em;color: #909091;text-transform: uppercase;font-size: .875em} \ No newline at end of file | ||
diff --git a/Blocks/countdown/index.html b/Blocks/countdown/index.html new file mode 100644 index 0000000..6644fb0 --- /dev/null +++ b/Blocks/countdown/index.html | |||
@@ -0,0 +1,68 @@ | |||
1 | <!DOCTYPE html> | ||
2 | <html> | ||
3 | <head> | ||
4 | |||
5 | <title>Countdown</title> | ||
6 | <meta http-equiv="Content-Type" content="text/html;charset=gb2312" /> | ||
7 | <link rel="stylesheet" type="text/css" href="css/countdown.css"/> | ||
8 | <script type="text/javascript" src="js/jquery-1.10.2.js"></script> | ||
9 | <script type="text/javascript" src="js/jquery.knob.min.js"></script> | ||
10 | <script type="text/javascript" src="js/countdown.min.js"></script> | ||
11 | |||
12 | </head> | ||
13 | <body> | ||
14 | |||
15 | <div id='countdown_knob' class='timerArea' ></div> | ||
16 | |||
17 | |||
18 | <script> | ||
19 | $(document).ready(function() { | ||
20 | $("#countdown_def").countdown( | ||
21 | { | ||
22 | dateEnd:'11/30/2013 00:00:00', | ||
23 | format:true, | ||
24 | callback:function(){alert('Happy Birthday to U')} | ||
25 | }, | ||
26 | { | ||
27 | timezone:false, | ||
28 | offset:0 | ||
29 | } | ||
30 | ); | ||
31 | |||
32 | $("#countdown_knob").countdown( | ||
33 | { | ||
34 | skin: 'knob', | ||
35 | option:{ | ||
36 | global:{thickness:0.1}, | ||
37 | day:{thickness:0.2}, | ||
38 | hour:{thickness:0.4}, | ||
39 | second:{thickness:.0} | ||
40 | }, | ||
41 | dateEnd:'05/03/2014 02:00:00', | ||
42 | dateStart:'11/30/2013 00:00:00', | ||
43 | format:true, | ||
44 | callback:function(){alert('Tiga!')} | ||
45 | }, | ||
46 | { | ||
47 | timezone:true, | ||
48 | offset:6 | ||
49 | } | ||
50 | ); | ||
51 | }); | ||
52 | </script> | ||
53 | <div style="text-align:center;clear:both"><br><br> | ||
54 | <br> | ||
55 | <img src="waiting.png" width="557" height="158"><br><br> | ||
56 | |||
57 | </div> | ||
58 | |||
59 | |||
60 | <!-- jinwei.me Baidu tongji analytics --> | ||
61 | <script type="text/javascript"> | ||
62 | var _bdhmProtocol = (("https:" == document.location.protocol) ? " https://" : " http://"); | ||
63 | document.write(unescape("%3Cscript src='" + _bdhmProtocol + "hm.baidu.com/h.js%3F91918ac6d6854623883a2b546ebc00ac' type='text/javascript'%3E%3C/script%3E")); | ||
64 | </script> | ||
65 | |||
66 | </body> | ||
67 | |||
68 | </html> \ No newline at end of file | ||
diff --git a/Blocks/countdown/js/countdown.min.js b/Blocks/countdown/js/countdown.min.js new file mode 100644 index 0000000..72a3164 --- /dev/null +++ b/Blocks/countdown/js/countdown.min.js | |||
@@ -0,0 +1,14 @@ | |||
1 | /*!jQuery Professional Countdown*/ | ||
2 | /** | ||
3 | * Simple COuntdown with callback and Time Zone Support | ||
4 | * | ||
5 | * Version: 1.0.1 (16/11/2013) | ||
6 | * Requires: jQuery v1.7+ | ||
7 | * | ||
8 | * Where applicable: Copyright (c) 2013 Luca Grandi | ||
9 | * Under MIT: | ||
10 | * http://www.opensource.org/licenses/mit-license.php | ||
11 | * | ||
12 | * | ||
13 | */ | ||
14 | (function(b){function n(){var b=document.createElement("canvas");return!(!b.getContext||!b.getContext("2d"))}b.fn.countdown=function(d,p){function q(){currentDate=Math.floor(((new Date).getTime()-e.offset)/1E3);f<currentDate?(null!=a.callback&&a.callback.call(this),"undefined"!=typeof r&&clearInterval(r)):(seconds=f-currentDate,days=Math.floor(seconds/86400),seconds-=86400*days,hours=Math.floor(seconds/3600),seconds-=3600*hours,minutes=Math.floor(seconds/60),seconds-=60*minutes,"knob"!=a.skin?(0!= a.format&&(days=2<=String(days).length?days:"0"+days,hours=2<=String(hours).length?hours:"0"+hours,minutes=2<=String(minutes).length?minutes:"0"+minutes,seconds=2<=String(seconds).length?seconds:"0"+seconds),g.text(days),h.text(hours),k.text(minutes),l.text(seconds),1==days?g.parent().children(".timeRefDays").text("Day"):g.parent().children(".timeRefDays").text("Days"),1==hours?h.parent().children(".timeRefHours").text("Hour"):h.parent().children(".timeRefHours").text("Hours"),1==minutes?k.parent().children(".timeRefMinutes").text("Minute"): k.parent().children(".timeRefMinutes").text("Minutes"),1==seconds?l.parent().children(".timeRefSeconds").text("Second"):l.parent().children(".timeRefSeconds").text("Seconds")):(g.val(days).trigger("change"),h.val(hours).trigger("change"),k.val(minutes).trigger("change"),l.val(seconds).trigger("change")))}var a={skin:"countdown_default",fallbackSkin:"countdown_default",option:{day:{max:null,eClass:"days"},hour:{max:23,eClass:"hours"},minute:{max:59,eClass:"minutes"},second:{max:59,eClass:"seconds"}}, dateStart:null,dateEnd:null,format:!0,callback:null},e={timezone:!1,offset:0};d&&b.extend(!0,a,d);p&&b.extend(!0,e,p);var f=(new Date(a.dateEnd)).getTime()/1E3,m=(new Date(a.dateStart)).getTime()/1E3,c=(new Date).getTime();if(isNaN(f))alert("Invalid or null dateEnd mm/dd/yyyy. Example: 12/25/2013 17:30:00"),b(this).append("Invalid or null date mm/dd/yyyy. Example: 12/25/2013 17:30:00");else if("knob"!=a.skin||null!=m&&!isNaN(m))if(m>c)alert("Starting date is greater than the current date"),b(this).append("Starting date is greater than the current date"); else{!0==e.timezone&&(e.offset=36E5*parseInt(e.offset)+6E4*(new Date).getTimezoneOffset());c=b(this);"undefined"!=typeof d.option&&"undefined"==typeof d.option.global&&(d.option.global={});a.option.day=b.extend(!0,{},a.option.global,a.option.day);a.option.hour=b.extend(!0,{},a.option.global,a.option.hour);a.option.minute=b.extend(!0,{},a.option.global,a.option.minute);a.option.second=b.extend(!0,{},a.option.global,a.option.second);"knob"==a.skin.toLowerCase()&&n?(a.skin=a.skin.toLowerCase(),c.append('<input class="'+ a.option.day.eClass+'" type="text" value="0" data-readonly="true" /><input class="'+a.option.hour.eClass+'" type="text" value="0" data-readonly="true" /><input class="'+a.option.minute.eClass+'" type="text" value="0" data-readonly="true" /><input class="'+a.option.second.eClass+'" type="text" value="0" data-readonly="true" />'),a.option.day.eClass="."+a.option.day.eClass.split(" ").join("."),a.option.hour.eClass="."+a.option.hour.eClass.split(" ").join("."),a.option.minute.eClass="."+a.option.minute.eClass.split(" ").join("."), a.option.second.eClass="."+a.option.second.eClass.split(" ").join("."),a.option.day.max=Math.floor((f-m)/86400),c.find(a.option.day.eClass).knob(a.option.day),c.find(a.option.hour.eClass).knob(a.option.hour),c.find(a.option.minute.eClass).knob(a.option.minute),c.find(a.option.second.eClass).knob(a.option.second)):("knob"==a.skin.toLowerCase()||n?c.append('<ul class="'+a.skin+'" ><li><span class="'+a.option.day.eClass+'">00</span><p class="timeRefDays">Days</p></li><li><span class="'+a.option.hour.eClass+ '">00</span><p class="timeRefHours">Hours</p></li><li><span class="'+a.option.minute.eClass+'">00</span><p class="timeRefMinutes">Minutes</p></li><li><span class="'+a.option.second.eClass+'">00</span><p class="timeRefSeconds">Seconds</p></li></ul>'):(a.skin=a.fallbackSkin,c.html('<ul class="'+a.skin+'"><li><span class="'+a.option.day.eClass+'">00</span><p class="timeRefDays">Days</p></li><li><span class="'+a.option.hour.eClass+'">00</span><p class="timeRefHours">Hours</p></li><li><span class="'+a.option.minute.eClass+ '">00</span><p class="timeRefMinutes">Minutes</p></li><li><span class="'+a.option.second.eClass+'">00</span><p class="timeRefSeconds">Seconds</p></li></ul>')),a.option.day.eClass="."+a.option.day.eClass.split(" ").join("."),a.option.hour.eClass="."+a.option.hour.eClass.split(" ").join("."),a.option.minute.eClass="."+a.option.minute.eClass.split(" ").join("."),a.option.second.eClass="."+a.option.second.eClass.split(" ").join("."));var g=c.find(a.option.day.eClass),h=c.find(a.option.hour.eClass),k= c.find(a.option.minute.eClass),l=c.find(a.option.second.eClass);q();if(f>(new Date).getTime()/1E3)var r=setInterval(function(){q()},1E3)}else alert("Invalid or null dateStart mm/dd/yyyy. Example: 12/25/2013 17:30:00"),b(this).append("Invalid or null dateStart mm/dd/yyyy. Example: 12/25/2013 17:30:00")}})(jQuery); \ No newline at end of file | ||
diff --git a/Blocks/countdown/js/jquery-1.10.2.js b/Blocks/countdown/js/jquery-1.10.2.js new file mode 100644 index 0000000..da41706 --- /dev/null +++ b/Blocks/countdown/js/jquery-1.10.2.js | |||
@@ -0,0 +1,6 @@ | |||
1 | /*! jQuery v1.10.2 | (c) 2005, 2013 jQuery Foundation, Inc. | jquery.org/license | ||
2 | //@ sourceMappingURL=jquery-1.10.2.min.map | ||
3 | */ | ||
4 | (function(e,t){var n,r,i=typeof t,o=e.location,a=e.document,s=a.documentElement,l=e.jQuery,u=e.$,c={},p=[],f="1.10.2",d=p.concat,h=p.push,g=p.slice,m=p.indexOf,y=c.toString,v=c.hasOwnProperty,b=f.trim,x=function(e,t){return new x.fn.init(e,t,r)},w=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,T=/\S+/g,C=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,N=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,k=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,E=/^[\],:{}\s]*$/,S=/(?:^|:|,)(?:\s*\[)+/g,A=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,j=/"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g,D=/^-ms-/,L=/-([\da-z])/gi,H=function(e,t){return t.toUpperCase()},q=function(e){(a.addEventListener||"load"===e.type||"complete"===a.readyState)&&(_(),x.ready())},_=function(){a.addEventListener?(a.removeEventListener("DOMContentLoaded",q,!1),e.removeEventListener("load",q,!1)):(a.detachEvent("onreadystatechange",q),e.detachEvent("onload",q))};x.fn=x.prototype={jquery:f,constructor:x,init:function(e,n,r){var i,o;if(!e)return this;if("string"==typeof e){if(i="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:N.exec(e),!i||!i[1]&&n)return!n||n.jquery?(n||r).find(e):this.constructor(n).find(e);if(i[1]){if(n=n instanceof x?n[0]:n,x.merge(this,x.parseHTML(i[1],n&&n.nodeType?n.ownerDocument||n:a,!0)),k.test(i[1])&&x.isPlainObject(n))for(i in n)x.isFunction(this[i])?this[i](n[i]):this.attr(i,n[i]);return this}if(o=a.getElementById(i[2]),o&&o.parentNode){if(o.id!==i[2])return r.find(e);this.length=1,this[0]=o}return this.context=a,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):x.isFunction(e)?r.ready(e):(e.selector!==t&&(this.selector=e.selector,this.context=e.context),x.makeArray(e,this))},selector:"",length:0,toArray:function(){return g.call(this)},get:function(e){return null==e?this.toArray():0>e?this[this.length+e]:this[e]},pushStack:function(e){var t=x.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:function(e,t){return x.each(this,e,t)},ready:function(e){return x.ready.promise().done(e),this},slice:function(){return this.pushStack(g.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(0>e?t:0);return this.pushStack(n>=0&&t>n?[this[n]]:[])},map:function(e){return this.pushStack(x.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:h,sort:[].sort,splice:[].splice},x.fn.init.prototype=x.fn,x.extend=x.fn.extend=function(){var e,n,r,i,o,a,s=arguments[0]||{},l=1,u=arguments.length,c=!1;for("boolean"==typeof s&&(c=s,s=arguments[1]||{},l=2),"object"==typeof s||x.isFunction(s)||(s={}),u===l&&(s=this,--l);u>l;l++)if(null!=(o=arguments[l]))for(i in o)e=s[i],r=o[i],s!==r&&(c&&r&&(x.isPlainObject(r)||(n=x.isArray(r)))?(n?(n=!1,a=e&&x.isArray(e)?e:[]):a=e&&x.isPlainObject(e)?e:{},s[i]=x.extend(c,a,r)):r!==t&&(s[i]=r));return s},x.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),noConflict:function(t){return e.$===x&&(e.$=u),t&&e.jQuery===x&&(e.jQuery=l),x},isReady:!1,readyWait:1,holdReady:function(e){e?x.readyWait++:x.ready(!0)},ready:function(e){if(e===!0?!--x.readyWait:!x.isReady){if(!a.body)return setTimeout(x.ready);x.isReady=!0,e!==!0&&--x.readyWait>0||(n.resolveWith(a,[x]),x.fn.trigger&&x(a).trigger("ready").off("ready"))}},isFunction:function(e){return"function"===x.type(e)},isArray:Array.isArray||function(e){return"array"===x.type(e)},isWindow:function(e){return null!=e&&e==e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?c[y.call(e)]||"object":typeof e},isPlainObject:function(e){var n;if(!e||"object"!==x.type(e)||e.nodeType||x.isWindow(e))return!1;try{if(e.constructor&&!v.call(e,"constructor")&&!v.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(r){return!1}if(x.support.ownLast)for(n in e)return v.call(e,n);for(n in e);return n===t||v.call(e,n)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw Error(e)},parseHTML:function(e,t,n){if(!e||"string"!=typeof e)return null;"boolean"==typeof t&&(n=t,t=!1),t=t||a;var r=k.exec(e),i=!n&&[];return r?[t.createElement(r[1])]:(r=x.buildFragment([e],t,i),i&&x(i).remove(),x.merge([],r.childNodes))},parseJSON:function(n){return e.JSON&&e.JSON.parse?e.JSON.parse(n):null===n?n:"string"==typeof n&&(n=x.trim(n),n&&E.test(n.replace(A,"@").replace(j,"]").replace(S,"")))?Function("return "+n)():(x.error("Invalid JSON: "+n),t)},parseXML:function(n){var r,i;if(!n||"string"!=typeof n)return null;try{e.DOMParser?(i=new DOMParser,r=i.parseFromString(n,"text/xml")):(r=new ActiveXObject("Microsoft.XMLDOM"),r.async="false",r.loadXML(n))}catch(o){r=t}return r&&r.documentElement&&!r.getElementsByTagName("parsererror").length||x.error("Invalid XML: "+n),r},noop:function(){},globalEval:function(t){t&&x.trim(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(D,"ms-").replace(L,H)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t,n){var r,i=0,o=e.length,a=M(e);if(n){if(a){for(;o>i;i++)if(r=t.apply(e[i],n),r===!1)break}else for(i in e)if(r=t.apply(e[i],n),r===!1)break}else if(a){for(;o>i;i++)if(r=t.call(e[i],i,e[i]),r===!1)break}else for(i in e)if(r=t.call(e[i],i,e[i]),r===!1)break;return e},trim:b&&!b.call("\ufeff\u00a0")?function(e){return null==e?"":b.call(e)}:function(e){return null==e?"":(e+"").replace(C,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(M(Object(e))?x.merge(n,"string"==typeof e?[e]:e):h.call(n,e)),n},inArray:function(e,t,n){var r;if(t){if(m)return m.call(t,e,n);for(r=t.length,n=n?0>n?Math.max(0,r+n):n:0;r>n;n++)if(n in t&&t[n]===e)return n}return-1},merge:function(e,n){var r=n.length,i=e.length,o=0;if("number"==typeof r)for(;r>o;o++)e[i++]=n[o];else while(n[o]!==t)e[i++]=n[o++];return e.length=i,e},grep:function(e,t,n){var r,i=[],o=0,a=e.length;for(n=!!n;a>o;o++)r=!!t(e[o],o),n!==r&&i.push(e[o]);return i},map:function(e,t,n){var r,i=0,o=e.length,a=M(e),s=[];if(a)for(;o>i;i++)r=t(e[i],i,n),null!=r&&(s[s.length]=r);else for(i in e)r=t(e[i],i,n),null!=r&&(s[s.length]=r);return d.apply([],s)},guid:1,proxy:function(e,n){var r,i,o;return"string"==typeof n&&(o=e[n],n=e,e=o),x.isFunction(e)?(r=g.call(arguments,2),i=function(){return e.apply(n||this,r.concat(g.call(arguments)))},i.guid=e.guid=e.guid||x.guid++,i):t},access:function(e,n,r,i,o,a,s){var l=0,u=e.length,c=null==r;if("object"===x.type(r)){o=!0;for(l in r)x.access(e,n,l,r[l],!0,a,s)}else if(i!==t&&(o=!0,x.isFunction(i)||(s=!0),c&&(s?(n.call(e,i),n=null):(c=n,n=function(e,t,n){return c.call(x(e),n)})),n))for(;u>l;l++)n(e[l],r,s?i:i.call(e[l],l,n(e[l],r)));return o?e:c?n.call(e):u?n(e[0],r):a},now:function(){return(new Date).getTime()},swap:function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=a[o];return i}}),x.ready.promise=function(t){if(!n)if(n=x.Deferred(),"complete"===a.readyState)setTimeout(x.ready);else if(a.addEventListener)a.addEventListener("DOMContentLoaded",q,!1),e.addEventListener("load",q,!1);else{a.attachEvent("onreadystatechange",q),e.attachEvent("onload",q);var r=!1;try{r=null==e.frameElement&&a.documentElement}catch(i){}r&&r.doScroll&&function o(){if(!x.isReady){try{r.doScroll("left")}catch(e){return setTimeout(o,50)}_(),x.ready()}}()}return n.promise(t)},x.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(e,t){c["[object "+t+"]"]=t.toLowerCase()});function M(e){var t=e.length,n=x.type(e);return x.isWindow(e)?!1:1===e.nodeType&&t?!0:"array"===n||"function"!==n&&(0===t||"number"==typeof t&&t>0&&t-1 in e)}r=x(a),function(e,t){var n,r,i,o,a,s,l,u,c,p,f,d,h,g,m,y,v,b="sizzle"+-new Date,w=e.document,T=0,C=0,N=st(),k=st(),E=st(),S=!1,A=function(e,t){return e===t?(S=!0,0):0},j=typeof t,D=1<<31,L={}.hasOwnProperty,H=[],q=H.pop,_=H.push,M=H.push,O=H.slice,F=H.indexOf||function(e){var t=0,n=this.length;for(;n>t;t++)if(this[t]===e)return t;return-1},B="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",P="[\\x20\\t\\r\\n\\f]",R="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",W=R.replace("w","w#"),$="\\["+P+"*("+R+")"+P+"*(?:([*^$|!~]?=)"+P+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+W+")|)|)"+P+"*\\]",I=":("+R+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+$.replace(3,8)+")*)|.*)\\)|)",z=RegExp("^"+P+"+|((?:^|[^\\\\])(?:\\\\.)*)"+P+"+$","g"),X=RegExp("^"+P+"*,"+P+"*"),U=RegExp("^"+P+"*([>+~]|"+P+")"+P+"*"),V=RegExp(P+"*[+~]"),Y=RegExp("="+P+"*([^\\]'\"]*)"+P+"*\\]","g"),J=RegExp(I),G=RegExp("^"+W+"$"),Q={ID:RegExp("^#("+R+")"),CLASS:RegExp("^\\.("+R+")"),TAG:RegExp("^("+R.replace("w","w*")+")"),ATTR:RegExp("^"+$),PSEUDO:RegExp("^"+I),CHILD:RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+P+"*(even|odd|(([+-]|)(\\d*)n|)"+P+"*(?:([+-]|)"+P+"*(\\d+)|))"+P+"*\\)|)","i"),bool:RegExp("^(?:"+B+")$","i"),needsContext:RegExp("^"+P+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+P+"*((?:-\\d)?\\d*)"+P+"*\\)|)(?=[^-]|$)","i")},K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,et=/^(?:input|select|textarea|button)$/i,tt=/^h\d$/i,nt=/'|\\/g,rt=RegExp("\\\\([\\da-f]{1,6}"+P+"?|("+P+")|.)","ig"),it=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:0>r?String.fromCharCode(r+65536):String.fromCharCode(55296|r>>10,56320|1023&r)};try{M.apply(H=O.call(w.childNodes),w.childNodes),H[w.childNodes.length].nodeType}catch(ot){M={apply:H.length?function(e,t){_.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function at(e,t,n,i){var o,a,s,l,u,c,d,m,y,x;if((t?t.ownerDocument||t:w)!==f&&p(t),t=t||f,n=n||[],!e||"string"!=typeof e)return n;if(1!==(l=t.nodeType)&&9!==l)return[];if(h&&!i){if(o=Z.exec(e))if(s=o[1]){if(9===l){if(a=t.getElementById(s),!a||!a.parentNode)return n;if(a.id===s)return n.push(a),n}else if(t.ownerDocument&&(a=t.ownerDocument.getElementById(s))&&v(t,a)&&a.id===s)return n.push(a),n}else{if(o[2])return M.apply(n,t.getElementsByTagName(e)),n;if((s=o[3])&&r.getElementsByClassName&&t.getElementsByClassName)return M.apply(n,t.getElementsByClassName(s)),n}if(r.qsa&&(!g||!g.test(e))){if(m=d=b,y=t,x=9===l&&e,1===l&&"object"!==t.nodeName.toLowerCase()){c=mt(e),(d=t.getAttribute("id"))?m=d.replace(nt,"\\$&"):t.setAttribute("id",m),m="[id='"+m+"'] ",u=c.length;while(u--)c[u]=m+yt(c[u]);y=V.test(e)&&t.parentNode||t,x=c.join(",")}if(x)try{return M.apply(n,y.querySelectorAll(x)),n}catch(T){}finally{d||t.removeAttribute("id")}}}return kt(e.replace(z,"$1"),t,n,i)}function st(){var e=[];function t(n,r){return e.push(n+=" ")>o.cacheLength&&delete t[e.shift()],t[n]=r}return t}function lt(e){return e[b]=!0,e}function ut(e){var t=f.createElement("div");try{return!!e(t)}catch(n){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function ct(e,t){var n=e.split("|"),r=e.length;while(r--)o.attrHandle[n[r]]=t}function pt(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||D)-(~e.sourceIndex||D);if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function ft(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function dt(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function ht(e){return lt(function(t){return t=+t,lt(function(n,r){var i,o=e([],n.length,t),a=o.length;while(a--)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}s=at.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},r=at.support={},p=at.setDocument=function(e){var n=e?e.ownerDocument||e:w,i=n.defaultView;return n!==f&&9===n.nodeType&&n.documentElement?(f=n,d=n.documentElement,h=!s(n),i&&i.attachEvent&&i!==i.top&&i.attachEvent("onbeforeunload",function(){p()}),r.attributes=ut(function(e){return e.className="i",!e.getAttribute("className")}),r.getElementsByTagName=ut(function(e){return e.appendChild(n.createComment("")),!e.getElementsByTagName("*").length}),r.getElementsByClassName=ut(function(e){return e.innerHTML="<div class='a'></div><div class='a i'></div>",e.firstChild.className="i",2===e.getElementsByClassName("i").length}),r.getById=ut(function(e){return d.appendChild(e).id=b,!n.getElementsByName||!n.getElementsByName(b).length}),r.getById?(o.find.ID=function(e,t){if(typeof t.getElementById!==j&&h){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},o.filter.ID=function(e){var t=e.replace(rt,it);return function(e){return e.getAttribute("id")===t}}):(delete o.find.ID,o.filter.ID=function(e){var t=e.replace(rt,it);return function(e){var n=typeof e.getAttributeNode!==j&&e.getAttributeNode("id");return n&&n.value===t}}),o.find.TAG=r.getElementsByTagName?function(e,n){return typeof n.getElementsByTagName!==j?n.getElementsByTagName(e):t}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},o.find.CLASS=r.getElementsByClassName&&function(e,n){return typeof n.getElementsByClassName!==j&&h?n.getElementsByClassName(e):t},m=[],g=[],(r.qsa=K.test(n.querySelectorAll))&&(ut(function(e){e.innerHTML="<select><option selected=''></option></select>",e.querySelectorAll("[selected]").length||g.push("\\["+P+"*(?:value|"+B+")"),e.querySelectorAll(":checked").length||g.push(":checked")}),ut(function(e){var t=n.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("t",""),e.querySelectorAll("[t^='']").length&&g.push("[*^$]="+P+"*(?:''|\"\")"),e.querySelectorAll(":enabled").length||g.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),g.push(",.*:")})),(r.matchesSelector=K.test(y=d.webkitMatchesSelector||d.mozMatchesSelector||d.oMatchesSelector||d.msMatchesSelector))&&ut(function(e){r.disconnectedMatch=y.call(e,"div"),y.call(e,"[s!='']:x"),m.push("!=",I)}),g=g.length&&RegExp(g.join("|")),m=m.length&&RegExp(m.join("|")),v=K.test(d.contains)||d.compareDocumentPosition?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},A=d.compareDocumentPosition?function(e,t){if(e===t)return S=!0,0;var i=t.compareDocumentPosition&&e.compareDocumentPosition&&e.compareDocumentPosition(t);return i?1&i||!r.sortDetached&&t.compareDocumentPosition(e)===i?e===n||v(w,e)?-1:t===n||v(w,t)?1:c?F.call(c,e)-F.call(c,t):0:4&i?-1:1:e.compareDocumentPosition?-1:1}:function(e,t){var r,i=0,o=e.parentNode,a=t.parentNode,s=[e],l=[t];if(e===t)return S=!0,0;if(!o||!a)return e===n?-1:t===n?1:o?-1:a?1:c?F.call(c,e)-F.call(c,t):0;if(o===a)return pt(e,t);r=e;while(r=r.parentNode)s.unshift(r);r=t;while(r=r.parentNode)l.unshift(r);while(s[i]===l[i])i++;return i?pt(s[i],l[i]):s[i]===w?-1:l[i]===w?1:0},n):f},at.matches=function(e,t){return at(e,null,null,t)},at.matchesSelector=function(e,t){if((e.ownerDocument||e)!==f&&p(e),t=t.replace(Y,"='$1']"),!(!r.matchesSelector||!h||m&&m.test(t)||g&&g.test(t)))try{var n=y.call(e,t);if(n||r.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(i){}return at(t,f,null,[e]).length>0},at.contains=function(e,t){return(e.ownerDocument||e)!==f&&p(e),v(e,t)},at.attr=function(e,n){(e.ownerDocument||e)!==f&&p(e);var i=o.attrHandle[n.toLowerCase()],a=i&&L.call(o.attrHandle,n.toLowerCase())?i(e,n,!h):t;return a===t?r.attributes||!h?e.getAttribute(n):(a=e.getAttributeNode(n))&&a.specified?a.value:null:a},at.error=function(e){throw Error("Syntax error, unrecognized expression: "+e)},at.uniqueSort=function(e){var t,n=[],i=0,o=0;if(S=!r.detectDuplicates,c=!r.sortStable&&e.slice(0),e.sort(A),S){while(t=e[o++])t===e[o]&&(i=n.push(o));while(i--)e.splice(n[i],1)}return e},a=at.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=a(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r];r++)n+=a(t);return n},o=at.selectors={cacheLength:50,createPseudo:lt,match:Q,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(rt,it),e[3]=(e[4]||e[5]||"").replace(rt,it),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||at.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&at.error(e[0]),e},PSEUDO:function(e){var n,r=!e[5]&&e[2];return Q.CHILD.test(e[0])?null:(e[3]&&e[4]!==t?e[2]=e[4]:r&&J.test(r)&&(n=mt(r,!0))&&(n=r.indexOf(")",r.length-n)-r.length)&&(e[0]=e[0].slice(0,n),e[2]=r.slice(0,n)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(rt,it).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=N[e+" "];return t||(t=RegExp("(^|"+P+")"+e+"("+P+"|$)"))&&N(e,function(e){return t.test("string"==typeof e.className&&e.className||typeof e.getAttribute!==j&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=at.attr(r,e);return null==i?"!="===t:t?(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i+" ").indexOf(n)>-1:"|="===t?i===n||i.slice(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,l){var u,c,p,f,d,h,g=o!==a?"nextSibling":"previousSibling",m=t.parentNode,y=s&&t.nodeName.toLowerCase(),v=!l&&!s;if(m){if(o){while(g){p=t;while(p=p[g])if(s?p.nodeName.toLowerCase()===y:1===p.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?m.firstChild:m.lastChild],a&&v){c=m[b]||(m[b]={}),u=c[e]||[],d=u[0]===T&&u[1],f=u[0]===T&&u[2],p=d&&m.childNodes[d];while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if(1===p.nodeType&&++f&&p===t){c[e]=[T,d,f];break}}else if(v&&(u=(t[b]||(t[b]={}))[e])&&u[0]===T)f=u[1];else while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if((s?p.nodeName.toLowerCase()===y:1===p.nodeType)&&++f&&(v&&((p[b]||(p[b]={}))[e]=[T,f]),p===t))break;return f-=i,f===r||0===f%r&&f/r>=0}}},PSEUDO:function(e,t){var n,r=o.pseudos[e]||o.setFilters[e.toLowerCase()]||at.error("unsupported pseudo: "+e);return r[b]?r(t):r.length>1?(n=[e,e,"",t],o.setFilters.hasOwnProperty(e.toLowerCase())?lt(function(e,n){var i,o=r(e,t),a=o.length;while(a--)i=F.call(e,o[a]),e[i]=!(n[i]=o[a])}):function(e){return r(e,0,n)}):r}},pseudos:{not:lt(function(e){var t=[],n=[],r=l(e.replace(z,"$1"));return r[b]?lt(function(e,t,n,i){var o,a=r(e,null,i,[]),s=e.length;while(s--)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),!n.pop()}}),has:lt(function(e){return function(t){return at(e,t).length>0}}),contains:lt(function(e){return function(t){return(t.textContent||t.innerText||a(t)).indexOf(e)>-1}}),lang:lt(function(e){return G.test(e||"")||at.error("unsupported lang: "+e),e=e.replace(rt,it).toLowerCase(),function(t){var n;do if(n=h?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===d},focus:function(e){return e===f.activeElement&&(!f.hasFocus||f.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeName>"@"||3===e.nodeType||4===e.nodeType)return!1;return!0},parent:function(e){return!o.pseudos.empty(e)},header:function(e){return tt.test(e.nodeName)},input:function(e){return et.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||t.toLowerCase()===e.type)},first:ht(function(){return[0]}),last:ht(function(e,t){return[t-1]}),eq:ht(function(e,t,n){return[0>n?n+t:n]}),even:ht(function(e,t){var n=0;for(;t>n;n+=2)e.push(n);return e}),odd:ht(function(e,t){var n=1;for(;t>n;n+=2)e.push(n);return e}),lt:ht(function(e,t,n){var r=0>n?n+t:n;for(;--r>=0;)e.push(r);return e}),gt:ht(function(e,t,n){var r=0>n?n+t:n;for(;t>++r;)e.push(r);return e})}},o.pseudos.nth=o.pseudos.eq;for(n in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})o.pseudos[n]=ft(n);for(n in{submit:!0,reset:!0})o.pseudos[n]=dt(n);function gt(){}gt.prototype=o.filters=o.pseudos,o.setFilters=new gt;function mt(e,t){var n,r,i,a,s,l,u,c=k[e+" "];if(c)return t?0:c.slice(0);s=e,l=[],u=o.preFilter;while(s){(!n||(r=X.exec(s)))&&(r&&(s=s.slice(r[0].length)||s),l.push(i=[])),n=!1,(r=U.exec(s))&&(n=r.shift(),i.push({value:n,type:r[0].replace(z," ")}),s=s.slice(n.length));for(a in o.filter)!(r=Q[a].exec(s))||u[a]&&!(r=u[a](r))||(n=r.shift(),i.push({value:n,type:a,matches:r}),s=s.slice(n.length));if(!n)break}return t?s.length:s?at.error(e):k(e,l).slice(0)}function yt(e){var t=0,n=e.length,r="";for(;n>t;t++)r+=e[t].value;return r}function vt(e,t,n){var r=t.dir,o=n&&"parentNode"===r,a=C++;return t.first?function(t,n,i){while(t=t[r])if(1===t.nodeType||o)return e(t,n,i)}:function(t,n,s){var l,u,c,p=T+" "+a;if(s){while(t=t[r])if((1===t.nodeType||o)&&e(t,n,s))return!0}else while(t=t[r])if(1===t.nodeType||o)if(c=t[b]||(t[b]={}),(u=c[r])&&u[0]===p){if((l=u[1])===!0||l===i)return l===!0}else if(u=c[r]=[p],u[1]=e(t,n,s)||i,u[1]===!0)return!0}}function bt(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function xt(e,t,n,r,i){var o,a=[],s=0,l=e.length,u=null!=t;for(;l>s;s++)(o=e[s])&&(!n||n(o,r,i))&&(a.push(o),u&&t.push(s));return a}function wt(e,t,n,r,i,o){return r&&!r[b]&&(r=wt(r)),i&&!i[b]&&(i=wt(i,o)),lt(function(o,a,s,l){var u,c,p,f=[],d=[],h=a.length,g=o||Nt(t||"*",s.nodeType?[s]:s,[]),m=!e||!o&&t?g:xt(g,f,e,s,l),y=n?i||(o?e:h||r)?[]:a:m;if(n&&n(m,y,s,l),r){u=xt(y,d),r(u,[],s,l),c=u.length;while(c--)(p=u[c])&&(y[d[c]]=!(m[d[c]]=p))}if(o){if(i||e){if(i){u=[],c=y.length;while(c--)(p=y[c])&&u.push(m[c]=p);i(null,y=[],u,l)}c=y.length;while(c--)(p=y[c])&&(u=i?F.call(o,p):f[c])>-1&&(o[u]=!(a[u]=p))}}else y=xt(y===a?y.splice(h,y.length):y),i?i(null,a,y,l):M.apply(a,y)})}function Tt(e){var t,n,r,i=e.length,a=o.relative[e[0].type],s=a||o.relative[" "],l=a?1:0,c=vt(function(e){return e===t},s,!0),p=vt(function(e){return F.call(t,e)>-1},s,!0),f=[function(e,n,r){return!a&&(r||n!==u)||((t=n).nodeType?c(e,n,r):p(e,n,r))}];for(;i>l;l++)if(n=o.relative[e[l].type])f=[vt(bt(f),n)];else{if(n=o.filter[e[l].type].apply(null,e[l].matches),n[b]){for(r=++l;i>r;r++)if(o.relative[e[r].type])break;return wt(l>1&&bt(f),l>1&&yt(e.slice(0,l-1).concat({value:" "===e[l-2].type?"*":""})).replace(z,"$1"),n,r>l&&Tt(e.slice(l,r)),i>r&&Tt(e=e.slice(r)),i>r&&yt(e))}f.push(n)}return bt(f)}function Ct(e,t){var n=0,r=t.length>0,a=e.length>0,s=function(s,l,c,p,d){var h,g,m,y=[],v=0,b="0",x=s&&[],w=null!=d,C=u,N=s||a&&o.find.TAG("*",d&&l.parentNode||l),k=T+=null==C?1:Math.random()||.1;for(w&&(u=l!==f&&l,i=n);null!=(h=N[b]);b++){if(a&&h){g=0;while(m=e[g++])if(m(h,l,c)){p.push(h);break}w&&(T=k,i=++n)}r&&((h=!m&&h)&&v--,s&&x.push(h))}if(v+=b,r&&b!==v){g=0;while(m=t[g++])m(x,y,l,c);if(s){if(v>0)while(b--)x[b]||y[b]||(y[b]=q.call(p));y=xt(y)}M.apply(p,y),w&&!s&&y.length>0&&v+t.length>1&&at.uniqueSort(p)}return w&&(T=k,u=C),x};return r?lt(s):s}l=at.compile=function(e,t){var n,r=[],i=[],o=E[e+" "];if(!o){t||(t=mt(e)),n=t.length;while(n--)o=Tt(t[n]),o[b]?r.push(o):i.push(o);o=E(e,Ct(i,r))}return o};function Nt(e,t,n){var r=0,i=t.length;for(;i>r;r++)at(e,t[r],n);return n}function kt(e,t,n,i){var a,s,u,c,p,f=mt(e);if(!i&&1===f.length){if(s=f[0]=f[0].slice(0),s.length>2&&"ID"===(u=s[0]).type&&r.getById&&9===t.nodeType&&h&&o.relative[s[1].type]){if(t=(o.find.ID(u.matches[0].replace(rt,it),t)||[])[0],!t)return n;e=e.slice(s.shift().value.length)}a=Q.needsContext.test(e)?0:s.length;while(a--){if(u=s[a],o.relative[c=u.type])break;if((p=o.find[c])&&(i=p(u.matches[0].replace(rt,it),V.test(s[0].type)&&t.parentNode||t))){if(s.splice(a,1),e=i.length&&yt(s),!e)return M.apply(n,i),n;break}}}return l(e,f)(i,t,!h,n,V.test(e)),n}r.sortStable=b.split("").sort(A).join("")===b,r.detectDuplicates=S,p(),r.sortDetached=ut(function(e){return 1&e.compareDocumentPosition(f.createElement("div"))}),ut(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||ct("type|href|height|width",function(e,n,r){return r?t:e.getAttribute(n,"type"===n.toLowerCase()?1:2)}),r.attributes&&ut(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||ct("value",function(e,n,r){return r||"input"!==e.nodeName.toLowerCase()?t:e.defaultValue}),ut(function(e){return null==e.getAttribute("disabled")})||ct(B,function(e,n,r){var i;return r?t:(i=e.getAttributeNode(n))&&i.specified?i.value:e[n]===!0?n.toLowerCase():null}),x.find=at,x.expr=at.selectors,x.expr[":"]=x.expr.pseudos,x.unique=at.uniqueSort,x.text=at.getText,x.isXMLDoc=at.isXML,x.contains=at.contains}(e);var O={};function F(e){var t=O[e]={};return x.each(e.match(T)||[],function(e,n){t[n]=!0}),t}x.Callbacks=function(e){e="string"==typeof e?O[e]||F(e):x.extend({},e);var n,r,i,o,a,s,l=[],u=!e.once&&[],c=function(t){for(r=e.memory&&t,i=!0,a=s||0,s=0,o=l.length,n=!0;l&&o>a;a++)if(l[a].apply(t[0],t[1])===!1&&e.stopOnFalse){r=!1;break}n=!1,l&&(u?u.length&&c(u.shift()):r?l=[]:p.disable())},p={add:function(){if(l){var t=l.length;(function i(t){x.each(t,function(t,n){var r=x.type(n);"function"===r?e.unique&&p.has(n)||l.push(n):n&&n.length&&"string"!==r&&i(n)})})(arguments),n?o=l.length:r&&(s=t,c(r))}return this},remove:function(){return l&&x.each(arguments,function(e,t){var r;while((r=x.inArray(t,l,r))>-1)l.splice(r,1),n&&(o>=r&&o--,a>=r&&a--)}),this},has:function(e){return e?x.inArray(e,l)>-1:!(!l||!l.length)},empty:function(){return l=[],o=0,this},disable:function(){return l=u=r=t,this},disabled:function(){return!l},lock:function(){return u=t,r||p.disable(),this},locked:function(){return!u},fireWith:function(e,t){return!l||i&&!u||(t=t||[],t=[e,t.slice?t.slice():t],n?u.push(t):c(t)),this},fire:function(){return p.fireWith(this,arguments),this},fired:function(){return!!i}};return p},x.extend({Deferred:function(e){var t=[["resolve","done",x.Callbacks("once memory"),"resolved"],["reject","fail",x.Callbacks("once memory"),"rejected"],["notify","progress",x.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return x.Deferred(function(n){x.each(t,function(t,o){var a=o[0],s=x.isFunction(e[t])&&e[t];i[o[1]](function(){var e=s&&s.apply(this,arguments);e&&x.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[a+"With"](this===r?n.promise():this,s?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?x.extend(e,r):r}},i={};return r.pipe=r.then,x.each(t,function(e,o){var a=o[2],s=o[3];r[o[1]]=a.add,s&&a.add(function(){n=s},t[1^e][2].disable,t[2][2].lock),i[o[0]]=function(){return i[o[0]+"With"](this===i?r:this,arguments),this},i[o[0]+"With"]=a.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t=0,n=g.call(arguments),r=n.length,i=1!==r||e&&x.isFunction(e.promise)?r:0,o=1===i?e:x.Deferred(),a=function(e,t,n){return function(r){t[e]=this,n[e]=arguments.length>1?g.call(arguments):r,n===s?o.notifyWith(t,n):--i||o.resolveWith(t,n)}},s,l,u;if(r>1)for(s=Array(r),l=Array(r),u=Array(r);r>t;t++)n[t]&&x.isFunction(n[t].promise)?n[t].promise().done(a(t,u,n)).fail(o.reject).progress(a(t,l,s)):--i;return i||o.resolveWith(u,n),o.promise()}}),x.support=function(t){var n,r,o,s,l,u,c,p,f,d=a.createElement("div");if(d.setAttribute("className","t"),d.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",n=d.getElementsByTagName("*")||[],r=d.getElementsByTagName("a")[0],!r||!r.style||!n.length)return t;s=a.createElement("select"),u=s.appendChild(a.createElement("option")),o=d.getElementsByTagName("input")[0],r.style.cssText="top:1px;float:left;opacity:.5",t.getSetAttribute="t"!==d.className,t.leadingWhitespace=3===d.firstChild.nodeType,t.tbody=!d.getElementsByTagName("tbody").length,t.htmlSerialize=!!d.getElementsByTagName("link").length,t.style=/top/.test(r.getAttribute("style")),t.hrefNormalized="/a"===r.getAttribute("href"),t.opacity=/^0.5/.test(r.style.opacity),t.cssFloat=!!r.style.cssFloat,t.checkOn=!!o.value,t.optSelected=u.selected,t.enctype=!!a.createElement("form").enctype,t.html5Clone="<:nav></:nav>"!==a.createElement("nav").cloneNode(!0).outerHTML,t.inlineBlockNeedsLayout=!1,t.shrinkWrapBlocks=!1,t.pixelPosition=!1,t.deleteExpando=!0,t.noCloneEvent=!0,t.reliableMarginRight=!0,t.boxSizingReliable=!0,o.checked=!0,t.noCloneChecked=o.cloneNode(!0).checked,s.disabled=!0,t.optDisabled=!u.disabled;try{delete d.test}catch(h){t.deleteExpando=!1}o=a.createElement("input"),o.setAttribute("value",""),t.input=""===o.getAttribute("value"),o.value="t",o.setAttribute("type","radio"),t.radioValue="t"===o.value,o.setAttribute("checked","t"),o.setAttribute("name","t"),l=a.createDocumentFragment(),l.appendChild(o),t.appendChecked=o.checked,t.checkClone=l.cloneNode(!0).cloneNode(!0).lastChild.checked,d.attachEvent&&(d.attachEvent("onclick",function(){t.noCloneEvent=!1}),d.cloneNode(!0).click());for(f in{submit:!0,change:!0,focusin:!0})d.setAttribute(c="on"+f,"t"),t[f+"Bubbles"]=c in e||d.attributes[c].expando===!1;d.style.backgroundClip="content-box",d.cloneNode(!0).style.backgroundClip="",t.clearCloneStyle="content-box"===d.style.backgroundClip;for(f in x(t))break;return t.ownLast="0"!==f,x(function(){var n,r,o,s="padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;",l=a.getElementsByTagName("body")[0];l&&(n=a.createElement("div"),n.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",l.appendChild(n).appendChild(d),d.innerHTML="<table><tr><td></td><td>t</td></tr></table>",o=d.getElementsByTagName("td"),o[0].style.cssText="padding:0;margin:0;border:0;display:none",p=0===o[0].offsetHeight,o[0].style.display="",o[1].style.display="none",t.reliableHiddenOffsets=p&&0===o[0].offsetHeight,d.innerHTML="",d.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",x.swap(l,null!=l.style.zoom?{zoom:1}:{},function(){t.boxSizing=4===d.offsetWidth}),e.getComputedStyle&&(t.pixelPosition="1%"!==(e.getComputedStyle(d,null)||{}).top,t.boxSizingReliable="4px"===(e.getComputedStyle(d,null)||{width:"4px"}).width,r=d.appendChild(a.createElement("div")),r.style.cssText=d.style.cssText=s,r.style.marginRight=r.style.width="0",d.style.width="1px",t.reliableMarginRight=!parseFloat((e.getComputedStyle(r,null)||{}).marginRight)),typeof d.style.zoom!==i&&(d.innerHTML="",d.style.cssText=s+"width:1px;padding:1px;display:inline;zoom:1",t.inlineBlockNeedsLayout=3===d.offsetWidth,d.style.display="block",d.innerHTML="<div></div>",d.firstChild.style.width="5px",t.shrinkWrapBlocks=3!==d.offsetWidth,t.inlineBlockNeedsLayout&&(l.style.zoom=1)),l.removeChild(n),n=d=o=r=null)}),n=s=l=u=r=o=null,t | ||
5 | }({});var B=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,P=/([A-Z])/g;function R(e,n,r,i){if(x.acceptData(e)){var o,a,s=x.expando,l=e.nodeType,u=l?x.cache:e,c=l?e[s]:e[s]&&s;if(c&&u[c]&&(i||u[c].data)||r!==t||"string"!=typeof n)return c||(c=l?e[s]=p.pop()||x.guid++:s),u[c]||(u[c]=l?{}:{toJSON:x.noop}),("object"==typeof n||"function"==typeof n)&&(i?u[c]=x.extend(u[c],n):u[c].data=x.extend(u[c].data,n)),a=u[c],i||(a.data||(a.data={}),a=a.data),r!==t&&(a[x.camelCase(n)]=r),"string"==typeof n?(o=a[n],null==o&&(o=a[x.camelCase(n)])):o=a,o}}function W(e,t,n){if(x.acceptData(e)){var r,i,o=e.nodeType,a=o?x.cache:e,s=o?e[x.expando]:x.expando;if(a[s]){if(t&&(r=n?a[s]:a[s].data)){x.isArray(t)?t=t.concat(x.map(t,x.camelCase)):t in r?t=[t]:(t=x.camelCase(t),t=t in r?[t]:t.split(" ")),i=t.length;while(i--)delete r[t[i]];if(n?!I(r):!x.isEmptyObject(r))return}(n||(delete a[s].data,I(a[s])))&&(o?x.cleanData([e],!0):x.support.deleteExpando||a!=a.window?delete a[s]:a[s]=null)}}}x.extend({cache:{},noData:{applet:!0,embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(e){return e=e.nodeType?x.cache[e[x.expando]]:e[x.expando],!!e&&!I(e)},data:function(e,t,n){return R(e,t,n)},removeData:function(e,t){return W(e,t)},_data:function(e,t,n){return R(e,t,n,!0)},_removeData:function(e,t){return W(e,t,!0)},acceptData:function(e){if(e.nodeType&&1!==e.nodeType&&9!==e.nodeType)return!1;var t=e.nodeName&&x.noData[e.nodeName.toLowerCase()];return!t||t!==!0&&e.getAttribute("classid")===t}}),x.fn.extend({data:function(e,n){var r,i,o=null,a=0,s=this[0];if(e===t){if(this.length&&(o=x.data(s),1===s.nodeType&&!x._data(s,"parsedAttrs"))){for(r=s.attributes;r.length>a;a++)i=r[a].name,0===i.indexOf("data-")&&(i=x.camelCase(i.slice(5)),$(s,i,o[i]));x._data(s,"parsedAttrs",!0)}return o}return"object"==typeof e?this.each(function(){x.data(this,e)}):arguments.length>1?this.each(function(){x.data(this,e,n)}):s?$(s,e,x.data(s,e)):null},removeData:function(e){return this.each(function(){x.removeData(this,e)})}});function $(e,n,r){if(r===t&&1===e.nodeType){var i="data-"+n.replace(P,"-$1").toLowerCase();if(r=e.getAttribute(i),"string"==typeof r){try{r="true"===r?!0:"false"===r?!1:"null"===r?null:+r+""===r?+r:B.test(r)?x.parseJSON(r):r}catch(o){}x.data(e,n,r)}else r=t}return r}function I(e){var t;for(t in e)if(("data"!==t||!x.isEmptyObject(e[t]))&&"toJSON"!==t)return!1;return!0}x.extend({queue:function(e,n,r){var i;return e?(n=(n||"fx")+"queue",i=x._data(e,n),r&&(!i||x.isArray(r)?i=x._data(e,n,x.makeArray(r)):i.push(r)),i||[]):t},dequeue:function(e,t){t=t||"fx";var n=x.queue(e,t),r=n.length,i=n.shift(),o=x._queueHooks(e,t),a=function(){x.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return x._data(e,n)||x._data(e,n,{empty:x.Callbacks("once memory").add(function(){x._removeData(e,t+"queue"),x._removeData(e,n)})})}}),x.fn.extend({queue:function(e,n){var r=2;return"string"!=typeof e&&(n=e,e="fx",r--),r>arguments.length?x.queue(this[0],e):n===t?this:this.each(function(){var t=x.queue(this,e,n);x._queueHooks(this,e),"fx"===e&&"inprogress"!==t[0]&&x.dequeue(this,e)})},dequeue:function(e){return this.each(function(){x.dequeue(this,e)})},delay:function(e,t){return e=x.fx?x.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,n){var r,i=1,o=x.Deferred(),a=this,s=this.length,l=function(){--i||o.resolveWith(a,[a])};"string"!=typeof e&&(n=e,e=t),e=e||"fx";while(s--)r=x._data(a[s],e+"queueHooks"),r&&r.empty&&(i++,r.empty.add(l));return l(),o.promise(n)}});var z,X,U=/[\t\r\n\f]/g,V=/\r/g,Y=/^(?:input|select|textarea|button|object)$/i,J=/^(?:a|area)$/i,G=/^(?:checked|selected)$/i,Q=x.support.getSetAttribute,K=x.support.input;x.fn.extend({attr:function(e,t){return x.access(this,x.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){x.removeAttr(this,e)})},prop:function(e,t){return x.access(this,x.prop,e,t,arguments.length>1)},removeProp:function(e){return e=x.propFix[e]||e,this.each(function(){try{this[e]=t,delete this[e]}catch(n){}})},addClass:function(e){var t,n,r,i,o,a=0,s=this.length,l="string"==typeof e&&e;if(x.isFunction(e))return this.each(function(t){x(this).addClass(e.call(this,t,this.className))});if(l)for(t=(e||"").match(T)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(U," "):" ")){o=0;while(i=t[o++])0>r.indexOf(" "+i+" ")&&(r+=i+" ");n.className=x.trim(r)}return this},removeClass:function(e){var t,n,r,i,o,a=0,s=this.length,l=0===arguments.length||"string"==typeof e&&e;if(x.isFunction(e))return this.each(function(t){x(this).removeClass(e.call(this,t,this.className))});if(l)for(t=(e||"").match(T)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(U," "):"")){o=0;while(i=t[o++])while(r.indexOf(" "+i+" ")>=0)r=r.replace(" "+i+" "," ");n.className=e?x.trim(r):""}return this},toggleClass:function(e,t){var n=typeof e;return"boolean"==typeof t&&"string"===n?t?this.addClass(e):this.removeClass(e):x.isFunction(e)?this.each(function(n){x(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if("string"===n){var t,r=0,o=x(this),a=e.match(T)||[];while(t=a[r++])o.hasClass(t)?o.removeClass(t):o.addClass(t)}else(n===i||"boolean"===n)&&(this.className&&x._data(this,"__className__",this.className),this.className=this.className||e===!1?"":x._data(this,"__className__")||"")})},hasClass:function(e){var t=" "+e+" ",n=0,r=this.length;for(;r>n;n++)if(1===this[n].nodeType&&(" "+this[n].className+" ").replace(U," ").indexOf(t)>=0)return!0;return!1},val:function(e){var n,r,i,o=this[0];{if(arguments.length)return i=x.isFunction(e),this.each(function(n){var o;1===this.nodeType&&(o=i?e.call(this,n,x(this).val()):e,null==o?o="":"number"==typeof o?o+="":x.isArray(o)&&(o=x.map(o,function(e){return null==e?"":e+""})),r=x.valHooks[this.type]||x.valHooks[this.nodeName.toLowerCase()],r&&"set"in r&&r.set(this,o,"value")!==t||(this.value=o))});if(o)return r=x.valHooks[o.type]||x.valHooks[o.nodeName.toLowerCase()],r&&"get"in r&&(n=r.get(o,"value"))!==t?n:(n=o.value,"string"==typeof n?n.replace(V,""):null==n?"":n)}}}),x.extend({valHooks:{option:{get:function(e){var t=x.find.attr(e,"value");return null!=t?t:e.text}},select:{get:function(e){var t,n,r=e.options,i=e.selectedIndex,o="select-one"===e.type||0>i,a=o?null:[],s=o?i+1:r.length,l=0>i?s:o?i:0;for(;s>l;l++)if(n=r[l],!(!n.selected&&l!==i||(x.support.optDisabled?n.disabled:null!==n.getAttribute("disabled"))||n.parentNode.disabled&&x.nodeName(n.parentNode,"optgroup"))){if(t=x(n).val(),o)return t;a.push(t)}return a},set:function(e,t){var n,r,i=e.options,o=x.makeArray(t),a=i.length;while(a--)r=i[a],(r.selected=x.inArray(x(r).val(),o)>=0)&&(n=!0);return n||(e.selectedIndex=-1),o}}},attr:function(e,n,r){var o,a,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return typeof e.getAttribute===i?x.prop(e,n,r):(1===s&&x.isXMLDoc(e)||(n=n.toLowerCase(),o=x.attrHooks[n]||(x.expr.match.bool.test(n)?X:z)),r===t?o&&"get"in o&&null!==(a=o.get(e,n))?a:(a=x.find.attr(e,n),null==a?t:a):null!==r?o&&"set"in o&&(a=o.set(e,r,n))!==t?a:(e.setAttribute(n,r+""),r):(x.removeAttr(e,n),t))},removeAttr:function(e,t){var n,r,i=0,o=t&&t.match(T);if(o&&1===e.nodeType)while(n=o[i++])r=x.propFix[n]||n,x.expr.match.bool.test(n)?K&&Q||!G.test(n)?e[r]=!1:e[x.camelCase("default-"+n)]=e[r]=!1:x.attr(e,n,""),e.removeAttribute(Q?n:r)},attrHooks:{type:{set:function(e,t){if(!x.support.radioValue&&"radio"===t&&x.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},propFix:{"for":"htmlFor","class":"className"},prop:function(e,n,r){var i,o,a,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return a=1!==s||!x.isXMLDoc(e),a&&(n=x.propFix[n]||n,o=x.propHooks[n]),r!==t?o&&"set"in o&&(i=o.set(e,r,n))!==t?i:e[n]=r:o&&"get"in o&&null!==(i=o.get(e,n))?i:e[n]},propHooks:{tabIndex:{get:function(e){var t=x.find.attr(e,"tabindex");return t?parseInt(t,10):Y.test(e.nodeName)||J.test(e.nodeName)&&e.href?0:-1}}}}),X={set:function(e,t,n){return t===!1?x.removeAttr(e,n):K&&Q||!G.test(n)?e.setAttribute(!Q&&x.propFix[n]||n,n):e[x.camelCase("default-"+n)]=e[n]=!0,n}},x.each(x.expr.match.bool.source.match(/\w+/g),function(e,n){var r=x.expr.attrHandle[n]||x.find.attr;x.expr.attrHandle[n]=K&&Q||!G.test(n)?function(e,n,i){var o=x.expr.attrHandle[n],a=i?t:(x.expr.attrHandle[n]=t)!=r(e,n,i)?n.toLowerCase():null;return x.expr.attrHandle[n]=o,a}:function(e,n,r){return r?t:e[x.camelCase("default-"+n)]?n.toLowerCase():null}}),K&&Q||(x.attrHooks.value={set:function(e,n,r){return x.nodeName(e,"input")?(e.defaultValue=n,t):z&&z.set(e,n,r)}}),Q||(z={set:function(e,n,r){var i=e.getAttributeNode(r);return i||e.setAttributeNode(i=e.ownerDocument.createAttribute(r)),i.value=n+="","value"===r||n===e.getAttribute(r)?n:t}},x.expr.attrHandle.id=x.expr.attrHandle.name=x.expr.attrHandle.coords=function(e,n,r){var i;return r?t:(i=e.getAttributeNode(n))&&""!==i.value?i.value:null},x.valHooks.button={get:function(e,n){var r=e.getAttributeNode(n);return r&&r.specified?r.value:t},set:z.set},x.attrHooks.contenteditable={set:function(e,t,n){z.set(e,""===t?!1:t,n)}},x.each(["width","height"],function(e,n){x.attrHooks[n]={set:function(e,r){return""===r?(e.setAttribute(n,"auto"),r):t}}})),x.support.hrefNormalized||x.each(["href","src"],function(e,t){x.propHooks[t]={get:function(e){return e.getAttribute(t,4)}}}),x.support.style||(x.attrHooks.style={get:function(e){return e.style.cssText||t},set:function(e,t){return e.style.cssText=t+""}}),x.support.optSelected||(x.propHooks.selected={get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null}}),x.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){x.propFix[this.toLowerCase()]=this}),x.support.enctype||(x.propFix.enctype="encoding"),x.each(["radio","checkbox"],function(){x.valHooks[this]={set:function(e,n){return x.isArray(n)?e.checked=x.inArray(x(e).val(),n)>=0:t}},x.support.checkOn||(x.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})});var Z=/^(?:input|select|textarea)$/i,et=/^key/,tt=/^(?:mouse|contextmenu)|click/,nt=/^(?:focusinfocus|focusoutblur)$/,rt=/^([^.]*)(?:\.(.+)|)$/;function it(){return!0}function ot(){return!1}function at(){try{return a.activeElement}catch(e){}}x.event={global:{},add:function(e,n,r,o,a){var s,l,u,c,p,f,d,h,g,m,y,v=x._data(e);if(v){r.handler&&(c=r,r=c.handler,a=c.selector),r.guid||(r.guid=x.guid++),(l=v.events)||(l=v.events={}),(f=v.handle)||(f=v.handle=function(e){return typeof x===i||e&&x.event.triggered===e.type?t:x.event.dispatch.apply(f.elem,arguments)},f.elem=e),n=(n||"").match(T)||[""],u=n.length;while(u--)s=rt.exec(n[u])||[],g=y=s[1],m=(s[2]||"").split(".").sort(),g&&(p=x.event.special[g]||{},g=(a?p.delegateType:p.bindType)||g,p=x.event.special[g]||{},d=x.extend({type:g,origType:y,data:o,handler:r,guid:r.guid,selector:a,needsContext:a&&x.expr.match.needsContext.test(a),namespace:m.join(".")},c),(h=l[g])||(h=l[g]=[],h.delegateCount=0,p.setup&&p.setup.call(e,o,m,f)!==!1||(e.addEventListener?e.addEventListener(g,f,!1):e.attachEvent&&e.attachEvent("on"+g,f))),p.add&&(p.add.call(e,d),d.handler.guid||(d.handler.guid=r.guid)),a?h.splice(h.delegateCount++,0,d):h.push(d),x.event.global[g]=!0);e=null}},remove:function(e,t,n,r,i){var o,a,s,l,u,c,p,f,d,h,g,m=x.hasData(e)&&x._data(e);if(m&&(c=m.events)){t=(t||"").match(T)||[""],u=t.length;while(u--)if(s=rt.exec(t[u])||[],d=g=s[1],h=(s[2]||"").split(".").sort(),d){p=x.event.special[d]||{},d=(r?p.delegateType:p.bindType)||d,f=c[d]||[],s=s[2]&&RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),l=o=f.length;while(o--)a=f[o],!i&&g!==a.origType||n&&n.guid!==a.guid||s&&!s.test(a.namespace)||r&&r!==a.selector&&("**"!==r||!a.selector)||(f.splice(o,1),a.selector&&f.delegateCount--,p.remove&&p.remove.call(e,a));l&&!f.length&&(p.teardown&&p.teardown.call(e,h,m.handle)!==!1||x.removeEvent(e,d,m.handle),delete c[d])}else for(d in c)x.event.remove(e,d+t[u],n,r,!0);x.isEmptyObject(c)&&(delete m.handle,x._removeData(e,"events"))}},trigger:function(n,r,i,o){var s,l,u,c,p,f,d,h=[i||a],g=v.call(n,"type")?n.type:n,m=v.call(n,"namespace")?n.namespace.split("."):[];if(u=f=i=i||a,3!==i.nodeType&&8!==i.nodeType&&!nt.test(g+x.event.triggered)&&(g.indexOf(".")>=0&&(m=g.split("."),g=m.shift(),m.sort()),l=0>g.indexOf(":")&&"on"+g,n=n[x.expando]?n:new x.Event(g,"object"==typeof n&&n),n.isTrigger=o?2:3,n.namespace=m.join("."),n.namespace_re=n.namespace?RegExp("(^|\\.)"+m.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,n.result=t,n.target||(n.target=i),r=null==r?[n]:x.makeArray(r,[n]),p=x.event.special[g]||{},o||!p.trigger||p.trigger.apply(i,r)!==!1)){if(!o&&!p.noBubble&&!x.isWindow(i)){for(c=p.delegateType||g,nt.test(c+g)||(u=u.parentNode);u;u=u.parentNode)h.push(u),f=u;f===(i.ownerDocument||a)&&h.push(f.defaultView||f.parentWindow||e)}d=0;while((u=h[d++])&&!n.isPropagationStopped())n.type=d>1?c:p.bindType||g,s=(x._data(u,"events")||{})[n.type]&&x._data(u,"handle"),s&&s.apply(u,r),s=l&&u[l],s&&x.acceptData(u)&&s.apply&&s.apply(u,r)===!1&&n.preventDefault();if(n.type=g,!o&&!n.isDefaultPrevented()&&(!p._default||p._default.apply(h.pop(),r)===!1)&&x.acceptData(i)&&l&&i[g]&&!x.isWindow(i)){f=i[l],f&&(i[l]=null),x.event.triggered=g;try{i[g]()}catch(y){}x.event.triggered=t,f&&(i[l]=f)}return n.result}},dispatch:function(e){e=x.event.fix(e);var n,r,i,o,a,s=[],l=g.call(arguments),u=(x._data(this,"events")||{})[e.type]||[],c=x.event.special[e.type]||{};if(l[0]=e,e.delegateTarget=this,!c.preDispatch||c.preDispatch.call(this,e)!==!1){s=x.event.handlers.call(this,e,u),n=0;while((o=s[n++])&&!e.isPropagationStopped()){e.currentTarget=o.elem,a=0;while((i=o.handlers[a++])&&!e.isImmediatePropagationStopped())(!e.namespace_re||e.namespace_re.test(i.namespace))&&(e.handleObj=i,e.data=i.data,r=((x.event.special[i.origType]||{}).handle||i.handler).apply(o.elem,l),r!==t&&(e.result=r)===!1&&(e.preventDefault(),e.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,e),e.result}},handlers:function(e,n){var r,i,o,a,s=[],l=n.delegateCount,u=e.target;if(l&&u.nodeType&&(!e.button||"click"!==e.type))for(;u!=this;u=u.parentNode||this)if(1===u.nodeType&&(u.disabled!==!0||"click"!==e.type)){for(o=[],a=0;l>a;a++)i=n[a],r=i.selector+" ",o[r]===t&&(o[r]=i.needsContext?x(r,this).index(u)>=0:x.find(r,this,null,[u]).length),o[r]&&o.push(i);o.length&&s.push({elem:u,handlers:o})}return n.length>l&&s.push({elem:this,handlers:n.slice(l)}),s},fix:function(e){if(e[x.expando])return e;var t,n,r,i=e.type,o=e,s=this.fixHooks[i];s||(this.fixHooks[i]=s=tt.test(i)?this.mouseHooks:et.test(i)?this.keyHooks:{}),r=s.props?this.props.concat(s.props):this.props,e=new x.Event(o),t=r.length;while(t--)n=r[t],e[n]=o[n];return e.target||(e.target=o.srcElement||a),3===e.target.nodeType&&(e.target=e.target.parentNode),e.metaKey=!!e.metaKey,s.filter?s.filter(e,o):e},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return null==e.which&&(e.which=null!=t.charCode?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,n){var r,i,o,s=n.button,l=n.fromElement;return null==e.pageX&&null!=n.clientX&&(i=e.target.ownerDocument||a,o=i.documentElement,r=i.body,e.pageX=n.clientX+(o&&o.scrollLeft||r&&r.scrollLeft||0)-(o&&o.clientLeft||r&&r.clientLeft||0),e.pageY=n.clientY+(o&&o.scrollTop||r&&r.scrollTop||0)-(o&&o.clientTop||r&&r.clientTop||0)),!e.relatedTarget&&l&&(e.relatedTarget=l===e.target?n.toElement:l),e.which||s===t||(e.which=1&s?1:2&s?3:4&s?2:0),e}},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==at()&&this.focus)try{return this.focus(),!1}catch(e){}},delegateType:"focusin"},blur:{trigger:function(){return this===at()&&this.blur?(this.blur(),!1):t},delegateType:"focusout"},click:{trigger:function(){return x.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):t},_default:function(e){return x.nodeName(e.target,"a")}},beforeunload:{postDispatch:function(e){e.result!==t&&(e.originalEvent.returnValue=e.result)}}},simulate:function(e,t,n,r){var i=x.extend(new x.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?x.event.trigger(i,null,t):x.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},x.removeEvent=a.removeEventListener?function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)}:function(e,t,n){var r="on"+t;e.detachEvent&&(typeof e[r]===i&&(e[r]=null),e.detachEvent(r,n))},x.Event=function(e,n){return this instanceof x.Event?(e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.returnValue===!1||e.getPreventDefault&&e.getPreventDefault()?it:ot):this.type=e,n&&x.extend(this,n),this.timeStamp=e&&e.timeStamp||x.now(),this[x.expando]=!0,t):new x.Event(e,n)},x.Event.prototype={isDefaultPrevented:ot,isPropagationStopped:ot,isImmediatePropagationStopped:ot,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=it,e&&(e.preventDefault?e.preventDefault():e.returnValue=!1)},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=it,e&&(e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=it,this.stopPropagation()}},x.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){x.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj;return(!i||i!==r&&!x.contains(r,i))&&(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),x.support.submitBubbles||(x.event.special.submit={setup:function(){return x.nodeName(this,"form")?!1:(x.event.add(this,"click._submit keypress._submit",function(e){var n=e.target,r=x.nodeName(n,"input")||x.nodeName(n,"button")?n.form:t;r&&!x._data(r,"submitBubbles")&&(x.event.add(r,"submit._submit",function(e){e._submit_bubble=!0}),x._data(r,"submitBubbles",!0))}),t)},postDispatch:function(e){e._submit_bubble&&(delete e._submit_bubble,this.parentNode&&!e.isTrigger&&x.event.simulate("submit",this.parentNode,e,!0))},teardown:function(){return x.nodeName(this,"form")?!1:(x.event.remove(this,"._submit"),t)}}),x.support.changeBubbles||(x.event.special.change={setup:function(){return Z.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(x.event.add(this,"propertychange._change",function(e){"checked"===e.originalEvent.propertyName&&(this._just_changed=!0)}),x.event.add(this,"click._change",function(e){this._just_changed&&!e.isTrigger&&(this._just_changed=!1),x.event.simulate("change",this,e,!0)})),!1):(x.event.add(this,"beforeactivate._change",function(e){var t=e.target;Z.test(t.nodeName)&&!x._data(t,"changeBubbles")&&(x.event.add(t,"change._change",function(e){!this.parentNode||e.isSimulated||e.isTrigger||x.event.simulate("change",this.parentNode,e,!0)}),x._data(t,"changeBubbles",!0))}),t)},handle:function(e){var n=e.target;return this!==n||e.isSimulated||e.isTrigger||"radio"!==n.type&&"checkbox"!==n.type?e.handleObj.handler.apply(this,arguments):t},teardown:function(){return x.event.remove(this,"._change"),!Z.test(this.nodeName)}}),x.support.focusinBubbles||x.each({focus:"focusin",blur:"focusout"},function(e,t){var n=0,r=function(e){x.event.simulate(t,e.target,x.event.fix(e),!0)};x.event.special[t]={setup:function(){0===n++&&a.addEventListener(e,r,!0)},teardown:function(){0===--n&&a.removeEventListener(e,r,!0)}}}),x.fn.extend({on:function(e,n,r,i,o){var a,s;if("object"==typeof e){"string"!=typeof n&&(r=r||n,n=t);for(a in e)this.on(a,n,r,e[a],o);return this}if(null==r&&null==i?(i=n,r=n=t):null==i&&("string"==typeof n?(i=r,r=t):(i=r,r=n,n=t)),i===!1)i=ot;else if(!i)return this;return 1===o&&(s=i,i=function(e){return x().off(e),s.apply(this,arguments)},i.guid=s.guid||(s.guid=x.guid++)),this.each(function(){x.event.add(this,e,i,r,n)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,n,r){var i,o;if(e&&e.preventDefault&&e.handleObj)return i=e.handleObj,x(e.delegateTarget).off(i.namespace?i.origType+"."+i.namespace:i.origType,i.selector,i.handler),this;if("object"==typeof e){for(o in e)this.off(o,n,e[o]);return this}return(n===!1||"function"==typeof n)&&(r=n,n=t),r===!1&&(r=ot),this.each(function(){x.event.remove(this,e,r,n)})},trigger:function(e,t){return this.each(function(){x.event.trigger(e,t,this)})},triggerHandler:function(e,n){var r=this[0];return r?x.event.trigger(e,n,r,!0):t}});var st=/^.[^:#\[\.,]*$/,lt=/^(?:parents|prev(?:Until|All))/,ut=x.expr.match.needsContext,ct={children:!0,contents:!0,next:!0,prev:!0};x.fn.extend({find:function(e){var t,n=[],r=this,i=r.length;if("string"!=typeof e)return this.pushStack(x(e).filter(function(){for(t=0;i>t;t++)if(x.contains(r[t],this))return!0}));for(t=0;i>t;t++)x.find(e,r[t],n);return n=this.pushStack(i>1?x.unique(n):n),n.selector=this.selector?this.selector+" "+e:e,n},has:function(e){var t,n=x(e,this),r=n.length;return this.filter(function(){for(t=0;r>t;t++)if(x.contains(this,n[t]))return!0})},not:function(e){return this.pushStack(ft(this,e||[],!0))},filter:function(e){return this.pushStack(ft(this,e||[],!1))},is:function(e){return!!ft(this,"string"==typeof e&&ut.test(e)?x(e):e||[],!1).length},closest:function(e,t){var n,r=0,i=this.length,o=[],a=ut.test(e)||"string"!=typeof e?x(e,t||this.context):0;for(;i>r;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(11>n.nodeType&&(a?a.index(n)>-1:1===n.nodeType&&x.find.matchesSelector(n,e))){n=o.push(n);break}return this.pushStack(o.length>1?x.unique(o):o)},index:function(e){return e?"string"==typeof e?x.inArray(this[0],x(e)):x.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){var n="string"==typeof e?x(e,t):x.makeArray(e&&e.nodeType?[e]:e),r=x.merge(this.get(),n);return this.pushStack(x.unique(r))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}});function pt(e,t){do e=e[t];while(e&&1!==e.nodeType);return e}x.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return x.dir(e,"parentNode")},parentsUntil:function(e,t,n){return x.dir(e,"parentNode",n)},next:function(e){return pt(e,"nextSibling")},prev:function(e){return pt(e,"previousSibling")},nextAll:function(e){return x.dir(e,"nextSibling")},prevAll:function(e){return x.dir(e,"previousSibling")},nextUntil:function(e,t,n){return x.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return x.dir(e,"previousSibling",n)},siblings:function(e){return x.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return x.sibling(e.firstChild)},contents:function(e){return x.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:x.merge([],e.childNodes)}},function(e,t){x.fn[e]=function(n,r){var i=x.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=x.filter(r,i)),this.length>1&&(ct[e]||(i=x.unique(i)),lt.test(e)&&(i=i.reverse())),this.pushStack(i)}}),x.extend({filter:function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?x.find.matchesSelector(r,e)?[r]:[]:x.find.matches(e,x.grep(t,function(e){return 1===e.nodeType}))},dir:function(e,n,r){var i=[],o=e[n];while(o&&9!==o.nodeType&&(r===t||1!==o.nodeType||!x(o).is(r)))1===o.nodeType&&i.push(o),o=o[n];return i},sibling:function(e,t){var n=[];for(;e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}});function ft(e,t,n){if(x.isFunction(t))return x.grep(e,function(e,r){return!!t.call(e,r,e)!==n});if(t.nodeType)return x.grep(e,function(e){return e===t!==n});if("string"==typeof t){if(st.test(t))return x.filter(t,e,n);t=x.filter(t,e)}return x.grep(e,function(e){return x.inArray(e,t)>=0!==n})}function dt(e){var t=ht.split("|"),n=e.createDocumentFragment();if(n.createElement)while(t.length)n.createElement(t.pop());return n}var ht="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",gt=/ jQuery\d+="(?:null|\d+)"/g,mt=RegExp("<(?:"+ht+")[\\s/>]","i"),yt=/^\s+/,vt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,bt=/<([\w:]+)/,xt=/<tbody/i,wt=/<|&#?\w+;/,Tt=/<(?:script|style|link)/i,Ct=/^(?:checkbox|radio)$/i,Nt=/checked\s*(?:[^=]|=\s*.checked.)/i,kt=/^$|\/(?:java|ecma)script/i,Et=/^true\/(.*)/,St=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,At={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:x.support.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]},jt=dt(a),Dt=jt.appendChild(a.createElement("div"));At.optgroup=At.option,At.tbody=At.tfoot=At.colgroup=At.caption=At.thead,At.th=At.td,x.fn.extend({text:function(e){return x.access(this,function(e){return e===t?x.text(this):this.empty().append((this[0]&&this[0].ownerDocument||a).createTextNode(e))},null,e,arguments.length)},append:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Lt(this,e);t.appendChild(e)}})},prepend:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Lt(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},remove:function(e,t){var n,r=e?x.filter(e,this):this,i=0;for(;null!=(n=r[i]);i++)t||1!==n.nodeType||x.cleanData(Ft(n)),n.parentNode&&(t&&x.contains(n.ownerDocument,n)&&_t(Ft(n,"script")),n.parentNode.removeChild(n));return this},empty:function(){var e,t=0;for(;null!=(e=this[t]);t++){1===e.nodeType&&x.cleanData(Ft(e,!1));while(e.firstChild)e.removeChild(e.firstChild);e.options&&x.nodeName(e,"select")&&(e.options.length=0)}return this},clone:function(e,t){return e=null==e?!1:e,t=null==t?e:t,this.map(function(){return x.clone(this,e,t)})},html:function(e){return x.access(this,function(e){var n=this[0]||{},r=0,i=this.length;if(e===t)return 1===n.nodeType?n.innerHTML.replace(gt,""):t;if(!("string"!=typeof e||Tt.test(e)||!x.support.htmlSerialize&&mt.test(e)||!x.support.leadingWhitespace&&yt.test(e)||At[(bt.exec(e)||["",""])[1].toLowerCase()])){e=e.replace(vt,"<$1></$2>");try{for(;i>r;r++)n=this[r]||{},1===n.nodeType&&(x.cleanData(Ft(n,!1)),n.innerHTML=e);n=0}catch(o){}}n&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var e=x.map(this,function(e){return[e.nextSibling,e.parentNode]}),t=0;return this.domManip(arguments,function(n){var r=e[t++],i=e[t++];i&&(r&&r.parentNode!==i&&(r=this.nextSibling),x(this).remove(),i.insertBefore(n,r))},!0),t?this:this.remove()},detach:function(e){return this.remove(e,!0)},domManip:function(e,t,n){e=d.apply([],e);var r,i,o,a,s,l,u=0,c=this.length,p=this,f=c-1,h=e[0],g=x.isFunction(h);if(g||!(1>=c||"string"!=typeof h||x.support.checkClone)&&Nt.test(h))return this.each(function(r){var i=p.eq(r);g&&(e[0]=h.call(this,r,i.html())),i.domManip(e,t,n)});if(c&&(l=x.buildFragment(e,this[0].ownerDocument,!1,!n&&this),r=l.firstChild,1===l.childNodes.length&&(l=r),r)){for(a=x.map(Ft(l,"script"),Ht),o=a.length;c>u;u++)i=l,u!==f&&(i=x.clone(i,!0,!0),o&&x.merge(a,Ft(i,"script"))),t.call(this[u],i,u);if(o)for(s=a[a.length-1].ownerDocument,x.map(a,qt),u=0;o>u;u++)i=a[u],kt.test(i.type||"")&&!x._data(i,"globalEval")&&x.contains(s,i)&&(i.src?x._evalUrl(i.src):x.globalEval((i.text||i.textContent||i.innerHTML||"").replace(St,"")));l=r=null}return this}});function Lt(e,t){return x.nodeName(e,"table")&&x.nodeName(1===t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function Ht(e){return e.type=(null!==x.find.attr(e,"type"))+"/"+e.type,e}function qt(e){var t=Et.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function _t(e,t){var n,r=0;for(;null!=(n=e[r]);r++)x._data(n,"globalEval",!t||x._data(t[r],"globalEval"))}function Mt(e,t){if(1===t.nodeType&&x.hasData(e)){var n,r,i,o=x._data(e),a=x._data(t,o),s=o.events;if(s){delete a.handle,a.events={};for(n in s)for(r=0,i=s[n].length;i>r;r++)x.event.add(t,n,s[n][r])}a.data&&(a.data=x.extend({},a.data))}}function Ot(e,t){var n,r,i;if(1===t.nodeType){if(n=t.nodeName.toLowerCase(),!x.support.noCloneEvent&&t[x.expando]){i=x._data(t);for(r in i.events)x.removeEvent(t,r,i.handle);t.removeAttribute(x.expando)}"script"===n&&t.text!==e.text?(Ht(t).text=e.text,qt(t)):"object"===n?(t.parentNode&&(t.outerHTML=e.outerHTML),x.support.html5Clone&&e.innerHTML&&!x.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML)):"input"===n&&Ct.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):"option"===n?t.defaultSelected=t.selected=e.defaultSelected:("input"===n||"textarea"===n)&&(t.defaultValue=e.defaultValue)}}x.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){x.fn[e]=function(e){var n,r=0,i=[],o=x(e),a=o.length-1;for(;a>=r;r++)n=r===a?this:this.clone(!0),x(o[r])[t](n),h.apply(i,n.get());return this.pushStack(i)}});function Ft(e,n){var r,o,a=0,s=typeof e.getElementsByTagName!==i?e.getElementsByTagName(n||"*"):typeof e.querySelectorAll!==i?e.querySelectorAll(n||"*"):t;if(!s)for(s=[],r=e.childNodes||e;null!=(o=r[a]);a++)!n||x.nodeName(o,n)?s.push(o):x.merge(s,Ft(o,n));return n===t||n&&x.nodeName(e,n)?x.merge([e],s):s}function Bt(e){Ct.test(e.type)&&(e.defaultChecked=e.checked)}x.extend({clone:function(e,t,n){var r,i,o,a,s,l=x.contains(e.ownerDocument,e);if(x.support.html5Clone||x.isXMLDoc(e)||!mt.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(Dt.innerHTML=e.outerHTML,Dt.removeChild(o=Dt.firstChild)),!(x.support.noCloneEvent&&x.support.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||x.isXMLDoc(e)))for(r=Ft(o),s=Ft(e),a=0;null!=(i=s[a]);++a)r[a]&&Ot(i,r[a]);if(t)if(n)for(s=s||Ft(e),r=r||Ft(o),a=0;null!=(i=s[a]);a++)Mt(i,r[a]);else Mt(e,o);return r=Ft(o,"script"),r.length>0&&_t(r,!l&&Ft(e,"script")),r=s=i=null,o},buildFragment:function(e,t,n,r){var i,o,a,s,l,u,c,p=e.length,f=dt(t),d=[],h=0;for(;p>h;h++)if(o=e[h],o||0===o)if("object"===x.type(o))x.merge(d,o.nodeType?[o]:o);else if(wt.test(o)){s=s||f.appendChild(t.createElement("div")),l=(bt.exec(o)||["",""])[1].toLowerCase(),c=At[l]||At._default,s.innerHTML=c[1]+o.replace(vt,"<$1></$2>")+c[2],i=c[0];while(i--)s=s.lastChild;if(!x.support.leadingWhitespace&&yt.test(o)&&d.push(t.createTextNode(yt.exec(o)[0])),!x.support.tbody){o="table"!==l||xt.test(o)?"<table>"!==c[1]||xt.test(o)?0:s:s.firstChild,i=o&&o.childNodes.length;while(i--)x.nodeName(u=o.childNodes[i],"tbody")&&!u.childNodes.length&&o.removeChild(u)}x.merge(d,s.childNodes),s.textContent="";while(s.firstChild)s.removeChild(s.firstChild);s=f.lastChild}else d.push(t.createTextNode(o));s&&f.removeChild(s),x.support.appendChecked||x.grep(Ft(d,"input"),Bt),h=0;while(o=d[h++])if((!r||-1===x.inArray(o,r))&&(a=x.contains(o.ownerDocument,o),s=Ft(f.appendChild(o),"script"),a&&_t(s),n)){i=0;while(o=s[i++])kt.test(o.type||"")&&n.push(o)}return s=null,f},cleanData:function(e,t){var n,r,o,a,s=0,l=x.expando,u=x.cache,c=x.support.deleteExpando,f=x.event.special;for(;null!=(n=e[s]);s++)if((t||x.acceptData(n))&&(o=n[l],a=o&&u[o])){if(a.events)for(r in a.events)f[r]?x.event.remove(n,r):x.removeEvent(n,r,a.handle); | ||
6 | u[o]&&(delete u[o],c?delete n[l]:typeof n.removeAttribute!==i?n.removeAttribute(l):n[l]=null,p.push(o))}},_evalUrl:function(e){return x.ajax({url:e,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})}}),x.fn.extend({wrapAll:function(e){if(x.isFunction(e))return this.each(function(t){x(this).wrapAll(e.call(this,t))});if(this[0]){var t=x(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstChild&&1===e.firstChild.nodeType)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return x.isFunction(e)?this.each(function(t){x(this).wrapInner(e.call(this,t))}):this.each(function(){var t=x(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=x.isFunction(e);return this.each(function(n){x(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){x.nodeName(this,"body")||x(this).replaceWith(this.childNodes)}).end()}});var Pt,Rt,Wt,$t=/alpha\([^)]*\)/i,It=/opacity\s*=\s*([^)]*)/,zt=/^(top|right|bottom|left)$/,Xt=/^(none|table(?!-c[ea]).+)/,Ut=/^margin/,Vt=RegExp("^("+w+")(.*)$","i"),Yt=RegExp("^("+w+")(?!px)[a-z%]+$","i"),Jt=RegExp("^([+-])=("+w+")","i"),Gt={BODY:"block"},Qt={position:"absolute",visibility:"hidden",display:"block"},Kt={letterSpacing:0,fontWeight:400},Zt=["Top","Right","Bottom","Left"],en=["Webkit","O","Moz","ms"];function tn(e,t){if(t in e)return t;var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=en.length;while(i--)if(t=en[i]+n,t in e)return t;return r}function nn(e,t){return e=t||e,"none"===x.css(e,"display")||!x.contains(e.ownerDocument,e)}function rn(e,t){var n,r,i,o=[],a=0,s=e.length;for(;s>a;a++)r=e[a],r.style&&(o[a]=x._data(r,"olddisplay"),n=r.style.display,t?(o[a]||"none"!==n||(r.style.display=""),""===r.style.display&&nn(r)&&(o[a]=x._data(r,"olddisplay",ln(r.nodeName)))):o[a]||(i=nn(r),(n&&"none"!==n||!i)&&x._data(r,"olddisplay",i?n:x.css(r,"display"))));for(a=0;s>a;a++)r=e[a],r.style&&(t&&"none"!==r.style.display&&""!==r.style.display||(r.style.display=t?o[a]||"":"none"));return e}x.fn.extend({css:function(e,n){return x.access(this,function(e,n,r){var i,o,a={},s=0;if(x.isArray(n)){for(o=Rt(e),i=n.length;i>s;s++)a[n[s]]=x.css(e,n[s],!1,o);return a}return r!==t?x.style(e,n,r):x.css(e,n)},e,n,arguments.length>1)},show:function(){return rn(this,!0)},hide:function(){return rn(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){nn(this)?x(this).show():x(this).hide()})}}),x.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Wt(e,"opacity");return""===n?"1":n}}}},cssNumber:{columnCount:!0,fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":x.support.cssFloat?"cssFloat":"styleFloat"},style:function(e,n,r,i){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var o,a,s,l=x.camelCase(n),u=e.style;if(n=x.cssProps[l]||(x.cssProps[l]=tn(u,l)),s=x.cssHooks[n]||x.cssHooks[l],r===t)return s&&"get"in s&&(o=s.get(e,!1,i))!==t?o:u[n];if(a=typeof r,"string"===a&&(o=Jt.exec(r))&&(r=(o[1]+1)*o[2]+parseFloat(x.css(e,n)),a="number"),!(null==r||"number"===a&&isNaN(r)||("number"!==a||x.cssNumber[l]||(r+="px"),x.support.clearCloneStyle||""!==r||0!==n.indexOf("background")||(u[n]="inherit"),s&&"set"in s&&(r=s.set(e,r,i))===t)))try{u[n]=r}catch(c){}}},css:function(e,n,r,i){var o,a,s,l=x.camelCase(n);return n=x.cssProps[l]||(x.cssProps[l]=tn(e.style,l)),s=x.cssHooks[n]||x.cssHooks[l],s&&"get"in s&&(a=s.get(e,!0,r)),a===t&&(a=Wt(e,n,i)),"normal"===a&&n in Kt&&(a=Kt[n]),""===r||r?(o=parseFloat(a),r===!0||x.isNumeric(o)?o||0:a):a}}),e.getComputedStyle?(Rt=function(t){return e.getComputedStyle(t,null)},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),l=s?s.getPropertyValue(n)||s[n]:t,u=e.style;return s&&(""!==l||x.contains(e.ownerDocument,e)||(l=x.style(e,n)),Yt.test(l)&&Ut.test(n)&&(i=u.width,o=u.minWidth,a=u.maxWidth,u.minWidth=u.maxWidth=u.width=l,l=s.width,u.width=i,u.minWidth=o,u.maxWidth=a)),l}):a.documentElement.currentStyle&&(Rt=function(e){return e.currentStyle},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),l=s?s[n]:t,u=e.style;return null==l&&u&&u[n]&&(l=u[n]),Yt.test(l)&&!zt.test(n)&&(i=u.left,o=e.runtimeStyle,a=o&&o.left,a&&(o.left=e.currentStyle.left),u.left="fontSize"===n?"1em":l,l=u.pixelLeft+"px",u.left=i,a&&(o.left=a)),""===l?"auto":l});function on(e,t,n){var r=Vt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function an(e,t,n,r,i){var o=n===(r?"border":"content")?4:"width"===t?1:0,a=0;for(;4>o;o+=2)"margin"===n&&(a+=x.css(e,n+Zt[o],!0,i)),r?("content"===n&&(a-=x.css(e,"padding"+Zt[o],!0,i)),"margin"!==n&&(a-=x.css(e,"border"+Zt[o]+"Width",!0,i))):(a+=x.css(e,"padding"+Zt[o],!0,i),"padding"!==n&&(a+=x.css(e,"border"+Zt[o]+"Width",!0,i)));return a}function sn(e,t,n){var r=!0,i="width"===t?e.offsetWidth:e.offsetHeight,o=Rt(e),a=x.support.boxSizing&&"border-box"===x.css(e,"boxSizing",!1,o);if(0>=i||null==i){if(i=Wt(e,t,o),(0>i||null==i)&&(i=e.style[t]),Yt.test(i))return i;r=a&&(x.support.boxSizingReliable||i===e.style[t]),i=parseFloat(i)||0}return i+an(e,t,n||(a?"border":"content"),r,o)+"px"}function ln(e){var t=a,n=Gt[e];return n||(n=un(e,t),"none"!==n&&n||(Pt=(Pt||x("<iframe frameborder='0' width='0' height='0'/>").css("cssText","display:block !important")).appendTo(t.documentElement),t=(Pt[0].contentWindow||Pt[0].contentDocument).document,t.write("<!doctype html><html><body>"),t.close(),n=un(e,t),Pt.detach()),Gt[e]=n),n}function un(e,t){var n=x(t.createElement(e)).appendTo(t.body),r=x.css(n[0],"display");return n.remove(),r}x.each(["height","width"],function(e,n){x.cssHooks[n]={get:function(e,r,i){return r?0===e.offsetWidth&&Xt.test(x.css(e,"display"))?x.swap(e,Qt,function(){return sn(e,n,i)}):sn(e,n,i):t},set:function(e,t,r){var i=r&&Rt(e);return on(e,t,r?an(e,n,r,x.support.boxSizing&&"border-box"===x.css(e,"boxSizing",!1,i),i):0)}}}),x.support.opacity||(x.cssHooks.opacity={get:function(e,t){return It.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,r=e.currentStyle,i=x.isNumeric(t)?"alpha(opacity="+100*t+")":"",o=r&&r.filter||n.filter||"";n.zoom=1,(t>=1||""===t)&&""===x.trim(o.replace($t,""))&&n.removeAttribute&&(n.removeAttribute("filter"),""===t||r&&!r.filter)||(n.filter=$t.test(o)?o.replace($t,i):o+" "+i)}}),x(function(){x.support.reliableMarginRight||(x.cssHooks.marginRight={get:function(e,n){return n?x.swap(e,{display:"inline-block"},Wt,[e,"marginRight"]):t}}),!x.support.pixelPosition&&x.fn.position&&x.each(["top","left"],function(e,n){x.cssHooks[n]={get:function(e,r){return r?(r=Wt(e,n),Yt.test(r)?x(e).position()[n]+"px":r):t}}})}),x.expr&&x.expr.filters&&(x.expr.filters.hidden=function(e){return 0>=e.offsetWidth&&0>=e.offsetHeight||!x.support.reliableHiddenOffsets&&"none"===(e.style&&e.style.display||x.css(e,"display"))},x.expr.filters.visible=function(e){return!x.expr.filters.hidden(e)}),x.each({margin:"",padding:"",border:"Width"},function(e,t){x.cssHooks[e+t]={expand:function(n){var r=0,i={},o="string"==typeof n?n.split(" "):[n];for(;4>r;r++)i[e+Zt[r]+t]=o[r]||o[r-2]||o[0];return i}},Ut.test(e)||(x.cssHooks[e+t].set=on)});var cn=/%20/g,pn=/\[\]$/,fn=/\r?\n/g,dn=/^(?:submit|button|image|reset|file)$/i,hn=/^(?:input|select|textarea|keygen)/i;x.fn.extend({serialize:function(){return x.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=x.prop(this,"elements");return e?x.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!x(this).is(":disabled")&&hn.test(this.nodeName)&&!dn.test(e)&&(this.checked||!Ct.test(e))}).map(function(e,t){var n=x(this).val();return null==n?null:x.isArray(n)?x.map(n,function(e){return{name:t.name,value:e.replace(fn,"\r\n")}}):{name:t.name,value:n.replace(fn,"\r\n")}}).get()}}),x.param=function(e,n){var r,i=[],o=function(e,t){t=x.isFunction(t)?t():null==t?"":t,i[i.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};if(n===t&&(n=x.ajaxSettings&&x.ajaxSettings.traditional),x.isArray(e)||e.jquery&&!x.isPlainObject(e))x.each(e,function(){o(this.name,this.value)});else for(r in e)gn(r,e[r],n,o);return i.join("&").replace(cn,"+")};function gn(e,t,n,r){var i;if(x.isArray(t))x.each(t,function(t,i){n||pn.test(e)?r(e,i):gn(e+"["+("object"==typeof i?t:"")+"]",i,n,r)});else if(n||"object"!==x.type(t))r(e,t);else for(i in t)gn(e+"["+i+"]",t[i],n,r)}x.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(e,t){x.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),x.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)},bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}});var mn,yn,vn=x.now(),bn=/\?/,xn=/#.*$/,wn=/([?&])_=[^&]*/,Tn=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Cn=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Nn=/^(?:GET|HEAD)$/,kn=/^\/\//,En=/^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,Sn=x.fn.load,An={},jn={},Dn="*/".concat("*");try{yn=o.href}catch(Ln){yn=a.createElement("a"),yn.href="",yn=yn.href}mn=En.exec(yn.toLowerCase())||[];function Hn(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(T)||[];if(x.isFunction(n))while(r=o[i++])"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function qn(e,n,r,i){var o={},a=e===jn;function s(l){var u;return o[l]=!0,x.each(e[l]||[],function(e,l){var c=l(n,r,i);return"string"!=typeof c||a||o[c]?a?!(u=c):t:(n.dataTypes.unshift(c),s(c),!1)}),u}return s(n.dataTypes[0])||!o["*"]&&s("*")}function _n(e,n){var r,i,o=x.ajaxSettings.flatOptions||{};for(i in n)n[i]!==t&&((o[i]?e:r||(r={}))[i]=n[i]);return r&&x.extend(!0,e,r),e}x.fn.load=function(e,n,r){if("string"!=typeof e&&Sn)return Sn.apply(this,arguments);var i,o,a,s=this,l=e.indexOf(" ");return l>=0&&(i=e.slice(l,e.length),e=e.slice(0,l)),x.isFunction(n)?(r=n,n=t):n&&"object"==typeof n&&(a="POST"),s.length>0&&x.ajax({url:e,type:a,dataType:"html",data:n}).done(function(e){o=arguments,s.html(i?x("<div>").append(x.parseHTML(e)).find(i):e)}).complete(r&&function(e,t){s.each(r,o||[e.responseText,t,e])}),this},x.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){x.fn[t]=function(e){return this.on(t,e)}}),x.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:yn,type:"GET",isLocal:Cn.test(mn[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Dn,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":x.parseJSON,"text xml":x.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?_n(_n(e,x.ajaxSettings),t):_n(x.ajaxSettings,e)},ajaxPrefilter:Hn(An),ajaxTransport:Hn(jn),ajax:function(e,n){"object"==typeof e&&(n=e,e=t),n=n||{};var r,i,o,a,s,l,u,c,p=x.ajaxSetup({},n),f=p.context||p,d=p.context&&(f.nodeType||f.jquery)?x(f):x.event,h=x.Deferred(),g=x.Callbacks("once memory"),m=p.statusCode||{},y={},v={},b=0,w="canceled",C={readyState:0,getResponseHeader:function(e){var t;if(2===b){if(!c){c={};while(t=Tn.exec(a))c[t[1].toLowerCase()]=t[2]}t=c[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return 2===b?a:null},setRequestHeader:function(e,t){var n=e.toLowerCase();return b||(e=v[n]=v[n]||e,y[e]=t),this},overrideMimeType:function(e){return b||(p.mimeType=e),this},statusCode:function(e){var t;if(e)if(2>b)for(t in e)m[t]=[m[t],e[t]];else C.always(e[C.status]);return this},abort:function(e){var t=e||w;return u&&u.abort(t),k(0,t),this}};if(h.promise(C).complete=g.add,C.success=C.done,C.error=C.fail,p.url=((e||p.url||yn)+"").replace(xn,"").replace(kn,mn[1]+"//"),p.type=n.method||n.type||p.method||p.type,p.dataTypes=x.trim(p.dataType||"*").toLowerCase().match(T)||[""],null==p.crossDomain&&(r=En.exec(p.url.toLowerCase()),p.crossDomain=!(!r||r[1]===mn[1]&&r[2]===mn[2]&&(r[3]||("http:"===r[1]?"80":"443"))===(mn[3]||("http:"===mn[1]?"80":"443")))),p.data&&p.processData&&"string"!=typeof p.data&&(p.data=x.param(p.data,p.traditional)),qn(An,p,n,C),2===b)return C;l=p.global,l&&0===x.active++&&x.event.trigger("ajaxStart"),p.type=p.type.toUpperCase(),p.hasContent=!Nn.test(p.type),o=p.url,p.hasContent||(p.data&&(o=p.url+=(bn.test(o)?"&":"?")+p.data,delete p.data),p.cache===!1&&(p.url=wn.test(o)?o.replace(wn,"$1_="+vn++):o+(bn.test(o)?"&":"?")+"_="+vn++)),p.ifModified&&(x.lastModified[o]&&C.setRequestHeader("If-Modified-Since",x.lastModified[o]),x.etag[o]&&C.setRequestHeader("If-None-Match",x.etag[o])),(p.data&&p.hasContent&&p.contentType!==!1||n.contentType)&&C.setRequestHeader("Content-Type",p.contentType),C.setRequestHeader("Accept",p.dataTypes[0]&&p.accepts[p.dataTypes[0]]?p.accepts[p.dataTypes[0]]+("*"!==p.dataTypes[0]?", "+Dn+"; q=0.01":""):p.accepts["*"]);for(i in p.headers)C.setRequestHeader(i,p.headers[i]);if(p.beforeSend&&(p.beforeSend.call(f,C,p)===!1||2===b))return C.abort();w="abort";for(i in{success:1,error:1,complete:1})C[i](p[i]);if(u=qn(jn,p,n,C)){C.readyState=1,l&&d.trigger("ajaxSend",[C,p]),p.async&&p.timeout>0&&(s=setTimeout(function(){C.abort("timeout")},p.timeout));try{b=1,u.send(y,k)}catch(N){if(!(2>b))throw N;k(-1,N)}}else k(-1,"No Transport");function k(e,n,r,i){var c,y,v,w,T,N=n;2!==b&&(b=2,s&&clearTimeout(s),u=t,a=i||"",C.readyState=e>0?4:0,c=e>=200&&300>e||304===e,r&&(w=Mn(p,C,r)),w=On(p,w,C,c),c?(p.ifModified&&(T=C.getResponseHeader("Last-Modified"),T&&(x.lastModified[o]=T),T=C.getResponseHeader("etag"),T&&(x.etag[o]=T)),204===e||"HEAD"===p.type?N="nocontent":304===e?N="notmodified":(N=w.state,y=w.data,v=w.error,c=!v)):(v=N,(e||!N)&&(N="error",0>e&&(e=0))),C.status=e,C.statusText=(n||N)+"",c?h.resolveWith(f,[y,N,C]):h.rejectWith(f,[C,N,v]),C.statusCode(m),m=t,l&&d.trigger(c?"ajaxSuccess":"ajaxError",[C,p,c?y:v]),g.fireWith(f,[C,N]),l&&(d.trigger("ajaxComplete",[C,p]),--x.active||x.event.trigger("ajaxStop")))}return C},getJSON:function(e,t,n){return x.get(e,t,n,"json")},getScript:function(e,n){return x.get(e,t,n,"script")}}),x.each(["get","post"],function(e,n){x[n]=function(e,r,i,o){return x.isFunction(r)&&(o=o||i,i=r,r=t),x.ajax({url:e,type:n,dataType:o,data:r,success:i})}});function Mn(e,n,r){var i,o,a,s,l=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),o===t&&(o=e.mimeType||n.getResponseHeader("Content-Type"));if(o)for(s in l)if(l[s]&&l[s].test(o)){u.unshift(s);break}if(u[0]in r)a=u[0];else{for(s in r){if(!u[0]||e.converters[s+" "+u[0]]){a=s;break}i||(i=s)}a=a||i}return a?(a!==u[0]&&u.unshift(a),r[a]):t}function On(e,t,n,r){var i,o,a,s,l,u={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)u[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!l&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),l=o,o=c.shift())if("*"===o)o=l;else if("*"!==l&&l!==o){if(a=u[l+" "+o]||u["* "+o],!a)for(i in u)if(s=i.split(" "),s[1]===o&&(a=u[l+" "+s[0]]||u["* "+s[0]])){a===!0?a=u[i]:u[i]!==!0&&(o=s[0],c.unshift(s[1]));break}if(a!==!0)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(p){return{state:"parsererror",error:a?p:"No conversion from "+l+" to "+o}}}return{state:"success",data:t}}x.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(e){return x.globalEval(e),e}}}),x.ajaxPrefilter("script",function(e){e.cache===t&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),x.ajaxTransport("script",function(e){if(e.crossDomain){var n,r=a.head||x("head")[0]||a.documentElement;return{send:function(t,i){n=a.createElement("script"),n.async=!0,e.scriptCharset&&(n.charset=e.scriptCharset),n.src=e.url,n.onload=n.onreadystatechange=function(e,t){(t||!n.readyState||/loaded|complete/.test(n.readyState))&&(n.onload=n.onreadystatechange=null,n.parentNode&&n.parentNode.removeChild(n),n=null,t||i(200,"success"))},r.insertBefore(n,r.firstChild)},abort:function(){n&&n.onload(t,!0)}}}});var Fn=[],Bn=/(=)\?(?=&|$)|\?\?/;x.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Fn.pop()||x.expando+"_"+vn++;return this[e]=!0,e}}),x.ajaxPrefilter("json jsonp",function(n,r,i){var o,a,s,l=n.jsonp!==!1&&(Bn.test(n.url)?"url":"string"==typeof n.data&&!(n.contentType||"").indexOf("application/x-www-form-urlencoded")&&Bn.test(n.data)&&"data");return l||"jsonp"===n.dataTypes[0]?(o=n.jsonpCallback=x.isFunction(n.jsonpCallback)?n.jsonpCallback():n.jsonpCallback,l?n[l]=n[l].replace(Bn,"$1"+o):n.jsonp!==!1&&(n.url+=(bn.test(n.url)?"&":"?")+n.jsonp+"="+o),n.converters["script json"]=function(){return s||x.error(o+" was not called"),s[0]},n.dataTypes[0]="json",a=e[o],e[o]=function(){s=arguments},i.always(function(){e[o]=a,n[o]&&(n.jsonpCallback=r.jsonpCallback,Fn.push(o)),s&&x.isFunction(a)&&a(s[0]),s=a=t}),"script"):t});var Pn,Rn,Wn=0,$n=e.ActiveXObject&&function(){var e;for(e in Pn)Pn[e](t,!0)};function In(){try{return new e.XMLHttpRequest}catch(t){}}function zn(){try{return new e.ActiveXObject("Microsoft.XMLHTTP")}catch(t){}}x.ajaxSettings.xhr=e.ActiveXObject?function(){return!this.isLocal&&In()||zn()}:In,Rn=x.ajaxSettings.xhr(),x.support.cors=!!Rn&&"withCredentials"in Rn,Rn=x.support.ajax=!!Rn,Rn&&x.ajaxTransport(function(n){if(!n.crossDomain||x.support.cors){var r;return{send:function(i,o){var a,s,l=n.xhr();if(n.username?l.open(n.type,n.url,n.async,n.username,n.password):l.open(n.type,n.url,n.async),n.xhrFields)for(s in n.xhrFields)l[s]=n.xhrFields[s];n.mimeType&&l.overrideMimeType&&l.overrideMimeType(n.mimeType),n.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest");try{for(s in i)l.setRequestHeader(s,i[s])}catch(u){}l.send(n.hasContent&&n.data||null),r=function(e,i){var s,u,c,p;try{if(r&&(i||4===l.readyState))if(r=t,a&&(l.onreadystatechange=x.noop,$n&&delete Pn[a]),i)4!==l.readyState&&l.abort();else{p={},s=l.status,u=l.getAllResponseHeaders(),"string"==typeof l.responseText&&(p.text=l.responseText);try{c=l.statusText}catch(f){c=""}s||!n.isLocal||n.crossDomain?1223===s&&(s=204):s=p.text?200:404}}catch(d){i||o(-1,d)}p&&o(s,c,p,u)},n.async?4===l.readyState?setTimeout(r):(a=++Wn,$n&&(Pn||(Pn={},x(e).unload($n)),Pn[a]=r),l.onreadystatechange=r):r()},abort:function(){r&&r(t,!0)}}}});var Xn,Un,Vn=/^(?:toggle|show|hide)$/,Yn=RegExp("^(?:([+-])=|)("+w+")([a-z%]*)$","i"),Jn=/queueHooks$/,Gn=[nr],Qn={"*":[function(e,t){var n=this.createTween(e,t),r=n.cur(),i=Yn.exec(t),o=i&&i[3]||(x.cssNumber[e]?"":"px"),a=(x.cssNumber[e]||"px"!==o&&+r)&&Yn.exec(x.css(n.elem,e)),s=1,l=20;if(a&&a[3]!==o){o=o||a[3],i=i||[],a=+r||1;do s=s||".5",a/=s,x.style(n.elem,e,a+o);while(s!==(s=n.cur()/r)&&1!==s&&--l)}return i&&(a=n.start=+a||+r||0,n.unit=o,n.end=i[1]?a+(i[1]+1)*i[2]:+i[2]),n}]};function Kn(){return setTimeout(function(){Xn=t}),Xn=x.now()}function Zn(e,t,n){var r,i=(Qn[t]||[]).concat(Qn["*"]),o=0,a=i.length;for(;a>o;o++)if(r=i[o].call(n,t,e))return r}function er(e,t,n){var r,i,o=0,a=Gn.length,s=x.Deferred().always(function(){delete l.elem}),l=function(){if(i)return!1;var t=Xn||Kn(),n=Math.max(0,u.startTime+u.duration-t),r=n/u.duration||0,o=1-r,a=0,l=u.tweens.length;for(;l>a;a++)u.tweens[a].run(o);return s.notifyWith(e,[u,o,n]),1>o&&l?n:(s.resolveWith(e,[u]),!1)},u=s.promise({elem:e,props:x.extend({},t),opts:x.extend(!0,{specialEasing:{}},n),originalProperties:t,originalOptions:n,startTime:Xn||Kn(),duration:n.duration,tweens:[],createTween:function(t,n){var r=x.Tween(e,u.opts,t,n,u.opts.specialEasing[t]||u.opts.easing);return u.tweens.push(r),r},stop:function(t){var n=0,r=t?u.tweens.length:0;if(i)return this;for(i=!0;r>n;n++)u.tweens[n].run(1);return t?s.resolveWith(e,[u,t]):s.rejectWith(e,[u,t]),this}}),c=u.props;for(tr(c,u.opts.specialEasing);a>o;o++)if(r=Gn[o].call(u,e,c,u.opts))return r;return x.map(c,Zn,u),x.isFunction(u.opts.start)&&u.opts.start.call(e,u),x.fx.timer(x.extend(l,{elem:e,anim:u,queue:u.opts.queue})),u.progress(u.opts.progress).done(u.opts.done,u.opts.complete).fail(u.opts.fail).always(u.opts.always)}function tr(e,t){var n,r,i,o,a;for(n in e)if(r=x.camelCase(n),i=t[r],o=e[n],x.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),a=x.cssHooks[r],a&&"expand"in a){o=a.expand(o),delete e[r];for(n in o)n in e||(e[n]=o[n],t[n]=i)}else t[r]=i}x.Animation=x.extend(er,{tweener:function(e,t){x.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");var n,r=0,i=e.length;for(;i>r;r++)n=e[r],Qn[n]=Qn[n]||[],Qn[n].unshift(t)},prefilter:function(e,t){t?Gn.unshift(e):Gn.push(e)}});function nr(e,t,n){var r,i,o,a,s,l,u=this,c={},p=e.style,f=e.nodeType&&nn(e),d=x._data(e,"fxshow");n.queue||(s=x._queueHooks(e,"fx"),null==s.unqueued&&(s.unqueued=0,l=s.empty.fire,s.empty.fire=function(){s.unqueued||l()}),s.unqueued++,u.always(function(){u.always(function(){s.unqueued--,x.queue(e,"fx").length||s.empty.fire()})})),1===e.nodeType&&("height"in t||"width"in t)&&(n.overflow=[p.overflow,p.overflowX,p.overflowY],"inline"===x.css(e,"display")&&"none"===x.css(e,"float")&&(x.support.inlineBlockNeedsLayout&&"inline"!==ln(e.nodeName)?p.zoom=1:p.display="inline-block")),n.overflow&&(p.overflow="hidden",x.support.shrinkWrapBlocks||u.always(function(){p.overflow=n.overflow[0],p.overflowX=n.overflow[1],p.overflowY=n.overflow[2]}));for(r in t)if(i=t[r],Vn.exec(i)){if(delete t[r],o=o||"toggle"===i,i===(f?"hide":"show"))continue;c[r]=d&&d[r]||x.style(e,r)}if(!x.isEmptyObject(c)){d?"hidden"in d&&(f=d.hidden):d=x._data(e,"fxshow",{}),o&&(d.hidden=!f),f?x(e).show():u.done(function(){x(e).hide()}),u.done(function(){var t;x._removeData(e,"fxshow");for(t in c)x.style(e,t,c[t])});for(r in c)a=Zn(f?d[r]:0,r,u),r in d||(d[r]=a.start,f&&(a.end=a.start,a.start="width"===r||"height"===r?1:0))}}function rr(e,t,n,r,i){return new rr.prototype.init(e,t,n,r,i)}x.Tween=rr,rr.prototype={constructor:rr,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||"swing",this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(x.cssNumber[n]?"":"px")},cur:function(){var e=rr.propHooks[this.prop];return e&&e.get?e.get(this):rr.propHooks._default.get(this)},run:function(e){var t,n=rr.propHooks[this.prop];return this.pos=t=this.options.duration?x.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):rr.propHooks._default.set(this),this}},rr.prototype.init.prototype=rr.prototype,rr.propHooks={_default:{get:function(e){var t;return null==e.elem[e.prop]||e.elem.style&&null!=e.elem.style[e.prop]?(t=x.css(e.elem,e.prop,""),t&&"auto"!==t?t:0):e.elem[e.prop]},set:function(e){x.fx.step[e.prop]?x.fx.step[e.prop](e):e.elem.style&&(null!=e.elem.style[x.cssProps[e.prop]]||x.cssHooks[e.prop])?x.style(e.elem,e.prop,e.now+e.unit):e.elem[e.prop]=e.now}}},rr.propHooks.scrollTop=rr.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},x.each(["toggle","show","hide"],function(e,t){var n=x.fn[t];x.fn[t]=function(e,r,i){return null==e||"boolean"==typeof e?n.apply(this,arguments):this.animate(ir(t,!0),e,r,i)}}),x.fn.extend({fadeTo:function(e,t,n,r){return this.filter(nn).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=x.isEmptyObject(e),o=x.speed(t,n,r),a=function(){var t=er(this,x.extend({},e),o);(i||x._data(this,"finish"))&&t.stop(!0)};return a.finish=a,i||o.queue===!1?this.each(a):this.queue(o.queue,a)},stop:function(e,n,r){var i=function(e){var t=e.stop;delete e.stop,t(r)};return"string"!=typeof e&&(r=n,n=e,e=t),n&&e!==!1&&this.queue(e||"fx",[]),this.each(function(){var t=!0,n=null!=e&&e+"queueHooks",o=x.timers,a=x._data(this);if(n)a[n]&&a[n].stop&&i(a[n]);else for(n in a)a[n]&&a[n].stop&&Jn.test(n)&&i(a[n]);for(n=o.length;n--;)o[n].elem!==this||null!=e&&o[n].queue!==e||(o[n].anim.stop(r),t=!1,o.splice(n,1));(t||!r)&&x.dequeue(this,e)})},finish:function(e){return e!==!1&&(e=e||"fx"),this.each(function(){var t,n=x._data(this),r=n[e+"queue"],i=n[e+"queueHooks"],o=x.timers,a=r?r.length:0;for(n.finish=!0,x.queue(this,e,[]),i&&i.stop&&i.stop.call(this,!0),t=o.length;t--;)o[t].elem===this&&o[t].queue===e&&(o[t].anim.stop(!0),o.splice(t,1));for(t=0;a>t;t++)r[t]&&r[t].finish&&r[t].finish.call(this);delete n.finish})}});function ir(e,t){var n,r={height:e},i=0;for(t=t?1:0;4>i;i+=2-t)n=Zt[i],r["margin"+n]=r["padding"+n]=e;return t&&(r.opacity=r.width=e),r}x.each({slideDown:ir("show"),slideUp:ir("hide"),slideToggle:ir("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){x.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),x.speed=function(e,t,n){var r=e&&"object"==typeof e?x.extend({},e):{complete:n||!n&&t||x.isFunction(e)&&e,duration:e,easing:n&&t||t&&!x.isFunction(t)&&t};return r.duration=x.fx.off?0:"number"==typeof r.duration?r.duration:r.duration in x.fx.speeds?x.fx.speeds[r.duration]:x.fx.speeds._default,(null==r.queue||r.queue===!0)&&(r.queue="fx"),r.old=r.complete,r.complete=function(){x.isFunction(r.old)&&r.old.call(this),r.queue&&x.dequeue(this,r.queue)},r},x.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2}},x.timers=[],x.fx=rr.prototype.init,x.fx.tick=function(){var e,n=x.timers,r=0;for(Xn=x.now();n.length>r;r++)e=n[r],e()||n[r]!==e||n.splice(r--,1);n.length||x.fx.stop(),Xn=t},x.fx.timer=function(e){e()&&x.timers.push(e)&&x.fx.start()},x.fx.interval=13,x.fx.start=function(){Un||(Un=setInterval(x.fx.tick,x.fx.interval))},x.fx.stop=function(){clearInterval(Un),Un=null},x.fx.speeds={slow:600,fast:200,_default:400},x.fx.step={},x.expr&&x.expr.filters&&(x.expr.filters.animated=function(e){return x.grep(x.timers,function(t){return e===t.elem}).length}),x.fn.offset=function(e){if(arguments.length)return e===t?this:this.each(function(t){x.offset.setOffset(this,e,t)});var n,r,o={top:0,left:0},a=this[0],s=a&&a.ownerDocument;if(s)return n=s.documentElement,x.contains(n,a)?(typeof a.getBoundingClientRect!==i&&(o=a.getBoundingClientRect()),r=or(s),{top:o.top+(r.pageYOffset||n.scrollTop)-(n.clientTop||0),left:o.left+(r.pageXOffset||n.scrollLeft)-(n.clientLeft||0)}):o},x.offset={setOffset:function(e,t,n){var r=x.css(e,"position");"static"===r&&(e.style.position="relative");var i=x(e),o=i.offset(),a=x.css(e,"top"),s=x.css(e,"left"),l=("absolute"===r||"fixed"===r)&&x.inArray("auto",[a,s])>-1,u={},c={},p,f;l?(c=i.position(),p=c.top,f=c.left):(p=parseFloat(a)||0,f=parseFloat(s)||0),x.isFunction(t)&&(t=t.call(e,n,o)),null!=t.top&&(u.top=t.top-o.top+p),null!=t.left&&(u.left=t.left-o.left+f),"using"in t?t.using.call(e,u):i.css(u)}},x.fn.extend({position:function(){if(this[0]){var e,t,n={top:0,left:0},r=this[0];return"fixed"===x.css(r,"position")?t=r.getBoundingClientRect():(e=this.offsetParent(),t=this.offset(),x.nodeName(e[0],"html")||(n=e.offset()),n.top+=x.css(e[0],"borderTopWidth",!0),n.left+=x.css(e[0],"borderLeftWidth",!0)),{top:t.top-n.top-x.css(r,"marginTop",!0),left:t.left-n.left-x.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||s;while(e&&!x.nodeName(e,"html")&&"static"===x.css(e,"position"))e=e.offsetParent;return e||s})}}),x.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,n){var r=/Y/.test(n);x.fn[e]=function(i){return x.access(this,function(e,i,o){var a=or(e);return o===t?a?n in a?a[n]:a.document.documentElement[i]:e[i]:(a?a.scrollTo(r?x(a).scrollLeft():o,r?o:x(a).scrollTop()):e[i]=o,t)},e,i,arguments.length,null)}});function or(e){return x.isWindow(e)?e:9===e.nodeType?e.defaultView||e.parentWindow:!1}x.each({Height:"height",Width:"width"},function(e,n){x.each({padding:"inner"+e,content:n,"":"outer"+e},function(r,i){x.fn[i]=function(i,o){var a=arguments.length&&(r||"boolean"!=typeof i),s=r||(i===!0||o===!0?"margin":"border");return x.access(this,function(n,r,i){var o;return x.isWindow(n)?n.document.documentElement["client"+e]:9===n.nodeType?(o=n.documentElement,Math.max(n.body["scroll"+e],o["scroll"+e],n.body["offset"+e],o["offset"+e],o["client"+e])):i===t?x.css(n,r,s):x.style(n,r,i,s)},n,a?i:t,a,null)}})}),x.fn.size=function(){return this.length},x.fn.andSelf=x.fn.addBack,"object"==typeof module&&module&&"object"==typeof module.exports?module.exports=x:(e.jQuery=e.$=x,"function"==typeof define&&define.amd&&define("jquery",[],function(){return x}))})(window); | ||
diff --git a/Blocks/countdown/js/jquery.knob.min.js b/Blocks/countdown/js/jquery.knob.min.js new file mode 100644 index 0000000..103fa51 --- /dev/null +++ b/Blocks/countdown/js/jquery.knob.min.js | |||
@@ -0,0 +1,15 @@ | |||
1 | /*!jQuery Knob*/ | ||
2 | /** | ||
3 | * Downward compatible, touchable dial | ||
4 | * | ||
5 | * Version: 1.2.0 (15/07/2012) | ||
6 | * Requires: jQuery v1.7+ | ||
7 | * | ||
8 | * Copyright (c) 2012 Anthony Terrien | ||
9 | * Under MIT and GPL licenses: | ||
10 | * http://www.opensource.org/licenses/mit-license.php | ||
11 | * http://www.gnu.org/licenses/gpl.html | ||
12 | * | ||
13 | * Thanks to vor, eskimoblood, spiffistan, FabrizioC | ||
14 | */ | ||
15 | (function(f){var g,m,n,k=Math.max,l=Math.min;g={};g.d=f(document);g.t=function(a){return a.originalEvent.touches.length-1};m=function(){var a=this;this.cv=this.v=this.g=this.i=this.$=this.o=null;this.h=this.w=this.y=this.x=0;this.c=this.$c=null;this.t=0;this.isInit=!1;this.rH=this.eH=this.cH=this.dH=this.pColor=this.fgColor=null;this.scale=1;this.relativeHeight=this.relativeWidth=this.relative=!1;this.$div=null;this.run=function(){var b=function(b,d){for(var e in d)a.o[e]=d[e];a.init();a._configure()._draw()}; if(!this.$.data("kontroled")){this.$.data("kontroled",!0);this.extend();this.o=f.extend({min:this.$.data("min")||0,max:this.$.data("max")||100,stopper:!0,readOnly:this.$.data("readonly")||"readonly"==this.$.attr("readonly"),cursor:!0===this.$.data("cursor")&&30||this.$.data("cursor")||0,thickness:this.$.data("thickness")&&Math.max(Math.min(this.$.data("thickness"),1),0.01)||0.35,lineCap:this.$.data("linecap")||"butt",width:this.$.data("width")||200,height:this.$.data("height")||200,displayInput:null== this.$.data("displayinput")||this.$.data("displayinput"),displayPrevious:this.$.data("displayprevious"),fgColor:this.$.data("fgcolor")||"#87CEEB",inputColor:this.$.data("inputcolor"),font:this.$.data("font")||"Arial",fontWeight:this.$.data("font-weight")||"bold",inline:!1,step:this.$.data("step")||1,draw:null,change:null,cancel:null,release:null,error:null},this.o);this.o.inputColor||(this.o.inputColor=this.o.fgColor);this.$.is("fieldset")?(this.v={},this.i=this.$.find("input"),this.i.each(function(b){var d= f(this);a.i[b]=d;a.v[b]=d.val();d.bind("change",function(){var e={};e[b]=d.val();a.val(e)})}),this.$.find("legend").remove()):(this.i=this.$,this.v=this.$.val(),""==this.v&&(this.v=this.o.min),this.$.bind("change",function(){a.val(a._validate(a.$.val()))}));!this.o.displayInput&&this.$.hide();this.$c=f(document.createElement("canvas"));"undefined"!==typeof G_vmlCanvasManager&&G_vmlCanvasManager.initElement(this.$c[0]);if(this.c=this.$c[0].getContext?this.$c[0].getContext("2d"):null)return this.scale= (window.devicePixelRatio||1)/(this.c.webkitBackingStorePixelRatio||this.c.mozBackingStorePixelRatio||this.c.msBackingStorePixelRatio||this.c.oBackingStorePixelRatio||this.c.backingStorePixelRatio||1),this.relativeWidth=0!==this.o.width%1&&this.o.width.indexOf("%"),this.relativeHeight=0!==this.o.height%1&&this.o.height.indexOf("%"),this.relative=this.relativeWidth||this.relativeHeight,this.$div=f('<div style="'+(this.o.inline?"display:inline;text-align:center;":"")+'"></div>'),this.$.wrap(this.$div).before(this.$c), this.$div=this.$.parent(),this._carve(),this.v instanceof Object?(this.cv={},this.copy(this.v,this.cv)):this.cv=this.v,this.$.bind("configure",b).parent().bind("configure",b),this._listen()._configure()._xy().init(),this.isInit=!0,this._draw(),this;this.o.error&&this.o.error()}};this._carve=function(){if(this.relative){var a=this.relativeWidth?this.$div.parent().width()*parseInt(this.o.width)/100:this.$div.parent().width(),c=this.relativeHeight?this.$div.parent().height()*parseInt(this.o.height)/ 100:this.$div.parent().height();this.w=this.h=Math.min(a,c)}else this.w=this.o.width,this.h=this.o.height;this.$div.css({width:this.w+"px",height:this.h+"px"});this.$c.attr({width:this.w,height:this.h});1!==this.scale&&(this.$c[0].width*=this.scale,this.$c[0].height*=this.scale,this.$c.width(this.w),this.$c.height(this.h));return this};this._draw=function(){var b=!0;a.g=a.c;a.clear();a.dH&&(b=a.dH());!1!==b&&a.draw()};this._touch=function(b){var c=function(b){b=a.xy2val(b.originalEvent.touches[a.t].pageX, b.originalEvent.touches[a.t].pageY);b==a.cv||a.cH&&!1===a.cH(b)||(a.change(a._validate(b)),a._draw())};this.t=g.t(b);c(b);g.d.bind("touchmove.k",c).bind("touchend.k",function(){g.d.unbind("touchmove.k touchend.k");a.rH&&!1===a.rH(a.cv)||a.val(a.cv)});return this};this._mouse=function(b){var c=function(b){b=a.xy2val(b.pageX,b.pageY);b==a.cv||a.cH&&!1===a.cH(b)||(a.change(a._validate(b)),a._draw())};c(b);g.d.bind("mousemove.k",c).bind("keyup.k",function(b){27===b.keyCode&&(g.d.unbind("mouseup.k mousemove.k keyup.k"), a.eH&&!1===a.eH()||a.cancel())}).bind("mouseup.k",function(b){g.d.unbind("mousemove.k mouseup.k keyup.k");a.rH&&!1===a.rH(a.cv)||a.val(a.cv)});return this};this._xy=function(){var a=this.$c.offset();this.x=a.left;this.y=a.top;return this};this._listen=function(){this.o.readOnly?this.$.attr("readonly","readonly"):(this.$c.bind("mousedown",function(b){b.preventDefault();a._xy()._mouse(b)}).bind("touchstart",function(b){b.preventDefault();a._xy()._touch(b)}),this.listen());this.relative&&f(window).resize(function(){a._carve().init(); a._draw()});return this};this._configure=function(){this.o.draw&&(this.dH=this.o.draw);this.o.change&&(this.cH=this.o.change);this.o.cancel&&(this.eH=this.o.cancel);this.o.release&&(this.rH=this.o.release);this.o.displayPrevious?(this.pColor=this.h2rgba(this.o.fgColor,"0.4"),this.fgColor=this.h2rgba(this.o.fgColor,"0.6")):this.fgColor=this.o.fgColor;return this};this._clear=function(){this.$c[0].width=this.$c[0].width};this._validate=function(a){return~~((0>a?-0.5:0.5)+a/this.o.step)*this.o.step}; this.listen=function(){};this.extend=function(){};this.init=function(){};this.change=function(a){};this.val=function(a){};this.xy2val=function(a,c){};this.draw=function(){};this.clear=function(){this._clear()};this.h2rgba=function(a,c){var d;a=a.substring(1,7);d=[parseInt(a.substring(0,2),16),parseInt(a.substring(2,4),16),parseInt(a.substring(4,6),16)];return"rgba("+d[0]+","+d[1]+","+d[2]+","+c+")"};this.copy=function(a,c){for(var d in a)c[d]=a[d]}};n=function(){m.call(this);this.w2=this.cursorExt= this.lineWidth=this.radius=this.xy=this.startAngle=null;this.PI2=2*Math.PI;this.extend=function(){this.o=f.extend({bgColor:this.$.data("bgcolor")||"#EEEEEE",angleOffset:this.$.data("angleoffset")||0,angleArc:this.$.data("anglearc")||360,inline:!0},this.o)};this.val=function(a){if(null!=a)this.v=this.cv=this.o.stopper?k(l(a,this.o.max),this.o.min):a,this.$.val(this.v),this._draw();else return this.v};this.xy2val=function(a,b){var c;c=Math.atan2(a-(this.x+this.w2),-(b-this.y-this.w2))-this.angleOffset; this.angleArc!=this.PI2&&0>c&&-0.5<c?c=0:0>c&&(c+=this.PI2);c=~~(0.5+c*(this.o.max-this.o.min)/this.angleArc)+this.o.min;this.o.stopper&&(c=k(l(c,this.o.max),this.o.min));return c};this.listen=function(){var a=this,b=function(b){b.preventDefault();var c=b.originalEvent;b=c.detail||c.wheelDeltaX;c=c.detail||c.wheelDeltaY;b=parseInt(a.$.val())+(0<b||0<c?a.o.step:0>b||0>c?-a.o.step:0);a.cH&&!1===a.cH(b)||a.val(b)},c,d,e=1,g={37:-a.o.step,38:a.o.step,39:a.o.step,40:-a.o.step};this.$.bind("keydown",function(b){var h= b.keyCode;96<=h&&105>=h&&(h=b.keyCode=h-48);c=parseInt(String.fromCharCode(h));isNaN(c)&&(13!==h&&8!==h&&9!==h&&189!==h&&b.preventDefault(),-1<f.inArray(h,[37,38,39,40])&&(b.preventDefault(),b=parseInt(a.$.val())+g[h]*e,a.o.stopper&&(b=k(l(b,a.o.max),a.o.min)),a.change(b),a._draw(),d=window.setTimeout(function(){e*=2},30)))}).bind("keyup",function(b){isNaN(c)?d&&(window.clearTimeout(d),d=null,e=1,a.val(a.$.val())):a.$.val()>a.o.max&&a.$.val(a.o.max)||a.$.val()<a.o.min&&a.$.val(a.o.min)});this.$c.bind("mousewheel DOMMouseScroll", b);this.$.bind("mousewheel DOMMouseScroll",b)};this.init=function(){if(this.v<this.o.min||this.v>this.o.max)this.v=this.o.min;this.$.val(this.v);this.w2=this.w/2;this.cursorExt=this.o.cursor/100;this.xy=this.w2*this.scale;this.lineWidth=this.xy*this.o.thickness;this.lineCap=this.o.lineCap;this.radius=this.xy-this.lineWidth/2;this.o.angleOffset&&(this.o.angleOffset=isNaN(this.o.angleOffset)?0:this.o.angleOffset);this.o.angleArc&&(this.o.angleArc=isNaN(this.o.angleArc)?this.PI2:this.o.angleArc);this.angleOffset= this.o.angleOffset*Math.PI/180;this.angleArc=this.o.angleArc*Math.PI/180;this.startAngle=1.5*Math.PI+this.angleOffset;this.endAngle=1.5*Math.PI+this.angleOffset+this.angleArc;var a=k(String(Math.abs(this.o.max)).length,String(Math.abs(this.o.min)).length,2)+2;this.o.displayInput&&this.i.css({width:(this.w/2+4>>0)+"px",height:(this.w/3>>0)+"px",position:"absolute","vertical-align":"middle","margin-top":(this.w/3>>0)+"px","margin-left":"-"+(3*this.w/4+2>>0)+"px",border:0,background:"none",font:this.o.fontWeight+ " "+(this.w/a>>0)+"px "+this.o.font,"text-align":"center",color:this.o.inputColor||this.o.fgColor,padding:"0px","-webkit-appearance":"none"})||this.i.css({width:"0px",visibility:"hidden"})};this.change=function(a){this.cv=a;this.$.val(a)};this.angle=function(a){return(a-this.o.min)*this.angleArc/(this.o.max-this.o.min)};this.draw=function(){var a=this.g,b=this.angle(this.cv),c=this.startAngle,b=c+b,d,e;d=1;a.lineWidth=this.lineWidth;a.lineCap=this.lineCap;this.o.cursor&&(c=b-this.cursorExt)&&(b+= this.cursorExt);a.beginPath();a.strokeStyle=this.o.bgColor;a.arc(this.xy,this.xy,this.radius,this.endAngle,this.startAngle,!0);a.stroke();this.o.displayPrevious&&(e=this.startAngle+this.angle(this.v),d=this.startAngle,this.o.cursor&&(d=e-this.cursorExt)&&(e+=this.cursorExt),a.beginPath(),a.strokeStyle=this.pColor,a.arc(this.xy,this.xy,this.radius,d,e,!1),a.stroke(),d=this.cv==this.v);a.beginPath();a.strokeStyle=d?this.o.fgColor:this.fgColor;a.arc(this.xy,this.xy,this.radius,c,b,!1);a.stroke()};this.cancel= function(){this.val(this.v)}};f.fn.dial=f.fn.knob=function(a){return this.each(function(){var b=new n;b.o=a;b.$=f(this);b.run()}).parent()}})(jQuery); \ No newline at end of file | ||
diff --git a/Blocks/countdown/js/jquery.min.js b/Blocks/countdown/js/jquery.min.js new file mode 100644 index 0000000..7c24308 --- /dev/null +++ b/Blocks/countdown/js/jquery.min.js | |||
@@ -0,0 +1,154 @@ | |||
1 | /*! | ||
2 | * jQuery JavaScript Library v1.4.2 | ||
3 | * http://jquery.com/ | ||
4 | * | ||
5 | * Copyright 2010, John Resig | ||
6 | * Dual licensed under the MIT or GPL Version 2 licenses. | ||
7 | * http://jquery.org/license | ||
8 | * | ||
9 | * Includes Sizzle.js | ||
10 | * http://sizzlejs.com/ | ||
11 | * Copyright 2010, The Dojo Foundation | ||
12 | * Released under the MIT, BSD, and GPL Licenses. | ||
13 | * | ||
14 | * Date: Sat Feb 13 22:33:48 2010 -0500 | ||
15 | */ | ||
16 | (function(A,w){function ma(){if(!c.isReady){try{s.documentElement.doScroll("left")}catch(a){setTimeout(ma,1);return}c.ready()}}function Qa(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)}function X(a,b,d,f,e,j){var i=a.length;if(typeof b==="object"){for(var o in b)X(a,o,b[o],f,e,d);return a}if(d!==w){f=!j&&f&&c.isFunction(d);for(o=0;o<i;o++)e(a[o],b,f?d.call(a[o],o,e(a[o],b)):d,j);return a}return i? | ||
17 | e(a[0],b):w}function J(){return(new Date).getTime()}function Y(){return false}function Z(){return true}function na(a,b,d){d[0].type=a;return c.event.handle.apply(b,d)}function oa(a){var b,d=[],f=[],e=arguments,j,i,o,k,n,r;i=c.data(this,"events");if(!(a.liveFired===this||!i||!i.live||a.button&&a.type==="click")){a.liveFired=this;var u=i.live.slice(0);for(k=0;k<u.length;k++){i=u[k];i.origType.replace(O,"")===a.type?f.push(i.selector):u.splice(k--,1)}j=c(a.target).closest(f,a.currentTarget);n=0;for(r= | ||
18 | j.length;n<r;n++)for(k=0;k<u.length;k++){i=u[k];if(j[n].selector===i.selector){o=j[n].elem;f=null;if(i.preType==="mouseenter"||i.preType==="mouseleave")f=c(a.relatedTarget).closest(i.selector)[0];if(!f||f!==o)d.push({elem:o,handleObj:i})}}n=0;for(r=d.length;n<r;n++){j=d[n];a.currentTarget=j.elem;a.data=j.handleObj.data;a.handleObj=j.handleObj;if(j.handleObj.origHandler.apply(j.elem,e)===false){b=false;break}}return b}}function pa(a,b){return"live."+(a&&a!=="*"?a+".":"")+b.replace(/\./g,"`").replace(/ /g, | ||
19 | "&")}function qa(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function ra(a,b){var d=0;b.each(function(){if(this.nodeName===(a[d]&&a[d].nodeName)){var f=c.data(a[d++]),e=c.data(this,f);if(f=f&&f.events){delete e.handle;e.events={};for(var j in f)for(var i in f[j])c.event.add(this,j,f[j][i],f[j][i].data)}}})}function sa(a,b,d){var f,e,j;b=b&&b[0]?b[0].ownerDocument||b[0]:s;if(a.length===1&&typeof a[0]==="string"&&a[0].length<512&&b===s&&!ta.test(a[0])&&(c.support.checkClone||!ua.test(a[0]))){e= | ||
20 | true;if(j=c.fragments[a[0]])if(j!==1)f=j}if(!f){f=b.createDocumentFragment();c.clean(a,b,f,d)}if(e)c.fragments[a[0]]=j?f:1;return{fragment:f,cacheable:e}}function K(a,b){var d={};c.each(va.concat.apply([],va.slice(0,b)),function(){d[this]=a});return d}function wa(a){return"scrollTo"in a&&a.document?a:a.nodeType===9?a.defaultView||a.parentWindow:false}var c=function(a,b){return new c.fn.init(a,b)},Ra=A.jQuery,Sa=A.$,s=A.document,T,Ta=/^[^<]*(<[\w\W]+>)[^>]*$|^#([\w-]+)$/,Ua=/^.[^:#\[\.,]*$/,Va=/\S/, | ||
21 | Wa=/^(\s|\u00A0)+|(\s|\u00A0)+$/g,Xa=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,P=navigator.userAgent,xa=false,Q=[],L,$=Object.prototype.toString,aa=Object.prototype.hasOwnProperty,ba=Array.prototype.push,R=Array.prototype.slice,ya=Array.prototype.indexOf;c.fn=c.prototype={init:function(a,b){var d,f;if(!a)return this;if(a.nodeType){this.context=this[0]=a;this.length=1;return this}if(a==="body"&&!b){this.context=s;this[0]=s.body;this.selector="body";this.length=1;return this}if(typeof a==="string")if((d=Ta.exec(a))&& | ||
22 | (d[1]||!b))if(d[1]){f=b?b.ownerDocument||b:s;if(a=Xa.exec(a))if(c.isPlainObject(b)){a=[s.createElement(a[1])];c.fn.attr.call(a,b,true)}else a=[f.createElement(a[1])];else{a=sa([d[1]],[f]);a=(a.cacheable?a.fragment.cloneNode(true):a.fragment).childNodes}return c.merge(this,a)}else{if(b=s.getElementById(d[2])){if(b.id!==d[2])return T.find(a);this.length=1;this[0]=b}this.context=s;this.selector=a;return this}else if(!b&&/^\w+$/.test(a)){this.selector=a;this.context=s;a=s.getElementsByTagName(a);return c.merge(this, | ||
23 | a)}else return!b||b.jquery?(b||T).find(a):c(b).find(a);else if(c.isFunction(a))return T.ready(a);if(a.selector!==w){this.selector=a.selector;this.context=a.context}return c.makeArray(a,this)},selector:"",jquery:"1.4.2",length:0,size:function(){return this.length},toArray:function(){return R.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this.slice(a)[0]:this[a]},pushStack:function(a,b,d){var f=c();c.isArray(a)?ba.apply(f,a):c.merge(f,a);f.prevObject=this;f.context=this.context;if(b=== | ||
24 | "find")f.selector=this.selector+(this.selector?" ":"")+d;else if(b)f.selector=this.selector+"."+b+"("+d+")";return f},each:function(a,b){return c.each(this,a,b)},ready:function(a){c.bindReady();if(c.isReady)a.call(s,c);else Q&&Q.push(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(R.apply(this,arguments),"slice",R.call(arguments).join(","))},map:function(a){return this.pushStack(c.map(this, | ||
25 | function(b,d){return a.call(b,d,b)}))},end:function(){return this.prevObject||c(null)},push:ba,sort:[].sort,splice:[].splice};c.fn.init.prototype=c.fn;c.extend=c.fn.extend=function(){var a=arguments[0]||{},b=1,d=arguments.length,f=false,e,j,i,o;if(typeof a==="boolean"){f=a;a=arguments[1]||{};b=2}if(typeof a!=="object"&&!c.isFunction(a))a={};if(d===b){a=this;--b}for(;b<d;b++)if((e=arguments[b])!=null)for(j in e){i=a[j];o=e[j];if(a!==o)if(f&&o&&(c.isPlainObject(o)||c.isArray(o))){i=i&&(c.isPlainObject(i)|| | ||
26 | c.isArray(i))?i:c.isArray(o)?[]:{};a[j]=c.extend(f,i,o)}else if(o!==w)a[j]=o}return a};c.extend({noConflict:function(a){A.$=Sa;if(a)A.jQuery=Ra;return c},isReady:false,ready:function(){if(!c.isReady){if(!s.body)return setTimeout(c.ready,13);c.isReady=true;if(Q){for(var a,b=0;a=Q[b++];)a.call(s,c);Q=null}c.fn.triggerHandler&&c(s).triggerHandler("ready")}},bindReady:function(){if(!xa){xa=true;if(s.readyState==="complete")return c.ready();if(s.addEventListener){s.addEventListener("DOMContentLoaded", | ||
27 | L,false);A.addEventListener("load",c.ready,false)}else if(s.attachEvent){s.attachEvent("onreadystatechange",L);A.attachEvent("onload",c.ready);var a=false;try{a=A.frameElement==null}catch(b){}s.documentElement.doScroll&&a&&ma()}}},isFunction:function(a){return $.call(a)==="[object Function]"},isArray:function(a){return $.call(a)==="[object Array]"},isPlainObject:function(a){if(!a||$.call(a)!=="[object Object]"||a.nodeType||a.setInterval)return false;if(a.constructor&&!aa.call(a,"constructor")&&!aa.call(a.constructor.prototype, | ||
28 | "isPrototypeOf"))return false;var b;for(b in a);return b===w||aa.call(a,b)},isEmptyObject:function(a){for(var b in a)return false;return true},error:function(a){throw a;},parseJSON:function(a){if(typeof a!=="string"||!a)return null;a=c.trim(a);if(/^[\],:{}\s]*$/.test(a.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return A.JSON&&A.JSON.parse?A.JSON.parse(a):(new Function("return "+ | ||
29 | a))();else c.error("Invalid JSON: "+a)},noop:function(){},globalEval:function(a){if(a&&Va.test(a)){var b=s.getElementsByTagName("head")[0]||s.documentElement,d=s.createElement("script");d.type="text/javascript";if(c.support.scriptEval)d.appendChild(s.createTextNode(a));else d.text=a;b.insertBefore(d,b.firstChild);b.removeChild(d)}},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,b,d){var f,e=0,j=a.length,i=j===w||c.isFunction(a);if(d)if(i)for(f in a){if(b.apply(a[f], | ||
30 | d)===false)break}else for(;e<j;){if(b.apply(a[e++],d)===false)break}else if(i)for(f in a){if(b.call(a[f],f,a[f])===false)break}else for(d=a[0];e<j&&b.call(d,e,d)!==false;d=a[++e]);return a},trim:function(a){return(a||"").replace(Wa,"")},makeArray:function(a,b){b=b||[];if(a!=null)a.length==null||typeof a==="string"||c.isFunction(a)||typeof a!=="function"&&a.setInterval?ba.call(b,a):c.merge(b,a);return b},inArray:function(a,b){if(b.indexOf)return b.indexOf(a);for(var d=0,f=b.length;d<f;d++)if(b[d]=== | ||
31 | a)return d;return-1},merge:function(a,b){var d=a.length,f=0;if(typeof b.length==="number")for(var e=b.length;f<e;f++)a[d++]=b[f];else for(;b[f]!==w;)a[d++]=b[f++];a.length=d;return a},grep:function(a,b,d){for(var f=[],e=0,j=a.length;e<j;e++)!d!==!b(a[e],e)&&f.push(a[e]);return f},map:function(a,b,d){for(var f=[],e,j=0,i=a.length;j<i;j++){e=b(a[j],j,d);if(e!=null)f[f.length]=e}return f.concat.apply([],f)},guid:1,proxy:function(a,b,d){if(arguments.length===2)if(typeof b==="string"){d=a;a=d[b];b=w}else if(b&& | ||
32 | !c.isFunction(b)){d=b;b=w}if(!b&&a)b=function(){return a.apply(d||this,arguments)};if(a)b.guid=a.guid=a.guid||b.guid||c.guid++;return b},uaMatch:function(a){a=a.toLowerCase();a=/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version)?[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||!/compatible/.test(a)&&/(mozilla)(?:.*? rv:([\w.]+))?/.exec(a)||[];return{browser:a[1]||"",version:a[2]||"0"}},browser:{}});P=c.uaMatch(P);if(P.browser){c.browser[P.browser]=true;c.browser.version=P.version}if(c.browser.webkit)c.browser.safari= | ||
33 | true;if(ya)c.inArray=function(a,b){return ya.call(b,a)};T=c(s);if(s.addEventListener)L=function(){s.removeEventListener("DOMContentLoaded",L,false);c.ready()};else if(s.attachEvent)L=function(){if(s.readyState==="complete"){s.detachEvent("onreadystatechange",L);c.ready()}};(function(){c.support={};var a=s.documentElement,b=s.createElement("script"),d=s.createElement("div"),f="script"+J();d.style.display="none";d.innerHTML=" <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>"; | ||
34 | var e=d.getElementsByTagName("*"),j=d.getElementsByTagName("a")[0];if(!(!e||!e.length||!j)){c.support={leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/red/.test(j.getAttribute("style")),hrefNormalized:j.getAttribute("href")==="/a",opacity:/^0.55$/.test(j.style.opacity),cssFloat:!!j.style.cssFloat,checkOn:d.getElementsByTagName("input")[0].value==="on",optSelected:s.createElement("select").appendChild(s.createElement("option")).selected, | ||
35 | parentNode:d.removeChild(d.appendChild(s.createElement("div"))).parentNode===null,deleteExpando:true,checkClone:false,scriptEval:false,noCloneEvent:true,boxModel:null};b.type="text/javascript";try{b.appendChild(s.createTextNode("window."+f+"=1;"))}catch(i){}a.insertBefore(b,a.firstChild);if(A[f]){c.support.scriptEval=true;delete A[f]}try{delete b.test}catch(o){c.support.deleteExpando=false}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent("onclick",function k(){c.support.noCloneEvent= | ||
36 | false;d.detachEvent("onclick",k)});d.cloneNode(true).fireEvent("onclick")}d=s.createElement("div");d.innerHTML="<input type='radio' name='radiotest' checked='checked'/>";a=s.createDocumentFragment();a.appendChild(d.firstChild);c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var k=s.createElement("div");k.style.width=k.style.paddingLeft="1px";s.body.appendChild(k);c.boxModel=c.support.boxModel=k.offsetWidth===2;s.body.removeChild(k).style.display="none"});a=function(k){var n= | ||
37 | s.createElement("div");k="on"+k;var r=k in n;if(!r){n.setAttribute(k,"return;");r=typeof n[k]==="function"}return r};c.support.submitBubbles=a("submit");c.support.changeBubbles=a("change");a=b=d=e=j=null}})();c.props={"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"};var G="jQuery"+J(),Ya=0,za={};c.extend({cache:{},expando:G,noData:{embed:true,object:true, | ||
38 | applet:true},data:function(a,b,d){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var f=a[G],e=c.cache;if(!f&&typeof b==="string"&&d===w)return null;f||(f=++Ya);if(typeof b==="object"){a[G]=f;e[f]=c.extend(true,{},b)}else if(!e[f]){a[G]=f;e[f]={}}a=e[f];if(d!==w)a[b]=d;return typeof b==="string"?a[b]:a}},removeData:function(a,b){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var d=a[G],f=c.cache,e=f[d];if(b){if(e){delete e[b];c.isEmptyObject(e)&&c.removeData(a)}}else{if(c.support.deleteExpando)delete a[c.expando]; | ||
39 | else a.removeAttribute&&a.removeAttribute(c.expando);delete f[d]}}}});c.fn.extend({data:function(a,b){if(typeof a==="undefined"&&this.length)return c.data(this[0]);else if(typeof a==="object")return this.each(function(){c.data(this,a)});var d=a.split(".");d[1]=d[1]?"."+d[1]:"";if(b===w){var f=this.triggerHandler("getData"+d[1]+"!",[d[0]]);if(f===w&&this.length)f=c.data(this[0],a);return f===w&&d[1]?this.data(d[0]):f}else return this.trigger("setData"+d[1]+"!",[d[0],b]).each(function(){c.data(this, | ||
40 | a,b)})},removeData:function(a){return this.each(function(){c.removeData(this,a)})}});c.extend({queue:function(a,b,d){if(a){b=(b||"fx")+"queue";var f=c.data(a,b);if(!d)return f||[];if(!f||c.isArray(d))f=c.data(a,b,c.makeArray(d));else f.push(d);return f}},dequeue:function(a,b){b=b||"fx";var d=c.queue(a,b),f=d.shift();if(f==="inprogress")f=d.shift();if(f){b==="fx"&&d.unshift("inprogress");f.call(a,function(){c.dequeue(a,b)})}}});c.fn.extend({queue:function(a,b){if(typeof a!=="string"){b=a;a="fx"}if(b=== | ||
41 | w)return c.queue(this[0],a);return this.each(function(){var d=c.queue(this,a,b);a==="fx"&&d[0]!=="inprogress"&&c.dequeue(this,a)})},dequeue:function(a){return this.each(function(){c.dequeue(this,a)})},delay:function(a,b){a=c.fx?c.fx.speeds[a]||a:a;b=b||"fx";return this.queue(b,function(){var d=this;setTimeout(function(){c.dequeue(d,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var Aa=/[\n\t]/g,ca=/\s+/,Za=/\r/g,$a=/href|src|style/,ab=/(button|input)/i,bb=/(button|input|object|select|textarea)/i, | ||
42 | cb=/^(a|area)$/i,Ba=/radio|checkbox/;c.fn.extend({attr:function(a,b){return X(this,a,b,true,c.attr)},removeAttr:function(a){return this.each(function(){c.attr(this,a,"");this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(c.isFunction(a))return this.each(function(n){var r=c(this);r.addClass(a.call(this,n,r.attr("class")))});if(a&&typeof a==="string")for(var b=(a||"").split(ca),d=0,f=this.length;d<f;d++){var e=this[d];if(e.nodeType===1)if(e.className){for(var j=" "+e.className+" ", | ||
43 | i=e.className,o=0,k=b.length;o<k;o++)if(j.indexOf(" "+b[o]+" ")<0)i+=" "+b[o];e.className=c.trim(i)}else e.className=a}return this},removeClass:function(a){if(c.isFunction(a))return this.each(function(k){var n=c(this);n.removeClass(a.call(this,k,n.attr("class")))});if(a&&typeof a==="string"||a===w)for(var b=(a||"").split(ca),d=0,f=this.length;d<f;d++){var e=this[d];if(e.nodeType===1&&e.className)if(a){for(var j=(" "+e.className+" ").replace(Aa," "),i=0,o=b.length;i<o;i++)j=j.replace(" "+b[i]+" ", | ||
44 | " ");e.className=c.trim(j)}else e.className=""}return this},toggleClass:function(a,b){var d=typeof a,f=typeof b==="boolean";if(c.isFunction(a))return this.each(function(e){var j=c(this);j.toggleClass(a.call(this,e,j.attr("class"),b),b)});return this.each(function(){if(d==="string")for(var e,j=0,i=c(this),o=b,k=a.split(ca);e=k[j++];){o=f?o:!i.hasClass(e);i[o?"addClass":"removeClass"](e)}else if(d==="undefined"||d==="boolean"){this.className&&c.data(this,"__className__",this.className);this.className= | ||
45 | this.className||a===false?"":c.data(this,"__className__")||""}})},hasClass:function(a){a=" "+a+" ";for(var b=0,d=this.length;b<d;b++)if((" "+this[b].className+" ").replace(Aa," ").indexOf(a)>-1)return true;return false},val:function(a){if(a===w){var b=this[0];if(b){if(c.nodeName(b,"option"))return(b.attributes.value||{}).specified?b.value:b.text;if(c.nodeName(b,"select")){var d=b.selectedIndex,f=[],e=b.options;b=b.type==="select-one";if(d<0)return null;var j=b?d:0;for(d=b?d+1:e.length;j<d;j++){var i= | ||
46 | e[j];if(i.selected){a=c(i).val();if(b)return a;f.push(a)}}return f}if(Ba.test(b.type)&&!c.support.checkOn)return b.getAttribute("value")===null?"on":b.value;return(b.value||"").replace(Za,"")}return w}var o=c.isFunction(a);return this.each(function(k){var n=c(this),r=a;if(this.nodeType===1){if(o)r=a.call(this,k,n.val());if(typeof r==="number")r+="";if(c.isArray(r)&&Ba.test(this.type))this.checked=c.inArray(n.val(),r)>=0;else if(c.nodeName(this,"select")){var u=c.makeArray(r);c("option",this).each(function(){this.selected= | ||
47 | c.inArray(c(this).val(),u)>=0});if(!u.length)this.selectedIndex=-1}else this.value=r}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(a,b,d,f){if(!a||a.nodeType===3||a.nodeType===8)return w;if(f&&b in c.attrFn)return c(a)[b](d);f=a.nodeType!==1||!c.isXMLDoc(a);var e=d!==w;b=f&&c.props[b]||b;if(a.nodeType===1){var j=$a.test(b);if(b in a&&f&&!j){if(e){b==="type"&&ab.test(a.nodeName)&&a.parentNode&&c.error("type property can't be changed"); | ||
48 | a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b==="tabIndex")return(b=a.getAttributeNode("tabIndex"))&&b.specified?b.value:bb.test(a.nodeName)||cb.test(a.nodeName)&&a.href?0:w;return a[b]}if(!c.support.style&&f&&b==="style"){if(e)a.style.cssText=""+d;return a.style.cssText}e&&a.setAttribute(b,""+d);a=!c.support.hrefNormalized&&f&&j?a.getAttribute(b,2):a.getAttribute(b);return a===null?w:a}return c.style(a,b,d)}});var O=/\.(.*)$/,db=function(a){return a.replace(/[^\w\s\.\|`]/g, | ||
49 | function(b){return"\\"+b})};c.event={add:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){if(a.setInterval&&a!==A&&!a.frameElement)a=A;var e,j;if(d.handler){e=d;d=e.handler}if(!d.guid)d.guid=c.guid++;if(j=c.data(a)){var i=j.events=j.events||{},o=j.handle;if(!o)j.handle=o=function(){return typeof c!=="undefined"&&!c.event.triggered?c.event.handle.apply(o.elem,arguments):w};o.elem=a;b=b.split(" ");for(var k,n=0,r;k=b[n++];){j=e?c.extend({},e):{handler:d,data:f};if(k.indexOf(".")>-1){r=k.split("."); | ||
50 | k=r.shift();j.namespace=r.slice(0).sort().join(".")}else{r=[];j.namespace=""}j.type=k;j.guid=d.guid;var u=i[k],z=c.event.special[k]||{};if(!u){u=i[k]=[];if(!z.setup||z.setup.call(a,f,r,o)===false)if(a.addEventListener)a.addEventListener(k,o,false);else a.attachEvent&&a.attachEvent("on"+k,o)}if(z.add){z.add.call(a,j);if(!j.handler.guid)j.handler.guid=d.guid}u.push(j);c.event.global[k]=true}a=null}}},global:{},remove:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){var e,j=0,i,o,k,n,r,u,z=c.data(a), | ||
51 | C=z&&z.events;if(z&&C){if(b&&b.type){d=b.handler;b=b.type}if(!b||typeof b==="string"&&b.charAt(0)==="."){b=b||"";for(e in C)c.event.remove(a,e+b)}else{for(b=b.split(" ");e=b[j++];){n=e;i=e.indexOf(".")<0;o=[];if(!i){o=e.split(".");e=o.shift();k=new RegExp("(^|\\.)"+c.map(o.slice(0).sort(),db).join("\\.(?:.*\\.)?")+"(\\.|$)")}if(r=C[e])if(d){n=c.event.special[e]||{};for(B=f||0;B<r.length;B++){u=r[B];if(d.guid===u.guid){if(i||k.test(u.namespace)){f==null&&r.splice(B--,1);n.remove&&n.remove.call(a,u)}if(f!= | ||
52 | null)break}}if(r.length===0||f!=null&&r.length===1){if(!n.teardown||n.teardown.call(a,o)===false)Ca(a,e,z.handle);delete C[e]}}else for(var B=0;B<r.length;B++){u=r[B];if(i||k.test(u.namespace)){c.event.remove(a,n,u.handler,B);r.splice(B--,1)}}}if(c.isEmptyObject(C)){if(b=z.handle)b.elem=null;delete z.events;delete z.handle;c.isEmptyObject(z)&&c.removeData(a)}}}}},trigger:function(a,b,d,f){var e=a.type||a;if(!f){a=typeof a==="object"?a[G]?a:c.extend(c.Event(e),a):c.Event(e);if(e.indexOf("!")>=0){a.type= | ||
53 | e=e.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();c.event.global[e]&&c.each(c.cache,function(){this.events&&this.events[e]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType===8)return w;a.result=w;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;(f=c.data(d,"handle"))&&f.apply(d,b);f=d.parentNode||d.ownerDocument;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()]))if(d["on"+e]&&d["on"+e].apply(d,b)===false)a.result=false}catch(j){}if(!a.isPropagationStopped()&& | ||
54 | f)c.event.trigger(a,b,f,true);else if(!a.isDefaultPrevented()){f=a.target;var i,o=c.nodeName(f,"a")&&e==="click",k=c.event.special[e]||{};if((!k._default||k._default.call(d,a)===false)&&!o&&!(f&&f.nodeName&&c.noData[f.nodeName.toLowerCase()])){try{if(f[e]){if(i=f["on"+e])f["on"+e]=null;c.event.triggered=true;f[e]()}}catch(n){}if(i)f["on"+e]=i;c.event.triggered=false}}},handle:function(a){var b,d,f,e;a=arguments[0]=c.event.fix(a||A.event);a.currentTarget=this;b=a.type.indexOf(".")<0&&!a.exclusive; | ||
55 | if(!b){d=a.type.split(".");a.type=d.shift();f=new RegExp("(^|\\.)"+d.slice(0).sort().join("\\.(?:.*\\.)?")+"(\\.|$)")}e=c.data(this,"events");d=e[a.type];if(e&&d){d=d.slice(0);e=0;for(var j=d.length;e<j;e++){var i=d[e];if(b||f.test(i.namespace)){a.handler=i.handler;a.data=i.data;a.handleObj=i;i=i.handler.apply(this,arguments);if(i!==w){a.result=i;if(i===false){a.preventDefault();a.stopPropagation()}}if(a.isImmediatePropagationStopped())break}}}return a.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "), | ||
56 | fix:function(a){if(a[G])return a;var b=a;a=c.Event(b);for(var d=this.props.length,f;d;){f=this.props[--d];a[f]=b[f]}if(!a.target)a.target=a.srcElement||s;if(a.target.nodeType===3)a.target=a.target.parentNode;if(!a.relatedTarget&&a.fromElement)a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement;if(a.pageX==null&&a.clientX!=null){b=s.documentElement;d=s.body;a.pageX=a.clientX+(b&&b.scrollLeft||d&&d.scrollLeft||0)-(b&&b.clientLeft||d&&d.clientLeft||0);a.pageY=a.clientY+(b&&b.scrollTop|| | ||
57 | d&&d.scrollTop||0)-(b&&b.clientTop||d&&d.clientTop||0)}if(!a.which&&(a.charCode||a.charCode===0?a.charCode:a.keyCode))a.which=a.charCode||a.keyCode;if(!a.metaKey&&a.ctrlKey)a.metaKey=a.ctrlKey;if(!a.which&&a.button!==w)a.which=a.button&1?1:a.button&2?3:a.button&4?2:0;return a},guid:1E8,proxy:c.proxy,special:{ready:{setup:c.bindReady,teardown:c.noop},live:{add:function(a){c.event.add(this,a.origType,c.extend({},a,{handler:oa}))},remove:function(a){var b=true,d=a.origType.replace(O,"");c.each(c.data(this, | ||
58 | "events").live||[],function(){if(d===this.origType.replace(O,""))return b=false});b&&c.event.remove(this,a.origType,oa)}},beforeunload:{setup:function(a,b,d){if(this.setInterval)this.onbeforeunload=d;return false},teardown:function(a,b){if(this.onbeforeunload===b)this.onbeforeunload=null}}}};var Ca=s.removeEventListener?function(a,b,d){a.removeEventListener(b,d,false)}:function(a,b,d){a.detachEvent("on"+b,d)};c.Event=function(a){if(!this.preventDefault)return new c.Event(a);if(a&&a.type){this.originalEvent= | ||
59 | a;this.type=a.type}else this.type=a;this.timeStamp=J();this[G]=true};c.Event.prototype={preventDefault:function(){this.isDefaultPrevented=Z;var a=this.originalEvent;if(a){a.preventDefault&&a.preventDefault();a.returnValue=false}},stopPropagation:function(){this.isPropagationStopped=Z;var a=this.originalEvent;if(a){a.stopPropagation&&a.stopPropagation();a.cancelBubble=true}},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=Z;this.stopPropagation()},isDefaultPrevented:Y,isPropagationStopped:Y, | ||
60 | isImmediatePropagationStopped:Y};var Da=function(a){var b=a.relatedTarget;try{for(;b&&b!==this;)b=b.parentNode;if(b!==this){a.type=a.data;c.event.handle.apply(this,arguments)}}catch(d){}},Ea=function(a){a.type=a.data;c.event.handle.apply(this,arguments)};c.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){c.event.special[a]={setup:function(d){c.event.add(this,b,d&&d.selector?Ea:Da,a)},teardown:function(d){c.event.remove(this,b,d&&d.selector?Ea:Da)}}});if(!c.support.submitBubbles)c.event.special.submit= | ||
61 | {setup:function(){if(this.nodeName.toLowerCase()!=="form"){c.event.add(this,"click.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="submit"||d==="image")&&c(b).closest("form").length)return na("submit",this,arguments)});c.event.add(this,"keypress.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="text"||d==="password")&&c(b).closest("form").length&&a.keyCode===13)return na("submit",this,arguments)})}else return false},teardown:function(){c.event.remove(this,".specialSubmit")}}; | ||
62 | if(!c.support.changeBubbles){var da=/textarea|input|select/i,ea,Fa=function(a){var b=a.type,d=a.value;if(b==="radio"||b==="checkbox")d=a.checked;else if(b==="select-multiple")d=a.selectedIndex>-1?c.map(a.options,function(f){return f.selected}).join("-"):"";else if(a.nodeName.toLowerCase()==="select")d=a.selectedIndex;return d},fa=function(a,b){var d=a.target,f,e;if(!(!da.test(d.nodeName)||d.readOnly)){f=c.data(d,"_change_data");e=Fa(d);if(a.type!=="focusout"||d.type!=="radio")c.data(d,"_change_data", | ||
63 | e);if(!(f===w||e===f))if(f!=null||e){a.type="change";return c.event.trigger(a,b,d)}}};c.event.special.change={filters:{focusout:fa,click:function(a){var b=a.target,d=b.type;if(d==="radio"||d==="checkbox"||b.nodeName.toLowerCase()==="select")return fa.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(d==="checkbox"||d==="radio")||d==="select-multiple")return fa.call(this,a)},beforeactivate:function(a){a=a.target;c.data(a, | ||
64 | "_change_data",Fa(a))}},setup:function(){if(this.type==="file")return false;for(var a in ea)c.event.add(this,a+".specialChange",ea[a]);return da.test(this.nodeName)},teardown:function(){c.event.remove(this,".specialChange");return da.test(this.nodeName)}};ea=c.event.special.change.filters}s.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(f){f=c.event.fix(f);f.type=b;return c.event.handle.call(this,f)}c.event.special[b]={setup:function(){this.addEventListener(a, | ||
65 | d,true)},teardown:function(){this.removeEventListener(a,d,true)}}});c.each(["bind","one"],function(a,b){c.fn[b]=function(d,f,e){if(typeof d==="object"){for(var j in d)this[b](j,f,d[j],e);return this}if(c.isFunction(f)){e=f;f=w}var i=b==="one"?c.proxy(e,function(k){c(this).unbind(k,i);return e.apply(this,arguments)}):e;if(d==="unload"&&b!=="one")this.one(d,f,e);else{j=0;for(var o=this.length;j<o;j++)c.event.add(this[j],d,i,f)}return this}});c.fn.extend({unbind:function(a,b){if(typeof a==="object"&& | ||
66 | !a.preventDefault)for(var d in a)this.unbind(d,a[d]);else{d=0;for(var f=this.length;d<f;d++)c.event.remove(this[d],a,b)}return this},delegate:function(a,b,d,f){return this.live(b,d,f,a)},undelegate:function(a,b,d){return arguments.length===0?this.unbind("live"):this.die(b,null,d,a)},trigger:function(a,b){return this.each(function(){c.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0]){a=c.Event(a);a.preventDefault();a.stopPropagation();c.event.trigger(a,b,this[0]);return a.result}}, | ||
67 | toggle:function(a){for(var b=arguments,d=1;d<b.length;)c.proxy(a,b[d++]);return this.click(c.proxy(a,function(f){var e=(c.data(this,"lastToggle"+a.guid)||0)%d;c.data(this,"lastToggle"+a.guid,e+1);f.preventDefault();return b[e].apply(this,arguments)||false}))},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var Ga={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};c.each(["live","die"],function(a,b){c.fn[b]=function(d,f,e,j){var i,o=0,k,n,r=j||this.selector, | ||
68 | u=j?this:c(this.context);if(c.isFunction(f)){e=f;f=w}for(d=(d||"").split(" ");(i=d[o++])!=null;){j=O.exec(i);k="";if(j){k=j[0];i=i.replace(O,"")}if(i==="hover")d.push("mouseenter"+k,"mouseleave"+k);else{n=i;if(i==="focus"||i==="blur"){d.push(Ga[i]+k);i+=k}else i=(Ga[i]||i)+k;b==="live"?u.each(function(){c.event.add(this,pa(i,r),{data:f,selector:r,handler:e,origType:i,origHandler:e,preType:n})}):u.unbind(pa(i,r),e)}}return this}});c.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split(" "), | ||
69 | function(a,b){c.fn[b]=function(d){return d?this.bind(b,d):this.trigger(b)};if(c.attrFn)c.attrFn[b]=true});A.attachEvent&&!A.addEventListener&&A.attachEvent("onunload",function(){for(var a in c.cache)if(c.cache[a].handle)try{c.event.remove(c.cache[a].handle.elem)}catch(b){}});(function(){function a(g){for(var h="",l,m=0;g[m];m++){l=g[m];if(l.nodeType===3||l.nodeType===4)h+=l.nodeValue;else if(l.nodeType!==8)h+=a(l.childNodes)}return h}function b(g,h,l,m,q,p){q=0;for(var v=m.length;q<v;q++){var t=m[q]; | ||
70 | if(t){t=t[g];for(var y=false;t;){if(t.sizcache===l){y=m[t.sizset];break}if(t.nodeType===1&&!p){t.sizcache=l;t.sizset=q}if(t.nodeName.toLowerCase()===h){y=t;break}t=t[g]}m[q]=y}}}function d(g,h,l,m,q,p){q=0;for(var v=m.length;q<v;q++){var t=m[q];if(t){t=t[g];for(var y=false;t;){if(t.sizcache===l){y=m[t.sizset];break}if(t.nodeType===1){if(!p){t.sizcache=l;t.sizset=q}if(typeof h!=="string"){if(t===h){y=true;break}}else if(k.filter(h,[t]).length>0){y=t;break}}t=t[g]}m[q]=y}}}var f=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g, | ||
71 | e=0,j=Object.prototype.toString,i=false,o=true;[0,0].sort(function(){o=false;return 0});var k=function(g,h,l,m){l=l||[];var q=h=h||s;if(h.nodeType!==1&&h.nodeType!==9)return[];if(!g||typeof g!=="string")return l;for(var p=[],v,t,y,S,H=true,M=x(h),I=g;(f.exec(""),v=f.exec(I))!==null;){I=v[3];p.push(v[1]);if(v[2]){S=v[3];break}}if(p.length>1&&r.exec(g))if(p.length===2&&n.relative[p[0]])t=ga(p[0]+p[1],h);else for(t=n.relative[p[0]]?[h]:k(p.shift(),h);p.length;){g=p.shift();if(n.relative[g])g+=p.shift(); | ||
72 | t=ga(g,t)}else{if(!m&&p.length>1&&h.nodeType===9&&!M&&n.match.ID.test(p[0])&&!n.match.ID.test(p[p.length-1])){v=k.find(p.shift(),h,M);h=v.expr?k.filter(v.expr,v.set)[0]:v.set[0]}if(h){v=m?{expr:p.pop(),set:z(m)}:k.find(p.pop(),p.length===1&&(p[0]==="~"||p[0]==="+")&&h.parentNode?h.parentNode:h,M);t=v.expr?k.filter(v.expr,v.set):v.set;if(p.length>0)y=z(t);else H=false;for(;p.length;){var D=p.pop();v=D;if(n.relative[D])v=p.pop();else D="";if(v==null)v=h;n.relative[D](y,v,M)}}else y=[]}y||(y=t);y||k.error(D|| | ||
73 | g);if(j.call(y)==="[object Array]")if(H)if(h&&h.nodeType===1)for(g=0;y[g]!=null;g++){if(y[g]&&(y[g]===true||y[g].nodeType===1&&E(h,y[g])))l.push(t[g])}else for(g=0;y[g]!=null;g++)y[g]&&y[g].nodeType===1&&l.push(t[g]);else l.push.apply(l,y);else z(y,l);if(S){k(S,q,l,m);k.uniqueSort(l)}return l};k.uniqueSort=function(g){if(B){i=o;g.sort(B);if(i)for(var h=1;h<g.length;h++)g[h]===g[h-1]&&g.splice(h--,1)}return g};k.matches=function(g,h){return k(g,null,null,h)};k.find=function(g,h,l){var m,q;if(!g)return[]; | ||
74 | for(var p=0,v=n.order.length;p<v;p++){var t=n.order[p];if(q=n.leftMatch[t].exec(g)){var y=q[1];q.splice(1,1);if(y.substr(y.length-1)!=="\\"){q[1]=(q[1]||"").replace(/\\/g,"");m=n.find[t](q,h,l);if(m!=null){g=g.replace(n.match[t],"");break}}}}m||(m=h.getElementsByTagName("*"));return{set:m,expr:g}};k.filter=function(g,h,l,m){for(var q=g,p=[],v=h,t,y,S=h&&h[0]&&x(h[0]);g&&h.length;){for(var H in n.filter)if((t=n.leftMatch[H].exec(g))!=null&&t[2]){var M=n.filter[H],I,D;D=t[1];y=false;t.splice(1,1);if(D.substr(D.length- | ||
75 | 1)!=="\\"){if(v===p)p=[];if(n.preFilter[H])if(t=n.preFilter[H](t,v,l,p,m,S)){if(t===true)continue}else y=I=true;if(t)for(var U=0;(D=v[U])!=null;U++)if(D){I=M(D,t,U,v);var Ha=m^!!I;if(l&&I!=null)if(Ha)y=true;else v[U]=false;else if(Ha){p.push(D);y=true}}if(I!==w){l||(v=p);g=g.replace(n.match[H],"");if(!y)return[];break}}}if(g===q)if(y==null)k.error(g);else break;q=g}return v};k.error=function(g){throw"Syntax error, unrecognized expression: "+g;};var n=k.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF-]|\\.)+)/, | ||
76 | CLASS:/\.((?:[\w\u00c0-\uFFFF-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(g){return g.getAttribute("href")}}, | ||
77 | relative:{"+":function(g,h){var l=typeof h==="string",m=l&&!/\W/.test(h);l=l&&!m;if(m)h=h.toLowerCase();m=0;for(var q=g.length,p;m<q;m++)if(p=g[m]){for(;(p=p.previousSibling)&&p.nodeType!==1;);g[m]=l||p&&p.nodeName.toLowerCase()===h?p||false:p===h}l&&k.filter(h,g,true)},">":function(g,h){var l=typeof h==="string";if(l&&!/\W/.test(h)){h=h.toLowerCase();for(var m=0,q=g.length;m<q;m++){var p=g[m];if(p){l=p.parentNode;g[m]=l.nodeName.toLowerCase()===h?l:false}}}else{m=0;for(q=g.length;m<q;m++)if(p=g[m])g[m]= | ||
78 | l?p.parentNode:p.parentNode===h;l&&k.filter(h,g,true)}},"":function(g,h,l){var m=e++,q=d;if(typeof h==="string"&&!/\W/.test(h)){var p=h=h.toLowerCase();q=b}q("parentNode",h,m,g,p,l)},"~":function(g,h,l){var m=e++,q=d;if(typeof h==="string"&&!/\W/.test(h)){var p=h=h.toLowerCase();q=b}q("previousSibling",h,m,g,p,l)}},find:{ID:function(g,h,l){if(typeof h.getElementById!=="undefined"&&!l)return(g=h.getElementById(g[1]))?[g]:[]},NAME:function(g,h){if(typeof h.getElementsByName!=="undefined"){var l=[]; | ||
79 | h=h.getElementsByName(g[1]);for(var m=0,q=h.length;m<q;m++)h[m].getAttribute("name")===g[1]&&l.push(h[m]);return l.length===0?null:l}},TAG:function(g,h){return h.getElementsByTagName(g[1])}},preFilter:{CLASS:function(g,h,l,m,q,p){g=" "+g[1].replace(/\\/g,"")+" ";if(p)return g;p=0;for(var v;(v=h[p])!=null;p++)if(v)if(q^(v.className&&(" "+v.className+" ").replace(/[\t\n]/g," ").indexOf(g)>=0))l||m.push(v);else if(l)h[p]=false;return false},ID:function(g){return g[1].replace(/\\/g,"")},TAG:function(g){return g[1].toLowerCase()}, | ||
80 | CHILD:function(g){if(g[1]==="nth"){var h=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2]==="even"&&"2n"||g[2]==="odd"&&"2n+1"||!/\D/.test(g[2])&&"0n+"+g[2]||g[2]);g[2]=h[1]+(h[2]||1)-0;g[3]=h[3]-0}g[0]=e++;return g},ATTR:function(g,h,l,m,q,p){h=g[1].replace(/\\/g,"");if(!p&&n.attrMap[h])g[1]=n.attrMap[h];if(g[2]==="~=")g[4]=" "+g[4]+" ";return g},PSEUDO:function(g,h,l,m,q){if(g[1]==="not")if((f.exec(g[3])||"").length>1||/^\w/.test(g[3]))g[3]=k(g[3],null,null,h);else{g=k.filter(g[3],h,l,true^q);l||m.push.apply(m, | ||
81 | g);return false}else if(n.match.POS.test(g[0])||n.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true);return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!=="hidden"},disabled:function(g){return g.disabled===true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,h,l){return!!k(l[3],g).length},header:function(g){return/h\d/i.test(g.nodeName)}, | ||
82 | text:function(g){return"text"===g.type},radio:function(g){return"radio"===g.type},checkbox:function(g){return"checkbox"===g.type},file:function(g){return"file"===g.type},password:function(g){return"password"===g.type},submit:function(g){return"submit"===g.type},image:function(g){return"image"===g.type},reset:function(g){return"reset"===g.type},button:function(g){return"button"===g.type||g.nodeName.toLowerCase()==="button"},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}}, | ||
83 | setFilters:{first:function(g,h){return h===0},last:function(g,h,l,m){return h===m.length-1},even:function(g,h){return h%2===0},odd:function(g,h){return h%2===1},lt:function(g,h,l){return h<l[3]-0},gt:function(g,h,l){return h>l[3]-0},nth:function(g,h,l){return l[3]-0===h},eq:function(g,h,l){return l[3]-0===h}},filter:{PSEUDO:function(g,h,l,m){var q=h[1],p=n.filters[q];if(p)return p(g,l,h,m);else if(q==="contains")return(g.textContent||g.innerText||a([g])||"").indexOf(h[3])>=0;else if(q==="not"){h= | ||
84 | h[3];l=0;for(m=h.length;l<m;l++)if(h[l]===g)return false;return true}else k.error("Syntax error, unrecognized expression: "+q)},CHILD:function(g,h){var l=h[1],m=g;switch(l){case "only":case "first":for(;m=m.previousSibling;)if(m.nodeType===1)return false;if(l==="first")return true;m=g;case "last":for(;m=m.nextSibling;)if(m.nodeType===1)return false;return true;case "nth":l=h[2];var q=h[3];if(l===1&&q===0)return true;h=h[0];var p=g.parentNode;if(p&&(p.sizcache!==h||!g.nodeIndex)){var v=0;for(m=p.firstChild;m;m= | ||
85 | m.nextSibling)if(m.nodeType===1)m.nodeIndex=++v;p.sizcache=h}g=g.nodeIndex-q;return l===0?g===0:g%l===0&&g/l>=0}},ID:function(g,h){return g.nodeType===1&&g.getAttribute("id")===h},TAG:function(g,h){return h==="*"&&g.nodeType===1||g.nodeName.toLowerCase()===h},CLASS:function(g,h){return(" "+(g.className||g.getAttribute("class"))+" ").indexOf(h)>-1},ATTR:function(g,h){var l=h[1];g=n.attrHandle[l]?n.attrHandle[l](g):g[l]!=null?g[l]:g.getAttribute(l);l=g+"";var m=h[2];h=h[4];return g==null?m==="!=":m=== | ||
86 | "="?l===h:m==="*="?l.indexOf(h)>=0:m==="~="?(" "+l+" ").indexOf(h)>=0:!h?l&&g!==false:m==="!="?l!==h:m==="^="?l.indexOf(h)===0:m==="$="?l.substr(l.length-h.length)===h:m==="|="?l===h||l.substr(0,h.length+1)===h+"-":false},POS:function(g,h,l,m){var q=n.setFilters[h[2]];if(q)return q(g,l,h,m)}}},r=n.match.POS;for(var u in n.match){n.match[u]=new RegExp(n.match[u].source+/(?![^\[]*\])(?![^\(]*\))/.source);n.leftMatch[u]=new RegExp(/(^(?:.|\r|\n)*?)/.source+n.match[u].source.replace(/\\(\d+)/g,function(g, | ||
87 | h){return"\\"+(h-0+1)}))}var z=function(g,h){g=Array.prototype.slice.call(g,0);if(h){h.push.apply(h,g);return h}return g};try{Array.prototype.slice.call(s.documentElement.childNodes,0)}catch(C){z=function(g,h){h=h||[];if(j.call(g)==="[object Array]")Array.prototype.push.apply(h,g);else if(typeof g.length==="number")for(var l=0,m=g.length;l<m;l++)h.push(g[l]);else for(l=0;g[l];l++)h.push(g[l]);return h}}var B;if(s.documentElement.compareDocumentPosition)B=function(g,h){if(!g.compareDocumentPosition|| | ||
88 | !h.compareDocumentPosition){if(g==h)i=true;return g.compareDocumentPosition?-1:1}g=g.compareDocumentPosition(h)&4?-1:g===h?0:1;if(g===0)i=true;return g};else if("sourceIndex"in s.documentElement)B=function(g,h){if(!g.sourceIndex||!h.sourceIndex){if(g==h)i=true;return g.sourceIndex?-1:1}g=g.sourceIndex-h.sourceIndex;if(g===0)i=true;return g};else if(s.createRange)B=function(g,h){if(!g.ownerDocument||!h.ownerDocument){if(g==h)i=true;return g.ownerDocument?-1:1}var l=g.ownerDocument.createRange(),m= | ||
89 | h.ownerDocument.createRange();l.setStart(g,0);l.setEnd(g,0);m.setStart(h,0);m.setEnd(h,0);g=l.compareBoundaryPoints(Range.START_TO_END,m);if(g===0)i=true;return g};(function(){var g=s.createElement("div"),h="script"+(new Date).getTime();g.innerHTML="<a name='"+h+"'/>";var l=s.documentElement;l.insertBefore(g,l.firstChild);if(s.getElementById(h)){n.find.ID=function(m,q,p){if(typeof q.getElementById!=="undefined"&&!p)return(q=q.getElementById(m[1]))?q.id===m[1]||typeof q.getAttributeNode!=="undefined"&& | ||
90 | q.getAttributeNode("id").nodeValue===m[1]?[q]:w:[]};n.filter.ID=function(m,q){var p=typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id");return m.nodeType===1&&p&&p.nodeValue===q}}l.removeChild(g);l=g=null})();(function(){var g=s.createElement("div");g.appendChild(s.createComment(""));if(g.getElementsByTagName("*").length>0)n.find.TAG=function(h,l){l=l.getElementsByTagName(h[1]);if(h[1]==="*"){h=[];for(var m=0;l[m];m++)l[m].nodeType===1&&h.push(l[m]);l=h}return l};g.innerHTML="<a href='#'></a>"; | ||
91 | if(g.firstChild&&typeof g.firstChild.getAttribute!=="undefined"&&g.firstChild.getAttribute("href")!=="#")n.attrHandle.href=function(h){return h.getAttribute("href",2)};g=null})();s.querySelectorAll&&function(){var g=k,h=s.createElement("div");h.innerHTML="<p class='TEST'></p>";if(!(h.querySelectorAll&&h.querySelectorAll(".TEST").length===0)){k=function(m,q,p,v){q=q||s;if(!v&&q.nodeType===9&&!x(q))try{return z(q.querySelectorAll(m),p)}catch(t){}return g(m,q,p,v)};for(var l in g)k[l]=g[l];h=null}}(); | ||
92 | (function(){var g=s.createElement("div");g.innerHTML="<div class='test e'></div><div class='test'></div>";if(!(!g.getElementsByClassName||g.getElementsByClassName("e").length===0)){g.lastChild.className="e";if(g.getElementsByClassName("e").length!==1){n.order.splice(1,0,"CLASS");n.find.CLASS=function(h,l,m){if(typeof l.getElementsByClassName!=="undefined"&&!m)return l.getElementsByClassName(h[1])};g=null}}})();var E=s.compareDocumentPosition?function(g,h){return!!(g.compareDocumentPosition(h)&16)}: | ||
93 | function(g,h){return g!==h&&(g.contains?g.contains(h):true)},x=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!=="HTML":false},ga=function(g,h){var l=[],m="",q;for(h=h.nodeType?[h]:h;q=n.match.PSEUDO.exec(g);){m+=q[0];g=g.replace(n.match.PSEUDO,"")}g=n.relative[g]?g+"*":g;q=0;for(var p=h.length;q<p;q++)k(g,h[q],l);return k.filter(m,l)};c.find=k;c.expr=k.selectors;c.expr[":"]=c.expr.filters;c.unique=k.uniqueSort;c.text=a;c.isXMLDoc=x;c.contains=E})();var eb=/Until$/,fb=/^(?:parents|prevUntil|prevAll)/, | ||
94 | gb=/,/;R=Array.prototype.slice;var Ia=function(a,b,d){if(c.isFunction(b))return c.grep(a,function(e,j){return!!b.call(e,j,e)===d});else if(b.nodeType)return c.grep(a,function(e){return e===b===d});else if(typeof b==="string"){var f=c.grep(a,function(e){return e.nodeType===1});if(Ua.test(b))return c.filter(b,f,!d);else b=c.filter(b,f)}return c.grep(a,function(e){return c.inArray(e,b)>=0===d})};c.fn.extend({find:function(a){for(var b=this.pushStack("","find",a),d=0,f=0,e=this.length;f<e;f++){d=b.length; | ||
95 | c.find(a,this[f],b);if(f>0)for(var j=d;j<b.length;j++)for(var i=0;i<d;i++)if(b[i]===b[j]){b.splice(j--,1);break}}return b},has:function(a){var b=c(a);return this.filter(function(){for(var d=0,f=b.length;d<f;d++)if(c.contains(this,b[d]))return true})},not:function(a){return this.pushStack(Ia(this,a,false),"not",a)},filter:function(a){return this.pushStack(Ia(this,a,true),"filter",a)},is:function(a){return!!a&&c.filter(a,this).length>0},closest:function(a,b){if(c.isArray(a)){var d=[],f=this[0],e,j= | ||
96 | {},i;if(f&&a.length){e=0;for(var o=a.length;e<o;e++){i=a[e];j[i]||(j[i]=c.expr.match.POS.test(i)?c(i,b||this.context):i)}for(;f&&f.ownerDocument&&f!==b;){for(i in j){e=j[i];if(e.jquery?e.index(f)>-1:c(f).is(e)){d.push({selector:i,elem:f});delete j[i]}}f=f.parentNode}}return d}var k=c.expr.match.POS.test(a)?c(a,b||this.context):null;return this.map(function(n,r){for(;r&&r.ownerDocument&&r!==b;){if(k?k.index(r)>-1:c(r).is(a))return r;r=r.parentNode}return null})},index:function(a){if(!a||typeof a=== | ||
97 | "string")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){a=typeof a==="string"?c(a,b||this.context):c.makeArray(a);b=c.merge(this.get(),a);return this.pushStack(qa(a[0])||qa(b[0])?b:c.unique(b))},andSelf:function(){return this.add(this.prevObject)}});c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return c.dir(a,"parentNode", | ||
98 | d)},next:function(a){return c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a,2,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")},nextUntil:function(a,b,d){return c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return c.dir(a,"previousSibling",d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,"iframe")? | ||
99 | a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a,b){c.fn[a]=function(d,f){var e=c.map(this,b,d);eb.test(a)||(f=d);if(f&&typeof f==="string")e=c.filter(f,e);e=this.length>1?c.unique(e):e;if((this.length>1||gb.test(f))&&fb.test(a))e=e.reverse();return this.pushStack(e,a,R.call(arguments).join(","))}});c.extend({filter:function(a,b,d){if(d)a=":not("+a+")";return c.find.matches(a,b)},dir:function(a,b,d){var f=[];for(a=a[b];a&&a.nodeType!==9&&(d===w||a.nodeType!==1||!c(a).is(d));){a.nodeType=== | ||
100 | 1&&f.push(a);a=a[b]}return f},nth:function(a,b,d){b=b||1;for(var f=0;a;a=a[d])if(a.nodeType===1&&++f===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!==b&&d.push(a);return d}});var Ja=/ jQuery\d+="(?:\d+|null)"/g,V=/^\s+/,Ka=/(<([\w:]+)[^>]*?)\/>/g,hb=/^(?:area|br|col|embed|hr|img|input|link|meta|param)$/i,La=/<([\w:]+)/,ib=/<tbody/i,jb=/<|&#?\w+;/,ta=/<script|<object|<embed|<option|<style/i,ua=/checked\s*(?:[^=]|=\s*.checked.)/i,Ma=function(a,b,d){return hb.test(d)? | ||
101 | a:b+"></"+d+">"},F={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};F.optgroup=F.option;F.tbody=F.tfoot=F.colgroup=F.caption=F.thead;F.th=F.td;if(!c.support.htmlSerialize)F._default=[1,"div<div>","</div>"];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d= | ||
102 | c(this);d.text(a.call(this,b,d.text()))});if(typeof a!=="object"&&a!==w)return this.empty().append((this[0]&&this[0].ownerDocument||s).createTextNode(a));return c.text(this)},wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this,d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this}, | ||
103 | wrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length?d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){c.nodeName(this,"body")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})}, | ||
104 | prepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a=c(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b, | ||
105 | this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},remove:function(a,b){for(var d=0,f;(f=this[d])!=null;d++)if(!a||c.filter(a,[f]).length){if(!b&&f.nodeType===1){c.cleanData(f.getElementsByTagName("*"));c.cleanData([f])}f.parentNode&&f.parentNode.removeChild(f)}return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++)for(b.nodeType===1&&c.cleanData(b.getElementsByTagName("*"));b.firstChild;)b.removeChild(b.firstChild); | ||
106 | return this},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&&!c.isXMLDoc(this)){var d=this.outerHTML,f=this.ownerDocument;if(!d){d=f.createElement("div");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(Ja,"").replace(/=([^="'>\s]+\/)>/g,'="$1">').replace(V,"")],f)[0]}else return this.cloneNode(true)});if(a===true){ra(this,b);ra(this.find("*"),b.find("*"))}return b},html:function(a){if(a===w)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(Ja, | ||
107 | ""):null;else if(typeof a==="string"&&!ta.test(a)&&(c.support.leadingWhitespace||!V.test(a))&&!F[(La.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Ka,Ma);try{for(var b=0,d=this.length;b<d;b++)if(this[b].nodeType===1){c.cleanData(this[b].getElementsByTagName("*"));this[b].innerHTML=a}}catch(f){this.empty().append(a)}}else c.isFunction(a)?this.each(function(e){var j=c(this),i=j.html();j.empty().append(function(){return a.call(this,e,i)})}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&& | ||
108 | this[0].parentNode){if(c.isFunction(a))return this.each(function(b){var d=c(this),f=d.html();d.replaceWith(a.call(this,b,f))});if(typeof a!=="string")a=c(a).detach();return this.each(function(){var b=this.nextSibling,d=this.parentNode;c(this).remove();b?c(b).before(a):c(d).append(a)})}else return this.pushStack(c(c.isFunction(a)?a():a),"replaceWith",a)},detach:function(a){return this.remove(a,true)},domManip:function(a,b,d){function f(u){return c.nodeName(u,"table")?u.getElementsByTagName("tbody")[0]|| | ||
109 | u.appendChild(u.ownerDocument.createElement("tbody")):u}var e,j,i=a[0],o=[],k;if(!c.support.checkClone&&arguments.length===3&&typeof i==="string"&&ua.test(i))return this.each(function(){c(this).domManip(a,b,d,true)});if(c.isFunction(i))return this.each(function(u){var z=c(this);a[0]=i.call(this,u,b?z.html():w);z.domManip(a,b,d)});if(this[0]){e=i&&i.parentNode;e=c.support.parentNode&&e&&e.nodeType===11&&e.childNodes.length===this.length?{fragment:e}:sa(a,this,o);k=e.fragment;if(j=k.childNodes.length=== | ||
110 | 1?(k=k.firstChild):k.firstChild){b=b&&c.nodeName(j,"tr");for(var n=0,r=this.length;n<r;n++)d.call(b?f(this[n],j):this[n],n>0||e.cacheable||this.length>1?k.cloneNode(true):k)}o.length&&c.each(o,Qa)}return this}});c.fragments={};c.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){c.fn[a]=function(d){var f=[];d=c(d);var e=this.length===1&&this[0].parentNode;if(e&&e.nodeType===11&&e.childNodes.length===1&&d.length===1){d[b](this[0]); | ||
111 | return this}else{e=0;for(var j=d.length;e<j;e++){var i=(e>0?this.clone(true):this).get();c.fn[b].apply(c(d[e]),i);f=f.concat(i)}return this.pushStack(f,a,d.selector)}}});c.extend({clean:function(a,b,d,f){b=b||s;if(typeof b.createElement==="undefined")b=b.ownerDocument||b[0]&&b[0].ownerDocument||s;for(var e=[],j=0,i;(i=a[j])!=null;j++){if(typeof i==="number")i+="";if(i){if(typeof i==="string"&&!jb.test(i))i=b.createTextNode(i);else if(typeof i==="string"){i=i.replace(Ka,Ma);var o=(La.exec(i)||["", | ||
112 | ""])[1].toLowerCase(),k=F[o]||F._default,n=k[0],r=b.createElement("div");for(r.innerHTML=k[1]+i+k[2];n--;)r=r.lastChild;if(!c.support.tbody){n=ib.test(i);o=o==="table"&&!n?r.firstChild&&r.firstChild.childNodes:k[1]==="<table>"&&!n?r.childNodes:[];for(k=o.length-1;k>=0;--k)c.nodeName(o[k],"tbody")&&!o[k].childNodes.length&&o[k].parentNode.removeChild(o[k])}!c.support.leadingWhitespace&&V.test(i)&&r.insertBefore(b.createTextNode(V.exec(i)[0]),r.firstChild);i=r.childNodes}if(i.nodeType)e.push(i);else e= | ||
113 | c.merge(e,i)}}if(d)for(j=0;e[j];j++)if(f&&c.nodeName(e[j],"script")&&(!e[j].type||e[j].type.toLowerCase()==="text/javascript"))f.push(e[j].parentNode?e[j].parentNode.removeChild(e[j]):e[j]);else{e[j].nodeType===1&&e.splice.apply(e,[j+1,0].concat(c.makeArray(e[j].getElementsByTagName("script"))));d.appendChild(e[j])}return e},cleanData:function(a){for(var b,d,f=c.cache,e=c.event.special,j=c.support.deleteExpando,i=0,o;(o=a[i])!=null;i++)if(d=o[c.expando]){b=f[d];if(b.events)for(var k in b.events)e[k]? | ||
114 | c.event.remove(o,k):Ca(o,k,b.handle);if(j)delete o[c.expando];else o.removeAttribute&&o.removeAttribute(c.expando);delete f[d]}}});var kb=/z-?index|font-?weight|opacity|zoom|line-?height/i,Na=/alpha\([^)]*\)/,Oa=/opacity=([^)]*)/,ha=/float/i,ia=/-([a-z])/ig,lb=/([A-Z])/g,mb=/^-?\d+(?:px)?$/i,nb=/^-?\d/,ob={position:"absolute",visibility:"hidden",display:"block"},pb=["Left","Right"],qb=["Top","Bottom"],rb=s.defaultView&&s.defaultView.getComputedStyle,Pa=c.support.cssFloat?"cssFloat":"styleFloat",ja= | ||
115 | function(a,b){return b.toUpperCase()};c.fn.css=function(a,b){return X(this,a,b,true,function(d,f,e){if(e===w)return c.curCSS(d,f);if(typeof e==="number"&&!kb.test(f))e+="px";c.style(d,f,e)})};c.extend({style:function(a,b,d){if(!a||a.nodeType===3||a.nodeType===8)return w;if((b==="width"||b==="height")&&parseFloat(d)<0)d=w;var f=a.style||a,e=d!==w;if(!c.support.opacity&&b==="opacity"){if(e){f.zoom=1;b=parseInt(d,10)+""==="NaN"?"":"alpha(opacity="+d*100+")";a=f.filter||c.curCSS(a,"filter")||"";f.filter= | ||
116 | Na.test(a)?a.replace(Na,b):b}return f.filter&&f.filter.indexOf("opacity=")>=0?parseFloat(Oa.exec(f.filter)[1])/100+"":""}if(ha.test(b))b=Pa;b=b.replace(ia,ja);if(e)f[b]=d;return f[b]},css:function(a,b,d,f){if(b==="width"||b==="height"){var e,j=b==="width"?pb:qb;function i(){e=b==="width"?a.offsetWidth:a.offsetHeight;f!=="border"&&c.each(j,function(){f||(e-=parseFloat(c.curCSS(a,"padding"+this,true))||0);if(f==="margin")e+=parseFloat(c.curCSS(a,"margin"+this,true))||0;else e-=parseFloat(c.curCSS(a, | ||
117 | "border"+this+"Width",true))||0})}a.offsetWidth!==0?i():c.swap(a,ob,i);return Math.max(0,Math.round(e))}return c.curCSS(a,b,d)},curCSS:function(a,b,d){var f,e=a.style;if(!c.support.opacity&&b==="opacity"&&a.currentStyle){f=Oa.test(a.currentStyle.filter||"")?parseFloat(RegExp.$1)/100+"":"";return f===""?"1":f}if(ha.test(b))b=Pa;if(!d&&e&&e[b])f=e[b];else if(rb){if(ha.test(b))b="float";b=b.replace(lb,"-$1").toLowerCase();e=a.ownerDocument.defaultView;if(!e)return null;if(a=e.getComputedStyle(a,null))f= | ||
118 | a.getPropertyValue(b);if(b==="opacity"&&f==="")f="1"}else if(a.currentStyle){d=b.replace(ia,ja);f=a.currentStyle[b]||a.currentStyle[d];if(!mb.test(f)&&nb.test(f)){b=e.left;var j=a.runtimeStyle.left;a.runtimeStyle.left=a.currentStyle.left;e.left=d==="fontSize"?"1em":f||0;f=e.pixelLeft+"px";e.left=b;a.runtimeStyle.left=j}}return f},swap:function(a,b,d){var f={};for(var e in b){f[e]=a.style[e];a.style[e]=b[e]}d.call(a);for(e in b)a.style[e]=f[e]}});if(c.expr&&c.expr.filters){c.expr.filters.hidden=function(a){var b= | ||
119 | a.offsetWidth,d=a.offsetHeight,f=a.nodeName.toLowerCase()==="tr";return b===0&&d===0&&!f?true:b>0&&d>0&&!f?false:c.curCSS(a,"display")==="none"};c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)}}var sb=J(),tb=/<script(.|\s)*?\/script>/gi,ub=/select|textarea/i,vb=/color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week/i,N=/=\?(&|$)/,ka=/\?/,wb=/(\?|&)_=.*?(&|$)/,xb=/^(\w+:)?\/\/([^\/?#]+)/,yb=/%20/g,zb=c.fn.load;c.fn.extend({load:function(a,b,d){if(typeof a!== | ||
120 | "string")return zb.call(this,a);else if(!this.length)return this;var f=a.indexOf(" ");if(f>=0){var e=a.slice(f,a.length);a=a.slice(0,f)}f="GET";if(b)if(c.isFunction(b)){d=b;b=null}else if(typeof b==="object"){b=c.param(b,c.ajaxSettings.traditional);f="POST"}var j=this;c.ajax({url:a,type:f,dataType:"html",data:b,complete:function(i,o){if(o==="success"||o==="notmodified")j.html(e?c("<div />").append(i.responseText.replace(tb,"")).find(e):i.responseText);d&&j.each(d,[i.responseText,o,i])}});return this}, | ||
121 | serialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?c.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||ub.test(this.nodeName)||vb.test(this.type))}).map(function(a,b){a=c(this).val();return a==null?null:c.isArray(a)?c.map(a,function(d){return{name:b.name,value:d}}):{name:b.name,value:a}}).get()}});c.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "), | ||
122 | function(a,b){c.fn[b]=function(d){return this.bind(b,d)}});c.extend({get:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b=null}return c.ajax({type:"GET",url:a,data:b,success:d,dataType:f})},getScript:function(a,b){return c.get(a,null,b,"script")},getJSON:function(a,b,d){return c.get(a,b,d,"json")},post:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b={}}return c.ajax({type:"POST",url:a,data:b,success:d,dataType:f})},ajaxSetup:function(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href, | ||
123 | global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:A.XMLHttpRequest&&(A.location.protocol!=="file:"||!A.ActiveXObject)?function(){return new A.XMLHttpRequest}:function(){try{return new A.ActiveXObject("Microsoft.XMLHTTP")}catch(a){}},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},etag:{},ajax:function(a){function b(){e.success&& | ||
124 | e.success.call(k,o,i,x);e.global&&f("ajaxSuccess",[x,e])}function d(){e.complete&&e.complete.call(k,x,i);e.global&&f("ajaxComplete",[x,e]);e.global&&!--c.active&&c.event.trigger("ajaxStop")}function f(q,p){(e.context?c(e.context):c.event).trigger(q,p)}var e=c.extend(true,{},c.ajaxSettings,a),j,i,o,k=a&&a.context||e,n=e.type.toUpperCase();if(e.data&&e.processData&&typeof e.data!=="string")e.data=c.param(e.data,e.traditional);if(e.dataType==="jsonp"){if(n==="GET")N.test(e.url)||(e.url+=(ka.test(e.url)? | ||
125 | "&":"?")+(e.jsonp||"callback")+"=?");else if(!e.data||!N.test(e.data))e.data=(e.data?e.data+"&":"")+(e.jsonp||"callback")+"=?";e.dataType="json"}if(e.dataType==="json"&&(e.data&&N.test(e.data)||N.test(e.url))){j=e.jsonpCallback||"jsonp"+sb++;if(e.data)e.data=(e.data+"").replace(N,"="+j+"$1");e.url=e.url.replace(N,"="+j+"$1");e.dataType="script";A[j]=A[j]||function(q){o=q;b();d();A[j]=w;try{delete A[j]}catch(p){}z&&z.removeChild(C)}}if(e.dataType==="script"&&e.cache===null)e.cache=false;if(e.cache=== | ||
126 | false&&n==="GET"){var r=J(),u=e.url.replace(wb,"$1_="+r+"$2");e.url=u+(u===e.url?(ka.test(e.url)?"&":"?")+"_="+r:"")}if(e.data&&n==="GET")e.url+=(ka.test(e.url)?"&":"?")+e.data;e.global&&!c.active++&&c.event.trigger("ajaxStart");r=(r=xb.exec(e.url))&&(r[1]&&r[1]!==location.protocol||r[2]!==location.host);if(e.dataType==="script"&&n==="GET"&&r){var z=s.getElementsByTagName("head")[0]||s.documentElement,C=s.createElement("script");C.src=e.url;if(e.scriptCharset)C.charset=e.scriptCharset;if(!j){var B= | ||
127 | false;C.onload=C.onreadystatechange=function(){if(!B&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){B=true;b();d();C.onload=C.onreadystatechange=null;z&&C.parentNode&&z.removeChild(C)}}}z.insertBefore(C,z.firstChild);return w}var E=false,x=e.xhr();if(x){e.username?x.open(n,e.url,e.async,e.username,e.password):x.open(n,e.url,e.async);try{if(e.data||a&&a.contentType)x.setRequestHeader("Content-Type",e.contentType);if(e.ifModified){c.lastModified[e.url]&&x.setRequestHeader("If-Modified-Since", | ||
128 | c.lastModified[e.url]);c.etag[e.url]&&x.setRequestHeader("If-None-Match",c.etag[e.url])}r||x.setRequestHeader("X-Requested-With","XMLHttpRequest");x.setRequestHeader("Accept",e.dataType&&e.accepts[e.dataType]?e.accepts[e.dataType]+", */*":e.accepts._default)}catch(ga){}if(e.beforeSend&&e.beforeSend.call(k,x,e)===false){e.global&&!--c.active&&c.event.trigger("ajaxStop");x.abort();return false}e.global&&f("ajaxSend",[x,e]);var g=x.onreadystatechange=function(q){if(!x||x.readyState===0||q==="abort"){E|| | ||
129 | d();E=true;if(x)x.onreadystatechange=c.noop}else if(!E&&x&&(x.readyState===4||q==="timeout")){E=true;x.onreadystatechange=c.noop;i=q==="timeout"?"timeout":!c.httpSuccess(x)?"error":e.ifModified&&c.httpNotModified(x,e.url)?"notmodified":"success";var p;if(i==="success")try{o=c.httpData(x,e.dataType,e)}catch(v){i="parsererror";p=v}if(i==="success"||i==="notmodified")j||b();else c.handleError(e,x,i,p);d();q==="timeout"&&x.abort();if(e.async)x=null}};try{var h=x.abort;x.abort=function(){x&&h.call(x); | ||
130 | g("abort")}}catch(l){}e.async&&e.timeout>0&&setTimeout(function(){x&&!E&&g("timeout")},e.timeout);try{x.send(n==="POST"||n==="PUT"||n==="DELETE"?e.data:null)}catch(m){c.handleError(e,x,null,m);d()}e.async||g();return x}},handleError:function(a,b,d,f){if(a.error)a.error.call(a.context||a,b,d,f);if(a.global)(a.context?c(a.context):c.event).trigger("ajaxError",[b,a,f])},active:0,httpSuccess:function(a){try{return!a.status&&location.protocol==="file:"||a.status>=200&&a.status<300||a.status===304||a.status=== | ||
131 | 1223||a.status===0}catch(b){}return false},httpNotModified:function(a,b){var d=a.getResponseHeader("Last-Modified"),f=a.getResponseHeader("Etag");if(d)c.lastModified[b]=d;if(f)c.etag[b]=f;return a.status===304||a.status===0},httpData:function(a,b,d){var f=a.getResponseHeader("content-type")||"",e=b==="xml"||!b&&f.indexOf("xml")>=0;a=e?a.responseXML:a.responseText;e&&a.documentElement.nodeName==="parsererror"&&c.error("parsererror");if(d&&d.dataFilter)a=d.dataFilter(a,b);if(typeof a==="string")if(b=== | ||
132 | "json"||!b&&f.indexOf("json")>=0)a=c.parseJSON(a);else if(b==="script"||!b&&f.indexOf("javascript")>=0)c.globalEval(a);return a},param:function(a,b){function d(i,o){if(c.isArray(o))c.each(o,function(k,n){b||/\[\]$/.test(i)?f(i,n):d(i+"["+(typeof n==="object"||c.isArray(n)?k:"")+"]",n)});else!b&&o!=null&&typeof o==="object"?c.each(o,function(k,n){d(i+"["+k+"]",n)}):f(i,o)}function f(i,o){o=c.isFunction(o)?o():o;e[e.length]=encodeURIComponent(i)+"="+encodeURIComponent(o)}var e=[];if(b===w)b=c.ajaxSettings.traditional; | ||
133 | if(c.isArray(a)||a.jquery)c.each(a,function(){f(this.name,this.value)});else for(var j in a)d(j,a[j]);return e.join("&").replace(yb,"+")}});var la={},Ab=/toggle|show|hide/,Bb=/^([+-]=)?([\d+-.]+)(.*)$/,W,va=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];c.fn.extend({show:function(a,b){if(a||a===0)return this.animate(K("show",3),a,b);else{a=0;for(b=this.length;a<b;a++){var d=c.data(this[a],"olddisplay"); | ||
134 | this[a].style.display=d||"";if(c.css(this[a],"display")==="none"){d=this[a].nodeName;var f;if(la[d])f=la[d];else{var e=c("<"+d+" />").appendTo("body");f=e.css("display");if(f==="none")f="block";e.remove();la[d]=f}c.data(this[a],"olddisplay",f)}}a=0;for(b=this.length;a<b;a++)this[a].style.display=c.data(this[a],"olddisplay")||"";return this}},hide:function(a,b){if(a||a===0)return this.animate(K("hide",3),a,b);else{a=0;for(b=this.length;a<b;a++){var d=c.data(this[a],"olddisplay");!d&&d!=="none"&&c.data(this[a], | ||
135 | "olddisplay",c.css(this[a],"display"))}a=0;for(b=this.length;a<b;a++)this[a].style.display="none";return this}},_toggle:c.fn.toggle,toggle:function(a,b){var d=typeof a==="boolean";if(c.isFunction(a)&&c.isFunction(b))this._toggle.apply(this,arguments);else a==null||d?this.each(function(){var f=d?a:c(this).is(":hidden");c(this)[f?"show":"hide"]()}):this.animate(K("toggle",3),a,b);return this},fadeTo:function(a,b,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,d)}, | ||
136 | animate:function(a,b,d,f){var e=c.speed(b,d,f);if(c.isEmptyObject(a))return this.each(e.complete);return this[e.queue===false?"each":"queue"](function(){var j=c.extend({},e),i,o=this.nodeType===1&&c(this).is(":hidden"),k=this;for(i in a){var n=i.replace(ia,ja);if(i!==n){a[n]=a[i];delete a[i];i=n}if(a[i]==="hide"&&o||a[i]==="show"&&!o)return j.complete.call(this);if((i==="height"||i==="width")&&this.style){j.display=c.css(this,"display");j.overflow=this.style.overflow}if(c.isArray(a[i])){(j.specialEasing= | ||
137 | j.specialEasing||{})[i]=a[i][1];a[i]=a[i][0]}}if(j.overflow!=null)this.style.overflow="hidden";j.curAnim=c.extend({},a);c.each(a,function(r,u){var z=new c.fx(k,j,r);if(Ab.test(u))z[u==="toggle"?o?"show":"hide":u](a);else{var C=Bb.exec(u),B=z.cur(true)||0;if(C){u=parseFloat(C[2]);var E=C[3]||"px";if(E!=="px"){k.style[r]=(u||1)+E;B=(u||1)/z.cur(true)*B;k.style[r]=B+E}if(C[1])u=(C[1]==="-="?-1:1)*u+B;z.custom(B,u,E)}else z.custom(B,u,"")}});return true})},stop:function(a,b){var d=c.timers;a&&this.queue([]); | ||
138 | this.each(function(){for(var f=d.length-1;f>=0;f--)if(d[f].elem===this){b&&d[f](true);d.splice(f,1)}});b||this.dequeue();return this}});c.each({slideDown:K("show",1),slideUp:K("hide",1),slideToggle:K("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(a,b){c.fn[a]=function(d,f){return this.animate(b,d,f)}});c.extend({speed:function(a,b,d){var f=a&&typeof a==="object"?a:{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};f.duration=c.fx.off?0:typeof f.duration=== | ||
139 | "number"?f.duration:c.fx.speeds[f.duration]||c.fx.speeds._default;f.old=f.complete;f.complete=function(){f.queue!==false&&c(this).dequeue();c.isFunction(f.old)&&f.old.call(this)};return f},easing:{linear:function(a,b,d,f){return d+f*a},swing:function(a,b,d,f){return(-Math.cos(a*Math.PI)/2+0.5)*f+d}},timers:[],fx:function(a,b,d){this.options=b;this.elem=a;this.prop=d;if(!b.orig)b.orig={}}});c.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(c.fx.step[this.prop]|| | ||
140 | c.fx.step._default)(this);if((this.prop==="height"||this.prop==="width")&&this.elem.style)this.elem.style.display="block"},cur:function(a){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];return(a=parseFloat(c.css(this.elem,this.prop,a)))&&a>-10000?a:parseFloat(c.curCSS(this.elem,this.prop))||0},custom:function(a,b,d){function f(j){return e.step(j)}this.startTime=J();this.start=a;this.end=b;this.unit=d||this.unit||"px";this.now=this.start; | ||
141 | this.pos=this.state=0;var e=this;f.elem=this.elem;if(f()&&c.timers.push(f)&&!W)W=setInterval(c.fx.tick,13)},show:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur());c(this.elem).show()},hide:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(a){var b=J(),d=true;if(a||b>=this.options.duration+this.startTime){this.now= | ||
142 | this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var f in this.options.curAnim)if(this.options.curAnim[f]!==true)d=false;if(d){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;a=c.data(this.elem,"olddisplay");this.elem.style.display=a?a:this.options.display;if(c.css(this.elem,"display")==="none")this.elem.style.display="block"}this.options.hide&&c(this.elem).hide();if(this.options.hide||this.options.show)for(var e in this.options.curAnim)c.style(this.elem, | ||
143 | e,this.options.orig[e]);this.options.complete.call(this.elem)}return false}else{e=b-this.startTime;this.state=e/this.options.duration;a=this.options.easing||(c.easing.swing?"swing":"linear");this.pos=c.easing[this.options.specialEasing&&this.options.specialEasing[this.prop]||a](this.state,e,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};c.extend(c.fx,{tick:function(){for(var a=c.timers,b=0;b<a.length;b++)a[b]()||a.splice(b--,1);a.length|| | ||
144 | c.fx.stop()},stop:function(){clearInterval(W);W=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){c.style(a.elem,"opacity",a.now)},_default:function(a){if(a.elem.style&&a.elem.style[a.prop]!=null)a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit;else a.elem[a.prop]=a.now}}});if(c.expr&&c.expr.filters)c.expr.filters.animated=function(a){return c.grep(c.timers,function(b){return a===b.elem}).length};c.fn.offset="getBoundingClientRect"in s.documentElement? | ||
145 | function(a){var b=this[0];if(a)return this.each(function(e){c.offset.setOffset(this,a,e)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);var d=b.getBoundingClientRect(),f=b.ownerDocument;b=f.body;f=f.documentElement;return{top:d.top+(self.pageYOffset||c.support.boxModel&&f.scrollTop||b.scrollTop)-(f.clientTop||b.clientTop||0),left:d.left+(self.pageXOffset||c.support.boxModel&&f.scrollLeft||b.scrollLeft)-(f.clientLeft||b.clientLeft||0)}}:function(a){var b= | ||
146 | this[0];if(a)return this.each(function(r){c.offset.setOffset(this,a,r)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);c.offset.initialize();var d=b.offsetParent,f=b,e=b.ownerDocument,j,i=e.documentElement,o=e.body;f=(e=e.defaultView)?e.getComputedStyle(b,null):b.currentStyle;for(var k=b.offsetTop,n=b.offsetLeft;(b=b.parentNode)&&b!==o&&b!==i;){if(c.offset.supportsFixedPosition&&f.position==="fixed")break;j=e?e.getComputedStyle(b,null):b.currentStyle; | ||
147 | k-=b.scrollTop;n-=b.scrollLeft;if(b===d){k+=b.offsetTop;n+=b.offsetLeft;if(c.offset.doesNotAddBorder&&!(c.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(b.nodeName))){k+=parseFloat(j.borderTopWidth)||0;n+=parseFloat(j.borderLeftWidth)||0}f=d;d=b.offsetParent}if(c.offset.subtractsBorderForOverflowNotVisible&&j.overflow!=="visible"){k+=parseFloat(j.borderTopWidth)||0;n+=parseFloat(j.borderLeftWidth)||0}f=j}if(f.position==="relative"||f.position==="static"){k+=o.offsetTop;n+=o.offsetLeft}if(c.offset.supportsFixedPosition&& | ||
148 | f.position==="fixed"){k+=Math.max(i.scrollTop,o.scrollTop);n+=Math.max(i.scrollLeft,o.scrollLeft)}return{top:k,left:n}};c.offset={initialize:function(){var a=s.body,b=s.createElement("div"),d,f,e,j=parseFloat(c.curCSS(a,"marginTop",true))||0;c.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"});b.innerHTML="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>"; | ||
149 | a.insertBefore(b,a.firstChild);d=b.firstChild;f=d.firstChild;e=d.nextSibling.firstChild.firstChild;this.doesNotAddBorder=f.offsetTop!==5;this.doesAddBorderForTableAndCells=e.offsetTop===5;f.style.position="fixed";f.style.top="20px";this.supportsFixedPosition=f.offsetTop===20||f.offsetTop===15;f.style.position=f.style.top="";d.style.overflow="hidden";d.style.position="relative";this.subtractsBorderForOverflowNotVisible=f.offsetTop===-5;this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==j;a.removeChild(b); | ||
150 | c.offset.initialize=c.noop},bodyOffset:function(a){var b=a.offsetTop,d=a.offsetLeft;c.offset.initialize();if(c.offset.doesNotIncludeMarginInBodyOffset){b+=parseFloat(c.curCSS(a,"marginTop",true))||0;d+=parseFloat(c.curCSS(a,"marginLeft",true))||0}return{top:b,left:d}},setOffset:function(a,b,d){if(/static/.test(c.curCSS(a,"position")))a.style.position="relative";var f=c(a),e=f.offset(),j=parseInt(c.curCSS(a,"top",true),10)||0,i=parseInt(c.curCSS(a,"left",true),10)||0;if(c.isFunction(b))b=b.call(a, | ||
151 | d,e);d={top:b.top-e.top+j,left:b.left-e.left+i};"using"in b?b.using.call(a,d):f.css(d)}};c.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),d=this.offset(),f=/^body|html$/i.test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c.curCSS(a,"marginTop",true))||0;d.left-=parseFloat(c.curCSS(a,"marginLeft",true))||0;f.top+=parseFloat(c.curCSS(b[0],"borderTopWidth",true))||0;f.left+=parseFloat(c.curCSS(b[0],"borderLeftWidth",true))||0;return{top:d.top- | ||
152 | f.top,left:d.left-f.left}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||s.body;a&&!/^body|html$/i.test(a.nodeName)&&c.css(a,"position")==="static";)a=a.offsetParent;return a})}});c.each(["Left","Top"],function(a,b){var d="scroll"+b;c.fn[d]=function(f){var e=this[0],j;if(!e)return null;if(f!==w)return this.each(function(){if(j=wa(this))j.scrollTo(!a?f:c(j).scrollLeft(),a?f:c(j).scrollTop());else this[d]=f});else return(j=wa(e))?"pageXOffset"in j?j[a?"pageYOffset": | ||
153 | "pageXOffset"]:c.support.boxModel&&j.document.documentElement[d]||j.document.body[d]:e[d]}});c.each(["Height","Width"],function(a,b){var d=b.toLowerCase();c.fn["inner"+b]=function(){return this[0]?c.css(this[0],d,false,"padding"):null};c.fn["outer"+b]=function(f){return this[0]?c.css(this[0],d,false,f?"margin":"border"):null};c.fn[d]=function(f){var e=this[0];if(!e)return f==null?null:this;if(c.isFunction(f))return this.each(function(j){var i=c(this);i[d](f.call(this,j,i[d]()))});return"scrollTo"in | ||
154 | e&&e.document?e.document.compatMode==="CSS1Compat"&&e.document.documentElement["client"+b]||e.document.body["client"+b]:e.nodeType===9?Math.max(e.documentElement["client"+b],e.body["scroll"+b],e.documentElement["scroll"+b],e.body["offset"+b],e.documentElement["offset"+b]):f===w?c.css(e,d):this.css(d,typeof f==="string"?f:f+"px")}});A.jQuery=A.$=c})(window); | ||
diff --git a/Blocks/countdown/js/lrtk.js b/Blocks/countdown/js/lrtk.js new file mode 100644 index 0000000..04fa8c8 --- /dev/null +++ b/Blocks/countdown/js/lrtk.js | |||
@@ -0,0 +1,130 @@ | |||
1 | $(window).load(function(){ | ||
2 | |||
3 | // We are listening to the window.load event, so we can be sure | ||
4 | // that the images in the slideshow are loaded properly. | ||
5 | |||
6 | |||
7 | // Testing wether the current browser supports the canvas element: | ||
8 | var supportCanvas = 'getContext' in document.createElement('canvas'); | ||
9 | |||
10 | // The canvas manipulations of the images are CPU intensive, | ||
11 | // this is why we are using setTimeout to make them asynchronous | ||
12 | // and improve the responsiveness of the page. | ||
13 | |||
14 | var slides = $('#slideshow li'), | ||
15 | current = 0, | ||
16 | slideshow = {width:0,height:0}; | ||
17 | |||
18 | setTimeout(function(){ | ||
19 | |||
20 | window.console && window.console.time && console.time('Generated In'); | ||
21 | |||
22 | if(supportCanvas){ | ||
23 | $('#slideshow img').each(function(){ | ||
24 | |||
25 | if(!slideshow.width){ | ||
26 | // Taking the dimensions of the first image: | ||
27 | slideshow.width = this.width; | ||
28 | slideshow.height = this.height; | ||
29 | } | ||
30 | |||
31 | // Rendering the modified versions of the images: | ||
32 | createCanvasOverlay(this); | ||
33 | }); | ||
34 | } | ||
35 | |||
36 | window.console && window.console.timeEnd && console.timeEnd('Generated In'); | ||
37 | |||
38 | $('#slideshow .arrow').click(function(){ | ||
39 | var li = slides.eq(current), | ||
40 | canvas = li.find('canvas'), | ||
41 | nextIndex = 0; | ||
42 | |||
43 | // Depending on whether this is the next or previous | ||
44 | // arrow, calculate the index of the next slide accordingly. | ||
45 | |||
46 | if($(this).hasClass('next')){ | ||
47 | nextIndex = current >= slides.length-1 ? 0 : current+1; | ||
48 | } | ||
49 | else { | ||
50 | nextIndex = current <= 0 ? slides.length-1 : current-1; | ||
51 | } | ||
52 | |||
53 | var next = slides.eq(nextIndex); | ||
54 | |||
55 | if(supportCanvas){ | ||
56 | |||
57 | // This browser supports canvas, fade it into view: | ||
58 | |||
59 | canvas.fadeIn(function(){ | ||
60 | |||
61 | // Show the next slide below the current one: | ||
62 | next.show(); | ||
63 | current = nextIndex; | ||
64 | |||
65 | // Fade the current slide out of view: | ||
66 | li.fadeOut(function(){ | ||
67 | li.removeClass('slideActive'); | ||
68 | canvas.hide(); | ||
69 | next.addClass('slideActive'); | ||
70 | }); | ||
71 | }); | ||
72 | } | ||
73 | else { | ||
74 | |||
75 | // This browser does not support canvas. | ||
76 | // Use the plain version of the slideshow. | ||
77 | |||
78 | current=nextIndex; | ||
79 | next.addClass('slideActive').show(); | ||
80 | li.removeClass('slideActive').hide(); | ||
81 | } | ||
82 | }); | ||
83 | |||
84 | },100); | ||
85 | |||
86 | // This function takes an image and renders | ||
87 | // a version of it similar to the Overlay blending | ||
88 | // mode in Photoshop. | ||
89 | |||
90 | function createCanvasOverlay(image){ | ||
91 | |||
92 | var canvas = document.createElement('canvas'), | ||
93 | canvasContext = canvas.getContext("2d"); | ||
94 | |||
95 | // Make it the same size as the image | ||
96 | canvas.width = slideshow.width; | ||
97 | canvas.height = slideshow.height; | ||
98 | |||
99 | // Drawing the default version of the image on the canvas: | ||
100 | canvasContext.drawImage(image,0,0); | ||
101 | |||
102 | |||
103 | // Taking the image data and storing it in the imageData array: | ||
104 | var imageData = canvasContext.getImageData(0,0,canvas.width,canvas.height), | ||
105 | data = imageData.data; | ||
106 | |||
107 | // Loop through all the pixels in the imageData array, and modify | ||
108 | // the red, green, and blue color values. | ||
109 | |||
110 | for(var i = 0,z=data.length;i<z;i++){ | ||
111 | |||
112 | // The values for red, green and blue are consecutive elements | ||
113 | // in the imageData array. We modify the three of them at once: | ||
114 | |||
115 | data[i] = ((data[i] < 128) ? (2*data[i]*data[i] / 255) : (255 - 2 * (255 - data[i]) * (255 - data[i]) / 255)); | ||
116 | data[++i] = ((data[i] < 128) ? (2*data[i]*data[i] / 255) : (255 - 2 * (255 - data[i]) * (255 - data[i]) / 255)); | ||
117 | data[++i] = ((data[i] < 128) ? (2*data[i]*data[i] / 255) : (255 - 2 * (255 - data[i]) * (255 - data[i]) / 255)); | ||
118 | |||
119 | // After the RGB elements is the alpha value, but we leave it the same. | ||
120 | ++i; | ||
121 | } | ||
122 | |||
123 | // Putting the modified imageData back to the canvas. | ||
124 | canvasContext.putImageData(imageData,0,0); | ||
125 | |||
126 | // Inserting the canvas in the DOM, before the image: | ||
127 | image.parentNode.insertBefore(canvas,image); | ||
128 | } | ||
129 | |||
130 | }); | ||
diff --git a/Blocks/countdown/something.png b/Blocks/countdown/something.png new file mode 100644 index 0000000..f571c4a --- /dev/null +++ b/Blocks/countdown/something.png | |||
Binary files differ | |||
diff --git a/Blocks/countdown/waiting.png b/Blocks/countdown/waiting.png new file mode 100644 index 0000000..0b54f92 --- /dev/null +++ b/Blocks/countdown/waiting.png | |||
Binary files differ | |||
diff --git a/Blocks/demo/2(3).jpg b/Blocks/demo/2(3).jpg new file mode 100644 index 0000000..47e2927 --- /dev/null +++ b/Blocks/demo/2(3).jpg | |||
Binary files differ | |||
diff --git a/Blocks/demo/bg.jpg b/Blocks/demo/bg.jpg new file mode 100644 index 0000000..45a85e9 --- /dev/null +++ b/Blocks/demo/bg.jpg | |||
Binary files differ | |||
diff --git a/Blocks/demo/cartedeParis1.html b/Blocks/demo/cartedeParis1.html new file mode 100644 index 0000000..a7268ea --- /dev/null +++ b/Blocks/demo/cartedeParis1.html | |||
@@ -0,0 +1,159 @@ | |||
1 | <!DOCTYPE html> | ||
2 | <html > | ||
3 | <head> | ||
4 | <title>Paris</title> | ||
5 | <meta charset="utf-8" /> | ||
6 | <style> | ||
7 | body, div, h1,h2, form, fieldset, input, textarea, footer,p { | ||
8 | margin: 0; padding: 0; border: 0; outline: none; | ||
9 | } | ||
10 | @font-face { | ||
11 | font-family: 'DeibiRegular'; | ||
12 | src: url('deibi-webfont.eot'); | ||
13 | src: url('deibi-webfont.eot?#iefix') format('embedded-opentype'), | ||
14 | url('deibi-webfont.woff') format('woff'), | ||
15 | url('deibi-webfont.ttf') format('truetype'), | ||
16 | url('deibi-webfont.svg#DeibiRegular') format('svg'); | ||
17 | font-weight: normal; | ||
18 | font-style: normal;} | ||
19 | |||
20 | body, html {background: #f2f2f2; font-family:'DeibiRegular', Helvetica, Arial, sans-serif;} | ||
21 | |||
22 | #wrap { | ||
23 | background: url('images/clouds1000.png') repeat-x, url('images/clouds1200_1.png') repeat-x 0 0, url('images/Paris_sky.jpg') 0 0; | ||
24 | width: 600px; | ||
25 | height: 680px; | ||
26 | overflow: hidden; | ||
27 | display: block; | ||
28 | position: relative; | ||
29 | margin: 0px auto; | ||
30 | border: 0px solid #fff; | ||
31 | -webkit-box-shadow: 0 0 20px #bababa; | ||
32 | -moz-box-shadow: 0 0 20px #bababa; | ||
33 | box-shadow: 0 0 20px #bababa; | ||
34 | -webkit-border-radius: 10px; | ||
35 | -moz-border-radius: 10px; | ||
36 | border-radius: 10px; | ||
37 | -webkit-animation: wind 30s linear infinite; | ||
38 | -moz-animation: wind 80s linear infinite; | ||
39 | } | ||
40 | |||
41 | #eiffel {position:absolute; background: url('images/Paris_eiffel.png') no-repeat ; width:240px; height:462px; right:10px; top: 180px; } | ||
42 | |||
43 | #sparkling1 { position:absolute; background: url('images/sparkling1.png') no-repeat; width:240px; height:462px; opacity:0; | ||
44 | -webkit-animation: sparkling .4s .2s infinite;-moz-animation: sparkling .4s .2s infinite; } | ||
45 | |||
46 | |||
47 | #sparkling2 { position:absolute;background: url('images/sparkling2.png') no-repeat; width:240px; height:462px; opacity:0; | ||
48 | -webkit-animation: sparkling .4s infinite; -moz-animation: sparkling .4s linear infinite; } | ||
49 | |||
50 | #eiffel_wrap {position:absolute; width:240px; height:462px; right:10px; top: 180px;opacity:0; | ||
51 | -webkit-animation: eiffel_wrap 30s 1s infinite; -moz-animation: eiffel_wrap 30s 1s infinite; } | ||
52 | |||
53 | |||
54 | #roofs {width: 600px; height: 900px; position:relative; | ||
55 | background: url('images/clouds1200_2.png') repeat-x left 200px, url('images/Paris_roofs.png') repeat-x left bottom ; | ||
56 | -webkit-animation: wind1 70s linear infinite; -moz-animation: wind1 70s linear infinite;} | ||
57 | |||
58 | #phare {position:absolute; background: url('images/phare.png'); width:130px; height:510px; right:64px; top: 185px; opacity:0; | ||
59 | -webkit-transform-origin: center top; -webkit-animation: phare 15s linear infinite; | ||
60 | -moz-transform-origin: center top; -moz-animation: phare 15s linear infinite;} | ||
61 | |||
62 | h1 {position:absolute; top: 180px; left:45px; text-shadow: 0 4px 5px #8c8c8C;color: #f2f2f2; font-size:48px;} | ||
63 | h1 em {font-style:normal; font-size: 60px;} | ||
64 | footer {position:absolute; bottom: 10px; right: 10px;font-size:14px;color: #838383;} | ||
65 | |||
66 | @-webkit-keyframes wind { | ||
67 | 0% {background-position: 0px 200px,0px 350px, left top;} | ||
68 | 50% {background-position: 500px 40px,600px 450px, left top;} | ||
69 | 100% {background-position: 1000px 200px,1200px 350px, left top} | ||
70 | } | ||
71 | |||
72 | @-moz-keyframes wind { | ||
73 | 0% {background-position: 0px 200px,0px 350px, left top;} | ||
74 | 50% {background-position: 500px 40px,600px 450px, left top;} | ||
75 | 100% {background-position: 1000px 200px,1200px 350px, left top} | ||
76 | } | ||
77 | |||
78 | @-webkit-keyframes wind1 { | ||
79 | 0% {background-position: 100px 250px, left bottom;} | ||
80 | 50% {background-position: 650px 150px, left bottom;} | ||
81 | 100% {background-position: 1300px 250px, left bottom} | ||
82 | } | ||
83 | |||
84 | @-moz-keyframes wind1 { | ||
85 | 0% {background-position: 100px 250px, left bottom;} | ||
86 | 50% {background-position: 650px 150px, left bottom;} | ||
87 | 100% {background-position: 1300px 250px, left bottom} | ||
88 | } | ||
89 | |||
90 | @-webkit-keyframes sparkling { | ||
91 | 0% {opacity:0;} | ||
92 | 50%{opacity:1;} | ||
93 | 100% {opacity:0;} | ||
94 | } | ||
95 | |||
96 | @-moz-keyframes sparkling { | ||
97 | 0% {opacity:0;} | ||
98 | 50%{opacity:1;} | ||
99 | 100% {opacity:0;} | ||
100 | } | ||
101 | |||
102 | @-webkit-keyframes eiffel_wrap { | ||
103 | 0% {opacity:1;-webkit-animation-timing-function: steps(1);} | ||
104 | 40%{opacity:0;} | ||
105 | 100% {opacity:0;} | ||
106 | } | ||
107 | |||
108 | |||
109 | |||
110 | @-moz-keyframes eiffel_wrap { | ||
111 | 0% {opacity:1;-moz-animation-timing-function: steps(1);} | ||
112 | 40%{opacity:0;} | ||
113 | 100% {opacity:0;} | ||
114 | } | ||
115 | |||
116 | @-webkit-keyframes phare { | ||
117 | 0% { -webkit-transform:rotate(0deg); opacity:0 } | ||
118 | 40% { -webkit-transform:rotate(144deg); opacity:.2 } | ||
119 | 50% { -webkit-transform:rotate(180deg); opacity:1 } | ||
120 | 60% { -webkit-transform:rotate(216deg); opacity:.2 } | ||
121 | 100% { -webkit-transform:rotate(360deg); opacity:0; } | ||
122 | } | ||
123 | |||
124 | @-moz-keyframes phare { | ||
125 | 0% { -moz-transform:rotate(0deg); opacity:0 } | ||
126 | 40% { -moz-transform:rotate(144deg); opacity:.2 } | ||
127 | 50% { -moz-transform:rotate(180deg); opacity:1 } | ||
128 | 60% { -moz-transform:rotate(216deg); opacity:.2 } | ||
129 | 100% { -moz-transform:rotate(360deg); opacity:0; } | ||
130 | } | ||
131 | |||
132 | |||
133 | body,td,th { | ||
134 | font-family: DeibiRegular, Helvetica, Arial, sans-serif; | ||
135 | } | ||
136 | </style> | ||
137 | </head> | ||
138 | |||
139 | <body> | ||
140 | <div id="wrap"> | ||
141 | <h1>Happy Birthday <em>Tiga !</em></h1> | ||
142 | <div id="phare"></div> | ||
143 | <div id="eiffel"></div> | ||
144 | <div id="eiffel_wrap"> | ||
145 | <div id="sparkling1"></div> | ||
146 | <div id="sparkling2"></div> | ||
147 | </div> | ||
148 | <div id="roofs"></div> | ||
149 | <footer>by Jinwei, Paris 2013</footer> | ||
150 | </div> | ||
151 | |||
152 | <!-- jinwei.me Baidu tongji analytics --> | ||
153 | <script type="text/javascript"> | ||
154 | var _bdhmProtocol = (("https:" == document.location.protocol) ? " https://" : " http://"); | ||
155 | document.write(unescape("%3Cscript src='" + _bdhmProtocol + "hm.baidu.com/h.js%3F91918ac6d6854623883a2b546ebc00ac' type='text/javascript'%3E%3C/script%3E")); | ||
156 | </script> | ||
157 | |||
158 | </body> | ||
159 | </html> \ No newline at end of file | ||
diff --git a/Blocks/demo/deibi-webfont.eot b/Blocks/demo/deibi-webfont.eot new file mode 100644 index 0000000..f8fd431 --- /dev/null +++ b/Blocks/demo/deibi-webfont.eot | |||
Binary files differ | |||
diff --git a/Blocks/demo/deibi-webfont.svg b/Blocks/demo/deibi-webfont.svg new file mode 100644 index 0000000..6022466 --- /dev/null +++ b/Blocks/demo/deibi-webfont.svg | |||
@@ -0,0 +1,213 @@ | |||
1 | <?xml version="1.0" standalone="no"?> | ||
2 | <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" > | ||
3 | <svg xmlns="http://www.w3.org/2000/svg"> | ||
4 | <metadata> | ||
5 | This is a custom SVG webfont generated by Font Squirrel. | ||
6 | Copyright : Generated in 2009 by FontLab Studio Copyright info pending | ||
7 | </metadata> | ||
8 | <defs> | ||
9 | <font id="DeibiRegular" horiz-adv-x="1024" > | ||
10 | <font-face units-per-em="2048" ascent="1536" descent="-512" /> | ||
11 | <missing-glyph horiz-adv-x="507" /> | ||
12 | <glyph unicode=" " horiz-adv-x="507" /> | ||
13 | <glyph unicode="	" horiz-adv-x="507" /> | ||
14 | <glyph unicode=" " horiz-adv-x="507" /> | ||
15 | <glyph unicode="!" horiz-adv-x="333" d="M131 281q0 545 8 708q2 35 6 243q3 139 3 185q0 23 -1 23l19 -2h39l18 -2l-4 -430q0 -18 -2 -193.5t-5 -350.5t-3 -179zM133 2l84 -4l-4 188q-18 -2 -38 -3t-38 1z" /> | ||
16 | <glyph unicode=""" horiz-adv-x="561" d="M27 1149q3 -5 12 -5q22 0 78 30q78 43 86 141l-78 10v24v48q0 33 -1 53t-3 20l40 -2l85 -4l43 -2q-14 -203 -58 -280q-18 -35 -68 -62.5t-91 -38.5l-41 -10zM250 1149q3 -5 12 -5q22 0 78 30q78 43 86 141l-78 10v25v47q0 33 -1 53t-3 20l40 -2l85 -4l43 -2 q-14 -203 -57 -280q-18 -35 -68.5 -62.5t-91.5 -38.5l-41 -10z" /> | ||
17 | <glyph unicode="$" horiz-adv-x="915" d="M59 1167q0 84 32 145.5t84 93.5t102.5 47t103.5 20q23 2 76 2v65h18l37 -4h20q0 -31 -2 -70q160 -23 232 -104q37 -43 53 -102.5t19 -96.5l2 -39l-91 -8q1 13 1 25q0 90 -52 153q-59 72 -164 97q-3 -169 -3 -240q0 -35 1 -45q0 -90 -6 -322q121 -80 200 -146.5 t116 -139.5q43 -84 48 -169q1 -11 1 -22q0 -73 -29 -136q-33 -73 -121 -124t-223 -63v-101h-12q-8 0 -23.5 -1t-25.5 -1l-11 2v99q-4 0 -8 -1t-8 -1q-78 0 -137.5 20t-95 54t-59 74t-33 80t-13.5 73.5t-2 54.5v20l76 -6q0 -37 8 -78t30.5 -94t75 -90t127.5 -41q12 -2 39 -2 v138q0 79 -1 135.5t-1 62.5q0 188 2 356q-96 63 -144 99t-114.5 95.5t-95.5 117t-29 118.5zM150 1155q0 -55 47 -113.5t99 -99.5t148 -104q0 219 5 252q0 10 1 60t3 125t2 126h-18q-38 0 -76 -7q-48 -8 -100 -31.5t-82 -76.5q-29 -50 -29 -121v-10zM514 47q129 8 213 76 q80 66 80 211v14q-2 90 -77 168t-210 170q0 -61 -2 -127.5t-3 -104.5t-1 -40v-367z" /> | ||
18 | <glyph unicode="%" horiz-adv-x="817" d="M0 2q2 6 187.5 328.5t197.5 353.5q8 23 93 211l165 365l82 176h24q21 0 46 -2h22q-336 -698 -360.5 -782.5t-360.5 -653.5q-86 0 -96 4zM66 1251.5q0 71.5 42 121.5t101 50t103 -51t44 -120.5t-44 -121t-103 -51.5t-101 50.5t-42 122zM135 1253q0 -41 21.5 -69.5 t52.5 -28.5t51.5 28.5t20.5 69.5t-20.5 71t-51.5 30t-52.5 -30t-21.5 -71zM446 174q0 72 42 122t101.5 50t103.5 -51t44 -121t-44 -121t-103.5 -51t-101.5 50t-42 122zM516 176q0 -41 21.5 -69.5t52.5 -28.5t51.5 28.5t20.5 69.5t-20.5 70.5t-51.5 29.5t-52.5 -29.5 t-21.5 -70.5z" /> | ||
19 | <glyph unicode="&" horiz-adv-x="1167" d="M86 289q0 131 91 239.5t255 227.5q-147 180 -188 254q-39 68 -43 147v18q0 68 25 129q30 70 110 117t199 47q195 0 271.5 -86t76.5 -260q0 -55 -24.5 -106t-81 -102.5t-98.5 -83t-126 -89.5l338 -413q100 123 164 241l75 -22q-74 -137 -192 -277l184 -223l-43 -57 l-192 221q-219 -229 -426 -236h-14q-361 0 -361 314zM174 291q0 -78 25.5 -130t72.5 -75t89.5 -29t97.5 -6q184 2 381 215l-357 426q-147 -100 -228 -193t-81 -208zM281 1159q1 -64 38 -117q23 -37 183 -237l78 58l68 52q48 37 66 57l44 50q26 31 35.5 57.5t9.5 53.5 q0 145 -63 209q-60 59 -187 59h-16q-82 -2 -142.5 -38t-87.5 -88q-27 -49 -27 -109q0 -4 1 -7z" /> | ||
20 | <glyph unicode="'" horiz-adv-x="385" d="M61 1149q3 -5 12 -5q22 0 79 30q78 43 86 141l-78 10v25v47q0 33 -1 53t-3 20l40 -2l85 -4l43 -2q-14 -203 -58 -280q-18 -35 -68.5 -62.5t-91.5 -38.5l-40 -10z" /> | ||
21 | <glyph unicode="(" horiz-adv-x="739" d="M111 469q0 104 17 253.5t44 223.5q141 412 463 412l4 -86q-45 -6 -74.5 -13.5t-78 -28t-92.5 -65.5t-83 -112q-49 -84 -79.5 -262.5t-30.5 -323.5q0 -158 75.5 -347.5t133.5 -244.5q45 -43 66.5 -59.5t81.5 -32.5q48 -13 117 -13q17 0 36 1v-78q-12 0 -52 -1 q-21 -1 -34 -1t-19 1q-12 1 -47 3t-50 8l-45 17q-30 12 -48 28l-45 40q-27 24 -50.5 56.5t-48.5 73.5q-63 104 -112 263t-49 288z" /> | ||
22 | <glyph unicode=")" horiz-adv-x="761" d="M78 -229q18 -1 36 -1q68 0 117 13q60 16 81.5 32.5t66.5 59.5q57 55 133 244.5t76 347.5q0 145 -31 323.5t-80 262.5q-39 68 -83 112.5t-92 65t-77.5 28t-74.5 13.5l4 86q322 0 462 -412q27 -74 44.5 -223.5t17.5 -253.5q0 -129 -49 -287.5t-113 -263.5q-29 -47 -57 -82 l-50 -60q-22 -24 -57 -40.5t-49 -24.5t-56 -13l-50 -6q-5 -1 -20 -1t-41 1q-52 1 -58 1q-1 39 -1 58.5t1 19.5z" /> | ||
23 | <glyph unicode="*" horiz-adv-x="598" d="M27 784l204 154l-198 160l43 59q4 -4 172 -133q0 176 4 209l80 4q0 -2 -4 -227l186 139l47 -57q-6 -4 -34 -27l-76 -58l-91 -69l195 -152l-45 -67q-16 10 -186 145q0 -53 -2.5 -109.5t-3.5 -89t-1 -34.5l-73 -2q0 109 2 219q-133 -102 -166 -125z" /> | ||
24 | <glyph unicode="+" horiz-adv-x="700" d="M31 735q72 0 258 -6q0 47 1 113.5t2 101.5t1 43l80 4q0 -74 -6 -264q203 -6 270 -6l2 -74q-141 0 -274 2q-6 -199 -7 -264l-73 -2q0 137 2 268q-45 0 -110.5 1t-99.5 2t-42 1z" /> | ||
25 | <glyph unicode="," horiz-adv-x="483" d="M80 -162q2 -5 11 -5q21 0 79 28q78 43 86 141l-78 10v24v48q0 33 -1 53.5t-3 20.5l40 -2l85 -4l43 -2q-14 -203 -57 -281q-18 -35 -68.5 -62.5t-91.5 -37.5l-41 -11z" /> | ||
26 | <glyph unicode="-" horiz-adv-x="677" d="M31 735q18 0 164.5 -3t291 -7t150.5 -4l2 -74q-440 0 -604 8z" /> | ||
27 | <glyph unicode="." horiz-adv-x="374" d="M94 14l12 146l148 -6v-152z" /> | ||
28 | <glyph unicode="/" horiz-adv-x="935" d="M47 2q2 6 202 319.5t212 344.5q8 23 87 215l152 372l72 183h25q20 0 43 -2h24q-307 -717 -332 -801q-10 -37 -107 -195l-189 -299l-93 -141q-86 0 -96 4z" /> | ||
29 | <glyph unicode="0" horiz-adv-x="1155" d="M51 702q0 139 64 347q51 172 180 277.5t283 105.5q166 0 294.5 -124t190.5 -329q41 -133 41 -277q0 -117 -35 -248.5t-72 -185.5q-100 -141 -198.5 -217t-220.5 -76q-238 0 -398 254q-129 205 -129 473zM141 700q0 -158 71 -325.5t130 -224.5q94 -92 240 -93 q184 0 312 187.5t128 455.5q0 141 -58.5 292t-117.5 220q-111 133 -264 134q-201 0 -328 -191q-113 -168 -113 -455z" /> | ||
30 | <glyph unicode="1" horiz-adv-x="499" d="M20 1319q0 -2 84 50l111 69v2l18 -2h37l21 -2l-4 -430q0 -18 -3 -186.5t-7.5 -334.5t-4.5 -172v-245h174l3 -60l-338 -16q-20 2 -37 2l6 69q55 2 121 3q0 45 -1 126.5t-1 88.5q0 545 8 708q0 10 2 70.5t4 143.5t2 136l-166 -92q-2 4 -5 12.5t-9 23.5t-10 26z" /> | ||
31 | <glyph unicode="2" horiz-adv-x="796" d="M2 8l6 84q25 18 65 51t144.5 130.5t184 190.5t148 213t75.5 216q2 31 2 60q0 85 -17 155q-24 94 -66 144.5t-85 76t-84 27.5h-11q-43 0 -111 -14q-77 -15 -130 -31l-55 -17l-5 11l-11 22l-11 22q-4 9 -2 7l31 14q31 14 79 30.5t107 29.5q39 9 81 9q21 0 43 -2 q66 -7 125.5 -36t111 -102.5t79.5 -184.5q17 -74 17 -144q0 -44 -7 -86q-16 -110 -66 -212.5t-116.5 -191.5t-140.5 -160.5t-135.5 -124t-100.5 -80.5l-41 -27l670 2l-6 -90q-4 4 -385 6z" /> | ||
32 | <glyph unicode="3" horiz-adv-x="825" d="M43 113l4 18q4 16 6 33l4 18q207 -98 244 -104q16 -2 46 -3h13q28 0 70 3q53 4 101.5 26.5t91.5 59.5t64 108q12 44 12 97q0 34 -5 71q-25 193 -239 219q-27 3 -52 3t-47 -3v97h29q18 0 64.5 15t82 46t64.5 102.5t29 174.5q0 115 -55.5 176t-134.5 66q-25 2 -49 2 q-54 0 -108 -8q-77 -11 -133 -32l-55 -20q-27 59 -33 63q206 94 349 94q147 0 227 -100q37 -45 57 -110q23 -74 25 -143v-16q0 -58 -12 -102q-15 -49 -38.5 -92t-50 -70.5t-51 -47t-39.5 -29.5l-16 -8q10 0 28.5 -2t63.5 -17.5t81 -41t67.5 -82t35.5 -134.5q1 -19 1 -38 q0 -137 -65 -235q-75 -110 -178 -150q-76 -29 -150 -29q-28 0 -56 4q-39 6 -76 15t-65.5 20.5t-54 23.5t-43 22.5t-31 20.5t-17.5 15z" /> | ||
33 | <glyph unicode="4" horiz-adv-x="944" d="M29 524l651 910v6l18 -2h39l19 -2v-4h4l-4 -9q-2 -31 -4 -210q-1 -89 -1 -141t1 -66q0 -57 -9 -431q240 -12 250 -18l-6 -76q-125 12 -246 19q0 -43 -1 -89t-2 -71t-1 -27v-245h174l2 -60l-338 -16q-18 2 -36 2l6 69q55 2 121 3q0 45 -1 126.5t-1 88.5q0 109 2 223 q-45 2 -79 2t-57 -2l-444 -49zM123 528l99 16q61 9 206 24q127 12 215 12h23q4 389 6 409q0 10 1 63.5t3 131.5t2 129z" /> | ||
34 | <glyph unicode="5" horiz-adv-x="819" d="M2 846q10 37 24 98l47 191l53 214q19 77 19 83q17 -2 61 -2q64 0 152 1t181 1h153h66q4 -4 4 -68q0 -2 -288 -7q-206 -4 -266 -4q-23 0 -24 1l-24 -107q-27 -106 -51 -213l-25 -106q14 -2 40 -4t98.5 -15.5t138 -32t146.5 -55.5t138 -83t97 -116.5t40 -154.5 q0 -141 -27.5 -237.5t-83 -147.5t-122 -72.5t-158.5 -21.5h-8q-221 0 -332 114l-14 17l8 16l16 33l9 18q12 -14 36.5 -33.5t103.5 -52t165 -32.5q158 2 244 99q81 92 81 307v26q-2 92 -74.5 162.5t-175 103.5t-204 53.5t-172.5 24.5z" /> | ||
35 | <glyph unicode="6" horiz-adv-x="1015" d="M53 737q16 291 193 499q163 191 338 191q16 0 32 -2q213 -18 330 -174q18 -27 19 -26q-62 -58 -64 -58l-8 9q-6 8 -20 21l-30 30q-16 16 -38.5 33.5t-47 33t-53 26.5t-57.5 15q-22 3 -44 3q-177 0 -320 -195q-133 -185 -133 -477q0 -88 12 -187q0 29 6 61.5t31.5 82 t67.5 85t125 61.5q77 24 178 24h16q106 -2 182 -38t115 -95.5t56 -122t19 -136.5v-12q0 -199 -128 -317q-117 -107 -239 -107q-16 0 -32 2q-223 23 -373 248q-135 203 -135 465q0 28 2 57zM231 422v-10q0 -47 16 -98q19 -58 56 -115.5t108.5 -97.5t166.5 -46q12 -1 23 -1 q38 0 70 11q42 13 70.5 39.5t51 55t36 64.5t21.5 60.5t14 51.5l4 24q4 12 5 45v6q0 31 -10 80q-11 52 -36.5 98t-84 81t-140.5 37q-14 1 -28 1q-93 0 -160 -24q-78 -27 -115 -75t-51.5 -92t-16.5 -95z" /> | ||
36 | <glyph unicode="7" horiz-adv-x="690" d="M20 1343q3 89 5 89h22h60q36 0 84.5 1t101.5 1h106h102h85h59h23l-4 -9l-246 -622q94 -2 141 -2t47 2v-19q-2 -18 -4 -39v-20h-12q-12 0 -32.5 1t-46.5 2t-57.5 2t-62.5 1l-35 -98l-221 -637q-86 0 -96 4l246 666l24 65h-2h-2h-2h-2h-2h-2h-2h-2h-2h-2h-2h-2h-2h-2 l-129 2l2 72q86 -2 182 -2l207 547z" /> | ||
37 | <glyph unicode="8" horiz-adv-x="847" d="M27 360q0 88 27.5 157t67.5 103.5t80 58t68 30.5l27 6q-10 4 -26.5 13t-59.5 44t-75 77t-56 113q-22 62 -22 130q0 11 1 22q4 100 45 169t103.5 98.5t114 40t104.5 10.5q51 0 106.5 -15.5t114 -50.5t96 -105.5t37.5 -166.5q0 -45 -8 -86t-22.5 -73t-33 -60.5t-38 -50 t-40 -40t-38.5 -31t-32.5 -20.5t-22.5 -12l-8 -4h10q10 -2 26.5 -6t38 -11.5t45 -20.5t47 -31.5t45 -47.5t38 -64.5t26.5 -86t10 -107.5q0 -98 -32.5 -172t-91 -115t-124 -60.5t-141.5 -19.5q-66 0 -132 19.5t-131 61.5t-104.5 121t-39.5 183zM102 348q0 -129 104.5 -222 t235.5 -93q127 0 218.5 93t91.5 224t-99.5 226.5t-228.5 95.5t-225.5 -96.5t-96.5 -227.5zM141 1057q0 -111 94.5 -204t196.5 -93q100 0 184 105.5t84 219.5q0 111 -84 192t-198 81q-133 0 -205 -89t-72 -212z" /> | ||
38 | <glyph unicode="9" horiz-adv-x="995" d="M31 172q61 57 63 57l8 -8q6 -8 20 -22l30 -29q16 -16 38.5 -33.5t47 -33t53 -26.5t57.5 -16q22 -3 44 -3q177 0 321 196q133 184 133 474q0 89 -12 187q0 -29 -6.5 -61.5t-33 -80.5t-68.5 -85t-125 -62q-77 -22 -175 -22h-16q-106 2 -182 38t-115 95.5t-56.5 122 t-19.5 135.5v12q0 196 126 310q126 113 264 113h9q258 -6 392 -230q116 -195 116 -463q0 -38 -2 -78q-16 -291 -194 -499q-163 -190 -338 -190q-16 0 -31 1q-213 18 -330 174zM122 991v-6q0 -31 10 -79q11 -52 37 -98t84 -81t140 -37q15 -1 29 -1q92 0 159 23 q78 27 115 75.5t51.5 92.5t16.5 95v19q0 48 -8 92q-11 53 -42.5 115.5t-107.5 100t-188 39.5q-51 0 -93 -14t-71 -39.5t-51.5 -54.5t-35.5 -65l-21 -59q-9 -24 -15 -48l-4 -25q-4 -12 -5 -45z" /> | ||
39 | <glyph unicode=":" horiz-adv-x="354" d="M100 16l13 146l147 -6v-152zM100 410l13 145l147 -6v-152z" /> | ||
40 | <glyph unicode=";" horiz-adv-x="333" d="M-6 -162q4 -4 12 -4q23 0 78 27q78 43 86 141l-78 10v24v48q0 33 -1 53.5t-3 20.5l40 -2l85 -4l43 -2q-14 -203 -57 -281q-18 -35 -68.5 -62.5t-91.5 -37.5l-41 -11zM98 410l13 145l147 -6v-152z" /> | ||
41 | <glyph unicode="=" horiz-adv-x="757" d="M31 551q18 0 186 -3t333 -7t171 -4l2 -74q-524 0 -688 8zM31 815q18 0 186 -3t333 -7t171 -4l2 -74q-524 0 -688 8z" /> | ||
42 | <glyph unicode="?" horiz-adv-x="761" d="M23 1401l10 4l27 7l42 11q23 7 53.5 13t62.5 11t69 9t69 6q16 1 32 1q39 0 76 -4q50 -5 113.5 -29.5t104.5 -68.5t65 -132q14 -55 14 -122q0 -41 -5 -85q-31 -266 -350 -375q-111 -39 -207 -45q25 -324 28 -323l-84 -3l-28 375q12 6 111.5 30t188.5 53.5t172 104 t93 179.5q3 36 3 68q0 65 -13 115q-21 75 -69 112t-101.5 53t-124.5 18h-28q-153 0 -294 -61q-28 78 -30 78zM154 2l84 -4l-5 188q-18 -2 -37.5 -3t-37.5 1z" /> | ||
43 | <glyph unicode="@" horiz-adv-x="1382" d="M33 571q0 184 44 332t117.5 239t156.5 143t171 67q20 10 110 17q32 2 67 2q66 0 143 -8q119 -13 178 -54q70 -49 84 -151q6 -45 6 -100q0 -74 -11 -168q-18 -165 -18 -208q0 -86 8.5 -251t16.5 -288l10 -120q-82 2 -82 6l-12 172q-25 -18 -67 -44t-144 -68 q-93 -38 -163 -38h-13q-68 0 -138.5 25.5t-139 82t-101.5 164.5q-20 65 -20 144q0 50 8 106q14 96 76.5 161t144.5 89.5t175 39t170 16.5t129 13t52 36q2 31 10 93q10 70 10 99q0 31 -17 70q-17 41 -58 67q-39 27 -112 37q-52 6 -99 6h-33q-59 -4 -119 -10l-59 -6 q-4 -4 -4 -2q0 4 -40 -10.5t-97.5 -57.5t-116.5 -115.5t-102 -210.5t-48 -315v-26q0 -139 39 -255q43 -126 115 -206t162 -134t183 -75q81 -17 154 -17h21q82 3 142 27q88 37 136 68t113.5 98.5t87.5 180.5q14 67 14 149q0 59 -7 125l-62 641q4 0 9 1l22 4q16 3 21 3h10 l4 -24q4 -25 10 -67t13 -97.5t14.5 -122t13.5 -136t9 -142t3 -140.5t-5 -130t-17 -110q-35 -141 -151 -239.5t-266 -134.5q-81 -18 -161 -18q-70 0 -139 14q-236 49 -397.5 252.5t-163.5 508.5zM340 352q41 -104 117 -170q72 -53 163 -53q25 0 52 4q123 19 227.5 65 t112.5 68q3 6 3 40q0 39 -4 114q-7 141 -16.5 274t-11.5 131l-6 -2q-6 -2 -20 -5l-28 -6q-14 -3 -37 -7l-38 -7q-16 -3 -43 -8.5t-39 -7.5q-6 0 -70.5 -5t-103.5 -13t-97.5 -27.5t-98.5 -57.5t-58 -93q-24 -68 -24 -128q0 -56 20 -106z" /> | ||
44 | <glyph unicode="A" horiz-adv-x="989" d="M43 4l27 115l72 300l87 367q-18 4 -24 9q-68 25 -146 118l43 48q25 -31 97 -74q25 -14 49 -25l65 270l52 224l18 69l113 5l493 -1426q-82 -12 -84 -12l-252 758q-45 -2 -83 -2t-70 2q-139 10 -191 18q-147 -629 -153 -651l-47 -117zM328 844q16 -2 49 -2q57 -6 252 -23 q-178 537 -180 537q-4 0 -121 -512z" /> | ||
45 | <glyph unicode="B" horiz-adv-x="1052" d="M123 0v-1l2 366q2 387 4 689q1 151 1 245t-1 131q-2 4 28.5 11t77 13t78.5 6q45 0 93.5 -2t150.5 -19.5t176 -47t135.5 -94t63.5 -152.5v-8q0 -228 -451 -410q-55 -23 -55 -25t12 -2q14 1 29 1q61 0 146 -13q108 -16 230 -70.5t158 -136.5q22 -50 22 -101q0 -75 -46 -155 q-76 -135 -178 -196q-47 -29 -217 -34q-77 -2 -149 -2q-86 0 -165 3q-108 5 -136 5zM195 130q0 -58 2 -56l49 -4q47 -4 118.5 -9.5t148.5 -6.5h15q69 0 131 8q69 9 101 32q90 63 152 180q37 69 38 119q0 34 -18 58q-45 63 -210 126q-147 56 -239 57q-12 0 -22 -1 q-24 -2 -51 -2q-33 0 -69 3q-65 5 -101.5 10t-38.5 3t-3 -62.5t-2 -144.5t-1 -168v-142zM207 1231q2 -158 2 -316v-157q25 4 66.5 10t148 34.5t188.5 64.5t152 101.5t74 143.5v19q0 34 -6 63q-8 37 -26 63.5t-38 47t-50 33t-53.5 20.5t-56.5 12l-50 6q-17 2 -44 3t-29 1 q-59 4 -175 8q-80 3 -101 4q-8 0 -8 -1v-3q0 -4 0.5 -11t1 -16.5t1.5 -23t1.5 -29t1 -35.5t0.5 -42z" /> | ||
46 | <glyph unicode="C" horiz-adv-x="925" d="M53 705v15q1 209 109 397q112 195 282 259q100 37 210 51q97 13 154 13h16q60 -2 59 -6l-4 -72q-25 1 -49 1q-203 0 -365 -75q-139 -63 -224 -214.5t-94 -366.5v-22q0 -131 65 -268q71 -149 177.5 -245t202.5 -100q20 -1 39 -1q67 0 124 11q74 14 103 31l29 16l18 -92 q-12 -6 -36.5 -14.5t-105.5 -21.5t-171 -13q-123 0 -250 119.5t-207 286.5t-82 311z" /> | ||
47 | <glyph unicode="D" horiz-adv-x="1058" d="M123 76q0 80 1 206t2 282.5t1 308t1 282.5t1 207v80q274 0 412 -17q61 -8 138 -54t151.5 -124t126 -200.5t51.5 -262t-50.5 -286t-121 -250t-145.5 -172t-128 -74.5q-61 -6 -170 -7h-69q-66 0 -119 1h-80zM209 74q121 -13 206 -13q140 0 187 35q80 61 194.5 254 t131.5 379q2 28 2 56q0 176 -99 335q-114 183 -266 215q-88 18 -175 24q-50 3 -87 3q-27 0 -46 -2q-46 -4 -44 -8z" /> | ||
48 | <glyph unicode="E" horiz-adv-x="937" d="M123 281q0 545 8 708q2 35 6 243q3 139 3 185q0 23 -1 23l19 -2h39l18 -2h98q29 -2 221 -2h230q27 0 63.5 2t61.5 2l22 2l7 -80l-705 4q-4 -183 -4 -275q0 -62 2 -83q0 -76 -6 -287q52 3 83 3q15 0 25 -1q29 -2 165 -3t159 -1q25 0 65.5 -1t63.5 -3h25l2 -68l-588 4 q-8 -328 -8 -336v-247q12 0 55 2t61 0q29 -2 221 -2h230q27 0 63.5 2t61.5 2l22 2l7 -80l-775 6v2h-18v66q0 50 -1 126t-1 89z" /> | ||
49 | <glyph unicode="F" horiz-adv-x="876" d="M123 281q0 545 8 708q2 35 6 243q3 139 3 185q0 23 -1 23l19 -2h39l18 -2h98q29 -2 232 -2h239q27 0 64 2t61 2l23 2l6 -80l-725 4q-4 -183 -4 -275q0 -62 2 -83q0 -76 -6 -287q52 3 83 3q15 0 25 -1q29 -2 165 -3t159 -1q25 0 71 -1t74 -3h29l2 -68l-608 4 q-8 -328 -8 -336v-313h-13q-9 0 -24 -1h-9q-9 0 -16 1h-10v66q0 50 -1 126t-1 89z" /> | ||
50 | <glyph unicode="G" horiz-adv-x="995" d="M62 649q-10 57 -10 112q0 69 15 133q25 116 80.5 195.5t113.5 134t118 85.5q39 20 95 39.5t111 33.5l101 27q47 12 76 18l31 7q4 -57 4 -58q-14 -2 -39 -7t-96.5 -26.5t-135 -49t-141.5 -79t-133 -113t-90 -152.5q-31 -82 -31 -175v-22q6 -147 55.5 -268.5t117 -194 t144 -120.5t136.5 -65q43 -12 74 -12q11 0 20 2q72 12 145 12l56 574q-270 -27 -353 -33h-18q-28 0 -61 4q-44 6 -70 15l-25 8q14 70 14.5 72t23 -2.5t54.5 -11.5l56 -13q11 -3 39 -3q100 0 415 40l-63 -697q0 -10 -53 -10v-4q-106 -29 -256 -31q-57 0 -137 49.5t-158 130 t-141.5 203.5t-83.5 252z" /> | ||
51 | <glyph unicode="H" horiz-adv-x="1091" d="M-86 926l55 18l4 -14q4 -12 12.5 -41t18.5 -58q16 -41 37.5 -55t73.5 -28q12 -2 18 -5q47 -12 80 -12q0 225 4 258q2 35 6 243q3 139 3 185q0 23 -1 23l19 -2h39l18 -2l-4 -430q0 -76 -6 -287q52 3 83 3q15 0 25 -1q29 -2 165 -3t158.5 -1t82 -1t76.5 -3q0 51 1 123.5 t2 108.5t1 44q2 35 6 243q3 139 3 185q0 23 -1 23l18 -2h39l19 -2l-4 -430q0 -18 -3.5 -186.5t-7.5 -334.5t-4 -172v-313h-12q-8 0 -24 -1h-9q-9 0 -16 1h-10v65q0 50 -1 126.5t-1 89.5q0 193 2 364l-588 4q-8 -328 -8 -336v-313h-13q-9 0 -24 -1h-9q-9 0 -16 1h-10v65 q0 50 -1 126.5t-1 89.5q0 203 2 378q-29 2 -96 15q-135 23 -191 207z" /> | ||
52 | <glyph unicode="I" horiz-adv-x="438" d="M41 1382l2 60q0 2 37 2t91 -1l109 -2q54 -1 93 -3h37q4 -70 6 -70q-6 0 -37 -2q-4 -1 -19 -1q-30 0 -102 3q-4 -184 -4 -278q0 -62 2 -84q0 -18 -3 -186.5t-7 -334.5t-4 -172v-245h174l2 -60l-338 -16q-18 2 -37 2l6 69q55 2 121 3q0 45 -1 126.5t-1 88.5q0 545 8 708 q2 23 8 383z" /> | ||
53 | <glyph unicode="J" horiz-adv-x="417" d="M-307 -139l61 22q12 -25 32.5 -60.5t88.5 -101t139 -75.5q12 -2 24 -2q30 0 54 12q33 16 47.5 39.5t22.5 66.5t9 65.5t1 61.5v111h-2v66q0 49 -1 125.5t-1 89.5q0 545 8 708q2 23 8 383l-143 10l2 60q0 2 37 2t91 -1l109 -2q54 -1 93 -3h37q4 -70 6 -70q-6 0 -37 -2 q-4 -1 -19 -1q-29 0 -102 3q-4 -184 -4 -278q0 -62 2 -84q0 -18 -3 -186.5t-7 -334.5t-4 -172v-313q0 -227 -11 -268q-8 -31 -34.5 -68t-72.5 -71q-35 -25 -87 -25q-15 0 -32 2q-73 10 -155 76q-111 88 -157 215z" /> | ||
54 | <glyph unicode="K" d="M123 281q0 545 8 708q2 35 6 243q3 139 3 185q0 23 -1 23l19 -2h39l18 -2l-4 -430q0 -8 -1 -38t-2 -89.5t-1 -106.5q139 70 174 98q45 37 498 594q2 -2 6 -4t14 -9t19.5 -13t18.5 -12.5t13 -8.5l6 -4l-41 -49l-115 -136l-132 -157l2 -6q12 -49 34 -130l80 -293 q60 -212 114 -381t118.5 -323.5t109.5 -189.5v-92q-78 31 -177 248t-155.5 398t-93.5 325l-96 370q-139 -164 -168 -186q-66 -51 -231 -131q-8 -348 -8 -367v-313h-13q-9 0 -24 -1t-25 1h-10v65q0 50 -1 126.5t-1 89.5z" /> | ||
55 | <glyph unicode="L" horiz-adv-x="389" d="M123 -137l12 205q0 43 -1 124.5t-1 88.5q0 545 8 708q3 35 7 243q3 144 3 188q0 20 -1 20l18 -2h37l20 -2l-4 -430q0 -18 -3 -186.5t-7 -334.5t-4 -172v-313h-2q0 -55 -4 -72q-2 -4 45 -10t127 -23.5t139 -44.5q29 -12 74 -34.5t62.5 -29.5t56 -20.5t54 -10.5t58.5 5 q47 10 88 33t60 39l18 18q2 -4 6 -10l13 -20q9 -14 14 -21l6 -8l-8 -6l-23 -17l-35 -23t-44.5 -24.5t-53.5 -19.5q-30 -8 -60 -12q-15 -2 -30.5 -2t-32.5 2q-90 10 -221 71.5t-149 67.5q-37 12 -97.5 20.5t-103.5 12.5z" /> | ||
56 | <glyph unicode="M" horiz-adv-x="1241" d="M123 281q0 545 8 708q8 156 8 438l-2 7h2v6l19 -2h39l18 -2v-2h4l408 -1104l409 1104h6v6l19 -2h37l20 -2l-4 -430q0 -18 -3 -186.5t-7 -334.5t-4 -172v-313h-12q-9 0 -24 -1h-10q-9 0 -16 1h-10v66q0 50 -1 126t-1 89q0 545 8 708q0 8 1 44t3 90.5t2 99.5l-370 -1000 h-84l-375 1010v-227q0 -18 -3 -186.5t-7 -334.5t-4 -172v-313h-13q-10 0 -24 -1h-9q-9 0 -16 1h-10v66q0 50 -1 126t-1 89z" /> | ||
57 | <glyph unicode="N" horiz-adv-x="1038" d="M123 281q0 545 8 708q2 35 6 243q3 139 3 185q0 23 -1 23l19 -2h39l18 -2v-4l16 -2l611 -1258q4 430 4 576q0 33 -5 253t-7 240q-2 8 -3.5 31.5t-1.5 50.5t-1 52.5t-1 41.5v15l21 2l41 4l22 4q-1 -51 -1 -89q0 -76 3 -100v-1253h-18h-35l-18 2l-629 1288q-3 -169 -3 -239 q0 -35 1 -45q0 -18 -3 -186.5t-7 -334.5t-4 -172v-313h-13q-9 0 -24 -1h-9q-9 0 -16 1h-10v66q0 50 -1 126t-1 89z" /> | ||
58 | <glyph unicode="O" horiz-adv-x="1183" d="M51 702q0 139 64 347q36 121 118 213q150 170 355 170t360 -189q45 39 82 53q104 38 179 39q13 0 26 -2v-88q-13 1 -26 1q-115 0 -187 -50l-27 -20q53 -86 88 -197q41 -133 41 -277q0 -117 -34.5 -248.5t-71.5 -185.5q-209 -293 -430 -293q-121 0 -226.5 68t-181.5 186 q-129 205 -129 473zM141 700q0 -158 71 -325.5t130 -224.5q94 -92 250 -93q186 0 318 188.5t132 454.5q0 195 -114 416q-239 -200 -471 -200q-33 0 -66 4q-162 18 -186 141q-64 -154 -64 -361zM233 1262l11 -11zM275 1131q-1 -8 0 -15q0 -28 10 -51q14 -29 64 -51 q46 -20 120 -19h14q88 2 170 36t127 66.5t105 88.5l-19 26q-110 134 -274 134q-172 0 -297 -138q-4 -8 -10 -23.5t-10 -53.5z" /> | ||
59 | <glyph unicode="P" d="M-266 838q6 2 17 7t51 13t86 12q20 2 46 2q32 0 74 -3q74 -5 152 -21q4 139 4 141q8 147 8 428q-4 19 -2 21h2v2q2 -2 6 -2q37 4 92 7q41 2 108 2h48q102 -1 195.5 -21.5t182.5 -56.5t143 -110.5t54 -177.5v-7q0 -124 -67 -206q-69 -84 -160.5 -112.5t-204.5 -34.5 q-57 -3 -101 -3t-76 3q-63 6 -99 14l-53 10l-5 -189q-3 -107 -4.5 -173t-1.5 -70v-313h-12q-7 0 -23 -1h-10q-9 0 -16 1h-10v66q0 50 -1 126t-1 89q0 80 4 477q-197 27 -265 27q-11 0 -18 -1q-33 -4 -60.5 -12t-37.5 -14l-12 -6zM242 831q152 -20 301 -20t262 62.5 t115 179.5v6q0 140 -92 206q-94 66 -277 95q-120 18 -217 18q-47 0 -88 -4q-4 -185 -4 -281q0 -64 2 -87q0 -84 -2 -175z" /> | ||
60 | <glyph unicode="Q" horiz-adv-x="1148" d="M51 702q0 139 64 347q51 170 184 276.5t289 106.5q166 0 300 -125t195 -328q41 -133 41 -277q0 -117 -34.5 -248.5t-71.5 -185.5q-59 -80 -119 -143q23 -18 54.5 -46t39.5 -34q50 -39 144 -39q29 0 63 4l-4 -90q-23 -7 -50 -7q-59 0 -138 34q-41 16 -172 123 q-117 -94 -248 -95q-121 0 -226.5 68t-181.5 186q-129 205 -129 473zM141 700q0 -125 45 -258t105 -225q156 78 287 78q111 0 268 -125q90 88 143 227.5t53 302.5q0 141 -58 292t-118 220q-111 133 -274 134q-96 0 -186.5 -50.5t-151.5 -140.5q-113 -168 -113 -455zM342 150 q94 -93 250 -93q96 0 186 58q-123 96 -198 104h-16q-98 0 -222 -69z" /> | ||
61 | <glyph unicode="R" d="M-285 838q6 2 17.5 7t51.5 13t86 12q20 2 46 2q32 0 74 -3q74 -5 151 -21q4 139 4 141q8 147 9 428q-4 19 -2 21h2v2q2 -2 6 -2q37 4 91 7q40 2 108 2h48q102 -1 195.5 -21.5t182.5 -56.5t143.5 -110.5t54.5 -180.5q0 -292 -340 -349q33 -49 55 -111l105 -239 q121 -276 193.5 -387t189.5 -156q34 -11 64 -11q13 0 25 2q40 7 70.5 31.5t51 51.5t30.5 49l11 21l57 -60l-10 -19q-6 -12 -30.5 -41.5t-55.5 -52t-85 -37.5q-43 -12 -91 -13q-12 0 -25 1q-63 4 -115.5 31t-90.5 71t-61.5 79.5t-50 88t-34.5 66.5q-18 27 -211 469 q-29 68 -51 109q-14 27 -72 45q-19 -1 -38 -1q-103 0 -200 19l-53 10q-2 -82 -4 -189t-4 -173t-2 -70v-313h-13q-9 0 -23.5 -1t-24.5 1h-11v66q0 50 -1 126t-1 89q0 80 4 477q-197 27 -264 27q-11 0 -18 -1q-33 -4 -60.5 -12t-40.5 -14l-10 -6zM223 831q152 -20 301.5 -20 t262 62.5t114.5 179.5v6q0 140 -92 206q-94 66 -277 95q-120 18 -217 18q-47 0 -88 -4q-4 -185 -4 -281q0 -64 2 -87q0 -84 -2 -175z" /> | ||
62 | <glyph unicode="S" horiz-adv-x="933" d="M53 1167q0 84 32 145.5t84 93.5t102.5 47t103.5 20q106 8 214.5 -19t166.5 -92q37 -43 53 -102.5t18 -96.5l2 -39l-90 -8q8 121 -66.5 195.5t-199.5 87.5q-43 4 -92 -1t-107.5 -25.5t-95.5 -77t-35 -140.5q2 -66 60.5 -132.5t147.5 -126.5l181 -121q93 -60 178 -133 t121 -144q47 -92 49.5 -182.5t-39.5 -166t-150.5 -122.5t-270.5 -47q-78 0 -137.5 20t-95 54t-59.5 74t-33 80t-13 73.5t-4 54.5l2 20l76 -6q0 -37 8 -78t30.5 -94t75 -90t127.5 -41q72 -4 133.5 3t129 35t105.5 95.5t36 167.5q-2 86 -80 171q-77 85 -187 157l-220 144 q-110 72 -185.5 162.5t-75.5 184.5z" /> | ||
63 | <glyph unicode="T" horiz-adv-x="770" d="M0 1382l6 84q14 -2 45 -11t56.5 -13t62.5 -4q119 0 265.5 14t232.5 27l88 12l2 -21l8 -36l2 -19l-37 -6q-37 -4 -105.5 -14.5t-127.5 -16.5q-61 -8 -92 -10q0 -256 8 -379q8 -164 8 -708q0 -12 -1 -89t-1 -127v-65h-19h-34h-19v313q0 6 -4 172t-7 334t-3 187 q0 127 -4 356q-40 -3 -80 -3q-121 0 -250 23z" /> | ||
64 | <glyph unicode="U" horiz-adv-x="1064" d="M102 1436h6q4 0 14.5 1t19 1t17.5 1t13 1h6q-1 0 -1 -23q0 -46 3 -185q4 -208 6 -243q10 -175 10 -379q0 -114 -3 -237q2 -25 8 -54.5t27.5 -73.5t54 -79t92 -61.5t135.5 -28.5h18q87 0 154 35q74 39 110.5 100t52 100t21.5 70q-12 516 -12 608v17l-4 430h6q4 0 14.5 1 t18.5 1t17 1t16 1h4q-1 0 -1 -23q0 -46 3 -185q4 -208 6 -243q2 -33 8 -602v-106q0 -12 -1 -89t-1 -126v-66h-18h-35h-19v188q-116 -184 -337 -184h-21q-109 4 -188.5 46t-116.5 92.5t-58.5 112.5t-24.5 90t-3 42l-13 619z" /> | ||
65 | <glyph unicode="V" horiz-adv-x="983" d="M0 1427l86 7l418 -1305q215 528 219 537q8 25 50 216l80 372q38 180 38 182h24q21 0 43 -2h25q-164 -717 -188 -801q-9 -37 -71 -195l-118 -299l-57 -141q-86 0 -96 4z" /> | ||
66 | <glyph unicode="W" horiz-adv-x="1331" d="M0 1427l76 7l377 -1330l204 510l-151 535l76 6l114 -416q12 61 30.5 164t30 173.5t11.5 72.5h23q18 0 40 -2h21q-86 -430 -111 -514l-8 -25l141 -504l228 564q8 25 45 216t68.5 370.5t31.5 181.5h23q18 0 41 -2h20q-143 -717 -168 -801q-9 -37 -71 -195l-117 -299 l-57 -141q-72 0 -82 4h-2l-142 494l-196 -498q-72 0 -82 4h-2z" /> | ||
67 | <glyph unicode="X" horiz-adv-x="899" d="M20 2q2 6 202 319.5t212 344.5q2 6 2 8l-389 753l86 7l344 -662l103 256l120 293l45 115h25q21 0 45 -2h23q-242 -565 -314 -752l355 -682l-93 2l-303 582q-37 -70 -129 -216l-166 -257l-71 -113q-86 0 -97 4z" /> | ||
68 | <glyph unicode="Y" horiz-adv-x="882" d="M20 1430q0 2 45.5 3t47.5 -1l151 -281l211 -379q199 436 209 463q8 23 45 114t37 89t86 -6h8q-2 0 -134 -293t-140 -314l-62 -141q-2 -41 -5 -127t-6 -150.5t-3 -87.5v-313h-12q-9 0 -24 -1t-25 -1l-11 2v66q0 49 -1 125.5t-1 89.5q0 242 6 360q-231 401 -243 436 q-6 14 -51 101l-87 166z" /> | ||
69 | <glyph unicode="Z" horiz-adv-x="1040" d="M41 2v66q340 602 412 675q33 33 141 184l202 286q93 135 91 137l-719 -8v90l829 4l2 -88q-356 -510 -438 -609q-16 -20 -49 -67l-72 -106l-82 -127l-82 -131l-73 -115l-51 -82l-21 -31q-2 2 78 2t168 -1t106 -3q7 -1 25 -1q90 0 457 17l-2 -90h-230q-231 -2 -463 -2h-229 z" /> | ||
70 | <glyph unicode="[" horiz-adv-x="507" d="M115 281q0 545 8 708q2 35 6 243q3 139 3 185q0 23 -1 23l6 -2q6 0 18.5 -1t20.5 -1q264 6 293 6l-10 -82h-45q-47 2 -104 2h-105q-4 -183 -4 -275q0 -61 2 -81q0 -18 -3 -186.5t-7.5 -334.5t-4.5 -172v-239q270 0 271 4l10 -82h-20q-20 0 -52 1t-69 2t-75 1h-65h-12 q-8 0 -23.5 -1t-25.5 1h-10v66q0 49 -1 125.5t-1 89.5z" /> | ||
71 | <glyph unicode="\" horiz-adv-x="927" d="M47 1434h14q9 0 32.5 1t31.5 1h14l74 -183l151 -373l87 -214q12 -31 211.5 -344.5t201.5 -319.5l-96 -4q-365 551 -389 635q-10 37 -93 237l-161 383z" /> | ||
72 | <glyph unicode="]" horiz-adv-x="569" d="M117 -4l10 82q0 -4 270 -4v239q0 6 -4 172t-7 334t-3 187q0 131 -4 356h-103q-57 0 -104 -2h-45l-10 82q23 0 293 -6l45 4q-1 0 -1 -23q0 -46 3 -185q4 -208 6 -243q8 -164 8 -708q0 -12 -1 -89t-1 -126v-66h-18h-35h-19z" /> | ||
73 | <glyph unicode="`" horiz-adv-x="471" d="M39 1731l76 55q33 -76 84 -111q29 -20 84 -45.5t97 -42t46 -16.5q-4 -4 -12 -35l-11 -33h-1q-6 0 -57 19q-56 20 -123.5 47.5t-92.5 44.5q-14 10 -29.5 26.5t-26 32t-18.5 28.5t-12 21z" /> | ||
74 | <glyph unicode="a" d="M49 573q14 96 76.5 161t144.5 89.5t175.5 39t170 16.5t129 13t52.5 36q2 31 10 93q9 70 9 99q0 32 -17 70q-18 41 -58 67q-33 23 -103.5 35.5t-145.5 15.5q-56 2 -109 2h-36q-71 -1 -118 -3h-45q-2 0 0 11t6.5 28.5t4.5 25.5q-2 8 126 13q26 1 54 0q107 0 231 -13 q158 -18 219 -63q71 -49 85 -151q6 -45 6 -103q0 -73 -10 -165q-18 -165 -19 -208q0 -86 9 -251t17 -288l9 -120q-82 2 -82 6l-13 172q-25 -18 -67 -44t-144 -68q-94 -38 -163 -38h-13q-68 0 -138.5 25.5t-139 82t-100.5 164.5q-20 67 -21 146q0 50 8 104zM145 352 q40 -105 117 -170q72 -53 163 -53q25 0 52 4q123 19 227.5 65t112.5 68q3 6 3 40q0 39 -4 115q-7 141 -16.5 273.5t-11.5 130.5l-6 -2q-6 -2 -19 -5t-27.5 -6t-37.5 -7l-39 -7q-16 -3 -42.5 -8.5t-38.5 -7.5q-6 0 -71 -5t-103.5 -13t-97 -27.5t-98.5 -57.5t-58 -93 q-24 -68 -24 -129q0 -55 19 -105z" /> | ||
75 | <glyph unicode="b" horiz-adv-x="1083" d="M123 281q0 545 8 708q2 31 4 361q1 165 1 248t-1 83l19 -2h39l18 -2q-2 -315 -2 -512q27 16 60.5 32.5t98 41.5t125 39t133 14t130.5 -24q276 -116 275 -589q0 -37 -1 -75q-6 -158 -39 -277.5t-75 -187t-104 -107.5t-109 -52q-38 -10 -87 -11q-12 0 -23 1q-63 3 -85 9 l-53 13q-6 2 -9 2q-102 20 -249 151v-145h-12q-9 0 -24.5 -1t-25.5 1h-10v66q0 50 -1 126t-1 89zM197 262q18 -29 42.5 -57.5t67.5 -65.5t107.5 -59.5t138.5 -22.5q92 0 160.5 31t108.5 78t64.5 126t35 154.5t14.5 184.5q1 31 1 61q0 91 -13 165q-18 99 -48 158.5t-77 100.5 t-86 58.5t-87 24.5q-42 6 -64 6h-5q-21 -1 -45 -3q-80 -10 -303 -121v-33q0 -18 1 -29t1 -13q0 -18 -3 -186.5t-7 -334.5t-4 -172v-51z" /> | ||
76 | <glyph unicode="c" horiz-adv-x="774" d="M51 702q0 166 64 347q47 137 154.5 227t219 124t224.5 34l4 -86q-6 0 -19 -2q-324 -35 -444 -191q-113 -145 -113 -455q0 -158 71 -325.5t130 -224.5q43 -43 183.5 -69t228.5 -25v-79q-70 0 -111 2.5t-116.5 14.5t-128 36.5t-114 76t-104.5 122.5q-129 213 -129 473z" /> | ||
77 | <glyph unicode="d" horiz-adv-x="1083" d="M53 670q6 158 39 277.5t75 187t104.5 107.5t109.5 52q37 10 83 10q13 0 27 -1q63 -3 85 -8t53 -13q6 -2 8 -2q104 -23 235 -141v538h6q4 0 14.5 1t19 1t17.5 1t13 1h6q-1 0 -1 -82.5t1 -248.5q2 -330 4 -361q8 -164 9 -708q0 -12 -1 -89q-2 -76 -2 -126v-66h-16h-37h-18 v113l-2 2q-6 -4 -19.5 -11.5t-52.5 -27t-78 -34.5t-94 -31.5t-105 -23.5q-32 -4 -67 -4q-20 0 -40 1q-56 4 -101 22q-277 116 -277 592q0 35 2 72zM147 643l-2 -61q0 -91 15 -166q18 -99 48 -158t77 -100t86 -58.5t87 -24.5q42 -6 64 -6h6q21 1 43 3q39 4 168.5 59.5 t147.5 67.5v114q0 6 -4 172t-7.5 334t-3.5 187v24q-129 186 -342 187q-92 0 -160.5 -31t-108.5 -78t-64.5 -126t-34.5 -154.5t-15 -184.5z" /> | ||
78 | <glyph unicode="e" horiz-adv-x="1097" d="M51 702q0 139 64 347q53 172 176 277.5t276 105.5q164 0 289 -123t186 -330q23 -74 23 -277q-35 -2 -89 -4t-202 -4q-49 -1 -89 -1q-81 0 -128 3q-18 1 -37 1q-151 0 -377 -42q8 -147 64.5 -280t109.5 -185q137 -133 227 -133h3q70 2 129 34t94 68t89 67.5t116 33.5v-28 v-46l2 -24q-47 -2 -88 -27.5t-73 -58.5t-103.5 -62.5t-169.5 -38.5q-13 -1 -25 -1q-99 0 -172 57q-82 64 -166 198q-129 205 -129 473zM141 733l54 17q20 6 149 16q108 8 161 9q11 0 19 -1q21 -1 82 -1h71q122 1 206 3q42 1 68 1t36 -1q-14 135 -65.5 258t-96.5 178 q-111 133 -254 134q-190 0 -317 -191q-107 -156 -113 -422z" /> | ||
79 | <glyph unicode="f" horiz-adv-x="659" d="M61 965q49 33 117 36v136l2 98q2 10 5 28.5t18.5 64.5t39 81t69.5 63.5t103.5 28.5t111 -21.5t77.5 -41.5l25 -23l-47 -63q-4 8 -18.5 22.5t-56.5 33.5t-93 19q-57 0 -98.5 -55t-55.5 -109.5t-8 -56.5v-37q0 -84 2 -178q6 0 14 -4q49 -18 96.5 -18t92.5 18 q20 8 35.5 18.5t19.5 18.5l6 6l51 -59q-10 -10 -30.5 -24.5t-80.5 -34.5q-44 -15 -87 -15q-16 0 -33 2q-49 6 -82 12q8 -385 8 -450q-2 -33 -6 -273q-3 -159 -3 -212q0 -27 1 -27l-18 2h-37l-21 2l4 491q-2 16 -6 486h-16q-29 -2 -86 -47z" /> | ||
80 | <glyph unicode="g" horiz-adv-x="1067" d="M53 1004q2 106 84 209.5t199 164.5q110 56 206 56h13q121 -6 200 -51.5t111 -102.5l2 160l19 -2h39l18 -2l-4 -430q0 -18 -3 -186.5t-7 -334.5t-4 -172v-63q-6 -115 -101 -196q-94 -79 -273 -79h-9q-55 0 -105.5 12.5t-88.5 34t-70.5 48t-56 56.5t-42 59.5t-31 57 t-19.5 48t-11 33.5l-4 12h10q10 2 24.5 3t28.5 1h25l10 2q-2 0 8 -29.5t34 -72.5t60.5 -86t98.5 -72q59 -27 129 -27h10q72 2 128 23.5t86 44t51.5 58.5t25.5 46.5t8 26.5v27q0 168 2 327q-107 -100 -298 -100h-15q-219 6 -355 161q-133 150 -133 325v10zM152 1004 q-2 -16 -2 -34q0 -27 5 -58q9 -50 36.5 -106t71.5 -101.5t117 -76t165 -32.5h19q78 0 135 15q65 16 93.5 41.5t45 51t18.5 44.5v18q0 190 4 223v43q2 43 2 80q-63 225 -299 231h-10q-148 0 -266 -111q-121 -116 -135 -228z" /> | ||
81 | <glyph unicode="h" horiz-adv-x="968" d="M123 281q0 545 8 708q2 35 7 287q4 180 4 231q0 21 -1 21h19l37 -4h20l-6 -518q0 -55 -2 -115q92 151 303 151h8q254 -2 324 -225q20 -56 20 -106v-13h-2v-17q0 -46 -6 -188q-8 -178 -8 -180v-313h-12q-9 0 -24 -1h-10q-9 0 -16 1h-10v66q0 50 -1 126t-1 89q0 211 8 399 v28q0 18 -12 62.5t-34.5 78.5t-76 62.5t-127.5 30.5q-82 0 -145 -22.5t-99 -59.5t-53.5 -64.5t-27.5 -56.5q-2 -82 -4 -187.5t-4 -170t-2 -68.5v-313h-12q-9 0 -24 -1h-10q-9 0 -16 1h-10v66q0 50 -1 126t-1 89z" /> | ||
82 | <glyph unicode="i" horiz-adv-x="337" d="M123 281q0 545 8 708q2 35 6 243q3 139 3 185q0 23 -1 23l19 -2h39l18 -2l-4 -430q0 -18 -3 -186.5t-7 -334.5t-4 -172v-313h-13q-9 0 -24 -1h-9q-9 0 -16 1h-10v66q0 50 -1 126t-1 89z" /> | ||
83 | <glyph unicode="j" horiz-adv-x="382" d="M-307 -139l61 22q12 -25 32.5 -60.5t88.5 -101t139 -75.5q12 -2 24 -2q30 0 54 12q33 16 47.5 39.5t22.5 66.5t9 65.5t1 61.5v111h-2v66q0 49 -1 125.5t-1 89.5q0 545 8 708q2 35 6 243q3 139 3 185q0 23 -1 23l19 -2h39l18 -2l-4 -430q0 -18 -3 -186.5t-7 -334.5 t-4 -172v-313q0 -227 -11 -268q-8 -31 -34.5 -68t-72.5 -71q-35 -25 -87 -25q-15 0 -32 2q-73 10 -155 76q-111 88 -157 215z" /> | ||
84 | <glyph unicode="k" horiz-adv-x="960" d="M123 281q0 545 8 708q2 35 6 243q3 139 3 185q0 23 -1 23l19 -2h39l18 -2l-4 -430q0 -70 -8 -443q133 63 178 100t479 574q2 -2 6 -4t14 -9l20 -14q8 -6 18 -12l16 -10l4 -2l-37 -43l-109 -131l-124 -148l2 -6q16 -76 43.5 -193.5t97.5 -346t121 -295.5l-101 -27 q-14 27 -26 58.5t-20.5 56t-21.5 71.5l-18 68q-6 21 -22 85t-23 85l-96 371q-152 -174 -168 -187q-35 -27 -235 -133q0 -37 -1 -76t-2 -59.5t-1 -22.5v-313h-13q-9 0 -24 -1t-25 1h-10v66q0 50 -1 126t-1 89z" /> | ||
85 | <glyph unicode="l" horiz-adv-x="557" d="M123 281q0 545 8 708q2 35 6 243q3 139 3 185q0 23 -1 23l19 -2h39l18 -2l-4 -430q0 -18 -3 -186.5t-7 -334.5t-4 -172v-227q101 -3 148 -3q23 0 32 1h76h108h55l2 -23q4 -20 7 -41l2 -22l-430 2h-7h-20h-31h-14v66q0 50 -1 126t-1 89z" /> | ||
86 | <glyph unicode="m" horiz-adv-x="1607" d="M123 281q0 545 8 708q2 35 6 243q3 139 3 185q0 23 -1 23l19 -2h39l18 -2q-2 -66 -2 -146q91 148 301 148h6q227 -2 309 -187q84 187 327 187h3q254 -2 324 -226q20 -56 20 -105v-13h-2v-88q0 -18 -3 -186.5t-7 -334.5t-4 -172v-313h-13q-9 0 -23 -1h-10q-9 0 -16 1h-10 v66q0 50 -1 126t-1 89q0 545 8 708q2 33 2 54.5t-2 31.5v28q0 18 -12 62.5t-34.5 78.5t-76 62.5t-127.5 30.5h-5q-223 0 -310 -174l8 -69h-2v-88q0 -18 -3 -186.5t-7 -334.5t-4 -172v-313h-13q-9 0 -23 -1h-10q-9 0 -16 1h-10v66q0 50 -1 126t-1 89q0 545 8 708q2 33 2 54.5 t-2 31.5v28q0 18 -12 62.5t-34.5 78.5t-76 62.5t-127.5 30.5h-5q-240 0 -316 -190q-2 -58 -2 -93.5t2 -47.5q0 -18 -3 -186.5t-7 -334.5t-4 -172v-313h-13q-9 0 -24 -1h-9q-9 0 -16 1h-10v66q0 50 -1 126t-1 89z" /> | ||
87 | <glyph unicode="n" horiz-adv-x="1007" d="M123 281q0 545 8 708q2 35 6 243q3 139 3 185q0 23 -1 23l19 -2h39l18 -2q-2 -72 -4 -156q103 158 324 158h6q98 -2 171.5 -38t108.5 -86t56.5 -100.5t23.5 -85.5l4 -34h-2v-88q0 -18 -3 -186.5t-7 -334.5t-4 -172v-313h-13q-9 0 -23 -1h-10q-9 0 -16 1h-10v66 q0 50 -1 126t-1 89q0 545 8 708q2 33 2 54.5t-2 31.5q0 10 -2 27.5t-17.5 62.5t-41 79t-80.5 62.5t-129 30.5q-80 0 -143.5 -20.5t-103.5 -55t-61.5 -63.5t-33.5 -57q-2 -56 -2 -89.5t2 -45.5q0 -18 -3 -186.5t-7 -334.5t-4 -172v-313h-13q-9 0 -24 -1h-9q-9 0 -16 1h-10v66 q0 50 -1 126t-1 89z" /> | ||
88 | <glyph unicode="o" horiz-adv-x="1175" d="M51 702q0 139 64 347q51 170 184 276.5t289 106.5q166 0 300 -125t195 -328q41 -133 41 -277q0 -117 -34.5 -248.5t-71.5 -185.5q-209 -293 -430 -293q-121 0 -226.5 68t-181.5 186q-129 205 -129 473zM141 700q0 -158 71 -325.5t130 -224.5q94 -92 250 -93 q186 0 318 188.5t132 454.5q0 141 -58 292t-118 220q-111 133 -274 134q-96 0 -186.5 -50.5t-151.5 -140.5q-113 -168 -113 -455z" /> | ||
89 | <glyph unicode="p" horiz-adv-x="1005" d="M123 281q0 545 8 708q2 35 6 243q3 139 3 185q0 23 -1 23l19 -2h39l18 -2q-2 -35 -2 -78q92 106 326 106q211 -2 324 -124q110 -119 110 -312v-14q-4 -174 -136 -273.5t-372 -99.5q-174 0 -258 84q-2 -80 -4 -182.5t-4 -164t-2 -65.5v-313h-13q-8 0 -24 -1h-9q-9 0 -16 1 h-10v66q0 49 -1 125.5t-1 89.5zM209 846q25 -63 106.5 -93t149.5 -36h11q30 0 78 8q58 10 137 36.5t135.5 93.5t56.5 161v8q0 182 -96 267q-97 87 -250 93q-14 1 -27 1q-109 0 -186 -45q-86 -50 -113 -123v-211q0 -76 -2 -160z" /> | ||
90 | <glyph unicode="q" horiz-adv-x="1175" d="M51 702q0 139 64 347q51 170 184 276.5t289 106.5q166 0 300 -125t195 -328q41 -133 41 -277q0 -117 -34.5 -248.5t-71.5 -185.5q-96 -133 -182 -200q90 -209 94 -209l-45 -29l-43 -23q4 4 -76 216q-90 -47 -178 -48q-121 0 -226.5 68t-181.5 186q-129 205 -129 473z M141 700q0 -158 71 -325.5t130 -224.5q94 -92 250 -93q76 0 145 35q-43 111 -51 119q-10 6 41 25l35 12l45 -113q106 84 170.5 234.5t64.5 330.5q0 141 -58 292t-118 220q-111 133 -274 134q-96 0 -186.5 -50.5t-151.5 -140.5q-113 -168 -113 -455z" /> | ||
91 | <glyph unicode="r" horiz-adv-x="1028" d="M123 281q0 74 4 471h-2l2 16q0 193 4 221q8 147 8 428q-4 19 -2 21h2v2q2 -2 6 -2q37 4 92 7q41 2 108 2h49q102 -1 195 -21.5t182 -56.5t143.5 -110.5t54.5 -180.5q0 -288 -328 -347l152 -354q49 -115 82.5 -182.5t48 -89t36 -49t37.5 -54.5l-90 -6q-35 37 -71 96 q-27 39 -277 629q-63 -6 -118 -6q-104 0 -181 20l-53 6q-2 -82 -4 -188.5t-4 -171t-2 -68.5v-313h-12q-9 0 -24.5 -1t-25.5 1h-10v65q0 50 -1 126.5t-1 89.5zM209 831q152 -20 301 -20t262 62.5t115 179.5v6q0 140 -92 206q-94 66 -277 95q-120 18 -217 18q-47 0 -88 -4 q-4 -185 -4 -281q0 -64 2 -87q0 -84 -2 -175z" /> | ||
92 | <glyph unicode="s" horiz-adv-x="921" d="M43 1149v17q0 84 36 147q40 70 105.5 104.5t126.5 49.5q54 14 101 14h12q53 -2 162.5 -14.5t191.5 -24.5l84 -10q-2 -6 -4 -14.5t-7 -27t-7 -30.5l-4 -10q2 2 -73 17t-180 23q-59 5 -118 5q-46 0 -92 -3q-105 -6 -176 -57q-67 -48 -66 -135v-10q4 -80 64.5 -158 t148.5 -140l187 -134q99 -72 181.5 -140.5t129.5 -160.5q35 -69 35 -142q0 -25 -4 -51q-20 -125 -107.5 -195.5t-197.5 -82.5q-74 -8 -147 -7q-35 0 -71 1q-108 6 -182 24l-72 19q6 84 11 83l16 -4l43 -12q29 -8 65.5 -15t90 -15.5t106.5 -14.5q16 -2 33 -1q70 0 143 27 q90 34 147 121q40 60 41 133q0 32 -8 66q-14 66 -95 143.5t-187 151.5l-209 147q-104 74 -177 158t-77 158z" /> | ||
93 | <glyph unicode="t" horiz-adv-x="571" d="M102 1497h6q4 0 14.5 1t19 1t17.5 1t13 1h6q-2 0 -2 -47.5t2 -142.5l357 14l2 -80l-357 -10q4 -227 6 -246q9 -163 9 -708v-37q-6 -2 3 -58.5t43.5 -114t92.5 -57.5q53 0 94 17.5t55 34.5l17 18l51 -49q-8 -10 -25.5 -24.5t-74 -38t-113.5 -23.5q-156 0 -203 186l-12 80 q-2 78 -2 98q0 6 -4 172t-7.5 334t-3.5 187z" /> | ||
94 | <glyph unicode="u" horiz-adv-x="1067" d="M109 1006q6 78 25.5 187.5t35.5 178.5l16 72h7q4 0 14 1t18 1t17.5 1t15.5 1h4q-2 0 -16.5 -79t-32.5 -192.5t-25 -187.5q-8 -87 -9 -191v-50q0 -70 2 -118q3 -63 8.5 -147t5.5 -92v-2q-2 -8 2 -36.5t22.5 -76t49 -90.5t94 -75.5t149.5 -34.5h18q87 0 154 35 q74 39 110.5 100t52 100t21.5 70q-12 516 -12 608v17l-4 430h6q4 0 14.5 1t18.5 1t17.5 1t13.5 1h6q-1 0 -1 -23q0 -46 3 -185q4 -208 6 -243q2 -33 8 -602v-106q0 -12 -1 -89t-1 -127v-65h-16h-37h-19v188q-116 -184 -337 -184h-21q-88 4 -157.5 30.5t-109.5 68.5t-67.5 85 t-38 89.5t-14.5 69t-4 36.5q-17 205 -17 404q0 110 5 219z" /> | ||
95 | <glyph unicode="v" d="M20 1434h14q9 0 32.5 1t31.5 1h15q-1 -2 37 -182l80 -372q42 -192 51 -216q4 -8 219 -537l418 1305l86 -7l-453 -1425l-96 -4q-221 551 -246 635t-189 801z" /> | ||
96 | <glyph unicode="w" horiz-adv-x="1607" d="M104 330h2v88q0 18 3.5 186t7.5 334t4 172v313h12q8 0 23.5 1t25.5 1l11 -2v-65q0 -49 1 -126t1 -89q0 -545 -9 -709q-2 -37 -2 -86h2v-28q0 -18 12.5 -62.5t35 -78.5t75.5 -62.5t127 -30.5h10q223 0 304 174q-6 70 -7 70h2v88q0 18 3.5 186t7.5 334t4 172v313h12 q8 0 23.5 1t25.5 1l10 -2v-65q0 -49 1.5 -126t1.5 -89q0 -545 -9 -709q-2 -37 -2 -86h2v-28q0 -18 12.5 -62.5t35 -78.5t75.5 -62.5t127 -30.5h14q69 0 124 17q60 20 96.5 53.5t55.5 61.5t32 58v142q0 18 3 186t7 334t4 172v313h13q9 0 23.5 1t25.5 1l10 -2v-65 q0 -49 1 -126t1 -89q0 -545 -8 -709q-3 -36 -7 -236q-3 -139 -3 -181q0 -19 1 -19l-18 2h-37l-20 2q0 57 2 131q-86 -147 -299 -147h-9q-227 2 -311 186q-18 -41 -46 -77t-103.5 -72.5t-177.5 -36.5q-254 2 -324 225q-21 58 -21 110v9z" /> | ||
97 | <glyph unicode="x" horiz-adv-x="1030" d="M20 1313v41v28q14 0 53.5 -11t102 -44t124.5 -79t121.5 -128t92.5 -182q33 100 93.5 182t122 128t125 79t102.5 44t53 11q0 -6 -1 -27.5t-1 -41.5v-21h-4q-217 -43 -340 -211q-104 -145 -107 -362q0 -106 22.5 -196.5t58.5 -152t81 -109.5t89 -75.5t81 -46t61 -24.5 l23 -6q-2 -49 -2 -64q-33 0 -88.5 19.5t-127 60.5t-139 125t-102.5 194q-35 -111 -102.5 -194.5t-138 -124.5t-126 -60.5t-88.5 -19.5l-2 64q16 4 45 13t100.5 53t127 104.5t100.5 176.5q43 112 43 251v12q-2 137 -45 244.5t-99.5 165t-127 96.5t-109.5 51t-65 16h-4z" /> | ||
98 | <glyph unicode="y" horiz-adv-x="868" d="M41 1169.5q0 24.5 3 145.5q3 119 5 119q1 0 4.5 -0.5t7 -0.5h9.5q18 1 38.5 0t20.5 -3v-5q-9 -89 -9 -166q0 -205 64 -321q56 -105 164 -105q8 0 17 1q233 16 313 149l-10 449q92 0 92 4t1 -98.5t2 -247.5l2 -295q1 -150 1 -262.5t-2 -131.5q0 -2 -2 -26.5t-3 -41 t-7.5 -49t-13.5 -56t-20 -56.5t-30.5 -57.5t-43.5 -50t-57.5 -42t-73.5 -27.5t-91 -11h-12q-111 0 -189 36q-82 39 -117.5 99.5t-49.5 108.5q-11 42 -11 78v11h86q0 -25 3 -48t19.5 -62t45 -66.5t88 -51t141.5 -26.5h8q65 0 113 31q51 33 78.5 92.5t44 127t19.5 146.5t3 135 t-4 111.5t-4 59.5q0 45 -2 90q-163 -113 -322 -113q-31 0 -63 5q-80 10 -137.5 72.5t-80 143t-30.5 131t-8 75z" /> | ||
99 | <glyph unicode="z" horiz-adv-x="1032" d="M51 2v66q297 516 369 589q33 33 139 186l194 291q89 138 87 140h-11q-10 -2 -27.5 -4t-40 -4t-52 -4t-61.5 -4.5t-67.5 -4.5t-70.5 -2q-84 0 -181.5 3t-152.5 8l-55 4v90q0 -2 54 -7.5t151.5 -9.5t187.5 -4q215 2 436 25l2 -88q-342 -520 -424 -619q-16 -20 -46 -62 l-66 -95l-74 -110l-74 -113l-63 -98l-45 -69l-19 -26h31h81q48 0 97 -1t91 -1h53h17q88 0 198 18q120 21 192 41l74 21l-2 -90q2 -2 -61.5 -18.5t-183.5 -33t-234 -16.5z" /> | ||
100 | <glyph unicode="|" horiz-adv-x="315" d="M115 281q0 545 8 708q2 35 6 243q3 139 3 185q0 23 -1 23l19 -2h38l19 -2l-4 -430q0 -18 -3 -186.5t-7.5 -334.5t-4.5 -172v-530h-12q-8 0 -24 -1h-9q-9 0 -16 1h-10v122q0 95 -1 231t-1 145z" /> | ||
101 | <glyph unicode="¡" horiz-adv-x="333" d="M131 1075q0 -545 8 -708q2 -35 6 -243q3 -139 3 -185q0 -23 -1 -23l19 2h39l18 2l-4 430q0 18 -2 193.5t-5 350.5t-3 179zM133 1354l84 4l-4 -189q-18 2 -38 3t-38 -1z" /> | ||
102 | <glyph unicode="§" horiz-adv-x="1705" /> | ||
103 | <glyph unicode="¨" horiz-adv-x="559" d="M63 1522l3 94l94 -4l4 -90h-101zM371 1522l8 96l92 4v-100h-100z" /> | ||
104 | <glyph unicode="ª" d="M49 573q14 96 76.5 161t144.5 89.5t175.5 39t170 16.5t129 13t52.5 36q2 31 10 93q9 70 9 99q0 31 -16 70q-18 41 -59 67q-33 23 -103.5 35.5t-145.5 15.5q-55 2 -109 2h-36q-71 -1 -118 -3h-45q-2 0 0 11t6.5 28.5t4.5 25.5q-2 8 126 12q26 1 54 1q106 0 231 -13 q158 -18 219 -63q70 -49 85 -151q6 -46 6 -103q0 -72 -10 -165q-19 -165 -19 -208q0 -86 9 -251t17 -288l9 -120q-82 2 -82 6l-13 172q-25 -18 -66.5 -44t-144.5 -68q-93 -38 -163 -38h-13q-68 0 -138.5 25.5t-139 82t-100.5 163.5q-21 67 -21 147q0 50 8 104zM146 352 q40 -104 116 -170q72 -53 163 -53q25 0 52 4q123 19 227.5 65t112.5 68q3 6 3 40q0 39 -4 114q-7 141 -16.5 274t-11.5 131l-6 -2q-6 -2 -19 -5t-27.5 -6t-37.5 -7l-38 -7q-17 -3 -43.5 -8.5t-38.5 -7.5q-6 0 -71 -5t-103.5 -13t-97 -27.5t-98.5 -57.5t-58 -93 q-24 -68 -24 -129q0 -55 20 -105z" /> | ||
105 | <glyph unicode="­" horiz-adv-x="677" d="M31 735q18 0 164.5 -3t291 -7t150.5 -4l2 -74q-440 0 -604 8z" /> | ||
106 | <glyph unicode="²" horiz-adv-x="796" d="M2 8l6 84q25 18 65 51t144.5 130.5t184 190.5t148 213t75.5 216q2 31 2 60q0 85 -17 155q-24 94 -66 144.5t-85 76t-84 27.5h-11q-43 0 -111 -14q-77 -15 -130 -31l-55 -17l-6 12l-10 21l-11 23q-4 8 -2 6l31 14q31 14 79 30.5t107 29.5q39 9 81 9q21 0 43 -2 q66 -7 125.5 -36t111 -102.5t79.5 -184.5q17 -74 17 -144q0 -44 -7 -86q-16 -110 -66 -212.5t-116.5 -191.5t-140.5 -160.5t-135.5 -124t-100.5 -80.5l-41 -27l670 2l-6 -90q-4 4 -385 6z" /> | ||
107 | <glyph unicode="³" horiz-adv-x="825" d="M43 113l4 18q4 16 6 33l4 18q207 -98 244 -104q16 -2 46 -3h13q28 0 70 3q53 4 101.5 26.5t91.5 59.5t63 108q13 44 13 97q0 34 -5 71q-25 193 -239 219q-28 3 -52.5 3t-46.5 -3v97h28q19 0 65.5 15t82 46t64.5 102.5t29 174.5q0 115 -55.5 176t-134.5 66q-25 2 -49 2 q-54 0 -108 -8q-77 -11 -133 -32l-55 -20q-27 59 -33 63q206 94 349 94q147 0 227 -100q37 -45 57 -110q23 -74 25 -143v-16q0 -58 -13 -102q-14 -49 -37.5 -92t-50 -70.5t-51 -47t-39.5 -29.5l-16 -8q10 0 28.5 -2t63.5 -17.5t81 -41t67.5 -82t35.5 -134.5q1 -19 1 -38 q0 -137 -65 -234q-75 -111 -178 -151q-76 -29 -150 -29q-28 0 -56 4q-39 6 -76 15t-65.5 20.5t-54 23.5t-43 22.5t-31 20.5t-17.5 15z" /> | ||
108 | <glyph unicode="´" horiz-adv-x="677" d="M135 1571q4 0 46 16.5t97.5 43t83.5 44.5q23 16 44.5 44t31.5 46l8 21l76 -55l-4 -9q-4 -8 -12 -21t-18.5 -28.5t-26 -32t-29.5 -26.5q-25 -16 -92.5 -44t-123.5 -48q-51 -19 -57 -19h-1l-11 33q-8 31 -12 35z" /> | ||
109 | <glyph unicode="¸" horiz-adv-x="1323" d="M516 -401l4 18l12 37l9 18l20 -4q18 -2 44 -4t52.5 0t46 14.5t21.5 36.5v7q0 56 -79 56q-18 0 -40 -3l-16 -2l-41 49q27 201 29 201q84 0 84 -3l-25 -167q2 -2 20.5 0t47 -5.5t55 -19.5t42.5 -44q11 -23 11 -53q0 -11 -2 -24q-6 -43 -38 -69.5t-65.5 -36t-83.5 -10.5h-30 q-26 0 -37 1q-16 2 -39 7h-2z" /> | ||
110 | <glyph unicode="¹" horiz-adv-x="499" d="M20 1319q0 -2 84 50l111 69v2l18 -2h37l21 -2l-4 -430q0 -18 -3 -186.5t-7.5 -334.5t-4.5 -172v-245h174l3 -60l-338 -16q-20 2 -37 2l6 69q55 2 121 3q0 45 -1 126.5t-1 88.5q0 545 8 708q0 10 2 70.5t4 143.5t2 136l-166 -92q-2 4 -5 12.5t-9 23.5t-10 26z" /> | ||
111 | <glyph unicode="º" horiz-adv-x="1175" d="M51 702q0 139 64 347q51 170 184 276.5t289 106.5q166 0 300 -125t195 -328q41 -133 41 -277q0 -117 -34.5 -248.5t-71.5 -185.5q-209 -293 -430 -293q-121 0 -226.5 68t-181.5 186q-129 205 -129 473zM141 700q0 -158 71 -325.5t130 -224.5q94 -92 250 -93 q186 0 318 188.5t132 454.5q0 141 -58 292t-118 220q-111 133 -274 134q-96 0 -186.5 -50.5t-151.5 -140.5q-113 -168 -113 -455z" /> | ||
112 | <glyph unicode="¼" horiz-adv-x="2260" d="M20 1319q0 -2 84 50l111 69v2l18 -2h37l21 -2l-4 -430q0 -18 -3 -186.5t-7.5 -334.5t-4.5 -172v-245h174l3 -60l-338 -16q-20 2 -37 2l6 69q55 2 121 3q0 45 -1 126.5t-1 88.5q0 545 8 708q0 10 2 70.5t4 143.5t2 136l-166 -92q-2 4 -5 12.5t-9 23.5t-10 26zM499 2 q2 6 201.5 319.5t212.5 344.5q8 23 87 215l150 372l74 183h24q21 0 46 -2h22q-307 -717 -332 -801q-10 -37 -107 -195l-190 -299l-92 -141q-86 0 -96 4zM1345 524l651 910v6l18 -2h39l19 -2v-4h4l-4 -9q-2 -31 -4 -210q-1 -89 -1 -141t1 -66q0 -57 -9 -431q240 -12 250 -18 l-6 -76q-125 12 -246 19q0 -43 -1 -89t-2 -71t-1 -27v-245h174l2 -60l-338 -16q-18 2 -36 2l6 69q55 2 121 3q0 45 -1 126.5t-1 88.5q0 109 2 223q-45 2 -79 2t-57 -2l-444 -49zM1439 528l99 16q61 9 206 24q127 12 215 12h23q4 389 6 409q0 10 1 63.5t3 131.5t2 129z" /> | ||
113 | <glyph unicode="½" horiz-adv-x="2112" d="M20 1319q0 -2 84 50l111 69v2l18 -2h37l21 -2l-4 -430q0 -18 -3 -186.5t-7.5 -334.5t-4.5 -172v-245h174l3 -60l-338 -16q-20 2 -37 2l6 69q55 2 121 3q0 45 -1 126.5t-1 88.5q0 545 8 708q0 10 2 70.5t4 143.5t2 136l-166 -92q-2 4 -5 12.5t-9 23.5t-10 26zM499 2 q2 6 201.5 319.5t212.5 344.5q8 23 87 215l150 372l74 183h24q21 0 46 -2h22q-307 -717 -332 -801q-10 -37 -107 -195l-190 -299l-92 -141q-86 0 -96 4zM1318 8l6 84q25 18 65 51t144.5 130.5t184 190.5t148 213t75.5 216q2 31 2 60q0 85 -17 155q-24 94 -66 144.5t-85 76 t-84 27.5h-11q-43 0 -111 -14q-77 -15 -130 -31l-55 -17l-6 12l-10 21l-11 23q-4 8 -2 6l31 14q31 14 79 30.5t107 29.5q39 9 81 9q21 0 43 -2q66 -7 125.5 -36t111 -102.5t79.5 -184.5q17 -74 17 -144q0 -44 -7 -86q-16 -110 -66 -212.5t-116.5 -191.5t-140.5 -160.5 t-135.5 -124t-100.5 -80.5l-41 -27l670 2l-6 -90q-4 4 -385 6z" /> | ||
114 | <glyph unicode="¾" horiz-adv-x="2586" d="M43 113l4 18q4 16 6 33l4 18q207 -98 244 -104q16 -2 46 -3h13q28 0 70 3q53 4 101.5 26.5t91.5 59.5t63 108q13 44 13 97q0 34 -5 71q-25 193 -239 219q-28 3 -52.5 3t-46.5 -3v97h28q19 0 65.5 15t82 46t64.5 102.5t29 174.5q0 115 -55.5 176t-134.5 66q-25 2 -49 2 q-54 0 -108 -8q-77 -11 -133 -32l-55 -20q-27 59 -33 63q206 94 349 94q147 0 227 -100q37 -45 57 -110q23 -74 25 -143v-16q0 -58 -13 -102q-14 -49 -37.5 -92t-50 -70.5t-51 -47t-39.5 -29.5l-16 -8q10 0 28.5 -2t63.5 -17.5t81 -41t67.5 -82t35.5 -134.5q1 -19 1 -38 q0 -137 -65 -234q-75 -111 -178 -151q-76 -29 -150 -29q-28 0 -56 4q-39 6 -76 15t-65.5 20.5t-54 23.5t-43 22.5t-31 20.5t-17.5 15zM825 2q2 6 201.5 319.5t212.5 344.5q8 23 87 215l150 372l74 183h24q21 0 46 -2h22q-307 -717 -332 -801q-10 -37 -107 -195l-190 -299 l-92 -141q-86 0 -96 4zM1671 524l651 910v6l18 -2h39l19 -2v-4h4l-4 -9q-2 -31 -4 -210q-1 -89 -1 -141t1 -66q0 -57 -9 -431q240 -12 250 -18l-6 -76q-125 12 -246 19q0 -43 -1 -89t-2 -71t-1 -27v-245h174l2 -60l-338 -16q-18 2 -36 2l6 69q55 2 121 3q0 45 -1 126.5 t-1 88.5q0 109 2 223q-45 2 -79 2t-57 -2l-444 -49zM1765 528l99 16q61 9 206 24q127 12 215 12h23q4 389 6 409q0 10 1 63.5t3 131.5t2 129z" /> | ||
115 | <glyph unicode="¿" horiz-adv-x="761" d="M6 303q31 266 350 375q111 39 207 45q-25 324 -28 324l83 2l29 -375q-12 -6 -111.5 -29.5t-188.5 -53.5t-172 -104.5t-93 -179.5q-3 -36 -3 -68q0 -65 13 -115q21 -75 69 -112t101 -53t125 -18h28q153 0 294 61q28 -78 30 -78l-10 -2q-8 -4 -27 -9l-42 -11 q-23 -6 -54 -12.5t-62.5 -11.5t-68.5 -9t-69 -6q-16 -1 -32 -1q-39 0 -76 4q-50 5 -113.5 29.5t-104.5 68.5t-65 132q-14 55 -14 122q0 41 5 85zM524 1327l84 -4l-4 -182q-2 2 -19.5 1t-35.5 -3h-21z" /> | ||
116 | <glyph unicode="À" horiz-adv-x="989" d="M43 4l27 115l72 300l87 367q-18 4 -24 9q-68 25 -146 118l43 48q25 -31 97 -74q25 -14 49 -25l65 270l52 224l18 69l113 5l493 -1426q-82 -12 -84 -12l-252 758q-45 -2 -83 -2t-70 2q-139 10 -191 18q-147 -629 -153 -651l-47 -117zM264 1751l76 55q33 -76 84 -110 q29 -20 84 -46t97 -42.5t46 -16.5q-4 -4 -12 -35l-10 -32q-2 -2 -58.5 18.5t-124 48t-92.5 43.5q-14 10 -29.5 26.5t-25.5 32.5l-18 29q-9 13 -13 21zM328 844q16 -2 49 -2q57 -6 252 -23q-178 537 -180 537q-4 0 -121 -512z" /> | ||
117 | <glyph unicode="Á" horiz-adv-x="946" d="M27 4l65 -4q29 63 47 117q6 23 154 651q51 -8 190 -18q31 -2 69.5 -2t84.5 2l252 -758l84 12l-494 1426q-113 0 -112 -5l-19 -69l-52 -223l-65 -271q-25 10 -49 25q-33 18 -56.5 36.5t-31.5 26.5l-8 11l-43 -48q78 -94 145 -118q6 -4 25 -9l-55 -228l-50 -213l-42 -175 l-29 -121zM270 1587q4 0 46 16.5t97.5 43t84.5 45.5q23 16 44 43.5t31 46.5l9 20l75 -55l-4 -8q-4 -8 -12 -21.5t-18.5 -29t-25.5 -32t-30 -26.5q-25 -16 -92 -43.5t-123.5 -48t-58.5 -18.5l-10 32q-8 31 -13 35zM311 844q117 512 121 512q2 0 180 -537q-195 16 -252 23 q-33 0 -49 2z" /> | ||
118 | <glyph unicode="Â" horiz-adv-x="946" d="M27 4l65 -4q29 63 47 117q6 23 154 651q51 -8 190 -18q31 -2 69.5 -2t84.5 2l252 -758l84 12l-494 1426q-113 0 -112 -5l-19 -69l-52 -223l-65 -271q-25 10 -49 25q-33 18 -56.5 36.5t-31.5 26.5l-8 11l-43 -48q78 -94 145 -118q6 -4 25 -9l-55 -228l-50 -213l-42 -175 l-29 -121zM209 1595q18 6 138 84t120 82q0 2 68 -40l137 -83l69 -43l-61 -59l-217 139l-184 -127q-57 41 -70 47zM311 844q117 512 121 512q2 0 180 -537q-195 16 -252 23q-33 0 -49 2z" /> | ||
119 | <glyph unicode="Ã" horiz-adv-x="946" d="M27 4l65 -4q29 63 47 117q6 23 154 651q51 -8 190 -18q31 -2 69.5 -2t84.5 2l252 -758l84 12l-494 1426q-113 0 -112 -5l-19 -69l-52 -223l-65 -271q-25 10 -49 25q-33 18 -56.5 36.5t-31.5 26.5l-8 11l-43 -48q78 -94 145 -118q6 -4 25 -9l-55 -228l-50 -213l-42 -175 l-29 -121zM215 1594v13v8v5v2l18 12q20 14 60.5 29.5t83.5 15.5q63 -2 117.5 -30.5t70.5 -32.5q20 -4 62.5 10t72.5 33l31 16v-84q-12 -6 -30.5 -17t-63.5 -27q-36 -12 -61 -12q-7 0 -13 1q-25 4 -78 33.5t-106 32.5q-43 0 -84 -15.5t-59 -32.5l-19 -16v2v7v11v11q0 6 -1 12 t-1 13zM311 844q117 512 121 512q2 0 180 -537q-195 16 -252 23q-33 0 -49 2z" /> | ||
120 | <glyph unicode="Ä" horiz-adv-x="946" d="M27 4l65 -4q29 63 47 117q6 23 154 651q51 -8 190 -18q31 -2 69.5 -2t84.5 2l252 -758l84 12l-494 1426q-113 0 -112 -5l-19 -69l-52 -223l-65 -271q-25 10 -49 25q-33 18 -56.5 36.5t-31.5 26.5l-8 11l-43 -48q78 -94 145 -118q6 -4 25 -9l-55 -228l-50 -213l-42 -175 l-29 -121zM227 1645l2 94l95 -4l4 -90h-101zM311 844q117 512 121 512q2 0 180 -537q-195 16 -252 23q-33 0 -49 2zM535 1645l8 96l92 4v-100h-100z" /> | ||
121 | <glyph unicode="Æ" horiz-adv-x="1548" d="M-100 2q-2 -2 118 204l285 484l-27 10q-68 25 -145 119l43 47q25 -31 96 -73q37 -23 74 -33l395 674q4 2 11 2v4l18 -2h39l18 -2h99q29 -2 221 -2h229q27 0 64 2t61 2l23 2l6 -80l-705 6q-4 -184 -4 -277q0 -62 2 -83q0 -76 -6 -287q52 3 83 3q16 0 26 -1q29 -2 165 -3 t158 -1q25 0 66 -1t63 -3h25l2 -68l-588 4q-8 -328 -8 -336v-247q12 0 55 2t62 0q29 -2 221 -2h229q27 0 64 2t61 2l23 2l6 -80l-774 6v2h-19v65q0 50 -1 126.5t-1 89.5q0 201 2 374q-44 -2 -85 -2t-79 2q-137 10 -188 19l-324 -539q-31 -47 -71 -137zM428 750q2 0 10 -1 t11 -1q195 -23 288 -25q0 233 4 266q0 8 1 55.5t3.5 117t2.5 120.5z" /> | ||
122 | <glyph unicode="Ç" horiz-adv-x="868" d="M41 705v15q0 209 109 397q112 196 282 259q100 37 210 51q97 13 154 13h15q59 -2 59 -6l-4 -72q-25 1 -49 1q-203 0 -364 -75q-139 -63 -224.5 -214.5t-93.5 -366.5v-22q0 -131 65 -268q70 -149 176.5 -245t203.5 -100q20 -1 39 -1q67 0 125 11q73 14 102 31l28 16 l19 -92q-92 -41 -254 -47l-21 -137q2 -2 20.5 0t47.5 -5.5t55.5 -19.5t42.5 -44q11 -23 11 -53q0 -11 -2 -24q-6 -43 -38 -69.5t-66 -36t-84 -10.5h-30q-25 0 -36 1q-17 2 -39 7h-2l6 18q4 18 12 37l6 18l19 -4q20 -2 45.5 -4t52.5 0t46.5 14.5t21.5 36.5v7q0 56 -79 56 q-18 0 -40 -3q-16 -2 -17 -2l-41 49q14 113 23 168q-119 14 -238.5 134t-195.5 281.5t-78 299.5z" /> | ||
123 | <glyph unicode="È" horiz-adv-x="866" d="M53 281q0 545 8 708q2 35 7 243q3 144 3 188q0 20 -1 20l18 -2h39l18 -2h99q29 -2 221 -2h229q27 0 64 2t61 2l23 2l6 -80l-705 4q-4 -183 -4 -275q0 -62 2 -83q0 -76 -6 -287q52 3 83 3q16 0 26 -1q29 -2 165 -3t158 -1q25 0 66 -1t63 -3h25l2 -68l-588 4 q-8 -328 -8 -336v-247q12 0 55 2t62 0q29 -2 221 -2h229q27 0 64 2t61 2l23 2l6 -80l-774 6v2h-19v66q0 49 -1 125.5t-1 89.5zM236 1741l75 55q33 -76 84 -110q29 -20 84.5 -46t97 -42.5t46.5 -16.5q-4 -4 -13 -37l-10 -31h-1q-6 0 -58 18q-56 21 -123.5 49t-91.5 44 q-14 10 -29.5 26.5t-26 32t-18.5 28.5t-12 22z" /> | ||
124 | <glyph unicode="É" horiz-adv-x="866" d="M53 281q0 545 8 708q2 35 7 243q3 144 3 188q0 20 -1 20l18 -2h39l18 -2h99q29 -2 221 -2h229q27 0 64 2t61 2l23 2l6 -80l-705 4q-4 -183 -4 -275q0 -62 2 -83q0 -76 -6 -287q52 3 83 3q16 0 26 -1q29 -2 165 -3t158 -1q25 0 66 -1t63 -3h25l2 -68l-588 4 q-8 -328 -8 -336v-247q12 0 55 2t62 0q29 -2 221 -2h229q27 0 64 2t61 2l23 2l6 -80l-774 6v2h-19v66q0 49 -1 125.5t-1 89.5zM242 1632q4 0 46 16.5t97 43t84 45.5q23 16 44.5 43.5t31.5 46.5l8 20l76 -55l-4 -8q-4 -8 -13 -22l-18 -28q-10 -16 -25.5 -32t-29.5 -27 q-25 -16 -92.5 -43.5t-124.5 -47.5q-51 -19 -57 -19h-1l-10 32q-8 31 -12 35z" /> | ||
125 | <glyph unicode="Ê" horiz-adv-x="866" d="M53 281q0 545 8 708q2 35 7 243q3 144 3 188q0 20 -1 20l18 -2h39l18 -2h99q29 -2 221 -2h229q27 0 64 2t61 2l23 2l6 -80l-705 4q-4 -183 -4 -275q0 -62 2 -83q0 -76 -6 -287q52 3 83 3q16 0 26 -1q29 -2 165 -3t158 -1q25 0 66 -1t63 -3h25l2 -68l-588 4 q-8 -328 -8 -336v-247q12 0 55 2t62 0q29 -2 221 -2h229q27 0 64 2t61 2l23 2l6 -80l-774 6v2h-19v66q0 49 -1 125.5t-1 89.5zM170 1595q18 6 138 84t120 82q0 2 68 -40l139 -83l67 -43l-61 -59l-217 139l-184 -127q-57 41 -70 47z" /> | ||
126 | <glyph unicode="Ë" horiz-adv-x="866" d="M53 281q0 545 8 708q2 35 7 243q3 144 3 188q0 20 -1 20l18 -2h39l18 -2h99q29 -2 221 -2h229q27 0 64 2t61 2l23 2l6 -80l-705 4q-4 -183 -4 -275q0 -62 2 -83q0 -76 -6 -287q52 3 83 3q16 0 26 -1q29 -2 165 -3t158 -1q25 0 66 -1t63 -3h25l2 -68l-588 4 q-8 -328 -8 -336v-247q12 0 55 2t62 0q29 -2 221 -2h229q27 0 64 2t61 2l23 2l6 -80l-774 6v2h-19v66q0 49 -1 125.5t-1 89.5zM229 1624l2 94l95 -4l4 -90h-101zM537 1624l8 96l92 4v-100h-100z" /> | ||
127 | <glyph unicode="Ì" horiz-adv-x="434" d="M20 1745l76 55q33 -76 84 -110q29 -20 84 -46t97 -42.5t47 -16.5q-4 -4 -15 -37l-8 -30q-2 -2 -58.5 18t-124 48t-91.5 44q-14 10 -29.5 26.5t-26 32t-18.5 29t-12 21.5zM41 1382l2 60q0 2 37 2t91 -1l109 -2q54 -1 93 -3h37q4 -70 6 -70q-6 0 -37 -2q-4 -1 -19 -1 q-29 0 -102 3q-4 -184 -4 -278q0 -62 2 -84q0 -18 -3 -186.5t-7 -334.5t-4 -172v-245h174l2 -60l-338 -16q-18 2 -37 2l6 69q55 2 121 3q0 45 -1 126.5t-1 88.5q0 545 8 708q2 23 8 383z" /> | ||
128 | <glyph unicode="Í" horiz-adv-x="434" d="M41 1382l2 60q0 2 37 2t91 -1l109 -2q54 -1 93 -3h37q4 -70 6 -70q-6 0 -37 -2q-4 -1 -19 -1q-29 0 -102 3q-4 -184 -4 -278q0 -62 2 -84q0 -18 -3 -186.5t-7 -334.5t-4 -172v-245h174l2 -60l-338 -16q-18 2 -37 2l6 69q55 2 121 3q0 45 -1 126.5t-1 88.5q0 545 8 708 q2 23 8 383zM59 1618q4 0 46 16.5t97.5 43t84.5 44.5q23 16 44 44t29 49l11 18l75 -55l-4 -9q-4 -8 -12 -21t-18.5 -28.5t-25.5 -32t-30 -26.5q-25 -16 -92 -44t-124 -48q-51 -19 -57 -19h-1l-8 31q-10 33 -15 37z" /> | ||
129 | <glyph unicode="Î" horiz-adv-x="438" d="M-43 1595q16 8 135 85t119 81q0 2 69 -40l138 -83l67 -43l-61 -59l-217 139l-184 -127q-53 41 -66 47zM41 1382l2 60q0 2 37 2t91 -1l109 -2q54 -1 93 -3h37q4 -70 6 -70q-6 0 -37 -2q-4 -1 -19 -1q-29 0 -102 3q-4 -184 -4 -278q0 -62 2 -84q0 -18 -3 -186.5t-7 -334.5 t-4 -172v-245h174l2 -60l-338 -16q-18 2 -37 2l6 69q55 2 121 3q0 45 -1 126.5t-1 88.5q0 545 8 708q2 23 8 383z" /> | ||
130 | <glyph unicode="Ï" horiz-adv-x="434" d="M14 1563l2 94l95 -4l4 -90h-101zM41 1382l2 60q0 2 37 2t91 -1l109 -2q54 -1 93 -3h37q4 -70 6 -70q-6 0 -37 -2q-4 -1 -19 -1q-29 0 -102 3q-4 -184 -4 -278q0 -62 2 -84q0 -18 -3 -186.5t-7 -334.5t-4 -172v-245h174l2 -60l-338 -16q-18 2 -37 2l6 69q55 2 121 3 q0 45 -1 126.5t-1 88.5q0 545 8 708q2 23 8 383zM322 1563l8 96l92 4v-100h-100z" /> | ||
131 | <glyph unicode="Ñ" horiz-adv-x="1038" d="M123 281q0 545 8 708q2 35 6 243q3 139 3 185q0 23 -1 23l19 -2h39l18 -2v-4l16 -2l611 -1258q4 430 4 576q0 33 -5 253t-7 240q-2 8 -3.5 31.5t-1.5 50.5t-1 52.5t-1 41.5v15l21 2l41 4l22 4q-1 -51 -1 -89q0 -75 3 -100v-1253h-18h-35l-18 2l-629 1288q-3 -169 -3 -239 q0 -35 1 -45q0 -18 -3 -186.5t-7 -334.5t-4 -172v-313h-13q-8 0 -24 -1h-9q-9 0 -16 1h-10v66q0 49 -1 125.5t-1 89.5zM260 1595v12v8v5v2l19 12q20 14 60 29.5t83 15.5q63 -2 117.5 -30.5t70.5 -32.5q20 -4 62.5 10t72.5 33l31 16v-84q-12 -6 -30.5 -17t-63.5 -27 q-36 -12 -61 -12q-7 0 -13 1q-25 4 -78 33.5t-106 32.5q-43 0 -84 -15.5t-59 -32.5l-19 -16v2v7v11v11q0 6 -1 12t-1 14z" /> | ||
132 | <glyph unicode="Ò" horiz-adv-x="1214" d="M55 702q0 139 64 347q37 121 119 213q150 170 354.5 170t359.5 -189q45 39 82 53q104 38 179 38q14 0 26 -1v-88q-13 1 -26 1q-115 0 -187 -50l-27 -20q53 -86 88 -197q41 -133 41 -277q0 -117 -34.5 -248.5t-71.5 -185.5q-209 -293 -430 -293q-121 0 -226.5 68 t-181.5 186q-129 205 -129 473zM145 700q0 -158 71 -325.5t130 -224.5q94 -92 250 -93q186 0 318.5 188.5t132.5 454.5q0 195 -115 416q-239 -200 -471 -200q-33 0 -66 4q-162 18 -186 141q-64 -154 -64 -361zM238 1262q10 -1 10 -11zM279 1131v-15q0 -28 10 -51 q14 -29 64 -51q46 -19 120 -19h14q88 2 170 36t127 66.5t105 88.5l-19 26q-110 134 -274 134q-172 0 -297 -138q-4 -8 -10 -23.5t-10 -53.5zM410 1745l75 55q33 -76 84 -110q29 -20 84.5 -46t97.5 -42.5t46 -16.5q-4 -4 -15 -37l-8 -30h-1q-6 0 -58 18q-56 20 -123.5 48 t-91.5 44q-14 10 -29.5 26.5t-26 32t-18.5 29t-12 21.5z" /> | ||
133 | <glyph unicode="Ó" horiz-adv-x="1214" d="M55 702q0 139 64 347q37 121 119 213q150 170 354.5 170t359.5 -189q45 39 82 53q104 38 179 38q14 0 26 -1v-88q-13 1 -26 1q-115 0 -187 -50l-27 -20q53 -86 88 -197q41 -133 41 -277q0 -117 -34.5 -248.5t-71.5 -185.5q-209 -293 -430 -293q-121 0 -226.5 68 t-181.5 186q-129 205 -129 473zM145 700q0 -158 71 -325.5t130 -224.5q94 -92 250 -93q186 0 318.5 188.5t132.5 454.5q0 195 -115 416q-239 -200 -471 -200q-33 0 -66 4q-162 18 -186 141q-64 -154 -64 -361zM238 1262l10 -11zM279 1131v-15q0 -28 10 -51q14 -29 64 -51 q46 -19 120 -19h14q88 2 170 36t127 66.5t105 88.5l-19 26q-110 134 -274 134q-172 0 -297 -138q-4 -8 -10 -23.5t-10 -53.5zM416 1608q4 0 46 16t97 43t84 45q23 16 44.5 44t29.5 46l10 21l76 -56l-4 -8q-4 -8 -13 -22l-18 -28q-10 -15 -25.5 -31.5t-29.5 -26.5 q-25 -16 -92.5 -44t-124.5 -49q-51 -18 -57 -18h-1l-8 33q-10 31 -14 35z" /> | ||
134 | <glyph unicode="Ô" horiz-adv-x="1183" d="M51 702q0 139 64 347q36 121 118 213q150 170 355 170t360 -189q45 39 82 53q104 38 179 38q14 0 26 -1v-88q-13 1 -26 1q-115 0 -187 -50l-27 -20q53 -86 88 -197q41 -133 41 -277q0 -117 -34.5 -248.5t-71.5 -185.5q-209 -293 -430 -293q-121 0 -226.5 68t-181.5 186 q-129 205 -129 473zM141 700q0 -158 71 -325.5t130 -224.5q94 -92 250 -93q186 0 318 188.5t132 454.5q0 195 -114 416q-239 -200 -471 -200q-33 0 -66 4q-162 18 -186 141q-64 -154 -64 -361zM233 1262l11 -11zM275 1131v-15q0 -28 10 -51q14 -29 64 -51q46 -19 120 -19h14 q88 2 170 36t127 66.5t105 88.5l-19 26q-110 134 -274 134q-172 0 -297 -138q-4 -8 -10 -23.5t-10 -53.5zM326 1595q18 6 138 84t120 82q0 2 68 -40l139 -83l67 -43l-61 -59l-217 139l-185 -127q-57 41 -69 47z" /> | ||
135 | <glyph unicode="Õ" horiz-adv-x="1183" d="M51 702q0 139 64 347q36 121 118 213q150 170 355 170t360 -189q45 39 82 53q104 38 179 38q14 0 26 -1v-88q-13 1 -26 1q-115 0 -187 -50l-27 -20q53 -86 88 -197q41 -133 41 -277q0 -117 -34.5 -248.5t-71.5 -185.5q-209 -293 -430 -293q-121 0 -226.5 68t-181.5 186 q-129 205 -129 473zM141 700q0 -158 71 -325.5t130 -224.5q94 -92 250 -93q186 0 318 188.5t132 454.5q0 195 -114 416q-239 -200 -471 -200q-33 0 -66 4q-162 18 -186 141q-64 -154 -64 -361zM233 1262l11 -11zM275 1131v-15q0 -28 10 -51q14 -29 64 -51q46 -19 120 -19h14 q88 2 170 36t127 66.5t105 88.5l-19 26q-110 134 -274 134q-172 0 -297 -138q-4 -8 -10 -23.5t-10 -53.5zM334 1594v13v8v5v2l18 12q20 14 60.5 29.5t83.5 15.5q63 -2 117.5 -30.5t70.5 -32.5q20 -4 62 10t73 33l31 16v-84q-12 -6 -30.5 -17t-63.5 -27q-36 -12 -61 -12 q-7 0 -13 1q-25 4 -78 33.5t-106 32.5q-43 0 -84 -15.5t-60 -32.5l-18 -16v2v7v10v12q0 6 -1 12t-1 13z" /> | ||
136 | <glyph unicode="Ö" horiz-adv-x="1214" d="M55 702q0 139 64 347q37 121 119 213q150 170 354.5 170t359.5 -189q45 39 82 53q104 38 179 38q14 0 26 -1v-88q-13 1 -26 1q-115 0 -187 -50l-27 -20q53 -86 88 -197q41 -133 41 -277q0 -117 -34.5 -248.5t-71.5 -185.5q-209 -293 -430 -293q-121 0 -226.5 68 t-181.5 186q-129 205 -129 473zM145 700q0 -158 71 -325.5t130 -224.5q94 -92 250 -93q186 0 318.5 188.5t132.5 454.5q0 195 -115 416q-239 -200 -471 -200q-33 0 -66 4q-162 18 -186 141q-64 -154 -64 -361zM238 1262l10 -11zM279 1131v-15q0 -28 10 -51q14 -29 64 -51 q46 -19 120 -19h14q88 2 170 36t127 66.5t105 88.5l-19 26q-110 134 -274 134q-172 0 -297 -138q-4 -8 -10 -23.5t-10 -53.5zM403 1513l3 95l94 -4l4 -91h-101zM711 1513l8 97l92 4v-101h-100z" /> | ||
137 | <glyph unicode="×" horiz-adv-x="548" d="M23 506l186 178q-150 154 -178 186l53 60q23 -18 182 -191l197 187l53 -52l-197 -190l83 -88l72 -76q24 -26 28 -28l-49 -56l-189 193l-182 -176z" /> | ||
138 | <glyph unicode="Ø" horiz-adv-x="1183" d="M51 702q0 139 64 347q36 121 118 213q150 170 355 170t360 -189q45 39 82 53q104 38 179 38q14 0 26 -1v-88q-13 1 -26 1q-115 0 -187 -50l-27 -20q53 -86 88 -197q41 -133 41 -277q0 -117 -34.5 -248.5t-71.5 -185.5q-209 -293 -430 -293q-143 0 -264 93l-45 -70 q-86 0 -97 4l76 125q-49 53 -78 102q-129 205 -129 473zM141 700q0 -133 50.5 -273t111.5 -230q270 416 293 469q23 57 156 325q-140 -76 -285 -76q-38 0 -76 5q-162 18 -186 141q-64 -154 -64 -361zM233 1262l11 -11zM275 1131v-15q0 -28 10 -51q14 -29 64 -51 q46 -19 120 -19h14q88 2 170 36t127 66.5t105 88.5l-19 26q-110 134 -274 134q-172 0 -297 -138q-4 -8 -10 -23.5t-10 -53.5zM365 129q92 -72 227 -72q186 0 318 188.5t132 454.5q0 195 -114 416l-41 -33q-199 -378 -219 -450q-23 -70 -303 -504z" /> | ||
139 | <glyph unicode="Ù" horiz-adv-x="1075" d="M139 1436h7q4 0 14 1t18 1t17.5 1t13.5 1h6q-1 0 -1 -23q0 -46 3 -185q4 -208 6 -243q10 -169 10 -363q0 -121 -4 -253q2 -25 8.5 -54.5t28 -73.5t54 -79t92 -61.5t135.5 -28.5h18q87 0 154 35q74 39 110.5 100t52 100t21.5 70q-12 516 -12 608v17l-4 430h6q4 0 14.5 1 t18.5 1t17 1t15 1h5q-1 0 -1 -23q0 -46 3 -185q4 -208 6 -243q2 -33 8 -602v-106q0 -12 -1 -89t-1 -126v-66h-19h-34h-19v188q-116 -184 -337 -184h-21q-109 4 -188.5 46t-116.5 92.5t-58.5 112.5t-24.5 90t-3 42l-13 619zM340 1745l76 55q33 -76 84 -110q29 -20 84 -46 t97 -42.5t46 -16.5q-4 -4 -14 -37l-8 -30h-1q-6 0 -57 18q-57 20 -124.5 48t-92.5 44q-14 10 -29.5 26.5t-25.5 32.5l-18 29q-9 13 -13 21z" /> | ||
140 | <glyph unicode="Ú" horiz-adv-x="1075" d="M139 1436l4 -430l13 -619q0 -14 3 -42t24.5 -90t58.5 -112.5t116.5 -92.5t188.5 -46h19q224 0 339 184v-188h13q8 0 23 -1h10q9 0 16 1h10v66q0 49 1 125.5t1 89.5q0 545 -8 708q-2 35 -6 243q-3 139 -3 185q0 23 1 23l-19 -2h-39l-18 -2l4 -430v-17q0 -92 12 -608 q-6 -31 -21.5 -70t-52 -100t-110.5 -100q-67 -35 -154 -35h-18q-76 2 -135.5 28.5t-92 61.5t-54 79t-28 73.5t-8.5 54.5q4 132 4 253q0 194 -10 363q-2 35 -6 243q-3 139 -3 185q0 23 1 23l-18 -2h-37zM346 1608q4 0 46 16t97.5 43t83.5 45q23 16 44.5 44t29.5 46l10 21 l76 -56l-4 -8q-4 -8 -12 -21.5t-18.5 -28.5t-26 -31.5t-29.5 -26.5q-25 -16 -92.5 -44t-123.5 -48q-51 -19 -57 -19h-1l-9 33q-10 31 -14 35z" /> | ||
141 | <glyph unicode="Û" horiz-adv-x="1064" d="M102 1436l4 -430l13 -619q0 -14 3 -42t24.5 -90t58.5 -112.5t116.5 -92.5t188.5 -46h19q224 0 339 184v-188h13q8 0 24 -1h9q9 0 16 1h10v66q0 49 1 125.5t1 89.5v106q-6 569 -8 602q-2 35 -6 243q-3 139 -3 185q0 23 1 23l-19 -2h-39l-18 -2l4 -430v-17q0 -92 12 -608 q-6 -31 -21.5 -70t-52 -100t-110.5 -100q-67 -35 -154 -35h-18q-76 2 -135.5 28.5t-92 61.5t-54 79t-27.5 73.5t-8 54.5q4 127 4 244q0 199 -11 372q-2 35 -6 243q-3 139 -3 185q0 23 1 23l-18 -2h-37zM266 1595q18 6 138 84t120 82q0 2 69 -40l136 -83l70 -43l-62 -59 l-217 139l-184 -127q-57 41 -70 47z" /> | ||
142 | <glyph unicode="Ü" horiz-adv-x="1075" d="M139 1436l4 -430l13 -619q0 -14 3 -42t24.5 -90t58.5 -112.5t116.5 -92.5t188.5 -46h19q224 0 339 184v-188h13q8 0 23 -1h10q9 0 16 1h10v66q0 49 1 125.5t1 89.5v106q-6 569 -8 602q-2 35 -6 243q-3 139 -3 185q0 23 1 23l-19 -2h-39l-18 -2l4 -430v-17q0 -92 12 -608 q-6 -31 -21.5 -70t-52 -100t-110.5 -100q-67 -35 -154 -35h-18q-76 2 -135.5 28.5t-92 61.5t-54 79t-28 73.5t-8.5 54.5q4 132 4 253q0 194 -10 363q-2 35 -6 243q-3 139 -3 185q0 23 1 23l-18 -2h-37zM334 1602l2 94l94 -4l4 -90h-100zM641 1602l8 96l92 4v-100h-100z" /> | ||
143 | <glyph unicode="Ý" horiz-adv-x="946" d="M49 1430l41 -80l87 -166q44 -86 50 -101q12 -35 244 -436q-6 -119 -6 -360q0 -12 1 -89t1 -126v-66h16h37h19v313q0 23 3 87.5t6 150.5t5 127l61 141q8 20 140.5 313.5t134.5 293.5l-23 2q-23 0 -47 2l-24 2q0 2 -37 -89.5t-45 -113.5l-209 -463l-211 379l-152 281 q-2 2 -47 1t-45 -3zM283 1608q4 0 46 16t97 43t84 45q23 16 44 44t32 46l8 21l76 -56l-4 -8q-4 -8 -12 -21l-19 -29q-10 -15 -25.5 -31.5t-29.5 -26.5q-25 -16 -92.5 -44t-123.5 -48q-52 -19 -58 -19h-1l-10 33q-8 31 -12 35z" /> | ||
144 | <glyph unicode="à" d="M49 573q14 96 76.5 161t144.5 89.5t175.5 39t170 16.5t129 13t52.5 36q2 31 10 93q9 70 9 99q0 31 -17 70q-17 41 -58 67q-33 23 -103.5 35.5t-145.5 15.5q-55 2 -109 2h-36q-71 -1 -118 -3h-45q-2 0 0 11t6.5 28.5t4.5 25.5q-2 8 126 13h54q106 0 231 -13 q158 -18 219 -63q70 -49 85 -151q6 -46 6 -103q0 -72 -10 -165q-19 -165 -19 -208q0 -86 9 -251t17 -288l9 -120q-82 2 -82 6l-13 172q-25 -18 -66.5 -44t-144.5 -68q-93 -38 -163 -38h-13q-68 0 -138.5 25.5t-139 82t-100.5 164.5q-21 66 -21 146q0 50 8 104zM145 352 q41 -104 117 -170q72 -53 163 -53q25 0 52 4q123 19 227.5 65t112.5 68q3 6 3 40q0 39 -4 115q-7 140 -16.5 273t-11.5 131l-6 -2q-6 -2 -19 -5t-27.5 -6t-37.5 -7l-39 -7q-16 -3 -42.5 -8.5t-38.5 -7.5q-6 0 -71 -5t-103.5 -13t-97 -27.5t-98.5 -57.5t-58 -93 q-24 -68 -24 -129q0 -55 19 -105zM319 1731l76 55q33 -76 84 -111q29 -20 84 -45.5t97 -42t47 -16.5q-4 -4 -15 -35l-8 -33h-1q-6 0 -58 18l-123.5 48.5t-91.5 44.5q-14 10 -29.5 26.5t-26 32t-18.5 28.5t-12 21z" /> | ||
145 | <glyph unicode="á" d="M49 573q14 96 76.5 161t144.5 89.5t175.5 39t170 16.5t129 13t52.5 36q2 31 10 93q9 70 9 99q0 31 -17 70q-17 41 -58 67q-33 23 -103.5 35.5t-145.5 15.5q-55 2 -109 2h-36q-71 -1 -118 -3h-45q-2 0 0 11t6.5 28.5t4.5 25.5q-2 8 126 13h54q106 0 231 -13 q158 -18 219 -63q70 -49 85 -151q6 -46 6 -103q0 -72 -10 -165q-19 -165 -19 -208q0 -86 9 -251t17 -288l9 -120q-82 2 -82 6l-13 172q-25 -18 -66.5 -44t-144.5 -68q-93 -38 -163 -38h-13q-68 0 -138.5 25.5t-139 82t-100.5 164.5q-21 66 -21 146q0 50 8 104zM145 352 q41 -104 117 -170q72 -53 163 -53q25 0 52 4q123 19 227.5 65t112.5 68q3 6 3 40q0 39 -4 115q-7 140 -16.5 273t-11.5 131l-6 -2q-6 -2 -19 -5t-27.5 -6t-37.5 -7l-39 -7q-16 -3 -42.5 -8.5t-38.5 -7.5q-6 0 -71 -5t-103.5 -13t-97 -27.5t-98.5 -57.5t-58 -93 q-24 -68 -24 -129q0 -55 19 -105zM324 1571q4 0 46 16.5t97 43t84 44.5q23 16 44 44t32 46l8 21l76 -55l-4 -9q-4 -8 -13 -21l-18 -29q-10 -15 -25.5 -31.5t-29.5 -26.5q-25 -16 -92.5 -44t-124.5 -49q-51 -18 -57 -18h-1l-10 33q-8 31 -12 35z" /> | ||
146 | <glyph unicode="â" d="M49 573q14 96 76.5 161t144.5 89.5t175.5 39t170 16.5t129 13t52.5 36q2 31 10 93q9 70 9 99q0 31 -17 70q-17 41 -58 67q-33 23 -103.5 35.5t-145.5 15.5q-55 2 -109 2h-36q-71 -1 -118 -3h-45q-2 0 0 11t6.5 28.5t4.5 25.5q-2 8 126 13h54q106 0 231 -13 q158 -18 219 -63q70 -49 85 -151q6 -46 6 -103q0 -72 -10 -165q-19 -165 -19 -208q0 -86 9 -251t17 -288l9 -120q-82 2 -82 6l-13 172q-25 -18 -66.5 -44t-144.5 -68q-93 -38 -163 -38h-13q-68 0 -138.5 25.5t-139 82t-100.5 164.5q-21 66 -21 146q0 50 8 104zM145 352 q41 -104 117 -170q72 -53 163 -53q25 0 52 4q123 19 227.5 65t112.5 68q3 6 3 40q0 39 -4 115q-7 140 -16.5 273t-11.5 131l-6 -2q-6 -2 -19 -5t-27.5 -6t-37.5 -7l-39 -7q-16 -3 -42.5 -8.5t-38.5 -7.5q-6 0 -71 -5t-103.5 -13t-97 -27.5t-98.5 -57.5t-58 -93 q-24 -68 -24 -129q0 -55 19 -105zM248 1583q18 6 138 84t120 82q0 2 68 -40l139 -83l67 -43l-61 -59l-217 139l-185 -127q-57 41 -69 47z" /> | ||
147 | <glyph unicode="ã" d="M49 573q14 96 76.5 161t144.5 89.5t175.5 39t170 16.5t129 13t52.5 36q2 31 10 93q9 70 9 99q0 31 -17 70q-17 41 -58 67q-33 23 -103.5 35.5t-145.5 15.5q-55 2 -109 2h-36q-71 -1 -118 -3h-45q-2 0 0 11t6.5 28.5t4.5 25.5q-2 8 126 13h54q106 0 231 -13 q158 -18 219 -63q70 -49 85 -151q6 -46 6 -103q0 -72 -10 -165q-19 -165 -19 -208q0 -86 9 -251t17 -288l9 -120q-82 2 -82 6l-13 172q-25 -18 -66.5 -44t-144.5 -68q-93 -38 -163 -38h-13q-68 0 -138.5 25.5t-139 82t-100.5 164.5q-21 66 -21 146q0 50 8 104zM145 352 q41 -104 117 -170q72 -53 163 -53q25 0 52 4q123 19 227.5 65t112.5 68q3 6 3 40q0 39 -4 115q-7 140 -16.5 273t-11.5 131l-6 -2q-6 -2 -19 -5t-27.5 -6t-37.5 -7l-39 -7q-16 -3 -42.5 -8.5t-38.5 -7.5q-6 0 -71 -5t-103.5 -13t-97 -27.5t-98.5 -57.5t-58 -93 q-24 -68 -24 -129q0 -55 19 -105zM297 1596v13v8v5v2l18 14q20 12 60.5 27.5t83.5 15.5q63 -2 117.5 -30.5t70.5 -32.5q20 -4 62.5 10t72.5 31l31 18v-84q-12 -6 -30.5 -17t-63.5 -27q-36 -12 -61 -12q-7 0 -13 1q-25 4 -78 34t-106 32q-43 0 -84 -15.5t-60 -32.5l-18 -16v2 v7v10v12q0 6 -1 12t-1 13z" /> | ||
148 | <glyph unicode="ä" d="M49 573q14 96 76.5 161t144.5 89.5t175.5 39t170 16.5t129 13t52.5 36q2 31 10 93q9 70 9 99q0 31 -17 70q-17 41 -58 67q-33 23 -103.5 35.5t-145.5 15.5q-55 2 -109 2h-36q-71 -1 -118 -3h-45q-2 0 0 11t6.5 28.5t4.5 25.5q-2 8 126 13h54q106 0 231 -13 q158 -18 219 -63q70 -49 85 -151q6 -46 6 -103q0 -72 -10 -165q-19 -165 -19 -208q0 -86 9 -251t17 -288l9 -120q-82 2 -82 6l-13 172q-25 -18 -66.5 -44t-144.5 -68q-93 -38 -163 -38h-13q-68 0 -138.5 25.5t-139 82t-100.5 164.5q-21 66 -21 146q0 50 8 104zM145 352 q41 -104 117 -170q72 -53 163 -53q25 0 52 4q123 19 227.5 65t112.5 68q3 6 3 40q0 39 -4 115q-7 140 -16.5 273t-11.5 131l-6 -2q-6 -2 -19 -5t-27.5 -6t-37.5 -7l-39 -7q-16 -3 -42.5 -8.5t-38.5 -7.5q-6 0 -71 -5t-103.5 -13t-97 -27.5t-98.5 -57.5t-58 -93 q-24 -68 -24 -129q0 -55 19 -105zM338 1522l2 94l94 -4l4 -90h-100zM645 1522l8 96l92 4v-100h-100z" /> | ||
149 | <glyph unicode="æ" horiz-adv-x="1779" d="M8 573q14 96 76.5 161t144.5 89.5t175.5 39t170 16.5t129 13t52.5 36q2 31 10 93q9 70 9 99q0 31 -17 70q-17 41 -58 67q-33 23 -103.5 35.5t-145.5 15.5q-55 2 -109 2h-36q-70 -1 -118 -3h-45q-2 0 0 11t6.5 28.5t4.5 25.5q-2 8 126 12q26 1 54 1q106 0 231 -14 q158 -17 219 -62q66 -45 82 -160q66 131 175.5 207t238.5 76q164 0 289 -123t186 -330q23 -74 23 -277q-35 -2 -89.5 -4t-202.5 -4q-49 -1 -89 -1q-81 0 -127 3q-20 1 -41 1q-162 0 -373 -42q8 -147 64.5 -280t109.5 -185q137 -133 227 -133h3q70 2 129 34t94 68t89 67.5 t116 33.5v-28v-46l2 -24q-47 -2 -88 -27.5t-73 -58.5t-103.5 -62.5t-170.5 -38.5q-13 -1 -25 -1q-99 0 -171 58q-82 64 -166 197l-31 52l19 -258q-82 2 -82 6l-13 172q-25 -18 -66.5 -44t-143.5 -68q-94 -38 -164 -38h-13q-68 0 -138.5 25.5t-139 82t-101.5 164.5 q-20 66 -20 146q0 50 8 104zM104 352q41 -104 117 -170q72 -53 163 -53q25 0 52 4q123 19 227.5 65t112.5 68q3 6 3 40q0 39 -4 114q-7 141 -16 274t-11 131l-7 -2q-6 -2 -19 -5t-27.5 -6t-37.5 -7l-39 -7q-16 -3 -42.5 -8.5t-38.5 -7.5q-6 0 -71 -5t-103.5 -13t-97 -27.5 t-98.5 -57.5t-58 -93q-24 -68 -24 -129q0 -55 19 -105zM854 733l53 17q20 6 149 16q108 8 162 8h19q21 -1 82 -1h71q121 1 205 3q42 1 68.5 1t36.5 -1q-14 135 -65.5 258t-96.5 178q-111 133 -254 134q-190 -1 -317 -191q-106 -156 -113 -422z" /> | ||
150 | <glyph unicode="ç" horiz-adv-x="790" d="M55 702q0 166 64 347q47 137 154.5 227t219 124t224.5 34l4 -86q-6 0 -19 -2q-324 -35 -444 -191q-113 -145 -113 -455q0 -158 71 -325.5t130 -224.5q43 -43 183.5 -69t228.5 -26v-78q-90 0 -142 5l-18 -129q2 -2 20.5 0t47 -5.5t55.5 -19.5t42 -44q11 -23 11 -52 q0 -12 -2 -25q-6 -43 -38 -69.5t-65.5 -36t-83.5 -10.5h-30q-25 0 -36 1q-17 2 -40 7h-2l6 18q4 18 13 37l6 18l18 -4q20 -2 46 -4t52.5 0t46 14.5t21.5 36.5v7q0 56 -79 56q-18 0 -40 -3l-16 -2l-41 49q14 117 22 172q-231 41 -348 235q-129 213 -129 473z" /> | ||
151 | <glyph unicode="è" horiz-adv-x="1163" d="M92 702q0 139 64 347q53 172 176 277.5t276 105.5q164 0 289 -123t186 -330q23 -74 23 -277q-35 -2 -89 -4t-201 -4q-50 -1 -90 -1q-81 0 -128 3q-18 1 -37 1q-152 0 -377 -42q8 -147 64.5 -280t109.5 -185q137 -133 227 -133h3q70 2 129 34t94 68t89 67.5t116 33.5v-28 v-46l2 -24q-47 -2 -88 -27.5t-73 -58.5t-103.5 -62.5t-169.5 -38.5q-13 -1 -25 -1q-99 0 -172 57q-82 65 -166 198q-129 205 -129 473zM182 733l54 17q20 6 149 16q108 8 161 8h19q21 -1 82 -1h71q122 1 206 3q42 1 68 1t36 -1q-14 135 -65.5 258t-96.5 178 q-111 133 -254 134q-190 0 -317 -191q-107 -156 -113 -422zM385 1731l76 55q33 -76 84 -111q29 -20 84 -45.5t97 -42t46 -16.5q-4 -4 -14 -35l-8 -33h-1q-6 0 -57 18q-57 21 -124.5 48.5t-92.5 44.5q-14 10 -29.5 26.5t-25.5 31.5l-18 29q-9 13 -13 21z" /> | ||
152 | <glyph unicode="é" horiz-adv-x="1163" d="M92 702q0 -268 129 -473q84 -133 166 -197q73 -58 172 -58q12 0 25 1q98 8 169.5 38t103.5 63t73 58.5t88 27.5l-2 24v47v27q-61 -2 -115.5 -33.5t-89.5 -67.5t-94.5 -68t-128.5 -34h-3q-89 0 -227 133q-53 51 -109 184.5t-65 280.5q225 42 377 42q19 0 37 -1 q69 -3 143 -3q36 0 74 1q113 2 201 6l90 2q0 203 -23 277q-61 207 -186 330t-289 123q-154 0 -276.5 -105.5t-175.5 -277.5q-63 -207 -64 -347zM182 733q6 266 113 422q127 190 317 191q143 0 254 -134q45 -55 96.5 -178t65.5 -258q0 1 -46 1h-58q-105 -1 -208 -3 q-51 -1 -88.5 -1t-62.5 1h-19q-53 0 -161 -8q-129 -10 -149 -16zM391 1571q4 0 46 16.5t97.5 43t83.5 44.5q23 16 44.5 44t29.5 46l10 21l76 -55l-4 -9q-4 -8 -12 -21t-18.5 -28.5t-26 -32t-29.5 -26.5q-25 -16 -92.5 -44t-123.5 -48q-51 -19 -57 -19h-1l-8 33 q-10 31 -15 35z" /> | ||
153 | <glyph unicode="ê" horiz-adv-x="1163" d="M92 702q0 -268 129 -473q84 -133 166 -197q73 -58 172 -58q12 0 25 1q98 8 169.5 38t103.5 63t73 58.5t88 27.5l-2 24v47v27q-61 -2 -115.5 -33.5t-89.5 -67.5t-94.5 -68t-128.5 -34h-3q-89 0 -227 133q-53 51 -109 184.5t-65 280.5q225 42 377 42q19 0 37 -1 q69 -3 143 -3q36 0 74 1q113 2 201 6l90 2q0 203 -23 277q-61 207 -186 330t-289 123q-154 0 -276.5 -105.5t-175.5 -277.5q-63 -207 -64 -347zM182 733q6 266 113 422q127 190 317 191q143 0 254 -134q45 -55 96.5 -178t65.5 -258q0 1 -46 1h-58q-105 -1 -208 -3 q-51 -1 -88.5 -1t-62.5 1h-19q-53 0 -161 -8q-129 -10 -149 -16zM317 1587q18 6 138 84t120 82q0 2 69 -40l138 -83l68 -43l-62 -59l-217 139l-184 -127q-57 41 -70 47z" /> | ||
154 | <glyph unicode="ë" horiz-adv-x="1163" d="M92 702q0 -268 129 -473q84 -133 166 -197q73 -58 172 -58q12 0 25 1q98 8 169.5 38t103.5 63t73 58.5t88 27.5l-2 24v47v27q-61 -2 -115.5 -33.5t-89.5 -67.5t-94.5 -68t-128.5 -34h-3q-89 0 -227 133q-53 51 -109 184.5t-65 280.5q225 42 377 42q19 0 37 -1 q69 -3 143 -3q36 0 74 1q113 2 201 6l90 2q0 203 -23 277q-61 207 -186 330t-289 123q-154 0 -276.5 -105.5t-175.5 -277.5q-63 -207 -64 -347zM182 733q6 266 113 422q127 190 317 191q143 0 254 -134q45 -55 96.5 -178t65.5 -258q0 1 -46 1h-58q-105 -1 -208 -3 q-51 -1 -88.5 -1t-62.5 1h-19q-53 0 -161 -8q-129 -10 -149 -16zM377 1522l2 94l94 -4l4 -90h-100zM684 1522l8 96l92 4v-100h-100z" /> | ||
155 | <glyph unicode="ì" horiz-adv-x="309" d="M-41 1731l76 55q33 -76 84 -111q29 -20 84 -45.5t97 -42t46 -16.5q-4 -4 -14 -35l-8 -33q-2 -2 -58.5 18.5t-124 48t-92.5 44.5q-14 10 -29.5 26.5t-25.5 32.5l-18 28q-9 13 -13 21zM115 281q0 545 8 708q2 35 6 243q3 139 3 185q0 23 -1 23l19 -2h38l19 -2l-4 -430 q0 -18 -3 -186.5t-7.5 -334.5t-4.5 -172v-313h-12q-8 0 -24 -1h-9q-9 0 -16 1h-10v66q0 49 -1 125.5t-1 89.5z" /> | ||
156 | <glyph unicode="í" horiz-adv-x="309" d="M-35 1571q4 0 46 16.5t97.5 42t84.5 45.5q23 16 44 44t29 46l10 21l76 -55l-4 -9q-4 -8 -12 -21t-18.5 -28.5t-26 -32t-29.5 -26.5q-25 -16 -92.5 -44t-123.5 -48.5t-58 -18.5l-8 33q-10 31 -15 35zM115 281q0 545 8 708q2 35 6 243q3 139 3 185q0 23 -1 23l19 -2h38 l19 -2l-4 -430q0 -18 -3 -186.5t-7.5 -334.5t-4.5 -172v-313h-12q-8 0 -24 -1h-9q-9 0 -16 1h-10v66q0 49 -1 125.5t-1 89.5z" /> | ||
157 | <glyph unicode="î" horiz-adv-x="309" d="M-104 1593q18 8 136 85t118 81q0 2 68 -40l138 -85l68 -41l-62 -59l-217 139l-184 -127q-51 41 -65 47zM115 281q0 545 8 708q2 35 6 243q3 139 3 185q0 23 -1 23l19 -2h38l19 -2l-4 -430q0 -18 -3 -186.5t-7.5 -334.5t-4.5 -172v-313h-12q-8 0 -24 -1h-9q-9 0 -16 1h-10 v66q0 49 -1 125.5t-1 89.5z" /> | ||
158 | <glyph unicode="ï" horiz-adv-x="309" d="M-49 1522l2 94l94 -4l4 -90h-100zM115 281q0 545 8 708q2 35 6 243q3 139 3 185q0 23 -1 23l19 -2h38l19 -2l-4 -430q0 -18 -3 -186.5t-7.5 -334.5t-4.5 -172v-313h-12q-8 0 -24 -1h-9q-9 0 -16 1h-10v66q0 49 -1 125.5t-1 89.5zM258 1522l8 96l92 4v-100h-100z" /> | ||
159 | <glyph unicode="ñ" d="M106 281q0 545 9 708q2 35 6 243q3 139 3 185q0 23 -1 23l18 -2h39l19 -2q-2 -72 -4 -156q103 158 323 158h6q98 -2 172 -38t109 -86t56.5 -100.5t23.5 -85.5l4 -34h-2v-88q0 -18 -3 -186.5t-7.5 -334.5t-4.5 -172v-313h-12q-8 0 -24 -1h-9q-9 0 -16 1h-10v66 q0 49 -1 125.5t-1 89.5q0 545 8 708q2 33 2 54.5t-2 31.5q0 10 -2 27.5t-17.5 62.5t-41 79t-81 62.5t-128.5 30.5q-80 0 -143.5 -20.5t-103.5 -55t-61.5 -63.5t-33.5 -57q-2 -55 -2 -89t2 -46q0 -18 -3.5 -186.5t-7.5 -334.5t-4 -172v-313h-12q-8 0 -24 -1h-9q-9 0 -16 1 h-10v66q0 49 -1.5 125.5t-1.5 89.5zM254 1596v13v8v5v2l20 14q18 12 58.5 27.5t83.5 15.5q63 -2 117.5 -30.5t70.5 -32.5q20 -4 62.5 10t72.5 31l31 18v-84q-12 -6 -30.5 -17t-63.5 -27q-36 -12 -61 -12q-7 0 -13 1q-25 4 -78 34t-106 32q-43 0 -84 -15.5t-60 -32.5l-18 -16 v2v7v11v11q0 6 -1 12t-1 13z" /> | ||
160 | <glyph unicode="ò" horiz-adv-x="1159" d="M55 702q0 139 64 347q51 170 184 276.5t289 106.5q166 0 300 -125t195 -328q41 -133 41 -277q0 -117 -34.5 -248.5t-71.5 -185.5q-209 -293 -430 -293q-121 0 -226.5 68t-181.5 186q-129 205 -129 473zM145 700q0 -158 71 -325.5t130 -224.5q94 -92 250 -93 q186 0 318.5 188.5t132.5 454.5q0 141 -58.5 292t-118.5 220q-111 133 -274 134q-96 0 -186.5 -50.5t-151.5 -140.5q-113 -168 -113 -455zM383 1731l76 55q33 -76 84 -111q29 -20 84 -45.5t97 -42t46 -16.5q-4 -4 -12 -35l-10 -33h-1q-6 0 -57 18q-57 21 -124.5 48.5 t-92.5 44.5q-14 10 -29.5 26.5t-25.5 31.5l-18 29q-9 13 -13 21z" /> | ||
161 | <glyph unicode="ó" horiz-adv-x="1159" d="M55 702q0 139 64 347q51 170 184 276.5t289 106.5q166 0 300 -125t195 -328q41 -133 41 -277q0 -117 -34.5 -248.5t-71.5 -185.5q-209 -293 -430 -293q-121 0 -226.5 68t-181.5 186q-129 205 -129 473zM145 700q0 -158 71 -325.5t130 -224.5q94 -92 250 -93 q186 0 318.5 188.5t132.5 454.5q0 141 -58.5 292t-118.5 220q-111 133 -274 134q-96 0 -186.5 -50.5t-151.5 -140.5q-113 -168 -113 -455zM389 1571q4 0 46 16.5t97.5 43t83.5 44.5q23 16 44.5 44t31.5 46l8 21l76 -55l-4 -9q-4 -8 -12 -21t-18.5 -28.5t-26 -32t-29.5 -26.5 q-25 -16 -92.5 -44t-123.5 -49q-51 -18 -57 -18h-1l-11 33q-8 31 -12 35z" /> | ||
162 | <glyph unicode="ô" horiz-adv-x="1159" d="M55 702q0 139 64 347q51 170 184 276.5t289 106.5q166 0 300 -125t195 -328q41 -133 41 -277q0 -117 -34.5 -248.5t-71.5 -185.5q-209 -293 -430 -293q-121 0 -226.5 68t-181.5 186q-129 205 -129 473zM145 700q0 -158 71 -325.5t130 -224.5q94 -92 250 -93 q186 0 318.5 188.5t132.5 454.5q0 141 -58.5 292t-118.5 220q-111 133 -274 134q-96 0 -186.5 -50.5t-151.5 -140.5q-113 -168 -113 -455zM315 1573q18 6 138 84t120 82q0 2 69 -40l136 -85l70 -41l-62 -60l-217 140l-184 -127q-57 41 -70 47z" /> | ||
163 | <glyph unicode="õ" horiz-adv-x="1159" d="M55 702q0 139 64 347q51 170 184 276.5t289 106.5q166 0 300 -125t195 -328q41 -133 41 -277q0 -117 -34.5 -248.5t-71.5 -185.5q-209 -293 -430 -293q-121 0 -226.5 68t-181.5 186q-129 205 -129 473zM145 700q0 -158 71 -325.5t130 -224.5q94 -92 250 -93 q186 0 318.5 188.5t132.5 454.5q0 141 -58.5 292t-118.5 220q-111 133 -274 134q-96 0 -186.5 -50.5t-151.5 -140.5q-113 -168 -113 -455zM322 1588v12v9v5v2l18 14q20 12 60 27.5t83 15.5q63 -2 117.5 -30.5t71.5 -32.5q20 -4 62 10t73 31l31 18v-84q-12 -6 -31 -17.5 t-64 -26.5q-36 -12 -60 -12q-7 0 -13 1q-25 4 -78 33.5t-107 31.5q-43 0 -84 -15t-59 -32l-18 -16v2v7v10v11q0 7 -1 13t-1 13z" /> | ||
164 | <glyph unicode="ö" horiz-adv-x="1159" d="M55 702q0 139 64 347q51 170 184 276.5t289 106.5q166 0 300 -125t195 -328q41 -133 41 -277q0 -117 -34.5 -248.5t-71.5 -185.5q-209 -293 -430 -293q-121 0 -226.5 68t-181.5 186q-129 205 -129 473zM145 700q0 -158 71 -325.5t130 -224.5q94 -92 250 -93 q186 0 318.5 188.5t132.5 454.5q0 141 -58.5 292t-118.5 220q-111 133 -274 134q-96 0 -186.5 -50.5t-151.5 -140.5q-113 -168 -113 -455zM375 1522l2 94l94 -4l4 -90h-100zM682 1522l8 96l92 4v-100h-100z" /> | ||
165 | <glyph unicode="÷" horiz-adv-x="659" d="M31 735q18 0 164.5 -3t291 -7t150.5 -4l2 -74q-440 0 -604 8zM260 430l12 145l148 -6v-151zM260 823l12 146l148 -6v-152z" /> | ||
166 | <glyph unicode="ø" horiz-adv-x="1175" d="M51 702q0 139 64 347q51 170 184 276.5t289 106.5q147 0 272 -103l43 107h24q21 0 44 -2h24l-71 -164q109 -121 159 -291q41 -133 41 -277q0 -117 -34.5 -248.5t-71.5 -185.5q-209 -293 -430 -293q-147 0 -266 95l-48 -72q-86 0 -96 4l78 127q-43 45 -76 100 q-129 205 -129 473zM141 700q0 -131 49.5 -270t110.5 -231q283 444 291 467l237 585q-104 94 -237 95q-96 0 -186.5 -50.5t-151.5 -140.5q-113 -168 -113 -455zM362 131q92 -74 230 -74q186 0 318 188.5t132 454.5q0 127 -48 261.5t-105 222.5q-209 -492 -225 -551 q-18 -63 -302 -502z" /> | ||
167 | <glyph unicode="ù" horiz-adv-x="1069" d="M143 1006q6 78 25.5 187.5t36.5 178.5l16 72h6q4 0 14.5 1t18.5 1t17.5 1t13.5 1h6q-2 0 -16.5 -79t-33 -192.5t-24.5 -187.5q-8 -88 -9 -191v-50q0 -70 2 -118q3 -63 8 -147t5 -92v-2q-2 -8 2.5 -36.5t22.5 -76t49 -90.5t94.5 -75.5t149.5 -34.5h18q87 0 154 35 q74 39 110.5 100t52 100t21.5 70q-12 516 -12 608v17l-4 430h6q4 0 14.5 1t18.5 1t17 1t15 1h5q-1 0 -1 -23q0 -46 3 -185q4 -208 6 -243q2 -33 8 -602v-106q0 -12 -1 -89t-1 -127v-65h-19h-34h-19v188q-116 -184 -337 -184h-21q-88 4 -158 30.5t-109.5 68.5t-67.5 85 t-38 89.5t-14 69t-4 36.5q-18 210 -18 414q0 105 5 209zM338 1731l76 55q33 -76 84 -111q29 -20 84 -45.5t97 -42t46 -16.5q-4 -4 -12 -35l-11 -33h-1q-6 0 -57 19q-56 20 -123.5 47.5t-92.5 44.5q-14 10 -29.5 26.5t-26 32t-18.5 28.5t-12 21z" /> | ||
168 | <glyph unicode="ú" horiz-adv-x="1069" d="M143 1006q-5 -103 -5 -209q0 -203 18 -414q0 -14 4 -36.5t14 -69t38 -89.5t67.5 -85t109.5 -68.5t158 -30.5h19q224 0 339 184v-188h12q9 0 24 -1h10q9 0 16 1h10v65q0 50 1 126.5t1 89.5q0 545 -8 708q-2 35 -6 243q-3 139 -3 185q0 23 1 23l-19 -2h-39l-18 -2l4 -430 v-17q0 -92 12 -608q-6 -31 -21.5 -70t-52 -100t-110.5 -100q-67 -35 -154 -35h-18q-86 2 -149.5 34.5t-94.5 75.5t-49 90.5t-22.5 76t-2.5 36.5v2q0 8 -5 92t-8 147q-2 48 -2 118v49q1 104 9 192q6 74 24.5 187.5t33 192.5t16.5 79l-18 -2h-37l-21 -2q-63 -262 -78 -438z M344 1571q4 0 46 16.5t97.5 43t83.5 44.5q23 16 44.5 44t31.5 46l8 21l76 -55l-4 -9q-4 -8 -12 -21t-18.5 -28.5t-26 -32t-29.5 -26.5q-25 -16 -92.5 -44t-123.5 -49q-51 -18 -57 -18h-1l-11 33q-8 31 -12 35z" /> | ||
169 | <glyph unicode="û" horiz-adv-x="1069" d="M143 1006q-5 -103 -5 -209q0 -203 18 -414q0 -14 4 -36.5t14 -69t38 -89.5t67.5 -85t109.5 -68.5t158 -30.5h19q224 0 339 184v-188h12q9 0 24 -1h10q9 0 16 1h10v65q0 50 1 126.5t1 89.5q0 545 -8 708q-2 35 -6 243q-3 139 -3 185q0 23 1 23l-19 -2h-39l-18 -2l4 -430 v-17q0 -92 12 -608q-6 -31 -21.5 -70t-52 -100t-110.5 -100q-67 -35 -154 -35h-18q-86 2 -149.5 34.5t-94.5 75.5t-49 90.5t-22.5 76t-2.5 36.5q0 6 -5 92t-8 148q-2 47 -2 118v49q1 105 9 193q6 74 24.5 187.5t33 192.5t16.5 79l-18 -2h-37l-21 -2q-63 -262 -78 -438z M324 1581q18 6 138 84t120 82q0 2 68 -40l136 -85l70 -41l-61 -59l-217 139l-185 -127q-57 41 -69 47z" /> | ||
170 | <glyph unicode="ü" horiz-adv-x="1069" d="M143 1006q-5 -103 -5 -209q0 -203 18 -414q0 -14 4 -36.5t14 -69t38 -89.5t67.5 -85t109.5 -68.5t158 -30.5h19q224 0 339 184v-188h12q9 0 24 -1h10q9 0 16 1h10v65q0 50 1 126.5t1 89.5v106q-6 569 -8 602q-2 35 -6 243q-3 139 -3 185q0 23 1 23l-19 -2h-39l-18 -2 l4 -430v-17q0 -92 12 -608q-6 -31 -21.5 -70t-52 -100t-110.5 -100q-67 -35 -154 -35h-18q-86 2 -149.5 34.5t-94.5 75.5t-49 90.5t-22.5 76t-2.5 36.5q0 6 -5 92t-8 148q-2 47 -2 118v49q1 105 9 193q6 74 24.5 187.5t33 192.5t16.5 79l-18 -2h-37l-21 -2 q-63 -262 -78 -438zM330 1522l2 94l94 -4l4 -90h-100zM637 1522l8 96l92 4v-100h-100z" /> | ||
171 | <glyph unicode="ý" horiz-adv-x="843" d="M41 1169.5q0 24.5 3 145.5q3 119 5 119q1 0 4.5 -0.5t7 -0.5h9.5q18 1 38.5 0t20.5 -3v-5q-9 -89 -9 -166q0 -205 64 -321q56 -105 164 -105q8 0 17 1q233 16 313 149l-10 449q92 0 92 4t1 -98.5t2 -247.5l2 -295q1 -150 1 -262.5t-2 -131.5q0 -2 -2 -26.5t-3 -41 t-7.5 -49t-13.5 -56t-20 -56.5t-30.5 -57.5t-43.5 -50t-57.5 -42t-73.5 -27.5t-91 -11h-12q-111 0 -189 36q-82 39 -117.5 99.5t-49.5 108.5q-11 42 -11 78v11h86q0 -25 3 -48t19.5 -62t45 -66.5t88 -51t141.5 -26.5h8q65 0 113 31q51 33 78.5 92.5t44 127t19.5 146.5t3 135 t-4 111.5t-4 59.5q0 45 -2 90q-163 -113 -322 -113q-31 0 -63 5q-80 10 -137.5 72.5t-80 143t-30.5 131t-8 75zM231 1571q4 0 46 16.5t97.5 43t84.5 44.5q23 16 44 44t29 46l11 21l75 -55l-4 -9q-4 -8 -12 -21t-18.5 -28.5t-25.5 -32t-30 -26.5q-25 -16 -92 -44t-124 -49 q-51 -18 -57 -18h-1l-8 33q-10 31 -15 35z" /> | ||
172 | <glyph unicode="ÿ" horiz-adv-x="868" d="M41 1169.5q0 24.5 3 145.5q3 119 5 119q1 0 4.5 -0.5t7 -0.5h9.5q18 1 38.5 0t20.5 -3v-5q-9 -89 -9 -166q0 -205 64 -321q56 -105 164 -105q8 0 17 1q233 16 313 149l-10 449q92 0 92 4t1 -98.5t2 -247.5l2 -295q1 -150 1 -262.5t-2 -131.5q0 -2 -2 -26.5t-3 -41 t-7.5 -49t-13.5 -56t-20 -56.5t-30.5 -57.5t-43.5 -50t-57.5 -42t-73.5 -27.5t-91 -11h-12q-111 0 -189 36q-82 39 -117.5 99.5t-49.5 108.5q-11 42 -11 78v11h86q0 -25 3 -48t19.5 -62t45 -66.5t88 -51t141.5 -26.5h8q65 0 113 31q51 33 78.5 92.5t44 127t19.5 146.5t3 135 t-4 111.5t-4 59.5q0 45 -2 90q-163 -113 -322 -113q-31 0 -63 5q-80 10 -137.5 72.5t-80 143t-30.5 131t-8 75zM229 1522l2 94l95 -4l4 -90h-101zM537 1522l8 96l92 4v-100h-100z" /> | ||
173 | <glyph unicode="Œ" horiz-adv-x="2078" d="M51 702q0 139 64 347q36 121 118 213q150 170 355 170q186 0 334 -160q113 129 161 141q102 28 170 28q15 0 29 -1l74 -4h98q29 -2 222 -2h229q27 0 63.5 2t59.5 2l24 2l6 -80l-704 4q-4 -183 -4 -275q0 -62 2 -83q0 -76 -6 -287q52 3 83 3q15 0 25 -1q29 -2 165 -3 t159 -1q25 0 65.5 -1t65.5 -3h22l2 -68l-587 4q-8 -328 -9 -336v-247q12 0 55.5 2t61.5 0q29 -2 222 -2h229q27 0 63.5 2t59.5 2l24 2l6 -80l-774 6v2h-18v65q0 50 -1 126.5t-1 89.5q0 545 8 708q0 12 2 79t4 156t2 138q-133 0 -205 -49q-10 -6 -104 -101q74 -106 112 -233 q41 -133 41 -277q0 -117 -34.5 -248.5t-71.5 -185.5q-209 -293 -430 -293q-121 0 -226.5 68t-181.5 186q-129 205 -129 473zM141 700q0 -158 71 -325.5t130 -224.5q94 -92 250 -93q186 0 318 188.5t132 454.5q0 221 -135 451q-251 -234 -466 -234q-25 0 -50 3 q-162 18 -186 141q-64 -154 -64 -361zM233 1262l11 -11zM276 1131q-1 -7 -1 -15q0 -28 11 -51q13 -29 63 -51q46 -19 120 -19h14q178 4 383 217q-110 134 -274 134q-172 0 -297 -138q-4 -8 -10 -23.5t-9 -53.5z" /> | ||
174 | <glyph unicode="œ" horiz-adv-x="2080" d="M51 702q0 139 64 347q51 170 184 276.5t289 106.5q166 0 300 -125t195 -328q0 -4 2 -6q8 33 23 76q53 172 176 277.5t277 105.5q164 0 288.5 -123t186.5 -330q22 -71 22 -260v-17q-35 -2 -89 -4t-202 -4q-49 -1 -89 -1q-81 0 -128 3q-20 1 -41 1q-162 0 -372 -42 q8 -147 64 -280t110 -185q137 -133 226 -133h3q70 2 129.5 34t94 68t89 67.5t115.5 33.5v-28q0 -21 2 -46v-24q-47 -2 -88 -27.5t-72.5 -58.5t-103.5 -62.5t-170 -38.5q-13 -1 -25 -1q-99 0 -172 57q-82 65 -165 198q-57 94 -91 199q-33 -113 -65 -160q-209 -293 -430 -293 q-121 0 -226.5 68t-181.5 186q-129 205 -129 473zM141 700q0 -158 71 -325.5t130 -224.5q94 -92 250 -93q186 0 318 188.5t132 454.5q0 141 -58 292t-118 220q-111 133 -274 134q-96 0 -186.5 -50.5t-151.5 -140.5q-113 -168 -113 -455zM1135 733l53 17q20 6 149 16 q108 8 162 8h19q21 -1 82 -1h71q121 1 205 3q42 1 68 1t36 -1q-14 135 -65 258t-96 178q-111 133 -254 134q-191 -1 -318 -191q-106 -156 -112 -422z" /> | ||
175 | <glyph unicode="Ÿ" horiz-adv-x="946" d="M49 1430l41 -80l87 -166q44 -86 50 -101q12 -35 244 -436q-6 -119 -6 -360q0 -12 1 -89t1 -126v-66h16h37h19v313q0 23 3 87.5t6 150.5t5 127l61 141q8 20 140.5 313.5t134.5 293.5l-23 2q-23 0 -47 2l-24 2q0 2 -37 -89.5t-45 -113.5l-209 -463l-211 379l-152 281 q-2 2 -47 1t-45 -3zM268 1585l2 94l95 -4l4 -90h-101zM575 1585l9 96l92 5v-101h-101z" /> | ||
176 | <glyph unicode="ˆ" horiz-adv-x="1705" d="M340 1186q18 6 138 84t120 82q0 2 68 -40l137 -83l69 -43l-61 -60l-217 140l-184 -127q-57 41 -70 47z" /> | ||
177 | <glyph unicode="˜" horiz-adv-x="610" d="M43 1185v12v8v5v2l18 13q20 14 60.5 29.5t83.5 15.5q63 -2 117.5 -31t70.5 -33q20 -4 62.5 10.5t72.5 32.5l31 17v-84q-12 -6 -30.5 -17.5t-63.5 -27.5q-36 -12 -61 -12q-7 0 -13 1q-25 4 -78 34t-106 32q-43 0 -84 -15.5t-60 -31.5l-18 -17v2v8v10v11q0 6 -1 12.5 t-1 13.5z" /> | ||
178 | <glyph unicode=" " horiz-adv-x="923" /> | ||
179 | <glyph unicode=" " horiz-adv-x="1847" /> | ||
180 | <glyph unicode=" " horiz-adv-x="923" /> | ||
181 | <glyph unicode=" " horiz-adv-x="1847" /> | ||
182 | <glyph unicode=" " horiz-adv-x="615" /> | ||
183 | <glyph unicode=" " horiz-adv-x="461" /> | ||
184 | <glyph unicode=" " horiz-adv-x="307" /> | ||
185 | <glyph unicode=" " horiz-adv-x="307" /> | ||
186 | <glyph unicode=" " horiz-adv-x="230" /> | ||
187 | <glyph unicode=" " horiz-adv-x="369" /> | ||
188 | <glyph unicode=" " horiz-adv-x="102" /> | ||
189 | <glyph unicode="‐" horiz-adv-x="677" d="M31 735q18 0 164.5 -3t291 -7t150.5 -4l2 -74q-440 0 -604 8z" /> | ||
190 | <glyph unicode="‑" horiz-adv-x="677" d="M31 735q18 0 164.5 -3t291 -7t150.5 -4l2 -74q-440 0 -604 8z" /> | ||
191 | <glyph unicode="‒" horiz-adv-x="677" d="M31 735q18 0 164.5 -3t291 -7t150.5 -4l2 -74q-440 0 -604 8z" /> | ||
192 | <glyph unicode="–" d="M31 647v88h955v-88h-955z" /> | ||
193 | <glyph unicode="—" horiz-adv-x="2048" d="M31 647v88h1979v-88h-1979z" /> | ||
194 | <glyph unicode="‘" horiz-adv-x="264" d="M23 1067q-2 48 -2 90q0 133 24 195q14 37 61.5 70.5t86.5 47.5l38 17l13 -80q-4 4 -11 4q-22 0 -75 -37q-68 -50 -68 -141v-10h78q0 -4 1 -11.5t4 -26t5 -35.5t5 -33.5t5 -26.5l2 -11q2 0 -39.5 -3t-84.5 -7z" /> | ||
195 | <glyph unicode="’" horiz-adv-x="303" d="M20 1149q3 -5 12 -5q22 0 79 30q78 43 86 141l-78 10v25v47q0 33 -1 53t-3 20l40 -2l85 -4l43 -2q-14 -203 -58 -280q-18 -35 -68.5 -62.5t-90.5 -38.5l-41 -10z" /> | ||
196 | <glyph unicode="‚" horiz-adv-x="458" d="M109 -162q2 -5 11 -5q21 0 79 28q78 43 86 141l-78 10v24v48q0 33 -1 53.5t-3 20.5l40 -2l85 -4l43 -2q-14 -203 -58 -281q-18 -35 -68 -62.5t-91 -37.5l-41 -11z" /> | ||
197 | <glyph unicode="“" horiz-adv-x="493" d="M23 1067q-2 48 -2 90q0 133 24 195q14 37 61.5 70.5t86.5 47.5l38 17l13 -80q-4 4 -11 4q-22 0 -75 -37q-68 -50 -68 -141v-10h78q0 -4 1 -11.5t4 -26t5 -35.5t5 -33.5t5 -26.5l2 -11q2 0 -39.5 -3t-84.5 -7zM252 1067q-2 48 -2 90q0 133 24 195q14 37 61.5 70.5 t86.5 47.5l39 17l12 -80q-4 4 -11 4q-22 0 -75 -37q-68 -50 -68 -141v-10h78q0 -4 1 -11.5t4.5 -26t5.5 -35.5t5 -33.5t5 -26.5l2 -11q2 0 -40 -3t-85 -7z" /> | ||
198 | <glyph unicode="”" horiz-adv-x="526" d="M20 1149q3 -5 12 -5q22 0 79 30q78 43 86 141l-78 10v24v48q0 33 -1 53t-3 20l40 -2l85 -4l43 -2q-14 -203 -58 -280q-18 -35 -68.5 -62.5t-90.5 -38.5l-41 -10zM244 1149q3 -5 12 -5q22 0 78 30q78 43 86 141l-78 10v25v47q0 33 -1 53t-3 20l40 -2l85 -4l43 -2 q-14 -203 -57 -280q-18 -35 -68.5 -62.5t-91.5 -38.5l-41 -10z" /> | ||
199 | <glyph unicode="„" horiz-adv-x="552" d="M27 -172q2 -6 11 -6q21 0 79 28q78 43 86 142l-78 10v24v47q0 33 -1 53.5t-3 20.5l40 -2l85 -4l43 -2q-14 -203 -58 -280q-18 -35 -68 -62.5t-91 -38.5l-41 -10zM250 -172q2 -6 11 -6q21 0 79 28q78 43 86 142l-78 10v24v47q0 33 -1 53.5t-3 20.5l40 -2l85 -4l43 -2 q-14 -203 -57 -280q-18 -35 -68.5 -62.5t-91.5 -38.5l-41 -10z" /> | ||
200 | <glyph unicode="•" horiz-adv-x="235" d="M23 649q0 41 26.5 72t65.5 31t66.5 -31t27.5 -72t-27.5 -71.5t-66.5 -30.5t-65.5 30.5t-26.5 71.5z" /> | ||
201 | <glyph unicode="…" horiz-adv-x="1124" d="M94 14l12 146l148 -6v-152zM469 14l12 146l148 -6v-152zM844 14l12 146l148 -6v-152z" /> | ||
202 | <glyph unicode=" " horiz-adv-x="369" /> | ||
203 | <glyph unicode="⁄" horiz-adv-x="817" d="M0 2q2 6 201.5 319.5t212.5 344.5q8 23 87 215l150 372l74 183h25q20 0 45 -2h22q-307 -717 -332 -801q-10 -37 -107 -195l-190 -299l-92 -141q-86 0 -96 4z" /> | ||
204 | <glyph unicode=" " horiz-adv-x="461" /> | ||
205 | <glyph unicode="€" horiz-adv-x="927" d="M0 557q80 33 147 53q-4 29 -4 92v52l-25 -8l-22 -9t-19 -7t-16.5 -6t-13.5 -5t-8 -4l-2 -2q-37 68 -37 67q86 35 154 56q14 106 53 213q47 137 154.5 227t219 124t224.5 34l4 -86q-6 0 -18 -2q-324 -35 -445 -191q-84 -106 -104 -305q15 1 30 1q22 0 43 -2q37 -3 62.5 -8 t69.5 -15l71 -17q44 -8 75 -8q10 0 18 1q36 3 53 13l16 8q6 -86 6 -88q0 -15 -59 -15q-18 0 -41 1q-47 4 -163 28.5t-151 26.5q-25 0 -39 -2v-74q0 -49 5 -73q22 2 42 2q25 0 47 -3q40 -5 103.5 -20.5t87.5 -19.5q44 -8 75 -8q10 0 18 1q36 3 53 11l16 10q6 -86 6 -88 q0 -15 -59 -15q-18 0 -41 1q-47 4 -163 28.5t-151 26.5h-22q27 -129 84 -246t100 -157q43 -43 183.5 -69t228.5 -26v-78q-70 0 -111 2.5t-116.5 14.5t-128 36.5t-114 76t-104.5 122.5q-86 141 -114 306q-31 -8 -59.5 -18.5t-45 -18t-16.5 -9.5z" /> | ||
206 | <glyph unicode="™" horiz-adv-x="2011" d="M0 1382l6 84q14 -2 45 -11t56.5 -13t62.5 -4q119 0 265.5 14t232.5 27l88 12l2 -21l8 -36l2 -19l-37 -6q-37 -4 -105.5 -14.5t-127.5 -16.5q-61 -8 -92 -10q0 -256 8 -379q8 -164 8 -708q0 -12 -1 -89t-1 -126v-66h-19h-34h-19v313q0 6 -4 172t-7 334t-3 187 q0 127 -4 356q-40 -3 -80 -3q-121 0 -250 23zM893 281q0 545 8 708q8 156 8 438l-2 7h2v6l19 -2h39l18 -2v-2h4l408 -1104l409 1104h6v6l19 -2h37l20 -2l-4 -430q0 -18 -3 -186.5t-7 -334.5t-4 -172v-313h-12q-9 0 -24 -1h-10q-9 0 -16 1h-10v66q0 49 -1 125.5t-1 89.5 q0 545 8 708q0 8 1 44t3 90.5t2 99.5l-370 -1000h-84l-375 1010v-227q0 -18 -3 -186.5t-7 -334.5t-4 -172v-313h-13q-8 0 -24 -1h-9q-9 0 -16 1h-10v66q0 49 -1 125.5t-1 89.5z" /> | ||
207 | <glyph unicode="" horiz-adv-x="1380" d="M0 1380h1380v-1380h-1380v1380z" /> | ||
208 | <glyph unicode="fi" horiz-adv-x="1050" d="M86 965q49 33 117 36v136l2 98q2 12 9 30.5t33.5 66.5t60.5 84t96 66q57 27 126 27h9q248 -4 299 -194q9 -37 9 -69q0 -11 -1 -21q-1 -88 -1 -142.5t1 -76.5q0 -18 -3 -186.5t-7.5 -334.5t-4.5 -172v-313h-12q-8 0 -23.5 -1t-25.5 1h-10v66q0 49 -1 125.5t-1 89.5 q0 545 8 708q2 33 3 134v56q0 45 -1 46v20q0 12 -10 46t-30.5 59.5t-69 49t-117.5 25.5h-11q-73 0 -134 -51q-66 -55 -96 -110.5t-24 -57.5v-37q0 -84 3 -178q6 0 14 -4q49 -18 96 -18t92 18q20 8 35.5 18.5t20.5 18.5l6 6l51 -59q-10 -10 -30.5 -24.5t-80.5 -34.5 q-44 -15 -87 -15q-17 0 -34 2q-49 6 -81 12q8 -385 8 -450q-2 -33 -6 -273q-3 -159 -3 -212q0 -27 1 -27l-19 2h-37l-20 2l4 491q-2 16 -6 486h-17q-29 -2 -86 -47z" /> | ||
209 | <glyph unicode="fl" horiz-adv-x="1144" d="M86 965q49 33 117 36v136l2 98q2 12 9 30.5t33.5 66.5t60.5 84t96 66q57 27 126 27h9q248 -4 299 -194q9 -37 9 -69q0 -11 -1 -21q-1 -88 -1 -142.5t1 -76.5q0 -18 -3 -186.5t-7.5 -334.5t-4.5 -172v-344q23 -4 105 -41t127 -39q53 0 102 17.5t72 36.5l25 16q2 -4 6 -10 l13 -19q9 -14 13 -22l6 -8l-4 -4l-11 -11q-7 -8 -19.5 -16t-30.5 -16.5t-39.5 -15.5t-52.5 -12t-66 -5h-7q-78 0 -155 43q-81 45 -155 47v194q-2 72 -2 177q0 545 8 708q2 33 3 134v56q0 45 -1 46v20q0 12 -10 46t-30.5 59.5t-69 49t-117.5 25.5h-11q-73 0 -134 -51 q-66 -55 -96 -110.5t-24 -57.5v-37q0 -84 3 -178q6 0 14 -4q49 -18 96 -18t92 18q20 8 35.5 18.5t20.5 18.5l6 6l51 -59q-10 -10 -30.5 -24.5t-80.5 -34.5q-44 -15 -87 -15q-17 0 -34 2q-49 6 -81 12q8 -385 8 -450q-2 -33 -6 -273q-3 -159 -3 -212q0 -27 1 -27l-19 2h-37 l-20 2l4 491q-2 16 -6 486h-17q-29 -2 -86 -47z" /> | ||
210 | <glyph unicode="ffi" horiz-adv-x="1655" d="M61 965q49 33 117 36v136l2 98q2 10 5 28.5t18.5 64.5t39 81t69.5 63.5t103.5 28.5t111 -21.5t77.5 -41.5l25 -23l-47 -63q-4 8 -18.5 22.5t-56.5 33.5t-93 19q-57 0 -98.5 -55t-55.5 -109.5t-8 -56.5v-37q0 -84 2 -178q6 0 14 -4q49 -19 96 -19t93 19q20 8 35.5 18.5 t19.5 18.5l6 6l51 -59q-10 -10 -30.5 -24.5t-80.5 -34.5q-44 -15 -87 -15q-16 0 -33 2q-49 6 -82 12q8 -385 8 -450q-2 -33 -6 -273q-3 -159 -3 -212q0 -27 1 -27l-18 2h-37l-21 2l4 491q-2 16 -6 486h-16q-29 -2 -86 -47zM720 965q49 33 117 36v136l2 98q2 10 5 28.5 t18.5 64.5t39 81t69.5 63.5t103.5 28.5t111 -21.5t77.5 -41.5l25 -23l-47 -63q-4 8 -18.5 22.5t-56.5 33.5t-93 19q-57 0 -98.5 -55t-55.5 -109.5t-8 -56.5v-37q0 -84 2 -178q6 0 14 -4q49 -19 96 -19t93 19q20 8 35.5 18.5t19.5 18.5l6 6l51 -59q-10 -10 -30.5 -24.5 t-81.5 -34.5q-43 -15 -86 -15q-16 0 -33 2q-49 6 -82 12q8 -385 8 -450q-2 -33 -6 -273q-3 -159 -3 -212q0 -27 1 -27l-18 2h-37l-21 2l4 491q-2 16 -6 486h-16q-29 -2 -86 -47zM1441 281q0 545 8 708q2 35 6 243q3 139 3 185q0 23 -1 23l19 -2h39l18 -2l-4 -430 q0 -18 -3 -186.5t-7 -334.5t-4 -172v-313h-13q-8 0 -24 -1h-9q-9 0 -16 1h-10v66q0 49 -1 125.5t-1 89.5z" /> | ||
211 | <glyph unicode="ffl" horiz-adv-x="1875" d="M61 965q49 33 117 36v136l2 98q2 10 5 28.5t18.5 64.5t39 81t69.5 63.5t103.5 28.5t111 -21.5t77.5 -41.5l25 -23l-47 -63q-4 8 -18.5 22.5t-56.5 33.5t-93 19q-57 0 -98.5 -55t-55.5 -109.5t-8 -56.5v-37q0 -84 2 -178q6 0 14 -4q49 -19 96 -19t93 19q20 8 35.5 18.5 t19.5 18.5l6 6l51 -59q-10 -10 -30.5 -24.5t-80.5 -34.5q-44 -15 -87 -15q-16 0 -33 2q-49 6 -82 12q8 -385 8 -450q-2 -33 -6 -273q-3 -159 -3 -212q0 -27 1 -27l-18 2h-37l-21 2l4 491q-2 16 -6 486h-16q-29 -2 -86 -47zM720 965q49 33 117 36v136l2 98q2 10 5 28.5 t18.5 64.5t39 81t69.5 63.5t103.5 28.5t111 -21.5t77.5 -41.5l25 -23l-47 -63q-4 8 -18.5 22.5t-56.5 33.5t-93 19q-57 0 -98.5 -55t-55.5 -109.5t-8 -56.5v-37q0 -84 2 -178q6 0 14 -4q49 -19 96 -19t93 19q20 8 35.5 18.5t19.5 18.5l6 6l51 -59q-10 -10 -30.5 -24.5 t-81.5 -34.5q-43 -15 -86 -15q-16 0 -33 2q-49 6 -82 12q8 -385 8 -450q-2 -33 -6 -273q-3 -159 -3 -212q0 -27 1 -27l-18 2h-37l-21 2l4 491q-2 16 -6 486h-16q-29 -2 -86 -47zM1441 281q0 545 8 708q2 35 6 243q3 139 3 185q0 23 -1 23l19 -2h39l18 -2l-4 -430 q0 -18 -3 -186.5t-7 -334.5t-4 -172v-227q101 -3 148 -3q23 0 32 1h77h107h55l2 -23q4 -20 7 -41l2 -22l-430 2h-7h-20h-31h-14v66q0 49 -1 125.5t-1 89.5z" /> | ||
212 | </font> | ||
213 | </defs></svg> \ No newline at end of file | ||
diff --git a/Blocks/demo/deibi-webfont.ttf b/Blocks/demo/deibi-webfont.ttf new file mode 100644 index 0000000..068664e --- /dev/null +++ b/Blocks/demo/deibi-webfont.ttf | |||
Binary files differ | |||
diff --git a/Blocks/demo/deibi-webfont.woff b/Blocks/demo/deibi-webfont.woff new file mode 100644 index 0000000..284be42 --- /dev/null +++ b/Blocks/demo/deibi-webfont.woff | |||
Binary files differ | |||
diff --git a/Blocks/demo/images/Paris_eiffel.png b/Blocks/demo/images/Paris_eiffel.png new file mode 100644 index 0000000..c695952 --- /dev/null +++ b/Blocks/demo/images/Paris_eiffel.png | |||
Binary files differ | |||
diff --git a/Blocks/demo/images/Paris_roofs.png b/Blocks/demo/images/Paris_roofs.png new file mode 100644 index 0000000..abe9ef3 --- /dev/null +++ b/Blocks/demo/images/Paris_roofs.png | |||
Binary files differ | |||
diff --git a/Blocks/demo/images/Paris_sky.jpg b/Blocks/demo/images/Paris_sky.jpg new file mode 100644 index 0000000..82da08a --- /dev/null +++ b/Blocks/demo/images/Paris_sky.jpg | |||
Binary files differ | |||
diff --git a/Blocks/demo/images/clouds1000.png b/Blocks/demo/images/clouds1000.png new file mode 100644 index 0000000..155bca5 --- /dev/null +++ b/Blocks/demo/images/clouds1000.png | |||
Binary files differ | |||
diff --git a/Blocks/demo/images/clouds1200_1.png b/Blocks/demo/images/clouds1200_1.png new file mode 100644 index 0000000..54f8d0b --- /dev/null +++ b/Blocks/demo/images/clouds1200_1.png | |||
Binary files differ | |||
diff --git a/Blocks/demo/images/clouds1200_2.png b/Blocks/demo/images/clouds1200_2.png new file mode 100644 index 0000000..0b60050 --- /dev/null +++ b/Blocks/demo/images/clouds1200_2.png | |||
Binary files differ | |||
diff --git a/Blocks/demo/images/eiffel.png b/Blocks/demo/images/eiffel.png new file mode 100644 index 0000000..a2e96af --- /dev/null +++ b/Blocks/demo/images/eiffel.png | |||
Binary files differ | |||
diff --git a/Blocks/demo/images/eiffel1.png b/Blocks/demo/images/eiffel1.png new file mode 100644 index 0000000..12c18fd --- /dev/null +++ b/Blocks/demo/images/eiffel1.png | |||
Binary files differ | |||
diff --git a/Blocks/demo/images/eiffel2.png b/Blocks/demo/images/eiffel2.png new file mode 100644 index 0000000..115fc0a --- /dev/null +++ b/Blocks/demo/images/eiffel2.png | |||
Binary files differ | |||
diff --git a/Blocks/demo/images/phare.png b/Blocks/demo/images/phare.png new file mode 100644 index 0000000..67a1675 --- /dev/null +++ b/Blocks/demo/images/phare.png | |||
Binary files differ | |||
diff --git a/Blocks/demo/images/sparkling1.png b/Blocks/demo/images/sparkling1.png new file mode 100644 index 0000000..dbc850a --- /dev/null +++ b/Blocks/demo/images/sparkling1.png | |||
Binary files differ | |||
diff --git a/Blocks/demo/images/sparkling2.png b/Blocks/demo/images/sparkling2.png new file mode 100644 index 0000000..a59fe19 --- /dev/null +++ b/Blocks/demo/images/sparkling2.png | |||
Binary files differ | |||
diff --git a/Blocks/jquery-1.10.2.min.js b/Blocks/jquery-1.10.2.min.js new file mode 100644 index 0000000..2f53572 --- /dev/null +++ b/Blocks/jquery-1.10.2.min.js | |||
@@ -0,0 +1,6 @@ | |||
1 | /*! jQuery v1.10.2 | (c) 2005, 2013 jQuery Foundation, Inc. | jquery.org/license | ||
2 | //@ sourceMappingURL=jquery-1.10.2.min.map | ||
3 | */ | ||
4 | (function(e,t){var n,r,i=typeof t,o=e.location,a=e.document,s=a.documentElement,l=e.jQuery,u=e.$,c={},p=[],f="1.10.2",d=p.concat,h=p.push,g=p.slice,m=p.indexOf,y=c.toString,v=c.hasOwnProperty,b=f.trim,x=function(e,t){return new x.fn.init(e,t,r)},w=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,T=/\S+/g,C=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,N=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,k=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,E=/^[\],:{}\s]*$/,S=/(?:^|:|,)(?:\s*\[)+/g,A=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,j=/"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g,D=/^-ms-/,L=/-([\da-z])/gi,H=function(e,t){return t.toUpperCase()},q=function(e){(a.addEventListener||"load"===e.type||"complete"===a.readyState)&&(_(),x.ready())},_=function(){a.addEventListener?(a.removeEventListener("DOMContentLoaded",q,!1),e.removeEventListener("load",q,!1)):(a.detachEvent("onreadystatechange",q),e.detachEvent("onload",q))};x.fn=x.prototype={jquery:f,constructor:x,init:function(e,n,r){var i,o;if(!e)return this;if("string"==typeof e){if(i="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:N.exec(e),!i||!i[1]&&n)return!n||n.jquery?(n||r).find(e):this.constructor(n).find(e);if(i[1]){if(n=n instanceof x?n[0]:n,x.merge(this,x.parseHTML(i[1],n&&n.nodeType?n.ownerDocument||n:a,!0)),k.test(i[1])&&x.isPlainObject(n))for(i in n)x.isFunction(this[i])?this[i](n[i]):this.attr(i,n[i]);return this}if(o=a.getElementById(i[2]),o&&o.parentNode){if(o.id!==i[2])return r.find(e);this.length=1,this[0]=o}return this.context=a,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):x.isFunction(e)?r.ready(e):(e.selector!==t&&(this.selector=e.selector,this.context=e.context),x.makeArray(e,this))},selector:"",length:0,toArray:function(){return g.call(this)},get:function(e){return null==e?this.toArray():0>e?this[this.length+e]:this[e]},pushStack:function(e){var t=x.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:function(e,t){return x.each(this,e,t)},ready:function(e){return x.ready.promise().done(e),this},slice:function(){return this.pushStack(g.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(0>e?t:0);return this.pushStack(n>=0&&t>n?[this[n]]:[])},map:function(e){return this.pushStack(x.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:h,sort:[].sort,splice:[].splice},x.fn.init.prototype=x.fn,x.extend=x.fn.extend=function(){var e,n,r,i,o,a,s=arguments[0]||{},l=1,u=arguments.length,c=!1;for("boolean"==typeof s&&(c=s,s=arguments[1]||{},l=2),"object"==typeof s||x.isFunction(s)||(s={}),u===l&&(s=this,--l);u>l;l++)if(null!=(o=arguments[l]))for(i in o)e=s[i],r=o[i],s!==r&&(c&&r&&(x.isPlainObject(r)||(n=x.isArray(r)))?(n?(n=!1,a=e&&x.isArray(e)?e:[]):a=e&&x.isPlainObject(e)?e:{},s[i]=x.extend(c,a,r)):r!==t&&(s[i]=r));return s},x.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),noConflict:function(t){return e.$===x&&(e.$=u),t&&e.jQuery===x&&(e.jQuery=l),x},isReady:!1,readyWait:1,holdReady:function(e){e?x.readyWait++:x.ready(!0)},ready:function(e){if(e===!0?!--x.readyWait:!x.isReady){if(!a.body)return setTimeout(x.ready);x.isReady=!0,e!==!0&&--x.readyWait>0||(n.resolveWith(a,[x]),x.fn.trigger&&x(a).trigger("ready").off("ready"))}},isFunction:function(e){return"function"===x.type(e)},isArray:Array.isArray||function(e){return"array"===x.type(e)},isWindow:function(e){return null!=e&&e==e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?c[y.call(e)]||"object":typeof e},isPlainObject:function(e){var n;if(!e||"object"!==x.type(e)||e.nodeType||x.isWindow(e))return!1;try{if(e.constructor&&!v.call(e,"constructor")&&!v.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(r){return!1}if(x.support.ownLast)for(n in e)return v.call(e,n);for(n in e);return n===t||v.call(e,n)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw Error(e)},parseHTML:function(e,t,n){if(!e||"string"!=typeof e)return null;"boolean"==typeof t&&(n=t,t=!1),t=t||a;var r=k.exec(e),i=!n&&[];return r?[t.createElement(r[1])]:(r=x.buildFragment([e],t,i),i&&x(i).remove(),x.merge([],r.childNodes))},parseJSON:function(n){return e.JSON&&e.JSON.parse?e.JSON.parse(n):null===n?n:"string"==typeof n&&(n=x.trim(n),n&&E.test(n.replace(A,"@").replace(j,"]").replace(S,"")))?Function("return "+n)():(x.error("Invalid JSON: "+n),t)},parseXML:function(n){var r,i;if(!n||"string"!=typeof n)return null;try{e.DOMParser?(i=new DOMParser,r=i.parseFromString(n,"text/xml")):(r=new ActiveXObject("Microsoft.XMLDOM"),r.async="false",r.loadXML(n))}catch(o){r=t}return r&&r.documentElement&&!r.getElementsByTagName("parsererror").length||x.error("Invalid XML: "+n),r},noop:function(){},globalEval:function(t){t&&x.trim(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(D,"ms-").replace(L,H)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t,n){var r,i=0,o=e.length,a=M(e);if(n){if(a){for(;o>i;i++)if(r=t.apply(e[i],n),r===!1)break}else for(i in e)if(r=t.apply(e[i],n),r===!1)break}else if(a){for(;o>i;i++)if(r=t.call(e[i],i,e[i]),r===!1)break}else for(i in e)if(r=t.call(e[i],i,e[i]),r===!1)break;return e},trim:b&&!b.call("\ufeff\u00a0")?function(e){return null==e?"":b.call(e)}:function(e){return null==e?"":(e+"").replace(C,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(M(Object(e))?x.merge(n,"string"==typeof e?[e]:e):h.call(n,e)),n},inArray:function(e,t,n){var r;if(t){if(m)return m.call(t,e,n);for(r=t.length,n=n?0>n?Math.max(0,r+n):n:0;r>n;n++)if(n in t&&t[n]===e)return n}return-1},merge:function(e,n){var r=n.length,i=e.length,o=0;if("number"==typeof r)for(;r>o;o++)e[i++]=n[o];else while(n[o]!==t)e[i++]=n[o++];return e.length=i,e},grep:function(e,t,n){var r,i=[],o=0,a=e.length;for(n=!!n;a>o;o++)r=!!t(e[o],o),n!==r&&i.push(e[o]);return i},map:function(e,t,n){var r,i=0,o=e.length,a=M(e),s=[];if(a)for(;o>i;i++)r=t(e[i],i,n),null!=r&&(s[s.length]=r);else for(i in e)r=t(e[i],i,n),null!=r&&(s[s.length]=r);return d.apply([],s)},guid:1,proxy:function(e,n){var r,i,o;return"string"==typeof n&&(o=e[n],n=e,e=o),x.isFunction(e)?(r=g.call(arguments,2),i=function(){return e.apply(n||this,r.concat(g.call(arguments)))},i.guid=e.guid=e.guid||x.guid++,i):t},access:function(e,n,r,i,o,a,s){var l=0,u=e.length,c=null==r;if("object"===x.type(r)){o=!0;for(l in r)x.access(e,n,l,r[l],!0,a,s)}else if(i!==t&&(o=!0,x.isFunction(i)||(s=!0),c&&(s?(n.call(e,i),n=null):(c=n,n=function(e,t,n){return c.call(x(e),n)})),n))for(;u>l;l++)n(e[l],r,s?i:i.call(e[l],l,n(e[l],r)));return o?e:c?n.call(e):u?n(e[0],r):a},now:function(){return(new Date).getTime()},swap:function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=a[o];return i}}),x.ready.promise=function(t){if(!n)if(n=x.Deferred(),"complete"===a.readyState)setTimeout(x.ready);else if(a.addEventListener)a.addEventListener("DOMContentLoaded",q,!1),e.addEventListener("load",q,!1);else{a.attachEvent("onreadystatechange",q),e.attachEvent("onload",q);var r=!1;try{r=null==e.frameElement&&a.documentElement}catch(i){}r&&r.doScroll&&function o(){if(!x.isReady){try{r.doScroll("left")}catch(e){return setTimeout(o,50)}_(),x.ready()}}()}return n.promise(t)},x.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(e,t){c["[object "+t+"]"]=t.toLowerCase()});function M(e){var t=e.length,n=x.type(e);return x.isWindow(e)?!1:1===e.nodeType&&t?!0:"array"===n||"function"!==n&&(0===t||"number"==typeof t&&t>0&&t-1 in e)}r=x(a),function(e,t){var n,r,i,o,a,s,l,u,c,p,f,d,h,g,m,y,v,b="sizzle"+-new Date,w=e.document,T=0,C=0,N=st(),k=st(),E=st(),S=!1,A=function(e,t){return e===t?(S=!0,0):0},j=typeof t,D=1<<31,L={}.hasOwnProperty,H=[],q=H.pop,_=H.push,M=H.push,O=H.slice,F=H.indexOf||function(e){var t=0,n=this.length;for(;n>t;t++)if(this[t]===e)return t;return-1},B="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",P="[\\x20\\t\\r\\n\\f]",R="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",W=R.replace("w","w#"),$="\\["+P+"*("+R+")"+P+"*(?:([*^$|!~]?=)"+P+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+W+")|)|)"+P+"*\\]",I=":("+R+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+$.replace(3,8)+")*)|.*)\\)|)",z=RegExp("^"+P+"+|((?:^|[^\\\\])(?:\\\\.)*)"+P+"+$","g"),X=RegExp("^"+P+"*,"+P+"*"),U=RegExp("^"+P+"*([>+~]|"+P+")"+P+"*"),V=RegExp(P+"*[+~]"),Y=RegExp("="+P+"*([^\\]'\"]*)"+P+"*\\]","g"),J=RegExp(I),G=RegExp("^"+W+"$"),Q={ID:RegExp("^#("+R+")"),CLASS:RegExp("^\\.("+R+")"),TAG:RegExp("^("+R.replace("w","w*")+")"),ATTR:RegExp("^"+$),PSEUDO:RegExp("^"+I),CHILD:RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+P+"*(even|odd|(([+-]|)(\\d*)n|)"+P+"*(?:([+-]|)"+P+"*(\\d+)|))"+P+"*\\)|)","i"),bool:RegExp("^(?:"+B+")$","i"),needsContext:RegExp("^"+P+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+P+"*((?:-\\d)?\\d*)"+P+"*\\)|)(?=[^-]|$)","i")},K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,et=/^(?:input|select|textarea|button)$/i,tt=/^h\d$/i,nt=/'|\\/g,rt=RegExp("\\\\([\\da-f]{1,6}"+P+"?|("+P+")|.)","ig"),it=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:0>r?String.fromCharCode(r+65536):String.fromCharCode(55296|r>>10,56320|1023&r)};try{M.apply(H=O.call(w.childNodes),w.childNodes),H[w.childNodes.length].nodeType}catch(ot){M={apply:H.length?function(e,t){_.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function at(e,t,n,i){var o,a,s,l,u,c,d,m,y,x;if((t?t.ownerDocument||t:w)!==f&&p(t),t=t||f,n=n||[],!e||"string"!=typeof e)return n;if(1!==(l=t.nodeType)&&9!==l)return[];if(h&&!i){if(o=Z.exec(e))if(s=o[1]){if(9===l){if(a=t.getElementById(s),!a||!a.parentNode)return n;if(a.id===s)return n.push(a),n}else if(t.ownerDocument&&(a=t.ownerDocument.getElementById(s))&&v(t,a)&&a.id===s)return n.push(a),n}else{if(o[2])return M.apply(n,t.getElementsByTagName(e)),n;if((s=o[3])&&r.getElementsByClassName&&t.getElementsByClassName)return M.apply(n,t.getElementsByClassName(s)),n}if(r.qsa&&(!g||!g.test(e))){if(m=d=b,y=t,x=9===l&&e,1===l&&"object"!==t.nodeName.toLowerCase()){c=mt(e),(d=t.getAttribute("id"))?m=d.replace(nt,"\\$&"):t.setAttribute("id",m),m="[id='"+m+"'] ",u=c.length;while(u--)c[u]=m+yt(c[u]);y=V.test(e)&&t.parentNode||t,x=c.join(",")}if(x)try{return M.apply(n,y.querySelectorAll(x)),n}catch(T){}finally{d||t.removeAttribute("id")}}}return kt(e.replace(z,"$1"),t,n,i)}function st(){var e=[];function t(n,r){return e.push(n+=" ")>o.cacheLength&&delete t[e.shift()],t[n]=r}return t}function lt(e){return e[b]=!0,e}function ut(e){var t=f.createElement("div");try{return!!e(t)}catch(n){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function ct(e,t){var n=e.split("|"),r=e.length;while(r--)o.attrHandle[n[r]]=t}function pt(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||D)-(~e.sourceIndex||D);if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function ft(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function dt(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function ht(e){return lt(function(t){return t=+t,lt(function(n,r){var i,o=e([],n.length,t),a=o.length;while(a--)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}s=at.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},r=at.support={},p=at.setDocument=function(e){var n=e?e.ownerDocument||e:w,i=n.defaultView;return n!==f&&9===n.nodeType&&n.documentElement?(f=n,d=n.documentElement,h=!s(n),i&&i.attachEvent&&i!==i.top&&i.attachEvent("onbeforeunload",function(){p()}),r.attributes=ut(function(e){return e.className="i",!e.getAttribute("className")}),r.getElementsByTagName=ut(function(e){return e.appendChild(n.createComment("")),!e.getElementsByTagName("*").length}),r.getElementsByClassName=ut(function(e){return e.innerHTML="<div class='a'></div><div class='a i'></div>",e.firstChild.className="i",2===e.getElementsByClassName("i").length}),r.getById=ut(function(e){return d.appendChild(e).id=b,!n.getElementsByName||!n.getElementsByName(b).length}),r.getById?(o.find.ID=function(e,t){if(typeof t.getElementById!==j&&h){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},o.filter.ID=function(e){var t=e.replace(rt,it);return function(e){return e.getAttribute("id")===t}}):(delete o.find.ID,o.filter.ID=function(e){var t=e.replace(rt,it);return function(e){var n=typeof e.getAttributeNode!==j&&e.getAttributeNode("id");return n&&n.value===t}}),o.find.TAG=r.getElementsByTagName?function(e,n){return typeof n.getElementsByTagName!==j?n.getElementsByTagName(e):t}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},o.find.CLASS=r.getElementsByClassName&&function(e,n){return typeof n.getElementsByClassName!==j&&h?n.getElementsByClassName(e):t},m=[],g=[],(r.qsa=K.test(n.querySelectorAll))&&(ut(function(e){e.innerHTML="<select><option selected=''></option></select>",e.querySelectorAll("[selected]").length||g.push("\\["+P+"*(?:value|"+B+")"),e.querySelectorAll(":checked").length||g.push(":checked")}),ut(function(e){var t=n.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("t",""),e.querySelectorAll("[t^='']").length&&g.push("[*^$]="+P+"*(?:''|\"\")"),e.querySelectorAll(":enabled").length||g.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),g.push(",.*:")})),(r.matchesSelector=K.test(y=d.webkitMatchesSelector||d.mozMatchesSelector||d.oMatchesSelector||d.msMatchesSelector))&&ut(function(e){r.disconnectedMatch=y.call(e,"div"),y.call(e,"[s!='']:x"),m.push("!=",I)}),g=g.length&&RegExp(g.join("|")),m=m.length&&RegExp(m.join("|")),v=K.test(d.contains)||d.compareDocumentPosition?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},A=d.compareDocumentPosition?function(e,t){if(e===t)return S=!0,0;var i=t.compareDocumentPosition&&e.compareDocumentPosition&&e.compareDocumentPosition(t);return i?1&i||!r.sortDetached&&t.compareDocumentPosition(e)===i?e===n||v(w,e)?-1:t===n||v(w,t)?1:c?F.call(c,e)-F.call(c,t):0:4&i?-1:1:e.compareDocumentPosition?-1:1}:function(e,t){var r,i=0,o=e.parentNode,a=t.parentNode,s=[e],l=[t];if(e===t)return S=!0,0;if(!o||!a)return e===n?-1:t===n?1:o?-1:a?1:c?F.call(c,e)-F.call(c,t):0;if(o===a)return pt(e,t);r=e;while(r=r.parentNode)s.unshift(r);r=t;while(r=r.parentNode)l.unshift(r);while(s[i]===l[i])i++;return i?pt(s[i],l[i]):s[i]===w?-1:l[i]===w?1:0},n):f},at.matches=function(e,t){return at(e,null,null,t)},at.matchesSelector=function(e,t){if((e.ownerDocument||e)!==f&&p(e),t=t.replace(Y,"='$1']"),!(!r.matchesSelector||!h||m&&m.test(t)||g&&g.test(t)))try{var n=y.call(e,t);if(n||r.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(i){}return at(t,f,null,[e]).length>0},at.contains=function(e,t){return(e.ownerDocument||e)!==f&&p(e),v(e,t)},at.attr=function(e,n){(e.ownerDocument||e)!==f&&p(e);var i=o.attrHandle[n.toLowerCase()],a=i&&L.call(o.attrHandle,n.toLowerCase())?i(e,n,!h):t;return a===t?r.attributes||!h?e.getAttribute(n):(a=e.getAttributeNode(n))&&a.specified?a.value:null:a},at.error=function(e){throw Error("Syntax error, unrecognized expression: "+e)},at.uniqueSort=function(e){var t,n=[],i=0,o=0;if(S=!r.detectDuplicates,c=!r.sortStable&&e.slice(0),e.sort(A),S){while(t=e[o++])t===e[o]&&(i=n.push(o));while(i--)e.splice(n[i],1)}return e},a=at.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=a(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r];r++)n+=a(t);return n},o=at.selectors={cacheLength:50,createPseudo:lt,match:Q,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(rt,it),e[3]=(e[4]||e[5]||"").replace(rt,it),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||at.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&at.error(e[0]),e},PSEUDO:function(e){var n,r=!e[5]&&e[2];return Q.CHILD.test(e[0])?null:(e[3]&&e[4]!==t?e[2]=e[4]:r&&J.test(r)&&(n=mt(r,!0))&&(n=r.indexOf(")",r.length-n)-r.length)&&(e[0]=e[0].slice(0,n),e[2]=r.slice(0,n)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(rt,it).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=N[e+" "];return t||(t=RegExp("(^|"+P+")"+e+"("+P+"|$)"))&&N(e,function(e){return t.test("string"==typeof e.className&&e.className||typeof e.getAttribute!==j&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=at.attr(r,e);return null==i?"!="===t:t?(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i+" ").indexOf(n)>-1:"|="===t?i===n||i.slice(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,l){var u,c,p,f,d,h,g=o!==a?"nextSibling":"previousSibling",m=t.parentNode,y=s&&t.nodeName.toLowerCase(),v=!l&&!s;if(m){if(o){while(g){p=t;while(p=p[g])if(s?p.nodeName.toLowerCase()===y:1===p.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?m.firstChild:m.lastChild],a&&v){c=m[b]||(m[b]={}),u=c[e]||[],d=u[0]===T&&u[1],f=u[0]===T&&u[2],p=d&&m.childNodes[d];while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if(1===p.nodeType&&++f&&p===t){c[e]=[T,d,f];break}}else if(v&&(u=(t[b]||(t[b]={}))[e])&&u[0]===T)f=u[1];else while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if((s?p.nodeName.toLowerCase()===y:1===p.nodeType)&&++f&&(v&&((p[b]||(p[b]={}))[e]=[T,f]),p===t))break;return f-=i,f===r||0===f%r&&f/r>=0}}},PSEUDO:function(e,t){var n,r=o.pseudos[e]||o.setFilters[e.toLowerCase()]||at.error("unsupported pseudo: "+e);return r[b]?r(t):r.length>1?(n=[e,e,"",t],o.setFilters.hasOwnProperty(e.toLowerCase())?lt(function(e,n){var i,o=r(e,t),a=o.length;while(a--)i=F.call(e,o[a]),e[i]=!(n[i]=o[a])}):function(e){return r(e,0,n)}):r}},pseudos:{not:lt(function(e){var t=[],n=[],r=l(e.replace(z,"$1"));return r[b]?lt(function(e,t,n,i){var o,a=r(e,null,i,[]),s=e.length;while(s--)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),!n.pop()}}),has:lt(function(e){return function(t){return at(e,t).length>0}}),contains:lt(function(e){return function(t){return(t.textContent||t.innerText||a(t)).indexOf(e)>-1}}),lang:lt(function(e){return G.test(e||"")||at.error("unsupported lang: "+e),e=e.replace(rt,it).toLowerCase(),function(t){var n;do if(n=h?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===d},focus:function(e){return e===f.activeElement&&(!f.hasFocus||f.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeName>"@"||3===e.nodeType||4===e.nodeType)return!1;return!0},parent:function(e){return!o.pseudos.empty(e)},header:function(e){return tt.test(e.nodeName)},input:function(e){return et.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||t.toLowerCase()===e.type)},first:ht(function(){return[0]}),last:ht(function(e,t){return[t-1]}),eq:ht(function(e,t,n){return[0>n?n+t:n]}),even:ht(function(e,t){var n=0;for(;t>n;n+=2)e.push(n);return e}),odd:ht(function(e,t){var n=1;for(;t>n;n+=2)e.push(n);return e}),lt:ht(function(e,t,n){var r=0>n?n+t:n;for(;--r>=0;)e.push(r);return e}),gt:ht(function(e,t,n){var r=0>n?n+t:n;for(;t>++r;)e.push(r);return e})}},o.pseudos.nth=o.pseudos.eq;for(n in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})o.pseudos[n]=ft(n);for(n in{submit:!0,reset:!0})o.pseudos[n]=dt(n);function gt(){}gt.prototype=o.filters=o.pseudos,o.setFilters=new gt;function mt(e,t){var n,r,i,a,s,l,u,c=k[e+" "];if(c)return t?0:c.slice(0);s=e,l=[],u=o.preFilter;while(s){(!n||(r=X.exec(s)))&&(r&&(s=s.slice(r[0].length)||s),l.push(i=[])),n=!1,(r=U.exec(s))&&(n=r.shift(),i.push({value:n,type:r[0].replace(z," ")}),s=s.slice(n.length));for(a in o.filter)!(r=Q[a].exec(s))||u[a]&&!(r=u[a](r))||(n=r.shift(),i.push({value:n,type:a,matches:r}),s=s.slice(n.length));if(!n)break}return t?s.length:s?at.error(e):k(e,l).slice(0)}function yt(e){var t=0,n=e.length,r="";for(;n>t;t++)r+=e[t].value;return r}function vt(e,t,n){var r=t.dir,o=n&&"parentNode"===r,a=C++;return t.first?function(t,n,i){while(t=t[r])if(1===t.nodeType||o)return e(t,n,i)}:function(t,n,s){var l,u,c,p=T+" "+a;if(s){while(t=t[r])if((1===t.nodeType||o)&&e(t,n,s))return!0}else while(t=t[r])if(1===t.nodeType||o)if(c=t[b]||(t[b]={}),(u=c[r])&&u[0]===p){if((l=u[1])===!0||l===i)return l===!0}else if(u=c[r]=[p],u[1]=e(t,n,s)||i,u[1]===!0)return!0}}function bt(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function xt(e,t,n,r,i){var o,a=[],s=0,l=e.length,u=null!=t;for(;l>s;s++)(o=e[s])&&(!n||n(o,r,i))&&(a.push(o),u&&t.push(s));return a}function wt(e,t,n,r,i,o){return r&&!r[b]&&(r=wt(r)),i&&!i[b]&&(i=wt(i,o)),lt(function(o,a,s,l){var u,c,p,f=[],d=[],h=a.length,g=o||Nt(t||"*",s.nodeType?[s]:s,[]),m=!e||!o&&t?g:xt(g,f,e,s,l),y=n?i||(o?e:h||r)?[]:a:m;if(n&&n(m,y,s,l),r){u=xt(y,d),r(u,[],s,l),c=u.length;while(c--)(p=u[c])&&(y[d[c]]=!(m[d[c]]=p))}if(o){if(i||e){if(i){u=[],c=y.length;while(c--)(p=y[c])&&u.push(m[c]=p);i(null,y=[],u,l)}c=y.length;while(c--)(p=y[c])&&(u=i?F.call(o,p):f[c])>-1&&(o[u]=!(a[u]=p))}}else y=xt(y===a?y.splice(h,y.length):y),i?i(null,a,y,l):M.apply(a,y)})}function Tt(e){var t,n,r,i=e.length,a=o.relative[e[0].type],s=a||o.relative[" "],l=a?1:0,c=vt(function(e){return e===t},s,!0),p=vt(function(e){return F.call(t,e)>-1},s,!0),f=[function(e,n,r){return!a&&(r||n!==u)||((t=n).nodeType?c(e,n,r):p(e,n,r))}];for(;i>l;l++)if(n=o.relative[e[l].type])f=[vt(bt(f),n)];else{if(n=o.filter[e[l].type].apply(null,e[l].matches),n[b]){for(r=++l;i>r;r++)if(o.relative[e[r].type])break;return wt(l>1&&bt(f),l>1&&yt(e.slice(0,l-1).concat({value:" "===e[l-2].type?"*":""})).replace(z,"$1"),n,r>l&&Tt(e.slice(l,r)),i>r&&Tt(e=e.slice(r)),i>r&&yt(e))}f.push(n)}return bt(f)}function Ct(e,t){var n=0,r=t.length>0,a=e.length>0,s=function(s,l,c,p,d){var h,g,m,y=[],v=0,b="0",x=s&&[],w=null!=d,C=u,N=s||a&&o.find.TAG("*",d&&l.parentNode||l),k=T+=null==C?1:Math.random()||.1;for(w&&(u=l!==f&&l,i=n);null!=(h=N[b]);b++){if(a&&h){g=0;while(m=e[g++])if(m(h,l,c)){p.push(h);break}w&&(T=k,i=++n)}r&&((h=!m&&h)&&v--,s&&x.push(h))}if(v+=b,r&&b!==v){g=0;while(m=t[g++])m(x,y,l,c);if(s){if(v>0)while(b--)x[b]||y[b]||(y[b]=q.call(p));y=xt(y)}M.apply(p,y),w&&!s&&y.length>0&&v+t.length>1&&at.uniqueSort(p)}return w&&(T=k,u=C),x};return r?lt(s):s}l=at.compile=function(e,t){var n,r=[],i=[],o=E[e+" "];if(!o){t||(t=mt(e)),n=t.length;while(n--)o=Tt(t[n]),o[b]?r.push(o):i.push(o);o=E(e,Ct(i,r))}return o};function Nt(e,t,n){var r=0,i=t.length;for(;i>r;r++)at(e,t[r],n);return n}function kt(e,t,n,i){var a,s,u,c,p,f=mt(e);if(!i&&1===f.length){if(s=f[0]=f[0].slice(0),s.length>2&&"ID"===(u=s[0]).type&&r.getById&&9===t.nodeType&&h&&o.relative[s[1].type]){if(t=(o.find.ID(u.matches[0].replace(rt,it),t)||[])[0],!t)return n;e=e.slice(s.shift().value.length)}a=Q.needsContext.test(e)?0:s.length;while(a--){if(u=s[a],o.relative[c=u.type])break;if((p=o.find[c])&&(i=p(u.matches[0].replace(rt,it),V.test(s[0].type)&&t.parentNode||t))){if(s.splice(a,1),e=i.length&&yt(s),!e)return M.apply(n,i),n;break}}}return l(e,f)(i,t,!h,n,V.test(e)),n}r.sortStable=b.split("").sort(A).join("")===b,r.detectDuplicates=S,p(),r.sortDetached=ut(function(e){return 1&e.compareDocumentPosition(f.createElement("div"))}),ut(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||ct("type|href|height|width",function(e,n,r){return r?t:e.getAttribute(n,"type"===n.toLowerCase()?1:2)}),r.attributes&&ut(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||ct("value",function(e,n,r){return r||"input"!==e.nodeName.toLowerCase()?t:e.defaultValue}),ut(function(e){return null==e.getAttribute("disabled")})||ct(B,function(e,n,r){var i;return r?t:(i=e.getAttributeNode(n))&&i.specified?i.value:e[n]===!0?n.toLowerCase():null}),x.find=at,x.expr=at.selectors,x.expr[":"]=x.expr.pseudos,x.unique=at.uniqueSort,x.text=at.getText,x.isXMLDoc=at.isXML,x.contains=at.contains}(e);var O={};function F(e){var t=O[e]={};return x.each(e.match(T)||[],function(e,n){t[n]=!0}),t}x.Callbacks=function(e){e="string"==typeof e?O[e]||F(e):x.extend({},e);var n,r,i,o,a,s,l=[],u=!e.once&&[],c=function(t){for(r=e.memory&&t,i=!0,a=s||0,s=0,o=l.length,n=!0;l&&o>a;a++)if(l[a].apply(t[0],t[1])===!1&&e.stopOnFalse){r=!1;break}n=!1,l&&(u?u.length&&c(u.shift()):r?l=[]:p.disable())},p={add:function(){if(l){var t=l.length;(function i(t){x.each(t,function(t,n){var r=x.type(n);"function"===r?e.unique&&p.has(n)||l.push(n):n&&n.length&&"string"!==r&&i(n)})})(arguments),n?o=l.length:r&&(s=t,c(r))}return this},remove:function(){return l&&x.each(arguments,function(e,t){var r;while((r=x.inArray(t,l,r))>-1)l.splice(r,1),n&&(o>=r&&o--,a>=r&&a--)}),this},has:function(e){return e?x.inArray(e,l)>-1:!(!l||!l.length)},empty:function(){return l=[],o=0,this},disable:function(){return l=u=r=t,this},disabled:function(){return!l},lock:function(){return u=t,r||p.disable(),this},locked:function(){return!u},fireWith:function(e,t){return!l||i&&!u||(t=t||[],t=[e,t.slice?t.slice():t],n?u.push(t):c(t)),this},fire:function(){return p.fireWith(this,arguments),this},fired:function(){return!!i}};return p},x.extend({Deferred:function(e){var t=[["resolve","done",x.Callbacks("once memory"),"resolved"],["reject","fail",x.Callbacks("once memory"),"rejected"],["notify","progress",x.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return x.Deferred(function(n){x.each(t,function(t,o){var a=o[0],s=x.isFunction(e[t])&&e[t];i[o[1]](function(){var e=s&&s.apply(this,arguments);e&&x.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[a+"With"](this===r?n.promise():this,s?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?x.extend(e,r):r}},i={};return r.pipe=r.then,x.each(t,function(e,o){var a=o[2],s=o[3];r[o[1]]=a.add,s&&a.add(function(){n=s},t[1^e][2].disable,t[2][2].lock),i[o[0]]=function(){return i[o[0]+"With"](this===i?r:this,arguments),this},i[o[0]+"With"]=a.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t=0,n=g.call(arguments),r=n.length,i=1!==r||e&&x.isFunction(e.promise)?r:0,o=1===i?e:x.Deferred(),a=function(e,t,n){return function(r){t[e]=this,n[e]=arguments.length>1?g.call(arguments):r,n===s?o.notifyWith(t,n):--i||o.resolveWith(t,n)}},s,l,u;if(r>1)for(s=Array(r),l=Array(r),u=Array(r);r>t;t++)n[t]&&x.isFunction(n[t].promise)?n[t].promise().done(a(t,u,n)).fail(o.reject).progress(a(t,l,s)):--i;return i||o.resolveWith(u,n),o.promise()}}),x.support=function(t){var n,r,o,s,l,u,c,p,f,d=a.createElement("div");if(d.setAttribute("className","t"),d.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",n=d.getElementsByTagName("*")||[],r=d.getElementsByTagName("a")[0],!r||!r.style||!n.length)return t;s=a.createElement("select"),u=s.appendChild(a.createElement("option")),o=d.getElementsByTagName("input")[0],r.style.cssText="top:1px;float:left;opacity:.5",t.getSetAttribute="t"!==d.className,t.leadingWhitespace=3===d.firstChild.nodeType,t.tbody=!d.getElementsByTagName("tbody").length,t.htmlSerialize=!!d.getElementsByTagName("link").length,t.style=/top/.test(r.getAttribute("style")),t.hrefNormalized="/a"===r.getAttribute("href"),t.opacity=/^0.5/.test(r.style.opacity),t.cssFloat=!!r.style.cssFloat,t.checkOn=!!o.value,t.optSelected=u.selected,t.enctype=!!a.createElement("form").enctype,t.html5Clone="<:nav></:nav>"!==a.createElement("nav").cloneNode(!0).outerHTML,t.inlineBlockNeedsLayout=!1,t.shrinkWrapBlocks=!1,t.pixelPosition=!1,t.deleteExpando=!0,t.noCloneEvent=!0,t.reliableMarginRight=!0,t.boxSizingReliable=!0,o.checked=!0,t.noCloneChecked=o.cloneNode(!0).checked,s.disabled=!0,t.optDisabled=!u.disabled;try{delete d.test}catch(h){t.deleteExpando=!1}o=a.createElement("input"),o.setAttribute("value",""),t.input=""===o.getAttribute("value"),o.value="t",o.setAttribute("type","radio"),t.radioValue="t"===o.value,o.setAttribute("checked","t"),o.setAttribute("name","t"),l=a.createDocumentFragment(),l.appendChild(o),t.appendChecked=o.checked,t.checkClone=l.cloneNode(!0).cloneNode(!0).lastChild.checked,d.attachEvent&&(d.attachEvent("onclick",function(){t.noCloneEvent=!1}),d.cloneNode(!0).click());for(f in{submit:!0,change:!0,focusin:!0})d.setAttribute(c="on"+f,"t"),t[f+"Bubbles"]=c in e||d.attributes[c].expando===!1;d.style.backgroundClip="content-box",d.cloneNode(!0).style.backgroundClip="",t.clearCloneStyle="content-box"===d.style.backgroundClip;for(f in x(t))break;return t.ownLast="0"!==f,x(function(){var n,r,o,s="padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;",l=a.getElementsByTagName("body")[0];l&&(n=a.createElement("div"),n.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",l.appendChild(n).appendChild(d),d.innerHTML="<table><tr><td></td><td>t</td></tr></table>",o=d.getElementsByTagName("td"),o[0].style.cssText="padding:0;margin:0;border:0;display:none",p=0===o[0].offsetHeight,o[0].style.display="",o[1].style.display="none",t.reliableHiddenOffsets=p&&0===o[0].offsetHeight,d.innerHTML="",d.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",x.swap(l,null!=l.style.zoom?{zoom:1}:{},function(){t.boxSizing=4===d.offsetWidth}),e.getComputedStyle&&(t.pixelPosition="1%"!==(e.getComputedStyle(d,null)||{}).top,t.boxSizingReliable="4px"===(e.getComputedStyle(d,null)||{width:"4px"}).width,r=d.appendChild(a.createElement("div")),r.style.cssText=d.style.cssText=s,r.style.marginRight=r.style.width="0",d.style.width="1px",t.reliableMarginRight=!parseFloat((e.getComputedStyle(r,null)||{}).marginRight)),typeof d.style.zoom!==i&&(d.innerHTML="",d.style.cssText=s+"width:1px;padding:1px;display:inline;zoom:1",t.inlineBlockNeedsLayout=3===d.offsetWidth,d.style.display="block",d.innerHTML="<div></div>",d.firstChild.style.width="5px",t.shrinkWrapBlocks=3!==d.offsetWidth,t.inlineBlockNeedsLayout&&(l.style.zoom=1)),l.removeChild(n),n=d=o=r=null)}),n=s=l=u=r=o=null,t | ||
5 | }({});var B=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,P=/([A-Z])/g;function R(e,n,r,i){if(x.acceptData(e)){var o,a,s=x.expando,l=e.nodeType,u=l?x.cache:e,c=l?e[s]:e[s]&&s;if(c&&u[c]&&(i||u[c].data)||r!==t||"string"!=typeof n)return c||(c=l?e[s]=p.pop()||x.guid++:s),u[c]||(u[c]=l?{}:{toJSON:x.noop}),("object"==typeof n||"function"==typeof n)&&(i?u[c]=x.extend(u[c],n):u[c].data=x.extend(u[c].data,n)),a=u[c],i||(a.data||(a.data={}),a=a.data),r!==t&&(a[x.camelCase(n)]=r),"string"==typeof n?(o=a[n],null==o&&(o=a[x.camelCase(n)])):o=a,o}}function W(e,t,n){if(x.acceptData(e)){var r,i,o=e.nodeType,a=o?x.cache:e,s=o?e[x.expando]:x.expando;if(a[s]){if(t&&(r=n?a[s]:a[s].data)){x.isArray(t)?t=t.concat(x.map(t,x.camelCase)):t in r?t=[t]:(t=x.camelCase(t),t=t in r?[t]:t.split(" ")),i=t.length;while(i--)delete r[t[i]];if(n?!I(r):!x.isEmptyObject(r))return}(n||(delete a[s].data,I(a[s])))&&(o?x.cleanData([e],!0):x.support.deleteExpando||a!=a.window?delete a[s]:a[s]=null)}}}x.extend({cache:{},noData:{applet:!0,embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(e){return e=e.nodeType?x.cache[e[x.expando]]:e[x.expando],!!e&&!I(e)},data:function(e,t,n){return R(e,t,n)},removeData:function(e,t){return W(e,t)},_data:function(e,t,n){return R(e,t,n,!0)},_removeData:function(e,t){return W(e,t,!0)},acceptData:function(e){if(e.nodeType&&1!==e.nodeType&&9!==e.nodeType)return!1;var t=e.nodeName&&x.noData[e.nodeName.toLowerCase()];return!t||t!==!0&&e.getAttribute("classid")===t}}),x.fn.extend({data:function(e,n){var r,i,o=null,a=0,s=this[0];if(e===t){if(this.length&&(o=x.data(s),1===s.nodeType&&!x._data(s,"parsedAttrs"))){for(r=s.attributes;r.length>a;a++)i=r[a].name,0===i.indexOf("data-")&&(i=x.camelCase(i.slice(5)),$(s,i,o[i]));x._data(s,"parsedAttrs",!0)}return o}return"object"==typeof e?this.each(function(){x.data(this,e)}):arguments.length>1?this.each(function(){x.data(this,e,n)}):s?$(s,e,x.data(s,e)):null},removeData:function(e){return this.each(function(){x.removeData(this,e)})}});function $(e,n,r){if(r===t&&1===e.nodeType){var i="data-"+n.replace(P,"-$1").toLowerCase();if(r=e.getAttribute(i),"string"==typeof r){try{r="true"===r?!0:"false"===r?!1:"null"===r?null:+r+""===r?+r:B.test(r)?x.parseJSON(r):r}catch(o){}x.data(e,n,r)}else r=t}return r}function I(e){var t;for(t in e)if(("data"!==t||!x.isEmptyObject(e[t]))&&"toJSON"!==t)return!1;return!0}x.extend({queue:function(e,n,r){var i;return e?(n=(n||"fx")+"queue",i=x._data(e,n),r&&(!i||x.isArray(r)?i=x._data(e,n,x.makeArray(r)):i.push(r)),i||[]):t},dequeue:function(e,t){t=t||"fx";var n=x.queue(e,t),r=n.length,i=n.shift(),o=x._queueHooks(e,t),a=function(){x.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return x._data(e,n)||x._data(e,n,{empty:x.Callbacks("once memory").add(function(){x._removeData(e,t+"queue"),x._removeData(e,n)})})}}),x.fn.extend({queue:function(e,n){var r=2;return"string"!=typeof e&&(n=e,e="fx",r--),r>arguments.length?x.queue(this[0],e):n===t?this:this.each(function(){var t=x.queue(this,e,n);x._queueHooks(this,e),"fx"===e&&"inprogress"!==t[0]&&x.dequeue(this,e)})},dequeue:function(e){return this.each(function(){x.dequeue(this,e)})},delay:function(e,t){return e=x.fx?x.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,n){var r,i=1,o=x.Deferred(),a=this,s=this.length,l=function(){--i||o.resolveWith(a,[a])};"string"!=typeof e&&(n=e,e=t),e=e||"fx";while(s--)r=x._data(a[s],e+"queueHooks"),r&&r.empty&&(i++,r.empty.add(l));return l(),o.promise(n)}});var z,X,U=/[\t\r\n\f]/g,V=/\r/g,Y=/^(?:input|select|textarea|button|object)$/i,J=/^(?:a|area)$/i,G=/^(?:checked|selected)$/i,Q=x.support.getSetAttribute,K=x.support.input;x.fn.extend({attr:function(e,t){return x.access(this,x.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){x.removeAttr(this,e)})},prop:function(e,t){return x.access(this,x.prop,e,t,arguments.length>1)},removeProp:function(e){return e=x.propFix[e]||e,this.each(function(){try{this[e]=t,delete this[e]}catch(n){}})},addClass:function(e){var t,n,r,i,o,a=0,s=this.length,l="string"==typeof e&&e;if(x.isFunction(e))return this.each(function(t){x(this).addClass(e.call(this,t,this.className))});if(l)for(t=(e||"").match(T)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(U," "):" ")){o=0;while(i=t[o++])0>r.indexOf(" "+i+" ")&&(r+=i+" ");n.className=x.trim(r)}return this},removeClass:function(e){var t,n,r,i,o,a=0,s=this.length,l=0===arguments.length||"string"==typeof e&&e;if(x.isFunction(e))return this.each(function(t){x(this).removeClass(e.call(this,t,this.className))});if(l)for(t=(e||"").match(T)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(U," "):"")){o=0;while(i=t[o++])while(r.indexOf(" "+i+" ")>=0)r=r.replace(" "+i+" "," ");n.className=e?x.trim(r):""}return this},toggleClass:function(e,t){var n=typeof e;return"boolean"==typeof t&&"string"===n?t?this.addClass(e):this.removeClass(e):x.isFunction(e)?this.each(function(n){x(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if("string"===n){var t,r=0,o=x(this),a=e.match(T)||[];while(t=a[r++])o.hasClass(t)?o.removeClass(t):o.addClass(t)}else(n===i||"boolean"===n)&&(this.className&&x._data(this,"__className__",this.className),this.className=this.className||e===!1?"":x._data(this,"__className__")||"")})},hasClass:function(e){var t=" "+e+" ",n=0,r=this.length;for(;r>n;n++)if(1===this[n].nodeType&&(" "+this[n].className+" ").replace(U," ").indexOf(t)>=0)return!0;return!1},val:function(e){var n,r,i,o=this[0];{if(arguments.length)return i=x.isFunction(e),this.each(function(n){var o;1===this.nodeType&&(o=i?e.call(this,n,x(this).val()):e,null==o?o="":"number"==typeof o?o+="":x.isArray(o)&&(o=x.map(o,function(e){return null==e?"":e+""})),r=x.valHooks[this.type]||x.valHooks[this.nodeName.toLowerCase()],r&&"set"in r&&r.set(this,o,"value")!==t||(this.value=o))});if(o)return r=x.valHooks[o.type]||x.valHooks[o.nodeName.toLowerCase()],r&&"get"in r&&(n=r.get(o,"value"))!==t?n:(n=o.value,"string"==typeof n?n.replace(V,""):null==n?"":n)}}}),x.extend({valHooks:{option:{get:function(e){var t=x.find.attr(e,"value");return null!=t?t:e.text}},select:{get:function(e){var t,n,r=e.options,i=e.selectedIndex,o="select-one"===e.type||0>i,a=o?null:[],s=o?i+1:r.length,l=0>i?s:o?i:0;for(;s>l;l++)if(n=r[l],!(!n.selected&&l!==i||(x.support.optDisabled?n.disabled:null!==n.getAttribute("disabled"))||n.parentNode.disabled&&x.nodeName(n.parentNode,"optgroup"))){if(t=x(n).val(),o)return t;a.push(t)}return a},set:function(e,t){var n,r,i=e.options,o=x.makeArray(t),a=i.length;while(a--)r=i[a],(r.selected=x.inArray(x(r).val(),o)>=0)&&(n=!0);return n||(e.selectedIndex=-1),o}}},attr:function(e,n,r){var o,a,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return typeof e.getAttribute===i?x.prop(e,n,r):(1===s&&x.isXMLDoc(e)||(n=n.toLowerCase(),o=x.attrHooks[n]||(x.expr.match.bool.test(n)?X:z)),r===t?o&&"get"in o&&null!==(a=o.get(e,n))?a:(a=x.find.attr(e,n),null==a?t:a):null!==r?o&&"set"in o&&(a=o.set(e,r,n))!==t?a:(e.setAttribute(n,r+""),r):(x.removeAttr(e,n),t))},removeAttr:function(e,t){var n,r,i=0,o=t&&t.match(T);if(o&&1===e.nodeType)while(n=o[i++])r=x.propFix[n]||n,x.expr.match.bool.test(n)?K&&Q||!G.test(n)?e[r]=!1:e[x.camelCase("default-"+n)]=e[r]=!1:x.attr(e,n,""),e.removeAttribute(Q?n:r)},attrHooks:{type:{set:function(e,t){if(!x.support.radioValue&&"radio"===t&&x.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},propFix:{"for":"htmlFor","class":"className"},prop:function(e,n,r){var i,o,a,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return a=1!==s||!x.isXMLDoc(e),a&&(n=x.propFix[n]||n,o=x.propHooks[n]),r!==t?o&&"set"in o&&(i=o.set(e,r,n))!==t?i:e[n]=r:o&&"get"in o&&null!==(i=o.get(e,n))?i:e[n]},propHooks:{tabIndex:{get:function(e){var t=x.find.attr(e,"tabindex");return t?parseInt(t,10):Y.test(e.nodeName)||J.test(e.nodeName)&&e.href?0:-1}}}}),X={set:function(e,t,n){return t===!1?x.removeAttr(e,n):K&&Q||!G.test(n)?e.setAttribute(!Q&&x.propFix[n]||n,n):e[x.camelCase("default-"+n)]=e[n]=!0,n}},x.each(x.expr.match.bool.source.match(/\w+/g),function(e,n){var r=x.expr.attrHandle[n]||x.find.attr;x.expr.attrHandle[n]=K&&Q||!G.test(n)?function(e,n,i){var o=x.expr.attrHandle[n],a=i?t:(x.expr.attrHandle[n]=t)!=r(e,n,i)?n.toLowerCase():null;return x.expr.attrHandle[n]=o,a}:function(e,n,r){return r?t:e[x.camelCase("default-"+n)]?n.toLowerCase():null}}),K&&Q||(x.attrHooks.value={set:function(e,n,r){return x.nodeName(e,"input")?(e.defaultValue=n,t):z&&z.set(e,n,r)}}),Q||(z={set:function(e,n,r){var i=e.getAttributeNode(r);return i||e.setAttributeNode(i=e.ownerDocument.createAttribute(r)),i.value=n+="","value"===r||n===e.getAttribute(r)?n:t}},x.expr.attrHandle.id=x.expr.attrHandle.name=x.expr.attrHandle.coords=function(e,n,r){var i;return r?t:(i=e.getAttributeNode(n))&&""!==i.value?i.value:null},x.valHooks.button={get:function(e,n){var r=e.getAttributeNode(n);return r&&r.specified?r.value:t},set:z.set},x.attrHooks.contenteditable={set:function(e,t,n){z.set(e,""===t?!1:t,n)}},x.each(["width","height"],function(e,n){x.attrHooks[n]={set:function(e,r){return""===r?(e.setAttribute(n,"auto"),r):t}}})),x.support.hrefNormalized||x.each(["href","src"],function(e,t){x.propHooks[t]={get:function(e){return e.getAttribute(t,4)}}}),x.support.style||(x.attrHooks.style={get:function(e){return e.style.cssText||t},set:function(e,t){return e.style.cssText=t+""}}),x.support.optSelected||(x.propHooks.selected={get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null}}),x.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){x.propFix[this.toLowerCase()]=this}),x.support.enctype||(x.propFix.enctype="encoding"),x.each(["radio","checkbox"],function(){x.valHooks[this]={set:function(e,n){return x.isArray(n)?e.checked=x.inArray(x(e).val(),n)>=0:t}},x.support.checkOn||(x.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})});var Z=/^(?:input|select|textarea)$/i,et=/^key/,tt=/^(?:mouse|contextmenu)|click/,nt=/^(?:focusinfocus|focusoutblur)$/,rt=/^([^.]*)(?:\.(.+)|)$/;function it(){return!0}function ot(){return!1}function at(){try{return a.activeElement}catch(e){}}x.event={global:{},add:function(e,n,r,o,a){var s,l,u,c,p,f,d,h,g,m,y,v=x._data(e);if(v){r.handler&&(c=r,r=c.handler,a=c.selector),r.guid||(r.guid=x.guid++),(l=v.events)||(l=v.events={}),(f=v.handle)||(f=v.handle=function(e){return typeof x===i||e&&x.event.triggered===e.type?t:x.event.dispatch.apply(f.elem,arguments)},f.elem=e),n=(n||"").match(T)||[""],u=n.length;while(u--)s=rt.exec(n[u])||[],g=y=s[1],m=(s[2]||"").split(".").sort(),g&&(p=x.event.special[g]||{},g=(a?p.delegateType:p.bindType)||g,p=x.event.special[g]||{},d=x.extend({type:g,origType:y,data:o,handler:r,guid:r.guid,selector:a,needsContext:a&&x.expr.match.needsContext.test(a),namespace:m.join(".")},c),(h=l[g])||(h=l[g]=[],h.delegateCount=0,p.setup&&p.setup.call(e,o,m,f)!==!1||(e.addEventListener?e.addEventListener(g,f,!1):e.attachEvent&&e.attachEvent("on"+g,f))),p.add&&(p.add.call(e,d),d.handler.guid||(d.handler.guid=r.guid)),a?h.splice(h.delegateCount++,0,d):h.push(d),x.event.global[g]=!0);e=null}},remove:function(e,t,n,r,i){var o,a,s,l,u,c,p,f,d,h,g,m=x.hasData(e)&&x._data(e);if(m&&(c=m.events)){t=(t||"").match(T)||[""],u=t.length;while(u--)if(s=rt.exec(t[u])||[],d=g=s[1],h=(s[2]||"").split(".").sort(),d){p=x.event.special[d]||{},d=(r?p.delegateType:p.bindType)||d,f=c[d]||[],s=s[2]&&RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),l=o=f.length;while(o--)a=f[o],!i&&g!==a.origType||n&&n.guid!==a.guid||s&&!s.test(a.namespace)||r&&r!==a.selector&&("**"!==r||!a.selector)||(f.splice(o,1),a.selector&&f.delegateCount--,p.remove&&p.remove.call(e,a));l&&!f.length&&(p.teardown&&p.teardown.call(e,h,m.handle)!==!1||x.removeEvent(e,d,m.handle),delete c[d])}else for(d in c)x.event.remove(e,d+t[u],n,r,!0);x.isEmptyObject(c)&&(delete m.handle,x._removeData(e,"events"))}},trigger:function(n,r,i,o){var s,l,u,c,p,f,d,h=[i||a],g=v.call(n,"type")?n.type:n,m=v.call(n,"namespace")?n.namespace.split("."):[];if(u=f=i=i||a,3!==i.nodeType&&8!==i.nodeType&&!nt.test(g+x.event.triggered)&&(g.indexOf(".")>=0&&(m=g.split("."),g=m.shift(),m.sort()),l=0>g.indexOf(":")&&"on"+g,n=n[x.expando]?n:new x.Event(g,"object"==typeof n&&n),n.isTrigger=o?2:3,n.namespace=m.join("."),n.namespace_re=n.namespace?RegExp("(^|\\.)"+m.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,n.result=t,n.target||(n.target=i),r=null==r?[n]:x.makeArray(r,[n]),p=x.event.special[g]||{},o||!p.trigger||p.trigger.apply(i,r)!==!1)){if(!o&&!p.noBubble&&!x.isWindow(i)){for(c=p.delegateType||g,nt.test(c+g)||(u=u.parentNode);u;u=u.parentNode)h.push(u),f=u;f===(i.ownerDocument||a)&&h.push(f.defaultView||f.parentWindow||e)}d=0;while((u=h[d++])&&!n.isPropagationStopped())n.type=d>1?c:p.bindType||g,s=(x._data(u,"events")||{})[n.type]&&x._data(u,"handle"),s&&s.apply(u,r),s=l&&u[l],s&&x.acceptData(u)&&s.apply&&s.apply(u,r)===!1&&n.preventDefault();if(n.type=g,!o&&!n.isDefaultPrevented()&&(!p._default||p._default.apply(h.pop(),r)===!1)&&x.acceptData(i)&&l&&i[g]&&!x.isWindow(i)){f=i[l],f&&(i[l]=null),x.event.triggered=g;try{i[g]()}catch(y){}x.event.triggered=t,f&&(i[l]=f)}return n.result}},dispatch:function(e){e=x.event.fix(e);var n,r,i,o,a,s=[],l=g.call(arguments),u=(x._data(this,"events")||{})[e.type]||[],c=x.event.special[e.type]||{};if(l[0]=e,e.delegateTarget=this,!c.preDispatch||c.preDispatch.call(this,e)!==!1){s=x.event.handlers.call(this,e,u),n=0;while((o=s[n++])&&!e.isPropagationStopped()){e.currentTarget=o.elem,a=0;while((i=o.handlers[a++])&&!e.isImmediatePropagationStopped())(!e.namespace_re||e.namespace_re.test(i.namespace))&&(e.handleObj=i,e.data=i.data,r=((x.event.special[i.origType]||{}).handle||i.handler).apply(o.elem,l),r!==t&&(e.result=r)===!1&&(e.preventDefault(),e.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,e),e.result}},handlers:function(e,n){var r,i,o,a,s=[],l=n.delegateCount,u=e.target;if(l&&u.nodeType&&(!e.button||"click"!==e.type))for(;u!=this;u=u.parentNode||this)if(1===u.nodeType&&(u.disabled!==!0||"click"!==e.type)){for(o=[],a=0;l>a;a++)i=n[a],r=i.selector+" ",o[r]===t&&(o[r]=i.needsContext?x(r,this).index(u)>=0:x.find(r,this,null,[u]).length),o[r]&&o.push(i);o.length&&s.push({elem:u,handlers:o})}return n.length>l&&s.push({elem:this,handlers:n.slice(l)}),s},fix:function(e){if(e[x.expando])return e;var t,n,r,i=e.type,o=e,s=this.fixHooks[i];s||(this.fixHooks[i]=s=tt.test(i)?this.mouseHooks:et.test(i)?this.keyHooks:{}),r=s.props?this.props.concat(s.props):this.props,e=new x.Event(o),t=r.length;while(t--)n=r[t],e[n]=o[n];return e.target||(e.target=o.srcElement||a),3===e.target.nodeType&&(e.target=e.target.parentNode),e.metaKey=!!e.metaKey,s.filter?s.filter(e,o):e},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return null==e.which&&(e.which=null!=t.charCode?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,n){var r,i,o,s=n.button,l=n.fromElement;return null==e.pageX&&null!=n.clientX&&(i=e.target.ownerDocument||a,o=i.documentElement,r=i.body,e.pageX=n.clientX+(o&&o.scrollLeft||r&&r.scrollLeft||0)-(o&&o.clientLeft||r&&r.clientLeft||0),e.pageY=n.clientY+(o&&o.scrollTop||r&&r.scrollTop||0)-(o&&o.clientTop||r&&r.clientTop||0)),!e.relatedTarget&&l&&(e.relatedTarget=l===e.target?n.toElement:l),e.which||s===t||(e.which=1&s?1:2&s?3:4&s?2:0),e}},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==at()&&this.focus)try{return this.focus(),!1}catch(e){}},delegateType:"focusin"},blur:{trigger:function(){return this===at()&&this.blur?(this.blur(),!1):t},delegateType:"focusout"},click:{trigger:function(){return x.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):t},_default:function(e){return x.nodeName(e.target,"a")}},beforeunload:{postDispatch:function(e){e.result!==t&&(e.originalEvent.returnValue=e.result)}}},simulate:function(e,t,n,r){var i=x.extend(new x.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?x.event.trigger(i,null,t):x.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},x.removeEvent=a.removeEventListener?function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)}:function(e,t,n){var r="on"+t;e.detachEvent&&(typeof e[r]===i&&(e[r]=null),e.detachEvent(r,n))},x.Event=function(e,n){return this instanceof x.Event?(e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.returnValue===!1||e.getPreventDefault&&e.getPreventDefault()?it:ot):this.type=e,n&&x.extend(this,n),this.timeStamp=e&&e.timeStamp||x.now(),this[x.expando]=!0,t):new x.Event(e,n)},x.Event.prototype={isDefaultPrevented:ot,isPropagationStopped:ot,isImmediatePropagationStopped:ot,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=it,e&&(e.preventDefault?e.preventDefault():e.returnValue=!1)},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=it,e&&(e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=it,this.stopPropagation()}},x.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){x.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj;return(!i||i!==r&&!x.contains(r,i))&&(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),x.support.submitBubbles||(x.event.special.submit={setup:function(){return x.nodeName(this,"form")?!1:(x.event.add(this,"click._submit keypress._submit",function(e){var n=e.target,r=x.nodeName(n,"input")||x.nodeName(n,"button")?n.form:t;r&&!x._data(r,"submitBubbles")&&(x.event.add(r,"submit._submit",function(e){e._submit_bubble=!0}),x._data(r,"submitBubbles",!0))}),t)},postDispatch:function(e){e._submit_bubble&&(delete e._submit_bubble,this.parentNode&&!e.isTrigger&&x.event.simulate("submit",this.parentNode,e,!0))},teardown:function(){return x.nodeName(this,"form")?!1:(x.event.remove(this,"._submit"),t)}}),x.support.changeBubbles||(x.event.special.change={setup:function(){return Z.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(x.event.add(this,"propertychange._change",function(e){"checked"===e.originalEvent.propertyName&&(this._just_changed=!0)}),x.event.add(this,"click._change",function(e){this._just_changed&&!e.isTrigger&&(this._just_changed=!1),x.event.simulate("change",this,e,!0)})),!1):(x.event.add(this,"beforeactivate._change",function(e){var t=e.target;Z.test(t.nodeName)&&!x._data(t,"changeBubbles")&&(x.event.add(t,"change._change",function(e){!this.parentNode||e.isSimulated||e.isTrigger||x.event.simulate("change",this.parentNode,e,!0)}),x._data(t,"changeBubbles",!0))}),t)},handle:function(e){var n=e.target;return this!==n||e.isSimulated||e.isTrigger||"radio"!==n.type&&"checkbox"!==n.type?e.handleObj.handler.apply(this,arguments):t},teardown:function(){return x.event.remove(this,"._change"),!Z.test(this.nodeName)}}),x.support.focusinBubbles||x.each({focus:"focusin",blur:"focusout"},function(e,t){var n=0,r=function(e){x.event.simulate(t,e.target,x.event.fix(e),!0)};x.event.special[t]={setup:function(){0===n++&&a.addEventListener(e,r,!0)},teardown:function(){0===--n&&a.removeEventListener(e,r,!0)}}}),x.fn.extend({on:function(e,n,r,i,o){var a,s;if("object"==typeof e){"string"!=typeof n&&(r=r||n,n=t);for(a in e)this.on(a,n,r,e[a],o);return this}if(null==r&&null==i?(i=n,r=n=t):null==i&&("string"==typeof n?(i=r,r=t):(i=r,r=n,n=t)),i===!1)i=ot;else if(!i)return this;return 1===o&&(s=i,i=function(e){return x().off(e),s.apply(this,arguments)},i.guid=s.guid||(s.guid=x.guid++)),this.each(function(){x.event.add(this,e,i,r,n)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,n,r){var i,o;if(e&&e.preventDefault&&e.handleObj)return i=e.handleObj,x(e.delegateTarget).off(i.namespace?i.origType+"."+i.namespace:i.origType,i.selector,i.handler),this;if("object"==typeof e){for(o in e)this.off(o,n,e[o]);return this}return(n===!1||"function"==typeof n)&&(r=n,n=t),r===!1&&(r=ot),this.each(function(){x.event.remove(this,e,r,n)})},trigger:function(e,t){return this.each(function(){x.event.trigger(e,t,this)})},triggerHandler:function(e,n){var r=this[0];return r?x.event.trigger(e,n,r,!0):t}});var st=/^.[^:#\[\.,]*$/,lt=/^(?:parents|prev(?:Until|All))/,ut=x.expr.match.needsContext,ct={children:!0,contents:!0,next:!0,prev:!0};x.fn.extend({find:function(e){var t,n=[],r=this,i=r.length;if("string"!=typeof e)return this.pushStack(x(e).filter(function(){for(t=0;i>t;t++)if(x.contains(r[t],this))return!0}));for(t=0;i>t;t++)x.find(e,r[t],n);return n=this.pushStack(i>1?x.unique(n):n),n.selector=this.selector?this.selector+" "+e:e,n},has:function(e){var t,n=x(e,this),r=n.length;return this.filter(function(){for(t=0;r>t;t++)if(x.contains(this,n[t]))return!0})},not:function(e){return this.pushStack(ft(this,e||[],!0))},filter:function(e){return this.pushStack(ft(this,e||[],!1))},is:function(e){return!!ft(this,"string"==typeof e&&ut.test(e)?x(e):e||[],!1).length},closest:function(e,t){var n,r=0,i=this.length,o=[],a=ut.test(e)||"string"!=typeof e?x(e,t||this.context):0;for(;i>r;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(11>n.nodeType&&(a?a.index(n)>-1:1===n.nodeType&&x.find.matchesSelector(n,e))){n=o.push(n);break}return this.pushStack(o.length>1?x.unique(o):o)},index:function(e){return e?"string"==typeof e?x.inArray(this[0],x(e)):x.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){var n="string"==typeof e?x(e,t):x.makeArray(e&&e.nodeType?[e]:e),r=x.merge(this.get(),n);return this.pushStack(x.unique(r))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}});function pt(e,t){do e=e[t];while(e&&1!==e.nodeType);return e}x.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return x.dir(e,"parentNode")},parentsUntil:function(e,t,n){return x.dir(e,"parentNode",n)},next:function(e){return pt(e,"nextSibling")},prev:function(e){return pt(e,"previousSibling")},nextAll:function(e){return x.dir(e,"nextSibling")},prevAll:function(e){return x.dir(e,"previousSibling")},nextUntil:function(e,t,n){return x.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return x.dir(e,"previousSibling",n)},siblings:function(e){return x.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return x.sibling(e.firstChild)},contents:function(e){return x.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:x.merge([],e.childNodes)}},function(e,t){x.fn[e]=function(n,r){var i=x.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=x.filter(r,i)),this.length>1&&(ct[e]||(i=x.unique(i)),lt.test(e)&&(i=i.reverse())),this.pushStack(i)}}),x.extend({filter:function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?x.find.matchesSelector(r,e)?[r]:[]:x.find.matches(e,x.grep(t,function(e){return 1===e.nodeType}))},dir:function(e,n,r){var i=[],o=e[n];while(o&&9!==o.nodeType&&(r===t||1!==o.nodeType||!x(o).is(r)))1===o.nodeType&&i.push(o),o=o[n];return i},sibling:function(e,t){var n=[];for(;e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}});function ft(e,t,n){if(x.isFunction(t))return x.grep(e,function(e,r){return!!t.call(e,r,e)!==n});if(t.nodeType)return x.grep(e,function(e){return e===t!==n});if("string"==typeof t){if(st.test(t))return x.filter(t,e,n);t=x.filter(t,e)}return x.grep(e,function(e){return x.inArray(e,t)>=0!==n})}function dt(e){var t=ht.split("|"),n=e.createDocumentFragment();if(n.createElement)while(t.length)n.createElement(t.pop());return n}var ht="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",gt=/ jQuery\d+="(?:null|\d+)"/g,mt=RegExp("<(?:"+ht+")[\\s/>]","i"),yt=/^\s+/,vt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,bt=/<([\w:]+)/,xt=/<tbody/i,wt=/<|&#?\w+;/,Tt=/<(?:script|style|link)/i,Ct=/^(?:checkbox|radio)$/i,Nt=/checked\s*(?:[^=]|=\s*.checked.)/i,kt=/^$|\/(?:java|ecma)script/i,Et=/^true\/(.*)/,St=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,At={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:x.support.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]},jt=dt(a),Dt=jt.appendChild(a.createElement("div"));At.optgroup=At.option,At.tbody=At.tfoot=At.colgroup=At.caption=At.thead,At.th=At.td,x.fn.extend({text:function(e){return x.access(this,function(e){return e===t?x.text(this):this.empty().append((this[0]&&this[0].ownerDocument||a).createTextNode(e))},null,e,arguments.length)},append:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Lt(this,e);t.appendChild(e)}})},prepend:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Lt(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},remove:function(e,t){var n,r=e?x.filter(e,this):this,i=0;for(;null!=(n=r[i]);i++)t||1!==n.nodeType||x.cleanData(Ft(n)),n.parentNode&&(t&&x.contains(n.ownerDocument,n)&&_t(Ft(n,"script")),n.parentNode.removeChild(n));return this},empty:function(){var e,t=0;for(;null!=(e=this[t]);t++){1===e.nodeType&&x.cleanData(Ft(e,!1));while(e.firstChild)e.removeChild(e.firstChild);e.options&&x.nodeName(e,"select")&&(e.options.length=0)}return this},clone:function(e,t){return e=null==e?!1:e,t=null==t?e:t,this.map(function(){return x.clone(this,e,t)})},html:function(e){return x.access(this,function(e){var n=this[0]||{},r=0,i=this.length;if(e===t)return 1===n.nodeType?n.innerHTML.replace(gt,""):t;if(!("string"!=typeof e||Tt.test(e)||!x.support.htmlSerialize&&mt.test(e)||!x.support.leadingWhitespace&&yt.test(e)||At[(bt.exec(e)||["",""])[1].toLowerCase()])){e=e.replace(vt,"<$1></$2>");try{for(;i>r;r++)n=this[r]||{},1===n.nodeType&&(x.cleanData(Ft(n,!1)),n.innerHTML=e);n=0}catch(o){}}n&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var e=x.map(this,function(e){return[e.nextSibling,e.parentNode]}),t=0;return this.domManip(arguments,function(n){var r=e[t++],i=e[t++];i&&(r&&r.parentNode!==i&&(r=this.nextSibling),x(this).remove(),i.insertBefore(n,r))},!0),t?this:this.remove()},detach:function(e){return this.remove(e,!0)},domManip:function(e,t,n){e=d.apply([],e);var r,i,o,a,s,l,u=0,c=this.length,p=this,f=c-1,h=e[0],g=x.isFunction(h);if(g||!(1>=c||"string"!=typeof h||x.support.checkClone)&&Nt.test(h))return this.each(function(r){var i=p.eq(r);g&&(e[0]=h.call(this,r,i.html())),i.domManip(e,t,n)});if(c&&(l=x.buildFragment(e,this[0].ownerDocument,!1,!n&&this),r=l.firstChild,1===l.childNodes.length&&(l=r),r)){for(a=x.map(Ft(l,"script"),Ht),o=a.length;c>u;u++)i=l,u!==f&&(i=x.clone(i,!0,!0),o&&x.merge(a,Ft(i,"script"))),t.call(this[u],i,u);if(o)for(s=a[a.length-1].ownerDocument,x.map(a,qt),u=0;o>u;u++)i=a[u],kt.test(i.type||"")&&!x._data(i,"globalEval")&&x.contains(s,i)&&(i.src?x._evalUrl(i.src):x.globalEval((i.text||i.textContent||i.innerHTML||"").replace(St,"")));l=r=null}return this}});function Lt(e,t){return x.nodeName(e,"table")&&x.nodeName(1===t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function Ht(e){return e.type=(null!==x.find.attr(e,"type"))+"/"+e.type,e}function qt(e){var t=Et.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function _t(e,t){var n,r=0;for(;null!=(n=e[r]);r++)x._data(n,"globalEval",!t||x._data(t[r],"globalEval"))}function Mt(e,t){if(1===t.nodeType&&x.hasData(e)){var n,r,i,o=x._data(e),a=x._data(t,o),s=o.events;if(s){delete a.handle,a.events={};for(n in s)for(r=0,i=s[n].length;i>r;r++)x.event.add(t,n,s[n][r])}a.data&&(a.data=x.extend({},a.data))}}function Ot(e,t){var n,r,i;if(1===t.nodeType){if(n=t.nodeName.toLowerCase(),!x.support.noCloneEvent&&t[x.expando]){i=x._data(t);for(r in i.events)x.removeEvent(t,r,i.handle);t.removeAttribute(x.expando)}"script"===n&&t.text!==e.text?(Ht(t).text=e.text,qt(t)):"object"===n?(t.parentNode&&(t.outerHTML=e.outerHTML),x.support.html5Clone&&e.innerHTML&&!x.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML)):"input"===n&&Ct.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):"option"===n?t.defaultSelected=t.selected=e.defaultSelected:("input"===n||"textarea"===n)&&(t.defaultValue=e.defaultValue)}}x.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){x.fn[e]=function(e){var n,r=0,i=[],o=x(e),a=o.length-1;for(;a>=r;r++)n=r===a?this:this.clone(!0),x(o[r])[t](n),h.apply(i,n.get());return this.pushStack(i)}});function Ft(e,n){var r,o,a=0,s=typeof e.getElementsByTagName!==i?e.getElementsByTagName(n||"*"):typeof e.querySelectorAll!==i?e.querySelectorAll(n||"*"):t;if(!s)for(s=[],r=e.childNodes||e;null!=(o=r[a]);a++)!n||x.nodeName(o,n)?s.push(o):x.merge(s,Ft(o,n));return n===t||n&&x.nodeName(e,n)?x.merge([e],s):s}function Bt(e){Ct.test(e.type)&&(e.defaultChecked=e.checked)}x.extend({clone:function(e,t,n){var r,i,o,a,s,l=x.contains(e.ownerDocument,e);if(x.support.html5Clone||x.isXMLDoc(e)||!mt.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(Dt.innerHTML=e.outerHTML,Dt.removeChild(o=Dt.firstChild)),!(x.support.noCloneEvent&&x.support.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||x.isXMLDoc(e)))for(r=Ft(o),s=Ft(e),a=0;null!=(i=s[a]);++a)r[a]&&Ot(i,r[a]);if(t)if(n)for(s=s||Ft(e),r=r||Ft(o),a=0;null!=(i=s[a]);a++)Mt(i,r[a]);else Mt(e,o);return r=Ft(o,"script"),r.length>0&&_t(r,!l&&Ft(e,"script")),r=s=i=null,o},buildFragment:function(e,t,n,r){var i,o,a,s,l,u,c,p=e.length,f=dt(t),d=[],h=0;for(;p>h;h++)if(o=e[h],o||0===o)if("object"===x.type(o))x.merge(d,o.nodeType?[o]:o);else if(wt.test(o)){s=s||f.appendChild(t.createElement("div")),l=(bt.exec(o)||["",""])[1].toLowerCase(),c=At[l]||At._default,s.innerHTML=c[1]+o.replace(vt,"<$1></$2>")+c[2],i=c[0];while(i--)s=s.lastChild;if(!x.support.leadingWhitespace&&yt.test(o)&&d.push(t.createTextNode(yt.exec(o)[0])),!x.support.tbody){o="table"!==l||xt.test(o)?"<table>"!==c[1]||xt.test(o)?0:s:s.firstChild,i=o&&o.childNodes.length;while(i--)x.nodeName(u=o.childNodes[i],"tbody")&&!u.childNodes.length&&o.removeChild(u)}x.merge(d,s.childNodes),s.textContent="";while(s.firstChild)s.removeChild(s.firstChild);s=f.lastChild}else d.push(t.createTextNode(o));s&&f.removeChild(s),x.support.appendChecked||x.grep(Ft(d,"input"),Bt),h=0;while(o=d[h++])if((!r||-1===x.inArray(o,r))&&(a=x.contains(o.ownerDocument,o),s=Ft(f.appendChild(o),"script"),a&&_t(s),n)){i=0;while(o=s[i++])kt.test(o.type||"")&&n.push(o)}return s=null,f},cleanData:function(e,t){var n,r,o,a,s=0,l=x.expando,u=x.cache,c=x.support.deleteExpando,f=x.event.special;for(;null!=(n=e[s]);s++)if((t||x.acceptData(n))&&(o=n[l],a=o&&u[o])){if(a.events)for(r in a.events)f[r]?x.event.remove(n,r):x.removeEvent(n,r,a.handle); | ||
6 | u[o]&&(delete u[o],c?delete n[l]:typeof n.removeAttribute!==i?n.removeAttribute(l):n[l]=null,p.push(o))}},_evalUrl:function(e){return x.ajax({url:e,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})}}),x.fn.extend({wrapAll:function(e){if(x.isFunction(e))return this.each(function(t){x(this).wrapAll(e.call(this,t))});if(this[0]){var t=x(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstChild&&1===e.firstChild.nodeType)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return x.isFunction(e)?this.each(function(t){x(this).wrapInner(e.call(this,t))}):this.each(function(){var t=x(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=x.isFunction(e);return this.each(function(n){x(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){x.nodeName(this,"body")||x(this).replaceWith(this.childNodes)}).end()}});var Pt,Rt,Wt,$t=/alpha\([^)]*\)/i,It=/opacity\s*=\s*([^)]*)/,zt=/^(top|right|bottom|left)$/,Xt=/^(none|table(?!-c[ea]).+)/,Ut=/^margin/,Vt=RegExp("^("+w+")(.*)$","i"),Yt=RegExp("^("+w+")(?!px)[a-z%]+$","i"),Jt=RegExp("^([+-])=("+w+")","i"),Gt={BODY:"block"},Qt={position:"absolute",visibility:"hidden",display:"block"},Kt={letterSpacing:0,fontWeight:400},Zt=["Top","Right","Bottom","Left"],en=["Webkit","O","Moz","ms"];function tn(e,t){if(t in e)return t;var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=en.length;while(i--)if(t=en[i]+n,t in e)return t;return r}function nn(e,t){return e=t||e,"none"===x.css(e,"display")||!x.contains(e.ownerDocument,e)}function rn(e,t){var n,r,i,o=[],a=0,s=e.length;for(;s>a;a++)r=e[a],r.style&&(o[a]=x._data(r,"olddisplay"),n=r.style.display,t?(o[a]||"none"!==n||(r.style.display=""),""===r.style.display&&nn(r)&&(o[a]=x._data(r,"olddisplay",ln(r.nodeName)))):o[a]||(i=nn(r),(n&&"none"!==n||!i)&&x._data(r,"olddisplay",i?n:x.css(r,"display"))));for(a=0;s>a;a++)r=e[a],r.style&&(t&&"none"!==r.style.display&&""!==r.style.display||(r.style.display=t?o[a]||"":"none"));return e}x.fn.extend({css:function(e,n){return x.access(this,function(e,n,r){var i,o,a={},s=0;if(x.isArray(n)){for(o=Rt(e),i=n.length;i>s;s++)a[n[s]]=x.css(e,n[s],!1,o);return a}return r!==t?x.style(e,n,r):x.css(e,n)},e,n,arguments.length>1)},show:function(){return rn(this,!0)},hide:function(){return rn(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){nn(this)?x(this).show():x(this).hide()})}}),x.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Wt(e,"opacity");return""===n?"1":n}}}},cssNumber:{columnCount:!0,fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":x.support.cssFloat?"cssFloat":"styleFloat"},style:function(e,n,r,i){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var o,a,s,l=x.camelCase(n),u=e.style;if(n=x.cssProps[l]||(x.cssProps[l]=tn(u,l)),s=x.cssHooks[n]||x.cssHooks[l],r===t)return s&&"get"in s&&(o=s.get(e,!1,i))!==t?o:u[n];if(a=typeof r,"string"===a&&(o=Jt.exec(r))&&(r=(o[1]+1)*o[2]+parseFloat(x.css(e,n)),a="number"),!(null==r||"number"===a&&isNaN(r)||("number"!==a||x.cssNumber[l]||(r+="px"),x.support.clearCloneStyle||""!==r||0!==n.indexOf("background")||(u[n]="inherit"),s&&"set"in s&&(r=s.set(e,r,i))===t)))try{u[n]=r}catch(c){}}},css:function(e,n,r,i){var o,a,s,l=x.camelCase(n);return n=x.cssProps[l]||(x.cssProps[l]=tn(e.style,l)),s=x.cssHooks[n]||x.cssHooks[l],s&&"get"in s&&(a=s.get(e,!0,r)),a===t&&(a=Wt(e,n,i)),"normal"===a&&n in Kt&&(a=Kt[n]),""===r||r?(o=parseFloat(a),r===!0||x.isNumeric(o)?o||0:a):a}}),e.getComputedStyle?(Rt=function(t){return e.getComputedStyle(t,null)},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),l=s?s.getPropertyValue(n)||s[n]:t,u=e.style;return s&&(""!==l||x.contains(e.ownerDocument,e)||(l=x.style(e,n)),Yt.test(l)&&Ut.test(n)&&(i=u.width,o=u.minWidth,a=u.maxWidth,u.minWidth=u.maxWidth=u.width=l,l=s.width,u.width=i,u.minWidth=o,u.maxWidth=a)),l}):a.documentElement.currentStyle&&(Rt=function(e){return e.currentStyle},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),l=s?s[n]:t,u=e.style;return null==l&&u&&u[n]&&(l=u[n]),Yt.test(l)&&!zt.test(n)&&(i=u.left,o=e.runtimeStyle,a=o&&o.left,a&&(o.left=e.currentStyle.left),u.left="fontSize"===n?"1em":l,l=u.pixelLeft+"px",u.left=i,a&&(o.left=a)),""===l?"auto":l});function on(e,t,n){var r=Vt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function an(e,t,n,r,i){var o=n===(r?"border":"content")?4:"width"===t?1:0,a=0;for(;4>o;o+=2)"margin"===n&&(a+=x.css(e,n+Zt[o],!0,i)),r?("content"===n&&(a-=x.css(e,"padding"+Zt[o],!0,i)),"margin"!==n&&(a-=x.css(e,"border"+Zt[o]+"Width",!0,i))):(a+=x.css(e,"padding"+Zt[o],!0,i),"padding"!==n&&(a+=x.css(e,"border"+Zt[o]+"Width",!0,i)));return a}function sn(e,t,n){var r=!0,i="width"===t?e.offsetWidth:e.offsetHeight,o=Rt(e),a=x.support.boxSizing&&"border-box"===x.css(e,"boxSizing",!1,o);if(0>=i||null==i){if(i=Wt(e,t,o),(0>i||null==i)&&(i=e.style[t]),Yt.test(i))return i;r=a&&(x.support.boxSizingReliable||i===e.style[t]),i=parseFloat(i)||0}return i+an(e,t,n||(a?"border":"content"),r,o)+"px"}function ln(e){var t=a,n=Gt[e];return n||(n=un(e,t),"none"!==n&&n||(Pt=(Pt||x("<iframe frameborder='0' width='0' height='0'/>").css("cssText","display:block !important")).appendTo(t.documentElement),t=(Pt[0].contentWindow||Pt[0].contentDocument).document,t.write("<!doctype html><html><body>"),t.close(),n=un(e,t),Pt.detach()),Gt[e]=n),n}function un(e,t){var n=x(t.createElement(e)).appendTo(t.body),r=x.css(n[0],"display");return n.remove(),r}x.each(["height","width"],function(e,n){x.cssHooks[n]={get:function(e,r,i){return r?0===e.offsetWidth&&Xt.test(x.css(e,"display"))?x.swap(e,Qt,function(){return sn(e,n,i)}):sn(e,n,i):t},set:function(e,t,r){var i=r&&Rt(e);return on(e,t,r?an(e,n,r,x.support.boxSizing&&"border-box"===x.css(e,"boxSizing",!1,i),i):0)}}}),x.support.opacity||(x.cssHooks.opacity={get:function(e,t){return It.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,r=e.currentStyle,i=x.isNumeric(t)?"alpha(opacity="+100*t+")":"",o=r&&r.filter||n.filter||"";n.zoom=1,(t>=1||""===t)&&""===x.trim(o.replace($t,""))&&n.removeAttribute&&(n.removeAttribute("filter"),""===t||r&&!r.filter)||(n.filter=$t.test(o)?o.replace($t,i):o+" "+i)}}),x(function(){x.support.reliableMarginRight||(x.cssHooks.marginRight={get:function(e,n){return n?x.swap(e,{display:"inline-block"},Wt,[e,"marginRight"]):t}}),!x.support.pixelPosition&&x.fn.position&&x.each(["top","left"],function(e,n){x.cssHooks[n]={get:function(e,r){return r?(r=Wt(e,n),Yt.test(r)?x(e).position()[n]+"px":r):t}}})}),x.expr&&x.expr.filters&&(x.expr.filters.hidden=function(e){return 0>=e.offsetWidth&&0>=e.offsetHeight||!x.support.reliableHiddenOffsets&&"none"===(e.style&&e.style.display||x.css(e,"display"))},x.expr.filters.visible=function(e){return!x.expr.filters.hidden(e)}),x.each({margin:"",padding:"",border:"Width"},function(e,t){x.cssHooks[e+t]={expand:function(n){var r=0,i={},o="string"==typeof n?n.split(" "):[n];for(;4>r;r++)i[e+Zt[r]+t]=o[r]||o[r-2]||o[0];return i}},Ut.test(e)||(x.cssHooks[e+t].set=on)});var cn=/%20/g,pn=/\[\]$/,fn=/\r?\n/g,dn=/^(?:submit|button|image|reset|file)$/i,hn=/^(?:input|select|textarea|keygen)/i;x.fn.extend({serialize:function(){return x.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=x.prop(this,"elements");return e?x.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!x(this).is(":disabled")&&hn.test(this.nodeName)&&!dn.test(e)&&(this.checked||!Ct.test(e))}).map(function(e,t){var n=x(this).val();return null==n?null:x.isArray(n)?x.map(n,function(e){return{name:t.name,value:e.replace(fn,"\r\n")}}):{name:t.name,value:n.replace(fn,"\r\n")}}).get()}}),x.param=function(e,n){var r,i=[],o=function(e,t){t=x.isFunction(t)?t():null==t?"":t,i[i.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};if(n===t&&(n=x.ajaxSettings&&x.ajaxSettings.traditional),x.isArray(e)||e.jquery&&!x.isPlainObject(e))x.each(e,function(){o(this.name,this.value)});else for(r in e)gn(r,e[r],n,o);return i.join("&").replace(cn,"+")};function gn(e,t,n,r){var i;if(x.isArray(t))x.each(t,function(t,i){n||pn.test(e)?r(e,i):gn(e+"["+("object"==typeof i?t:"")+"]",i,n,r)});else if(n||"object"!==x.type(t))r(e,t);else for(i in t)gn(e+"["+i+"]",t[i],n,r)}x.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(e,t){x.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),x.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)},bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}});var mn,yn,vn=x.now(),bn=/\?/,xn=/#.*$/,wn=/([?&])_=[^&]*/,Tn=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Cn=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Nn=/^(?:GET|HEAD)$/,kn=/^\/\//,En=/^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,Sn=x.fn.load,An={},jn={},Dn="*/".concat("*");try{yn=o.href}catch(Ln){yn=a.createElement("a"),yn.href="",yn=yn.href}mn=En.exec(yn.toLowerCase())||[];function Hn(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(T)||[];if(x.isFunction(n))while(r=o[i++])"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function qn(e,n,r,i){var o={},a=e===jn;function s(l){var u;return o[l]=!0,x.each(e[l]||[],function(e,l){var c=l(n,r,i);return"string"!=typeof c||a||o[c]?a?!(u=c):t:(n.dataTypes.unshift(c),s(c),!1)}),u}return s(n.dataTypes[0])||!o["*"]&&s("*")}function _n(e,n){var r,i,o=x.ajaxSettings.flatOptions||{};for(i in n)n[i]!==t&&((o[i]?e:r||(r={}))[i]=n[i]);return r&&x.extend(!0,e,r),e}x.fn.load=function(e,n,r){if("string"!=typeof e&&Sn)return Sn.apply(this,arguments);var i,o,a,s=this,l=e.indexOf(" ");return l>=0&&(i=e.slice(l,e.length),e=e.slice(0,l)),x.isFunction(n)?(r=n,n=t):n&&"object"==typeof n&&(a="POST"),s.length>0&&x.ajax({url:e,type:a,dataType:"html",data:n}).done(function(e){o=arguments,s.html(i?x("<div>").append(x.parseHTML(e)).find(i):e)}).complete(r&&function(e,t){s.each(r,o||[e.responseText,t,e])}),this},x.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){x.fn[t]=function(e){return this.on(t,e)}}),x.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:yn,type:"GET",isLocal:Cn.test(mn[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Dn,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":x.parseJSON,"text xml":x.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?_n(_n(e,x.ajaxSettings),t):_n(x.ajaxSettings,e)},ajaxPrefilter:Hn(An),ajaxTransport:Hn(jn),ajax:function(e,n){"object"==typeof e&&(n=e,e=t),n=n||{};var r,i,o,a,s,l,u,c,p=x.ajaxSetup({},n),f=p.context||p,d=p.context&&(f.nodeType||f.jquery)?x(f):x.event,h=x.Deferred(),g=x.Callbacks("once memory"),m=p.statusCode||{},y={},v={},b=0,w="canceled",C={readyState:0,getResponseHeader:function(e){var t;if(2===b){if(!c){c={};while(t=Tn.exec(a))c[t[1].toLowerCase()]=t[2]}t=c[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return 2===b?a:null},setRequestHeader:function(e,t){var n=e.toLowerCase();return b||(e=v[n]=v[n]||e,y[e]=t),this},overrideMimeType:function(e){return b||(p.mimeType=e),this},statusCode:function(e){var t;if(e)if(2>b)for(t in e)m[t]=[m[t],e[t]];else C.always(e[C.status]);return this},abort:function(e){var t=e||w;return u&&u.abort(t),k(0,t),this}};if(h.promise(C).complete=g.add,C.success=C.done,C.error=C.fail,p.url=((e||p.url||yn)+"").replace(xn,"").replace(kn,mn[1]+"//"),p.type=n.method||n.type||p.method||p.type,p.dataTypes=x.trim(p.dataType||"*").toLowerCase().match(T)||[""],null==p.crossDomain&&(r=En.exec(p.url.toLowerCase()),p.crossDomain=!(!r||r[1]===mn[1]&&r[2]===mn[2]&&(r[3]||("http:"===r[1]?"80":"443"))===(mn[3]||("http:"===mn[1]?"80":"443")))),p.data&&p.processData&&"string"!=typeof p.data&&(p.data=x.param(p.data,p.traditional)),qn(An,p,n,C),2===b)return C;l=p.global,l&&0===x.active++&&x.event.trigger("ajaxStart"),p.type=p.type.toUpperCase(),p.hasContent=!Nn.test(p.type),o=p.url,p.hasContent||(p.data&&(o=p.url+=(bn.test(o)?"&":"?")+p.data,delete p.data),p.cache===!1&&(p.url=wn.test(o)?o.replace(wn,"$1_="+vn++):o+(bn.test(o)?"&":"?")+"_="+vn++)),p.ifModified&&(x.lastModified[o]&&C.setRequestHeader("If-Modified-Since",x.lastModified[o]),x.etag[o]&&C.setRequestHeader("If-None-Match",x.etag[o])),(p.data&&p.hasContent&&p.contentType!==!1||n.contentType)&&C.setRequestHeader("Content-Type",p.contentType),C.setRequestHeader("Accept",p.dataTypes[0]&&p.accepts[p.dataTypes[0]]?p.accepts[p.dataTypes[0]]+("*"!==p.dataTypes[0]?", "+Dn+"; q=0.01":""):p.accepts["*"]);for(i in p.headers)C.setRequestHeader(i,p.headers[i]);if(p.beforeSend&&(p.beforeSend.call(f,C,p)===!1||2===b))return C.abort();w="abort";for(i in{success:1,error:1,complete:1})C[i](p[i]);if(u=qn(jn,p,n,C)){C.readyState=1,l&&d.trigger("ajaxSend",[C,p]),p.async&&p.timeout>0&&(s=setTimeout(function(){C.abort("timeout")},p.timeout));try{b=1,u.send(y,k)}catch(N){if(!(2>b))throw N;k(-1,N)}}else k(-1,"No Transport");function k(e,n,r,i){var c,y,v,w,T,N=n;2!==b&&(b=2,s&&clearTimeout(s),u=t,a=i||"",C.readyState=e>0?4:0,c=e>=200&&300>e||304===e,r&&(w=Mn(p,C,r)),w=On(p,w,C,c),c?(p.ifModified&&(T=C.getResponseHeader("Last-Modified"),T&&(x.lastModified[o]=T),T=C.getResponseHeader("etag"),T&&(x.etag[o]=T)),204===e||"HEAD"===p.type?N="nocontent":304===e?N="notmodified":(N=w.state,y=w.data,v=w.error,c=!v)):(v=N,(e||!N)&&(N="error",0>e&&(e=0))),C.status=e,C.statusText=(n||N)+"",c?h.resolveWith(f,[y,N,C]):h.rejectWith(f,[C,N,v]),C.statusCode(m),m=t,l&&d.trigger(c?"ajaxSuccess":"ajaxError",[C,p,c?y:v]),g.fireWith(f,[C,N]),l&&(d.trigger("ajaxComplete",[C,p]),--x.active||x.event.trigger("ajaxStop")))}return C},getJSON:function(e,t,n){return x.get(e,t,n,"json")},getScript:function(e,n){return x.get(e,t,n,"script")}}),x.each(["get","post"],function(e,n){x[n]=function(e,r,i,o){return x.isFunction(r)&&(o=o||i,i=r,r=t),x.ajax({url:e,type:n,dataType:o,data:r,success:i})}});function Mn(e,n,r){var i,o,a,s,l=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),o===t&&(o=e.mimeType||n.getResponseHeader("Content-Type"));if(o)for(s in l)if(l[s]&&l[s].test(o)){u.unshift(s);break}if(u[0]in r)a=u[0];else{for(s in r){if(!u[0]||e.converters[s+" "+u[0]]){a=s;break}i||(i=s)}a=a||i}return a?(a!==u[0]&&u.unshift(a),r[a]):t}function On(e,t,n,r){var i,o,a,s,l,u={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)u[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!l&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),l=o,o=c.shift())if("*"===o)o=l;else if("*"!==l&&l!==o){if(a=u[l+" "+o]||u["* "+o],!a)for(i in u)if(s=i.split(" "),s[1]===o&&(a=u[l+" "+s[0]]||u["* "+s[0]])){a===!0?a=u[i]:u[i]!==!0&&(o=s[0],c.unshift(s[1]));break}if(a!==!0)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(p){return{state:"parsererror",error:a?p:"No conversion from "+l+" to "+o}}}return{state:"success",data:t}}x.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(e){return x.globalEval(e),e}}}),x.ajaxPrefilter("script",function(e){e.cache===t&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),x.ajaxTransport("script",function(e){if(e.crossDomain){var n,r=a.head||x("head")[0]||a.documentElement;return{send:function(t,i){n=a.createElement("script"),n.async=!0,e.scriptCharset&&(n.charset=e.scriptCharset),n.src=e.url,n.onload=n.onreadystatechange=function(e,t){(t||!n.readyState||/loaded|complete/.test(n.readyState))&&(n.onload=n.onreadystatechange=null,n.parentNode&&n.parentNode.removeChild(n),n=null,t||i(200,"success"))},r.insertBefore(n,r.firstChild)},abort:function(){n&&n.onload(t,!0)}}}});var Fn=[],Bn=/(=)\?(?=&|$)|\?\?/;x.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Fn.pop()||x.expando+"_"+vn++;return this[e]=!0,e}}),x.ajaxPrefilter("json jsonp",function(n,r,i){var o,a,s,l=n.jsonp!==!1&&(Bn.test(n.url)?"url":"string"==typeof n.data&&!(n.contentType||"").indexOf("application/x-www-form-urlencoded")&&Bn.test(n.data)&&"data");return l||"jsonp"===n.dataTypes[0]?(o=n.jsonpCallback=x.isFunction(n.jsonpCallback)?n.jsonpCallback():n.jsonpCallback,l?n[l]=n[l].replace(Bn,"$1"+o):n.jsonp!==!1&&(n.url+=(bn.test(n.url)?"&":"?")+n.jsonp+"="+o),n.converters["script json"]=function(){return s||x.error(o+" was not called"),s[0]},n.dataTypes[0]="json",a=e[o],e[o]=function(){s=arguments},i.always(function(){e[o]=a,n[o]&&(n.jsonpCallback=r.jsonpCallback,Fn.push(o)),s&&x.isFunction(a)&&a(s[0]),s=a=t}),"script"):t});var Pn,Rn,Wn=0,$n=e.ActiveXObject&&function(){var e;for(e in Pn)Pn[e](t,!0)};function In(){try{return new e.XMLHttpRequest}catch(t){}}function zn(){try{return new e.ActiveXObject("Microsoft.XMLHTTP")}catch(t){}}x.ajaxSettings.xhr=e.ActiveXObject?function(){return!this.isLocal&&In()||zn()}:In,Rn=x.ajaxSettings.xhr(),x.support.cors=!!Rn&&"withCredentials"in Rn,Rn=x.support.ajax=!!Rn,Rn&&x.ajaxTransport(function(n){if(!n.crossDomain||x.support.cors){var r;return{send:function(i,o){var a,s,l=n.xhr();if(n.username?l.open(n.type,n.url,n.async,n.username,n.password):l.open(n.type,n.url,n.async),n.xhrFields)for(s in n.xhrFields)l[s]=n.xhrFields[s];n.mimeType&&l.overrideMimeType&&l.overrideMimeType(n.mimeType),n.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest");try{for(s in i)l.setRequestHeader(s,i[s])}catch(u){}l.send(n.hasContent&&n.data||null),r=function(e,i){var s,u,c,p;try{if(r&&(i||4===l.readyState))if(r=t,a&&(l.onreadystatechange=x.noop,$n&&delete Pn[a]),i)4!==l.readyState&&l.abort();else{p={},s=l.status,u=l.getAllResponseHeaders(),"string"==typeof l.responseText&&(p.text=l.responseText);try{c=l.statusText}catch(f){c=""}s||!n.isLocal||n.crossDomain?1223===s&&(s=204):s=p.text?200:404}}catch(d){i||o(-1,d)}p&&o(s,c,p,u)},n.async?4===l.readyState?setTimeout(r):(a=++Wn,$n&&(Pn||(Pn={},x(e).unload($n)),Pn[a]=r),l.onreadystatechange=r):r()},abort:function(){r&&r(t,!0)}}}});var Xn,Un,Vn=/^(?:toggle|show|hide)$/,Yn=RegExp("^(?:([+-])=|)("+w+")([a-z%]*)$","i"),Jn=/queueHooks$/,Gn=[nr],Qn={"*":[function(e,t){var n=this.createTween(e,t),r=n.cur(),i=Yn.exec(t),o=i&&i[3]||(x.cssNumber[e]?"":"px"),a=(x.cssNumber[e]||"px"!==o&&+r)&&Yn.exec(x.css(n.elem,e)),s=1,l=20;if(a&&a[3]!==o){o=o||a[3],i=i||[],a=+r||1;do s=s||".5",a/=s,x.style(n.elem,e,a+o);while(s!==(s=n.cur()/r)&&1!==s&&--l)}return i&&(a=n.start=+a||+r||0,n.unit=o,n.end=i[1]?a+(i[1]+1)*i[2]:+i[2]),n}]};function Kn(){return setTimeout(function(){Xn=t}),Xn=x.now()}function Zn(e,t,n){var r,i=(Qn[t]||[]).concat(Qn["*"]),o=0,a=i.length;for(;a>o;o++)if(r=i[o].call(n,t,e))return r}function er(e,t,n){var r,i,o=0,a=Gn.length,s=x.Deferred().always(function(){delete l.elem}),l=function(){if(i)return!1;var t=Xn||Kn(),n=Math.max(0,u.startTime+u.duration-t),r=n/u.duration||0,o=1-r,a=0,l=u.tweens.length;for(;l>a;a++)u.tweens[a].run(o);return s.notifyWith(e,[u,o,n]),1>o&&l?n:(s.resolveWith(e,[u]),!1)},u=s.promise({elem:e,props:x.extend({},t),opts:x.extend(!0,{specialEasing:{}},n),originalProperties:t,originalOptions:n,startTime:Xn||Kn(),duration:n.duration,tweens:[],createTween:function(t,n){var r=x.Tween(e,u.opts,t,n,u.opts.specialEasing[t]||u.opts.easing);return u.tweens.push(r),r},stop:function(t){var n=0,r=t?u.tweens.length:0;if(i)return this;for(i=!0;r>n;n++)u.tweens[n].run(1);return t?s.resolveWith(e,[u,t]):s.rejectWith(e,[u,t]),this}}),c=u.props;for(tr(c,u.opts.specialEasing);a>o;o++)if(r=Gn[o].call(u,e,c,u.opts))return r;return x.map(c,Zn,u),x.isFunction(u.opts.start)&&u.opts.start.call(e,u),x.fx.timer(x.extend(l,{elem:e,anim:u,queue:u.opts.queue})),u.progress(u.opts.progress).done(u.opts.done,u.opts.complete).fail(u.opts.fail).always(u.opts.always)}function tr(e,t){var n,r,i,o,a;for(n in e)if(r=x.camelCase(n),i=t[r],o=e[n],x.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),a=x.cssHooks[r],a&&"expand"in a){o=a.expand(o),delete e[r];for(n in o)n in e||(e[n]=o[n],t[n]=i)}else t[r]=i}x.Animation=x.extend(er,{tweener:function(e,t){x.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");var n,r=0,i=e.length;for(;i>r;r++)n=e[r],Qn[n]=Qn[n]||[],Qn[n].unshift(t)},prefilter:function(e,t){t?Gn.unshift(e):Gn.push(e)}});function nr(e,t,n){var r,i,o,a,s,l,u=this,c={},p=e.style,f=e.nodeType&&nn(e),d=x._data(e,"fxshow");n.queue||(s=x._queueHooks(e,"fx"),null==s.unqueued&&(s.unqueued=0,l=s.empty.fire,s.empty.fire=function(){s.unqueued||l()}),s.unqueued++,u.always(function(){u.always(function(){s.unqueued--,x.queue(e,"fx").length||s.empty.fire()})})),1===e.nodeType&&("height"in t||"width"in t)&&(n.overflow=[p.overflow,p.overflowX,p.overflowY],"inline"===x.css(e,"display")&&"none"===x.css(e,"float")&&(x.support.inlineBlockNeedsLayout&&"inline"!==ln(e.nodeName)?p.zoom=1:p.display="inline-block")),n.overflow&&(p.overflow="hidden",x.support.shrinkWrapBlocks||u.always(function(){p.overflow=n.overflow[0],p.overflowX=n.overflow[1],p.overflowY=n.overflow[2]}));for(r in t)if(i=t[r],Vn.exec(i)){if(delete t[r],o=o||"toggle"===i,i===(f?"hide":"show"))continue;c[r]=d&&d[r]||x.style(e,r)}if(!x.isEmptyObject(c)){d?"hidden"in d&&(f=d.hidden):d=x._data(e,"fxshow",{}),o&&(d.hidden=!f),f?x(e).show():u.done(function(){x(e).hide()}),u.done(function(){var t;x._removeData(e,"fxshow");for(t in c)x.style(e,t,c[t])});for(r in c)a=Zn(f?d[r]:0,r,u),r in d||(d[r]=a.start,f&&(a.end=a.start,a.start="width"===r||"height"===r?1:0))}}function rr(e,t,n,r,i){return new rr.prototype.init(e,t,n,r,i)}x.Tween=rr,rr.prototype={constructor:rr,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||"swing",this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(x.cssNumber[n]?"":"px")},cur:function(){var e=rr.propHooks[this.prop];return e&&e.get?e.get(this):rr.propHooks._default.get(this)},run:function(e){var t,n=rr.propHooks[this.prop];return this.pos=t=this.options.duration?x.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):rr.propHooks._default.set(this),this}},rr.prototype.init.prototype=rr.prototype,rr.propHooks={_default:{get:function(e){var t;return null==e.elem[e.prop]||e.elem.style&&null!=e.elem.style[e.prop]?(t=x.css(e.elem,e.prop,""),t&&"auto"!==t?t:0):e.elem[e.prop]},set:function(e){x.fx.step[e.prop]?x.fx.step[e.prop](e):e.elem.style&&(null!=e.elem.style[x.cssProps[e.prop]]||x.cssHooks[e.prop])?x.style(e.elem,e.prop,e.now+e.unit):e.elem[e.prop]=e.now}}},rr.propHooks.scrollTop=rr.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},x.each(["toggle","show","hide"],function(e,t){var n=x.fn[t];x.fn[t]=function(e,r,i){return null==e||"boolean"==typeof e?n.apply(this,arguments):this.animate(ir(t,!0),e,r,i)}}),x.fn.extend({fadeTo:function(e,t,n,r){return this.filter(nn).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=x.isEmptyObject(e),o=x.speed(t,n,r),a=function(){var t=er(this,x.extend({},e),o);(i||x._data(this,"finish"))&&t.stop(!0)};return a.finish=a,i||o.queue===!1?this.each(a):this.queue(o.queue,a)},stop:function(e,n,r){var i=function(e){var t=e.stop;delete e.stop,t(r)};return"string"!=typeof e&&(r=n,n=e,e=t),n&&e!==!1&&this.queue(e||"fx",[]),this.each(function(){var t=!0,n=null!=e&&e+"queueHooks",o=x.timers,a=x._data(this);if(n)a[n]&&a[n].stop&&i(a[n]);else for(n in a)a[n]&&a[n].stop&&Jn.test(n)&&i(a[n]);for(n=o.length;n--;)o[n].elem!==this||null!=e&&o[n].queue!==e||(o[n].anim.stop(r),t=!1,o.splice(n,1));(t||!r)&&x.dequeue(this,e)})},finish:function(e){return e!==!1&&(e=e||"fx"),this.each(function(){var t,n=x._data(this),r=n[e+"queue"],i=n[e+"queueHooks"],o=x.timers,a=r?r.length:0;for(n.finish=!0,x.queue(this,e,[]),i&&i.stop&&i.stop.call(this,!0),t=o.length;t--;)o[t].elem===this&&o[t].queue===e&&(o[t].anim.stop(!0),o.splice(t,1));for(t=0;a>t;t++)r[t]&&r[t].finish&&r[t].finish.call(this);delete n.finish})}});function ir(e,t){var n,r={height:e},i=0;for(t=t?1:0;4>i;i+=2-t)n=Zt[i],r["margin"+n]=r["padding"+n]=e;return t&&(r.opacity=r.width=e),r}x.each({slideDown:ir("show"),slideUp:ir("hide"),slideToggle:ir("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){x.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),x.speed=function(e,t,n){var r=e&&"object"==typeof e?x.extend({},e):{complete:n||!n&&t||x.isFunction(e)&&e,duration:e,easing:n&&t||t&&!x.isFunction(t)&&t};return r.duration=x.fx.off?0:"number"==typeof r.duration?r.duration:r.duration in x.fx.speeds?x.fx.speeds[r.duration]:x.fx.speeds._default,(null==r.queue||r.queue===!0)&&(r.queue="fx"),r.old=r.complete,r.complete=function(){x.isFunction(r.old)&&r.old.call(this),r.queue&&x.dequeue(this,r.queue)},r},x.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2}},x.timers=[],x.fx=rr.prototype.init,x.fx.tick=function(){var e,n=x.timers,r=0;for(Xn=x.now();n.length>r;r++)e=n[r],e()||n[r]!==e||n.splice(r--,1);n.length||x.fx.stop(),Xn=t},x.fx.timer=function(e){e()&&x.timers.push(e)&&x.fx.start()},x.fx.interval=13,x.fx.start=function(){Un||(Un=setInterval(x.fx.tick,x.fx.interval))},x.fx.stop=function(){clearInterval(Un),Un=null},x.fx.speeds={slow:600,fast:200,_default:400},x.fx.step={},x.expr&&x.expr.filters&&(x.expr.filters.animated=function(e){return x.grep(x.timers,function(t){return e===t.elem}).length}),x.fn.offset=function(e){if(arguments.length)return e===t?this:this.each(function(t){x.offset.setOffset(this,e,t)});var n,r,o={top:0,left:0},a=this[0],s=a&&a.ownerDocument;if(s)return n=s.documentElement,x.contains(n,a)?(typeof a.getBoundingClientRect!==i&&(o=a.getBoundingClientRect()),r=or(s),{top:o.top+(r.pageYOffset||n.scrollTop)-(n.clientTop||0),left:o.left+(r.pageXOffset||n.scrollLeft)-(n.clientLeft||0)}):o},x.offset={setOffset:function(e,t,n){var r=x.css(e,"position");"static"===r&&(e.style.position="relative");var i=x(e),o=i.offset(),a=x.css(e,"top"),s=x.css(e,"left"),l=("absolute"===r||"fixed"===r)&&x.inArray("auto",[a,s])>-1,u={},c={},p,f;l?(c=i.position(),p=c.top,f=c.left):(p=parseFloat(a)||0,f=parseFloat(s)||0),x.isFunction(t)&&(t=t.call(e,n,o)),null!=t.top&&(u.top=t.top-o.top+p),null!=t.left&&(u.left=t.left-o.left+f),"using"in t?t.using.call(e,u):i.css(u)}},x.fn.extend({position:function(){if(this[0]){var e,t,n={top:0,left:0},r=this[0];return"fixed"===x.css(r,"position")?t=r.getBoundingClientRect():(e=this.offsetParent(),t=this.offset(),x.nodeName(e[0],"html")||(n=e.offset()),n.top+=x.css(e[0],"borderTopWidth",!0),n.left+=x.css(e[0],"borderLeftWidth",!0)),{top:t.top-n.top-x.css(r,"marginTop",!0),left:t.left-n.left-x.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||s;while(e&&!x.nodeName(e,"html")&&"static"===x.css(e,"position"))e=e.offsetParent;return e||s})}}),x.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,n){var r=/Y/.test(n);x.fn[e]=function(i){return x.access(this,function(e,i,o){var a=or(e);return o===t?a?n in a?a[n]:a.document.documentElement[i]:e[i]:(a?a.scrollTo(r?x(a).scrollLeft():o,r?o:x(a).scrollTop()):e[i]=o,t)},e,i,arguments.length,null)}});function or(e){return x.isWindow(e)?e:9===e.nodeType?e.defaultView||e.parentWindow:!1}x.each({Height:"height",Width:"width"},function(e,n){x.each({padding:"inner"+e,content:n,"":"outer"+e},function(r,i){x.fn[i]=function(i,o){var a=arguments.length&&(r||"boolean"!=typeof i),s=r||(i===!0||o===!0?"margin":"border");return x.access(this,function(n,r,i){var o;return x.isWindow(n)?n.document.documentElement["client"+e]:9===n.nodeType?(o=n.documentElement,Math.max(n.body["scroll"+e],o["scroll"+e],n.body["offset"+e],o["offset"+e],o["client"+e])):i===t?x.css(n,r,s):x.style(n,r,i,s)},n,a?i:t,a,null)}})}),x.fn.size=function(){return this.length},x.fn.andSelf=x.fn.addBack,"object"==typeof module&&module&&"object"==typeof module.exports?module.exports=x:(e.jQuery=e.$=x,"function"==typeof define&&define.amd&&define("jquery",[],function(){return x}))})(window); \ No newline at end of file | ||
diff --git a/Blocks/life.html b/Blocks/life.html new file mode 100644 index 0000000..23a1324 --- /dev/null +++ b/Blocks/life.html | |||
@@ -0,0 +1,54 @@ | |||
1 | <!doctype html> | ||
2 | <html> | ||
3 | <head> | ||
4 | <meta charset="utf-8"> | ||
5 | <title>无标题文档</title> | ||
6 | <style type="text/css"> | ||
7 | body { | ||
8 | background-color: #E7E7E7; | ||
9 | } | ||
10 | .pp { | ||
11 | text-align:left; | ||
12 | } | ||
13 | .pp { | ||
14 | font-family: "微软雅黑"; | ||
15 | } | ||
16 | </style> | ||
17 | </head> | ||
18 | |||
19 | <body> | ||
20 | <div align="center"><img src="life/6597074164702513006.png" width="800" height="34"></div> | ||
21 | <p align="center"><img src="life/shming.png" width="282" height="167"></p> | ||
22 | <p align="center"><img src="life/148337312826694352.jpg" width="1024" height="683"></p> | ||
23 | <p> </p> | ||
24 | <p align="center"><img src="life/1713901133291362836.jpg" width="1024" height="683"></p> | ||
25 | <p> </p> | ||
26 | <p align="center"><img src="life/1903615267594677472.jpg" width="1024" height="683"></p> | ||
27 | <p> </p> | ||
28 | <p align="center"><img src="life/3374040545930946866.jpg" width="1024" height="683"></p> | ||
29 | <p> </p> | ||
30 | <p align="center"><img src="life/gqj.png" width="1031" height="726"></p> | ||
31 | <p> </p> | ||
32 | <p class="pp"> <span class="pp"> 现在是2013年11月29日23:29</span></p> | ||
33 | <p class="pp"> 还记得所谓的玛雅世界末日吗?</p> | ||
34 | <p class="pp"> 已过去342天。</p> | ||
35 | <p class="pp"> 我们依然幸福地生活在这个世界上,趁我们还能去爱,还能去闯,放开自己的心,大胆去爱,大胆去闯荡这个世界。去爱</p> | ||
36 | <p class="pp"> 你值得爱的人,为了自己的 梦想去努力,去</p> | ||
37 | <p class="pp"></p> | ||
38 | <p class="pp"> 为了做这一系列的网页,前前后后拉开了很长的时间线。到现在算是一个阶段了吧。学到了很多知识,得到了很多不一样的</p> | ||
39 | <p class="pp"> 收获。我的语言始终是苍白无力的,在所有美好的事物和感动面前,文字也无法承载更多。只有心中的体会吧。</p> | ||
40 | |||
41 | <p class="pp"> 我们都是幸福的孩子。</p> | ||
42 | <p class="pp"> </p> | ||
43 | <p class="pp"> 珍惜。</p> | ||
44 | <p class="pp"> </p> | ||
45 | <p class="pp"> ——Jinwei</p> | ||
46 | |||
47 | <!-- jinwei.me Baidu tongji analytics --> | ||
48 | <script type="text/javascript"> | ||
49 | var _bdhmProtocol = (("https:" == document.location.protocol) ? " https://" : " http://"); | ||
50 | document.write(unescape("%3Cscript src='" + _bdhmProtocol + "hm.baidu.com/h.js%3F91918ac6d6854623883a2b546ebc00ac' type='text/javascript'%3E%3C/script%3E")); | ||
51 | </script> | ||
52 | |||
53 | </body> | ||
54 | </html> | ||
diff --git a/Blocks/life/148337312826694352.jpg b/Blocks/life/148337312826694352.jpg new file mode 100644 index 0000000..3dfbeec --- /dev/null +++ b/Blocks/life/148337312826694352.jpg | |||
Binary files differ | |||
diff --git a/Blocks/life/1713901133291362836.jpg b/Blocks/life/1713901133291362836.jpg new file mode 100644 index 0000000..889cb42 --- /dev/null +++ b/Blocks/life/1713901133291362836.jpg | |||
Binary files differ | |||
diff --git a/Blocks/life/1903615267594677472.jpg b/Blocks/life/1903615267594677472.jpg new file mode 100644 index 0000000..d88394c --- /dev/null +++ b/Blocks/life/1903615267594677472.jpg | |||
Binary files differ | |||
diff --git a/Blocks/life/2041819481159275260.jpg b/Blocks/life/2041819481159275260.jpg new file mode 100644 index 0000000..639ed66 --- /dev/null +++ b/Blocks/life/2041819481159275260.jpg | |||
Binary files differ | |||
diff --git a/Blocks/life/3014878475648013989.jpg b/Blocks/life/3014878475648013989.jpg new file mode 100644 index 0000000..d94796a --- /dev/null +++ b/Blocks/life/3014878475648013989.jpg | |||
Binary files differ | |||
diff --git a/Blocks/life/3374040545930946866.jpg b/Blocks/life/3374040545930946866.jpg new file mode 100644 index 0000000..afc5569 --- /dev/null +++ b/Blocks/life/3374040545930946866.jpg | |||
Binary files differ | |||
diff --git a/Blocks/life/3911939226425011954.jpg b/Blocks/life/3911939226425011954.jpg new file mode 100644 index 0000000..8842ec2 --- /dev/null +++ b/Blocks/life/3911939226425011954.jpg | |||
Binary files differ | |||
diff --git a/Blocks/life/6597074164702513006.png b/Blocks/life/6597074164702513006.png new file mode 100644 index 0000000..4e9e1e2 --- /dev/null +++ b/Blocks/life/6597074164702513006.png | |||
Binary files differ | |||
diff --git a/Blocks/life/6597305062146155801.jpg b/Blocks/life/6597305062146155801.jpg new file mode 100644 index 0000000..b60c6f3 --- /dev/null +++ b/Blocks/life/6597305062146155801.jpg | |||
Binary files differ | |||
diff --git a/Blocks/life/6598086814913787340.jpg b/Blocks/life/6598086814913787340.jpg new file mode 100644 index 0000000..66168a1 --- /dev/null +++ b/Blocks/life/6598086814913787340.jpg | |||
Binary files differ | |||
diff --git a/Blocks/life/6598256139704465765.jpg b/Blocks/life/6598256139704465765.jpg new file mode 100644 index 0000000..69c1d56 --- /dev/null +++ b/Blocks/life/6598256139704465765.jpg | |||
Binary files differ | |||
diff --git a/Blocks/life/gqj.png b/Blocks/life/gqj.png new file mode 100644 index 0000000..fabb4ea --- /dev/null +++ b/Blocks/life/gqj.png | |||
Binary files differ | |||
diff --git a/Blocks/life/icon.jpg b/Blocks/life/icon.jpg new file mode 100644 index 0000000..4ca5e23 --- /dev/null +++ b/Blocks/life/icon.jpg | |||
Binary files differ | |||
diff --git a/Blocks/life/shming.png b/Blocks/life/shming.png new file mode 100644 index 0000000..7618553 --- /dev/null +++ b/Blocks/life/shming.png | |||
Binary files differ | |||
diff --git a/Blocks/main.css b/Blocks/main.css new file mode 100644 index 0000000..367da59 --- /dev/null +++ b/Blocks/main.css | |||
@@ -0,0 +1,163 @@ | |||
1 | @font-face { | ||
2 | font-family: Penumbra; | ||
3 | src: url(./PenumbraSansStd-Semibold.otf); | ||
4 | } | ||
5 | @-webkit-keyframes fade { | ||
6 | 0% { | ||
7 | opacity: 0; | ||
8 | margin-top: 10px; | ||
9 | } | ||
10 | 100% { | ||
11 | opacity: 1; | ||
12 | margin-top: 0px; | ||
13 | } | ||
14 | } | ||
15 | |||
16 | * { | ||
17 | margin: 0px; | ||
18 | padding: 0px; | ||
19 | } | ||
20 | |||
21 | body { | ||
22 | font-family: Penumbra, HiraginoSansGB-W3, sans-serif; | ||
23 | background: url(./bg.jpg) top center; | ||
24 | background-size: cover; | ||
25 | } | ||
26 | h1 { | ||
27 | font-size: 22px; | ||
28 | line-height: 40px; | ||
29 | |||
30 | -webkit-transition: padding 100ms ease; | ||
31 | } | ||
32 | p { | ||
33 | font-size: 20px; | ||
34 | line-height: 40px; | ||
35 | } | ||
36 | img { | ||
37 | width: 80px; | ||
38 | height: 80px; | ||
39 | padding: 10px; | ||
40 | |||
41 | -webkit-transition: margin 1000ms ease; | ||
42 | } | ||
43 | span#loveu { | ||
44 | font-size: 17px; | ||
45 | line-height: 40px; | ||
46 | font:"Microsoft Ya Hei"; | ||
47 | } | ||
48 | div#card { | ||
49 | position: absolute; | ||
50 | width: 600px; | ||
51 | height: 400px; | ||
52 | top: 50%; | ||
53 | left: 50%; | ||
54 | margin-top: -200px; | ||
55 | margin-left: -300px; | ||
56 | box-shadow: 0px 5px 20px -5px black; | ||
57 | background: black; | ||
58 | font:"Microsoft Yi Baiti", Roboto, "华文行楷"; | ||
59 | } | ||
60 | |||
61 | div.block { | ||
62 | position: relative; | ||
63 | width: 200px; | ||
64 | height: 200px; | ||
65 | float: left; | ||
66 | background: url(./texture.png); | ||
67 | box-shadow: inset 0px -2px 2px rgba(0,0,0,0.2); | ||
68 | text-align: center; | ||
69 | color: white; | ||
70 | overflow: hidden; | ||
71 | |||
72 | -webkit-transition: opacity 145s ease; | ||
73 | } | ||
74 | div.block:hover > .divin img { | ||
75 | margin-top: -20px; | ||
76 | } | ||
77 | div.block:hover > .divin h1 { | ||
78 | padding-top: 20px; | ||
79 | } | ||
80 | div.block:hover > .divin { | ||
81 | margin-top: -100px; | ||
82 | } | ||
83 | div.block:hover > .time5 { | ||
84 | margin-top: -110px; | ||
85 | } | ||
86 | div.block:hover > .inbox { | ||
87 | -webkit-animation: fade 500ms ease 200ms both; | ||
88 | } | ||
89 | div.divin { | ||
90 | width: 100px; | ||
91 | height: 140px; | ||
92 | padding: 30px 50px; | ||
93 | -webkit-transition: margin 300ms ease; | ||
94 | } | ||
95 | div.inbox { | ||
96 | width: 150px; | ||
97 | padding: 0px 25px; | ||
98 | } | ||
99 | div.time { | ||
100 | width: 175px; | ||
101 | margin: 0px auto; | ||
102 | padding: 0px; | ||
103 | height: 100px; | ||
104 | padding: 10px 12.5px 0px; | ||
105 | background: rgba(0,0,0,0.1); | ||
106 | box-shadow: inset 0px 0px 20px rgba(0,0,0,0.1); | ||
107 | } | ||
108 | div.time li.list { | ||
109 | list-style: none; | ||
110 | position: relative; | ||
111 | float: left; | ||
112 | width: 25px; | ||
113 | height: 50px; | ||
114 | margin: 0px 0px 10px 0px; | ||
115 | font-size: 12px; | ||
116 | -webkit-transition: 200ms ease; | ||
117 | } | ||
118 | div.time li.list:hover { | ||
119 | color: yellow; | ||
120 | -webkit-transform: scale(1.1); | ||
121 | } | ||
122 | |||
123 | div#b1 { | ||
124 | background-color: #2CC0E2; | ||
125 | } | ||
126 | div#b2 { | ||
127 | background-color: #59D999; | ||
128 | } | ||
129 | div#b3 { | ||
130 | background-color: #7658F9; | ||
131 | } | ||
132 | div#b4 { | ||
133 | background-color: #E9C24E; | ||
134 | } | ||
135 | div#b5 { | ||
136 | background-color: #E55679; | ||
137 | } | ||
138 | div#b6 { | ||
139 | background-color: grey; | ||
140 | } | ||
141 | span.last { | ||
142 | position: absolute; | ||
143 | font-size: 72px; | ||
144 | line-height: 200px; | ||
145 | width: 200px; | ||
146 | height: 200px; | ||
147 | left: 0px; | ||
148 | top: 0px; | ||
149 | |||
150 | -webkit-transition: opacity 200ms ease; | ||
151 | } | ||
152 | span#u { | ||
153 | } | ||
154 | span#real { | ||
155 | position: absolute; | ||
156 | opacity: 0; | ||
157 | } | ||
158 | div#b6:hover #u { | ||
159 | opacity: 0; | ||
160 | } | ||
161 | div#b6:hover #real { | ||
162 | opacity: 1; | ||
163 | } \ No newline at end of file | ||
diff --git a/Blocks/main.js b/Blocks/main.js new file mode 100644 index 0000000..af75cf7 --- /dev/null +++ b/Blocks/main.js | |||
@@ -0,0 +1,21 @@ | |||
1 | var myName = "@spearmint"; | ||
2 | |||
3 | var red = [0, 100, 63]; | ||
4 | var orange = [40, 100, 60]; | ||
5 | var green = [75, 100, 40]; | ||
6 | var blue = [196, 77, 55]; | ||
7 | var purple = [280, 50, 60]; | ||
8 | var letterColors = [red, orange, green, blue, purple]; | ||
9 | |||
10 | drawName(myName, letterColors); | ||
11 | |||
12 | if(10 < 3) | ||
13 | { | ||
14 | bubbleShape = 'square'; | ||
15 | } | ||
16 | else | ||
17 | { | ||
18 | bubbleShape = 'circle'; | ||
19 | } | ||
20 | |||
21 | bounceBubbles(); \ No newline at end of file | ||
diff --git a/Blocks/pics/2012_03.jpg b/Blocks/pics/2012_03.jpg new file mode 100644 index 0000000..3bfc81a --- /dev/null +++ b/Blocks/pics/2012_03.jpg | |||
Binary files differ | |||
diff --git a/Blocks/pics/20130228192941_rm3ky.jpg b/Blocks/pics/20130228192941_rm3ky.jpg new file mode 100644 index 0000000..fd39ce9 --- /dev/null +++ b/Blocks/pics/20130228192941_rm3ky.jpg | |||
Binary files differ | |||
diff --git a/Blocks/pics/QQ截图20131123002119.png b/Blocks/pics/QQ截图20131123002119.png new file mode 100644 index 0000000..2615b2a --- /dev/null +++ b/Blocks/pics/QQ截图20131123002119.png | |||
Binary files differ | |||
diff --git a/Blocks/pics/QQ截图20131123002203.png b/Blocks/pics/QQ截图20131123002203.png new file mode 100644 index 0000000..d02c4c7 --- /dev/null +++ b/Blocks/pics/QQ截图20131123002203.png | |||
Binary files differ | |||
diff --git a/Blocks/pics/QQ截图20131123002213.png b/Blocks/pics/QQ截图20131123002213.png new file mode 100644 index 0000000..93c7cd2 --- /dev/null +++ b/Blocks/pics/QQ截图20131123002213.png | |||
Binary files differ | |||
diff --git a/Blocks/pics/siteinfo.png b/Blocks/pics/siteinfo.png new file mode 100644 index 0000000..5240289 --- /dev/null +++ b/Blocks/pics/siteinfo.png | |||
Binary files differ | |||
diff --git a/Blocks/post/index.html b/Blocks/post/index.html new file mode 100644 index 0000000..8a8b491 --- /dev/null +++ b/Blocks/post/index.html | |||
@@ -0,0 +1,33 @@ | |||
1 | <!DOCTYPE html> | ||
2 | <html> | ||
3 | <head> | ||
4 | <title>Happy Holidays!</title> | ||
5 | <link rel="stylesheet" href="style.css" type="text/css"> | ||
6 | <script src="jquery.min.js"></script> | ||
7 | <script src="snowfall.min.js"></script> | ||
8 | <script src="script.js"></script> | ||
9 | </head> | ||
10 | <body> | ||
11 | |||
12 | <!-- Add your heading below this line --> | ||
13 | |||
14 | <section> | ||
15 | <h1>Happy New Year</h1> | ||
16 | <h2>To You,Tiga<br>--Jinwei</h2> | ||
17 | <div class="imageblock"> </div> | ||
18 | </section> | ||
19 | |||
20 | <!-- I'm a comment! You won't see me on the page! --> | ||
21 | <!-- | ||
22 | /* Image CC Some rights reserved by Alan Klim - http://www.flickr.com/photos/igraph/8329238413/sizes/l/ */ | ||
23 | --> | ||
24 | |||
25 | <!-- jinwei.me Baidu tongji analytics --> | ||
26 | <script type="text/javascript"> | ||
27 | var _bdhmProtocol = (("https:" == document.location.protocol) ? " https://" : " http://"); | ||
28 | document.write(unescape("%3Cscript src='" + _bdhmProtocol + "hm.baidu.com/h.js%3F91918ac6d6854623883a2b546ebc00ac' type='text/javascript'%3E%3C/script%3E")); | ||
29 | </script> | ||
30 | |||
31 | </body> | ||
32 | |||
33 | </html> | ||
diff --git a/Blocks/post/jquery.min.js b/Blocks/post/jquery.min.js new file mode 100644 index 0000000..3883779 --- /dev/null +++ b/Blocks/post/jquery.min.js | |||
@@ -0,0 +1,2 @@ | |||
1 | /*! jQuery v1.8.3 jquery.com | jquery.org/license */ | ||
2 | (function(e,t){function _(e){var t=M[e]={};return v.each(e.split(y),function(e,n){t[n]=!0}),t}function H(e,n,r){if(r===t&&e.nodeType===1){var i="data-"+n.replace(P,"-$1").toLowerCase();r=e.getAttribute(i);if(typeof r=="string"){try{r=r==="true"?!0:r==="false"?!1:r==="null"?null:+r+""===r?+r:D.test(r)?v.parseJSON(r):r}catch(s){}v.data(e,n,r)}else r=t}return r}function B(e){var t;for(t in e){if(t==="data"&&v.isEmptyObject(e[t]))continue;if(t!=="toJSON")return!1}return!0}function et(){return!1}function tt(){return!0}function ut(e){return!e||!e.parentNode||e.parentNode.nodeType===11}function at(e,t){do e=e[t];while(e&&e.nodeType!==1);return e}function ft(e,t,n){t=t||0;if(v.isFunction(t))return v.grep(e,function(e,r){var i=!!t.call(e,r,e);return i===n});if(t.nodeType)return v.grep(e,function(e,r){return e===t===n});if(typeof t=="string"){var r=v.grep(e,function(e){return e.nodeType===1});if(it.test(t))return v.filter(t,r,!n);t=v.filter(t,r)}return v.grep(e,function(e,r){return v.inArray(e,t)>=0===n})}function lt(e){var t=ct.split("|"),n=e.createDocumentFragment();if(n.createElement)while(t.length)n.createElement(t.pop());return n}function Lt(e,t){return e.getElementsByTagName(t)[0]||e.appendChild(e.ownerDocument.createElement(t))}function At(e,t){if(t.nodeType!==1||!v.hasData(e))return;var n,r,i,s=v._data(e),o=v._data(t,s),u=s.events;if(u){delete o.handle,o.events={};for(n in u)for(r=0,i=u[n].length;r<i;r++)v.event.add(t,n,u[n][r])}o.data&&(o.data=v.extend({},o.data))}function Ot(e,t){var n;if(t.nodeType!==1)return;t.clearAttributes&&t.clearAttributes(),t.mergeAttributes&&t.mergeAttributes(e),n=t.nodeName.toLowerCase(),n==="object"?(t.parentNode&&(t.outerHTML=e.outerHTML),v.support.html5Clone&&e.innerHTML&&!v.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML)):n==="input"&&Et.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):n==="option"?t.selected=e.defaultSelected:n==="input"||n==="textarea"?t.defaultValue=e.defaultValue:n==="script"&&t.text!==e.text&&(t.text=e.text),t.removeAttribute(v.expando)}function Mt(e){return typeof e.getElementsByTagName!="undefined"?e.getElementsByTagName("*"):typeof e.querySelectorAll!="undefined"?e.querySelectorAll("*"):[]}function _t(e){Et.test(e.type)&&(e.defaultChecked=e.checked)}function Qt(e,t){if(t in e)return t;var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=Jt.length;while(i--){t=Jt[i]+n;if(t in e)return t}return r}function Gt(e,t){return e=t||e,v.css(e,"display")==="none"||!v.contains(e.ownerDocument,e)}function Yt(e,t){var n,r,i=[],s=0,o=e.length;for(;s<o;s++){n=e[s];if(!n.style)continue;i[s]=v._data(n,"olddisplay"),t?(!i[s]&&n.style.display==="none"&&(n.style.display=""),n.style.display===""&&Gt(n)&&(i[s]=v._data(n,"olddisplay",nn(n.nodeName)))):(r=Dt(n,"display"),!i[s]&&r!=="none"&&v._data(n,"olddisplay",r))}for(s=0;s<o;s++){n=e[s];if(!n.style)continue;if(!t||n.style.display==="none"||n.style.display==="")n.style.display=t?i[s]||"":"none"}return e}function Zt(e,t,n){var r=Rt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function en(e,t,n,r){var i=n===(r?"border":"content")?4:t==="width"?1:0,s=0;for(;i<4;i+=2)n==="margin"&&(s+=v.css(e,n+$t[i],!0)),r?(n==="content"&&(s-=parseFloat(Dt(e,"padding"+$t[i]))||0),n!=="margin"&&(s-=parseFloat(Dt(e,"border"+$t[i]+"Width"))||0)):(s+=parseFloat(Dt(e,"padding"+$t[i]))||0,n!=="padding"&&(s+=parseFloat(Dt(e,"border"+$t[i]+"Width"))||0));return s}function tn(e,t,n){var r=t==="width"?e.offsetWidth:e.offsetHeight,i=!0,s=v.support.boxSizing&&v.css(e,"boxSizing")==="border-box";if(r<=0||r==null){r=Dt(e,t);if(r<0||r==null)r=e.style[t];if(Ut.test(r))return r;i=s&&(v.support.boxSizingReliable||r===e.style[t]),r=parseFloat(r)||0}return r+en(e,t,n||(s?"border":"content"),i)+"px"}function nn(e){if(Wt[e])return Wt[e];var t=v("<"+e+">").appendTo(i.body),n=t.css("display");t.remove();if(n==="none"||n===""){Pt=i.body.appendChild(Pt||v.extend(i.createElement("iframe"),{frameBorder:0,width:0,height:0}));if(!Ht||!Pt.createElement)Ht=(Pt.contentWindow||Pt.contentDocument).document,Ht.write("<!doctype html><html><body>"),Ht.close();t=Ht.body.appendChild(Ht.createElement(e)),n=Dt(t,"display"),i.body.removeChild(Pt)}return Wt[e]=n,n}function fn(e,t,n,r){var i;if(v.isArray(t))v.each(t,function(t,i){n||sn.test(e)?r(e,i):fn(e+"["+(typeof i=="object"?t:"")+"]",i,n,r)});else if(!n&&v.type(t)==="object")for(i in t)fn(e+"["+i+"]",t[i],n,r);else r(e,t)}function Cn(e){return function(t,n){typeof t!="string"&&(n=t,t="*");var r,i,s,o=t.toLowerCase().split(y),u=0,a=o.length;if(v.isFunction(n))for(;u<a;u++)r=o[u],s=/^\+/.test(r),s&&(r=r.substr(1)||"*"),i=e[r]=e[r]||[],i[s?"unshift":"push"](n)}}function kn(e,n,r,i,s,o){s=s||n.dataTypes[0],o=o||{},o[s]=!0;var u,a=e[s],f=0,l=a?a.length:0,c=e===Sn;for(;f<l&&(c||!u);f++)u=a[f](n,r,i),typeof u=="string"&&(!c||o[u]?u=t:(n.dataTypes.unshift(u),u=kn(e,n,r,i,u,o)));return(c||!u)&&!o["*"]&&(u=kn(e,n,r,i,"*",o)),u}function Ln(e,n){var r,i,s=v.ajaxSettings.flatOptions||{};for(r in n)n[r]!==t&&((s[r]?e:i||(i={}))[r]=n[r]);i&&v.extend(!0,e,i)}function An(e,n,r){var i,s,o,u,a=e.contents,f=e.dataTypes,l=e.responseFields;for(s in l)s in r&&(n[l[s]]=r[s]);while(f[0]==="*")f.shift(),i===t&&(i=e.mimeType||n.getResponseHeader("content-type"));if(i)for(s in a)if(a[s]&&a[s].test(i)){f.unshift(s);break}if(f[0]in r)o=f[0];else{for(s in r){if(!f[0]||e.converters[s+" "+f[0]]){o=s;break}u||(u=s)}o=o||u}if(o)return o!==f[0]&&f.unshift(o),r[o]}function On(e,t){var n,r,i,s,o=e.dataTypes.slice(),u=o[0],a={},f=0;e.dataFilter&&(t=e.dataFilter(t,e.dataType));if(o[1])for(n in e.converters)a[n.toLowerCase()]=e.converters[n];for(;i=o[++f];)if(i!=="*"){if(u!=="*"&&u!==i){n=a[u+" "+i]||a["* "+i];if(!n)for(r in a){s=r.split(" ");if(s[1]===i){n=a[u+" "+s[0]]||a["* "+s[0]];if(n){n===!0?n=a[r]:a[r]!==!0&&(i=s[0],o.splice(f--,0,i));break}}}if(n!==!0)if(n&&e["throws"])t=n(t);else try{t=n(t)}catch(l){return{state:"parsererror",error:n?l:"No conversion from "+u+" to "+i}}}u=i}return{state:"success",data:t}}function Fn(){try{return new e.XMLHttpRequest}catch(t){}}function In(){try{return new e.ActiveXObject("Microsoft.XMLHTTP")}catch(t){}}function $n(){return setTimeout(function(){qn=t},0),qn=v.now()}function Jn(e,t){v.each(t,function(t,n){var r=(Vn[t]||[]).concat(Vn["*"]),i=0,s=r.length;for(;i<s;i++)if(r[i].call(e,t,n))return})}function Kn(e,t,n){var r,i=0,s=0,o=Xn.length,u=v.Deferred().always(function(){delete a.elem}),a=function(){var t=qn||$n(),n=Math.max(0,f.startTime+f.duration-t),r=n/f.duration||0,i=1-r,s=0,o=f.tweens.length;for(;s<o;s++)f.tweens[s].run(i);return u.notifyWith(e,[f,i,n]),i<1&&o?n:(u.resolveWith(e,[f]),!1)},f=u.promise({elem:e,props:v.extend({},t),opts:v.extend(!0,{specialEasing:{}},n),originalProperties:t,originalOptions:n,startTime:qn||$n(),duration:n.duration,tweens:[],createTween:function(t,n,r){var i=v.Tween(e,f.opts,t,n,f.opts.specialEasing[t]||f.opts.easing);return f.tweens.push(i),i},stop:function(t){var n=0,r=t?f.tweens.length:0;for(;n<r;n++)f.tweens[n].run(1);return t?u.resolveWith(e,[f,t]):u.rejectWith(e,[f,t]),this}}),l=f.props;Qn(l,f.opts.specialEasing);for(;i<o;i++){r=Xn[i].call(f,e,l,f.opts);if(r)return r}return Jn(f,l),v.isFunction(f.opts.start)&&f.opts.start.call(e,f),v.fx.timer(v.extend(a,{anim:f,queue:f.opts.queue,elem:e})),f.progress(f.opts.progress).done(f.opts.done,f.opts.complete).fail(f.opts.fail).always(f.opts.always)}function Qn(e,t){var n,r,i,s,o;for(n in e){r=v.camelCase(n),i=t[r],s=e[n],v.isArray(s)&&(i=s[1],s=e[n]=s[0]),n!==r&&(e[r]=s,delete e[n]),o=v.cssHooks[r];if(o&&"expand"in o){s=o.expand(s),delete e[r];for(n in s)n in e||(e[n]=s[n],t[n]=i)}else t[r]=i}}function Gn(e,t,n){var r,i,s,o,u,a,f,l,c,h=this,p=e.style,d={},m=[],g=e.nodeType&&Gt(e);n.queue||(l=v._queueHooks(e,"fx"),l.unqueued==null&&(l.unqueued=0,c=l.empty.fire,l.empty.fire=function(){l.unqueued||c()}),l.unqueued++,h.always(function(){h.always(function(){l.unqueued--,v.queue(e,"fx").length||l.empty.fire()})})),e.nodeType===1&&("height"in t||"width"in t)&&(n.overflow=[p.overflow,p.overflowX,p.overflowY],v.css(e,"display")==="inline"&&v.css(e,"float")==="none"&&(!v.support.inlineBlockNeedsLayout||nn(e.nodeName)==="inline"?p.display="inline-block":p.zoom=1)),n.overflow&&(p.overflow="hidden",v.support.shrinkWrapBlocks||h.done(function(){p.overflow=n.overflow[0],p.overflowX=n.overflow[1],p.overflowY=n.overflow[2]}));for(r in t){s=t[r];if(Un.exec(s)){delete t[r],a=a||s==="toggle";if(s===(g?"hide":"show"))continue;m.push(r)}}o=m.length;if(o){u=v._data(e,"fxshow")||v._data(e,"fxshow",{}),"hidden"in u&&(g=u.hidden),a&&(u.hidden=!g),g?v(e).show():h.done(function(){v(e).hide()}),h.done(function(){var t;v.removeData(e,"fxshow",!0);for(t in d)v.style(e,t,d[t])});for(r=0;r<o;r++)i=m[r],f=h.createTween(i,g?u[i]:0),d[i]=u[i]||v.style(e,i),i in u||(u[i]=f.start,g&&(f.end=f.start,f.start=i==="width"||i==="height"?1:0))}}function Yn(e,t,n,r,i){return new Yn.prototype.init(e,t,n,r,i)}function Zn(e,t){var n,r={height:e},i=0;t=t?1:0;for(;i<4;i+=2-t)n=$t[i],r["margin"+n]=r["padding"+n]=e;return t&&(r.opacity=r.width=e),r}function tr(e){return v.isWindow(e)?e:e.nodeType===9?e.defaultView||e.parentWindow:!1}var n,r,i=e.document,s=e.location,o=e.navigator,u=e.jQuery,a=e.$,f=Array.prototype.push,l=Array.prototype.slice,c=Array.prototype.indexOf,h=Object.prototype.toString,p=Object.prototype.hasOwnProperty,d=String.prototype.trim,v=function(e,t){return new v.fn.init(e,t,n)},m=/[\-+]?(?:\d*\.|)\d+(?:[eE][\-+]?\d+|)/.source,g=/\S/,y=/\s+/,b=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,w=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,E=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,S=/^[\],:{}\s]*$/,x=/(?:^|:|,)(?:\s*\[)+/g,T=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,N=/"[^"\\\r\n]*"|true|false|null|-?(?:\d\d*\.|)\d+(?:[eE][\-+]?\d+|)/g,C=/^-ms-/,k=/-([\da-z])/gi,L=function(e,t){return(t+"").toUpperCase()},A=function(){i.addEventListener?(i.removeEventListener("DOMContentLoaded",A,!1),v.ready()):i.readyState==="complete"&&(i.detachEvent("onreadystatechange",A),v.ready())},O={};v.fn=v.prototype={constructor:v,init:function(e,n,r){var s,o,u,a;if(!e)return this;if(e.nodeType)return this.context=this[0]=e,this.length=1,this;if(typeof e=="string"){e.charAt(0)==="<"&&e.charAt(e.length-1)===">"&&e.length>=3?s=[null,e,null]:s=w.exec(e);if(s&&(s[1]||!n)){if(s[1])return n=n instanceof v?n[0]:n,a=n&&n.nodeType?n.ownerDocument||n:i,e=v.parseHTML(s[1],a,!0),E.test(s[1])&&v.isPlainObject(n)&&this.attr.call(e,n,!0),v.merge(this,e);o=i.getElementById(s[2]);if(o&&o.parentNode){if(o.id!==s[2])return r.find(e);this.length=1,this[0]=o}return this.context=i,this.selector=e,this}return!n||n.jquery?(n||r).find(e):this.constructor(n).find(e)}return v.isFunction(e)?r.ready(e):(e.selector!==t&&(this.selector=e.selector,this.context=e.context),v.makeArray(e,this))},selector:"",jquery:"1.8.3",length:0,size:function(){return this.length},toArray:function(){return l.call(this)},get:function(e){return e==null?this.toArray():e<0?this[this.length+e]:this[e]},pushStack:function(e,t,n){var r=v.merge(this.constructor(),e);return r.prevObject=this,r.context=this.context,t==="find"?r.selector=this.selector+(this.selector?" ":"")+n:t&&(r.selector=this.selector+"."+t+"("+n+")"),r},each:function(e,t){return v.each(this,e,t)},ready:function(e){return v.ready.promise().done(e),this},eq:function(e){return e=+e,e===-1?this.slice(e):this.slice(e,e+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(l.apply(this,arguments),"slice",l.call(arguments).join(","))},map:function(e){return this.pushStack(v.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:[].sort,splice:[].splice},v.fn.init.prototype=v.fn,v.extend=v.fn.extend=function(){var e,n,r,i,s,o,u=arguments[0]||{},a=1,f=arguments.length,l=!1;typeof u=="boolean"&&(l=u,u=arguments[1]||{},a=2),typeof u!="object"&&!v.isFunction(u)&&(u={}),f===a&&(u=this,--a);for(;a<f;a++)if((e=arguments[a])!=null)for(n in e){r=u[n],i=e[n];if(u===i)continue;l&&i&&(v.isPlainObject(i)||(s=v.isArray(i)))?(s?(s=!1,o=r&&v.isArray(r)?r:[]):o=r&&v.isPlainObject(r)?r:{},u[n]=v.extend(l,o,i)):i!==t&&(u[n]=i)}return u},v.extend({noConflict:function(t){return e.$===v&&(e.$=a),t&&e.jQuery===v&&(e.jQuery=u),v},isReady:!1,readyWait:1,holdReady:function(e){e?v.readyWait++:v.ready(!0)},ready:function(e){if(e===!0?--v.readyWait:v.isReady)return;if(!i.body)return setTimeout(v.ready,1);v.isReady=!0;if(e!==!0&&--v.readyWait>0)return;r.resolveWith(i,[v]),v.fn.trigger&&v(i).trigger("ready").off("ready")},isFunction:function(e){return v.type(e)==="function"},isArray:Array.isArray||function(e){return v.type(e)==="array"},isWindow:function(e){return e!=null&&e==e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return e==null?String(e):O[h.call(e)]||"object"},isPlainObject:function(e){if(!e||v.type(e)!=="object"||e.nodeType||v.isWindow(e))return!1;try{if(e.constructor&&!p.call(e,"constructor")&&!p.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(n){return!1}var r;for(r in e);return r===t||p.call(e,r)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw new Error(e)},parseHTML:function(e,t,n){var r;return!e||typeof e!="string"?null:(typeof t=="boolean"&&(n=t,t=0),t=t||i,(r=E.exec(e))?[t.createElement(r[1])]:(r=v.buildFragment([e],t,n?null:[]),v.merge([],(r.cacheable?v.clone(r.fragment):r.fragment).childNodes)))},parseJSON:function(t){if(!t||typeof t!="string")return null;t=v.trim(t);if(e.JSON&&e.JSON.parse)return e.JSON.parse(t);if(S.test(t.replace(T,"@").replace(N,"]").replace(x,"")))return(new Function("return "+t))();v.error("Invalid JSON: "+t)},parseXML:function(n){var r,i;if(!n||typeof n!="string")return null;try{e.DOMParser?(i=new DOMParser,r=i.parseFromString(n,"text/xml")):(r=new ActiveXObject("Microsoft.XMLDOM"),r.async="false",r.loadXML(n))}catch(s){r=t}return(!r||!r.documentElement||r.getElementsByTagName("parsererror").length)&&v.error("Invalid XML: "+n),r},noop:function(){},globalEval:function(t){t&&g.test(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(C,"ms-").replace(k,L)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,n,r){var i,s=0,o=e.length,u=o===t||v.isFunction(e);if(r){if(u){for(i in e)if(n.apply(e[i],r)===!1)break}else for(;s<o;)if(n.apply(e[s++],r)===!1)break}else if(u){for(i in e)if(n.call(e[i],i,e[i])===!1)break}else for(;s<o;)if(n.call(e[s],s,e[s++])===!1)break;return e},trim:d&&!d.call("\ufeff\u00a0")?function(e){return e==null?"":d.call(e)}:function(e){return e==null?"":(e+"").replace(b,"")},makeArray:function(e,t){var n,r=t||[];return e!=null&&(n=v.type(e),e.length==null||n==="string"||n==="function"||n==="regexp"||v.isWindow(e)?f.call(r,e):v.merge(r,e)),r},inArray:function(e,t,n){var r;if(t){if(c)return c.call(t,e,n);r=t.length,n=n?n<0?Math.max(0,r+n):n:0;for(;n<r;n++)if(n in t&&t[n]===e)return n}return-1},merge:function(e,n){var r=n.length,i=e.length,s=0;if(typeof r=="number")for(;s<r;s++)e[i++]=n[s];else while(n[s]!==t)e[i++]=n[s++];return e.length=i,e},grep:function(e,t,n){var r,i=[],s=0,o=e.length;n=!!n;for(;s<o;s++)r=!!t(e[s],s),n!==r&&i.push(e[s]);return i},map:function(e,n,r){var i,s,o=[],u=0,a=e.length,f=e instanceof v||a!==t&&typeof a=="number"&&(a>0&&e[0]&&e[a-1]||a===0||v.isArray(e));if(f)for(;u<a;u++)i=n(e[u],u,r),i!=null&&(o[o.length]=i);else for(s in e)i=n(e[s],s,r),i!=null&&(o[o.length]=i);return o.concat.apply([],o)},guid:1,proxy:function(e,n){var r,i,s;return typeof n=="string"&&(r=e[n],n=e,e=r),v.isFunction(e)?(i=l.call(arguments,2),s=function(){return e.apply(n,i.concat(l.call(arguments)))},s.guid=e.guid=e.guid||v.guid++,s):t},access:function(e,n,r,i,s,o,u){var a,f=r==null,l=0,c=e.length;if(r&&typeof r=="object"){for(l in r)v.access(e,n,l,r[l],1,o,i);s=1}else if(i!==t){a=u===t&&v.isFunction(i),f&&(a?(a=n,n=function(e,t,n){return a.call(v(e),n)}):(n.call(e,i),n=null));if(n)for(;l<c;l++)n(e[l],r,a?i.call(e[l],l,n(e[l],r)):i,u);s=1}return s?e:f?n.call(e):c?n(e[0],r):o},now:function(){return(new Date).getTime()}}),v.ready.promise=function(t){if(!r){r=v.Deferred();if(i.readyState==="complete")setTimeout(v.ready,1);else if(i.addEventListener)i.addEventListener("DOMContentLoaded",A,!1),e.addEventListener("load",v.ready,!1);else{i.attachEvent("onreadystatechange",A),e.attachEvent("onload",v.ready);var n=!1;try{n=e.frameElement==null&&i.documentElement}catch(s){}n&&n.doScroll&&function o(){if(!v.isReady){try{n.doScroll("left")}catch(e){return setTimeout(o,50)}v.ready()}}()}}return r.promise(t)},v.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(e,t){O["[object "+t+"]"]=t.toLowerCase()}),n=v(i);var M={};v.Callbacks=function(e){e=typeof e=="string"?M[e]||_(e):v.extend({},e);var n,r,i,s,o,u,a=[],f=!e.once&&[],l=function(t){n=e.memory&&t,r=!0,u=s||0,s=0,o=a.length,i=!0;for(;a&&u<o;u++)if(a[u].apply(t[0],t[1])===!1&&e.stopOnFalse){n=!1;break}i=!1,a&&(f?f.length&&l(f.shift()):n?a=[]:c.disable())},c={add:function(){if(a){var t=a.length;(function r(t){v.each(t,function(t,n){var i=v.type(n);i==="function"?(!e.unique||!c.has(n))&&a.push(n):n&&n.length&&i!=="string"&&r(n)})})(arguments),i?o=a.length:n&&(s=t,l(n))}return this},remove:function(){return a&&v.each(arguments,function(e,t){var n;while((n=v.inArray(t,a,n))>-1)a.splice(n,1),i&&(n<=o&&o--,n<=u&&u--)}),this},has:function(e){return v.inArray(e,a)>-1},empty:function(){return a=[],this},disable:function(){return a=f=n=t,this},disabled:function(){return!a},lock:function(){return f=t,n||c.disable(),this},locked:function(){return!f},fireWith:function(e,t){return t=t||[],t=[e,t.slice?t.slice():t],a&&(!r||f)&&(i?f.push(t):l(t)),this},fire:function(){return c.fireWith(this,arguments),this},fired:function(){return!!r}};return c},v.extend({Deferred:function(e){var t=[["resolve","done",v.Callbacks("once memory"),"resolved"],["reject","fail",v.Callbacks("once memory"),"rejected"],["notify","progress",v.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return v.Deferred(function(n){v.each(t,function(t,r){var s=r[0],o=e[t];i[r[1]](v.isFunction(o)?function(){var e=o.apply(this,arguments);e&&v.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[s+"With"](this===i?n:this,[e])}:n[s])}),e=null}).promise()},promise:function(e){return e!=null?v.extend(e,r):r}},i={};return r.pipe=r.then,v.each(t,function(e,s){var o=s[2],u=s[3];r[s[1]]=o.add,u&&o.add(function(){n=u},t[e^1][2].disable,t[2][2].lock),i[s[0]]=o.fire,i[s[0]+"With"]=o.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t=0,n=l.call(arguments),r=n.length,i=r!==1||e&&v.isFunction(e.promise)?r:0,s=i===1?e:v.Deferred(),o=function(e,t,n){return function(r){t[e]=this,n[e]=arguments.length>1?l.call(arguments):r,n===u?s.notifyWith(t,n):--i||s.resolveWith(t,n)}},u,a,f;if(r>1){u=new Array(r),a=new Array(r),f=new Array(r);for(;t<r;t++)n[t]&&v.isFunction(n[t].promise)?n[t].promise().done(o(t,f,n)).fail(s.reject).progress(o(t,a,u)):--i}return i||s.resolveWith(f,n),s.promise()}}),v.support=function(){var t,n,r,s,o,u,a,f,l,c,h,p=i.createElement("div");p.setAttribute("className","t"),p.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",n=p.getElementsByTagName("*"),r=p.getElementsByTagName("a")[0];if(!n||!r||!n.length)return{};s=i.createElement("select"),o=s.appendChild(i.createElement("option")),u=p.getElementsByTagName("input")[0],r.style.cssText="top:1px;float:left;opacity:.5",t={leadingWhitespace:p.firstChild.nodeType===3,tbody:!p.getElementsByTagName("tbody").length,htmlSerialize:!!p.getElementsByTagName("link").length,style:/top/.test(r.getAttribute("style")),hrefNormalized:r.getAttribute("href")==="/a",opacity:/^0.5/.test(r.style.opacity),cssFloat:!!r.style.cssFloat,checkOn:u.value==="on",optSelected:o.selected,getSetAttribute:p.className!=="t",enctype:!!i.createElement("form").enctype,html5Clone:i.createElement("nav").cloneNode(!0).outerHTML!=="<:nav></:nav>",boxModel:i.compatMode==="CSS1Compat",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,boxSizingReliable:!0,pixelPosition:!1},u.checked=!0,t.noCloneChecked=u.cloneNode(!0).checked,s.disabled=!0,t.optDisabled=!o.disabled;try{delete p.test}catch(d){t.deleteExpando=!1}!p.addEventListener&&p.attachEvent&&p.fireEvent&&(p.attachEvent("onclick",h=function(){t.noCloneEvent=!1}),p.cloneNode(!0).fireEvent("onclick"),p.detachEvent("onclick",h)),u=i.createElement("input"),u.value="t",u.setAttribute("type","radio"),t.radioValue=u.value==="t",u.setAttribute("checked","checked"),u.setAttribute("name","t"),p.appendChild(u),a=i.createDocumentFragment(),a.appendChild(p.lastChild),t.checkClone=a.cloneNode(!0).cloneNode(!0).lastChild.checked,t.appendChecked=u.checked,a.removeChild(u),a.appendChild(p);if(p.attachEvent)for(l in{submit:!0,change:!0,focusin:!0})f="on"+l,c=f in p,c||(p.setAttribute(f,"return;"),c=typeof p[f]=="function"),t[l+"Bubbles"]=c;return v(function(){var n,r,s,o,u="padding:0;margin:0;border:0;display:block;overflow:hidden;",a=i.getElementsByTagName("body")[0];if(!a)return;n=i.createElement("div"),n.style.cssText="visibility:hidden;border:0;width:0;height:0;position:static;top:0;margin-top:1px",a.insertBefore(n,a.firstChild),r=i.createElement("div"),n.appendChild(r),r.innerHTML="<table><tr><td></td><td>t</td></tr></table>",s=r.getElementsByTagName("td"),s[0].style.cssText="padding:0;margin:0;border:0;display:none",c=s[0].offsetHeight===0,s[0].style.display="",s[1].style.display="none",t.reliableHiddenOffsets=c&&s[0].offsetHeight===0,r.innerHTML="",r.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",t.boxSizing=r.offsetWidth===4,t.doesNotIncludeMarginInBodyOffset=a.offsetTop!==1,e.getComputedStyle&&(t.pixelPosition=(e.getComputedStyle(r,null)||{}).top!=="1%",t.boxSizingReliable=(e.getComputedStyle(r,null)||{width:"4px"}).width==="4px",o=i.createElement("div"),o.style.cssText=r.style.cssText=u,o.style.marginRight=o.style.width="0",r.style.width="1px",r.appendChild(o),t.reliableMarginRight=!parseFloat((e.getComputedStyle(o,null)||{}).marginRight)),typeof r.style.zoom!="undefined"&&(r.innerHTML="",r.style.cssText=u+"width:1px;padding:1px;display:inline;zoom:1",t.inlineBlockNeedsLayout=r.offsetWidth===3,r.style.display="block",r.style.overflow="visible",r.innerHTML="<div></div>",r.firstChild.style.width="5px",t.shrinkWrapBlocks=r.offsetWidth!==3,n.style.zoom=1),a.removeChild(n),n=r=s=o=null}),a.removeChild(p),n=r=s=o=u=a=p=null,t}();var D=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,P=/([A-Z])/g;v.extend({cache:{},deletedIds:[],uuid:0,expando:"jQuery"+(v.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(e){return e=e.nodeType?v.cache[e[v.expando]]:e[v.expando],!!e&&!B(e)},data:function(e,n,r,i){if(!v.acceptData(e))return;var s,o,u=v.expando,a=typeof n=="string",f=e.nodeType,l=f?v.cache:e,c=f?e[u]:e[u]&&u;if((!c||!l[c]||!i&&!l[c].data)&&a&&r===t)return;c||(f?e[u]=c=v.deletedIds.pop()||v.guid++:c=u),l[c]||(l[c]={},f||(l[c].toJSON=v.noop));if(typeof n=="object"||typeof n=="function")i?l[c]=v.extend(l[c],n):l[c].data=v.extend(l[c].data,n);return s=l[c],i||(s.data||(s.data={}),s=s.data),r!==t&&(s[v.camelCase(n)]=r),a?(o=s[n],o==null&&(o=s[v.camelCase(n)])):o=s,o},removeData:function(e,t,n){if(!v.acceptData(e))return;var r,i,s,o=e.nodeType,u=o?v.cache:e,a=o?e[v.expando]:v.expando;if(!u[a])return;if(t){r=n?u[a]:u[a].data;if(r){v.isArray(t)||(t in r?t=[t]:(t=v.camelCase(t),t in r?t=[t]:t=t.split(" ")));for(i=0,s=t.length;i<s;i++)delete r[t[i]];if(!(n?B:v.isEmptyObject)(r))return}}if(!n){delete u[a].data;if(!B(u[a]))return}o?v.cleanData([e],!0):v.support.deleteExpando||u!=u.window?delete u[a]:u[a]=null},_data:function(e,t,n){return v.data(e,t,n,!0)},acceptData:function(e){var t=e.nodeName&&v.noData[e.nodeName.toLowerCase()];return!t||t!==!0&&e.getAttribute("classid")===t}}),v.fn.extend({data:function(e,n){var r,i,s,o,u,a=this[0],f=0,l=null;if(e===t){if(this.length){l=v.data(a);if(a.nodeType===1&&!v._data(a,"parsedAttrs")){s=a.attributes;for(u=s.length;f<u;f++)o=s[f].name,o.indexOf("data-")||(o=v.camelCase(o.substring(5)),H(a,o,l[o]));v._data(a,"parsedAttrs",!0)}}return l}return typeof e=="object"?this.each(function(){v.data(this,e)}):(r=e.split(".",2),r[1]=r[1]?"."+r[1]:"",i=r[1]+"!",v.access(this,function(n){if(n===t)return l=this.triggerHandler("getData"+i,[r[0]]),l===t&&a&&(l=v.data(a,e),l=H(a,e,l)),l===t&&r[1]?this.data(r[0]):l;r[1]=n,this.each(function(){var t=v(this);t.triggerHandler("setData"+i,r),v.data(this,e,n),t.triggerHandler("changeData"+i,r)})},null,n,arguments.length>1,null,!1))},removeData:function(e){return this.each(function(){v.removeData(this,e)})}}),v.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=v._data(e,t),n&&(!r||v.isArray(n)?r=v._data(e,t,v.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=v.queue(e,t),r=n.length,i=n.shift(),s=v._queueHooks(e,t),o=function(){v.dequeue(e,t)};i==="inprogress"&&(i=n.shift(),r--),i&&(t==="fx"&&n.unshift("inprogress"),delete s.stop,i.call(e,o,s)),!r&&s&&s.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return v._data(e,n)||v._data(e,n,{empty:v.Callbacks("once memory").add(function(){v.removeData(e,t+"queue",!0),v.removeData(e,n,!0)})})}}),v.fn.extend({queue:function(e,n){var r=2;return typeof e!="string"&&(n=e,e="fx",r--),arguments.length<r?v.queue(this[0],e):n===t?this:this.each(function(){var t=v.queue(this,e,n);v._queueHooks(this,e),e==="fx"&&t[0]!=="inprogress"&&v.dequeue(this,e)})},dequeue:function(e){return this.each(function(){v.dequeue(this,e)})},delay:function(e,t){return e=v.fx?v.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,n){var r,i=1,s=v.Deferred(),o=this,u=this.length,a=function(){--i||s.resolveWith(o,[o])};typeof e!="string"&&(n=e,e=t),e=e||"fx";while(u--)r=v._data(o[u],e+"queueHooks"),r&&r.empty&&(i++,r.empty.add(a));return a(),s.promise(n)}});var j,F,I,q=/[\t\r\n]/g,R=/\r/g,U=/^(?:button|input)$/i,z=/^(?:button|input|object|select|textarea)$/i,W=/^a(?:rea|)$/i,X=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,V=v.support.getSetAttribute;v.fn.extend({attr:function(e,t){return v.access(this,v.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){v.removeAttr(this,e)})},prop:function(e,t){return v.access(this,v.prop,e,t,arguments.length>1)},removeProp:function(e){return e=v.propFix[e]||e,this.each(function(){try{this[e]=t,delete this[e]}catch(n){}})},addClass:function(e){var t,n,r,i,s,o,u;if(v.isFunction(e))return this.each(function(t){v(this).addClass(e.call(this,t,this.className))});if(e&&typeof e=="string"){t=e.split(y);for(n=0,r=this.length;n<r;n++){i=this[n];if(i.nodeType===1)if(!i.className&&t.length===1)i.className=e;else{s=" "+i.className+" ";for(o=0,u=t.length;o<u;o++)s.indexOf(" "+t[o]+" ")<0&&(s+=t[o]+" ");i.className=v.trim(s)}}}return this},removeClass:function(e){var n,r,i,s,o,u,a;if(v.isFunction(e))return this.each(function(t){v(this).removeClass(e.call(this,t,this.className))});if(e&&typeof e=="string"||e===t){n=(e||"").split(y);for(u=0,a=this.length;u<a;u++){i=this[u];if(i.nodeType===1&&i.className){r=(" "+i.className+" ").replace(q," ");for(s=0,o=n.length;s<o;s++)while(r.indexOf(" "+n[s]+" ")>=0)r=r.replace(" "+n[s]+" "," ");i.className=e?v.trim(r):""}}}return this},toggleClass:function(e,t){var n=typeof e,r=typeof t=="boolean";return v.isFunction(e)?this.each(function(n){v(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if(n==="string"){var i,s=0,o=v(this),u=t,a=e.split(y);while(i=a[s++])u=r?u:!o.hasClass(i),o[u?"addClass":"removeClass"](i)}else if(n==="undefined"||n==="boolean")this.className&&v._data(this,"__className__",this.className),this.className=this.className||e===!1?"":v._data(this,"__className__")||""})},hasClass:function(e){var t=" "+e+" ",n=0,r=this.length;for(;n<r;n++)if(this[n].nodeType===1&&(" "+this[n].className+" ").replace(q," ").indexOf(t)>=0)return!0;return!1},val:function(e){var n,r,i,s=this[0];if(!arguments.length){if(s)return n=v.valHooks[s.type]||v.valHooks[s.nodeName.toLowerCase()],n&&"get"in n&&(r=n.get(s,"value"))!==t?r:(r=s.value,typeof r=="string"?r.replace(R,""):r==null?"":r);return}return i=v.isFunction(e),this.each(function(r){var s,o=v(this);if(this.nodeType!==1)return;i?s=e.call(this,r,o.val()):s=e,s==null?s="":typeof s=="number"?s+="":v.isArray(s)&&(s=v.map(s,function(e){return e==null?"":e+""})),n=v.valHooks[this.type]||v.valHooks[this.nodeName.toLowerCase()];if(!n||!("set"in n)||n.set(this,s,"value")===t)this.value=s})}}),v.extend({valHooks:{option:{get:function(e){var t=e.attributes.value;return!t||t.specified?e.value:e.text}},select:{get:function(e){var t,n,r=e.options,i=e.selectedIndex,s=e.type==="select-one"||i<0,o=s?null:[],u=s?i+1:r.length,a=i<0?u:s?i:0;for(;a<u;a++){n=r[a];if((n.selected||a===i)&&(v.support.optDisabled?!n.disabled:n.getAttribute("disabled")===null)&&(!n.parentNode.disabled||!v.nodeName(n.parentNode,"optgroup"))){t=v(n).val();if(s)return t;o.push(t)}}return o},set:function(e,t){var n=v.makeArray(t);return v(e).find("option").each(function(){this.selected=v.inArray(v(this).val(),n)>=0}),n.length||(e.selectedIndex=-1),n}}},attrFn:{},attr:function(e,n,r,i){var s,o,u,a=e.nodeType;if(!e||a===3||a===8||a===2)return;if(i&&v.isFunction(v.fn[n]))return v(e)[n](r);if(typeof e.getAttribute=="undefined")return v.prop(e,n,r);u=a!==1||!v.isXMLDoc(e),u&&(n=n.toLowerCase(),o=v.attrHooks[n]||(X.test(n)?F:j));if(r!==t){if(r===null){v.removeAttr(e,n);return}return o&&"set"in o&&u&&(s=o.set(e,r,n))!==t?s:(e.setAttribute(n,r+""),r)}return o&&"get"in o&&u&&(s=o.get(e,n))!==null?s:(s=e.getAttribute(n),s===null?t:s)},removeAttr:function(e,t){var n,r,i,s,o=0;if(t&&e.nodeType===1){r=t.split(y);for(;o<r.length;o++)i=r[o],i&&(n=v.propFix[i]||i,s=X.test(i),s||v.attr(e,i,""),e.removeAttribute(V?i:n),s&&n in e&&(e[n]=!1))}},attrHooks:{type:{set:function(e,t){if(U.test(e.nodeName)&&e.parentNode)v.error("type property can't be changed");else if(!v.support.radioValue&&t==="radio"&&v.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}},value:{get:function(e,t){return j&&v.nodeName(e,"button")?j.get(e,t):t in e?e.value:null},set:function(e,t,n){if(j&&v.nodeName(e,"button"))return j.set(e,t,n);e.value=t}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(e,n,r){var i,s,o,u=e.nodeType;if(!e||u===3||u===8||u===2)return;return o=u!==1||!v.isXMLDoc(e),o&&(n=v.propFix[n]||n,s=v.propHooks[n]),r!==t?s&&"set"in s&&(i=s.set(e,r,n))!==t?i:e[n]=r:s&&"get"in s&&(i=s.get(e,n))!==null?i:e[n]},propHooks:{tabIndex:{get:function(e){var n=e.getAttributeNode("tabindex");return n&&n.specified?parseInt(n.value,10):z.test(e.nodeName)||W.test(e.nodeName)&&e.href?0:t}}}}),F={get:function(e,n){var r,i=v.prop(e,n);return i===!0||typeof i!="boolean"&&(r=e.getAttributeNode(n))&&r.nodeValue!==!1?n.toLowerCase():t},set:function(e,t,n){var r;return t===!1?v.removeAttr(e,n):(r=v.propFix[n]||n,r in e&&(e[r]=!0),e.setAttribute(n,n.toLowerCase())),n}},V||(I={name:!0,id:!0,coords:!0},j=v.valHooks.button={get:function(e,n){var r;return r=e.getAttributeNode(n),r&&(I[n]?r.value!=="":r.specified)?r.value:t},set:function(e,t,n){var r=e.getAttributeNode(n);return r||(r=i.createAttribute(n),e.setAttributeNode(r)),r.value=t+""}},v.each(["width","height"],function(e,t){v.attrHooks[t]=v.extend(v.attrHooks[t],{set:function(e,n){if(n==="")return e.setAttribute(t,"auto"),n}})}),v.attrHooks.contenteditable={get:j.get,set:function(e,t,n){t===""&&(t="false"),j.set(e,t,n)}}),v.support.hrefNormalized||v.each(["href","src","width","height"],function(e,n){v.attrHooks[n]=v.extend(v.attrHooks[n],{get:function(e){var r=e.getAttribute(n,2);return r===null?t:r}})}),v.support.style||(v.attrHooks.style={get:function(e){return e.style.cssText.toLowerCase()||t},set:function(e,t){return e.style.cssText=t+""}}),v.support.optSelected||(v.propHooks.selected=v.extend(v.propHooks.selected,{get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null}})),v.support.enctype||(v.propFix.enctype="encoding"),v.support.checkOn||v.each(["radio","checkbox"],function(){v.valHooks[this]={get:function(e){return e.getAttribute("value")===null?"on":e.value}}}),v.each(["radio","checkbox"],function(){v.valHooks[this]=v.extend(v.valHooks[this],{set:function(e,t){if(v.isArray(t))return e.checked=v.inArray(v(e).val(),t)>=0}})});var $=/^(?:textarea|input|select)$/i,J=/^([^\.]*|)(?:\.(.+)|)$/,K=/(?:^|\s)hover(\.\S+|)\b/,Q=/^key/,G=/^(?:mouse|contextmenu)|click/,Y=/^(?:focusinfocus|focusoutblur)$/,Z=function(e){return v.event.special.hover?e:e.replace(K,"mouseenter$1 mouseleave$1")};v.event={add:function(e,n,r,i,s){var o,u,a,f,l,c,h,p,d,m,g;if(e.nodeType===3||e.nodeType===8||!n||!r||!(o=v._data(e)))return;r.handler&&(d=r,r=d.handler,s=d.selector),r.guid||(r.guid=v.guid++),a=o.events,a||(o.events=a={}),u=o.handle,u||(o.handle=u=function(e){return typeof v=="undefined"||!!e&&v.event.triggered===e.type?t:v.event.dispatch.apply(u.elem,arguments)},u.elem=e),n=v.trim(Z(n)).split(" ");for(f=0;f<n.length;f++){l=J.exec(n[f])||[],c=l[1],h=(l[2]||"").split(".").sort(),g=v.event.special[c]||{},c=(s?g.delegateType:g.bindType)||c,g=v.event.special[c]||{},p=v.extend({type:c,origType:l[1],data:i,handler:r,guid:r.guid,selector:s,needsContext:s&&v.expr.match.needsContext.test(s),namespace:h.join(".")},d),m=a[c];if(!m){m=a[c]=[],m.delegateCount=0;if(!g.setup||g.setup.call(e,i,h,u)===!1)e.addEventListener?e.addEventListener(c,u,!1):e.attachEvent&&e.attachEvent("on"+c,u)}g.add&&(g.add.call(e,p),p.handler.guid||(p.handler.guid=r.guid)),s?m.splice(m.delegateCount++,0,p):m.push(p),v.event.global[c]=!0}e=null},global:{},remove:function(e,t,n,r,i){var s,o,u,a,f,l,c,h,p,d,m,g=v.hasData(e)&&v._data(e);if(!g||!(h=g.events))return;t=v.trim(Z(t||"")).split(" ");for(s=0;s<t.length;s++){o=J.exec(t[s])||[],u=a=o[1],f=o[2];if(!u){for(u in h)v.event.remove(e,u+t[s],n,r,!0);continue}p=v.event.special[u]||{},u=(r?p.delegateType:p.bindType)||u,d=h[u]||[],l=d.length,f=f?new RegExp("(^|\\.)"+f.split(".").sort().join("\\.(?:.*\\.|)")+"(\\.|$)"):null;for(c=0;c<d.length;c++)m=d[c],(i||a===m.origType)&&(!n||n.guid===m.guid)&&(!f||f.test(m.namespace))&&(!r||r===m.selector||r==="**"&&m.selector)&&(d.splice(c--,1),m.selector&&d.delegateCount--,p.remove&&p.remove.call(e,m));d.length===0&&l!==d.length&&((!p.teardown||p.teardown.call(e,f,g.handle)===!1)&&v.removeEvent(e,u,g.handle),delete h[u])}v.isEmptyObject(h)&&(delete g.handle,v.removeData(e,"events",!0))},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(n,r,s,o){if(!s||s.nodeType!==3&&s.nodeType!==8){var u,a,f,l,c,h,p,d,m,g,y=n.type||n,b=[];if(Y.test(y+v.event.triggered))return;y.indexOf("!")>=0&&(y=y.slice(0,-1),a=!0),y.indexOf(".")>=0&&(b=y.split("."),y=b.shift(),b.sort());if((!s||v.event.customEvent[y])&&!v.event.global[y])return;n=typeof n=="object"?n[v.expando]?n:new v.Event(y,n):new v.Event(y),n.type=y,n.isTrigger=!0,n.exclusive=a,n.namespace=b.join("."),n.namespace_re=n.namespace?new RegExp("(^|\\.)"+b.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,h=y.indexOf(":")<0?"on"+y:"";if(!s){u=v.cache;for(f in u)u[f].events&&u[f].events[y]&&v.event.trigger(n,r,u[f].handle.elem,!0);return}n.result=t,n.target||(n.target=s),r=r!=null?v.makeArray(r):[],r.unshift(n),p=v.event.special[y]||{};if(p.trigger&&p.trigger.apply(s,r)===!1)return;m=[[s,p.bindType||y]];if(!o&&!p.noBubble&&!v.isWindow(s)){g=p.delegateType||y,l=Y.test(g+y)?s:s.parentNode;for(c=s;l;l=l.parentNode)m.push([l,g]),c=l;c===(s.ownerDocument||i)&&m.push([c.defaultView||c.parentWindow||e,g])}for(f=0;f<m.length&&!n.isPropagationStopped();f++)l=m[f][0],n.type=m[f][1],d=(v._data(l,"events")||{})[n.type]&&v._data(l,"handle"),d&&d.apply(l,r),d=h&&l[h],d&&v.acceptData(l)&&d.apply&&d.apply(l,r)===!1&&n.preventDefault();return n.type=y,!o&&!n.isDefaultPrevented()&&(!p._default||p._default.apply(s.ownerDocument,r)===!1)&&(y!=="click"||!v.nodeName(s,"a"))&&v.acceptData(s)&&h&&s[y]&&(y!=="focus"&&y!=="blur"||n.target.offsetWidth!==0)&&!v.isWindow(s)&&(c=s[h],c&&(s[h]=null),v.event.triggered=y,s[y](),v.event.triggered=t,c&&(s[h]=c)),n.result}return},dispatch:function(n){n=v.event.fix(n||e.event);var r,i,s,o,u,a,f,c,h,p,d=(v._data(this,"events")||{})[n.type]||[],m=d.delegateCount,g=l.call(arguments),y=!n.exclusive&&!n.namespace,b=v.event.special[n.type]||{},w=[];g[0]=n,n.delegateTarget=this;if(b.preDispatch&&b.preDispatch.call(this,n)===!1)return;if(m&&(!n.button||n.type!=="click"))for(s=n.target;s!=this;s=s.parentNode||this)if(s.disabled!==!0||n.type!=="click"){u={},f=[];for(r=0;r<m;r++)c=d[r],h=c.selector,u[h]===t&&(u[h]=c.needsContext?v(h,this).index(s)>=0:v.find(h,this,null,[s]).length),u[h]&&f.push(c);f.length&&w.push({elem:s,matches:f})}d.length>m&&w.push({elem:this,matches:d.slice(m)});for(r=0;r<w.length&&!n.isPropagationStopped();r++){a=w[r],n.currentTarget=a.elem;for(i=0;i<a.matches.length&&!n.isImmediatePropagationStopped();i++){c=a.matches[i];if(y||!n.namespace&&!c.namespace||n.namespace_re&&n.namespace_re.test(c.namespace))n.data=c.data,n.handleObj=c,o=((v.event.special[c.origType]||{}).handle||c.handler).apply(a.elem,g),o!==t&&(n.result=o,o===!1&&(n.preventDefault(),n.stopPropagation()))}}return b.postDispatch&&b.postDispatch.call(this,n),n.result},props:"attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return e.which==null&&(e.which=t.charCode!=null?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,n){var r,s,o,u=n.button,a=n.fromElement;return e.pageX==null&&n.clientX!=null&&(r=e.target.ownerDocument||i,s=r.documentElement,o=r.body,e.pageX=n.clientX+(s&&s.scrollLeft||o&&o.scrollLeft||0)-(s&&s.clientLeft||o&&o.clientLeft||0),e.pageY=n.clientY+(s&&s.scrollTop||o&&o.scrollTop||0)-(s&&s.clientTop||o&&o.clientTop||0)),!e.relatedTarget&&a&&(e.relatedTarget=a===e.target?n.toElement:a),!e.which&&u!==t&&(e.which=u&1?1:u&2?3:u&4?2:0),e}},fix:function(e){if(e[v.expando])return e;var t,n,r=e,s=v.event.fixHooks[e.type]||{},o=s.props?this.props.concat(s.props):this.props;e=v.Event(r);for(t=o.length;t;)n=o[--t],e[n]=r[n];return e.target||(e.target=r.srcElement||i),e.target.nodeType===3&&(e.target=e.target.parentNode),e.metaKey=!!e.metaKey,s.filter?s.filter(e,r):e},special:{load:{noBubble:!0},focus:{delegateType:"focusin"},blur:{delegateType:"focusout"},beforeunload:{setup:function(e,t,n){v.isWindow(this)&&(this.onbeforeunload=n)},teardown:function(e,t){this.onbeforeunload===t&&(this.onbeforeunload=null)}}},simulate:function(e,t,n,r){var i=v.extend(new v.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?v.event.trigger(i,null,t):v.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},v.event.handle=v.event.dispatch,v.removeEvent=i.removeEventListener?function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)}:function(e,t,n){var r="on"+t;e.detachEvent&&(typeof e[r]=="undefined"&&(e[r]=null),e.detachEvent(r,n))},v.Event=function(e,t){if(!(this instanceof v.Event))return new v.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.returnValue===!1||e.getPreventDefault&&e.getPreventDefault()?tt:et):this.type=e,t&&v.extend(this,t),this.timeStamp=e&&e.timeStamp||v.now(),this[v.expando]=!0},v.Event.prototype={preventDefault:function(){this.isDefaultPrevented=tt;var e=this.originalEvent;if(!e)return;e.preventDefault?e.preventDefault():e.returnValue=!1},stopPropagation:function(){this.isPropagationStopped=tt;var e=this.originalEvent;if(!e)return;e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=tt,this.stopPropagation()},isDefaultPrevented:et,isPropagationStopped:et,isImmediatePropagationStopped:et},v.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){v.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,s=e.handleObj,o=s.selector;if(!i||i!==r&&!v.contains(r,i))e.type=s.origType,n=s.handler.apply(this,arguments),e.type=t;return n}}}),v.support.submitBubbles||(v.event.special.submit={setup:function(){if(v.nodeName(this,"form"))return!1;v.event.add(this,"click._submit keypress._submit",function(e){var n=e.target,r=v.nodeName(n,"input")||v.nodeName(n,"button")?n.form:t;r&&!v._data(r,"_submit_attached")&&(v.event.add(r,"submit._submit",function(e){e._submit_bubble=!0}),v._data(r,"_submit_attached",!0))})},postDispatch:function(e){e._submit_bubble&&(delete e._submit_bubble,this.parentNode&&!e.isTrigger&&v.event.simulate("submit",this.parentNode,e,!0))},teardown:function(){if(v.nodeName(this,"form"))return!1;v.event.remove(this,"._submit")}}),v.support.changeBubbles||(v.event.special.change={setup:function(){if($.test(this.nodeName)){if(this.type==="checkbox"||this.type==="radio")v.event.add(this,"propertychange._change",function(e){e.originalEvent.propertyName==="checked"&&(this._just_changed=!0)}),v.event.add(this,"click._change",function(e){this._just_changed&&!e.isTrigger&&(this._just_changed=!1),v.event.simulate("change",this,e,!0)});return!1}v.event.add(this,"beforeactivate._change",function(e){var t=e.target;$.test(t.nodeName)&&!v._data(t,"_change_attached")&&(v.event.add(t,"change._change",function(e){this.parentNode&&!e.isSimulated&&!e.isTrigger&&v.event.simulate("change",this.parentNode,e,!0)}),v._data(t,"_change_attached",!0))})},handle:function(e){var t=e.target;if(this!==t||e.isSimulated||e.isTrigger||t.type!=="radio"&&t.type!=="checkbox")return e.handleObj.handler.apply(this,arguments)},teardown:function(){return v.event.remove(this,"._change"),!$.test(this.nodeName)}}),v.support.focusinBubbles||v.each({focus:"focusin",blur:"focusout"},function(e,t){var n=0,r=function(e){v.event.simulate(t,e.target,v.event.fix(e),!0)};v.event.special[t]={setup:function(){n++===0&&i.addEventListener(e,r,!0)},teardown:function(){--n===0&&i.removeEventListener(e,r,!0)}}}),v.fn.extend({on:function(e,n,r,i,s){var o,u;if(typeof e=="object"){typeof n!="string"&&(r=r||n,n=t);for(u in e)this.on(u,n,r,e[u],s);return this}r==null&&i==null?(i=n,r=n=t):i==null&&(typeof n=="string"?(i=r,r=t):(i=r,r=n,n=t));if(i===!1)i=et;else if(!i)return this;return s===1&&(o=i,i=function(e){return v().off(e),o.apply(this,arguments)},i.guid=o.guid||(o.guid=v.guid++)),this.each(function(){v.event.add(this,e,i,r,n)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,n,r){var i,s;if(e&&e.preventDefault&&e.handleObj)return i=e.handleObj,v(e.delegateTarget).off(i.namespace?i.origType+"."+i.namespace:i.origType,i.selector,i.handler),this;if(typeof e=="object"){for(s in e)this.off(s,n,e[s]);return this}if(n===!1||typeof n=="function")r=n,n=t;return r===!1&&(r=et),this.each(function(){v.event.remove(this,e,r,n)})},bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},live:function(e,t,n){return v(this.context).on(e,this.selector,t,n),this},die:function(e,t){return v(this.context).off(e,this.selector||"**",t),this},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return arguments.length===1?this.off(e,"**"):this.off(t,e||"**",n)},trigger:function(e,t){return this.each(function(){v.event.trigger(e,t,this)})},triggerHandler:function(e,t){if(this[0])return v.event.trigger(e,t,this[0],!0)},toggle:function(e){var t=arguments,n=e.guid||v.guid++,r=0,i=function(n){var i=(v._data(this,"lastToggle"+e.guid)||0)%r;return v._data(this,"lastToggle"+e.guid,i+1),n.preventDefault(),t[i].apply(this,arguments)||!1};i.guid=n;while(r<t.length)t[r++].guid=n;return this.click(i)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),v.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(e,t){v.fn[t]=function(e,n){return n==null&&(n=e,e=null),arguments.length>0?this.on(t,null,e,n):this.trigger(t)},Q.test(t)&&(v.event.fixHooks[t]=v.event.keyHooks),G.test(t)&&(v.event.fixHooks[t]=v.event.mouseHooks)}),function(e,t){function nt(e,t,n,r){n=n||[],t=t||g;var i,s,a,f,l=t.nodeType;if(!e||typeof e!="string")return n;if(l!==1&&l!==9)return[];a=o(t);if(!a&&!r)if(i=R.exec(e))if(f=i[1]){if(l===9){s=t.getElementById(f);if(!s||!s.parentNode)return n;if(s.id===f)return n.push(s),n}else if(t.ownerDocument&&(s=t.ownerDocument.getElementById(f))&&u(t,s)&&s.id===f)return n.push(s),n}else{if(i[2])return S.apply(n,x.call(t.getElementsByTagName(e),0)),n;if((f=i[3])&&Z&&t.getElementsByClassName)return S.apply(n,x.call(t.getElementsByClassName(f),0)),n}return vt(e.replace(j,"$1"),t,n,r,a)}function rt(e){return function(t){var n=t.nodeName.toLowerCase();return n==="input"&&t.type===e}}function it(e){return function(t){var n=t.nodeName.toLowerCase();return(n==="input"||n==="button")&&t.type===e}}function st(e){return N(function(t){return t=+t,N(function(n,r){var i,s=e([],n.length,t),o=s.length;while(o--)n[i=s[o]]&&(n[i]=!(r[i]=n[i]))})})}function ot(e,t,n){if(e===t)return n;var r=e.nextSibling;while(r){if(r===t)return-1;r=r.nextSibling}return 1}function ut(e,t){var n,r,s,o,u,a,f,l=L[d][e+" "];if(l)return t?0:l.slice(0);u=e,a=[],f=i.preFilter;while(u){if(!n||(r=F.exec(u)))r&&(u=u.slice(r[0].length)||u),a.push(s=[]);n=!1;if(r=I.exec(u))s.push(n=new m(r.shift())),u=u.slice(n.length),n.type=r[0].replace(j," ");for(o in i.filter)(r=J[o].exec(u))&&(!f[o]||(r=f[o](r)))&&(s.push(n=new m(r.shift())),u=u.slice(n.length),n.type=o,n.matches=r);if(!n)break}return t?u.length:u?nt.error(e):L(e,a).slice(0)}function at(e,t,r){var i=t.dir,s=r&&t.dir==="parentNode",o=w++;return t.first?function(t,n,r){while(t=t[i])if(s||t.nodeType===1)return e(t,n,r)}:function(t,r,u){if(!u){var a,f=b+" "+o+" ",l=f+n;while(t=t[i])if(s||t.nodeType===1){if((a=t[d])===l)return t.sizset;if(typeof a=="string"&&a.indexOf(f)===0){if(t.sizset)return t}else{t[d]=l;if(e(t,r,u))return t.sizset=!0,t;t.sizset=!1}}}else while(t=t[i])if(s||t.nodeType===1)if(e(t,r,u))return t}}function ft(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function lt(e,t,n,r,i){var s,o=[],u=0,a=e.length,f=t!=null;for(;u<a;u++)if(s=e[u])if(!n||n(s,r,i))o.push(s),f&&t.push(u);return o}function ct(e,t,n,r,i,s){return r&&!r[d]&&(r=ct(r)),i&&!i[d]&&(i=ct(i,s)),N(function(s,o,u,a){var f,l,c,h=[],p=[],d=o.length,v=s||dt(t||"*",u.nodeType?[u]:u,[]),m=e&&(s||!t)?lt(v,h,e,u,a):v,g=n?i||(s?e:d||r)?[]:o:m;n&&n(m,g,u,a);if(r){f=lt(g,p),r(f,[],u,a),l=f.length;while(l--)if(c=f[l])g[p[l]]=!(m[p[l]]=c)}if(s){if(i||e){if(i){f=[],l=g.length;while(l--)(c=g[l])&&f.push(m[l]=c);i(null,g=[],f,a)}l=g.length;while(l--)(c=g[l])&&(f=i?T.call(s,c):h[l])>-1&&(s[f]=!(o[f]=c))}}else g=lt(g===o?g.splice(d,g.length):g),i?i(null,o,g,a):S.apply(o,g)})}function ht(e){var t,n,r,s=e.length,o=i.relative[e[0].type],u=o||i.relative[" "],a=o?1:0,f=at(function(e){return e===t},u,!0),l=at(function(e){return T.call(t,e)>-1},u,!0),h=[function(e,n,r){return!o&&(r||n!==c)||((t=n).nodeType?f(e,n,r):l(e,n,r))}];for(;a<s;a++)if(n=i.relative[e[a].type])h=[at(ft(h),n)];else{n=i.filter[e[a].type].apply(null,e[a].matches);if(n[d]){r=++a;for(;r<s;r++)if(i.relative[e[r].type])break;return ct(a>1&&ft(h),a>1&&e.slice(0,a-1).join("").replace(j,"$1"),n,a<r&&ht(e.slice(a,r)),r<s&&ht(e=e.slice(r)),r<s&&e.join(""))}h.push(n)}return ft(h)}function pt(e,t){var r=t.length>0,s=e.length>0,o=function(u,a,f,l,h){var p,d,v,m=[],y=0,w="0",x=u&&[],T=h!=null,N=c,C=u||s&&i.find.TAG("*",h&&a.parentNode||a),k=b+=N==null?1:Math.E;T&&(c=a!==g&&a,n=o.el);for(;(p=C[w])!=null;w++){if(s&&p){for(d=0;v=e[d];d++)if(v(p,a,f)){l.push(p);break}T&&(b=k,n=++o.el)}r&&((p=!v&&p)&&y--,u&&x.push(p))}y+=w;if(r&&w!==y){for(d=0;v=t[d];d++)v(x,m,a,f);if(u){if(y>0)while(w--)!x[w]&&!m[w]&&(m[w]=E.call(l));m=lt(m)}S.apply(l,m),T&&!u&&m.length>0&&y+t.length>1&&nt.uniqueSort(l)}return T&&(b=k,c=N),x};return o.el=0,r?N(o):o}function dt(e,t,n){var r=0,i=t.length;for(;r<i;r++)nt(e,t[r],n);return n}function vt(e,t,n,r,s){var o,u,f,l,c,h=ut(e),p=h.length;if(!r&&h.length===1){u=h[0]=h[0].slice(0);if(u.length>2&&(f=u[0]).type==="ID"&&t.nodeType===9&&!s&&i.relative[u[1].type]){t=i.find.ID(f.matches[0].replace($,""),t,s)[0];if(!t)return n;e=e.slice(u.shift().length)}for(o=J.POS.test(e)?-1:u.length-1;o>=0;o--){f=u[o];if(i.relative[l=f.type])break;if(c=i.find[l])if(r=c(f.matches[0].replace($,""),z.test(u[0].type)&&t.parentNode||t,s)){u.splice(o,1),e=r.length&&u.join("");if(!e)return S.apply(n,x.call(r,0)),n;break}}}return a(e,h)(r,t,s,n,z.test(e)),n}function mt(){}var n,r,i,s,o,u,a,f,l,c,h=!0,p="undefined",d=("sizcache"+Math.random()).replace(".",""),m=String,g=e.document,y=g.documentElement,b=0,w=0,E=[].pop,S=[].push,x=[].slice,T=[].indexOf||function(e){var t=0,n=this.length;for(;t<n;t++)if(this[t]===e)return t;return-1},N=function(e,t){return e[d]=t==null||t,e},C=function(){var e={},t=[];return N(function(n,r){return t.push(n)>i.cacheLength&&delete e[t.shift()],e[n+" "]=r},e)},k=C(),L=C(),A=C(),O="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[-\\w]|[^\\x00-\\xa0])+",_=M.replace("w","w#"),D="([*^$|!~]?=)",P="\\["+O+"*("+M+")"+O+"*(?:"+D+O+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+_+")|)|)"+O+"*\\]",H=":("+M+")(?:\\((?:(['\"])((?:\\\\.|[^\\\\])*?)\\2|([^()[\\]]*|(?:(?:"+P+")|[^:]|\\\\.)*|.*))\\)|)",B=":(even|odd|eq|gt|lt|nth|first|last)(?:\\("+O+"*((?:-\\d)?\\d*)"+O+"*\\)|)(?=[^-]|$)",j=new RegExp("^"+O+"+|((?:^|[^\\\\])(?:\\\\.)*)"+O+"+$","g"),F=new RegExp("^"+O+"*,"+O+"*"),I=new RegExp("^"+O+"*([\\x20\\t\\r\\n\\f>+~])"+O+"*"),q=new RegExp(H),R=/^(?:#([\w\-]+)|(\w+)|\.([\w\-]+))$/,U=/^:not/,z=/[\x20\t\r\n\f]*[+~]/,W=/:not\($/,X=/h\d/i,V=/input|select|textarea|button/i,$=/\\(?!\\)/g,J={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),NAME:new RegExp("^\\[name=['\"]?("+M+")['\"]?\\]"),TAG:new RegExp("^("+M.replace("w","w*")+")"),ATTR:new RegExp("^"+P),PSEUDO:new RegExp("^"+H),POS:new RegExp(B,"i"),CHILD:new RegExp("^:(only|nth|first|last)-child(?:\\("+O+"*(even|odd|(([+-]|)(\\d*)n|)"+O+"*(?:([+-]|)"+O+"*(\\d+)|))"+O+"*\\)|)","i"),needsContext:new RegExp("^"+O+"*[>+~]|"+B,"i")},K=function(e){var t=g.createElement("div");try{return e(t)}catch(n){return!1}finally{t=null}},Q=K(function(e){return e.appendChild(g.createComment("")),!e.getElementsByTagName("*").length}),G=K(function(e){return e.innerHTML="<a href='#'></a>",e.firstChild&&typeof e.firstChild.getAttribute!==p&&e.firstChild.getAttribute("href")==="#"}),Y=K(function(e){e.innerHTML="<select></select>";var t=typeof e.lastChild.getAttribute("multiple");return t!=="boolean"&&t!=="string"}),Z=K(function(e){return e.innerHTML="<div class='hidden e'></div><div class='hidden'></div>",!e.getElementsByClassName||!e.getElementsByClassName("e").length?!1:(e.lastChild.className="e",e.getElementsByClassName("e").length===2)}),et=K(function(e){e.id=d+0,e.innerHTML="<a name='"+d+"'></a><div name='"+d+"'></div>",y.insertBefore(e,y.firstChild);var t=g.getElementsByName&&g.getElementsByName(d).length===2+g.getElementsByName(d+0).length;return r=!g.getElementById(d),y.removeChild(e),t});try{x.call(y.childNodes,0)[0].nodeType}catch(tt){x=function(e){var t,n=[];for(;t=this[e];e++)n.push(t);return n}}nt.matches=function(e,t){return nt(e,null,null,t)},nt.matchesSelector=function(e,t){return nt(t,null,null,[e]).length>0},s=nt.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(i===1||i===9||i===11){if(typeof e.textContent=="string")return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=s(e)}else if(i===3||i===4)return e.nodeValue}else for(;t=e[r];r++)n+=s(t);return n},o=nt.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?t.nodeName!=="HTML":!1},u=nt.contains=y.contains?function(e,t){var n=e.nodeType===9?e.documentElement:e,r=t&&t.parentNode;return e===r||!!(r&&r.nodeType===1&&n.contains&&n.contains(r))}:y.compareDocumentPosition?function(e,t){return t&&!!(e.compareDocumentPosition(t)&16)}:function(e,t){while(t=t.parentNode)if(t===e)return!0;return!1},nt.attr=function(e,t){var n,r=o(e);return r||(t=t.toLowerCase()),(n=i.attrHandle[t])?n(e):r||Y?e.getAttribute(t):(n=e.getAttributeNode(t),n?typeof e[t]=="boolean"?e[t]?t:null:n.specified?n.value:null:null)},i=nt.selectors={cacheLength:50,createPseudo:N,match:J,attrHandle:G?{}:{href:function(e){return e.getAttribute("href",2)},type:function(e){return e.getAttribute("type")}},find:{ID:r?function(e,t,n){if(typeof t.getElementById!==p&&!n){var r=t.getElementById(e);return r&&r.parentNode?[r]:[]}}:function(e,n,r){if(typeof n.getElementById!==p&&!r){var i=n.getElementById(e);return i?i.id===e||typeof i.getAttributeNode!==p&&i.getAttributeNode("id").value===e?[i]:t:[]}},TAG:Q?function(e,t){if(typeof t.getElementsByTagName!==p)return t.getElementsByTagName(e)}:function(e,t){var n=t.getElementsByTagName(e);if(e==="*"){var r,i=[],s=0;for(;r=n[s];s++)r.nodeType===1&&i.push(r);return i}return n},NAME:et&&function(e,t){if(typeof t.getElementsByName!==p)return t.getElementsByName(name)},CLASS:Z&&function(e,t,n){if(typeof t.getElementsByClassName!==p&&!n)return t.getElementsByClassName(e)}},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace($,""),e[3]=(e[4]||e[5]||"").replace($,""),e[2]==="~="&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),e[1]==="nth"?(e[2]||nt.error(e[0]),e[3]=+(e[3]?e[4]+(e[5]||1):2*(e[2]==="even"||e[2]==="odd")),e[4]=+(e[6]+e[7]||e[2]==="odd")):e[2]&&nt.error(e[0]),e},PSEUDO:function(e){var t,n;if(J.CHILD.test(e[0]))return null;if(e[3])e[2]=e[3];else if(t=e[4])q.test(t)&&(n=ut(t,!0))&&(n=t.indexOf(")",t.length-n)-t.length)&&(t=t.slice(0,n),e[0]=e[0].slice(0,n)),e[2]=t;return e.slice(0,3)}},filter:{ID:r?function(e){return e=e.replace($,""),function(t){return t.getAttribute("id")===e}}:function(e){return e=e.replace($,""),function(t){var n=typeof t.getAttributeNode!==p&&t.getAttributeNode("id");return n&&n.value===e}},TAG:function(e){return e==="*"?function(){return!0}:(e=e.replace($,"").toLowerCase(),function(t){return t.nodeName&&t.nodeName.toLowerCase()===e})},CLASS:function(e){var t=k[d][e+" "];return t||(t=new RegExp("(^|"+O+")"+e+"("+O+"|$)"))&&k(e,function(e){return t.test(e.className||typeof e.getAttribute!==p&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r,i){var s=nt.attr(r,e);return s==null?t==="!=":t?(s+="",t==="="?s===n:t==="!="?s!==n:t==="^="?n&&s.indexOf(n)===0:t==="*="?n&&s.indexOf(n)>-1:t==="$="?n&&s.substr(s.length-n.length)===n:t==="~="?(" "+s+" ").indexOf(n)>-1:t==="|="?s===n||s.substr(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r){return e==="nth"?function(e){var t,i,s=e.parentNode;if(n===1&&r===0)return!0;if(s){i=0;for(t=s.firstChild;t;t=t.nextSibling)if(t.nodeType===1){i++;if(e===t)break}}return i-=r,i===n||i%n===0&&i/n>=0}:function(t){var n=t;switch(e){case"only":case"first":while(n=n.previousSibling)if(n.nodeType===1)return!1;if(e==="first")return!0;n=t;case"last":while(n=n.nextSibling)if(n.nodeType===1)return!1;return!0}}},PSEUDO:function(e,t){var n,r=i.pseudos[e]||i.setFilters[e.toLowerCase()]||nt.error("unsupported pseudo: "+e);return r[d]?r(t):r.length>1?(n=[e,e,"",t],i.setFilters.hasOwnProperty(e.toLowerCase())?N(function(e,n){var i,s=r(e,t),o=s.length;while(o--)i=T.call(e,s[o]),e[i]=!(n[i]=s[o])}):function(e){return r(e,0,n)}):r}},pseudos:{not:N(function(e){var t=[],n=[],r=a(e.replace(j,"$1"));return r[d]?N(function(e,t,n,i){var s,o=r(e,null,i,[]),u=e.length;while(u--)if(s=o[u])e[u]=!(t[u]=s)}):function(e,i,s){return t[0]=e,r(t,null,s,n),!n.pop()}}),has:N(function(e){return function(t){return nt(e,t).length>0}}),contains:N(function(e){return function(t){return(t.textContent||t.innerText||s(t)).indexOf(e)>-1}}),enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return t==="input"&&!!e.checked||t==="option"&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},parent:function(e){return!i.pseudos.empty(e)},empty:function(e){var t;e=e.firstChild;while(e){if(e.nodeName>"@"||(t=e.nodeType)===3||t===4)return!1;e=e.nextSibling}return!0},header:function(e){return X.test(e.nodeName)},text:function(e){var t,n;return e.nodeName.toLowerCase()==="input"&&(t=e.type)==="text"&&((n=e.getAttribute("type"))==null||n.toLowerCase()===t)},radio:rt("radio"),checkbox:rt("checkbox"),file:rt("file"),password:rt("password"),image:rt("image"),submit:it("submit"),reset:it("reset"),button:function(e){var t=e.nodeName.toLowerCase();return t==="input"&&e.type==="button"||t==="button"},input:function(e){return V.test(e.nodeName)},focus:function(e){var t=e.ownerDocument;return e===t.activeElement&&(!t.hasFocus||t.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},active:function(e){return e===e.ownerDocument.activeElement},first:st(function(){return[0]}),last:st(function(e,t){return[t-1]}),eq:st(function(e,t,n){return[n<0?n+t:n]}),even:st(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:st(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:st(function(e,t,n){for(var r=n<0?n+t:n;--r>=0;)e.push(r);return e}),gt:st(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}},f=y.compareDocumentPosition?function(e,t){return e===t?(l=!0,0):(!e.compareDocumentPosition||!t.compareDocumentPosition?e.compareDocumentPosition:e.compareDocumentPosition(t)&4)?-1:1}:function(e,t){if(e===t)return l=!0,0;if(e.sourceIndex&&t.sourceIndex)return e.sourceIndex-t.sourceIndex;var n,r,i=[],s=[],o=e.parentNode,u=t.parentNode,a=o;if(o===u)return ot(e,t);if(!o)return-1;if(!u)return 1;while(a)i.unshift(a),a=a.parentNode;a=u;while(a)s.unshift(a),a=a.parentNode;n=i.length,r=s.length;for(var f=0;f<n&&f<r;f++)if(i[f]!==s[f])return ot(i[f],s[f]);return f===n?ot(e,s[f],-1):ot(i[f],t,1)},[0,0].sort(f),h=!l,nt.uniqueSort=function(e){var t,n=[],r=1,i=0;l=h,e.sort(f);if(l){for(;t=e[r];r++)t===e[r-1]&&(i=n.push(r));while(i--)e.splice(n[i],1)}return e},nt.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},a=nt.compile=function(e,t){var n,r=[],i=[],s=A[d][e+" "];if(!s){t||(t=ut(e)),n=t.length;while(n--)s=ht(t[n]),s[d]?r.push(s):i.push(s);s=A(e,pt(i,r))}return s},g.querySelectorAll&&function(){var e,t=vt,n=/'|\\/g,r=/\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g,i=[":focus"],s=[":active"],u=y.matchesSelector||y.mozMatchesSelector||y.webkitMatchesSelector||y.oMatchesSelector||y.msMatchesSelector;K(function(e){e.innerHTML="<select><option selected=''></option></select>",e.querySelectorAll("[selected]").length||i.push("\\["+O+"*(?:checked|disabled|ismap|multiple|readonly|selected|value)"),e.querySelectorAll(":checked").length||i.push(":checked")}),K(function(e){e.innerHTML="<p test=''></p>",e.querySelectorAll("[test^='']").length&&i.push("[*^$]="+O+"*(?:\"\"|'')"),e.innerHTML="<input type='hidden'/>",e.querySelectorAll(":enabled").length||i.push(":enabled",":disabled")}),i=new RegExp(i.join("|")),vt=function(e,r,s,o,u){if(!o&&!u&&!i.test(e)){var a,f,l=!0,c=d,h=r,p=r.nodeType===9&&e;if(r.nodeType===1&&r.nodeName.toLowerCase()!=="object"){a=ut(e),(l=r.getAttribute("id"))?c=l.replace(n,"\\$&"):r.setAttribute("id",c),c="[id='"+c+"'] ",f=a.length;while(f--)a[f]=c+a[f].join("");h=z.test(e)&&r.parentNode||r,p=a.join(",")}if(p)try{return S.apply(s,x.call(h.querySelectorAll(p),0)),s}catch(v){}finally{l||r.removeAttribute("id")}}return t(e,r,s,o,u)},u&&(K(function(t){e=u.call(t,"div");try{u.call(t,"[test!='']:sizzle"),s.push("!=",H)}catch(n){}}),s=new RegExp(s.join("|")),nt.matchesSelector=function(t,n){n=n.replace(r,"='$1']");if(!o(t)&&!s.test(n)&&!i.test(n))try{var a=u.call(t,n);if(a||e||t.document&&t.document.nodeType!==11)return a}catch(f){}return nt(n,null,null,[t]).length>0})}(),i.pseudos.nth=i.pseudos.eq,i.filters=mt.prototype=i.pseudos,i.setFilters=new mt,nt.attr=v.attr,v.find=nt,v.expr=nt.selectors,v.expr[":"]=v.expr.pseudos,v.unique=nt.uniqueSort,v.text=nt.getText,v.isXMLDoc=nt.isXML,v.contains=nt.contains}(e);var nt=/Until$/,rt=/^(?:parents|prev(?:Until|All))/,it=/^.[^:#\[\.,]*$/,st=v.expr.match.needsContext,ot={children:!0,contents:!0,next:!0,prev:!0};v.fn.extend({find:function(e){var t,n,r,i,s,o,u=this;if(typeof e!="string")return v(e).filter(function(){for(t=0,n=u.length;t<n;t++)if(v.contains(u[t],this))return!0});o=this.pushStack("","find",e);for(t=0,n=this.length;t<n;t++){r=o.length,v.find(e,this[t],o);if(t>0)for(i=r;i<o.length;i++)for(s=0;s<r;s++)if(o[s]===o[i]){o.splice(i--,1);break}}return o},has:function(e){var t,n=v(e,this),r=n.length;return this.filter(function(){for(t=0;t<r;t++)if(v.contains(this,n[t]))return!0})},not:function(e){return this.pushStack(ft(this,e,!1),"not",e)},filter:function(e){return this.pushStack(ft(this,e,!0),"filter",e)},is:function(e){return!!e&&(typeof e=="string"?st.test(e)?v(e,this.context).index(this[0])>=0:v.filter(e,this).length>0:this.filter(e).length>0)},closest:function(e,t){var n,r=0,i=this.length,s=[],o=st.test(e)||typeof e!="string"?v(e,t||this.context):0;for(;r<i;r++){n=this[r];while(n&&n.ownerDocument&&n!==t&&n.nodeType!==11){if(o?o.index(n)>-1:v.find.matchesSelector(n,e)){s.push(n);break}n=n.parentNode}}return s=s.length>1?v.unique(s):s,this.pushStack(s,"closest",e)},index:function(e){return e?typeof e=="string"?v.inArray(this[0],v(e)):v.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.prevAll().length:-1},add:function(e,t){var n=typeof e=="string"?v(e,t):v.makeArray(e&&e.nodeType?[e]:e),r=v.merge(this.get(),n);return this.pushStack(ut(n[0])||ut(r[0])?r:v.unique(r))},addBack:function(e){return this.add(e==null?this.prevObject:this.prevObject.filter(e))}}),v.fn.andSelf=v.fn.addBack,v.each({parent:function(e){var t=e.parentNode;return t&&t.nodeType!==11?t:null},parents:function(e){return v.dir(e,"parentNode")},parentsUntil:function(e,t,n){return v.dir(e,"parentNode",n)},next:function(e){return at(e,"nextSibling")},prev:function(e){return at(e,"previousSibling")},nextAll:function(e){return v.dir(e,"nextSibling")},prevAll:function(e){return v.dir(e,"previousSibling")},nextUntil:function(e,t,n){return v.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return v.dir(e,"previousSibling",n)},siblings:function(e){return v.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return v.sibling(e.firstChild)},contents:function(e){return v.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:v.merge([],e.childNodes)}},function(e,t){v.fn[e]=function(n,r){var i=v.map(this,t,n);return nt.test(e)||(r=n),r&&typeof r=="string"&&(i=v.filter(r,i)),i=this.length>1&&!ot[e]?v.unique(i):i,this.length>1&&rt.test(e)&&(i=i.reverse()),this.pushStack(i,e,l.call(arguments).join(","))}}),v.extend({filter:function(e,t,n){return n&&(e=":not("+e+")"),t.length===1?v.find.matchesSelector(t[0],e)?[t[0]]:[]:v.find.matches(e,t)},dir:function(e,n,r){var i=[],s=e[n];while(s&&s.nodeType!==9&&(r===t||s.nodeType!==1||!v(s).is(r)))s.nodeType===1&&i.push(s),s=s[n];return i},sibling:function(e,t){var n=[];for(;e;e=e.nextSibling)e.nodeType===1&&e!==t&&n.push(e);return n}});var ct="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",ht=/ jQuery\d+="(?:null|\d+)"/g,pt=/^\s+/,dt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,vt=/<([\w:]+)/,mt=/<tbody/i,gt=/<|&#?\w+;/,yt=/<(?:script|style|link)/i,bt=/<(?:script|object|embed|option|style)/i,wt=new RegExp("<(?:"+ct+")[\\s/>]","i"),Et=/^(?:checkbox|radio)$/,St=/checked\s*(?:[^=]|=\s*.checked.)/i,xt=/\/(java|ecma)script/i,Tt=/^\s*<!(?:\[CDATA\[|\-\-)|[\]\-]{2}>\s*$/g,Nt={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]},Ct=lt(i),kt=Ct.appendChild(i.createElement("div"));Nt.optgroup=Nt.option,Nt.tbody=Nt.tfoot=Nt.colgroup=Nt.caption=Nt.thead,Nt.th=Nt.td,v.support.htmlSerialize||(Nt._default=[1,"X<div>","</div>"]),v.fn.extend({text:function(e){return v.access(this,function(e){return e===t?v.text(this):this.empty().append((this[0]&&this[0].ownerDocument||i).createTextNode(e))},null,e,arguments.length)},wrapAll:function(e){if(v.isFunction(e))return this.each(function(t){v(this).wrapAll(e.call(this,t))});if(this[0]){var t=v(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstChild&&e.firstChild.nodeType===1)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return v.isFunction(e)?this.each(function(t){v(this).wrapInner(e.call(this,t))}):this.each(function(){var t=v(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=v.isFunction(e);return this.each(function(n){v(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){v.nodeName(this,"body")||v(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(e){(this.nodeType===1||this.nodeType===11)&&this.appendChild(e)})},prepend:function(){return this.domManip(arguments,!0,function(e){(this.nodeType===1||this.nodeType===11)&&this.insertBefore(e,this.firstChild)})},before:function(){if(!ut(this[0]))return this.domManip(arguments,!1,function(e){this.parentNode.insertBefore(e,this)});if(arguments.length){var e=v.clean(arguments);return this.pushStack(v.merge(e,this),"before",this.selector)}},after:function(){if(!ut(this[0]))return this.domManip(arguments,!1,function(e){this.parentNode.insertBefore(e,this.nextSibling)});if(arguments.length){var e=v.clean(arguments);return this.pushStack(v.merge(this,e),"after",this.selector)}},remove:function(e,t){var n,r=0;for(;(n=this[r])!=null;r++)if(!e||v.filter(e,[n]).length)!t&&n.nodeType===1&&(v.cleanData(n.getElementsByTagName("*")),v.cleanData([n])),n.parentNode&&n.parentNode.removeChild(n);return this},empty:function(){var e,t=0;for(;(e=this[t])!=null;t++){e.nodeType===1&&v.cleanData(e.getElementsByTagName("*"));while(e.firstChild)e.removeChild(e.firstChild)}return this},clone:function(e,t){return e=e==null?!1:e,t=t==null?e:t,this.map(function(){return v.clone(this,e,t)})},html:function(e){return v.access(this,function(e){var n=this[0]||{},r=0,i=this.length;if(e===t)return n.nodeType===1?n.innerHTML.replace(ht,""):t;if(typeof e=="string"&&!yt.test(e)&&(v.support.htmlSerialize||!wt.test(e))&&(v.support.leadingWhitespace||!pt.test(e))&&!Nt[(vt.exec(e)||["",""])[1].toLowerCase()]){e=e.replace(dt,"<$1></$2>");try{for(;r<i;r++)n=this[r]||{},n.nodeType===1&&(v.cleanData(n.getElementsByTagName("*")),n.innerHTML=e);n=0}catch(s){}}n&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(e){return ut(this[0])?this.length?this.pushStack(v(v.isFunction(e)?e():e),"replaceWith",e):this:v.isFunction(e)?this.each(function(t){var n=v(this),r=n.html();n.replaceWith(e.call(this,t,r))}):(typeof e!="string"&&(e=v(e).detach()),this.each(function(){var t=this.nextSibling,n=this.parentNode;v(this).remove(),t?v(t).before(e):v(n).append(e)}))},detach:function(e){return this.remove(e,!0)},domManip:function(e,n,r){e=[].concat.apply([],e);var i,s,o,u,a=0,f=e[0],l=[],c=this.length;if(!v.support.checkClone&&c>1&&typeof f=="string"&&St.test(f))return this.each(function(){v(this).domManip(e,n,r)});if(v.isFunction(f))return this.each(function(i){var s=v(this);e[0]=f.call(this,i,n?s.html():t),s.domManip(e,n,r)});if(this[0]){i=v.buildFragment(e,this,l),o=i.fragment,s=o.firstChild,o.childNodes.length===1&&(o=s);if(s){n=n&&v.nodeName(s,"tr");for(u=i.cacheable||c-1;a<c;a++)r.call(n&&v.nodeName(this[a],"table")?Lt(this[a],"tbody"):this[a],a===u?o:v.clone(o,!0,!0))}o=s=null,l.length&&v.each(l,function(e,t){t.src?v.ajax?v.ajax({url:t.src,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0}):v.error("no ajax"):v.globalEval((t.text||t.textContent||t.innerHTML||"").replace(Tt,"")),t.parentNode&&t.parentNode.removeChild(t)})}return this}}),v.buildFragment=function(e,n,r){var s,o,u,a=e[0];return n=n||i,n=!n.nodeType&&n[0]||n,n=n.ownerDocument||n,e.length===1&&typeof a=="string"&&a.length<512&&n===i&&a.charAt(0)==="<"&&!bt.test(a)&&(v.support.checkClone||!St.test(a))&&(v.support.html5Clone||!wt.test(a))&&(o=!0,s=v.fragments[a],u=s!==t),s||(s=n.createDocumentFragment(),v.clean(e,n,s,r),o&&(v.fragments[a]=u&&s)),{fragment:s,cacheable:o}},v.fragments={},v.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){v.fn[e]=function(n){var r,i=0,s=[],o=v(n),u=o.length,a=this.length===1&&this[0].parentNode;if((a==null||a&&a.nodeType===11&&a.childNodes.length===1)&&u===1)return o[t](this[0]),this;for(;i<u;i++)r=(i>0?this.clone(!0):this).get(),v(o[i])[t](r),s=s.concat(r);return this.pushStack(s,e,o.selector)}}),v.extend({clone:function(e,t,n){var r,i,s,o;v.support.html5Clone||v.isXMLDoc(e)||!wt.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(kt.innerHTML=e.outerHTML,kt.removeChild(o=kt.firstChild));if((!v.support.noCloneEvent||!v.support.noCloneChecked)&&(e.nodeType===1||e.nodeType===11)&&!v.isXMLDoc(e)){Ot(e,o),r=Mt(e),i=Mt(o);for(s=0;r[s];++s)i[s]&&Ot(r[s],i[s])}if(t){At(e,o);if(n){r=Mt(e),i=Mt(o);for(s=0;r[s];++s)At(r[s],i[s])}}return r=i=null,o},clean:function(e,t,n,r){var s,o,u,a,f,l,c,h,p,d,m,g,y=t===i&&Ct,b=[];if(!t||typeof t.createDocumentFragment=="undefined")t=i;for(s=0;(u=e[s])!=null;s++){typeof u=="number"&&(u+="");if(!u)continue;if(typeof u=="string")if(!gt.test(u))u=t.createTextNode(u);else{y=y||lt(t),c=t.createElement("div"),y.appendChild(c),u=u.replace(dt,"<$1></$2>"),a=(vt.exec(u)||["",""])[1].toLowerCase(),f=Nt[a]||Nt._default,l=f[0],c.innerHTML=f[1]+u+f[2];while(l--)c=c.lastChild;if(!v.support.tbody){h=mt.test(u),p=a==="table"&&!h?c.firstChild&&c.firstChild.childNodes:f[1]==="<table>"&&!h?c.childNodes:[];for(o=p.length-1;o>=0;--o)v.nodeName(p[o],"tbody")&&!p[o].childNodes.length&&p[o].parentNode.removeChild(p[o])}!v.support.leadingWhitespace&&pt.test(u)&&c.insertBefore(t.createTextNode(pt.exec(u)[0]),c.firstChild),u=c.childNodes,c.parentNode.removeChild(c)}u.nodeType?b.push(u):v.merge(b,u)}c&&(u=c=y=null);if(!v.support.appendChecked)for(s=0;(u=b[s])!=null;s++)v.nodeName(u,"input")?_t(u):typeof u.getElementsByTagName!="undefined"&&v.grep(u.getElementsByTagName("input"),_t);if(n){m=function(e){if(!e.type||xt.test(e.type))return r?r.push(e.parentNode?e.parentNode.removeChild(e):e):n.appendChild(e)};for(s=0;(u=b[s])!=null;s++)if(!v.nodeName(u,"script")||!m(u))n.appendChild(u),typeof u.getElementsByTagName!="undefined"&&(g=v.grep(v.merge([],u.getElementsByTagName("script")),m),b.splice.apply(b,[s+1,0].concat(g)),s+=g.length)}return b},cleanData:function(e,t){var n,r,i,s,o=0,u=v.expando,a=v.cache,f=v.support.deleteExpando,l=v.event.special;for(;(i=e[o])!=null;o++)if(t||v.acceptData(i)){r=i[u],n=r&&a[r];if(n){if(n.events)for(s in n.events)l[s]?v.event.remove(i,s):v.removeEvent(i,s,n.handle);a[r]&&(delete a[r],f?delete i[u]:i.removeAttribute?i.removeAttribute(u):i[u]=null,v.deletedIds.push(r))}}}}),function(){var e,t;v.uaMatch=function(e){e=e.toLowerCase();var t=/(chrome)[ \/]([\w.]+)/.exec(e)||/(webkit)[ \/]([\w.]+)/.exec(e)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(e)||/(msie) ([\w.]+)/.exec(e)||e.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(e)||[];return{browser:t[1]||"",version:t[2]||"0"}},e=v.uaMatch(o.userAgent),t={},e.browser&&(t[e.browser]=!0,t.version=e.version),t.chrome?t.webkit=!0:t.webkit&&(t.safari=!0),v.browser=t,v.sub=function(){function e(t,n){return new e.fn.init(t,n)}v.extend(!0,e,this),e.superclass=this,e.fn=e.prototype=this(),e.fn.constructor=e,e.sub=this.sub,e.fn.init=function(r,i){return i&&i instanceof v&&!(i instanceof e)&&(i=e(i)),v.fn.init.call(this,r,i,t)},e.fn.init.prototype=e.fn;var t=e(i);return e}}();var Dt,Pt,Ht,Bt=/alpha\([^)]*\)/i,jt=/opacity=([^)]*)/,Ft=/^(top|right|bottom|left)$/,It=/^(none|table(?!-c[ea]).+)/,qt=/^margin/,Rt=new RegExp("^("+m+")(.*)$","i"),Ut=new RegExp("^("+m+")(?!px)[a-z%]+$","i"),zt=new RegExp("^([-+])=("+m+")","i"),Wt={BODY:"block"},Xt={position:"absolute",visibility:"hidden",display:"block"},Vt={letterSpacing:0,fontWeight:400},$t=["Top","Right","Bottom","Left"],Jt=["Webkit","O","Moz","ms"],Kt=v.fn.toggle;v.fn.extend({css:function(e,n){return v.access(this,function(e,n,r){return r!==t?v.style(e,n,r):v.css(e,n)},e,n,arguments.length>1)},show:function(){return Yt(this,!0)},hide:function(){return Yt(this)},toggle:function(e,t){var n=typeof e=="boolean";return v.isFunction(e)&&v.isFunction(t)?Kt.apply(this,arguments):this.each(function(){(n?e:Gt(this))?v(this).show():v(this).hide()})}}),v.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Dt(e,"opacity");return n===""?"1":n}}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":v.support.cssFloat?"cssFloat":"styleFloat"},style:function(e,n,r,i){if(!e||e.nodeType===3||e.nodeType===8||!e.style)return;var s,o,u,a=v.camelCase(n),f=e.style;n=v.cssProps[a]||(v.cssProps[a]=Qt(f,a)),u=v.cssHooks[n]||v.cssHooks[a];if(r===t)return u&&"get"in u&&(s=u.get(e,!1,i))!==t?s:f[n];o=typeof r,o==="string"&&(s=zt.exec(r))&&(r=(s[1]+1)*s[2]+parseFloat(v.css(e,n)),o="number");if(r==null||o==="number"&&isNaN(r))return;o==="number"&&!v.cssNumber[a]&&(r+="px");if(!u||!("set"in u)||(r=u.set(e,r,i))!==t)try{f[n]=r}catch(l){}},css:function(e,n,r,i){var s,o,u,a=v.camelCase(n);return n=v.cssProps[a]||(v.cssProps[a]=Qt(e.style,a)),u=v.cssHooks[n]||v.cssHooks[a],u&&"get"in u&&(s=u.get(e,!0,i)),s===t&&(s=Dt(e,n)),s==="normal"&&n in Vt&&(s=Vt[n]),r||i!==t?(o=parseFloat(s),r||v.isNumeric(o)?o||0:s):s},swap:function(e,t,n){var r,i,s={};for(i in t)s[i]=e.style[i],e.style[i]=t[i];r=n.call(e);for(i in t)e.style[i]=s[i];return r}}),e.getComputedStyle?Dt=function(t,n){var r,i,s,o,u=e.getComputedStyle(t,null),a=t.style;return u&&(r=u.getPropertyValue(n)||u[n],r===""&&!v.contains(t.ownerDocument,t)&&(r=v.style(t,n)),Ut.test(r)&&qt.test(n)&&(i=a.width,s=a.minWidth,o=a.maxWidth,a.minWidth=a.maxWidth=a.width=r,r=u.width,a.width=i,a.minWidth=s,a.maxWidth=o)),r}:i.documentElement.currentStyle&&(Dt=function(e,t){var n,r,i=e.currentStyle&&e.currentStyle[t],s=e.style;return i==null&&s&&s[t]&&(i=s[t]),Ut.test(i)&&!Ft.test(t)&&(n=s.left,r=e.runtimeStyle&&e.runtimeStyle.left,r&&(e.runtimeStyle.left=e.currentStyle.left),s.left=t==="fontSize"?"1em":i,i=s.pixelLeft+"px",s.left=n,r&&(e.runtimeStyle.left=r)),i===""?"auto":i}),v.each(["height","width"],function(e,t){v.cssHooks[t]={get:function(e,n,r){if(n)return e.offsetWidth===0&&It.test(Dt(e,"display"))?v.swap(e,Xt,function(){return tn(e,t,r)}):tn(e,t,r)},set:function(e,n,r){return Zt(e,n,r?en(e,t,r,v.support.boxSizing&&v.css(e,"boxSizing")==="border-box"):0)}}}),v.support.opacity||(v.cssHooks.opacity={get:function(e,t){return jt.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,r=e.currentStyle,i=v.isNumeric(t)?"alpha(opacity="+t*100+")":"",s=r&&r.filter||n.filter||"";n.zoom=1;if(t>=1&&v.trim(s.replace(Bt,""))===""&&n.removeAttribute){n.removeAttribute("filter");if(r&&!r.filter)return}n.filter=Bt.test(s)?s.replace(Bt,i):s+" "+i}}),v(function(){v.support.reliableMarginRight||(v.cssHooks.marginRight={get:function(e,t){return v.swap(e,{display:"inline-block"},function(){if(t)return Dt(e,"marginRight")})}}),!v.support.pixelPosition&&v.fn.position&&v.each(["top","left"],function(e,t){v.cssHooks[t]={get:function(e,n){if(n){var r=Dt(e,t);return Ut.test(r)?v(e).position()[t]+"px":r}}}})}),v.expr&&v.expr.filters&&(v.expr.filters.hidden=function(e){return e.offsetWidth===0&&e.offsetHeight===0||!v.support.reliableHiddenOffsets&&(e.style&&e.style.display||Dt(e,"display"))==="none"},v.expr.filters.visible=function(e){return!v.expr.filters.hidden(e)}),v.each({margin:"",padding:"",border:"Width"},function(e,t){v.cssHooks[e+t]={expand:function(n){var r,i=typeof n=="string"?n.split(" "):[n],s={};for(r=0;r<4;r++)s[e+$t[r]+t]=i[r]||i[r-2]||i[0];return s}},qt.test(e)||(v.cssHooks[e+t].set=Zt)});var rn=/%20/g,sn=/\[\]$/,on=/\r?\n/g,un=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,an=/^(?:select|textarea)/i;v.fn.extend({serialize:function(){return v.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?v.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||an.test(this.nodeName)||un.test(this.type))}).map(function(e,t){var n=v(this).val();return n==null?null:v.isArray(n)?v.map(n,function(e,n){return{name:t.name,value:e.replace(on,"\r\n")}}):{name:t.name,value:n.replace(on,"\r\n")}}).get()}}),v.param=function(e,n){var r,i=[],s=function(e,t){t=v.isFunction(t)?t():t==null?"":t,i[i.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};n===t&&(n=v.ajaxSettings&&v.ajaxSettings.traditional);if(v.isArray(e)||e.jquery&&!v.isPlainObject(e))v.each(e,function(){s(this.name,this.value)});else for(r in e)fn(r,e[r],n,s);return i.join("&").replace(rn,"+")};var ln,cn,hn=/#.*$/,pn=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,dn=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,vn=/^(?:GET|HEAD)$/,mn=/^\/\//,gn=/\?/,yn=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,bn=/([?&])_=[^&]*/,wn=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,En=v.fn.load,Sn={},xn={},Tn=["*/"]+["*"];try{cn=s.href}catch(Nn){cn=i.createElement("a"),cn.href="",cn=cn.href}ln=wn.exec(cn.toLowerCase())||[],v.fn.load=function(e,n,r){if(typeof e!="string"&&En)return En.apply(this,arguments);if(!this.length)return this;var i,s,o,u=this,a=e.indexOf(" ");return a>=0&&(i=e.slice(a,e.length),e=e.slice(0,a)),v.isFunction(n)?(r=n,n=t):n&&typeof n=="object"&&(s="POST"),v.ajax({url:e,type:s,dataType:"html",data:n,complete:function(e,t){r&&u.each(r,o||[e.responseText,t,e])}}).done(function(e){o=arguments,u.html(i?v("<div>").append(e.replace(yn,"")).find(i):e)}),this},v.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(e,t){v.fn[t]=function(e){return this.on(t,e)}}),v.each(["get","post"],function(e,n){v[n]=function(e,r,i,s){return v.isFunction(r)&&(s=s||i,i=r,r=t),v.ajax({type:n,url:e,data:r,success:i,dataType:s})}}),v.extend({getScript:function(e,n){return v.get(e,t,n,"script")},getJSON:function(e,t,n){return v.get(e,t,n,"json")},ajaxSetup:function(e,t){return t?Ln(e,v.ajaxSettings):(t=e,e=v.ajaxSettings),Ln(e,t),e},ajaxSettings:{url:cn,isLocal:dn.test(ln[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded; charset=UTF-8",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":Tn},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":e.String,"text html":!0,"text json":v.parseJSON,"text xml":v.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:Cn(Sn),ajaxTransport:Cn(xn),ajax:function(e,n){function T(e,n,s,a){var l,y,b,w,S,T=n;if(E===2)return;E=2,u&&clearTimeout(u),o=t,i=a||"",x.readyState=e>0?4:0,s&&(w=An(c,x,s));if(e>=200&&e<300||e===304)c.ifModified&&(S=x.getResponseHeader("Last-Modified"),S&&(v.lastModified[r]=S),S=x.getResponseHeader("Etag"),S&&(v.etag[r]=S)),e===304?(T="notmodified",l=!0):(l=On(c,w),T=l.state,y=l.data,b=l.error,l=!b);else{b=T;if(!T||e)T="error",e<0&&(e=0)}x.status=e,x.statusText=(n||T)+"",l?d.resolveWith(h,[y,T,x]):d.rejectWith(h,[x,T,b]),x.statusCode(g),g=t,f&&p.trigger("ajax"+(l?"Success":"Error"),[x,c,l?y:b]),m.fireWith(h,[x,T]),f&&(p.trigger("ajaxComplete",[x,c]),--v.active||v.event.trigger("ajaxStop"))}typeof e=="object"&&(n=e,e=t),n=n||{};var r,i,s,o,u,a,f,l,c=v.ajaxSetup({},n),h=c.context||c,p=h!==c&&(h.nodeType||h instanceof v)?v(h):v.event,d=v.Deferred(),m=v.Callbacks("once memory"),g=c.statusCode||{},b={},w={},E=0,S="canceled",x={readyState:0,setRequestHeader:function(e,t){if(!E){var n=e.toLowerCase();e=w[n]=w[n]||e,b[e]=t}return this},getAllResponseHeaders:function(){return E===2?i:null},getResponseHeader:function(e){var n;if(E===2){if(!s){s={};while(n=pn.exec(i))s[n[1].toLowerCase()]=n[2]}n=s[e.toLowerCase()]}return n===t?null:n},overrideMimeType:function(e){return E||(c.mimeType=e),this},abort:function(e){return e=e||S,o&&o.abort(e),T(0,e),this}};d.promise(x),x.success=x.done,x.error=x.fail,x.complete=m.add,x.statusCode=function(e){if(e){var t;if(E<2)for(t in e)g[t]=[g[t],e[t]];else t=e[x.status],x.always(t)}return this},c.url=((e||c.url)+"").replace(hn,"").replace(mn,ln[1]+"//"),c.dataTypes=v.trim(c.dataType||"*").toLowerCase().split(y),c.crossDomain==null&&(a=wn.exec(c.url.toLowerCase()),c.crossDomain=!(!a||a[1]===ln[1]&&a[2]===ln[2]&&(a[3]||(a[1]==="http:"?80:443))==(ln[3]||(ln[1]==="http:"?80:443)))),c.data&&c.processData&&typeof c.data!="string"&&(c.data=v.param(c.data,c.traditional)),kn(Sn,c,n,x);if(E===2)return x;f=c.global,c.type=c.type.toUpperCase(),c.hasContent=!vn.test(c.type),f&&v.active++===0&&v.event.trigger("ajaxStart");if(!c.hasContent){c.data&&(c.url+=(gn.test(c.url)?"&":"?")+c.data,delete c.data),r=c.url;if(c.cache===!1){var N=v.now(),C=c.url.replace(bn,"$1_="+N);c.url=C+(C===c.url?(gn.test(c.url)?"&":"?")+"_="+N:"")}}(c.data&&c.hasContent&&c.contentType!==!1||n.contentType)&&x.setRequestHeader("Content-Type",c.contentType),c.ifModified&&(r=r||c.url,v.lastModified[r]&&x.setRequestHeader("If-Modified-Since",v.lastModified[r]),v.etag[r]&&x.setRequestHeader("If-None-Match",v.etag[r])),x.setRequestHeader("Accept",c.dataTypes[0]&&c.accepts[c.dataTypes[0]]?c.accepts[c.dataTypes[0]]+(c.dataTypes[0]!=="*"?", "+Tn+"; q=0.01":""):c.accepts["*"]);for(l in c.headers)x.setRequestHeader(l,c.headers[l]);if(!c.beforeSend||c.beforeSend.call(h,x,c)!==!1&&E!==2){S="abort";for(l in{success:1,error:1,complete:1})x[l](c[l]);o=kn(xn,c,n,x);if(!o)T(-1,"No Transport");else{x.readyState=1,f&&p.trigger("ajaxSend",[x,c]),c.async&&c.timeout>0&&(u=setTimeout(function(){x.abort("timeout")},c.timeout));try{E=1,o.send(b,T)}catch(k){if(!(E<2))throw k;T(-1,k)}}return x}return x.abort()},active:0,lastModified:{},etag:{}});var Mn=[],_n=/\?/,Dn=/(=)\?(?=&|$)|\?\?/,Pn=v.now();v.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Mn.pop()||v.expando+"_"+Pn++;return this[e]=!0,e}}),v.ajaxPrefilter("json jsonp",function(n,r,i){var s,o,u,a=n.data,f=n.url,l=n.jsonp!==!1,c=l&&Dn.test(f),h=l&&!c&&typeof a=="string"&&!(n.contentType||"").indexOf("application/x-www-form-urlencoded")&&Dn.test(a);if(n.dataTypes[0]==="jsonp"||c||h)return s=n.jsonpCallback=v.isFunction(n.jsonpCallback)?n.jsonpCallback():n.jsonpCallback,o=e[s],c?n.url=f.replace(Dn,"$1"+s):h?n.data=a.replace(Dn,"$1"+s):l&&(n.url+=(_n.test(f)?"&":"?")+n.jsonp+"="+s),n.converters["script json"]=function(){return u||v.error(s+" was not called"),u[0]},n.dataTypes[0]="json",e[s]=function(){u=arguments},i.always(function(){e[s]=o,n[s]&&(n.jsonpCallback=r.jsonpCallback,Mn.push(s)),u&&v.isFunction(o)&&o(u[0]),u=o=t}),"script"}),v.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(e){return v.globalEval(e),e}}}),v.ajaxPrefilter("script",function(e){e.cache===t&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),v.ajaxTransport("script",function(e){if(e.crossDomain){var n,r=i.head||i.getElementsByTagName("head")[0]||i.documentElement;return{send:function(s,o){n=i.createElement("script"),n.async="async",e.scriptCharset&&(n.charset=e.scriptCharset),n.src=e.url,n.onload=n.onreadystatechange=function(e,i){if(i||!n.readyState||/loaded|complete/.test(n.readyState))n.onload=n.onreadystatechange=null,r&&n.parentNode&&r.removeChild(n),n=t,i||o(200,"success")},r.insertBefore(n,r.firstChild)},abort:function(){n&&n.onload(0,1)}}}});var Hn,Bn=e.ActiveXObject?function(){for(var e in Hn)Hn[e](0,1)}:!1,jn=0;v.ajaxSettings.xhr=e.ActiveXObject?function(){return!this.isLocal&&Fn()||In()}:Fn,function(e){v.extend(v.support,{ajax:!!e,cors:!!e&&"withCredentials"in e})}(v.ajaxSettings.xhr()),v.support.ajax&&v.ajaxTransport(function(n){if(!n.crossDomain||v.support.cors){var r;return{send:function(i,s){var o,u,a=n.xhr();n.username?a.open(n.type,n.url,n.async,n.username,n.password):a.open(n.type,n.url,n.async);if(n.xhrFields)for(u in n.xhrFields)a[u]=n.xhrFields[u];n.mimeType&&a.overrideMimeType&&a.overrideMimeType(n.mimeType),!n.crossDomain&&!i["X-Requested-With"]&&(i["X-Requested-With"]="XMLHttpRequest");try{for(u in i)a.setRequestHeader(u,i[u])}catch(f){}a.send(n.hasContent&&n.data||null),r=function(e,i){var u,f,l,c,h;try{if(r&&(i||a.readyState===4)){r=t,o&&(a.onreadystatechange=v.noop,Bn&&delete Hn[o]);if(i)a.readyState!==4&&a.abort();else{u=a.status,l=a.getAllResponseHeaders(),c={},h=a.responseXML,h&&h.documentElement&&(c.xml=h);try{c.text=a.responseText}catch(p){}try{f=a.statusText}catch(p){f=""}!u&&n.isLocal&&!n.crossDomain?u=c.text?200:404:u===1223&&(u=204)}}}catch(d){i||s(-1,d)}c&&s(u,f,c,l)},n.async?a.readyState===4?setTimeout(r,0):(o=++jn,Bn&&(Hn||(Hn={},v(e).unload(Bn)),Hn[o]=r),a.onreadystatechange=r):r()},abort:function(){r&&r(0,1)}}}});var qn,Rn,Un=/^(?:toggle|show|hide)$/,zn=new RegExp("^(?:([-+])=|)("+m+")([a-z%]*)$","i"),Wn=/queueHooks$/,Xn=[Gn],Vn={"*":[function(e,t){var n,r,i=this.createTween(e,t),s=zn.exec(t),o=i.cur(),u=+o||0,a=1,f=20;if(s){n=+s[2],r=s[3]||(v.cssNumber[e]?"":"px");if(r!=="px"&&u){u=v.css(i.elem,e,!0)||n||1;do a=a||".5",u/=a,v.style(i.elem,e,u+r);while(a!==(a=i.cur()/o)&&a!==1&&--f)}i.unit=r,i.start=u,i.end=s[1]?u+(s[1]+1)*n:n}return i}]};v.Animation=v.extend(Kn,{tweener:function(e,t){v.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");var n,r=0,i=e.length;for(;r<i;r++)n=e[r],Vn[n]=Vn[n]||[],Vn[n].unshift(t)},prefilter:function(e,t){t?Xn.unshift(e):Xn.push(e)}}),v.Tween=Yn,Yn.prototype={constructor:Yn,init:function(e,t,n,r,i,s){this.elem=e,this.prop=n,this.easing=i||"swing",this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=s||(v.cssNumber[n]?"":"px")},cur:function(){var e=Yn.propHooks[this.prop];return e&&e.get?e.get(this):Yn.propHooks._default.get(this)},run:function(e){var t,n=Yn.propHooks[this.prop];return this.options.duration?this.pos=t=v.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):Yn.propHooks._default.set(this),this}},Yn.prototype.init.prototype=Yn.prototype,Yn.propHooks={_default:{get:function(e){var t;return e.elem[e.prop]==null||!!e.elem.style&&e.elem.style[e.prop]!=null?(t=v.css(e.elem,e.prop,!1,""),!t||t==="auto"?0:t):e.elem[e.prop]},set:function(e){v.fx.step[e.prop]?v.fx.step[e.prop](e):e.elem.style&&(e.elem.style[v.cssProps[e.prop]]!=null||v.cssHooks[e.prop])?v.style(e.elem,e.prop,e.now+e.unit):e.elem[e.prop]=e.now}}},Yn.propHooks.scrollTop=Yn.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},v.each(["toggle","show","hide"],function(e,t){var n=v.fn[t];v.fn[t]=function(r,i,s){return r==null||typeof r=="boolean"||!e&&v.isFunction(r)&&v.isFunction(i)?n.apply(this,arguments):this.animate(Zn(t,!0),r,i,s)}}),v.fn.extend({fadeTo:function(e,t,n,r){return this.filter(Gt).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=v.isEmptyObject(e),s=v.speed(t,n,r),o=function(){var t=Kn(this,v.extend({},e),s);i&&t.stop(!0)};return i||s.queue===!1?this.each(o):this.queue(s.queue,o)},stop:function(e,n,r){var i=function(e){var t=e.stop;delete e.stop,t(r)};return typeof e!="string"&&(r=n,n=e,e=t),n&&e!==!1&&this.queue(e||"fx",[]),this.each(function(){var t=!0,n=e!=null&&e+"queueHooks",s=v.timers,o=v._data(this);if(n)o[n]&&o[n].stop&&i(o[n]);else for(n in o)o[n]&&o[n].stop&&Wn.test(n)&&i(o[n]);for(n=s.length;n--;)s[n].elem===this&&(e==null||s[n].queue===e)&&(s[n].anim.stop(r),t=!1,s.splice(n,1));(t||!r)&&v.dequeue(this,e)})}}),v.each({slideDown:Zn("show"),slideUp:Zn("hide"),slideToggle:Zn("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){v.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),v.speed=function(e,t,n){var r=e&&typeof e=="object"?v.extend({},e):{complete:n||!n&&t||v.isFunction(e)&&e,duration:e,easing:n&&t||t&&!v.isFunction(t)&&t};r.duration=v.fx.off?0:typeof r.duration=="number"?r.duration:r.duration in v.fx.speeds?v.fx.speeds[r.duration]:v.fx.speeds._default;if(r.queue==null||r.queue===!0)r.queue="fx";return r.old=r.complete,r.complete=function(){v.isFunction(r.old)&&r.old.call(this),r.queue&&v.dequeue(this,r.queue)},r},v.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2}},v.timers=[],v.fx=Yn.prototype.init,v.fx.tick=function(){var e,n=v.timers,r=0;qn=v.now();for(;r<n.length;r++)e=n[r],!e()&&n[r]===e&&n.splice(r--,1);n.length||v.fx.stop(),qn=t},v.fx.timer=function(e){e()&&v.timers.push(e)&&!Rn&&(Rn=setInterval(v.fx.tick,v.fx.interval))},v.fx.interval=13,v.fx.stop=function(){clearInterval(Rn),Rn=null},v.fx.speeds={slow:600,fast:200,_default:400},v.fx.step={},v.expr&&v.expr.filters&&(v.expr.filters.animated=function(e){return v.grep(v.timers,function(t){return e===t.elem}).length});var er=/^(?:body|html)$/i;v.fn.offset=function(e){if(arguments.length)return e===t?this:this.each(function(t){v.offset.setOffset(this,e,t)});var n,r,i,s,o,u,a,f={top:0,left:0},l=this[0],c=l&&l.ownerDocument;if(!c)return;return(r=c.body)===l?v.offset.bodyOffset(l):(n=c.documentElement,v.contains(n,l)?(typeof l.getBoundingClientRect!="undefined"&&(f=l.getBoundingClientRect()),i=tr(c),s=n.clientTop||r.clientTop||0,o=n.clientLeft||r.clientLeft||0,u=i.pageYOffset||n.scrollTop,a=i.pageXOffset||n.scrollLeft,{top:f.top+u-s,left:f.left+a-o}):f)},v.offset={bodyOffset:function(e){var t=e.offsetTop,n=e.offsetLeft;return v.support.doesNotIncludeMarginInBodyOffset&&(t+=parseFloat(v.css(e,"marginTop"))||0,n+=parseFloat(v.css(e,"marginLeft"))||0),{top:t,left:n}},setOffset:function(e,t,n){var r=v.css(e,"position");r==="static"&&(e.style.position="relative");var i=v(e),s=i.offset(),o=v.css(e,"top"),u=v.css(e,"left"),a=(r==="absolute"||r==="fixed")&&v.inArray("auto",[o,u])>-1,f={},l={},c,h;a?(l=i.position(),c=l.top,h=l.left):(c=parseFloat(o)||0,h=parseFloat(u)||0),v.isFunction(t)&&(t=t.call(e,n,s)),t.top!=null&&(f.top=t.top-s.top+c),t.left!=null&&(f.left=t.left-s.left+h),"using"in t?t.using.call(e,f):i.css(f)}},v.fn.extend({position:function(){if(!this[0])return;var e=this[0],t=this.offsetParent(),n=this.offset(),r=er.test(t[0].nodeName)?{top:0,left:0}:t.offset();return n.top-=parseFloat(v.css(e,"marginTop"))||0,n.left-=parseFloat(v.css(e,"marginLeft"))||0,r.top+=parseFloat(v.css(t[0],"borderTopWidth"))||0,r.left+=parseFloat(v.css(t[0],"borderLeftWidth"))||0,{top:n.top-r.top,left:n.left-r.left}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||i.body;while(e&&!er.test(e.nodeName)&&v.css(e,"position")==="static")e=e.offsetParent;return e||i.body})}}),v.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,n){var r=/Y/.test(n);v.fn[e]=function(i){return v.access(this,function(e,i,s){var o=tr(e);if(s===t)return o?n in o?o[n]:o.document.documentElement[i]:e[i];o?o.scrollTo(r?v(o).scrollLeft():s,r?s:v(o).scrollTop()):e[i]=s},e,i,arguments.length,null)}}),v.each({Height:"height",Width:"width"},function(e,n){v.each({padding:"inner"+e,content:n,"":"outer"+e},function(r,i){v.fn[i]=function(i,s){var o=arguments.length&&(r||typeof i!="boolean"),u=r||(i===!0||s===!0?"margin":"border");return v.access(this,function(n,r,i){var s;return v.isWindow(n)?n.document.documentElement["client"+e]:n.nodeType===9?(s=n.documentElement,Math.max(n.body["scroll"+e],s["scroll"+e],n.body["offset"+e],s["offset"+e],s["client"+e])):i===t?v.css(n,r,i,u):v.style(n,r,i,u)},n,o?i:t,o,null)}})}),e.jQuery=e.$=v,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return v})})(window); \ No newline at end of file | ||
diff --git a/Blocks/post/snowfall.min.js b/Blocks/post/snowfall.min.js new file mode 100644 index 0000000..82957e9 --- /dev/null +++ b/Blocks/post/snowfall.min.js | |||
@@ -0,0 +1,5 @@ | |||
1 | var snowFall=function(){function g(){var a={flakeCount:35,flakeColor:"#ffffff",flakeIndex:999999,minSize:1,maxSize:2,minSpeed:1,maxSpeed:5,round:!1,shadow:!1,collection:!1,image:!1,collectionHeight:40},b={},c=[],g=0,m=0,j=0,k=0,l=0,h=0,f=0,e=function(a,b){return Math.round(a+Math.random()*(b-a))},n=function(a,b){for(var c in b)a.style[c]=b[c]+("width"==c||"height"==c||0<=c.indexOf("radius")?"px":"")},r=function(d,b,c,g,f){this.id=f;this.x=d+l;this.y=b+k;this.size=c;this.speed=g;this.step=0;this.stepSize= | ||
2 | e(1,10)/100;a.collection&&(this.target=canvasCollection[e(0,canvasCollection.length-1)]);d=null;a.image?(d=new Image,d.src=a.image):(d=document.createElement("div"),n(d,{background:a.flakeColor}));d.className="snowfall-flakes";d.setAttribute("id","flake-"+this.id);n(d,{width:this.size,height:this.size,position:"absolute",top:this.y,left:this.x,fontSize:0,zIndex:a.flakeIndex});a.round&&(d.style,n(d,{"-moz-border-radius":a.maxSize,"-webkit-border-radius":a.maxSize,borderRadius:a.maxSize}));a.shadow&& | ||
3 | n(d,{"-moz-box-shadow":"1px 1px 1px #555","-webkit-box-shadow":"1px 1px 1px #555",boxShadow:"1px 1px 1px #555"});document.body.appendChild(d);this.element=d;this.update=function(){this.y+=this.speed;this.y>k+m-(this.size+6)&&this.reset();this.element.style.top=this.y+"px";this.element.style.left=~~this.x+"px";this.step+=this.stepSize;this.x+=Math.cos(this.step);(this.x>l+j-h||this.x<h)&&this.reset()};this.reset=function(){this.y=k;this.x=l+e(h,j-h);this.stepSize=e(1,10)/100;this.size=e(100*a.minSize, | ||
4 | 100*a.maxSize)/100;this.speed=e(a.minSpeed,a.maxSpeed)}},q=function(){for(var a=0;a<c.length;a+=1)c[a].update();f=setTimeout(function(){q()},30)};return{snow:function(d,p){for(var f in p)a.hasOwnProperty(f)&&(a[f]=p[f]);b=d;m=b.clientHeight;j=b.offsetWidth;k=b.offsetTop;l=b.offsetLeft;b.snow=this;"body"===b.tagName.toLowerCase()&&(h=25);window.onresize=function(){m=b.clientHeight;j=b.offsetWidth;k=b.offsetTop;l=b.offsetLeft};for(i=0;i<a.flakeCount;i+=1)g=c.length,c.push(new r(e(h,j-h),e(0,m),e(100* | ||
5 | a.minSize,100*a.maxSize)/100,e(a.minSpeed,a.maxSpeed),g));q()},clear:function(){for(var a=null,a=b.getElementsByClassName?b.getElementsByClassName("snowfall-flakes"):b.querySelectorAll(".snowfall-flakes"),e=a.length;e--;)b.removeChild(a[e]);c=[];clearTimeout(f)}}}return{snow:function(a,b){if("string"==typeof b)if(0<a.length)for(var c=0;c<a.length;c++)a[c].snow&&a[c].snow.clear();else a.snow.clear();else if(0<a.length)for(c=0;c<a.length;c++)(new g).snow(a[c],b);else(new g).snow(a,b)}}}(); \ No newline at end of file | ||
diff --git a/Blocks/post/style.css b/Blocks/post/style.css new file mode 100644 index 0000000..3507ef8 --- /dev/null +++ b/Blocks/post/style.css | |||
@@ -0,0 +1,62 @@ | |||
1 | @import url(http://fonts.googleapis.com/css?family=Codystar); | ||
2 | |||
3 | body { | ||
4 | background: white; | ||
5 | margin: 0; | ||
6 | } | ||
7 | |||
8 | section { | ||
9 | margin: auto; | ||
10 | margin-top: 10px; | ||
11 | background: #333; | ||
12 | background-size:550px; | ||
13 | width: 700px; | ||
14 | height: 419px; | ||
15 | color: white; | ||
16 | font-family: Codystar, san-serif; | ||
17 | position: relative; | ||
18 | border: 20px solid white; | ||
19 | outline: 1px solid #Ccc; | ||
20 | } | ||
21 | |||
22 | .imageblock { | ||
23 | margin-top:0px; | ||
24 | height:419px; | ||
25 | width:350px; | ||
26 | background: url('http://codecademy-content.s3.amazonaws.com/projects/wHS5Dt/champagne.png'); | ||
27 | background-position: 0px 0px; | ||
28 | |||
29 | } | ||
30 | /* Image CC Some rights reserved by Alan Kim - http://www.flickr.com/photos/igraph/8329238413/sizes/l/ */ | ||
31 | |||
32 | h1 { | ||
33 | /* Any styles here just affect your "<h1>" tags. */ | ||
34 | font-size: 65px; | ||
35 | position: absolute; | ||
36 | margin: 0; | ||
37 | top: 50px; | ||
38 | left: 400px; | ||
39 | } | ||
40 | |||
41 | h2 { | ||
42 | font-size: 14px; | ||
43 | position: absolute; | ||
44 | margin: 0; | ||
45 | top: 320px; | ||
46 | left: 400px; | ||
47 | font-family: arial; | ||
48 | font-weight:normal; | ||
49 | } | ||
50 | |||
51 | p { | ||
52 | |||
53 | margin: 0; | ||
54 | padding-top: 60px; | ||
55 | padding-left: 100px; | ||
56 | } | ||
57 | |||
58 | img { | ||
59 | position: absolute; | ||
60 | top: 200px; | ||
61 | left: 120px; | ||
62 | } | ||
diff --git a/Blocks/syntax/LGPL-LICENSE b/Blocks/syntax/LGPL-LICENSE new file mode 100644 index 0000000..3f9959f --- /dev/null +++ b/Blocks/syntax/LGPL-LICENSE | |||
@@ -0,0 +1,165 @@ | |||
1 | GNU LESSER GENERAL PUBLIC LICENSE | ||
2 | Version 3, 29 June 2007 | ||
3 | |||
4 | Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/> | ||
5 | Everyone is permitted to copy and distribute verbatim copies | ||
6 | of this license document, but changing it is not allowed. | ||
7 | |||
8 | |||
9 | This version of the GNU Lesser General Public License incorporates | ||
10 | the terms and conditions of version 3 of the GNU General Public | ||
11 | License, supplemented by the additional permissions listed below. | ||
12 | |||
13 | 0. Additional Definitions. | ||
14 | |||
15 | As used herein, "this License" refers to version 3 of the GNU Lesser | ||
16 | General Public License, and the "GNU GPL" refers to version 3 of the GNU | ||
17 | General Public License. | ||
18 | |||
19 | "The Library" refers to a covered work governed by this License, | ||
20 | other than an Application or a Combined Work as defined below. | ||
21 | |||
22 | An "Application" is any work that makes use of an interface provided | ||
23 | by the Library, but which is not otherwise based on the Library. | ||
24 | Defining a subclass of a class defined by the Library is deemed a mode | ||
25 | of using an interface provided by the Library. | ||
26 | |||
27 | A "Combined Work" is a work produced by combining or linking an | ||
28 | Application with the Library. The particular version of the Library | ||
29 | with which the Combined Work was made is also called the "Linked | ||
30 | Version". | ||
31 | |||
32 | The "Minimal Corresponding Source" for a Combined Work means the | ||
33 | Corresponding Source for the Combined Work, excluding any source code | ||
34 | for portions of the Combined Work that, considered in isolation, are | ||
35 | based on the Application, and not on the Linked Version. | ||
36 | |||
37 | The "Corresponding Application Code" for a Combined Work means the | ||
38 | object code and/or source code for the Application, including any data | ||
39 | and utility programs needed for reproducing the Combined Work from the | ||
40 | Application, but excluding the System Libraries of the Combined Work. | ||
41 | |||
42 | 1. Exception to Section 3 of the GNU GPL. | ||
43 | |||
44 | You may convey a covered work under sections 3 and 4 of this License | ||
45 | without being bound by section 3 of the GNU GPL. | ||
46 | |||
47 | 2. Conveying Modified Versions. | ||
48 | |||
49 | If you modify a copy of the Library, and, in your modifications, a | ||
50 | facility refers to a function or data to be supplied by an Application | ||
51 | that uses the facility (other than as an argument passed when the | ||
52 | facility is invoked), then you may convey a copy of the modified | ||
53 | version: | ||
54 | |||
55 | a) under this License, provided that you make a good faith effort to | ||
56 | ensure that, in the event an Application does not supply the | ||
57 | function or data, the facility still operates, and performs | ||
58 | whatever part of its purpose remains meaningful, or | ||
59 | |||
60 | b) under the GNU GPL, with none of the additional permissions of | ||
61 | this License applicable to that copy. | ||
62 | |||
63 | 3. Object Code Incorporating Material from Library Header Files. | ||
64 | |||
65 | The object code form of an Application may incorporate material from | ||
66 | a header file that is part of the Library. You may convey such object | ||
67 | code under terms of your choice, provided that, if the incorporated | ||
68 | material is not limited to numerical parameters, data structure | ||
69 | layouts and accessors, or small macros, inline functions and templates | ||
70 | (ten or fewer lines in length), you do both of the following: | ||
71 | |||
72 | a) Give prominent notice with each copy of the object code that the | ||
73 | Library is used in it and that the Library and its use are | ||
74 | covered by this License. | ||
75 | |||
76 | b) Accompany the object code with a copy of the GNU GPL and this license | ||
77 | document. | ||
78 | |||
79 | 4. Combined Works. | ||
80 | |||
81 | You may convey a Combined Work under terms of your choice that, | ||
82 | taken together, effectively do not restrict modification of the | ||
83 | portions of the Library contained in the Combined Work and reverse | ||
84 | engineering for debugging such modifications, if you also do each of | ||
85 | the following: | ||
86 | |||
87 | a) Give prominent notice with each copy of the Combined Work that | ||
88 | the Library is used in it and that the Library and its use are | ||
89 | covered by this License. | ||
90 | |||
91 | b) Accompany the Combined Work with a copy of the GNU GPL and this license | ||
92 | document. | ||
93 | |||
94 | c) For a Combined Work that displays copyright notices during | ||
95 | execution, include the copyright notice for the Library among | ||
96 | these notices, as well as a reference directing the user to the | ||
97 | copies of the GNU GPL and this license document. | ||
98 | |||
99 | d) Do one of the following: | ||
100 | |||
101 | 0) Convey the Minimal Corresponding Source under the terms of this | ||
102 | License, and the Corresponding Application Code in a form | ||
103 | suitable for, and under terms that permit, the user to | ||
104 | recombine or relink the Application with a modified version of | ||
105 | the Linked Version to produce a modified Combined Work, in the | ||
106 | manner specified by section 6 of the GNU GPL for conveying | ||
107 | Corresponding Source. | ||
108 | |||
109 | 1) Use a suitable shared library mechanism for linking with the | ||
110 | Library. A suitable mechanism is one that (a) uses at run time | ||
111 | a copy of the Library already present on the user's computer | ||
112 | system, and (b) will operate properly with a modified version | ||
113 | of the Library that is interface-compatible with the Linked | ||
114 | Version. | ||
115 | |||
116 | e) Provide Installation Information, but only if you would otherwise | ||
117 | be required to provide such information under section 6 of the | ||
118 | GNU GPL, and only to the extent that such information is | ||
119 | necessary to install and execute a modified version of the | ||
120 | Combined Work produced by recombining or relinking the | ||
121 | Application with a modified version of the Linked Version. (If | ||
122 | you use option 4d0, the Installation Information must accompany | ||
123 | the Minimal Corresponding Source and Corresponding Application | ||
124 | Code. If you use option 4d1, you must provide the Installation | ||
125 | Information in the manner specified by section 6 of the GNU GPL | ||
126 | for conveying Corresponding Source.) | ||
127 | |||
128 | 5. Combined Libraries. | ||
129 | |||
130 | You may place library facilities that are a work based on the | ||
131 | Library side by side in a single library together with other library | ||
132 | facilities that are not Applications and are not covered by this | ||
133 | License, and convey such a combined library under terms of your | ||
134 | choice, if you do both of the following: | ||
135 | |||
136 | a) Accompany the combined library with a copy of the same work based | ||
137 | on the Library, uncombined with any other library facilities, | ||
138 | conveyed under the terms of this License. | ||
139 | |||
140 | b) Give prominent notice with the combined library that part of it | ||
141 | is a work based on the Library, and explaining where to find the | ||
142 | accompanying uncombined form of the same work. | ||
143 | |||
144 | 6. Revised Versions of the GNU Lesser General Public License. | ||
145 | |||
146 | The Free Software Foundation may publish revised and/or new versions | ||
147 | of the GNU Lesser General Public License from time to time. Such new | ||
148 | versions will be similar in spirit to the present version, but may | ||
149 | differ in detail to address new problems or concerns. | ||
150 | |||
151 | Each version is given a distinguishing version number. If the | ||
152 | Library as you received it specifies that a certain numbered version | ||
153 | of the GNU Lesser General Public License "or any later version" | ||
154 | applies to it, you have the option of following the terms and | ||
155 | conditions either of that published version or of any later version | ||
156 | published by the Free Software Foundation. If the Library as you | ||
157 | received it does not specify a version number of the GNU Lesser | ||
158 | General Public License, you may choose any version of the GNU Lesser | ||
159 | General Public License ever published by the Free Software Foundation. | ||
160 | |||
161 | If the Library as you received it specifies that a proxy can decide | ||
162 | whether future versions of the GNU Lesser General Public License shall | ||
163 | apply, that proxy's public statement of acceptance of any version is | ||
164 | permanent authorization for you to choose that version for the | ||
165 | Library. \ No newline at end of file | ||
diff --git a/Blocks/syntax/MIT-LICENSE b/Blocks/syntax/MIT-LICENSE new file mode 100644 index 0000000..e7c70ba --- /dev/null +++ b/Blocks/syntax/MIT-LICENSE | |||
@@ -0,0 +1,20 @@ | |||
1 | Copyright (c) 2003, 2004 Jim Weirich | ||
2 | |||
3 | Permission is hereby granted, free of charge, to any person obtaining | ||
4 | a copy of this software and associated documentation files (the | ||
5 | "Software"), to deal in the Software without restriction, including | ||
6 | without limitation the rights to use, copy, modify, merge, publish, | ||
7 | distribute, sublicense, and/or sell copies of the Software, and to | ||
8 | permit persons to whom the Software is furnished to do so, subject to | ||
9 | the following conditions: | ||
10 | |||
11 | The above copyright notice and this permission notice shall be | ||
12 | included in all copies or substantial portions of the Software. | ||
13 | |||
14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | ||
15 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF | ||
16 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | ||
17 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE | ||
18 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION | ||
19 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION | ||
20 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||
diff --git a/Blocks/syntax/compass/_theme_template.scss b/Blocks/syntax/compass/_theme_template.scss new file mode 100644 index 0000000..53f4df5 --- /dev/null +++ b/Blocks/syntax/compass/_theme_template.scss | |||
@@ -0,0 +1,120 @@ | |||
1 | $background: white !default; | ||
2 | |||
3 | $line_alt1_background: $background !default; | ||
4 | $line_alt2_background: $background !default; | ||
5 | |||
6 | $line_highlighted_background: #e0e0e0 !default; | ||
7 | $line_highlighted_number: black !default; | ||
8 | |||
9 | $gutter_text: #afafaf !default; | ||
10 | $gutter_border_color: #6ce26c !default; | ||
11 | $gutter_border: 3px solid $gutter_border_color !default; | ||
12 | |||
13 | $toolbar_collapsed_a: #00f !default; | ||
14 | $toolbar_collapsed_a_hover: #f00 !default; | ||
15 | $toolbar_collapsed_background: #fff !default; | ||
16 | $toolbar_collapsed_border: 1px solid $gutter_border_color !default; | ||
17 | |||
18 | $toolbar_a: #fff !default; | ||
19 | $toolbar_a_hover: #000 !default; | ||
20 | $toolbar_background: $gutter_border_color !default; | ||
21 | $toolbar_border: none !default; | ||
22 | |||
23 | $code_plain: black !default; | ||
24 | $code_comments: #008200 !default; | ||
25 | $code_string: blue !default; | ||
26 | $code_keyword: #006699 !default; | ||
27 | $code_preprocessor: gray !default; | ||
28 | $code_variable: #aa7700 !default; | ||
29 | $code_value: #009900 !default; | ||
30 | $code_functions: #ff1493 !default; | ||
31 | $code_constants: #0066cc !default; | ||
32 | $code_script: $code_keyword !default; | ||
33 | $code_script_background: none !default; | ||
34 | $code_color1: gray !default; | ||
35 | $code_color2: #ff1493 !default; | ||
36 | $code_color3: red !default; | ||
37 | |||
38 | $caption_color: $code_plain !default; | ||
39 | |||
40 | // Interface elements. | ||
41 | .syntaxhighlighter { | ||
42 | background-color: $background !important; | ||
43 | |||
44 | // Highlighed line number | ||
45 | .line { | ||
46 | &.alt1 { background-color: $line_alt1_background !important; } | ||
47 | &.alt2 { background-color: $line_alt2_background !important; } | ||
48 | |||
49 | // Highlighed line | ||
50 | &.highlighted { | ||
51 | &.alt1, &.alt2 { background-color: $line_highlighted_background !important; } | ||
52 | &.number { color: $line_highlighted_number !important; } | ||
53 | } | ||
54 | } | ||
55 | |||
56 | table { | ||
57 | caption { | ||
58 | color: $caption_color !important; | ||
59 | } | ||
60 | } | ||
61 | |||
62 | // Add border to the lines | ||
63 | .gutter { | ||
64 | color: $gutter_text !important; | ||
65 | .line { | ||
66 | border-right: $gutter_border !important; | ||
67 | |||
68 | &.highlighted { | ||
69 | background-color: $gutter_border_color !important; | ||
70 | color: $background !important; | ||
71 | } | ||
72 | } | ||
73 | } | ||
74 | |||
75 | &.printing .line .content { border: none !important; } | ||
76 | |||
77 | &.collapsed { | ||
78 | overflow: visible !important; | ||
79 | |||
80 | .toolbar { | ||
81 | color: $toolbar_collapsed_a !important; | ||
82 | background: $toolbar_collapsed_background !important; | ||
83 | border: $toolbar_collapsed_border !important; | ||
84 | |||
85 | a { | ||
86 | color: $toolbar_collapsed_a !important; | ||
87 | &:hover { color: $toolbar_collapsed_a_hover !important; } | ||
88 | } | ||
89 | } | ||
90 | } | ||
91 | |||
92 | .toolbar { | ||
93 | color: $toolbar_a !important; | ||
94 | background: $toolbar_background !important; | ||
95 | border: $toolbar_border !important; | ||
96 | a { | ||
97 | color: $toolbar_a !important; | ||
98 | &:hover { color: $toolbar_a_hover !important; } | ||
99 | } | ||
100 | } | ||
101 | |||
102 | // Actual syntax highlighter colors. | ||
103 | .plain, .plain a { color: $code_plain !important; } | ||
104 | .comments, .comments a { color: $code_comments !important; } | ||
105 | .string, .string a { color: $code_string !important; } | ||
106 | .keyword { color: $code_keyword !important; } | ||
107 | .preprocessor { color: $code_preprocessor !important; } | ||
108 | .variable { color: $code_variable !important; } | ||
109 | .value { color: $code_value !important; } | ||
110 | .functions { color: $code_functions !important; } | ||
111 | .constants { color: $code_constants !important; } | ||
112 | .script { | ||
113 | font-weight: bold !important; | ||
114 | color: $code_script !important; | ||
115 | background-color: $code_script_background !important; | ||
116 | } | ||
117 | .color1, .color1 a { color: $code_color1 !important; } | ||
118 | .color2, .color2 a { color: $code_color2 !important; } | ||
119 | .color3, .color3 a { color: $code_color3 !important; } | ||
120 | } | ||
diff --git a/Blocks/syntax/compass/config.rb b/Blocks/syntax/compass/config.rb new file mode 100644 index 0000000..6f82de1 --- /dev/null +++ b/Blocks/syntax/compass/config.rb | |||
@@ -0,0 +1,14 @@ | |||
1 | environment = :production | ||
2 | project_type = :stand_alone | ||
3 | http_path = "/" | ||
4 | css_dir = "../styles" | ||
5 | sass_dir = "." | ||
6 | images_dir = "images" | ||
7 | sass_options = { | ||
8 | :line_numbers => false, | ||
9 | :debug_info => false | ||
10 | } | ||
11 | |||
12 | # output_style = :compressed | ||
13 | # output_style = :compact | ||
14 | output_style = :expanded | ||
diff --git a/Blocks/syntax/compass/shCore.scss b/Blocks/syntax/compass/shCore.scss new file mode 100644 index 0000000..a67e4f9 --- /dev/null +++ b/Blocks/syntax/compass/shCore.scss | |||
@@ -0,0 +1,216 @@ | |||
1 | @mixin round_corners_custom($top, $right, $bottom, $left) { | ||
2 | -moz-border-radius: $top $right $bottom $left !important; | ||
3 | -webkit-border-radius: $top $right $bottom $left !important; | ||
4 | } | ||
5 | |||
6 | @mixin round_corners($radius) { | ||
7 | @include round_corners_custom($radius, $radius, $radius, $radius); | ||
8 | } | ||
9 | |||
10 | .syntaxhighlighter { | ||
11 | a, | ||
12 | div, | ||
13 | code, | ||
14 | table, | ||
15 | table td, | ||
16 | table tr, | ||
17 | table tbody, | ||
18 | table thead, | ||
19 | table caption, | ||
20 | textarea { | ||
21 | @include round_corners(0); | ||
22 | |||
23 | background: none !important; | ||
24 | border: 0 !important; | ||
25 | bottom: auto !important; | ||
26 | float: none !important; | ||
27 | height: auto !important; | ||
28 | left: auto !important; | ||
29 | line-height: 1.1em !important; | ||
30 | margin: 0 !important; | ||
31 | outline: 0 !important; | ||
32 | overflow: visible !important; | ||
33 | padding: 0 !important; | ||
34 | position: static !important; | ||
35 | right: auto !important; | ||
36 | text-align: left !important; | ||
37 | top: auto !important; | ||
38 | vertical-align: baseline !important; | ||
39 | width: auto !important; | ||
40 | box-sizing: content-box !important; | ||
41 | font: { | ||
42 | family: "Consolas", "Bitstream Vera Sans Mono", "Courier New", Courier, monospace !important; | ||
43 | weight: normal !important; | ||
44 | style: normal !important; | ||
45 | size: 1em !important; | ||
46 | } | ||
47 | min: { | ||
48 | // For IE8, FF & WebKit | ||
49 | height: inherit !important; | ||
50 | // For IE7 | ||
51 | height: auto !important; | ||
52 | } | ||
53 | } | ||
54 | } | ||
55 | |||
56 | .syntaxhighlighter { | ||
57 | width: 100% !important; | ||
58 | margin: 1em 0 1em 0 !important; | ||
59 | |||
60 | position: relative !important; | ||
61 | overflow: auto !important; | ||
62 | font-size: 1em !important; | ||
63 | |||
64 | &.source { overflow: hidden !important; } | ||
65 | |||
66 | // set up bold and italic | ||
67 | .bold { font-weight: bold !important; } | ||
68 | .italic { font-style: italic !important; } | ||
69 | |||
70 | .line { white-space: pre !important; } | ||
71 | |||
72 | // main table and columns | ||
73 | table { | ||
74 | width: 100% !important; | ||
75 | caption { | ||
76 | text-align: left !important; | ||
77 | padding: .5em 0 0.5em 1em !important; | ||
78 | } | ||
79 | |||
80 | td.code { | ||
81 | width: 100% !important; | ||
82 | |||
83 | .container { | ||
84 | position: relative !important; | ||
85 | |||
86 | textarea { | ||
87 | box-sizing: border-box !important; | ||
88 | position: absolute !important; | ||
89 | left: 0 !important; | ||
90 | top: 0 !important; | ||
91 | width: 100% !important; | ||
92 | height: 100% !important; | ||
93 | border: none !important; | ||
94 | background: white !important; | ||
95 | padding-left: 1em !important; | ||
96 | overflow: hidden !important; | ||
97 | white-space: pre !important; | ||
98 | } | ||
99 | } | ||
100 | } | ||
101 | |||
102 | // middle spacing between line numbers and lines | ||
103 | td.gutter .line { | ||
104 | text-align: right !important; | ||
105 | padding: 0 0.5em 0 1em !important; | ||
106 | } | ||
107 | |||
108 | td.code .line { | ||
109 | padding: 0 1em !important; | ||
110 | } | ||
111 | } | ||
112 | |||
113 | &.nogutter { | ||
114 | td.code { | ||
115 | .container textarea, .line { padding-left: 0em !important; } | ||
116 | } | ||
117 | } | ||
118 | |||
119 | &.show { display: block !important; } | ||
120 | |||
121 | // Adjust some properties when collapsed | ||
122 | &.collapsed { | ||
123 | table { display: none !important; } | ||
124 | |||
125 | .toolbar { | ||
126 | padding: 0.1em 0.8em 0em 0.8em !important; | ||
127 | font-size: 1em !important; | ||
128 | position: static !important; | ||
129 | width: auto !important; | ||
130 | height: auto !important; | ||
131 | |||
132 | span { | ||
133 | display: inline !important; | ||
134 | margin-right: 1em !important; | ||
135 | |||
136 | a { | ||
137 | padding: 0 !important; | ||
138 | display: none !important; | ||
139 | &.expandSource { display: inline !important; } | ||
140 | } | ||
141 | } | ||
142 | } | ||
143 | } | ||
144 | |||
145 | // Styles for the toolbar | ||
146 | .toolbar { | ||
147 | position: absolute !important; | ||
148 | right: 1px !important; | ||
149 | top: 1px !important; | ||
150 | width: 11px !important; | ||
151 | height: 11px !important; | ||
152 | font-size: 10px !important; | ||
153 | z-index: 10 !important; | ||
154 | |||
155 | span.title { display: inline !important; } | ||
156 | |||
157 | a { | ||
158 | display: block !important; | ||
159 | text-align: center !important; | ||
160 | text-decoration: none !important; | ||
161 | padding-top: 1px !important; | ||
162 | |||
163 | &.expandSource { display: none !important; } | ||
164 | } | ||
165 | } | ||
166 | |||
167 | &.ie { | ||
168 | font-size: .9em !important; | ||
169 | padding: 1px 0 1px 0 !important; | ||
170 | |||
171 | .toolbar { | ||
172 | line-height: 8px !important; | ||
173 | a { | ||
174 | padding-top: 0px !important; | ||
175 | } | ||
176 | } | ||
177 | } | ||
178 | |||
179 | // Print view. | ||
180 | // Colors are based on the default theme without background. | ||
181 | &.printing { | ||
182 | .line.alt1 .content, | ||
183 | .line.alt2 .content, | ||
184 | .line.highlighted .number, | ||
185 | .line.highlighted.alt1 .content, | ||
186 | .line.highlighted.alt2 .content { background: none !important; } | ||
187 | |||
188 | // Gutter line numbers | ||
189 | .line { | ||
190 | .number { color: #bbbbbb !important; } | ||
191 | // Add border to the lines | ||
192 | .content { color: black !important; } | ||
193 | } | ||
194 | |||
195 | // Toolbar when visible | ||
196 | .toolbar { display: none !important; } | ||
197 | a { text-decoration: none !important; } | ||
198 | .plain, .plain a { color: black !important; } | ||
199 | .comments, .comments a { color: #008200 !important; } | ||
200 | .string, .string a { color: blue !important; } | ||
201 | .keyword { | ||
202 | color: #006699 !important; | ||
203 | font-weight: bold !important; | ||
204 | } | ||
205 | .preprocessor { color: gray !important; } | ||
206 | .variable { color: #aa7700 !important; } | ||
207 | .value { color: #009900 !important; } | ||
208 | .functions { color: #ff1493 !important; } | ||
209 | .constants { color: #0066cc !important; } | ||
210 | .script { font-weight: bold !important; } | ||
211 | .color1, .color1 a { color: gray !important; } | ||
212 | .color2, .color2 a { color: #ff1493 !important; } | ||
213 | .color3, .color3 a { color: red !important; } | ||
214 | .break, .break a { color: black !important; } | ||
215 | } | ||
216 | } \ No newline at end of file | ||
diff --git a/Blocks/syntax/compass/shCoreDefault.scss b/Blocks/syntax/compass/shCoreDefault.scss new file mode 100644 index 0000000..ff80c7f --- /dev/null +++ b/Blocks/syntax/compass/shCoreDefault.scss | |||
@@ -0,0 +1,2 @@ | |||
1 | @import "shCore.scss"; | ||
2 | @import "shThemeDefault.scss"; | ||
diff --git a/Blocks/syntax/compass/shCoreDjango.scss b/Blocks/syntax/compass/shCoreDjango.scss new file mode 100644 index 0000000..ef572e9 --- /dev/null +++ b/Blocks/syntax/compass/shCoreDjango.scss | |||
@@ -0,0 +1,2 @@ | |||
1 | @import "shCore.scss"; | ||
2 | @import "shThemeDjango.scss"; | ||
diff --git a/Blocks/syntax/compass/shCoreEclipse.scss b/Blocks/syntax/compass/shCoreEclipse.scss new file mode 100644 index 0000000..9767f53 --- /dev/null +++ b/Blocks/syntax/compass/shCoreEclipse.scss | |||
@@ -0,0 +1,2 @@ | |||
1 | @import "shCore.scss"; | ||
2 | @import "shThemeEclipse.scss"; | ||
diff --git a/Blocks/syntax/compass/shCoreEmacs.scss b/Blocks/syntax/compass/shCoreEmacs.scss new file mode 100644 index 0000000..5e466f3 --- /dev/null +++ b/Blocks/syntax/compass/shCoreEmacs.scss | |||
@@ -0,0 +1,2 @@ | |||
1 | @import "shCore.scss"; | ||
2 | @import "shThemeEmacs.scss"; | ||
diff --git a/Blocks/syntax/compass/shCoreFadeToGrey.scss b/Blocks/syntax/compass/shCoreFadeToGrey.scss new file mode 100644 index 0000000..4628595 --- /dev/null +++ b/Blocks/syntax/compass/shCoreFadeToGrey.scss | |||
@@ -0,0 +1,2 @@ | |||
1 | @import "shCore.scss"; | ||
2 | @import "shThemeFadeToGrey.scss"; | ||
diff --git a/Blocks/syntax/compass/shCoreMDUltra.scss b/Blocks/syntax/compass/shCoreMDUltra.scss new file mode 100644 index 0000000..10ad4c5 --- /dev/null +++ b/Blocks/syntax/compass/shCoreMDUltra.scss | |||
@@ -0,0 +1,2 @@ | |||
1 | @import "shCore.scss"; | ||
2 | @import "shThemeMDUltra.scss"; | ||
diff --git a/Blocks/syntax/compass/shCoreMidnight.scss b/Blocks/syntax/compass/shCoreMidnight.scss new file mode 100644 index 0000000..e357eb2 --- /dev/null +++ b/Blocks/syntax/compass/shCoreMidnight.scss | |||
@@ -0,0 +1,2 @@ | |||
1 | @import "shCore.scss"; | ||
2 | @import "shThemeMidnight.scss"; | ||
diff --git a/Blocks/syntax/compass/shCoreRDark.scss b/Blocks/syntax/compass/shCoreRDark.scss new file mode 100644 index 0000000..5c26da3 --- /dev/null +++ b/Blocks/syntax/compass/shCoreRDark.scss | |||
@@ -0,0 +1,2 @@ | |||
1 | @import "shCore.scss"; | ||
2 | @import "shThemeRDark.scss"; | ||
diff --git a/Blocks/syntax/compass/shThemeDefault.scss b/Blocks/syntax/compass/shThemeDefault.scss new file mode 100644 index 0000000..1574dae --- /dev/null +++ b/Blocks/syntax/compass/shThemeDefault.scss | |||
@@ -0,0 +1,7 @@ | |||
1 | // Default Syntax Highlighter theme. | ||
2 | |||
3 | @import "_theme_template.scss"; | ||
4 | |||
5 | .syntaxhighlighter { | ||
6 | .keyword { font-weight: bold !important; } | ||
7 | } | ||
diff --git a/Blocks/syntax/compass/shThemeDjango.scss b/Blocks/syntax/compass/shThemeDjango.scss new file mode 100644 index 0000000..8e95c56 --- /dev/null +++ b/Blocks/syntax/compass/shThemeDjango.scss | |||
@@ -0,0 +1,36 @@ | |||
1 | // Django SyntaxHighlighter theme | ||
2 | |||
3 | $background: #0a2b1d !default; | ||
4 | |||
5 | $line_highlighted_background: #233729 !default; | ||
6 | $line_highlighted_number: white !default; | ||
7 | |||
8 | $gutter_text: #497958 !default; | ||
9 | $gutter_border_color: #41a83e !default; | ||
10 | |||
11 | $toolbar_collapsed_a: #96dd3b !default; | ||
12 | $toolbar_collapsed_a_hover: #fff !default; | ||
13 | $toolbar_collapsed_background: #000 !default; | ||
14 | |||
15 | $toolbar_a: #fff !default; | ||
16 | $toolbar_a_hover: #ffe862 !default; | ||
17 | |||
18 | $code_plain: #f8f8f8 !default; | ||
19 | $code_comments: #336442 !default; | ||
20 | $code_string: #9df39f !default; | ||
21 | $code_keyword: #96dd3b !default; | ||
22 | $code_preprocessor: #91bb9e !default; | ||
23 | $code_variable: #ffaa3e !default; | ||
24 | $code_value: #f7e741 !default; | ||
25 | $code_functions: #ffaa3e !default; | ||
26 | $code_constants: #e0e8ff !default; | ||
27 | $code_color1: #eb939a !default; | ||
28 | $code_color2: #91bb9e !default; | ||
29 | $code_color3: #edef7d !default; | ||
30 | |||
31 | @import "_theme_template.scss"; | ||
32 | |||
33 | .syntaxhighlighter { | ||
34 | .comments { font-style: italic !important; } | ||
35 | .keyword { font-weight: bold !important; } | ||
36 | } | ||
diff --git a/Blocks/syntax/compass/shThemeEclipse.scss b/Blocks/syntax/compass/shThemeEclipse.scss new file mode 100644 index 0000000..193fb1d --- /dev/null +++ b/Blocks/syntax/compass/shThemeEclipse.scss | |||
@@ -0,0 +1,48 @@ | |||
1 | // Eclipse IDE SyntaxHighlighter color theme | ||
2 | // (C) Code-House | ||
3 | // :http//blog.code-house.org/2009/10/xml-i-adnotacje-kod-ogolnego-przeznaczenia-i-jpa/ | ||
4 | |||
5 | $background: #fff !default; | ||
6 | |||
7 | $line_highlighted_background: #c3defe !default; | ||
8 | $line_highlighted_number: #fff !default; | ||
9 | |||
10 | $gutter_text: #787878 !default; | ||
11 | $gutter_border_color: #d4d0c8 !default; | ||
12 | |||
13 | $toolbar_collapsed_a: #3f5fbf !default; | ||
14 | $toolbar_collapsed_a_hover: #aa7700 !default; | ||
15 | $toolbar_collapsed_background: #fff !default; | ||
16 | |||
17 | $toolbar_a: #a0a0a0 !default; | ||
18 | $toolbar_a_hover: red !default; | ||
19 | |||
20 | $code_plain: black !default; | ||
21 | $code_comments: #3f5fbf !default; | ||
22 | $code_string: #2a00ff !default; | ||
23 | $code_keyword: #7f0055 !default; | ||
24 | $code_preprocessor: #646464 !default; | ||
25 | $code_variable: #aa7700 !default; | ||
26 | $code_value: #009900 !default; | ||
27 | $code_functions: #ff1493 !default; | ||
28 | $code_constants: #0066cc !default; | ||
29 | $code_color1: gray !default; | ||
30 | $code_color2: #ff1493 !default; | ||
31 | $code_color3: red !default; | ||
32 | |||
33 | @import "_theme_template.scss"; | ||
34 | |||
35 | .syntaxhighlighter { | ||
36 | .keyword { font-weight: bold !important; } | ||
37 | |||
38 | .xml { | ||
39 | .keyword { | ||
40 | color: #3f7f7f !important; | ||
41 | font-weight: normal !important; } | ||
42 | .color1, .color1 a { color: #7f007f !important; } | ||
43 | .string { | ||
44 | font-style: italic !important; | ||
45 | color: #2a00ff !important; | ||
46 | } | ||
47 | } | ||
48 | } | ||
diff --git a/Blocks/syntax/compass/shThemeEmacs.scss b/Blocks/syntax/compass/shThemeEmacs.scss new file mode 100644 index 0000000..11c9deb --- /dev/null +++ b/Blocks/syntax/compass/shThemeEmacs.scss | |||
@@ -0,0 +1,32 @@ | |||
1 | // Emacs SyntaxHighlighter theme based on theme by Joshua Emmons | ||
2 | // http://www.skia.net/ | ||
3 | |||
4 | $background: black !default; | ||
5 | |||
6 | $line_highlighted_background: #2A3133 !default; | ||
7 | $line_highlighted_number: white !default; | ||
8 | |||
9 | $gutter_text: #d3d3d3 !default; | ||
10 | $gutter_border_color: #990000 !default; | ||
11 | |||
12 | $toolbar_collapsed_a: #ebdb8d !default; | ||
13 | $toolbar_collapsed_a_hover: #ff7d27 !default; | ||
14 | $toolbar_collapsed_background: black !default; | ||
15 | |||
16 | $toolbar_a: #fff !default; | ||
17 | $toolbar_a_hover: #9ccff4 !default; | ||
18 | |||
19 | $code_plain: #d3d3d3 !default; | ||
20 | $code_comments: #ff7d27 !default; | ||
21 | $code_string: #ff9e7b !default; | ||
22 | $code_keyword: aqua !default; | ||
23 | $code_preprocessor: #aec4de !default; | ||
24 | $code_variable: #ffaa3e !default; | ||
25 | $code_value: #009900 !default; | ||
26 | $code_functions: #81cef9 !default; | ||
27 | $code_constants: #ff9e7b !default; | ||
28 | $code_color1: #ebdb8d !default; | ||
29 | $code_color2: #ff7d27 !default; | ||
30 | $code_color3: #aec4de !default; | ||
31 | |||
32 | @import "_theme_template.scss"; | ||
diff --git a/Blocks/syntax/compass/shThemeFadeToGrey.scss b/Blocks/syntax/compass/shThemeFadeToGrey.scss new file mode 100644 index 0000000..7963814 --- /dev/null +++ b/Blocks/syntax/compass/shThemeFadeToGrey.scss | |||
@@ -0,0 +1,36 @@ | |||
1 | // Fade to Grey SyntaxHighlighter theme based on theme by Brasten Sager | ||
2 | // :http//www.ibrasten.com/ | ||
3 | |||
4 | $background: #121212 !default; | ||
5 | |||
6 | $line_highlighted_background: #2C2C29 !default; | ||
7 | $line_highlighted_number: white !default; | ||
8 | |||
9 | $gutter_text: #afafaf !default; | ||
10 | $gutter_border_color: #3185b9 !default; | ||
11 | |||
12 | $toolbar_collapsed_a: #3185b9 !default; | ||
13 | $toolbar_collapsed_a_hover: #d01d33 !default; | ||
14 | $toolbar_collapsed_background: black !default; | ||
15 | |||
16 | $toolbar_a: #fff !default; | ||
17 | $toolbar_a_hover: #96daff !default; | ||
18 | |||
19 | $code_plain: white !default; | ||
20 | $code_comments: #696854 !default; | ||
21 | $code_string: #e3e658 !default; | ||
22 | $code_keyword: #d01d33 !default; | ||
23 | $code_preprocessor: #435a5f !default; | ||
24 | $code_variable: #898989 !default; | ||
25 | $code_value: #009900 !default; | ||
26 | $code_functions: #aaaaaa !default; | ||
27 | $code_constants: #96daff !default; | ||
28 | $code_color1: #ffc074 !default; | ||
29 | $code_color2: #4a8cdb !default; | ||
30 | $code_color3: #96daff !default; | ||
31 | |||
32 | @import "_theme_template.scss"; | ||
33 | |||
34 | .syntaxhighlighter { | ||
35 | .functions { font-weight: bold !important; } | ||
36 | } | ||
diff --git a/Blocks/syntax/compass/shThemeMDUltra.scss b/Blocks/syntax/compass/shThemeMDUltra.scss new file mode 100644 index 0000000..0356fa6 --- /dev/null +++ b/Blocks/syntax/compass/shThemeMDUltra.scss | |||
@@ -0,0 +1,32 @@ | |||
1 | // MDUltra SyntaxHighlighter theme based on Midnight Theme | ||
2 | // http://www.mddev.co.uk/ | ||
3 | |||
4 | $background: #222222 !default; | ||
5 | |||
6 | $line_highlighted_background: #253e5a !default; | ||
7 | $line_highlighted_number: white !default; | ||
8 | |||
9 | $gutter_text: #38566f !default; | ||
10 | $gutter_border_color: #435a5f !default; | ||
11 | |||
12 | $toolbar_collapsed_a: #428bdd !default; | ||
13 | $toolbar_collapsed_a_hover: lime !default; | ||
14 | $toolbar_collapsed_background: black !default; | ||
15 | |||
16 | $toolbar_a: #aaaaff !default; | ||
17 | $toolbar_a_hover: #9ccff4 !default; | ||
18 | |||
19 | $code_plain: lime !default; | ||
20 | $code_comments: #428bdd !default; | ||
21 | $code_string: lime !default; | ||
22 | $code_keyword: #aaaaff !default; | ||
23 | $code_preprocessor: #8aa6c1 !default; | ||
24 | $code_variable: aqua !default; | ||
25 | $code_value: #f7e741 !default; | ||
26 | $code_functions: #ff8000 !default; | ||
27 | $code_constants: yellow !default; | ||
28 | $code_color1: red !default; | ||
29 | $code_color2: yellow !default; | ||
30 | $code_color3: #ffaa3e !default; | ||
31 | |||
32 | @import "_theme_template.scss"; | ||
diff --git a/Blocks/syntax/compass/shThemeMidnight.scss b/Blocks/syntax/compass/shThemeMidnight.scss new file mode 100644 index 0000000..a4dae02 --- /dev/null +++ b/Blocks/syntax/compass/shThemeMidnight.scss | |||
@@ -0,0 +1,32 @@ | |||
1 | // Midnight SyntaxHighlighter theme based on theme by J.D. Myers | ||
2 | // http://webdesign.lsnjd.com/ | ||
3 | |||
4 | $background: #0f192a !default; | ||
5 | |||
6 | $line_highlighted_background: #253e5a !default; | ||
7 | $line_highlighted_number: #38566f !default; | ||
8 | |||
9 | $gutter_text: #afafaf !default; | ||
10 | $gutter_border_color: #435a5f !default; | ||
11 | |||
12 | $toolbar_collapsed_a: #428bdd !default; | ||
13 | $toolbar_collapsed_a_hover: #1dc116 !default; | ||
14 | $toolbar_collapsed_background: #000 !default; | ||
15 | |||
16 | $toolbar_a: #D1EDFF !default; | ||
17 | $toolbar_a_hover: #8aa6c1 !default; | ||
18 | |||
19 | $code_plain: #d1edff !default; | ||
20 | $code_comments: #428bdd !default; | ||
21 | $code_string: #1dc116 !default; | ||
22 | $code_keyword: #b43d3d !default; | ||
23 | $code_preprocessor: #8aa6c1 !default; | ||
24 | $code_variable: #ffaa3e !default; | ||
25 | $code_value: #f7e741 !default; | ||
26 | $code_functions: #ffaa3e !default; | ||
27 | $code_constants: #e0e8ff !default; | ||
28 | $code_color1: #f8bb00 !default; | ||
29 | $code_color2: white !default; | ||
30 | $code_color3: #ffaa3e !default; | ||
31 | |||
32 | @import "_theme_template.scss"; | ||
diff --git a/Blocks/syntax/compass/shThemeRDark.scss b/Blocks/syntax/compass/shThemeRDark.scss new file mode 100644 index 0000000..3b67b15 --- /dev/null +++ b/Blocks/syntax/compass/shThemeRDark.scss | |||
@@ -0,0 +1,32 @@ | |||
1 | // RDark SyntaxHighlighter theme based on theme by Radu Dineiu | ||
2 | // http://www.vim.org/scripts/script.php?script_id=1732 | ||
3 | |||
4 | $background: #1b2426 !default; | ||
5 | |||
6 | $line_highlighted_background: #323E41 !default; | ||
7 | $line_highlighted_number: #b9bdb6 !default; | ||
8 | |||
9 | $gutter_text: #afafaf !default; | ||
10 | $gutter_border_color: #435a5f !default; | ||
11 | |||
12 | $toolbar_collapsed_a: #5ba1cf !default; | ||
13 | $toolbar_collapsed_a_hover: #5ce638 !default; | ||
14 | $toolbar_collapsed_background: #000 !default; | ||
15 | |||
16 | $toolbar_a: #fff !default; | ||
17 | $toolbar_a_hover: #e0e8ff !default; | ||
18 | |||
19 | $code_plain: #b9bdb6 !default; | ||
20 | $code_comments: #878a85 !default; | ||
21 | $code_string: #5ce638 !default; | ||
22 | $code_keyword: #5ba1cf !default; | ||
23 | $code_preprocessor: #435a5f !default; | ||
24 | $code_variable: #ffaa3e !default; | ||
25 | $code_value: #009900 !default; | ||
26 | $code_functions: #ffaa3e !default; | ||
27 | $code_constants: #e0e8ff !default; | ||
28 | $code_color1: #e0e8ff !default; | ||
29 | $code_color2: white !default; | ||
30 | $code_color3: #ffaa3e !default; | ||
31 | |||
32 | @import "_theme_template.scss"; | ||
diff --git a/Blocks/syntax/index.html b/Blocks/syntax/index.html new file mode 100644 index 0000000..5d8d56d --- /dev/null +++ b/Blocks/syntax/index.html | |||
@@ -0,0 +1,24 @@ | |||
1 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> | ||
2 | <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> | ||
3 | <head> | ||
4 | <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> | ||
5 | <title>Hello SyntaxHighlighter</title> | ||
6 | <script type="text/javascript" src="scripts/shCore.js"></script> | ||
7 | <script type="text/javascript" src="scripts/shBrushCpp.js"></script> | ||
8 | <link type="text/css" rel="stylesheet" href="styles/shCoreDefault.css"/> | ||
9 | <script type="text/javascript">SyntaxHighlighter.all();</script> | ||
10 | </head> | ||
11 | |||
12 | <body style="background: white; font-family: Helvetica"> | ||
13 | |||
14 | <h1>Hello SyntaxHighlighter</h1> | ||
15 | <pre class="brush: cpp;"> | ||
16 | #include "stdio.h" | ||
17 | int main() | ||
18 | { | ||
19 | printf("Hello\n"); | ||
20 | return 0; | ||
21 | } | ||
22 | </pre> | ||
23 | |||
24 | </html> | ||
diff --git a/Blocks/syntax/scripts/shAutoloader.js b/Blocks/syntax/scripts/shAutoloader.js new file mode 100644 index 0000000..4e29bdd --- /dev/null +++ b/Blocks/syntax/scripts/shAutoloader.js | |||
@@ -0,0 +1,17 @@ | |||
1 | /** | ||
2 | * SyntaxHighlighter | ||
3 | * http://alexgorbatchev.com/SyntaxHighlighter | ||
4 | * | ||
5 | * SyntaxHighlighter is donationware. If you are using it, please donate. | ||
6 | * http://alexgorbatchev.com/SyntaxHighlighter/donate.html | ||
7 | * | ||
8 | * @version | ||
9 | * 3.0.83 (July 02 2010) | ||
10 | * | ||
11 | * @copyright | ||
12 | * Copyright (C) 2004-2010 Alex Gorbatchev. | ||
13 | * | ||
14 | * @license | ||
15 | * Dual licensed under the MIT and GPL licenses. | ||
16 | */ | ||
17 | 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}('(2(){1 h=5;h.I=2(){2 n(c,a){4(1 d=0;d<c.9;d++)i[c[d]]=a}2 o(c){1 a=r.H("J"),d=3;a.K=c;a.M="L/t";a.G="t";a.u=a.v=2(){6(!d&&(!8.7||8.7=="F"||8.7=="z")){d=q;e[c]=q;a:{4(1 p y e)6(e[p]==3)B a;j&&5.C(k)}a.u=a.v=x;a.D.O(a)}};r.N.R(a)}1 f=Q,l=h.P(),i={},e={},j=3,k=x,b;5.T=2(c){k=c;j=q};4(b=0;b<f.9;b++){1 m=f[b].w?f[b]:f[b].S(/\\s+/),g=m.w();n(m,g)}4(b=0;b<l.9;b++)6(g=i[l[b].E.A]){e[g]=3;o(g)}}})();',56,56,'|var|function|false|for|SyntaxHighlighter|if|readyState|this|length|||||||||||||||||true|document||javascript|onload|onreadystatechange|pop|null|in|complete|brush|break|highlight|parentNode|params|loaded|language|createElement|autoloader|script|src|text|type|body|removeChild|findElements|arguments|appendChild|split|all'.split('|'),0,{})) | ||
diff --git a/Blocks/syntax/scripts/shBrushAS3.js b/Blocks/syntax/scripts/shBrushAS3.js new file mode 100644 index 0000000..8aa3ed2 --- /dev/null +++ b/Blocks/syntax/scripts/shBrushAS3.js | |||
@@ -0,0 +1,59 @@ | |||
1 | /** | ||
2 | * SyntaxHighlighter | ||
3 | * http://alexgorbatchev.com/SyntaxHighlighter | ||
4 | * | ||
5 | * SyntaxHighlighter is donationware. If you are using it, please donate. | ||
6 | * http://alexgorbatchev.com/SyntaxHighlighter/donate.html | ||
7 | * | ||
8 | * @version | ||
9 | * 3.0.83 (July 02 2010) | ||
10 | * | ||
11 | * @copyright | ||
12 | * Copyright (C) 2004-2010 Alex Gorbatchev. | ||
13 | * | ||
14 | * @license | ||
15 | * Dual licensed under the MIT and GPL licenses. | ||
16 | */ | ||
17 | ;(function() | ||
18 | { | ||
19 | // CommonJS | ||
20 | typeof(require) != 'undefined' ? SyntaxHighlighter = require('shCore').SyntaxHighlighter : null; | ||
21 | |||
22 | function Brush() | ||
23 | { | ||
24 | // Created by Peter Atoria @ http://iAtoria.com | ||
25 | |||
26 | var inits = 'class interface function package'; | ||
27 | |||
28 | var keywords = '-Infinity ...rest Array as AS3 Boolean break case catch const continue Date decodeURI ' + | ||
29 | 'decodeURIComponent default delete do dynamic each else encodeURI encodeURIComponent escape ' + | ||
30 | 'extends false final finally flash_proxy for get if implements import in include Infinity ' + | ||
31 | 'instanceof int internal is isFinite isNaN isXMLName label namespace NaN native new null ' + | ||
32 | 'Null Number Object object_proxy override parseFloat parseInt private protected public ' + | ||
33 | 'return set static String super switch this throw true try typeof uint undefined unescape ' + | ||
34 | 'use void while with' | ||
35 | ; | ||
36 | |||
37 | this.regexList = [ | ||
38 | { regex: SyntaxHighlighter.regexLib.singleLineCComments, css: 'comments' }, // one line comments | ||
39 | { regex: SyntaxHighlighter.regexLib.multiLineCComments, css: 'comments' }, // multiline comments | ||
40 | { regex: SyntaxHighlighter.regexLib.doubleQuotedString, css: 'string' }, // double quoted strings | ||
41 | { regex: SyntaxHighlighter.regexLib.singleQuotedString, css: 'string' }, // single quoted strings | ||
42 | { regex: /\b([\d]+(\.[\d]+)?|0x[a-f0-9]+)\b/gi, css: 'value' }, // numbers | ||
43 | { regex: new RegExp(this.getKeywords(inits), 'gm'), css: 'color3' }, // initializations | ||
44 | { regex: new RegExp(this.getKeywords(keywords), 'gm'), css: 'keyword' }, // keywords | ||
45 | { regex: new RegExp('var', 'gm'), css: 'variable' }, // variable | ||
46 | { regex: new RegExp('trace', 'gm'), css: 'color1' } // trace | ||
47 | ]; | ||
48 | |||
49 | this.forHtmlScript(SyntaxHighlighter.regexLib.scriptScriptTags); | ||
50 | }; | ||
51 | |||
52 | Brush.prototype = new SyntaxHighlighter.Highlighter(); | ||
53 | Brush.aliases = ['actionscript3', 'as3']; | ||
54 | |||
55 | SyntaxHighlighter.brushes.AS3 = Brush; | ||
56 | |||
57 | // CommonJS | ||
58 | typeof(exports) != 'undefined' ? exports.Brush = Brush : null; | ||
59 | })(); | ||
diff --git a/Blocks/syntax/scripts/shBrushAppleScript.js b/Blocks/syntax/scripts/shBrushAppleScript.js new file mode 100644 index 0000000..d40bbd7 --- /dev/null +++ b/Blocks/syntax/scripts/shBrushAppleScript.js | |||
@@ -0,0 +1,75 @@ | |||
1 | /** | ||
2 | * SyntaxHighlighter | ||
3 | * http://alexgorbatchev.com/SyntaxHighlighter | ||
4 | * | ||
5 | * SyntaxHighlighter is donationware. If you are using it, please donate. | ||
6 | * http://alexgorbatchev.com/SyntaxHighlighter/donate.html | ||
7 | * | ||
8 | * @version | ||
9 | * 3.0.83 (July 02 2010) | ||
10 | * | ||
11 | * @copyright | ||
12 | * Copyright (C) 2004-2010 Alex Gorbatchev. | ||
13 | * | ||
14 | * @license | ||
15 | * Dual licensed under the MIT and GPL licenses. | ||
16 | */ | ||
17 | ;(function() | ||
18 | { | ||
19 | // CommonJS | ||
20 | typeof(require) != 'undefined' ? SyntaxHighlighter = require('shCore').SyntaxHighlighter : null; | ||
21 | |||
22 | function Brush() | ||
23 | { | ||
24 | // AppleScript brush by David Chambers | ||
25 | // http://davidchambersdesign.com/ | ||
26 | var keywords = 'after before beginning continue copy each end every from return get global in local named of set some that the then times to where whose with without'; | ||
27 | var ordinals = 'first second third fourth fifth sixth seventh eighth ninth tenth last front back middle'; | ||
28 | var specials = 'activate add alias AppleScript ask attachment boolean class constant delete duplicate empty exists false id integer list make message modal modified new no paragraph pi properties quit real record remove rest result reveal reverse run running save string true word yes'; | ||
29 | |||
30 | this.regexList = [ | ||
31 | |||
32 | { regex: /(--|#).*$/gm, | ||
33 | css: 'comments' }, | ||
34 | |||
35 | { regex: /\(\*(?:[\s\S]*?\(\*[\s\S]*?\*\))*[\s\S]*?\*\)/gm, // support nested comments | ||
36 | css: 'comments' }, | ||
37 | |||
38 | { regex: /"[\s\S]*?"/gm, | ||
39 | css: 'string' }, | ||
40 | |||
41 | { regex: /(?:,|:|¬|'s\b|\(|\)|\{|\}|«|\b\w*»)/g, | ||
42 | css: 'color1' }, | ||
43 | |||
44 | { regex: /(-)?(\d)+(\.(\d)?)?(E\+(\d)+)?/g, // numbers | ||
45 | css: 'color1' }, | ||
46 | |||
47 | { regex: /(?:&(amp;|gt;|lt;)?|=|� |>|<|≥|>=|≤|<=|\*|\+|-|\/|÷|\^)/g, | ||
48 | css: 'color2' }, | ||
49 | |||
50 | { regex: /\b(?:and|as|div|mod|not|or|return(?!\s&)(ing)?|equals|(is(n't| not)? )?equal( to)?|does(n't| not) equal|(is(n't| not)? )?(greater|less) than( or equal( to)?)?|(comes|does(n't| not) come) (after|before)|is(n't| not)?( in)? (back|front) of|is(n't| not)? behind|is(n't| not)?( (in|contained by))?|does(n't| not) contain|contain(s)?|(start|begin|end)(s)? with|((but|end) )?(consider|ignor)ing|prop(erty)?|(a )?ref(erence)?( to)?|repeat (until|while|with)|((end|exit) )?repeat|((else|end) )?if|else|(end )?(script|tell|try)|(on )?error|(put )?into|(of )?(it|me)|its|my|with (timeout( of)?|transaction)|end (timeout|transaction))\b/g, | ||
51 | css: 'keyword' }, | ||
52 | |||
53 | { regex: /\b\d+(st|nd|rd|th)\b/g, // ordinals | ||
54 | css: 'keyword' }, | ||
55 | |||
56 | { regex: /\b(?:about|above|against|around|at|below|beneath|beside|between|by|(apart|aside) from|(instead|out) of|into|on(to)?|over|since|thr(ough|u)|under)\b/g, | ||
57 | css: 'color3' }, | ||
58 | |||
59 | { regex: /\b(?:adding folder items to|after receiving|choose( ((remote )?application|color|folder|from list|URL))?|clipboard info|set the clipboard to|(the )?clipboard|entire contents|display(ing| (alert|dialog|mode))?|document( (edited|file|nib name))?|file( (name|type))?|(info )?for|giving up after|(name )?extension|quoted form|return(ed)?|second(?! item)(s)?|list (disks|folder)|text item(s| delimiters)?|(Unicode )?text|(disk )?item(s)?|((current|list) )?view|((container|key) )?window|with (data|icon( (caution|note|stop))?|parameter(s)?|prompt|properties|seed|title)|case|diacriticals|hyphens|numeric strings|punctuation|white space|folder creation|application(s( folder)?| (processes|scripts position|support))?|((desktop )?(pictures )?|(documents|downloads|favorites|home|keychain|library|movies|music|public|scripts|sites|system|users|utilities|workflows) )folder|desktop|Folder Action scripts|font(s| panel)?|help|internet plugins|modem scripts|(system )?preferences|printer descriptions|scripting (additions|components)|shared (documents|libraries)|startup (disk|items)|temporary items|trash|on server|in AppleTalk zone|((as|long|short) )?user name|user (ID|locale)|(with )?password|in (bundle( with identifier)?|directory)|(close|open for) access|read|write( permission)?|(g|s)et eof|using( delimiters)?|starting at|default (answer|button|color|country code|entr(y|ies)|identifiers|items|name|location|script editor)|hidden( answer)?|open(ed| (location|untitled))?|error (handling|reporting)|(do( shell)?|load|run|store) script|administrator privileges|altering line endings|get volume settings|(alert|boot|input|mount|output|set) volume|output muted|(fax|random )?number|round(ing)?|up|down|toward zero|to nearest|as taught in school|system (attribute|info)|((AppleScript( Studio)?|system) )?version|(home )?directory|(IPv4|primary Ethernet) address|CPU (type|speed)|physical memory|time (stamp|to GMT)|replacing|ASCII (character|number)|localized string|from table|offset|summarize|beep|delay|say|(empty|multiple) selections allowed|(of|preferred) type|invisibles|showing( package contents)?|editable URL|(File|FTP|News|Media|Web) [Ss]ervers|Telnet hosts|Directory services|Remote applications|waiting until completion|saving( (in|to))?|path (for|to( (((current|frontmost) )?application|resource))?)|POSIX (file|path)|(background|RGB) color|(OK|cancel) button name|cancel button|button(s)?|cubic ((centi)?met(re|er)s|yards|feet|inches)|square ((kilo)?met(re|er)s|miles|yards|feet)|(centi|kilo)?met(re|er)s|miles|yards|feet|inches|lit(re|er)s|gallons|quarts|(kilo)?grams|ounces|pounds|degrees (Celsius|Fahrenheit|Kelvin)|print( (dialog|settings))?|clos(e(able)?|ing)|(de)?miniaturized|miniaturizable|zoom(ed|able)|attribute run|action (method|property|title)|phone|email|((start|end)ing|home) page|((birth|creation|current|custom|modification) )?date|((((phonetic )?(first|last|middle))|computer|host|maiden|related) |nick)?name|aim|icq|jabber|msn|yahoo|address(es)?|save addressbook|should enable action|city|country( code)?|formatte(r|d address)|(palette )?label|state|street|zip|AIM [Hh]andle(s)?|my card|select(ion| all)?|unsaved|(alpha )?value|entr(y|ies)|group|(ICQ|Jabber|MSN) handle|person|people|company|department|icon image|job title|note|organization|suffix|vcard|url|copies|collating|pages (across|down)|request print time|target( printer)?|((GUI Scripting|Script menu) )?enabled|show Computer scripts|(de)?activated|awake from nib|became (key|main)|call method|of (class|object)|center|clicked toolbar item|closed|for document|exposed|(can )?hide|idle|keyboard (down|up)|event( (number|type))?|launch(ed)?|load (image|movie|nib|sound)|owner|log|mouse (down|dragged|entered|exited|moved|up)|move|column|localization|resource|script|register|drag (info|types)|resigned (active|key|main)|resiz(e(d)?|able)|right mouse (down|dragged|up)|scroll wheel|(at )?index|should (close|open( untitled)?|quit( after last window closed)?|zoom)|((proposed|screen) )?bounds|show(n)?|behind|in front of|size (mode|to fit)|update(d| toolbar item)?|was (hidden|miniaturized)|will (become active|close|finish launching|hide|miniaturize|move|open|quit|(resign )?active|((maximum|minimum|proposed) )?size|show|zoom)|bundle|data source|movie|pasteboard|sound|tool(bar| tip)|(color|open|save) panel|coordinate system|frontmost|main( (bundle|menu|window))?|((services|(excluded from )?windows) )?menu|((executable|frameworks|resource|scripts|shared (frameworks|support)) )?path|(selected item )?identifier|data|content(s| view)?|character(s)?|click count|(command|control|option|shift) key down|context|delta (x|y|z)|key( code)?|location|pressure|unmodified characters|types|(first )?responder|playing|(allowed|selectable) identifiers|allows customization|(auto saves )?configuration|visible|image( name)?|menu form representation|tag|user(-| )defaults|associated file name|(auto|needs) display|current field editor|floating|has (resize indicator|shadow)|hides when deactivated|level|minimized (image|title)|opaque|position|release when closed|sheet|title(d)?)\b/g, | ||
60 | css: 'color3' }, | ||
61 | |||
62 | { regex: new RegExp(this.getKeywords(specials), 'gm'), css: 'color3' }, | ||
63 | { regex: new RegExp(this.getKeywords(keywords), 'gm'), css: 'keyword' }, | ||
64 | { regex: new RegExp(this.getKeywords(ordinals), 'gm'), css: 'keyword' } | ||
65 | ]; | ||
66 | }; | ||
67 | |||
68 | Brush.prototype = new SyntaxHighlighter.Highlighter(); | ||
69 | Brush.aliases = ['applescript']; | ||
70 | |||
71 | SyntaxHighlighter.brushes.AppleScript = Brush; | ||
72 | |||
73 | // CommonJS | ||
74 | typeof(exports) != 'undefined' ? exports.Brush = Brush : null; | ||
75 | })(); | ||
diff --git a/Blocks/syntax/scripts/shBrushBash.js b/Blocks/syntax/scripts/shBrushBash.js new file mode 100644 index 0000000..8c29696 --- /dev/null +++ b/Blocks/syntax/scripts/shBrushBash.js | |||
@@ -0,0 +1,59 @@ | |||
1 | /** | ||
2 | * SyntaxHighlighter | ||
3 | * http://alexgorbatchev.com/SyntaxHighlighter | ||
4 | * | ||
5 | * SyntaxHighlighter is donationware. If you are using it, please donate. | ||
6 | * http://alexgorbatchev.com/SyntaxHighlighter/donate.html | ||
7 | * | ||
8 | * @version | ||
9 | * 3.0.83 (July 02 2010) | ||
10 | * | ||
11 | * @copyright | ||
12 | * Copyright (C) 2004-2010 Alex Gorbatchev. | ||
13 | * | ||
14 | * @license | ||
15 | * Dual licensed under the MIT and GPL licenses. | ||
16 | */ | ||
17 | ;(function() | ||
18 | { | ||
19 | // CommonJS | ||
20 | typeof(require) != 'undefined' ? SyntaxHighlighter = require('shCore').SyntaxHighlighter : null; | ||
21 | |||
22 | function Brush() | ||
23 | { | ||
24 | var keywords = 'if fi then elif else for do done until while break continue case function return in eq ne ge le'; | ||
25 | var commands = 'alias apropos awk basename bash bc bg builtin bzip2 cal cat cd cfdisk chgrp chmod chown chroot' + | ||
26 | 'cksum clear cmp comm command cp cron crontab csplit cut date dc dd ddrescue declare df ' + | ||
27 | 'diff diff3 dig dir dircolors dirname dirs du echo egrep eject enable env ethtool eval ' + | ||
28 | 'exec exit expand export expr false fdformat fdisk fg fgrep file find fmt fold format ' + | ||
29 | 'free fsck ftp gawk getopts grep groups gzip hash head history hostname id ifconfig ' + | ||
30 | 'import install join kill less let ln local locate logname logout look lpc lpr lprint ' + | ||
31 | 'lprintd lprintq lprm ls lsof make man mkdir mkfifo mkisofs mknod more mount mtools ' + | ||
32 | 'mv netstat nice nl nohup nslookup open op passwd paste pathchk ping popd pr printcap ' + | ||
33 | 'printenv printf ps pushd pwd quota quotacheck quotactl ram rcp read readonly renice ' + | ||
34 | 'remsync rm rmdir rsync screen scp sdiff sed select seq set sftp shift shopt shutdown ' + | ||
35 | 'sleep sort source split ssh strace su sudo sum symlink sync tail tar tee test time ' + | ||
36 | 'times touch top traceroute trap tr true tsort tty type ulimit umask umount unalias ' + | ||
37 | 'uname unexpand uniq units unset unshar useradd usermod users uuencode uudecode v vdir ' + | ||
38 | 'vi watch wc whereis which who whoami Wget xargs yes' | ||
39 | ; | ||
40 | |||
41 | this.regexList = [ | ||
42 | { regex: /^#!.*$/gm, css: 'preprocessor bold' }, | ||
43 | { regex: /\/[\w-\/]+/gm, css: 'plain' }, | ||
44 | { regex: SyntaxHighlighter.regexLib.singleLinePerlComments, css: 'comments' }, // one line comments | ||
45 | { regex: SyntaxHighlighter.regexLib.doubleQuotedString, css: 'string' }, // double quoted strings | ||
46 | { regex: SyntaxHighlighter.regexLib.singleQuotedString, css: 'string' }, // single quoted strings | ||
47 | { regex: new RegExp(this.getKeywords(keywords), 'gm'), css: 'keyword' }, // keywords | ||
48 | { regex: new RegExp(this.getKeywords(commands), 'gm'), css: 'functions' } // commands | ||
49 | ]; | ||
50 | } | ||
51 | |||
52 | Brush.prototype = new SyntaxHighlighter.Highlighter(); | ||
53 | Brush.aliases = ['bash', 'shell']; | ||
54 | |||
55 | SyntaxHighlighter.brushes.Bash = Brush; | ||
56 | |||
57 | // CommonJS | ||
58 | typeof(exports) != 'undefined' ? exports.Brush = Brush : null; | ||
59 | })(); | ||
diff --git a/Blocks/syntax/scripts/shBrushCSharp.js b/Blocks/syntax/scripts/shBrushCSharp.js new file mode 100644 index 0000000..079214e --- /dev/null +++ b/Blocks/syntax/scripts/shBrushCSharp.js | |||
@@ -0,0 +1,65 @@ | |||
1 | /** | ||
2 | * SyntaxHighlighter | ||
3 | * http://alexgorbatchev.com/SyntaxHighlighter | ||
4 | * | ||
5 | * SyntaxHighlighter is donationware. If you are using it, please donate. | ||
6 | * http://alexgorbatchev.com/SyntaxHighlighter/donate.html | ||
7 | * | ||
8 | * @version | ||
9 | * 3.0.83 (July 02 2010) | ||
10 | * | ||
11 | * @copyright | ||
12 | * Copyright (C) 2004-2010 Alex Gorbatchev. | ||
13 | * | ||
14 | * @license | ||
15 | * Dual licensed under the MIT and GPL licenses. | ||
16 | */ | ||
17 | ;(function() | ||
18 | { | ||
19 | // CommonJS | ||
20 | typeof(require) != 'undefined' ? SyntaxHighlighter = require('shCore').SyntaxHighlighter : null; | ||
21 | |||
22 | function Brush() | ||
23 | { | ||
24 | var keywords = 'abstract as base bool break byte case catch char checked class const ' + | ||
25 | 'continue decimal default delegate do double else enum event explicit ' + | ||
26 | 'extern false finally fixed float for foreach get goto if implicit in int ' + | ||
27 | 'interface internal is lock long namespace new null object operator out ' + | ||
28 | 'override params private protected public readonly ref return sbyte sealed set ' + | ||
29 | 'short sizeof stackalloc static string struct switch this throw true try ' + | ||
30 | 'typeof uint ulong unchecked unsafe ushort using virtual void while'; | ||
31 | |||
32 | function fixComments(match, regexInfo) | ||
33 | { | ||
34 | var css = (match[0].indexOf("///") == 0) | ||
35 | ? 'color1' | ||
36 | : 'comments' | ||
37 | ; | ||
38 | |||
39 | return [new SyntaxHighlighter.Match(match[0], match.index, css)]; | ||
40 | } | ||
41 | |||
42 | this.regexList = [ | ||
43 | { regex: SyntaxHighlighter.regexLib.singleLineCComments, func : fixComments }, // one line comments | ||
44 | { regex: SyntaxHighlighter.regexLib.multiLineCComments, css: 'comments' }, // multiline comments | ||
45 | { regex: /@"(?:[^"]|"")*"/g, css: 'string' }, // @-quoted strings | ||
46 | { regex: SyntaxHighlighter.regexLib.doubleQuotedString, css: 'string' }, // strings | ||
47 | { regex: SyntaxHighlighter.regexLib.singleQuotedString, css: 'string' }, // strings | ||
48 | { regex: /^\s*#.*/gm, css: 'preprocessor' }, // preprocessor tags like #region and #endregion | ||
49 | { regex: new RegExp(this.getKeywords(keywords), 'gm'), css: 'keyword' }, // c# keyword | ||
50 | { regex: /\bpartial(?=\s+(?:class|interface|struct)\b)/g, css: 'keyword' }, // contextual keyword: 'partial' | ||
51 | { regex: /\byield(?=\s+(?:return|break)\b)/g, css: 'keyword' } // contextual keyword: 'yield' | ||
52 | ]; | ||
53 | |||
54 | this.forHtmlScript(SyntaxHighlighter.regexLib.aspScriptTags); | ||
55 | }; | ||
56 | |||
57 | Brush.prototype = new SyntaxHighlighter.Highlighter(); | ||
58 | Brush.aliases = ['c#', 'c-sharp', 'csharp']; | ||
59 | |||
60 | SyntaxHighlighter.brushes.CSharp = Brush; | ||
61 | |||
62 | // CommonJS | ||
63 | typeof(exports) != 'undefined' ? exports.Brush = Brush : null; | ||
64 | })(); | ||
65 | |||
diff --git a/Blocks/syntax/scripts/shBrushColdFusion.js b/Blocks/syntax/scripts/shBrushColdFusion.js new file mode 100644 index 0000000..627dbb9 --- /dev/null +++ b/Blocks/syntax/scripts/shBrushColdFusion.js | |||
@@ -0,0 +1,100 @@ | |||
1 | /** | ||
2 | * SyntaxHighlighter | ||
3 | * http://alexgorbatchev.com/SyntaxHighlighter | ||
4 | * | ||
5 | * SyntaxHighlighter is donationware. If you are using it, please donate. | ||
6 | * http://alexgorbatchev.com/SyntaxHighlighter/donate.html | ||
7 | * | ||
8 | * @version | ||
9 | * 3.0.83 (July 02 2010) | ||
10 | * | ||
11 | * @copyright | ||
12 | * Copyright (C) 2004-2010 Alex Gorbatchev. | ||
13 | * | ||
14 | * @license | ||
15 | * Dual licensed under the MIT and GPL licenses. | ||
16 | */ | ||
17 | ;(function() | ||
18 | { | ||
19 | // CommonJS | ||
20 | typeof(require) != 'undefined' ? SyntaxHighlighter = require('shCore').SyntaxHighlighter : null; | ||
21 | |||
22 | function Brush() | ||
23 | { | ||
24 | // Contributed by Jen | ||
25 | // http://www.jensbits.com/2009/05/14/coldfusion-brush-for-syntaxhighlighter-plus | ||
26 | |||
27 | var funcs = 'Abs ACos AddSOAPRequestHeader AddSOAPResponseHeader AjaxLink AjaxOnLoad ArrayAppend ArrayAvg ArrayClear ArrayDeleteAt ' + | ||
28 | 'ArrayInsertAt ArrayIsDefined ArrayIsEmpty ArrayLen ArrayMax ArrayMin ArraySet ArraySort ArraySum ArraySwap ArrayToList ' + | ||
29 | 'Asc ASin Atn BinaryDecode BinaryEncode BitAnd BitMaskClear BitMaskRead BitMaskSet BitNot BitOr BitSHLN BitSHRN BitXor ' + | ||
30 | 'Ceiling CharsetDecode CharsetEncode Chr CJustify Compare CompareNoCase Cos CreateDate CreateDateTime CreateObject ' + | ||
31 | 'CreateODBCDate CreateODBCDateTime CreateODBCTime CreateTime CreateTimeSpan CreateUUID DateAdd DateCompare DateConvert ' + | ||
32 | 'DateDiff DateFormat DatePart Day DayOfWeek DayOfWeekAsString DayOfYear DaysInMonth DaysInYear DE DecimalFormat DecrementValue ' + | ||
33 | 'Decrypt DecryptBinary DeleteClientVariable DeserializeJSON DirectoryExists DollarFormat DotNetToCFType Duplicate Encrypt ' + | ||
34 | 'EncryptBinary Evaluate Exp ExpandPath FileClose FileCopy FileDelete FileExists FileIsEOF FileMove FileOpen FileRead ' + | ||
35 | 'FileReadBinary FileReadLine FileSetAccessMode FileSetAttribute FileSetLastModified FileWrite Find FindNoCase FindOneOf ' + | ||
36 | 'FirstDayOfMonth Fix FormatBaseN GenerateSecretKey GetAuthUser GetBaseTagData GetBaseTagList GetBaseTemplatePath ' + | ||
37 | 'GetClientVariablesList GetComponentMetaData GetContextRoot GetCurrentTemplatePath GetDirectoryFromPath GetEncoding ' + | ||
38 | 'GetException GetFileFromPath GetFileInfo GetFunctionList GetGatewayHelper GetHttpRequestData GetHttpTimeString ' + | ||
39 | 'GetK2ServerDocCount GetK2ServerDocCountLimit GetLocale GetLocaleDisplayName GetLocalHostIP GetMetaData GetMetricData ' + | ||
40 | 'GetPageContext GetPrinterInfo GetProfileSections GetProfileString GetReadableImageFormats GetSOAPRequest GetSOAPRequestHeader ' + | ||
41 | 'GetSOAPResponse GetSOAPResponseHeader GetTempDirectory GetTempFile GetTemplatePath GetTickCount GetTimeZoneInfo GetToken ' + | ||
42 | 'GetUserRoles GetWriteableImageFormats Hash Hour HTMLCodeFormat HTMLEditFormat IIf ImageAddBorder ImageBlur ImageClearRect ' + | ||
43 | 'ImageCopy ImageCrop ImageDrawArc ImageDrawBeveledRect ImageDrawCubicCurve ImageDrawLine ImageDrawLines ImageDrawOval ' + | ||
44 | 'ImageDrawPoint ImageDrawQuadraticCurve ImageDrawRect ImageDrawRoundRect ImageDrawText ImageFlip ImageGetBlob ImageGetBufferedImage ' + | ||
45 | 'ImageGetEXIFTag ImageGetHeight ImageGetIPTCTag ImageGetWidth ImageGrayscale ImageInfo ImageNegative ImageNew ImageOverlay ImagePaste ' + | ||
46 | 'ImageRead ImageReadBase64 ImageResize ImageRotate ImageRotateDrawingAxis ImageScaleToFit ImageSetAntialiasing ImageSetBackgroundColor ' + | ||
47 | 'ImageSetDrawingColor ImageSetDrawingStroke ImageSetDrawingTransparency ImageSharpen ImageShear ImageShearDrawingAxis ImageTranslate ' + | ||
48 | 'ImageTranslateDrawingAxis ImageWrite ImageWriteBase64 ImageXORDrawingMode IncrementValue InputBaseN Insert Int IsArray IsBinary ' + | ||
49 | 'IsBoolean IsCustomFunction IsDate IsDDX IsDebugMode IsDefined IsImage IsImageFile IsInstanceOf IsJSON IsLeapYear IsLocalHost ' + | ||
50 | 'IsNumeric IsNumericDate IsObject IsPDFFile IsPDFObject IsQuery IsSimpleValue IsSOAPRequest IsStruct IsUserInAnyRole IsUserInRole ' + | ||
51 | 'IsUserLoggedIn IsValid IsWDDX IsXML IsXmlAttribute IsXmlDoc IsXmlElem IsXmlNode IsXmlRoot JavaCast JSStringFormat LCase Left Len ' + | ||
52 | 'ListAppend ListChangeDelims ListContains ListContainsNoCase ListDeleteAt ListFind ListFindNoCase ListFirst ListGetAt ListInsertAt ' + | ||
53 | 'ListLast ListLen ListPrepend ListQualify ListRest ListSetAt ListSort ListToArray ListValueCount ListValueCountNoCase LJustify Log ' + | ||
54 | 'Log10 LSCurrencyFormat LSDateFormat LSEuroCurrencyFormat LSIsCurrency LSIsDate LSIsNumeric LSNumberFormat LSParseCurrency LSParseDateTime ' + | ||
55 | 'LSParseEuroCurrency LSParseNumber LSTimeFormat LTrim Max Mid Min Minute Month MonthAsString Now NumberFormat ParagraphFormat ParseDateTime ' + | ||
56 | 'Pi PrecisionEvaluate PreserveSingleQuotes Quarter QueryAddColumn QueryAddRow QueryConvertForGrid QueryNew QuerySetCell QuotedValueList Rand ' + | ||
57 | 'Randomize RandRange REFind REFindNoCase ReleaseComObject REMatch REMatchNoCase RemoveChars RepeatString Replace ReplaceList ReplaceNoCase ' + | ||
58 | 'REReplace REReplaceNoCase Reverse Right RJustify Round RTrim Second SendGatewayMessage SerializeJSON SetEncoding SetLocale SetProfileString ' + | ||
59 | 'SetVariable Sgn Sin Sleep SpanExcluding SpanIncluding Sqr StripCR StructAppend StructClear StructCopy StructCount StructDelete StructFind ' + | ||
60 | 'StructFindKey StructFindValue StructGet StructInsert StructIsEmpty StructKeyArray StructKeyExists StructKeyList StructKeyList StructNew ' + | ||
61 | 'StructSort StructUpdate Tan TimeFormat ToBase64 ToBinary ToScript ToString Trim UCase URLDecode URLEncodedFormat URLSessionFormat Val ' + | ||
62 | 'ValueList VerifyClient Week Wrap Wrap WriteOutput XmlChildPos XmlElemNew XmlFormat XmlGetNodeType XmlNew XmlParse XmlSearch XmlTransform ' + | ||
63 | 'XmlValidate Year YesNoFormat'; | ||
64 | |||
65 | var keywords = 'cfabort cfajaximport cfajaxproxy cfapplet cfapplication cfargument cfassociate cfbreak cfcache cfcalendar ' + | ||
66 | 'cfcase cfcatch cfchart cfchartdata cfchartseries cfcol cfcollection cfcomponent cfcontent cfcookie cfdbinfo ' + | ||
67 | 'cfdefaultcase cfdirectory cfdiv cfdocument cfdocumentitem cfdocumentsection cfdump cfelse cfelseif cferror ' + | ||
68 | 'cfexchangecalendar cfexchangeconnection cfexchangecontact cfexchangefilter cfexchangemail cfexchangetask ' + | ||
69 | 'cfexecute cfexit cffeed cffile cfflush cfform cfformgroup cfformitem cfftp cffunction cfgrid cfgridcolumn ' + | ||
70 | 'cfgridrow cfgridupdate cfheader cfhtmlhead cfhttp cfhttpparam cfif cfimage cfimport cfinclude cfindex ' + | ||
71 | 'cfinput cfinsert cfinterface cfinvoke cfinvokeargument cflayout cflayoutarea cfldap cflocation cflock cflog ' + | ||
72 | 'cflogin cfloginuser cflogout cfloop cfmail cfmailparam cfmailpart cfmenu cfmenuitem cfmodule cfNTauthenticate ' + | ||
73 | 'cfobject cfobjectcache cfoutput cfparam cfpdf cfpdfform cfpdfformparam cfpdfparam cfpdfsubform cfpod cfpop ' + | ||
74 | 'cfpresentation cfpresentationslide cfpresenter cfprint cfprocessingdirective cfprocparam cfprocresult ' + | ||
75 | 'cfproperty cfquery cfqueryparam cfregistry cfreport cfreportparam cfrethrow cfreturn cfsavecontent cfschedule ' + | ||
76 | 'cfscript cfsearch cfselect cfset cfsetting cfsilent cfslider cfsprydataset cfstoredproc cfswitch cftable ' + | ||
77 | 'cftextarea cfthread cfthrow cftimer cftooltip cftrace cftransaction cftree cftreeitem cftry cfupdate cfwddx ' + | ||
78 | 'cfwindow cfxml cfzip cfzipparam'; | ||
79 | |||
80 | var operators = 'all and any between cross in join like not null or outer some'; | ||
81 | |||
82 | this.regexList = [ | ||
83 | { regex: new RegExp('--(.*)$', 'gm'), css: 'comments' }, // one line and multiline comments | ||
84 | { regex: SyntaxHighlighter.regexLib.xmlComments, css: 'comments' }, // single quoted strings | ||
85 | { regex: SyntaxHighlighter.regexLib.doubleQuotedString, css: 'string' }, // double quoted strings | ||
86 | { regex: SyntaxHighlighter.regexLib.singleQuotedString, css: 'string' }, // single quoted strings | ||
87 | { regex: new RegExp(this.getKeywords(funcs), 'gmi'), css: 'functions' }, // functions | ||
88 | { regex: new RegExp(this.getKeywords(operators), 'gmi'), css: 'color1' }, // operators and such | ||
89 | { regex: new RegExp(this.getKeywords(keywords), 'gmi'), css: 'keyword' } // keyword | ||
90 | ]; | ||
91 | } | ||
92 | |||
93 | Brush.prototype = new SyntaxHighlighter.Highlighter(); | ||
94 | Brush.aliases = ['coldfusion','cf']; | ||
95 | |||
96 | SyntaxHighlighter.brushes.ColdFusion = Brush; | ||
97 | |||
98 | // CommonJS | ||
99 | typeof(exports) != 'undefined' ? exports.Brush = Brush : null; | ||
100 | })(); | ||
diff --git a/Blocks/syntax/scripts/shBrushCpp.js b/Blocks/syntax/scripts/shBrushCpp.js new file mode 100644 index 0000000..9f70d3a --- /dev/null +++ b/Blocks/syntax/scripts/shBrushCpp.js | |||
@@ -0,0 +1,97 @@ | |||
1 | /** | ||
2 | * SyntaxHighlighter | ||
3 | * http://alexgorbatchev.com/SyntaxHighlighter | ||
4 | * | ||
5 | * SyntaxHighlighter is donationware. If you are using it, please donate. | ||
6 | * http://alexgorbatchev.com/SyntaxHighlighter/donate.html | ||
7 | * | ||
8 | * @version | ||
9 | * 3.0.83 (July 02 2010) | ||
10 | * | ||
11 | * @copyright | ||
12 | * Copyright (C) 2004-2010 Alex Gorbatchev. | ||
13 | * | ||
14 | * @license | ||
15 | * Dual licensed under the MIT and GPL licenses. | ||
16 | */ | ||
17 | ;(function() | ||
18 | { | ||
19 | // CommonJS | ||
20 | typeof(require) != 'undefined' ? SyntaxHighlighter = require('shCore').SyntaxHighlighter : null; | ||
21 | |||
22 | function Brush() | ||
23 | { | ||
24 | // Copyright 2006 Shin, YoungJin | ||
25 | |||
26 | var datatypes = 'ATOM BOOL BOOLEAN BYTE CHAR COLORREF DWORD DWORDLONG DWORD_PTR ' + | ||
27 | 'DWORD32 DWORD64 FLOAT HACCEL HALF_PTR HANDLE HBITMAP HBRUSH ' + | ||
28 | 'HCOLORSPACE HCONV HCONVLIST HCURSOR HDC HDDEDATA HDESK HDROP HDWP ' + | ||
29 | 'HENHMETAFILE HFILE HFONT HGDIOBJ HGLOBAL HHOOK HICON HINSTANCE HKEY ' + | ||
30 | 'HKL HLOCAL HMENU HMETAFILE HMODULE HMONITOR HPALETTE HPEN HRESULT ' + | ||
31 | 'HRGN HRSRC HSZ HWINSTA HWND INT INT_PTR INT32 INT64 LANGID LCID LCTYPE ' + | ||
32 | 'LGRPID LONG LONGLONG LONG_PTR LONG32 LONG64 LPARAM LPBOOL LPBYTE LPCOLORREF ' + | ||
33 | 'LPCSTR LPCTSTR LPCVOID LPCWSTR LPDWORD LPHANDLE LPINT LPLONG LPSTR LPTSTR ' + | ||
34 | 'LPVOID LPWORD LPWSTR LRESULT PBOOL PBOOLEAN PBYTE PCHAR PCSTR PCTSTR PCWSTR ' + | ||
35 | 'PDWORDLONG PDWORD_PTR PDWORD32 PDWORD64 PFLOAT PHALF_PTR PHANDLE PHKEY PINT ' + | ||
36 | 'PINT_PTR PINT32 PINT64 PLCID PLONG PLONGLONG PLONG_PTR PLONG32 PLONG64 POINTER_32 ' + | ||
37 | 'POINTER_64 PSHORT PSIZE_T PSSIZE_T PSTR PTBYTE PTCHAR PTSTR PUCHAR PUHALF_PTR ' + | ||
38 | 'PUINT PUINT_PTR PUINT32 PUINT64 PULONG PULONGLONG PULONG_PTR PULONG32 PULONG64 ' + | ||
39 | 'PUSHORT PVOID PWCHAR PWORD PWSTR SC_HANDLE SC_LOCK SERVICE_STATUS_HANDLE SHORT ' + | ||
40 | 'SIZE_T SSIZE_T TBYTE TCHAR UCHAR UHALF_PTR UINT UINT_PTR UINT32 UINT64 ULONG ' + | ||
41 | 'ULONGLONG ULONG_PTR ULONG32 ULONG64 USHORT USN VOID WCHAR WORD WPARAM WPARAM WPARAM ' + | ||
42 | 'char bool short int __int32 __int64 __int8 __int16 long float double __wchar_t ' + | ||
43 | 'clock_t _complex _dev_t _diskfree_t div_t ldiv_t _exception _EXCEPTION_POINTERS ' + | ||
44 | 'FILE _finddata_t _finddatai64_t _wfinddata_t _wfinddatai64_t __finddata64_t ' + | ||
45 | '__wfinddata64_t _FPIEEE_RECORD fpos_t _HEAPINFO _HFILE lconv intptr_t ' + | ||
46 | 'jmp_buf mbstate_t _off_t _onexit_t _PNH ptrdiff_t _purecall_handler ' + | ||
47 | 'sig_atomic_t size_t _stat __stat64 _stati64 terminate_function ' + | ||
48 | 'time_t __time64_t _timeb __timeb64 tm uintptr_t _utimbuf ' + | ||
49 | 'va_list wchar_t wctrans_t wctype_t wint_t signed'; | ||
50 | |||
51 | var keywords = 'break case catch class const __finally __exception __try ' + | ||
52 | 'const_cast continue private public protected __declspec ' + | ||
53 | 'default delete deprecated dllexport dllimport do dynamic_cast ' + | ||
54 | 'else enum explicit extern if for friend goto inline ' + | ||
55 | 'mutable naked namespace new noinline noreturn nothrow ' + | ||
56 | 'register reinterpret_cast return selectany ' + | ||
57 | 'sizeof static static_cast struct switch template this ' + | ||
58 | 'thread throw true false try typedef typeid typename union ' + | ||
59 | 'using uuid virtual void volatile whcar_t while'; | ||
60 | |||
61 | var functions = 'assert isalnum isalpha iscntrl isdigit isgraph islower isprint' + | ||
62 | 'ispunct isspace isupper isxdigit tolower toupper errno localeconv ' + | ||
63 | 'setlocale acos asin atan atan2 ceil cos cosh exp fabs floor fmod ' + | ||
64 | 'frexp ldexp log log10 modf pow sin sinh sqrt tan tanh jmp_buf ' + | ||
65 | 'longjmp setjmp raise signal sig_atomic_t va_arg va_end va_start ' + | ||
66 | 'clearerr fclose feof ferror fflush fgetc fgetpos fgets fopen ' + | ||
67 | 'fprintf fputc fputs fread freopen fscanf fseek fsetpos ftell ' + | ||
68 | 'fwrite getc getchar gets perror printf putc putchar puts remove ' + | ||
69 | 'rename rewind scanf setbuf setvbuf sprintf sscanf tmpfile tmpnam ' + | ||
70 | 'ungetc vfprintf vprintf vsprintf abort abs atexit atof atoi atol ' + | ||
71 | 'bsearch calloc div exit free getenv labs ldiv malloc mblen mbstowcs ' + | ||
72 | 'mbtowc qsort rand realloc srand strtod strtol strtoul system ' + | ||
73 | 'wcstombs wctomb memchr memcmp memcpy memmove memset strcat strchr ' + | ||
74 | 'strcmp strcoll strcpy strcspn strerror strlen strncat strncmp ' + | ||
75 | 'strncpy strpbrk strrchr strspn strstr strtok strxfrm asctime ' + | ||
76 | 'clock ctime difftime gmtime localtime mktime strftime time'; | ||
77 | |||
78 | this.regexList = [ | ||
79 | { regex: SyntaxHighlighter.regexLib.singleLineCComments, css: 'comments' }, // one line comments | ||
80 | { regex: SyntaxHighlighter.regexLib.multiLineCComments, css: 'comments' }, // multiline comments | ||
81 | { regex: SyntaxHighlighter.regexLib.doubleQuotedString, css: 'string' }, // strings | ||
82 | { regex: SyntaxHighlighter.regexLib.singleQuotedString, css: 'string' }, // strings | ||
83 | { regex: /^ *#.*/gm, css: 'preprocessor' }, | ||
84 | { regex: new RegExp(this.getKeywords(datatypes), 'gm'), css: 'color1 bold' }, | ||
85 | { regex: new RegExp(this.getKeywords(functions), 'gm'), css: 'functions bold' }, | ||
86 | { regex: new RegExp(this.getKeywords(keywords), 'gm'), css: 'keyword bold' } | ||
87 | ]; | ||
88 | }; | ||
89 | |||
90 | Brush.prototype = new SyntaxHighlighter.Highlighter(); | ||
91 | Brush.aliases = ['cpp', 'c']; | ||
92 | |||
93 | SyntaxHighlighter.brushes.Cpp = Brush; | ||
94 | |||
95 | // CommonJS | ||
96 | typeof(exports) != 'undefined' ? exports.Brush = Brush : null; | ||
97 | })(); | ||
diff --git a/Blocks/syntax/scripts/shBrushCss.js b/Blocks/syntax/scripts/shBrushCss.js new file mode 100644 index 0000000..4297a9a --- /dev/null +++ b/Blocks/syntax/scripts/shBrushCss.js | |||
@@ -0,0 +1,91 @@ | |||
1 | /** | ||
2 | * SyntaxHighlighter | ||
3 | * http://alexgorbatchev.com/SyntaxHighlighter | ||
4 | * | ||
5 | * SyntaxHighlighter is donationware. If you are using it, please donate. | ||
6 | * http://alexgorbatchev.com/SyntaxHighlighter/donate.html | ||
7 | * | ||
8 | * @version | ||
9 | * 3.0.83 (July 02 2010) | ||
10 | * | ||
11 | * @copyright | ||
12 | * Copyright (C) 2004-2010 Alex Gorbatchev. | ||
13 | * | ||
14 | * @license | ||
15 | * Dual licensed under the MIT and GPL licenses. | ||
16 | */ | ||
17 | ;(function() | ||
18 | { | ||
19 | // CommonJS | ||
20 | typeof(require) != 'undefined' ? SyntaxHighlighter = require('shCore').SyntaxHighlighter : null; | ||
21 | |||
22 | function Brush() | ||
23 | { | ||
24 | function getKeywordsCSS(str) | ||
25 | { | ||
26 | return '\\b([a-z_]|)' + str.replace(/ /g, '(?=:)\\b|\\b([a-z_\\*]|\\*|)') + '(?=:)\\b'; | ||
27 | }; | ||
28 | |||
29 | function getValuesCSS(str) | ||
30 | { | ||
31 | return '\\b' + str.replace(/ /g, '(?!-)(?!:)\\b|\\b()') + '\:\\b'; | ||
32 | }; | ||
33 | |||
34 | var keywords = 'ascent azimuth background-attachment background-color background-image background-position ' + | ||
35 | 'background-repeat background baseline bbox border-collapse border-color border-spacing border-style border-top ' + | ||
36 | 'border-right border-bottom border-left border-top-color border-right-color border-bottom-color border-left-color ' + | ||
37 | 'border-top-style border-right-style border-bottom-style border-left-style border-top-width border-right-width ' + | ||
38 | 'border-bottom-width border-left-width border-width border bottom cap-height caption-side centerline clear clip color ' + | ||
39 | 'content counter-increment counter-reset cue-after cue-before cue cursor definition-src descent direction display ' + | ||
40 | 'elevation empty-cells float font-size-adjust font-family font-size font-stretch font-style font-variant font-weight font ' + | ||
41 | 'height left letter-spacing line-height list-style-image list-style-position list-style-type list-style margin-top ' + | ||
42 | 'margin-right margin-bottom margin-left margin marker-offset marks mathline max-height max-width min-height min-width orphans ' + | ||
43 | 'outline-color outline-style outline-width outline overflow padding-top padding-right padding-bottom padding-left padding page ' + | ||
44 | 'page-break-after page-break-before page-break-inside pause pause-after pause-before pitch pitch-range play-during position ' + | ||
45 | 'quotes right richness size slope src speak-header speak-numeral speak-punctuation speak speech-rate stemh stemv stress ' + | ||
46 | 'table-layout text-align top text-decoration text-indent text-shadow text-transform unicode-bidi unicode-range units-per-em ' + | ||
47 | 'vertical-align visibility voice-family volume white-space widows width widths word-spacing x-height z-index'; | ||
48 | |||
49 | var values = 'above absolute all always aqua armenian attr aural auto avoid baseline behind below bidi-override black blink block blue bold bolder '+ | ||
50 | 'both bottom braille capitalize caption center center-left center-right circle close-quote code collapse compact condensed '+ | ||
51 | 'continuous counter counters crop cross crosshair cursive dashed decimal decimal-leading-zero default digits disc dotted double '+ | ||
52 | 'embed embossed e-resize expanded extra-condensed extra-expanded fantasy far-left far-right fast faster fixed format fuchsia '+ | ||
53 | 'gray green groove handheld hebrew help hidden hide high higher icon inline-table inline inset inside invert italic '+ | ||
54 | 'justify landscape large larger left-side left leftwards level lighter lime line-through list-item local loud lower-alpha '+ | ||
55 | 'lowercase lower-greek lower-latin lower-roman lower low ltr marker maroon medium message-box middle mix move narrower '+ | ||
56 | 'navy ne-resize no-close-quote none no-open-quote no-repeat normal nowrap n-resize nw-resize oblique olive once open-quote outset '+ | ||
57 | 'outside overline pointer portrait pre print projection purple red relative repeat repeat-x repeat-y rgb ridge right right-side '+ | ||
58 | 'rightwards rtl run-in screen scroll semi-condensed semi-expanded separate se-resize show silent silver slower slow '+ | ||
59 | 'small small-caps small-caption smaller soft solid speech spell-out square s-resize static status-bar sub super sw-resize '+ | ||
60 | 'table-caption table-cell table-column table-column-group table-footer-group table-header-group table-row table-row-group teal '+ | ||
61 | 'text-bottom text-top thick thin top transparent tty tv ultra-condensed ultra-expanded underline upper-alpha uppercase upper-latin '+ | ||
62 | 'upper-roman url visible wait white wider w-resize x-fast x-high x-large x-loud x-low x-slow x-small x-soft xx-large xx-small yellow'; | ||
63 | |||
64 | var fonts = '[mM]onospace [tT]ahoma [vV]erdana [aA]rial [hH]elvetica [sS]ans-serif [sS]erif [cC]ourier mono sans serif'; | ||
65 | |||
66 | this.regexList = [ | ||
67 | { regex: SyntaxHighlighter.regexLib.multiLineCComments, css: 'comments' }, // multiline comments | ||
68 | { regex: SyntaxHighlighter.regexLib.doubleQuotedString, css: 'string' }, // double quoted strings | ||
69 | { regex: SyntaxHighlighter.regexLib.singleQuotedString, css: 'string' }, // single quoted strings | ||
70 | { regex: /\#[a-fA-F0-9]{3,6}/g, css: 'value' }, // html colors | ||
71 | { regex: /(-?\d+)(\.\d+)?(px|em|pt|\:|\%|)/g, css: 'value' }, // sizes | ||
72 | { regex: /!important/g, css: 'color3' }, // !important | ||
73 | { regex: new RegExp(getKeywordsCSS(keywords), 'gm'), css: 'keyword' }, // keywords | ||
74 | { regex: new RegExp(getValuesCSS(values), 'g'), css: 'value' }, // values | ||
75 | { regex: new RegExp(this.getKeywords(fonts), 'g'), css: 'color1' } // fonts | ||
76 | ]; | ||
77 | |||
78 | this.forHtmlScript({ | ||
79 | left: /(<|<)\s*style.*?(>|>)/gi, | ||
80 | right: /(<|<)\/\s*style\s*(>|>)/gi | ||
81 | }); | ||
82 | }; | ||
83 | |||
84 | Brush.prototype = new SyntaxHighlighter.Highlighter(); | ||
85 | Brush.aliases = ['css']; | ||
86 | |||
87 | SyntaxHighlighter.brushes.CSS = Brush; | ||
88 | |||
89 | // CommonJS | ||
90 | typeof(exports) != 'undefined' ? exports.Brush = Brush : null; | ||
91 | })(); | ||
diff --git a/Blocks/syntax/scripts/shBrushDelphi.js b/Blocks/syntax/scripts/shBrushDelphi.js new file mode 100644 index 0000000..e1060d4 --- /dev/null +++ b/Blocks/syntax/scripts/shBrushDelphi.js | |||
@@ -0,0 +1,55 @@ | |||
1 | /** | ||
2 | * SyntaxHighlighter | ||
3 | * http://alexgorbatchev.com/SyntaxHighlighter | ||
4 | * | ||
5 | * SyntaxHighlighter is donationware. If you are using it, please donate. | ||
6 | * http://alexgorbatchev.com/SyntaxHighlighter/donate.html | ||
7 | * | ||
8 | * @version | ||
9 | * 3.0.83 (July 02 2010) | ||
10 | * | ||
11 | * @copyright | ||
12 | * Copyright (C) 2004-2010 Alex Gorbatchev. | ||
13 | * | ||
14 | * @license | ||
15 | * Dual licensed under the MIT and GPL licenses. | ||
16 | */ | ||
17 | ;(function() | ||
18 | { | ||
19 | // CommonJS | ||
20 | typeof(require) != 'undefined' ? SyntaxHighlighter = require('shCore').SyntaxHighlighter : null; | ||
21 | |||
22 | function Brush() | ||
23 | { | ||
24 | var keywords = 'abs addr and ansichar ansistring array as asm begin boolean byte cardinal ' + | ||
25 | 'case char class comp const constructor currency destructor div do double ' + | ||
26 | 'downto else end except exports extended false file finalization finally ' + | ||
27 | 'for function goto if implementation in inherited int64 initialization ' + | ||
28 | 'integer interface is label library longint longword mod nil not object ' + | ||
29 | 'of on or packed pansichar pansistring pchar pcurrency pdatetime pextended ' + | ||
30 | 'pint64 pointer private procedure program property pshortstring pstring ' + | ||
31 | 'pvariant pwidechar pwidestring protected public published raise real real48 ' + | ||
32 | 'record repeat set shl shortint shortstring shr single smallint string then ' + | ||
33 | 'threadvar to true try type unit until uses val var varirnt while widechar ' + | ||
34 | 'widestring with word write writeln xor'; | ||
35 | |||
36 | this.regexList = [ | ||
37 | { regex: /\(\*[\s\S]*?\*\)/gm, css: 'comments' }, // multiline comments (* *) | ||
38 | { regex: /{(?!\$)[\s\S]*?}/gm, css: 'comments' }, // multiline comments { } | ||
39 | { regex: SyntaxHighlighter.regexLib.singleLineCComments, css: 'comments' }, // one line | ||
40 | { regex: SyntaxHighlighter.regexLib.singleQuotedString, css: 'string' }, // strings | ||
41 | { regex: /\{\$[a-zA-Z]+ .+\}/g, css: 'color1' }, // compiler Directives and Region tags | ||
42 | { regex: /\b[\d\.]+\b/g, css: 'value' }, // numbers 12345 | ||
43 | { regex: /\$[a-zA-Z0-9]+\b/g, css: 'value' }, // numbers $F5D3 | ||
44 | { regex: new RegExp(this.getKeywords(keywords), 'gmi'), css: 'keyword' } // keyword | ||
45 | ]; | ||
46 | }; | ||
47 | |||
48 | Brush.prototype = new SyntaxHighlighter.Highlighter(); | ||
49 | Brush.aliases = ['delphi', 'pascal', 'pas']; | ||
50 | |||
51 | SyntaxHighlighter.brushes.Delphi = Brush; | ||
52 | |||
53 | // CommonJS | ||
54 | typeof(exports) != 'undefined' ? exports.Brush = Brush : null; | ||
55 | })(); | ||
diff --git a/Blocks/syntax/scripts/shBrushDiff.js b/Blocks/syntax/scripts/shBrushDiff.js new file mode 100644 index 0000000..e9b14fc --- /dev/null +++ b/Blocks/syntax/scripts/shBrushDiff.js | |||
@@ -0,0 +1,41 @@ | |||
1 | /** | ||
2 | * SyntaxHighlighter | ||
3 | * http://alexgorbatchev.com/SyntaxHighlighter | ||
4 | * | ||
5 | * SyntaxHighlighter is donationware. If you are using it, please donate. | ||
6 | * http://alexgorbatchev.com/SyntaxHighlighter/donate.html | ||
7 | * | ||
8 | * @version | ||
9 | * 3.0.83 (July 02 2010) | ||
10 | * | ||
11 | * @copyright | ||
12 | * Copyright (C) 2004-2010 Alex Gorbatchev. | ||
13 | * | ||
14 | * @license | ||
15 | * Dual licensed under the MIT and GPL licenses. | ||
16 | */ | ||
17 | ;(function() | ||
18 | { | ||
19 | // CommonJS | ||
20 | typeof(require) != 'undefined' ? SyntaxHighlighter = require('shCore').SyntaxHighlighter : null; | ||
21 | |||
22 | function Brush() | ||
23 | { | ||
24 | this.regexList = [ | ||
25 | { regex: /^\+\+\+.*$/gm, css: 'color2' }, | ||
26 | { regex: /^\-\-\-.*$/gm, css: 'color2' }, | ||
27 | { regex: /^\s.*$/gm, css: 'color1' }, | ||
28 | { regex: /^@@.*@@$/gm, css: 'variable' }, | ||
29 | { regex: /^\+[^\+]{1}.*$/gm, css: 'string' }, | ||
30 | { regex: /^\-[^\-]{1}.*$/gm, css: 'comments' } | ||
31 | ]; | ||
32 | }; | ||
33 | |||
34 | Brush.prototype = new SyntaxHighlighter.Highlighter(); | ||
35 | Brush.aliases = ['diff', 'patch']; | ||
36 | |||
37 | SyntaxHighlighter.brushes.Diff = Brush; | ||
38 | |||
39 | // CommonJS | ||
40 | typeof(exports) != 'undefined' ? exports.Brush = Brush : null; | ||
41 | })(); | ||
diff --git a/Blocks/syntax/scripts/shBrushErlang.js b/Blocks/syntax/scripts/shBrushErlang.js new file mode 100644 index 0000000..6ba7d9d --- /dev/null +++ b/Blocks/syntax/scripts/shBrushErlang.js | |||
@@ -0,0 +1,52 @@ | |||
1 | /** | ||
2 | * SyntaxHighlighter | ||
3 | * http://alexgorbatchev.com/SyntaxHighlighter | ||
4 | * | ||
5 | * SyntaxHighlighter is donationware. If you are using it, please donate. | ||
6 | * http://alexgorbatchev.com/SyntaxHighlighter/donate.html | ||
7 | * | ||
8 | * @version | ||
9 | * 3.0.83 (July 02 2010) | ||
10 | * | ||
11 | * @copyright | ||
12 | * Copyright (C) 2004-2010 Alex Gorbatchev. | ||
13 | * | ||
14 | * @license | ||
15 | * Dual licensed under the MIT and GPL licenses. | ||
16 | */ | ||
17 | ;(function() | ||
18 | { | ||
19 | // CommonJS | ||
20 | typeof(require) != 'undefined' ? SyntaxHighlighter = require('shCore').SyntaxHighlighter : null; | ||
21 | |||
22 | function Brush() | ||
23 | { | ||
24 | // Contributed by Jean-Lou Dupont | ||
25 | // http://jldupont.blogspot.com/2009/06/erlang-syntax-highlighter.html | ||
26 | |||
27 | // According to: http://erlang.org/doc/reference_manual/introduction.html#1.5 | ||
28 | var keywords = 'after and andalso band begin bnot bor bsl bsr bxor '+ | ||
29 | 'case catch cond div end fun if let not of or orelse '+ | ||
30 | 'query receive rem try when xor'+ | ||
31 | // additional | ||
32 | ' module export import define'; | ||
33 | |||
34 | this.regexList = [ | ||
35 | { regex: new RegExp("[A-Z][A-Za-z0-9_]+", 'g'), css: 'constants' }, | ||
36 | { regex: new RegExp("\\%.+", 'gm'), css: 'comments' }, | ||
37 | { regex: new RegExp("\\?[A-Za-z0-9_]+", 'g'), css: 'preprocessor' }, | ||
38 | { regex: new RegExp("[a-z0-9_]+:[a-z0-9_]+", 'g'), css: 'functions' }, | ||
39 | { regex: SyntaxHighlighter.regexLib.doubleQuotedString, css: 'string' }, | ||
40 | { regex: SyntaxHighlighter.regexLib.singleQuotedString, css: 'string' }, | ||
41 | { regex: new RegExp(this.getKeywords(keywords), 'gm'), css: 'keyword' } | ||
42 | ]; | ||
43 | }; | ||
44 | |||
45 | Brush.prototype = new SyntaxHighlighter.Highlighter(); | ||
46 | Brush.aliases = ['erl', 'erlang']; | ||
47 | |||
48 | SyntaxHighlighter.brushes.Erland = Brush; | ||
49 | |||
50 | // CommonJS | ||
51 | typeof(exports) != 'undefined' ? exports.Brush = Brush : null; | ||
52 | })(); | ||
diff --git a/Blocks/syntax/scripts/shBrushGroovy.js b/Blocks/syntax/scripts/shBrushGroovy.js new file mode 100644 index 0000000..6ec5c18 --- /dev/null +++ b/Blocks/syntax/scripts/shBrushGroovy.js | |||
@@ -0,0 +1,67 @@ | |||
1 | /** | ||
2 | * SyntaxHighlighter | ||
3 | * http://alexgorbatchev.com/SyntaxHighlighter | ||
4 | * | ||
5 | * SyntaxHighlighter is donationware. If you are using it, please donate. | ||
6 | * http://alexgorbatchev.com/SyntaxHighlighter/donate.html | ||
7 | * | ||
8 | * @version | ||
9 | * 3.0.83 (July 02 2010) | ||
10 | * | ||
11 | * @copyright | ||
12 | * Copyright (C) 2004-2010 Alex Gorbatchev. | ||
13 | * | ||
14 | * @license | ||
15 | * Dual licensed under the MIT and GPL licenses. | ||
16 | */ | ||
17 | ;(function() | ||
18 | { | ||
19 | // CommonJS | ||
20 | typeof(require) != 'undefined' ? SyntaxHighlighter = require('shCore').SyntaxHighlighter : null; | ||
21 | |||
22 | function Brush() | ||
23 | { | ||
24 | // Contributed by Andres Almiray | ||
25 | // http://jroller.com/aalmiray/entry/nice_source_code_syntax_highlighter | ||
26 | |||
27 | var keywords = 'as assert break case catch class continue def default do else extends finally ' + | ||
28 | 'if in implements import instanceof interface new package property return switch ' + | ||
29 | 'throw throws try while public protected private static'; | ||
30 | var types = 'void boolean byte char short int long float double'; | ||
31 | var constants = 'null'; | ||
32 | var methods = 'allProperties count get size '+ | ||
33 | 'collect each eachProperty eachPropertyName eachWithIndex find findAll ' + | ||
34 | 'findIndexOf grep inject max min reverseEach sort ' + | ||
35 | 'asImmutable asSynchronized flatten intersect join pop reverse subMap toList ' + | ||
36 | 'padRight padLeft contains eachMatch toCharacter toLong toUrl tokenize ' + | ||
37 | 'eachFile eachFileRecurse eachB yte eachLine readBytes readLine getText ' + | ||
38 | 'splitEachLine withReader append encodeBase64 decodeBase64 filterLine ' + | ||
39 | 'transformChar transformLine withOutputStream withPrintWriter withStream ' + | ||
40 | 'withStreams withWriter withWriterAppend write writeLine '+ | ||
41 | 'dump inspect invokeMethod print println step times upto use waitForOrKill '+ | ||
42 | 'getText'; | ||
43 | |||
44 | this.regexList = [ | ||
45 | { regex: SyntaxHighlighter.regexLib.singleLineCComments, css: 'comments' }, // one line comments | ||
46 | { regex: SyntaxHighlighter.regexLib.multiLineCComments, css: 'comments' }, // multiline comments | ||
47 | { regex: SyntaxHighlighter.regexLib.doubleQuotedString, css: 'string' }, // strings | ||
48 | { regex: SyntaxHighlighter.regexLib.singleQuotedString, css: 'string' }, // strings | ||
49 | { regex: /""".*"""/g, css: 'string' }, // GStrings | ||
50 | { regex: new RegExp('\\b([\\d]+(\\.[\\d]+)?|0x[a-f0-9]+)\\b', 'gi'), css: 'value' }, // numbers | ||
51 | { regex: new RegExp(this.getKeywords(keywords), 'gm'), css: 'keyword' }, // goovy keyword | ||
52 | { regex: new RegExp(this.getKeywords(types), 'gm'), css: 'color1' }, // goovy/java type | ||
53 | { regex: new RegExp(this.getKeywords(constants), 'gm'), css: 'constants' }, // constants | ||
54 | { regex: new RegExp(this.getKeywords(methods), 'gm'), css: 'functions' } // methods | ||
55 | ]; | ||
56 | |||
57 | this.forHtmlScript(SyntaxHighlighter.regexLib.aspScriptTags); | ||
58 | } | ||
59 | |||
60 | Brush.prototype = new SyntaxHighlighter.Highlighter(); | ||
61 | Brush.aliases = ['groovy']; | ||
62 | |||
63 | SyntaxHighlighter.brushes.Groovy = Brush; | ||
64 | |||
65 | // CommonJS | ||
66 | typeof(exports) != 'undefined' ? exports.Brush = Brush : null; | ||
67 | })(); | ||
diff --git a/Blocks/syntax/scripts/shBrushJScript.js b/Blocks/syntax/scripts/shBrushJScript.js new file mode 100644 index 0000000..ff98dab --- /dev/null +++ b/Blocks/syntax/scripts/shBrushJScript.js | |||
@@ -0,0 +1,52 @@ | |||
1 | /** | ||
2 | * SyntaxHighlighter | ||
3 | * http://alexgorbatchev.com/SyntaxHighlighter | ||
4 | * | ||
5 | * SyntaxHighlighter is donationware. If you are using it, please donate. | ||
6 | * http://alexgorbatchev.com/SyntaxHighlighter/donate.html | ||
7 | * | ||
8 | * @version | ||
9 | * 3.0.83 (July 02 2010) | ||
10 | * | ||
11 | * @copyright | ||
12 | * Copyright (C) 2004-2010 Alex Gorbatchev. | ||
13 | * | ||
14 | * @license | ||
15 | * Dual licensed under the MIT and GPL licenses. | ||
16 | */ | ||
17 | ;(function() | ||
18 | { | ||
19 | // CommonJS | ||
20 | typeof(require) != 'undefined' ? SyntaxHighlighter = require('shCore').SyntaxHighlighter : null; | ||
21 | |||
22 | function Brush() | ||
23 | { | ||
24 | var keywords = 'break case catch continue ' + | ||
25 | 'default delete do else false ' + | ||
26 | 'for function if in instanceof ' + | ||
27 | 'new null return super switch ' + | ||
28 | 'this throw true try typeof var while with' | ||
29 | ; | ||
30 | |||
31 | var r = SyntaxHighlighter.regexLib; | ||
32 | |||
33 | this.regexList = [ | ||
34 | { regex: r.multiLineDoubleQuotedString, css: 'string' }, // double quoted strings | ||
35 | { regex: r.multiLineSingleQuotedString, css: 'string' }, // single quoted strings | ||
36 | { regex: r.singleLineCComments, css: 'comments' }, // one line comments | ||
37 | { regex: r.multiLineCComments, css: 'comments' }, // multiline comments | ||
38 | { regex: /\s*#.*/gm, css: 'preprocessor' }, // preprocessor tags like #region and #endregion | ||
39 | { regex: new RegExp(this.getKeywords(keywords), 'gm'), css: 'keyword' } // keywords | ||
40 | ]; | ||
41 | |||
42 | this.forHtmlScript(r.scriptScriptTags); | ||
43 | }; | ||
44 | |||
45 | Brush.prototype = new SyntaxHighlighter.Highlighter(); | ||
46 | Brush.aliases = ['js', 'jscript', 'javascript']; | ||
47 | |||
48 | SyntaxHighlighter.brushes.JScript = Brush; | ||
49 | |||
50 | // CommonJS | ||
51 | typeof(exports) != 'undefined' ? exports.Brush = Brush : null; | ||
52 | })(); | ||
diff --git a/Blocks/syntax/scripts/shBrushJava.js b/Blocks/syntax/scripts/shBrushJava.js new file mode 100644 index 0000000..d692fd6 --- /dev/null +++ b/Blocks/syntax/scripts/shBrushJava.js | |||
@@ -0,0 +1,57 @@ | |||
1 | /** | ||
2 | * SyntaxHighlighter | ||
3 | * http://alexgorbatchev.com/SyntaxHighlighter | ||
4 | * | ||
5 | * SyntaxHighlighter is donationware. If you are using it, please donate. | ||
6 | * http://alexgorbatchev.com/SyntaxHighlighter/donate.html | ||
7 | * | ||
8 | * @version | ||
9 | * 3.0.83 (July 02 2010) | ||
10 | * | ||
11 | * @copyright | ||
12 | * Copyright (C) 2004-2010 Alex Gorbatchev. | ||
13 | * | ||
14 | * @license | ||
15 | * Dual licensed under the MIT and GPL licenses. | ||
16 | */ | ||
17 | ;(function() | ||
18 | { | ||
19 | // CommonJS | ||
20 | typeof(require) != 'undefined' ? SyntaxHighlighter = require('shCore').SyntaxHighlighter : null; | ||
21 | |||
22 | function Brush() | ||
23 | { | ||
24 | var keywords = 'abstract assert boolean break byte case catch char class const ' + | ||
25 | 'continue default do double else enum extends ' + | ||
26 | 'false final finally float for goto if implements import ' + | ||
27 | 'instanceof int interface long native new null ' + | ||
28 | 'package private protected public return ' + | ||
29 | 'short static strictfp super switch synchronized this throw throws true ' + | ||
30 | 'transient try void volatile while'; | ||
31 | |||
32 | this.regexList = [ | ||
33 | { regex: SyntaxHighlighter.regexLib.singleLineCComments, css: 'comments' }, // one line comments | ||
34 | { regex: /\/\*([^\*][\s\S]*)?\*\//gm, css: 'comments' }, // multiline comments | ||
35 | { regex: /\/\*(?!\*\/)\*[\s\S]*?\*\//gm, css: 'preprocessor' }, // documentation comments | ||
36 | { regex: SyntaxHighlighter.regexLib.doubleQuotedString, css: 'string' }, // strings | ||
37 | { regex: SyntaxHighlighter.regexLib.singleQuotedString, css: 'string' }, // strings | ||
38 | { regex: /\b([\d]+(\.[\d]+)?|0x[a-f0-9]+)\b/gi, css: 'value' }, // numbers | ||
39 | { regex: /(?!\@interface\b)\@[\$\w]+\b/g, css: 'color1' }, // annotation @anno | ||
40 | { regex: /\@interface\b/g, css: 'color2' }, // @interface keyword | ||
41 | { regex: new RegExp(this.getKeywords(keywords), 'gm'), css: 'keyword' } // java keyword | ||
42 | ]; | ||
43 | |||
44 | this.forHtmlScript({ | ||
45 | left : /(<|<)%[@!=]?/g, | ||
46 | right : /%(>|>)/g | ||
47 | }); | ||
48 | }; | ||
49 | |||
50 | Brush.prototype = new SyntaxHighlighter.Highlighter(); | ||
51 | Brush.aliases = ['java']; | ||
52 | |||
53 | SyntaxHighlighter.brushes.Java = Brush; | ||
54 | |||
55 | // CommonJS | ||
56 | typeof(exports) != 'undefined' ? exports.Brush = Brush : null; | ||
57 | })(); | ||
diff --git a/Blocks/syntax/scripts/shBrushJavaFX.js b/Blocks/syntax/scripts/shBrushJavaFX.js new file mode 100644 index 0000000..1a150a6 --- /dev/null +++ b/Blocks/syntax/scripts/shBrushJavaFX.js | |||
@@ -0,0 +1,58 @@ | |||
1 | /** | ||
2 | * SyntaxHighlighter | ||
3 | * http://alexgorbatchev.com/SyntaxHighlighter | ||
4 | * | ||
5 | * SyntaxHighlighter is donationware. If you are using it, please donate. | ||
6 | * http://alexgorbatchev.com/SyntaxHighlighter/donate.html | ||
7 | * | ||
8 | * @version | ||
9 | * 3.0.83 (July 02 2010) | ||
10 | * | ||
11 | * @copyright | ||
12 | * Copyright (C) 2004-2010 Alex Gorbatchev. | ||
13 | * | ||
14 | * @license | ||
15 | * Dual licensed under the MIT and GPL licenses. | ||
16 | */ | ||
17 | ;(function() | ||
18 | { | ||
19 | // CommonJS | ||
20 | typeof(require) != 'undefined' ? SyntaxHighlighter = require('shCore').SyntaxHighlighter : null; | ||
21 | |||
22 | function Brush() | ||
23 | { | ||
24 | // Contributed by Patrick Webster | ||
25 | // http://patrickwebster.blogspot.com/2009/04/javafx-brush-for-syntaxhighlighter.html | ||
26 | var datatypes = 'Boolean Byte Character Double Duration ' | ||
27 | + 'Float Integer Long Number Short String Void' | ||
28 | ; | ||
29 | |||
30 | var keywords = 'abstract after and as assert at before bind bound break catch class ' | ||
31 | + 'continue def delete else exclusive extends false finally first for from ' | ||
32 | + 'function if import in indexof init insert instanceof into inverse last ' | ||
33 | + 'lazy mixin mod nativearray new not null on or override package postinit ' | ||
34 | + 'protected public public-init public-read replace return reverse sizeof ' | ||
35 | + 'step super then this throw true try tween typeof var where while with ' | ||
36 | + 'attribute let private readonly static trigger' | ||
37 | ; | ||
38 | |||
39 | this.regexList = [ | ||
40 | { regex: SyntaxHighlighter.regexLib.singleLineCComments, css: 'comments' }, | ||
41 | { regex: SyntaxHighlighter.regexLib.multiLineCComments, css: 'comments' }, | ||
42 | { regex: SyntaxHighlighter.regexLib.singleQuotedString, css: 'string' }, | ||
43 | { regex: SyntaxHighlighter.regexLib.doubleQuotedString, css: 'string' }, | ||
44 | { regex: /(-?\.?)(\b(\d*\.?\d+|\d+\.?\d*)(e[+-]?\d+)?|0x[a-f\d]+)\b\.?/gi, css: 'color2' }, // numbers | ||
45 | { regex: new RegExp(this.getKeywords(datatypes), 'gm'), css: 'variable' }, // datatypes | ||
46 | { regex: new RegExp(this.getKeywords(keywords), 'gm'), css: 'keyword' } | ||
47 | ]; | ||
48 | this.forHtmlScript(SyntaxHighlighter.regexLib.aspScriptTags); | ||
49 | }; | ||
50 | |||
51 | Brush.prototype = new SyntaxHighlighter.Highlighter(); | ||
52 | Brush.aliases = ['jfx', 'javafx']; | ||
53 | |||
54 | SyntaxHighlighter.brushes.JavaFX = Brush; | ||
55 | |||
56 | // CommonJS | ||
57 | typeof(exports) != 'undefined' ? exports.Brush = Brush : null; | ||
58 | })(); | ||
diff --git a/Blocks/syntax/scripts/shBrushPerl.js b/Blocks/syntax/scripts/shBrushPerl.js new file mode 100644 index 0000000..d94a2e0 --- /dev/null +++ b/Blocks/syntax/scripts/shBrushPerl.js | |||
@@ -0,0 +1,72 @@ | |||
1 | /** | ||
2 | * SyntaxHighlighter | ||
3 | * http://alexgorbatchev.com/SyntaxHighlighter | ||
4 | * | ||
5 | * SyntaxHighlighter is donationware. If you are using it, please donate. | ||
6 | * http://alexgorbatchev.com/SyntaxHighlighter/donate.html | ||
7 | * | ||
8 | * @version | ||
9 | * 3.0.83 (July 02 2010) | ||
10 | * | ||
11 | * @copyright | ||
12 | * Copyright (C) 2004-2010 Alex Gorbatchev. | ||
13 | * | ||
14 | * @license | ||
15 | * Dual licensed under the MIT and GPL licenses. | ||
16 | */ | ||
17 | ;(function() | ||
18 | { | ||
19 | // CommonJS | ||
20 | typeof(require) != 'undefined' ? SyntaxHighlighter = require('shCore').SyntaxHighlighter : null; | ||
21 | |||
22 | function Brush() | ||
23 | { | ||
24 | // Contributed by David Simmons-Duffin and Marty Kube | ||
25 | |||
26 | var funcs = | ||
27 | 'abs accept alarm atan2 bind binmode chdir chmod chomp chop chown chr ' + | ||
28 | 'chroot close closedir connect cos crypt defined delete each endgrent ' + | ||
29 | 'endhostent endnetent endprotoent endpwent endservent eof exec exists ' + | ||
30 | 'exp fcntl fileno flock fork format formline getc getgrent getgrgid ' + | ||
31 | 'getgrnam gethostbyaddr gethostbyname gethostent getlogin getnetbyaddr ' + | ||
32 | 'getnetbyname getnetent getpeername getpgrp getppid getpriority ' + | ||
33 | 'getprotobyname getprotobynumber getprotoent getpwent getpwnam getpwuid ' + | ||
34 | 'getservbyname getservbyport getservent getsockname getsockopt glob ' + | ||
35 | 'gmtime grep hex index int ioctl join keys kill lc lcfirst length link ' + | ||
36 | 'listen localtime lock log lstat map mkdir msgctl msgget msgrcv msgsnd ' + | ||
37 | 'oct open opendir ord pack pipe pop pos print printf prototype push ' + | ||
38 | 'quotemeta rand read readdir readline readlink readpipe recv rename ' + | ||
39 | 'reset reverse rewinddir rindex rmdir scalar seek seekdir select semctl ' + | ||
40 | 'semget semop send setgrent sethostent setnetent setpgrp setpriority ' + | ||
41 | 'setprotoent setpwent setservent setsockopt shift shmctl shmget shmread ' + | ||
42 | 'shmwrite shutdown sin sleep socket socketpair sort splice split sprintf ' + | ||
43 | 'sqrt srand stat study substr symlink syscall sysopen sysread sysseek ' + | ||
44 | 'system syswrite tell telldir time times tr truncate uc ucfirst umask ' + | ||
45 | 'undef unlink unpack unshift utime values vec wait waitpid warn write'; | ||
46 | |||
47 | var keywords = | ||
48 | 'bless caller continue dbmclose dbmopen die do dump else elsif eval exit ' + | ||
49 | 'for foreach goto if import last local my next no our package redo ref ' + | ||
50 | 'require return sub tie tied unless untie until use wantarray while'; | ||
51 | |||
52 | this.regexList = [ | ||
53 | { regex: new RegExp('#[^!].*$', 'gm'), css: 'comments' }, | ||
54 | { regex: new RegExp('^\\s*#!.*$', 'gm'), css: 'preprocessor' }, // shebang | ||
55 | { regex: SyntaxHighlighter.regexLib.doubleQuotedString, css: 'string' }, | ||
56 | { regex: SyntaxHighlighter.regexLib.singleQuotedString, css: 'string' }, | ||
57 | { regex: new RegExp('(\\$|@|%)\\w+', 'g'), css: 'variable' }, | ||
58 | { regex: new RegExp(this.getKeywords(funcs), 'gmi'), css: 'functions' }, | ||
59 | { regex: new RegExp(this.getKeywords(keywords), 'gm'), css: 'keyword' } | ||
60 | ]; | ||
61 | |||
62 | this.forHtmlScript(SyntaxHighlighter.regexLib.phpScriptTags); | ||
63 | } | ||
64 | |||
65 | Brush.prototype = new SyntaxHighlighter.Highlighter(); | ||
66 | Brush.aliases = ['perl', 'Perl', 'pl']; | ||
67 | |||
68 | SyntaxHighlighter.brushes.Perl = Brush; | ||
69 | |||
70 | // CommonJS | ||
71 | typeof(exports) != 'undefined' ? exports.Brush = Brush : null; | ||
72 | })(); | ||
diff --git a/Blocks/syntax/scripts/shBrushPhp.js b/Blocks/syntax/scripts/shBrushPhp.js new file mode 100644 index 0000000..95e6e43 --- /dev/null +++ b/Blocks/syntax/scripts/shBrushPhp.js | |||
@@ -0,0 +1,88 @@ | |||
1 | /** | ||
2 | * SyntaxHighlighter | ||
3 | * http://alexgorbatchev.com/SyntaxHighlighter | ||
4 | * | ||
5 | * SyntaxHighlighter is donationware. If you are using it, please donate. | ||
6 | * http://alexgorbatchev.com/SyntaxHighlighter/donate.html | ||
7 | * | ||
8 | * @version | ||
9 | * 3.0.83 (July 02 2010) | ||
10 | * | ||
11 | * @copyright | ||
12 | * Copyright (C) 2004-2010 Alex Gorbatchev. | ||
13 | * | ||
14 | * @license | ||
15 | * Dual licensed under the MIT and GPL licenses. | ||
16 | */ | ||
17 | ;(function() | ||
18 | { | ||
19 | // CommonJS | ||
20 | typeof(require) != 'undefined' ? SyntaxHighlighter = require('shCore').SyntaxHighlighter : null; | ||
21 | |||
22 | function Brush() | ||
23 | { | ||
24 | var funcs = 'abs acos acosh addcslashes addslashes ' + | ||
25 | 'array_change_key_case array_chunk array_combine array_count_values array_diff '+ | ||
26 | 'array_diff_assoc array_diff_key array_diff_uassoc array_diff_ukey array_fill '+ | ||
27 | 'array_filter array_flip array_intersect array_intersect_assoc array_intersect_key '+ | ||
28 | 'array_intersect_uassoc array_intersect_ukey array_key_exists array_keys array_map '+ | ||
29 | 'array_merge array_merge_recursive array_multisort array_pad array_pop array_product '+ | ||
30 | 'array_push array_rand array_reduce array_reverse array_search array_shift '+ | ||
31 | 'array_slice array_splice array_sum array_udiff array_udiff_assoc '+ | ||
32 | 'array_udiff_uassoc array_uintersect array_uintersect_assoc '+ | ||
33 | 'array_uintersect_uassoc array_unique array_unshift array_values array_walk '+ | ||
34 | 'array_walk_recursive atan atan2 atanh base64_decode base64_encode base_convert '+ | ||
35 | 'basename bcadd bccomp bcdiv bcmod bcmul bindec bindtextdomain bzclose bzcompress '+ | ||
36 | 'bzdecompress bzerrno bzerror bzerrstr bzflush bzopen bzread bzwrite ceil chdir '+ | ||
37 | 'checkdate checkdnsrr chgrp chmod chop chown chr chroot chunk_split class_exists '+ | ||
38 | 'closedir closelog copy cos cosh count count_chars date decbin dechex decoct '+ | ||
39 | 'deg2rad delete ebcdic2ascii echo empty end ereg ereg_replace eregi eregi_replace error_log '+ | ||
40 | 'error_reporting escapeshellarg escapeshellcmd eval exec exit exp explode extension_loaded '+ | ||
41 | 'feof fflush fgetc fgetcsv fgets fgetss file_exists file_get_contents file_put_contents '+ | ||
42 | 'fileatime filectime filegroup fileinode filemtime fileowner fileperms filesize filetype '+ | ||
43 | 'floatval flock floor flush fmod fnmatch fopen fpassthru fprintf fputcsv fputs fread fscanf '+ | ||
44 | 'fseek fsockopen fstat ftell ftok getallheaders getcwd getdate getenv gethostbyaddr gethostbyname '+ | ||
45 | 'gethostbynamel getimagesize getlastmod getmxrr getmygid getmyinode getmypid getmyuid getopt '+ | ||
46 | 'getprotobyname getprotobynumber getrandmax getrusage getservbyname getservbyport gettext '+ | ||
47 | 'gettimeofday gettype glob gmdate gmmktime ini_alter ini_get ini_get_all ini_restore ini_set '+ | ||
48 | 'interface_exists intval ip2long is_a is_array is_bool is_callable is_dir is_double '+ | ||
49 | 'is_executable is_file is_finite is_float is_infinite is_int is_integer is_link is_long '+ | ||
50 | 'is_nan is_null is_numeric is_object is_readable is_real is_resource is_scalar is_soap_fault '+ | ||
51 | 'is_string is_subclass_of is_uploaded_file is_writable is_writeable mkdir mktime nl2br '+ | ||
52 | 'parse_ini_file parse_str parse_url passthru pathinfo print readlink realpath rewind rewinddir rmdir '+ | ||
53 | 'round str_ireplace str_pad str_repeat str_replace str_rot13 str_shuffle str_split '+ | ||
54 | 'str_word_count strcasecmp strchr strcmp strcoll strcspn strftime strip_tags stripcslashes '+ | ||
55 | 'stripos stripslashes stristr strlen strnatcasecmp strnatcmp strncasecmp strncmp strpbrk '+ | ||
56 | 'strpos strptime strrchr strrev strripos strrpos strspn strstr strtok strtolower strtotime '+ | ||
57 | 'strtoupper strtr strval substr substr_compare'; | ||
58 | |||
59 | var keywords = 'abstract and array as break case catch cfunction class clone const continue declare default die do ' + | ||
60 | 'else elseif enddeclare endfor endforeach endif endswitch endwhile extends final for foreach ' + | ||
61 | 'function include include_once global goto if implements interface instanceof namespace new ' + | ||
62 | 'old_function or private protected public return require require_once static switch ' + | ||
63 | 'throw try use var while xor '; | ||
64 | |||
65 | var constants = '__FILE__ __LINE__ __METHOD__ __FUNCTION__ __CLASS__'; | ||
66 | |||
67 | this.regexList = [ | ||
68 | { regex: SyntaxHighlighter.regexLib.singleLineCComments, css: 'comments' }, // one line comments | ||
69 | { regex: SyntaxHighlighter.regexLib.multiLineCComments, css: 'comments' }, // multiline comments | ||
70 | { regex: SyntaxHighlighter.regexLib.doubleQuotedString, css: 'string' }, // double quoted strings | ||
71 | { regex: SyntaxHighlighter.regexLib.singleQuotedString, css: 'string' }, // single quoted strings | ||
72 | { regex: /\$\w+/g, css: 'variable' }, // variables | ||
73 | { regex: new RegExp(this.getKeywords(funcs), 'gmi'), css: 'functions' }, // common functions | ||
74 | { regex: new RegExp(this.getKeywords(constants), 'gmi'), css: 'constants' }, // constants | ||
75 | { regex: new RegExp(this.getKeywords(keywords), 'gm'), css: 'keyword' } // keyword | ||
76 | ]; | ||
77 | |||
78 | this.forHtmlScript(SyntaxHighlighter.regexLib.phpScriptTags); | ||
79 | }; | ||
80 | |||
81 | Brush.prototype = new SyntaxHighlighter.Highlighter(); | ||
82 | Brush.aliases = ['php']; | ||
83 | |||
84 | SyntaxHighlighter.brushes.Php = Brush; | ||
85 | |||
86 | // CommonJS | ||
87 | typeof(exports) != 'undefined' ? exports.Brush = Brush : null; | ||
88 | })(); | ||
diff --git a/Blocks/syntax/scripts/shBrushPlain.js b/Blocks/syntax/scripts/shBrushPlain.js new file mode 100644 index 0000000..9f7d9e9 --- /dev/null +++ b/Blocks/syntax/scripts/shBrushPlain.js | |||
@@ -0,0 +1,33 @@ | |||
1 | /** | ||
2 | * SyntaxHighlighter | ||
3 | * http://alexgorbatchev.com/SyntaxHighlighter | ||
4 | * | ||
5 | * SyntaxHighlighter is donationware. If you are using it, please donate. | ||
6 | * http://alexgorbatchev.com/SyntaxHighlighter/donate.html | ||
7 | * | ||
8 | * @version | ||
9 | * 3.0.83 (July 02 2010) | ||
10 | * | ||
11 | * @copyright | ||
12 | * Copyright (C) 2004-2010 Alex Gorbatchev. | ||
13 | * | ||
14 | * @license | ||
15 | * Dual licensed under the MIT and GPL licenses. | ||
16 | */ | ||
17 | ;(function() | ||
18 | { | ||
19 | // CommonJS | ||
20 | typeof(require) != 'undefined' ? SyntaxHighlighter = require('shCore').SyntaxHighlighter : null; | ||
21 | |||
22 | function Brush() | ||
23 | { | ||
24 | }; | ||
25 | |||
26 | Brush.prototype = new SyntaxHighlighter.Highlighter(); | ||
27 | Brush.aliases = ['text', 'plain']; | ||
28 | |||
29 | SyntaxHighlighter.brushes.Plain = Brush; | ||
30 | |||
31 | // CommonJS | ||
32 | typeof(exports) != 'undefined' ? exports.Brush = Brush : null; | ||
33 | })(); | ||
diff --git a/Blocks/syntax/scripts/shBrushPowerShell.js b/Blocks/syntax/scripts/shBrushPowerShell.js new file mode 100644 index 0000000..0be1752 --- /dev/null +++ b/Blocks/syntax/scripts/shBrushPowerShell.js | |||
@@ -0,0 +1,74 @@ | |||
1 | /** | ||
2 | * SyntaxHighlighter | ||
3 | * http://alexgorbatchev.com/SyntaxHighlighter | ||
4 | * | ||
5 | * SyntaxHighlighter is donationware. If you are using it, please donate. | ||
6 | * http://alexgorbatchev.com/SyntaxHighlighter/donate.html | ||
7 | * | ||
8 | * @version | ||
9 | * 3.0.83 (July 02 2010) | ||
10 | * | ||
11 | * @copyright | ||
12 | * Copyright (C) 2004-2010 Alex Gorbatchev. | ||
13 | * | ||
14 | * @license | ||
15 | * Dual licensed under the MIT and GPL licenses. | ||
16 | */ | ||
17 | ;(function() | ||
18 | { | ||
19 | // CommonJS | ||
20 | typeof(require) != 'undefined' ? SyntaxHighlighter = require('shCore').SyntaxHighlighter : null; | ||
21 | |||
22 | function Brush() | ||
23 | { | ||
24 | // Contributes by B.v.Zanten, Getronics | ||
25 | // http://confluence.atlassian.com/display/CONFEXT/New+Code+Macro | ||
26 | |||
27 | var keywords = 'Add-Content Add-History Add-Member Add-PSSnapin Clear(-Content)? Clear-Item ' + | ||
28 | 'Clear-ItemProperty Clear-Variable Compare-Object ConvertFrom-SecureString Convert-Path ' + | ||
29 | 'ConvertTo-Html ConvertTo-SecureString Copy(-Item)? Copy-ItemProperty Export-Alias ' + | ||
30 | 'Export-Clixml Export-Console Export-Csv ForEach(-Object)? Format-Custom Format-List ' + | ||
31 | 'Format-Table Format-Wide Get-Acl Get-Alias Get-AuthenticodeSignature Get-ChildItem Get-Command ' + | ||
32 | 'Get-Content Get-Credential Get-Culture Get-Date Get-EventLog Get-ExecutionPolicy ' + | ||
33 | 'Get-Help Get-History Get-Host Get-Item Get-ItemProperty Get-Location Get-Member ' + | ||
34 | 'Get-PfxCertificate Get-Process Get-PSDrive Get-PSProvider Get-PSSnapin Get-Service ' + | ||
35 | 'Get-TraceSource Get-UICulture Get-Unique Get-Variable Get-WmiObject Group-Object ' + | ||
36 | 'Import-Alias Import-Clixml Import-Csv Invoke-Expression Invoke-History Invoke-Item ' + | ||
37 | 'Join-Path Measure-Command Measure-Object Move(-Item)? Move-ItemProperty New-Alias ' + | ||
38 | 'New-Item New-ItemProperty New-Object New-PSDrive New-Service New-TimeSpan ' + | ||
39 | 'New-Variable Out-Default Out-File Out-Host Out-Null Out-Printer Out-String Pop-Location ' + | ||
40 | 'Push-Location Read-Host Remove-Item Remove-ItemProperty Remove-PSDrive Remove-PSSnapin ' + | ||
41 | 'Remove-Variable Rename-Item Rename-ItemProperty Resolve-Path Restart-Service Resume-Service ' + | ||
42 | 'Select-Object Select-String Set-Acl Set-Alias Set-AuthenticodeSignature Set-Content ' + | ||
43 | 'Set-Date Set-ExecutionPolicy Set-Item Set-ItemProperty Set-Location Set-PSDebug ' + | ||
44 | 'Set-Service Set-TraceSource Set(-Variable)? Sort-Object Split-Path Start-Service ' + | ||
45 | 'Start-Sleep Start-Transcript Stop-Process Stop-Service Stop-Transcript Suspend-Service ' + | ||
46 | 'Tee-Object Test-Path Trace-Command Update-FormatData Update-TypeData Where(-Object)? ' + | ||
47 | 'Write-Debug Write-Error Write(-Host)? Write-Output Write-Progress Write-Verbose Write-Warning'; | ||
48 | var alias = 'ac asnp clc cli clp clv cpi cpp cvpa diff epal epcsv fc fl ' + | ||
49 | 'ft fw gal gc gci gcm gdr ghy gi gl gm gp gps group gsv ' + | ||
50 | 'gsnp gu gv gwmi iex ihy ii ipal ipcsv mi mp nal ndr ni nv oh rdr ' + | ||
51 | 'ri rni rnp rp rsnp rv rvpa sal sasv sc select si sl sleep sort sp ' + | ||
52 | 'spps spsv sv tee cat cd cp h history kill lp ls ' + | ||
53 | 'mount mv popd ps pushd pwd r rm rmdir echo cls chdir del dir ' + | ||
54 | 'erase rd ren type % \\?'; | ||
55 | |||
56 | this.regexList = [ | ||
57 | { regex: /#.*$/gm, css: 'comments' }, // one line comments | ||
58 | { regex: /\$[a-zA-Z0-9]+\b/g, css: 'value' }, // variables $Computer1 | ||
59 | { regex: /\-[a-zA-Z]+\b/g, css: 'keyword' }, // Operators -not -and -eq | ||
60 | { regex: SyntaxHighlighter.regexLib.doubleQuotedString, css: 'string' }, // strings | ||
61 | { regex: SyntaxHighlighter.regexLib.singleQuotedString, css: 'string' }, // strings | ||
62 | { regex: new RegExp(this.getKeywords(keywords), 'gmi'), css: 'keyword' }, | ||
63 | { regex: new RegExp(this.getKeywords(alias), 'gmi'), css: 'keyword' } | ||
64 | ]; | ||
65 | }; | ||
66 | |||
67 | Brush.prototype = new SyntaxHighlighter.Highlighter(); | ||
68 | Brush.aliases = ['powershell', 'ps']; | ||
69 | |||
70 | SyntaxHighlighter.brushes.PowerShell = Brush; | ||
71 | |||
72 | // CommonJS | ||
73 | typeof(exports) != 'undefined' ? exports.Brush = Brush : null; | ||
74 | })(); | ||
diff --git a/Blocks/syntax/scripts/shBrushPython.js b/Blocks/syntax/scripts/shBrushPython.js new file mode 100644 index 0000000..ce77462 --- /dev/null +++ b/Blocks/syntax/scripts/shBrushPython.js | |||
@@ -0,0 +1,64 @@ | |||
1 | /** | ||
2 | * SyntaxHighlighter | ||
3 | * http://alexgorbatchev.com/SyntaxHighlighter | ||
4 | * | ||
5 | * SyntaxHighlighter is donationware. If you are using it, please donate. | ||
6 | * http://alexgorbatchev.com/SyntaxHighlighter/donate.html | ||
7 | * | ||
8 | * @version | ||
9 | * 3.0.83 (July 02 2010) | ||
10 | * | ||
11 | * @copyright | ||
12 | * Copyright (C) 2004-2010 Alex Gorbatchev. | ||
13 | * | ||
14 | * @license | ||
15 | * Dual licensed under the MIT and GPL licenses. | ||
16 | */ | ||
17 | ;(function() | ||
18 | { | ||
19 | // CommonJS | ||
20 | typeof(require) != 'undefined' ? SyntaxHighlighter = require('shCore').SyntaxHighlighter : null; | ||
21 | |||
22 | function Brush() | ||
23 | { | ||
24 | // Contributed by Gheorghe Milas and Ahmad Sherif | ||
25 | |||
26 | var keywords = 'and assert break class continue def del elif else ' + | ||
27 | 'except exec finally for from global if import in is ' + | ||
28 | 'lambda not or pass print raise return try yield while'; | ||
29 | |||
30 | var funcs = '__import__ abs all any apply basestring bin bool buffer callable ' + | ||
31 | 'chr classmethod cmp coerce compile complex delattr dict dir ' + | ||
32 | 'divmod enumerate eval execfile file filter float format frozenset ' + | ||
33 | 'getattr globals hasattr hash help hex id input int intern ' + | ||
34 | 'isinstance issubclass iter len list locals long map max min next ' + | ||
35 | 'object oct open ord pow print property range raw_input reduce ' + | ||
36 | 'reload repr reversed round set setattr slice sorted staticmethod ' + | ||
37 | 'str sum super tuple type type unichr unicode vars xrange zip'; | ||
38 | |||
39 | var special = 'None True False self cls class_'; | ||
40 | |||
41 | this.regexList = [ | ||
42 | { regex: SyntaxHighlighter.regexLib.singleLinePerlComments, css: 'comments' }, | ||
43 | { regex: /^\s*@\w+/gm, css: 'decorator' }, | ||
44 | { regex: /(['\"]{3})([^\1])*?\1/gm, css: 'comments' }, | ||
45 | { regex: /"(?!")(?:\.|\\\"|[^\""\n])*"/gm, css: 'string' }, | ||
46 | { regex: /'(?!')(?:\.|(\\\')|[^\''\n])*'/gm, css: 'string' }, | ||
47 | { regex: /\+|\-|\*|\/|\%|=|==/gm, css: 'keyword' }, | ||
48 | { regex: /\b\d+\.?\w*/g, css: 'value' }, | ||
49 | { regex: new RegExp(this.getKeywords(funcs), 'gmi'), css: 'functions' }, | ||
50 | { regex: new RegExp(this.getKeywords(keywords), 'gm'), css: 'keyword' }, | ||
51 | { regex: new RegExp(this.getKeywords(special), 'gm'), css: 'color1' } | ||
52 | ]; | ||
53 | |||
54 | this.forHtmlScript(SyntaxHighlighter.regexLib.aspScriptTags); | ||
55 | }; | ||
56 | |||
57 | Brush.prototype = new SyntaxHighlighter.Highlighter(); | ||
58 | Brush.aliases = ['py', 'python']; | ||
59 | |||
60 | SyntaxHighlighter.brushes.Python = Brush; | ||
61 | |||
62 | // CommonJS | ||
63 | typeof(exports) != 'undefined' ? exports.Brush = Brush : null; | ||
64 | })(); | ||
diff --git a/Blocks/syntax/scripts/shBrushRuby.js b/Blocks/syntax/scripts/shBrushRuby.js new file mode 100644 index 0000000..ff82130 --- /dev/null +++ b/Blocks/syntax/scripts/shBrushRuby.js | |||
@@ -0,0 +1,55 @@ | |||
1 | /** | ||
2 | * SyntaxHighlighter | ||
3 | * http://alexgorbatchev.com/SyntaxHighlighter | ||
4 | * | ||
5 | * SyntaxHighlighter is donationware. If you are using it, please donate. | ||
6 | * http://alexgorbatchev.com/SyntaxHighlighter/donate.html | ||
7 | * | ||
8 | * @version | ||
9 | * 3.0.83 (July 02 2010) | ||
10 | * | ||
11 | * @copyright | ||
12 | * Copyright (C) 2004-2010 Alex Gorbatchev. | ||
13 | * | ||
14 | * @license | ||
15 | * Dual licensed under the MIT and GPL licenses. | ||
16 | */ | ||
17 | ;(function() | ||
18 | { | ||
19 | // CommonJS | ||
20 | typeof(require) != 'undefined' ? SyntaxHighlighter = require('shCore').SyntaxHighlighter : null; | ||
21 | |||
22 | function Brush() | ||
23 | { | ||
24 | // Contributed by Erik Peterson. | ||
25 | |||
26 | var keywords = 'alias and BEGIN begin break case class def define_method defined do each else elsif ' + | ||
27 | 'END end ensure false for if in module new next nil not or raise redo rescue retry return ' + | ||
28 | 'self super then throw true undef unless until when while yield'; | ||
29 | |||
30 | var builtins = 'Array Bignum Binding Class Continuation Dir Exception FalseClass File::Stat File Fixnum Fload ' + | ||
31 | 'Hash Integer IO MatchData Method Module NilClass Numeric Object Proc Range Regexp String Struct::TMS Symbol ' + | ||
32 | 'ThreadGroup Thread Time TrueClass'; | ||
33 | |||
34 | this.regexList = [ | ||
35 | { regex: SyntaxHighlighter.regexLib.singleLinePerlComments, css: 'comments' }, // one line comments | ||
36 | { regex: SyntaxHighlighter.regexLib.doubleQuotedString, css: 'string' }, // double quoted strings | ||
37 | { regex: SyntaxHighlighter.regexLib.singleQuotedString, css: 'string' }, // single quoted strings | ||
38 | { regex: /\b[A-Z0-9_]+\b/g, css: 'constants' }, // constants | ||
39 | { regex: /:[a-z][A-Za-z0-9_]*/g, css: 'color2' }, // symbols | ||
40 | { regex: /(\$|@@|@)\w+/g, css: 'variable bold' }, // $global, @instance, and @@class variables | ||
41 | { regex: new RegExp(this.getKeywords(keywords), 'gm'), css: 'keyword' }, // keywords | ||
42 | { regex: new RegExp(this.getKeywords(builtins), 'gm'), css: 'color1' } // builtins | ||
43 | ]; | ||
44 | |||
45 | this.forHtmlScript(SyntaxHighlighter.regexLib.aspScriptTags); | ||
46 | }; | ||
47 | |||
48 | Brush.prototype = new SyntaxHighlighter.Highlighter(); | ||
49 | Brush.aliases = ['ruby', 'rails', 'ror', 'rb']; | ||
50 | |||
51 | SyntaxHighlighter.brushes.Ruby = Brush; | ||
52 | |||
53 | // CommonJS | ||
54 | typeof(exports) != 'undefined' ? exports.Brush = Brush : null; | ||
55 | })(); | ||
diff --git a/Blocks/syntax/scripts/shBrushSass.js b/Blocks/syntax/scripts/shBrushSass.js new file mode 100644 index 0000000..aa04da0 --- /dev/null +++ b/Blocks/syntax/scripts/shBrushSass.js | |||
@@ -0,0 +1,94 @@ | |||
1 | /** | ||
2 | * SyntaxHighlighter | ||
3 | * http://alexgorbatchev.com/SyntaxHighlighter | ||
4 | * | ||
5 | * SyntaxHighlighter is donationware. If you are using it, please donate. | ||
6 | * http://alexgorbatchev.com/SyntaxHighlighter/donate.html | ||
7 | * | ||
8 | * @version | ||
9 | * 3.0.83 (July 02 2010) | ||
10 | * | ||
11 | * @copyright | ||
12 | * Copyright (C) 2004-2010 Alex Gorbatchev. | ||
13 | * | ||
14 | * @license | ||
15 | * Dual licensed under the MIT and GPL licenses. | ||
16 | */ | ||
17 | ;(function() | ||
18 | { | ||
19 | // CommonJS | ||
20 | typeof(require) != 'undefined' ? SyntaxHighlighter = require('shCore').SyntaxHighlighter : null; | ||
21 | |||
22 | function Brush() | ||
23 | { | ||
24 | function getKeywordsCSS(str) | ||
25 | { | ||
26 | return '\\b([a-z_]|)' + str.replace(/ /g, '(?=:)\\b|\\b([a-z_\\*]|\\*|)') + '(?=:)\\b'; | ||
27 | }; | ||
28 | |||
29 | function getValuesCSS(str) | ||
30 | { | ||
31 | return '\\b' + str.replace(/ /g, '(?!-)(?!:)\\b|\\b()') + '\:\\b'; | ||
32 | }; | ||
33 | |||
34 | var keywords = 'ascent azimuth background-attachment background-color background-image background-position ' + | ||
35 | 'background-repeat background baseline bbox border-collapse border-color border-spacing border-style border-top ' + | ||
36 | 'border-right border-bottom border-left border-top-color border-right-color border-bottom-color border-left-color ' + | ||
37 | 'border-top-style border-right-style border-bottom-style border-left-style border-top-width border-right-width ' + | ||
38 | 'border-bottom-width border-left-width border-width border bottom cap-height caption-side centerline clear clip color ' + | ||
39 | 'content counter-increment counter-reset cue-after cue-before cue cursor definition-src descent direction display ' + | ||
40 | 'elevation empty-cells float font-size-adjust font-family font-size font-stretch font-style font-variant font-weight font ' + | ||
41 | 'height left letter-spacing line-height list-style-image list-style-position list-style-type list-style margin-top ' + | ||
42 | 'margin-right margin-bottom margin-left margin marker-offset marks mathline max-height max-width min-height min-width orphans ' + | ||
43 | 'outline-color outline-style outline-width outline overflow padding-top padding-right padding-bottom padding-left padding page ' + | ||
44 | 'page-break-after page-break-before page-break-inside pause pause-after pause-before pitch pitch-range play-during position ' + | ||
45 | 'quotes right richness size slope src speak-header speak-numeral speak-punctuation speak speech-rate stemh stemv stress ' + | ||
46 | 'table-layout text-align top text-decoration text-indent text-shadow text-transform unicode-bidi unicode-range units-per-em ' + | ||
47 | 'vertical-align visibility voice-family volume white-space widows width widths word-spacing x-height z-index'; | ||
48 | |||
49 | var values = 'above absolute all always aqua armenian attr aural auto avoid baseline behind below bidi-override black blink block blue bold bolder '+ | ||
50 | 'both bottom braille capitalize caption center center-left center-right circle close-quote code collapse compact condensed '+ | ||
51 | 'continuous counter counters crop cross crosshair cursive dashed decimal decimal-leading-zero digits disc dotted double '+ | ||
52 | 'embed embossed e-resize expanded extra-condensed extra-expanded fantasy far-left far-right fast faster fixed format fuchsia '+ | ||
53 | 'gray green groove handheld hebrew help hidden hide high higher icon inline-table inline inset inside invert italic '+ | ||
54 | 'justify landscape large larger left-side left leftwards level lighter lime line-through list-item local loud lower-alpha '+ | ||
55 | 'lowercase lower-greek lower-latin lower-roman lower low ltr marker maroon medium message-box middle mix move narrower '+ | ||
56 | 'navy ne-resize no-close-quote none no-open-quote no-repeat normal nowrap n-resize nw-resize oblique olive once open-quote outset '+ | ||
57 | 'outside overline pointer portrait pre print projection purple red relative repeat repeat-x repeat-y rgb ridge right right-side '+ | ||
58 | 'rightwards rtl run-in screen scroll semi-condensed semi-expanded separate se-resize show silent silver slower slow '+ | ||
59 | 'small small-caps small-caption smaller soft solid speech spell-out square s-resize static status-bar sub super sw-resize '+ | ||
60 | 'table-caption table-cell table-column table-column-group table-footer-group table-header-group table-row table-row-group teal '+ | ||
61 | 'text-bottom text-top thick thin top transparent tty tv ultra-condensed ultra-expanded underline upper-alpha uppercase upper-latin '+ | ||
62 | 'upper-roman url visible wait white wider w-resize x-fast x-high x-large x-loud x-low x-slow x-small x-soft xx-large xx-small yellow'; | ||
63 | |||
64 | var fonts = '[mM]onospace [tT]ahoma [vV]erdana [aA]rial [hH]elvetica [sS]ans-serif [sS]erif [cC]ourier mono sans serif'; | ||
65 | |||
66 | var statements = '!important !default'; | ||
67 | var preprocessor = '@import @extend @debug @warn @if @for @while @mixin @include'; | ||
68 | |||
69 | var r = SyntaxHighlighter.regexLib; | ||
70 | |||
71 | this.regexList = [ | ||
72 | { regex: r.multiLineCComments, css: 'comments' }, // multiline comments | ||
73 | { regex: r.singleLineCComments, css: 'comments' }, // singleline comments | ||
74 | { regex: r.doubleQuotedString, css: 'string' }, // double quoted strings | ||
75 | { regex: r.singleQuotedString, css: 'string' }, // single quoted strings | ||
76 | { regex: /\#[a-fA-F0-9]{3,6}/g, css: 'value' }, // html colors | ||
77 | { regex: /\b(-?\d+)(\.\d+)?(px|em|pt|\:|\%|)\b/g, css: 'value' }, // sizes | ||
78 | { regex: /\$\w+/g, css: 'variable' }, // variables | ||
79 | { regex: new RegExp(this.getKeywords(statements), 'g'), css: 'color3' }, // statements | ||
80 | { regex: new RegExp(this.getKeywords(preprocessor), 'g'), css: 'preprocessor' }, // preprocessor | ||
81 | { regex: new RegExp(getKeywordsCSS(keywords), 'gm'), css: 'keyword' }, // keywords | ||
82 | { regex: new RegExp(getValuesCSS(values), 'g'), css: 'value' }, // values | ||
83 | { regex: new RegExp(this.getKeywords(fonts), 'g'), css: 'color1' } // fonts | ||
84 | ]; | ||
85 | }; | ||
86 | |||
87 | Brush.prototype = new SyntaxHighlighter.Highlighter(); | ||
88 | Brush.aliases = ['sass', 'scss']; | ||
89 | |||
90 | SyntaxHighlighter.brushes.Sass = Brush; | ||
91 | |||
92 | // CommonJS | ||
93 | typeof(exports) != 'undefined' ? exports.Brush = Brush : null; | ||
94 | })(); | ||
diff --git a/Blocks/syntax/scripts/shBrushScala.js b/Blocks/syntax/scripts/shBrushScala.js new file mode 100644 index 0000000..4b0b6f0 --- /dev/null +++ b/Blocks/syntax/scripts/shBrushScala.js | |||
@@ -0,0 +1,51 @@ | |||
1 | /** | ||
2 | * SyntaxHighlighter | ||
3 | * http://alexgorbatchev.com/SyntaxHighlighter | ||
4 | * | ||
5 | * SyntaxHighlighter is donationware. If you are using it, please donate. | ||
6 | * http://alexgorbatchev.com/SyntaxHighlighter/donate.html | ||
7 | * | ||
8 | * @version | ||
9 | * 3.0.83 (July 02 2010) | ||
10 | * | ||
11 | * @copyright | ||
12 | * Copyright (C) 2004-2010 Alex Gorbatchev. | ||
13 | * | ||
14 | * @license | ||
15 | * Dual licensed under the MIT and GPL licenses. | ||
16 | */ | ||
17 | ;(function() | ||
18 | { | ||
19 | // CommonJS | ||
20 | typeof(require) != 'undefined' ? SyntaxHighlighter = require('shCore').SyntaxHighlighter : null; | ||
21 | |||
22 | function Brush() | ||
23 | { | ||
24 | // Contributed by Yegor Jbanov and David Bernard. | ||
25 | |||
26 | var keywords = 'val sealed case def true trait implicit forSome import match object null finally super ' + | ||
27 | 'override try lazy for var catch throw type extends class while with new final yield abstract ' + | ||
28 | 'else do if return protected private this package false'; | ||
29 | |||
30 | var keyops = '[_:=><%#@]+'; | ||
31 | |||
32 | this.regexList = [ | ||
33 | { regex: SyntaxHighlighter.regexLib.singleLineCComments, css: 'comments' }, // one line comments | ||
34 | { regex: SyntaxHighlighter.regexLib.multiLineCComments, css: 'comments' }, // multiline comments | ||
35 | { regex: SyntaxHighlighter.regexLib.multiLineSingleQuotedString, css: 'string' }, // multi-line strings | ||
36 | { regex: SyntaxHighlighter.regexLib.multiLineDoubleQuotedString, css: 'string' }, // double-quoted string | ||
37 | { regex: SyntaxHighlighter.regexLib.singleQuotedString, css: 'string' }, // strings | ||
38 | { regex: /0x[a-f0-9]+|\d+(\.\d+)?/gi, css: 'value' }, // numbers | ||
39 | { regex: new RegExp(this.getKeywords(keywords), 'gm'), css: 'keyword' }, // keywords | ||
40 | { regex: new RegExp(keyops, 'gm'), css: 'keyword' } // scala keyword | ||
41 | ]; | ||
42 | } | ||
43 | |||
44 | Brush.prototype = new SyntaxHighlighter.Highlighter(); | ||
45 | Brush.aliases = ['scala']; | ||
46 | |||
47 | SyntaxHighlighter.brushes.Scala = Brush; | ||
48 | |||
49 | // CommonJS | ||
50 | typeof(exports) != 'undefined' ? exports.Brush = Brush : null; | ||
51 | })(); | ||
diff --git a/Blocks/syntax/scripts/shBrushSql.js b/Blocks/syntax/scripts/shBrushSql.js new file mode 100644 index 0000000..5c2cd88 --- /dev/null +++ b/Blocks/syntax/scripts/shBrushSql.js | |||
@@ -0,0 +1,66 @@ | |||
1 | /** | ||
2 | * SyntaxHighlighter | ||
3 | * http://alexgorbatchev.com/SyntaxHighlighter | ||
4 | * | ||
5 | * SyntaxHighlighter is donationware. If you are using it, please donate. | ||
6 | * http://alexgorbatchev.com/SyntaxHighlighter/donate.html | ||
7 | * | ||
8 | * @version | ||
9 | * 3.0.83 (July 02 2010) | ||
10 | * | ||
11 | * @copyright | ||
12 | * Copyright (C) 2004-2010 Alex Gorbatchev. | ||
13 | * | ||
14 | * @license | ||
15 | * Dual licensed under the MIT and GPL licenses. | ||
16 | */ | ||
17 | ;(function() | ||
18 | { | ||
19 | // CommonJS | ||
20 | typeof(require) != 'undefined' ? SyntaxHighlighter = require('shCore').SyntaxHighlighter : null; | ||
21 | |||
22 | function Brush() | ||
23 | { | ||
24 | var funcs = 'abs avg case cast coalesce convert count current_timestamp ' + | ||
25 | 'current_user day isnull left lower month nullif replace right ' + | ||
26 | 'session_user space substring sum system_user upper user year'; | ||
27 | |||
28 | var keywords = 'absolute action add after alter as asc at authorization begin bigint ' + | ||
29 | 'binary bit by cascade char character check checkpoint close collate ' + | ||
30 | 'column commit committed connect connection constraint contains continue ' + | ||
31 | 'create cube current current_date current_time cursor database date ' + | ||
32 | 'deallocate dec decimal declare default delete desc distinct double drop ' + | ||
33 | 'dynamic else end end-exec escape except exec execute false fetch first ' + | ||
34 | 'float for force foreign forward free from full function global goto grant ' + | ||
35 | 'group grouping having hour ignore index inner insensitive insert instead ' + | ||
36 | 'int integer intersect into is isolation key last level load local max min ' + | ||
37 | 'minute modify move name national nchar next no numeric of off on only ' + | ||
38 | 'open option order out output partial password precision prepare primary ' + | ||
39 | 'prior privileges procedure public read real references relative repeatable ' + | ||
40 | 'restrict return returns revoke rollback rollup rows rule schema scroll ' + | ||
41 | 'second section select sequence serializable set size smallint static ' + | ||
42 | 'statistics table temp temporary then time timestamp to top transaction ' + | ||
43 | 'translation trigger true truncate uncommitted union unique update values ' + | ||
44 | 'varchar varying view when where with work'; | ||
45 | |||
46 | var operators = 'all and any between cross in join like not null or outer some'; | ||
47 | |||
48 | this.regexList = [ | ||
49 | { regex: /--(.*)$/gm, css: 'comments' }, // one line and multiline comments | ||
50 | { regex: SyntaxHighlighter.regexLib.multiLineDoubleQuotedString, css: 'string' }, // double quoted strings | ||
51 | { regex: SyntaxHighlighter.regexLib.multiLineSingleQuotedString, css: 'string' }, // single quoted strings | ||
52 | { regex: new RegExp(this.getKeywords(funcs), 'gmi'), css: 'color2' }, // functions | ||
53 | { regex: new RegExp(this.getKeywords(operators), 'gmi'), css: 'color1' }, // operators and such | ||
54 | { regex: new RegExp(this.getKeywords(keywords), 'gmi'), css: 'keyword' } // keyword | ||
55 | ]; | ||
56 | }; | ||
57 | |||
58 | Brush.prototype = new SyntaxHighlighter.Highlighter(); | ||
59 | Brush.aliases = ['sql']; | ||
60 | |||
61 | SyntaxHighlighter.brushes.Sql = Brush; | ||
62 | |||
63 | // CommonJS | ||
64 | typeof(exports) != 'undefined' ? exports.Brush = Brush : null; | ||
65 | })(); | ||
66 | |||
diff --git a/Blocks/syntax/scripts/shBrushVb.js b/Blocks/syntax/scripts/shBrushVb.js new file mode 100644 index 0000000..be845dc --- /dev/null +++ b/Blocks/syntax/scripts/shBrushVb.js | |||
@@ -0,0 +1,56 @@ | |||
1 | /** | ||
2 | * SyntaxHighlighter | ||
3 | * http://alexgorbatchev.com/SyntaxHighlighter | ||
4 | * | ||
5 | * SyntaxHighlighter is donationware. If you are using it, please donate. | ||
6 | * http://alexgorbatchev.com/SyntaxHighlighter/donate.html | ||
7 | * | ||
8 | * @version | ||
9 | * 3.0.83 (July 02 2010) | ||
10 | * | ||
11 | * @copyright | ||
12 | * Copyright (C) 2004-2010 Alex Gorbatchev. | ||
13 | * | ||
14 | * @license | ||
15 | * Dual licensed under the MIT and GPL licenses. | ||
16 | */ | ||
17 | ;(function() | ||
18 | { | ||
19 | // CommonJS | ||
20 | typeof(require) != 'undefined' ? SyntaxHighlighter = require('shCore').SyntaxHighlighter : null; | ||
21 | |||
22 | function Brush() | ||
23 | { | ||
24 | var keywords = 'AddHandler AddressOf AndAlso Alias And Ansi As Assembly Auto ' + | ||
25 | 'Boolean ByRef Byte ByVal Call Case Catch CBool CByte CChar CDate ' + | ||
26 | 'CDec CDbl Char CInt Class CLng CObj Const CShort CSng CStr CType ' + | ||
27 | 'Date Decimal Declare Default Delegate Dim DirectCast Do Double Each ' + | ||
28 | 'Else ElseIf End Enum Erase Error Event Exit False Finally For Friend ' + | ||
29 | 'Function Get GetType GoSub GoTo Handles If Implements Imports In ' + | ||
30 | 'Inherits Integer Interface Is Let Lib Like Long Loop Me Mod Module ' + | ||
31 | 'MustInherit MustOverride MyBase MyClass Namespace New Next Not Nothing ' + | ||
32 | 'NotInheritable NotOverridable Object On Option Optional Or OrElse ' + | ||
33 | 'Overloads Overridable Overrides ParamArray Preserve Private Property ' + | ||
34 | 'Protected Public RaiseEvent ReadOnly ReDim REM RemoveHandler Resume ' + | ||
35 | 'Return Select Set Shadows Shared Short Single Static Step Stop String ' + | ||
36 | 'Structure Sub SyncLock Then Throw To True Try TypeOf Unicode Until ' + | ||
37 | 'Variant When While With WithEvents WriteOnly Xor'; | ||
38 | |||
39 | this.regexList = [ | ||
40 | { regex: /'.*$/gm, css: 'comments' }, // one line comments | ||
41 | { regex: SyntaxHighlighter.regexLib.doubleQuotedString, css: 'string' }, // strings | ||
42 | { regex: /^\s*#.*$/gm, css: 'preprocessor' }, // preprocessor tags like #region and #endregion | ||
43 | { regex: new RegExp(this.getKeywords(keywords), 'gm'), css: 'keyword' } // vb keyword | ||
44 | ]; | ||
45 | |||
46 | this.forHtmlScript(SyntaxHighlighter.regexLib.aspScriptTags); | ||
47 | }; | ||
48 | |||
49 | Brush.prototype = new SyntaxHighlighter.Highlighter(); | ||
50 | Brush.aliases = ['vb', 'vbnet']; | ||
51 | |||
52 | SyntaxHighlighter.brushes.Vb = Brush; | ||
53 | |||
54 | // CommonJS | ||
55 | typeof(exports) != 'undefined' ? exports.Brush = Brush : null; | ||
56 | })(); | ||
diff --git a/Blocks/syntax/scripts/shBrushXml.js b/Blocks/syntax/scripts/shBrushXml.js new file mode 100644 index 0000000..69d9fd0 --- /dev/null +++ b/Blocks/syntax/scripts/shBrushXml.js | |||
@@ -0,0 +1,69 @@ | |||
1 | /** | ||
2 | * SyntaxHighlighter | ||
3 | * http://alexgorbatchev.com/SyntaxHighlighter | ||
4 | * | ||
5 | * SyntaxHighlighter is donationware. If you are using it, please donate. | ||
6 | * http://alexgorbatchev.com/SyntaxHighlighter/donate.html | ||
7 | * | ||
8 | * @version | ||
9 | * 3.0.83 (July 02 2010) | ||
10 | * | ||
11 | * @copyright | ||
12 | * Copyright (C) 2004-2010 Alex Gorbatchev. | ||
13 | * | ||
14 | * @license | ||
15 | * Dual licensed under the MIT and GPL licenses. | ||
16 | */ | ||
17 | ;(function() | ||
18 | { | ||
19 | // CommonJS | ||
20 | typeof(require) != 'undefined' ? SyntaxHighlighter = require('shCore').SyntaxHighlighter : null; | ||
21 | |||
22 | function Brush() | ||
23 | { | ||
24 | function process(match, regexInfo) | ||
25 | { | ||
26 | var constructor = SyntaxHighlighter.Match, | ||
27 | code = match[0], | ||
28 | tag = new XRegExp('(<|<)[\\s\\/\\?]*(?<name>[:\\w-\\.]+)', 'xg').exec(code), | ||
29 | result = [] | ||
30 | ; | ||
31 | |||
32 | if (match.attributes != null) | ||
33 | { | ||
34 | var attributes, | ||
35 | regex = new XRegExp('(?<name> [\\w:\\-\\.]+)' + | ||
36 | '\\s*=\\s*' + | ||
37 | '(?<value> ".*?"|\'.*?\'|\\w+)', | ||
38 | 'xg'); | ||
39 | |||
40 | while ((attributes = regex.exec(code)) != null) | ||
41 | { | ||
42 | result.push(new constructor(attributes.name, match.index + attributes.index, 'color1')); | ||
43 | result.push(new constructor(attributes.value, match.index + attributes.index + attributes[0].indexOf(attributes.value), 'string')); | ||
44 | } | ||
45 | } | ||
46 | |||
47 | if (tag != null) | ||
48 | result.push( | ||
49 | new constructor(tag.name, match.index + tag[0].indexOf(tag.name), 'keyword') | ||
50 | ); | ||
51 | |||
52 | return result; | ||
53 | } | ||
54 | |||
55 | this.regexList = [ | ||
56 | { regex: new XRegExp('(\\<|<)\\!\\[[\\w\\s]*?\\[(.|\\s)*?\\]\\](\\>|>)', 'gm'), css: 'color2' }, // <![ ... [ ... ]]> | ||
57 | { regex: SyntaxHighlighter.regexLib.xmlComments, css: 'comments' }, // <!-- ... --> | ||
58 | { regex: new XRegExp('(<|<)[\\s\\/\\?]*(\\w+)(?<attributes>.*?)[\\s\\/\\?]*(>|>)', 'sg'), func: process } | ||
59 | ]; | ||
60 | }; | ||
61 | |||
62 | Brush.prototype = new SyntaxHighlighter.Highlighter(); | ||
63 | Brush.aliases = ['xml', 'xhtml', 'xslt', 'html']; | ||
64 | |||
65 | SyntaxHighlighter.brushes.Xml = Brush; | ||
66 | |||
67 | // CommonJS | ||
68 | typeof(exports) != 'undefined' ? exports.Brush = Brush : null; | ||
69 | })(); | ||
diff --git a/Blocks/syntax/scripts/shCore.js b/Blocks/syntax/scripts/shCore.js new file mode 100644 index 0000000..b47b645 --- /dev/null +++ b/Blocks/syntax/scripts/shCore.js | |||
@@ -0,0 +1,17 @@ | |||
1 | /** | ||
2 | * SyntaxHighlighter | ||
3 | * http://alexgorbatchev.com/SyntaxHighlighter | ||
4 | * | ||
5 | * SyntaxHighlighter is donationware. If you are using it, please donate. | ||
6 | * http://alexgorbatchev.com/SyntaxHighlighter/donate.html | ||
7 | * | ||
8 | * @version | ||
9 | * 3.0.83 (July 02 2010) | ||
10 | * | ||
11 | * @copyright | ||
12 | * Copyright (C) 2004-2010 Alex Gorbatchev. | ||
13 | * | ||
14 | * @license | ||
15 | * Dual licensed under the MIT and GPL licenses. | ||
16 | */ | ||
17 | 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}('K M;I(M)1S 2U("2a\'t 4k M 4K 2g 3l 4G 4H");(6(){6 r(f,e){I(!M.1R(f))1S 3m("3s 15 4R");K a=f.1w;f=M(f.1m,t(f)+(e||""));I(a)f.1w={1m:a.1m,19:a.19?a.19.1a(0):N};H f}6 t(f){H(f.1J?"g":"")+(f.4s?"i":"")+(f.4p?"m":"")+(f.4v?"x":"")+(f.3n?"y":"")}6 B(f,e,a,b){K c=u.L,d,h,g;v=R;5K{O(;c--;){g=u[c];I(a&g.3r&&(!g.2p||g.2p.W(b))){g.2q.12=e;I((h=g.2q.X(f))&&h.P===e){d={3k:g.2b.W(b,h,a),1C:h};1N}}}}5v(i){1S i}5q{v=11}H d}6 p(f,e,a){I(3b.Z.1i)H f.1i(e,a);O(a=a||0;a<f.L;a++)I(f[a]===e)H a;H-1}M=6(f,e){K a=[],b=M.1B,c=0,d,h;I(M.1R(f)){I(e!==1d)1S 3m("2a\'t 5r 5I 5F 5B 5C 15 5E 5p");H r(f)}I(v)1S 2U("2a\'t W 3l M 59 5m 5g 5x 5i");e=e||"";O(d={2N:11,19:[],2K:6(g){H e.1i(g)>-1},3d:6(g){e+=g}};c<f.L;)I(h=B(f,c,b,d)){a.U(h.3k);c+=h.1C[0].L||1}Y I(h=n.X.W(z[b],f.1a(c))){a.U(h[0]);c+=h[0].L}Y{h=f.3a(c);I(h==="[")b=M.2I;Y I(h==="]")b=M.1B;a.U(h);c++}a=15(a.1K(""),n.Q.W(e,w,""));a.1w={1m:f,19:d.2N?d.19:N};H a};M.3v="1.5.0";M.2I=1;M.1B=2;K C=/\\$(?:(\\d\\d?|[$&`\'])|{([$\\w]+)})/g,w=/[^5h]+|([\\s\\S])(?=[\\s\\S]*\\1)/g,A=/^(?:[?*+]|{\\d+(?:,\\d*)?})\\??/,v=11,u=[],n={X:15.Z.X,1A:15.Z.1A,1C:1r.Z.1C,Q:1r.Z.Q,1e:1r.Z.1e},x=n.X.W(/()??/,"")[1]===1d,D=6(){K f=/^/g;n.1A.W(f,"");H!f.12}(),y=6(){K f=/x/g;n.Q.W("x",f,"");H!f.12}(),E=15.Z.3n!==1d,z={};z[M.2I]=/^(?:\\\\(?:[0-3][0-7]{0,2}|[4-7][0-7]?|x[\\29-26-f]{2}|u[\\29-26-f]{4}|c[A-3o-z]|[\\s\\S]))/;z[M.1B]=/^(?:\\\\(?:0(?:[0-3][0-7]{0,2}|[4-7][0-7]?)?|[1-9]\\d*|x[\\29-26-f]{2}|u[\\29-26-f]{4}|c[A-3o-z]|[\\s\\S])|\\(\\?[:=!]|[?*+]\\?|{\\d+(?:,\\d*)?}\\??)/;M.1h=6(f,e,a,b){u.U({2q:r(f,"g"+(E?"y":"")),2b:e,3r:a||M.1B,2p:b||N})};M.2n=6(f,e){K a=f+"/"+(e||"");H M.2n[a]||(M.2n[a]=M(f,e))};M.3c=6(f){H r(f,"g")};M.5l=6(f){H f.Q(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g,"\\\\$&")};M.5e=6(f,e,a,b){e=r(e,"g"+(b&&E?"y":""));e.12=a=a||0;f=e.X(f);H b?f&&f.P===a?f:N:f};M.3q=6(){M.1h=6(){1S 2U("2a\'t 55 1h 54 3q")}};M.1R=6(f){H 53.Z.1q.W(f)==="[2m 15]"};M.3p=6(f,e,a,b){O(K c=r(e,"g"),d=-1,h;h=c.X(f);){a.W(b,h,++d,f,c);c.12===h.P&&c.12++}I(e.1J)e.12=0};M.57=6(f,e){H 6 a(b,c){K d=e[c].1I?e[c]:{1I:e[c]},h=r(d.1I,"g"),g=[],i;O(i=0;i<b.L;i++)M.3p(b[i],h,6(k){g.U(d.3j?k[d.3j]||"":k[0])});H c===e.L-1||!g.L?g:a(g,c+1)}([f],0)};15.Z.1p=6(f,e){H J.X(e[0])};15.Z.W=6(f,e){H J.X(e)};15.Z.X=6(f){K e=n.X.1p(J,14),a;I(e){I(!x&&e.L>1&&p(e,"")>-1){a=15(J.1m,n.Q.W(t(J),"g",""));n.Q.W(f.1a(e.P),a,6(){O(K c=1;c<14.L-2;c++)I(14[c]===1d)e[c]=1d})}I(J.1w&&J.1w.19)O(K b=1;b<e.L;b++)I(a=J.1w.19[b-1])e[a]=e[b];!D&&J.1J&&!e[0].L&&J.12>e.P&&J.12--}H e};I(!D)15.Z.1A=6(f){(f=n.X.W(J,f))&&J.1J&&!f[0].L&&J.12>f.P&&J.12--;H!!f};1r.Z.1C=6(f){M.1R(f)||(f=15(f));I(f.1J){K e=n.1C.1p(J,14);f.12=0;H e}H f.X(J)};1r.Z.Q=6(f,e){K a=M.1R(f),b,c;I(a&&1j e.58()==="3f"&&e.1i("${")===-1&&y)H n.Q.1p(J,14);I(a){I(f.1w)b=f.1w.19}Y f+="";I(1j e==="6")c=n.Q.W(J,f,6(){I(b){14[0]=1f 1r(14[0]);O(K d=0;d<b.L;d++)I(b[d])14[0][b[d]]=14[d+1]}I(a&&f.1J)f.12=14[14.L-2]+14[0].L;H e.1p(N,14)});Y{c=J+"";c=n.Q.W(c,f,6(){K d=14;H n.Q.W(e,C,6(h,g,i){I(g)5b(g){24"$":H"$";24"&":H d[0];24"`":H d[d.L-1].1a(0,d[d.L-2]);24"\'":H d[d.L-1].1a(d[d.L-2]+d[0].L);5a:i="";g=+g;I(!g)H h;O(;g>d.L-3;){i=1r.Z.1a.W(g,-1)+i;g=1Q.3i(g/10)}H(g?d[g]||"":"$")+i}Y{g=+i;I(g<=d.L-3)H d[g];g=b?p(b,i):-1;H g>-1?d[g+1]:h}})})}I(a&&f.1J)f.12=0;H c};1r.Z.1e=6(f,e){I(!M.1R(f))H n.1e.1p(J,14);K a=J+"",b=[],c=0,d,h;I(e===1d||+e<0)e=5D;Y{e=1Q.3i(+e);I(!e)H[]}O(f=M.3c(f);d=f.X(a);){I(f.12>c){b.U(a.1a(c,d.P));d.L>1&&d.P<a.L&&3b.Z.U.1p(b,d.1a(1));h=d[0].L;c=f.12;I(b.L>=e)1N}f.12===d.P&&f.12++}I(c===a.L){I(!n.1A.W(f,"")||h)b.U("")}Y b.U(a.1a(c));H b.L>e?b.1a(0,e):b};M.1h(/\\(\\?#[^)]*\\)/,6(f){H n.1A.W(A,f.2S.1a(f.P+f[0].L))?"":"(?:)"});M.1h(/\\((?!\\?)/,6(){J.19.U(N);H"("});M.1h(/\\(\\?<([$\\w]+)>/,6(f){J.19.U(f[1]);J.2N=R;H"("});M.1h(/\\\\k<([\\w$]+)>/,6(f){K e=p(J.19,f[1]);H e>-1?"\\\\"+(e+1)+(3R(f.2S.3a(f.P+f[0].L))?"":"(?:)"):f[0]});M.1h(/\\[\\^?]/,6(f){H f[0]==="[]"?"\\\\b\\\\B":"[\\\\s\\\\S]"});M.1h(/^\\(\\?([5A]+)\\)/,6(f){J.3d(f[1]);H""});M.1h(/(?:\\s+|#.*)+/,6(f){H n.1A.W(A,f.2S.1a(f.P+f[0].L))?"":"(?:)"},M.1B,6(){H J.2K("x")});M.1h(/\\./,6(){H"[\\\\s\\\\S]"},M.1B,6(){H J.2K("s")})})();1j 2e!="1d"&&(2e.M=M);K 1v=6(){6 r(a,b){a.1l.1i(b)!=-1||(a.1l+=" "+b)}6 t(a){H a.1i("3e")==0?a:"3e"+a}6 B(a){H e.1Y.2A[t(a)]}6 p(a,b,c){I(a==N)H N;K d=c!=R?a.3G:[a.2G],h={"#":"1c",".":"1l"}[b.1o(0,1)]||"3h",g,i;g=h!="3h"?b.1o(1):b.5u();I((a[h]||"").1i(g)!=-1)H a;O(a=0;d&&a<d.L&&i==N;a++)i=p(d[a],b,c);H i}6 C(a,b){K c={},d;O(d 2g a)c[d]=a[d];O(d 2g b)c[d]=b[d];H c}6 w(a,b,c,d){6 h(g){g=g||1P.5y;I(!g.1F){g.1F=g.52;g.3N=6(){J.5w=11}}c.W(d||1P,g)}a.3g?a.3g("4U"+b,h):a.4y(b,h,11)}6 A(a,b){K c=e.1Y.2j,d=N;I(c==N){c={};O(K h 2g e.1U){K g=e.1U[h];d=g.4x;I(d!=N){g.1V=h.4w();O(g=0;g<d.L;g++)c[d[g]]=h}}e.1Y.2j=c}d=e.1U[c[a]];d==N&&b!=11&&1P.1X(e.13.1x.1X+(e.13.1x.3E+a));H d}6 v(a,b){O(K c=a.1e("\\n"),d=0;d<c.L;d++)c[d]=b(c[d],d);H c.1K("\\n")}6 u(a,b){I(a==N||a.L==0||a=="\\n")H a;a=a.Q(/</g,"&1y;");a=a.Q(/ {2,}/g,6(c){O(K d="",h=0;h<c.L-1;h++)d+=e.13.1W;H d+" "});I(b!=N)a=v(a,6(c){I(c.L==0)H"";K d="";c=c.Q(/^(&2s;| )+/,6(h){d=h;H""});I(c.L==0)H d;H d+\'<17 1g="\'+b+\'">\'+c+"</17>"});H a}6 n(a,b){a.1e("\\n");O(K c="",d=0;d<50;d++)c+=" ";H a=v(a,6(h){I(h.1i("\\t")==-1)H h;O(K g=0;(g=h.1i("\\t"))!=-1;)h=h.1o(0,g)+c.1o(0,b-g%b)+h.1o(g+1,h.L);H h})}6 x(a){H a.Q(/^\\s+|\\s+$/g,"")}6 D(a,b){I(a.P<b.P)H-1;Y I(a.P>b.P)H 1;Y I(a.L<b.L)H-1;Y I(a.L>b.L)H 1;H 0}6 y(a,b){6 c(k){H k[0]}O(K d=N,h=[],g=b.2D?b.2D:c;(d=b.1I.X(a))!=N;){K i=g(d,b);I(1j i=="3f")i=[1f e.2L(i,d.P,b.23)];h=h.1O(i)}H h}6 E(a){K b=/(.*)((&1G;|&1y;).*)/;H a.Q(e.3A.3M,6(c){K d="",h=N;I(h=b.X(c)){c=h[1];d=h[2]}H\'<a 2h="\'+c+\'">\'+c+"</a>"+d})}6 z(){O(K a=1E.36("1k"),b=[],c=0;c<a.L;c++)a[c].3s=="20"&&b.U(a[c]);H b}6 f(a){a=a.1F;K b=p(a,".20",R);a=p(a,".3O",R);K c=1E.4i("3t");I(!(!a||!b||p(a,"3t"))){B(b.1c);r(b,"1m");O(K d=a.3G,h=[],g=0;g<d.L;g++)h.U(d[g].4z||d[g].4A);h=h.1K("\\r");c.39(1E.4D(h));a.39(c);c.2C();c.4C();w(c,"4u",6(){c.2G.4E(c);b.1l=b.1l.Q("1m","")})}}I(1j 3F!="1d"&&1j M=="1d")M=3F("M").M;K e={2v:{"1g-27":"","2i-1s":1,"2z-1s-2t":11,1M:N,1t:N,"42-45":R,"43-22":4,1u:R,16:R,"3V-17":R,2l:11,"41-40":R,2k:11,"1z-1k":11},13:{1W:"&2s;",2M:R,46:11,44:11,34:"4n",1x:{21:"4o 1m",2P:"?",1X:"1v\\n\\n",3E:"4r\'t 4t 1D O: ",4g:"4m 4B\'t 51 O 1z-1k 4F: ",37:\'<!4T 1z 4S "-//4V//3H 4W 1.0 4Z//4Y" "1Z://2y.3L.3K/4X/3I/3H/3I-4P.4J"><1z 4I="1Z://2y.3L.3K/4L/5L"><3J><4N 1Z-4M="5G-5M" 6K="2O/1z; 6J=6I-8" /><1t>6L 1v</1t></3J><3B 1L="25-6M:6Q,6P,6O,6N-6F;6y-2f:#6x;2f:#6w;25-22:6v;2O-3D:3C;"><T 1L="2O-3D:3C;3w-32:1.6z;"><T 1L="25-22:6A-6E;">1v</T><T 1L="25-22:.6C;3w-6B:6R;"><T>3v 3.0.76 (72 73 3x)</T><T><a 2h="1Z://3u.2w/1v" 1F="38" 1L="2f:#3y">1Z://3u.2w/1v</a></T><T>70 17 6U 71.</T><T>6T 6X-3x 6Y 6D.</T></T><T>6t 61 60 J 1k, 5Z <a 2h="6u://2y.62.2w/63-66/65?64=5X-5W&5P=5O" 1L="2f:#3y">5R</a> 5V <2R/>5U 5T 5S!</T></T></3B></1z>\'}},1Y:{2j:N,2A:{}},1U:{},3A:{6n:/\\/\\*[\\s\\S]*?\\*\\//2c,6m:/\\/\\/.*$/2c,6l:/#.*$/2c,6k:/"([^\\\\"\\n]|\\\\.)*"/g,6o:/\'([^\\\\\'\\n]|\\\\.)*\'/g,6p:1f M(\'"([^\\\\\\\\"]|\\\\\\\\.)*"\',"3z"),6s:1f M("\'([^\\\\\\\\\']|\\\\\\\\.)*\'","3z"),6q:/(&1y;|<)!--[\\s\\S]*?--(&1G;|>)/2c,3M:/\\w+:\\/\\/[\\w-.\\/?%&=:@;]*/g,6a:{18:/(&1y;|<)\\?=?/g,1b:/\\?(&1G;|>)/g},69:{18:/(&1y;|<)%=?/g,1b:/%(&1G;|>)/g},6d:{18:/(&1y;|<)\\s*1k.*?(&1G;|>)/2T,1b:/(&1y;|<)\\/\\s*1k\\s*(&1G;|>)/2T}},16:{1H:6(a){6 b(i,k){H e.16.2o(i,k,e.13.1x[k])}O(K c=\'<T 1g="16">\',d=e.16.2x,h=d.2X,g=0;g<h.L;g++)c+=(d[h[g]].1H||b)(a,h[g]);c+="</T>";H c},2o:6(a,b,c){H\'<2W><a 2h="#" 1g="6e 6h\'+b+" "+b+\'">\'+c+"</a></2W>"},2b:6(a){K b=a.1F,c=b.1l||"";b=B(p(b,".20",R).1c);K d=6(h){H(h=15(h+"6f(\\\\w+)").X(c))?h[1]:N}("6g");b&&d&&e.16.2x[d].2B(b);a.3N()},2x:{2X:["21","2P"],21:{1H:6(a){I(a.V("2l")!=R)H"";K b=a.V("1t");H e.16.2o(a,"21",b?b:e.13.1x.21)},2B:6(a){a=1E.6j(t(a.1c));a.1l=a.1l.Q("47","")}},2P:{2B:6(){K a="68=0";a+=", 18="+(31.30-33)/2+", 32="+(31.2Z-2Y)/2+", 30=33, 2Z=2Y";a=a.Q(/^,/,"");a=1P.6Z("","38",a);a.2C();K b=a.1E;b.6W(e.13.1x.37);b.6V();a.2C()}}}},35:6(a,b){K c;I(b)c=[b];Y{c=1E.36(e.13.34);O(K d=[],h=0;h<c.L;h++)d.U(c[h]);c=d}c=c;d=[];I(e.13.2M)c=c.1O(z());I(c.L===0)H d;O(h=0;h<c.L;h++){O(K g=c[h],i=a,k=c[h].1l,j=3W 0,l={},m=1f M("^\\\\[(?<2V>(.*?))\\\\]$"),s=1f M("(?<27>[\\\\w-]+)\\\\s*:\\\\s*(?<1T>[\\\\w-%#]+|\\\\[.*?\\\\]|\\".*?\\"|\'.*?\')\\\\s*;?","g");(j=s.X(k))!=N;){K o=j.1T.Q(/^[\'"]|[\'"]$/g,"");I(o!=N&&m.1A(o)){o=m.X(o);o=o.2V.L>0?o.2V.1e(/\\s*,\\s*/):[]}l[j.27]=o}g={1F:g,1n:C(i,l)};g.1n.1D!=N&&d.U(g)}H d},1M:6(a,b){K c=J.35(a,b),d=N,h=e.13;I(c.L!==0)O(K g=0;g<c.L;g++){b=c[g];K i=b.1F,k=b.1n,j=k.1D,l;I(j!=N){I(k["1z-1k"]=="R"||e.2v["1z-1k"]==R){d=1f e.4l(j);j="4O"}Y I(d=A(j))d=1f d;Y 6H;l=i.3X;I(h.2M){l=l;K m=x(l),s=11;I(m.1i("<![6G[")==0){m=m.4h(9);s=R}K o=m.L;I(m.1i("]]\\>")==o-3){m=m.4h(0,o-3);s=R}l=s?m:l}I((i.1t||"")!="")k.1t=i.1t;k.1D=j;d.2Q(k);b=d.2F(l);I((i.1c||"")!="")b.1c=i.1c;i.2G.74(b,i)}}},2E:6(a){w(1P,"4k",6(){e.1M(a)})}};e.2E=e.2E;e.1M=e.1M;e.2L=6(a,b,c){J.1T=a;J.P=b;J.L=a.L;J.23=c;J.1V=N};e.2L.Z.1q=6(){H J.1T};e.4l=6(a){6 b(j,l){O(K m=0;m<j.L;m++)j[m].P+=l}K c=A(a),d,h=1f e.1U.5Y,g=J,i="2F 1H 2Q".1e(" ");I(c!=N){d=1f c;O(K k=0;k<i.L;k++)(6(){K j=i[k];g[j]=6(){H h[j].1p(h,14)}})();d.28==N?1P.1X(e.13.1x.1X+(e.13.1x.4g+a)):h.2J.U({1I:d.28.17,2D:6(j){O(K l=j.17,m=[],s=d.2J,o=j.P+j.18.L,F=d.28,q,G=0;G<s.L;G++){q=y(l,s[G]);b(q,o);m=m.1O(q)}I(F.18!=N&&j.18!=N){q=y(j.18,F.18);b(q,j.P);m=m.1O(q)}I(F.1b!=N&&j.1b!=N){q=y(j.1b,F.1b);b(q,j.P+j[0].5Q(j.1b));m=m.1O(q)}O(j=0;j<m.L;j++)m[j].1V=c.1V;H m}})}};e.4j=6(){};e.4j.Z={V:6(a,b){K c=J.1n[a];c=c==N?b:c;K d={"R":R,"11":11}[c];H d==N?c:d},3Y:6(a){H 1E.4i(a)},4c:6(a,b){K c=[];I(a!=N)O(K d=0;d<a.L;d++)I(1j a[d]=="2m")c=c.1O(y(b,a[d]));H J.4e(c.6b(D))},4e:6(a){O(K b=0;b<a.L;b++)I(a[b]!==N)O(K c=a[b],d=c.P+c.L,h=b+1;h<a.L&&a[b]!==N;h++){K g=a[h];I(g!==N)I(g.P>d)1N;Y I(g.P==c.P&&g.L>c.L)a[b]=N;Y I(g.P>=c.P&&g.P<d)a[h]=N}H a},4d:6(a){K b=[],c=2u(J.V("2i-1s"));v(a,6(d,h){b.U(h+c)});H b},3U:6(a){K b=J.V("1M",[]);I(1j b!="2m"&&b.U==N)b=[b];a:{a=a.1q();K c=3W 0;O(c=c=1Q.6c(c||0,0);c<b.L;c++)I(b[c]==a){b=c;1N a}b=-1}H b!=-1},2r:6(a,b,c){a=["1s","6i"+b,"P"+a,"6r"+(b%2==0?1:2).1q()];J.3U(b)&&a.U("67");b==0&&a.U("1N");H\'<T 1g="\'+a.1K(" ")+\'">\'+c+"</T>"},3Q:6(a,b){K c="",d=a.1e("\\n").L,h=2u(J.V("2i-1s")),g=J.V("2z-1s-2t");I(g==R)g=(h+d-1).1q().L;Y I(3R(g)==R)g=0;O(K i=0;i<d;i++){K k=b?b[i]:h+i,j;I(k==0)j=e.13.1W;Y{j=g;O(K l=k.1q();l.L<j;)l="0"+l;j=l}a=j;c+=J.2r(i,k,a)}H c},49:6(a,b){a=x(a);K c=a.1e("\\n");J.V("2z-1s-2t");K d=2u(J.V("2i-1s"));a="";O(K h=J.V("1D"),g=0;g<c.L;g++){K i=c[g],k=/^(&2s;|\\s)+/.X(i),j=N,l=b?b[g]:d+g;I(k!=N){j=k[0].1q();i=i.1o(j.L);j=j.Q(" ",e.13.1W)}i=x(i);I(i.L==0)i=e.13.1W;a+=J.2r(g,l,(j!=N?\'<17 1g="\'+h+\' 5N">\'+j+"</17>":"")+i)}H a},4f:6(a){H a?"<4a>"+a+"</4a>":""},4b:6(a,b){6 c(l){H(l=l?l.1V||g:g)?l+" ":""}O(K d=0,h="",g=J.V("1D",""),i=0;i<b.L;i++){K k=b[i],j;I(!(k===N||k.L===0)){j=c(k);h+=u(a.1o(d,k.P-d),j+"48")+u(k.1T,j+k.23);d=k.P+k.L+(k.75||0)}}h+=u(a.1o(d),c()+"48");H h},1H:6(a){K b="",c=["20"],d;I(J.V("2k")==R)J.1n.16=J.1n.1u=11;1l="20";J.V("2l")==R&&c.U("47");I((1u=J.V("1u"))==11)c.U("6S");c.U(J.V("1g-27"));c.U(J.V("1D"));a=a.Q(/^[ ]*[\\n]+|[\\n]*[ ]*$/g,"").Q(/\\r/g," ");b=J.V("43-22");I(J.V("42-45")==R)a=n(a,b);Y{O(K h="",g=0;g<b;g++)h+=" ";a=a.Q(/\\t/g,h)}a=a;a:{b=a=a;h=/<2R\\s*\\/?>|&1y;2R\\s*\\/?&1G;/2T;I(e.13.46==R)b=b.Q(h,"\\n");I(e.13.44==R)b=b.Q(h,"");b=b.1e("\\n");h=/^\\s*/;g=4Q;O(K i=0;i<b.L&&g>0;i++){K k=b[i];I(x(k).L!=0){k=h.X(k);I(k==N){a=a;1N a}g=1Q.4q(k[0].L,g)}}I(g>0)O(i=0;i<b.L;i++)b[i]=b[i].1o(g);a=b.1K("\\n")}I(1u)d=J.4d(a);b=J.4c(J.2J,a);b=J.4b(a,b);b=J.49(b,d);I(J.V("41-40"))b=E(b);1j 2H!="1d"&&2H.3S&&2H.3S.1C(/5s/)&&c.U("5t");H b=\'<T 1c="\'+t(J.1c)+\'" 1g="\'+c.1K(" ")+\'">\'+(J.V("16")?e.16.1H(J):"")+\'<3Z 5z="0" 5H="0" 5J="0">\'+J.4f(J.V("1t"))+"<3T><3P>"+(1u?\'<2d 1g="1u">\'+J.3Q(a)+"</2d>":"")+\'<2d 1g="17"><T 1g="3O">\'+b+"</T></2d></3P></3T></3Z></T>"},2F:6(a){I(a===N)a="";J.17=a;K b=J.3Y("T");b.3X=J.1H(a);J.V("16")&&w(p(b,".16"),"5c",e.16.2b);J.V("3V-17")&&w(p(b,".17"),"56",f);H b},2Q:6(a){J.1c=""+1Q.5d(1Q.5n()*5k).1q();e.1Y.2A[t(J.1c)]=J;J.1n=C(e.2v,a||{});I(J.V("2k")==R)J.1n.16=J.1n.1u=11},5j:6(a){a=a.Q(/^\\s+|\\s+$/g,"").Q(/\\s+/g,"|");H"\\\\b(?:"+a+")\\\\b"},5f:6(a){J.28={18:{1I:a.18,23:"1k"},1b:{1I:a.1b,23:"1k"},17:1f M("(?<18>"+a.18.1m+")(?<17>.*?)(?<1b>"+a.1b.1m+")","5o")}}};H e}();1j 2e!="1d"&&(2e.1v=1v);',62,441,'||||||function|||||||||||||||||||||||||||||||||||||return|if|this|var|length|XRegExp|null|for|index|replace|true||div|push|getParam|call|exec|else|prototype||false|lastIndex|config|arguments|RegExp|toolbar|code|left|captureNames|slice|right|id|undefined|split|new|class|addToken|indexOf|typeof|script|className|source|params|substr|apply|toString|String|line|title|gutter|SyntaxHighlighter|_xregexp|strings|lt|html|test|OUTSIDE_CLASS|match|brush|document|target|gt|getHtml|regex|global|join|style|highlight|break|concat|window|Math|isRegExp|throw|value|brushes|brushName|space|alert|vars|http|syntaxhighlighter|expandSource|size|css|case|font|Fa|name|htmlScript|dA|can|handler|gm|td|exports|color|in|href|first|discoveredBrushes|light|collapse|object|cache|getButtonHtml|trigger|pattern|getLineHtml|nbsp|numbers|parseInt|defaults|com|items|www|pad|highlighters|execute|focus|func|all|getDiv|parentNode|navigator|INSIDE_CLASS|regexList|hasFlag|Match|useScriptTags|hasNamedCapture|text|help|init|br|input|gi|Error|values|span|list|250|height|width|screen|top|500|tagName|findElements|getElementsByTagName|aboutDialog|_blank|appendChild|charAt|Array|copyAsGlobal|setFlag|highlighter_|string|attachEvent|nodeName|floor|backref|output|the|TypeError|sticky|Za|iterate|freezeTokens|scope|type|textarea|alexgorbatchev|version|margin|2010|005896|gs|regexLib|body|center|align|noBrush|require|childNodes|DTD|xhtml1|head|org|w3|url|preventDefault|container|tr|getLineNumbersHtml|isNaN|userAgent|tbody|isLineHighlighted|quick|void|innerHTML|create|table|links|auto|smart|tab|stripBrs|tabs|bloggerMode|collapsed|plain|getCodeLinesHtml|caption|getMatchesHtml|findMatches|figureOutLineNumbers|removeNestedMatches|getTitleHtml|brushNotHtmlScript|substring|createElement|Highlighter|load|HtmlScript|Brush|pre|expand|multiline|min|Can|ignoreCase|find|blur|extended|toLowerCase|aliases|addEventListener|innerText|textContent|wasn|select|createTextNode|removeChild|option|same|frame|xmlns|dtd|twice|1999|equiv|meta|htmlscript|transitional|1E3|expected|PUBLIC|DOCTYPE|on|W3C|XHTML|TR|EN|Transitional||configured|srcElement|Object|after|run|dblclick|matchChain|valueOf|constructor|default|switch|click|round|execAt|forHtmlScript|token|gimy|functions|getKeywords|1E6|escape|within|random|sgi|another|finally|supply|MSIE|ie|toUpperCase|catch|returnValue|definition|event|border|imsx|constructing|one|Infinity|from|when|Content|cellpadding|flags|cellspacing|try|xhtml|Type|spaces|2930402|hosted_button_id|lastIndexOf|donate|active|development|keep|to|xclick|_s|Xml|please|like|you|paypal|cgi|cmd|webscr|bin|highlighted|scrollbars|aspScriptTags|phpScriptTags|sort|max|scriptScriptTags|toolbar_item|_|command|command_|number|getElementById|doubleQuotedString|singleLinePerlComments|singleLineCComments|multiLineCComments|singleQuotedString|multiLineDoubleQuotedString|xmlComments|alt|multiLineSingleQuotedString|If|https|1em|000|fff|background|5em|xx|bottom|75em|Gorbatchev|large|serif|CDATA|continue|utf|charset|content|About|family|sans|Helvetica|Arial|Geneva|3em|nogutter|Copyright|syntax|close|write|2004|Alex|open|JavaScript|highlighter|July|02|replaceChild|offset|83'.split('|'),0,{})) | ||
diff --git a/Blocks/syntax/scripts/shLegacy.js b/Blocks/syntax/scripts/shLegacy.js new file mode 100644 index 0000000..6d9fd4d --- /dev/null +++ b/Blocks/syntax/scripts/shLegacy.js | |||
@@ -0,0 +1,17 @@ | |||
1 | /** | ||
2 | * SyntaxHighlighter | ||
3 | * http://alexgorbatchev.com/SyntaxHighlighter | ||
4 | * | ||
5 | * SyntaxHighlighter is donationware. If you are using it, please donate. | ||
6 | * http://alexgorbatchev.com/SyntaxHighlighter/donate.html | ||
7 | * | ||
8 | * @version | ||
9 | * 3.0.83 (July 02 2010) | ||
10 | * | ||
11 | * @copyright | ||
12 | * Copyright (C) 2004-2010 Alex Gorbatchev. | ||
13 | * | ||
14 | * @license | ||
15 | * Dual licensed under the MIT and GPL licenses. | ||
16 | */ | ||
17 | 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}('3 u={8:{}};u.8={A:4(c,k,l,m,n,o){4 d(a,b){2 a!=1?a:b}4 f(a){2 a!=1?a.E():1}c=c.I(":");3 g=c[0],e={};t={"r":K};M=1;5=8.5;9(3 j R c)e[c[j]]="r";k=f(d(k,5.C));l=f(d(l,5.D));m=f(d(m,5.s));o=f(d(o,5.Q));n=f(d(n,5["x-y"]));2{P:g,C:d(t[e.O],k),D:d(t[e.N],l),s:d({"r":r}[e.s],m),"x-y":d(4(a,b){9(3 h=T S("^"+b+"\\\\[(?<q>\\\\w+)\\\\]$","U"),i=1,p=0;p<a.7;p++)6((i=h.J(a[p]))!=1)2 i.q;2 1}(c,"G"),n)}},F:4(c,k,l,m,n,o){4 d(){9(3 a=H,b=0;b<a.7;b++)6(a[b]!==1){6(z a[b]=="L"&&a[b]!="")2 a[b]+"";6(z a[b]=="X"&&a[b].q!="")2 a[b].q+""}2 1}4 f(a,b,h){h=12.13(h);9(3 i=0;i<h.7;i++)h[i].V("15")==b&&a.Y(h[i])}3 g=[];f(g,c,"Z");f(g,c,"W");6(g.7!==0)9(c=0;c<g.7;c++){3 e=g[c],j=d(e.B["14"],e.10,e.B.v,e.v);6(j!==1){j=u.8.A(j,k,l,m,n,o);8.11(j,e)}}}};',62,68,'|null|return|var|function|defaults|if|length|SyntaxHighlighter|for|||||||||||||||||value|true|collapse|reverse|dp|language||first|line|typeof|parseParams|attributes|gutter|toolbar|toString|HighlightAll|firstline|arguments|split|exec|false|string|result|nocontrols|nogutter|brush|ruler|in|XRegExp|new|gi|getAttribute|textarea|object|push|pre|className|highlight|document|getElementsByTagName|class|name'.split('|'),0,{})) | ||
diff --git a/Blocks/syntax/src/shAutoloader.js b/Blocks/syntax/src/shAutoloader.js new file mode 100644 index 0000000..3a95449 --- /dev/null +++ b/Blocks/syntax/src/shAutoloader.js | |||
@@ -0,0 +1,130 @@ | |||
1 | /** | ||
2 | * SyntaxHighlighter | ||
3 | * http://alexgorbatchev.com/SyntaxHighlighter | ||
4 | * | ||
5 | * SyntaxHighlighter is donationware. If you are using it, please donate. | ||
6 | * http://alexgorbatchev.com/SyntaxHighlighter/donate.html | ||
7 | * | ||
8 | * @version | ||
9 | * 3.0.83 (July 02 2010) | ||
10 | * | ||
11 | * @copyright | ||
12 | * Copyright (C) 2004-2010 Alex Gorbatchev. | ||
13 | * | ||
14 | * @license | ||
15 | * Dual licensed under the MIT and GPL licenses. | ||
16 | */ | ||
17 | (function() { | ||
18 | |||
19 | var sh = SyntaxHighlighter; | ||
20 | |||
21 | /** | ||
22 | * Provides functionality to dynamically load only the brushes that a needed to render the current page. | ||
23 | * | ||
24 | * There are two syntaxes that autoload understands. For example: | ||
25 | * | ||
26 | * SyntaxHighlighter.autoloader( | ||
27 | * [ 'applescript', 'Scripts/shBrushAppleScript.js' ], | ||
28 | * [ 'actionscript3', 'as3', 'Scripts/shBrushAS3.js' ] | ||
29 | * ); | ||
30 | * | ||
31 | * or a more easily comprehendable one: | ||
32 | * | ||
33 | * SyntaxHighlighter.autoloader( | ||
34 | * 'applescript Scripts/shBrushAppleScript.js', | ||
35 | * 'actionscript3 as3 Scripts/shBrushAS3.js' | ||
36 | * ); | ||
37 | */ | ||
38 | sh.autoloader = function() | ||
39 | { | ||
40 | var list = arguments, | ||
41 | elements = sh.findElements(), | ||
42 | brushes = {}, | ||
43 | scripts = {}, | ||
44 | all = SyntaxHighlighter.all, | ||
45 | allCalled = false, | ||
46 | allParams = null, | ||
47 | i | ||
48 | ; | ||
49 | |||
50 | SyntaxHighlighter.all = function(params) | ||
51 | { | ||
52 | allParams = params; | ||
53 | allCalled = true; | ||
54 | }; | ||
55 | |||
56 | function addBrush(aliases, url) | ||
57 | { | ||
58 | for (var i = 0; i < aliases.length; i++) | ||
59 | brushes[aliases[i]] = url; | ||
60 | }; | ||
61 | |||
62 | function getAliases(item) | ||
63 | { | ||
64 | return item.pop | ||
65 | ? item | ||
66 | : item.split(/\s+/) | ||
67 | ; | ||
68 | } | ||
69 | |||
70 | // create table of aliases and script urls | ||
71 | for (i = 0; i < list.length; i++) | ||
72 | { | ||
73 | var aliases = getAliases(list[i]), | ||
74 | url = aliases.pop() | ||
75 | ; | ||
76 | |||
77 | addBrush(aliases, url); | ||
78 | } | ||
79 | |||
80 | // dynamically add <script /> tags to the document body | ||
81 | for (i = 0; i < elements.length; i++) | ||
82 | { | ||
83 | var url = brushes[elements[i].params.brush]; | ||
84 | |||
85 | if (!url) | ||
86 | continue; | ||
87 | |||
88 | scripts[url] = false; | ||
89 | loadScript(url); | ||
90 | } | ||
91 | |||
92 | function loadScript(url) | ||
93 | { | ||
94 | var script = document.createElement('script'), | ||
95 | done = false | ||
96 | ; | ||
97 | |||
98 | script.src = url; | ||
99 | script.type = 'text/javascript'; | ||
100 | script.language = 'javascript'; | ||
101 | script.onload = script.onreadystatechange = function() | ||
102 | { | ||
103 | if (!done && (!this.readyState || this.readyState == 'loaded' || this.readyState == 'complete')) | ||
104 | { | ||
105 | done = true; | ||
106 | scripts[url] = true; | ||
107 | checkAll(); | ||
108 | |||
109 | // Handle memory leak in IE | ||
110 | script.onload = script.onreadystatechange = null; | ||
111 | script.parentNode.removeChild(script); | ||
112 | } | ||
113 | }; | ||
114 | |||
115 | // sync way of adding script tags to the page | ||
116 | document.body.appendChild(script); | ||
117 | }; | ||
118 | |||
119 | function checkAll() | ||
120 | { | ||
121 | for(var url in scripts) | ||
122 | if (scripts[url] == false) | ||
123 | return; | ||
124 | |||
125 | if (allCalled) | ||
126 | SyntaxHighlighter.highlight(allParams); | ||
127 | }; | ||
128 | }; | ||
129 | |||
130 | })(); | ||
diff --git a/Blocks/syntax/src/shCore.js b/Blocks/syntax/src/shCore.js new file mode 100644 index 0000000..4214763 --- /dev/null +++ b/Blocks/syntax/src/shCore.js | |||
@@ -0,0 +1,1721 @@ | |||
1 | /** | ||
2 | * SyntaxHighlighter | ||
3 | * http://alexgorbatchev.com/SyntaxHighlighter | ||
4 | * | ||
5 | * SyntaxHighlighter is donationware. If you are using it, please donate. | ||
6 | * http://alexgorbatchev.com/SyntaxHighlighter/donate.html | ||
7 | * | ||
8 | * @version | ||
9 | * 3.0.83 (July 02 2010) | ||
10 | * | ||
11 | * @copyright | ||
12 | * Copyright (C) 2004-2010 Alex Gorbatchev. | ||
13 | * | ||
14 | * @license | ||
15 | * Dual licensed under the MIT and GPL licenses. | ||
16 | */ | ||
17 | // | ||
18 | // Begin anonymous function. This is used to contain local scope variables without polutting global scope. | ||
19 | // | ||
20 | var SyntaxHighlighter = function() { | ||
21 | |||
22 | // CommonJS | ||
23 | if (typeof(require) != 'undefined' && typeof(XRegExp) == 'undefined') | ||
24 | { | ||
25 | XRegExp = require('XRegExp').XRegExp; | ||
26 | } | ||
27 | |||
28 | // Shortcut object which will be assigned to the SyntaxHighlighter variable. | ||
29 | // This is a shorthand for local reference in order to avoid long namespace | ||
30 | // references to SyntaxHighlighter.whatever... | ||
31 | var sh = { | ||
32 | defaults : { | ||
33 | /** Additional CSS class names to be added to highlighter elements. */ | ||
34 | 'class-name' : '', | ||
35 | |||
36 | /** First line number. */ | ||
37 | 'first-line' : 1, | ||
38 | |||
39 | /** | ||
40 | * Pads line numbers. Possible values are: | ||
41 | * | ||
42 | * false - don't pad line numbers. | ||
43 | * true - automaticaly pad numbers with minimum required number of leading zeroes. | ||
44 | * [int] - length up to which pad line numbers. | ||
45 | */ | ||
46 | 'pad-line-numbers' : false, | ||
47 | |||
48 | /** Lines to highlight. */ | ||
49 | 'highlight' : null, | ||
50 | |||
51 | /** Title to be displayed above the code block. */ | ||
52 | 'title' : null, | ||
53 | |||
54 | /** Enables or disables smart tabs. */ | ||
55 | 'smart-tabs' : true, | ||
56 | |||
57 | /** Gets or sets tab size. */ | ||
58 | 'tab-size' : 4, | ||
59 | |||
60 | /** Enables or disables gutter. */ | ||
61 | 'gutter' : true, | ||
62 | |||
63 | /** Enables or disables toolbar. */ | ||
64 | 'toolbar' : true, | ||
65 | |||
66 | /** Enables quick code copy and paste from double click. */ | ||
67 | 'quick-code' : true, | ||
68 | |||
69 | /** Forces code view to be collapsed. */ | ||
70 | 'collapse' : false, | ||
71 | |||
72 | /** Enables or disables automatic links. */ | ||
73 | 'auto-links' : true, | ||
74 | |||
75 | /** Gets or sets light mode. Equavalent to turning off gutter and toolbar. */ | ||
76 | 'light' : false, | ||
77 | |||
78 | 'html-script' : false | ||
79 | }, | ||
80 | |||
81 | config : { | ||
82 | space : ' ', | ||
83 | |||
84 | /** Enables use of <SCRIPT type="syntaxhighlighter" /> tags. */ | ||
85 | useScriptTags : true, | ||
86 | |||
87 | /** Blogger mode flag. */ | ||
88 | bloggerMode : false, | ||
89 | |||
90 | stripBrs : false, | ||
91 | |||
92 | /** Name of the tag that SyntaxHighlighter will automatically look for. */ | ||
93 | tagName : 'pre', | ||
94 | |||
95 | strings : { | ||
96 | expandSource : 'expand source', | ||
97 | help : '?', | ||
98 | alert: 'SyntaxHighlighter\n\n', | ||
99 | noBrush : 'Can\'t find brush for: ', | ||
100 | brushNotHtmlScript : 'Brush wasn\'t configured for html-script option: ', | ||
101 | |||
102 | // this is populated by the build script | ||
103 | aboutDialog : '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>About SyntaxHighlighter</title></head><body style="font-family:Geneva,Arial,Helvetica,sans-serif;background-color:#fff;color:#000;font-size:1em;text-align:center;"><div style="text-align:center;margin-top:1.5em;"><div style="font-size:xx-large;">SyntaxHighlighter</div><div style="font-size:.75em;margin-bottom:3em;"><div>version 3.0.83 (July 02 2010)</div><div><a href="http://alexgorbatchev.com/SyntaxHighlighter" target="_blank" style="color:#005896">http://alexgorbatchev.com/SyntaxHighlighter</a></div><div>JavaScript code syntax highlighter.</div><div>Copyright 2004-2010 Alex Gorbatchev.</div></div><div>If you like this script, please <a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=2930402" style="color:#005896">donate</a> to <br/>keep development active!</div></div></body></html>' | ||
104 | } | ||
105 | }, | ||
106 | |||
107 | /** Internal 'global' variables. */ | ||
108 | vars : { | ||
109 | discoveredBrushes : null, | ||
110 | highlighters : {} | ||
111 | }, | ||
112 | |||
113 | /** This object is populated by user included external brush files. */ | ||
114 | brushes : {}, | ||
115 | |||
116 | /** Common regular expressions. */ | ||
117 | regexLib : { | ||
118 | multiLineCComments : /\/\*[\s\S]*?\*\//gm, | ||
119 | singleLineCComments : /\/\/.*$/gm, | ||
120 | singleLinePerlComments : /#.*$/gm, | ||
121 | doubleQuotedString : /"([^\\"\n]|\\.)*"/g, | ||
122 | singleQuotedString : /'([^\\'\n]|\\.)*'/g, | ||
123 | multiLineDoubleQuotedString : new XRegExp('"([^\\\\"]|\\\\.)*"', 'gs'), | ||
124 | multiLineSingleQuotedString : new XRegExp("'([^\\\\']|\\\\.)*'", 'gs'), | ||
125 | xmlComments : /(<|<)!--[\s\S]*?--(>|>)/gm, | ||
126 | url : /\w+:\/\/[\w-.\/?%&=:@;]*/g, | ||
127 | |||
128 | /** <?= ?> tags. */ | ||
129 | phpScriptTags : { left: /(<|<)\?=?/g, right: /\?(>|>)/g }, | ||
130 | |||
131 | /** <%= %> tags. */ | ||
132 | aspScriptTags : { left: /(<|<)%=?/g, right: /%(>|>)/g }, | ||
133 | |||
134 | /** <script></script> tags. */ | ||
135 | scriptScriptTags : { left: /(<|<)\s*script.*?(>|>)/gi, right: /(<|<)\/\s*script\s*(>|>)/gi } | ||
136 | }, | ||
137 | |||
138 | toolbar: { | ||
139 | /** | ||
140 | * Generates HTML markup for the toolbar. | ||
141 | * @param {Highlighter} highlighter Highlighter instance. | ||
142 | * @return {String} Returns HTML markup. | ||
143 | */ | ||
144 | getHtml: function(highlighter) | ||
145 | { | ||
146 | var html = '<div class="toolbar">', | ||
147 | items = sh.toolbar.items, | ||
148 | list = items.list | ||
149 | ; | ||
150 | |||
151 | function defaultGetHtml(highlighter, name) | ||
152 | { | ||
153 | return sh.toolbar.getButtonHtml(highlighter, name, sh.config.strings[name]); | ||
154 | }; | ||
155 | |||
156 | for (var i = 0; i < list.length; i++) | ||
157 | html += (items[list[i]].getHtml || defaultGetHtml)(highlighter, list[i]); | ||
158 | |||
159 | html += '</div>'; | ||
160 | |||
161 | return html; | ||
162 | }, | ||
163 | |||
164 | /** | ||
165 | * Generates HTML markup for a regular button in the toolbar. | ||
166 | * @param {Highlighter} highlighter Highlighter instance. | ||
167 | * @param {String} commandName Command name that would be executed. | ||
168 | * @param {String} label Label text to display. | ||
169 | * @return {String} Returns HTML markup. | ||
170 | */ | ||
171 | getButtonHtml: function(highlighter, commandName, label) | ||
172 | { | ||
173 | return '<span><a href="#" class="toolbar_item' | ||
174 | + ' command_' + commandName | ||
175 | + ' ' + commandName | ||
176 | + '">' + label + '</a></span>' | ||
177 | ; | ||
178 | }, | ||
179 | |||
180 | /** | ||
181 | * Event handler for a toolbar anchor. | ||
182 | */ | ||
183 | handler: function(e) | ||
184 | { | ||
185 | var target = e.target, | ||
186 | className = target.className || '' | ||
187 | ; | ||
188 | |||
189 | function getValue(name) | ||
190 | { | ||
191 | var r = new RegExp(name + '_(\\w+)'), | ||
192 | match = r.exec(className) | ||
193 | ; | ||
194 | |||
195 | return match ? match[1] : null; | ||
196 | }; | ||
197 | |||
198 | var highlighter = getHighlighterById(findParentElement(target, '.syntaxhighlighter').id), | ||
199 | commandName = getValue('command') | ||
200 | ; | ||
201 | |||
202 | // execute the toolbar command | ||
203 | if (highlighter && commandName) | ||
204 | sh.toolbar.items[commandName].execute(highlighter); | ||
205 | |||
206 | // disable default A click behaviour | ||
207 | e.preventDefault(); | ||
208 | }, | ||
209 | |||
210 | /** Collection of toolbar items. */ | ||
211 | items : { | ||
212 | // Ordered lis of items in the toolbar. Can't expect `for (var n in items)` to be consistent. | ||
213 | list: ['expandSource', 'help'], | ||
214 | |||
215 | expandSource: { | ||
216 | getHtml: function(highlighter) | ||
217 | { | ||
218 | if (highlighter.getParam('collapse') != true) | ||
219 | return ''; | ||
220 | |||
221 | var title = highlighter.getParam('title'); | ||
222 | return sh.toolbar.getButtonHtml(highlighter, 'expandSource', title ? title : sh.config.strings.expandSource); | ||
223 | }, | ||
224 | |||
225 | execute: function(highlighter) | ||
226 | { | ||
227 | var div = getHighlighterDivById(highlighter.id); | ||
228 | removeClass(div, 'collapsed'); | ||
229 | } | ||
230 | }, | ||
231 | |||
232 | /** Command to display the about dialog window. */ | ||
233 | help: { | ||
234 | execute: function(highlighter) | ||
235 | { | ||
236 | var wnd = popup('', '_blank', 500, 250, 'scrollbars=0'), | ||
237 | doc = wnd.document | ||
238 | ; | ||
239 | |||
240 | doc.write(sh.config.strings.aboutDialog); | ||
241 | doc.close(); | ||
242 | wnd.focus(); | ||
243 | } | ||
244 | } | ||
245 | } | ||
246 | }, | ||
247 | |||
248 | /** | ||
249 | * Finds all elements on the page which should be processes by SyntaxHighlighter. | ||
250 | * | ||
251 | * @param {Object} globalParams Optional parameters which override element's | ||
252 | * parameters. Only used if element is specified. | ||
253 | * | ||
254 | * @param {Object} element Optional element to highlight. If none is | ||
255 | * provided, all elements in the current document | ||
256 | * are returned which qualify. | ||
257 | * | ||
258 | * @return {Array} Returns list of <code>{ target: DOMElement, params: Object }</code> objects. | ||
259 | */ | ||
260 | findElements: function(globalParams, element) | ||
261 | { | ||
262 | var elements = element ? [element] : toArray(document.getElementsByTagName(sh.config.tagName)), | ||
263 | conf = sh.config, | ||
264 | result = [] | ||
265 | ; | ||
266 | |||
267 | // support for <SCRIPT TYPE="syntaxhighlighter" /> feature | ||
268 | if (conf.useScriptTags) | ||
269 | elements = elements.concat(getSyntaxHighlighterScriptTags()); | ||
270 | |||
271 | if (elements.length === 0) | ||
272 | return result; | ||
273 | |||
274 | for (var i = 0; i < elements.length; i++) | ||
275 | { | ||
276 | var item = { | ||
277 | target: elements[i], | ||
278 | // local params take precedence over globals | ||
279 | params: merge(globalParams, parseParams(elements[i].className)) | ||
280 | }; | ||
281 | |||
282 | if (item.params['brush'] == null) | ||
283 | continue; | ||
284 | |||
285 | result.push(item); | ||
286 | } | ||
287 | |||
288 | return result; | ||
289 | }, | ||
290 | |||
291 | /** | ||
292 | * Shorthand to highlight all elements on the page that are marked as | ||
293 | * SyntaxHighlighter source code. | ||
294 | * | ||
295 | * @param {Object} globalParams Optional parameters which override element's | ||
296 | * parameters. Only used if element is specified. | ||
297 | * | ||
298 | * @param {Object} element Optional element to highlight. If none is | ||
299 | * provided, all elements in the current document | ||
300 | * are highlighted. | ||
301 | */ | ||
302 | highlight: function(globalParams, element) | ||
303 | { | ||
304 | var elements = this.findElements(globalParams, element), | ||
305 | propertyName = 'innerHTML', | ||
306 | highlighter = null, | ||
307 | conf = sh.config | ||
308 | ; | ||
309 | |||
310 | if (elements.length === 0) | ||
311 | return; | ||
312 | |||
313 | for (var i = 0; i < elements.length; i++) | ||
314 | { | ||
315 | var element = elements[i], | ||
316 | target = element.target, | ||
317 | params = element.params, | ||
318 | brushName = params.brush, | ||
319 | code | ||
320 | ; | ||
321 | |||
322 | if (brushName == null) | ||
323 | continue; | ||
324 | |||
325 | // Instantiate a brush | ||
326 | if (params['html-script'] == 'true' || sh.defaults['html-script'] == true) | ||
327 | { | ||
328 | highlighter = new sh.HtmlScript(brushName); | ||
329 | brushName = 'htmlscript'; | ||
330 | } | ||
331 | else | ||
332 | { | ||
333 | var brush = findBrush(brushName); | ||
334 | |||
335 | if (brush) | ||
336 | highlighter = new brush(); | ||
337 | else | ||
338 | continue; | ||
339 | } | ||
340 | |||
341 | code = target[propertyName]; | ||
342 | |||
343 | // remove CDATA from <SCRIPT/> tags if it's present | ||
344 | if (conf.useScriptTags) | ||
345 | code = stripCData(code); | ||
346 | |||
347 | // Inject title if the attribute is present | ||
348 | if ((target.title || '') != '') | ||
349 | params.title = target.title; | ||
350 | |||
351 | params['brush'] = brushName; | ||
352 | highlighter.init(params); | ||
353 | element = highlighter.getDiv(code); | ||
354 | |||
355 | // carry over ID | ||
356 | if ((target.id || '') != '') | ||
357 | element.id = target.id; | ||
358 | |||
359 | target.parentNode.replaceChild(element, target); | ||
360 | } | ||
361 | }, | ||
362 | |||
363 | /** | ||
364 | * Main entry point for the SyntaxHighlighter. | ||
365 | * @param {Object} params Optional params to apply to all highlighted elements. | ||
366 | */ | ||
367 | all: function(params) | ||
368 | { | ||
369 | attachEvent( | ||
370 | window, | ||
371 | 'load', | ||
372 | function() { sh.highlight(params); } | ||
373 | ); | ||
374 | } | ||
375 | }; // end of sh | ||
376 | |||
377 | sh['all'] = sh.all; | ||
378 | sh['highlight'] = sh.highlight; | ||
379 | |||
380 | /** | ||
381 | * Checks if target DOM elements has specified CSS class. | ||
382 | * @param {DOMElement} target Target DOM element to check. | ||
383 | * @param {String} className Name of the CSS class to check for. | ||
384 | * @return {Boolean} Returns true if class name is present, false otherwise. | ||
385 | */ | ||
386 | function hasClass(target, className) | ||
387 | { | ||
388 | return target.className.indexOf(className) != -1; | ||
389 | }; | ||
390 | |||
391 | /** | ||
392 | * Adds CSS class name to the target DOM element. | ||
393 | * @param {DOMElement} target Target DOM element. | ||
394 | * @param {String} className New CSS class to add. | ||
395 | */ | ||
396 | function addClass(target, className) | ||
397 | { | ||
398 | if (!hasClass(target, className)) | ||
399 | target.className += ' ' + className; | ||
400 | }; | ||
401 | |||
402 | /** | ||
403 | * Removes CSS class name from the target DOM element. | ||
404 | * @param {DOMElement} target Target DOM element. | ||
405 | * @param {String} className CSS class to remove. | ||
406 | */ | ||
407 | function removeClass(target, className) | ||
408 | { | ||
409 | target.className = target.className.replace(className, ''); | ||
410 | }; | ||
411 | |||
412 | /** | ||
413 | * Converts the source to array object. Mostly used for function arguments and | ||
414 | * lists returned by getElementsByTagName() which aren't Array objects. | ||
415 | * @param {List} source Source list. | ||
416 | * @return {Array} Returns array. | ||
417 | */ | ||
418 | function toArray(source) | ||
419 | { | ||
420 | var result = []; | ||
421 | |||
422 | for (var i = 0; i < source.length; i++) | ||
423 | result.push(source[i]); | ||
424 | |||
425 | return result; | ||
426 | }; | ||
427 | |||
428 | /** | ||
429 | * Splits block of text into lines. | ||
430 | * @param {String} block Block of text. | ||
431 | * @return {Array} Returns array of lines. | ||
432 | */ | ||
433 | function splitLines(block) | ||
434 | { | ||
435 | return block.split('\n'); | ||
436 | } | ||
437 | |||
438 | /** | ||
439 | * Generates HTML ID for the highlighter. | ||
440 | * @param {String} highlighterId Highlighter ID. | ||
441 | * @return {String} Returns HTML ID. | ||
442 | */ | ||
443 | function getHighlighterId(id) | ||
444 | { | ||
445 | var prefix = 'highlighter_'; | ||
446 | return id.indexOf(prefix) == 0 ? id : prefix + id; | ||
447 | }; | ||
448 | |||
449 | /** | ||
450 | * Finds Highlighter instance by ID. | ||
451 | * @param {String} highlighterId Highlighter ID. | ||
452 | * @return {Highlighter} Returns instance of the highlighter. | ||
453 | */ | ||
454 | function getHighlighterById(id) | ||
455 | { | ||
456 | return sh.vars.highlighters[getHighlighterId(id)]; | ||
457 | }; | ||
458 | |||
459 | /** | ||
460 | * Finds highlighter's DIV container. | ||
461 | * @param {String} highlighterId Highlighter ID. | ||
462 | * @return {Element} Returns highlighter's DIV element. | ||
463 | */ | ||
464 | function getHighlighterDivById(id) | ||
465 | { | ||
466 | return document.getElementById(getHighlighterId(id)); | ||
467 | }; | ||
468 | |||
469 | /** | ||
470 | * Stores highlighter so that getHighlighterById() can do its thing. Each | ||
471 | * highlighter must call this method to preserve itself. | ||
472 | * @param {Highilghter} highlighter Highlighter instance. | ||
473 | */ | ||
474 | function storeHighlighter(highlighter) | ||
475 | { | ||
476 | sh.vars.highlighters[getHighlighterId(highlighter.id)] = highlighter; | ||
477 | }; | ||
478 | |||
479 | /** | ||
480 | * Looks for a child or parent node which has specified classname. | ||
481 | * Equivalent to jQuery's $(container).find(".className") | ||
482 | * @param {Element} target Target element. | ||
483 | * @param {String} search Class name or node name to look for. | ||
484 | * @param {Boolean} reverse If set to true, will go up the node tree instead of down. | ||
485 | * @return {Element} Returns found child or parent element on null. | ||
486 | */ | ||
487 | function findElement(target, search, reverse /* optional */) | ||
488 | { | ||
489 | if (target == null) | ||
490 | return null; | ||
491 | |||
492 | var nodes = reverse != true ? target.childNodes : [ target.parentNode ], | ||
493 | propertyToFind = { '#' : 'id', '.' : 'className' }[search.substr(0, 1)] || 'nodeName', | ||
494 | expectedValue, | ||
495 | found | ||
496 | ; | ||
497 | |||
498 | expectedValue = propertyToFind != 'nodeName' | ||
499 | ? search.substr(1) | ||
500 | : search.toUpperCase() | ||
501 | ; | ||
502 | |||
503 | // main return of the found node | ||
504 | if ((target[propertyToFind] || '').indexOf(expectedValue) != -1) | ||
505 | return target; | ||
506 | |||
507 | for (var i = 0; nodes && i < nodes.length && found == null; i++) | ||
508 | found = findElement(nodes[i], search, reverse); | ||
509 | |||
510 | return found; | ||
511 | }; | ||
512 | |||
513 | /** | ||
514 | * Looks for a parent node which has specified classname. | ||
515 | * This is an alias to <code>findElement(container, className, true)</code>. | ||
516 | * @param {Element} target Target element. | ||
517 | * @param {String} className Class name to look for. | ||
518 | * @return {Element} Returns found parent element on null. | ||
519 | */ | ||
520 | function findParentElement(target, className) | ||
521 | { | ||
522 | return findElement(target, className, true); | ||
523 | }; | ||
524 | |||
525 | /** | ||
526 | * Finds an index of element in the array. | ||
527 | * @ignore | ||
528 | * @param {Object} searchElement | ||
529 | * @param {Number} fromIndex | ||
530 | * @return {Number} Returns index of element if found; -1 otherwise. | ||
531 | */ | ||
532 | function indexOf(array, searchElement, fromIndex) | ||
533 | { | ||
534 | fromIndex = Math.max(fromIndex || 0, 0); | ||
535 | |||
536 | for (var i = fromIndex; i < array.length; i++) | ||
537 | if(array[i] == searchElement) | ||
538 | return i; | ||
539 | |||
540 | return -1; | ||
541 | }; | ||
542 | |||
543 | /** | ||
544 | * Generates a unique element ID. | ||
545 | */ | ||
546 | function guid(prefix) | ||
547 | { | ||
548 | return (prefix || '') + Math.round(Math.random() * 1000000).toString(); | ||
549 | }; | ||
550 | |||
551 | /** | ||
552 | * Merges two objects. Values from obj2 override values in obj1. | ||
553 | * Function is NOT recursive and works only for one dimensional objects. | ||
554 | * @param {Object} obj1 First object. | ||
555 | * @param {Object} obj2 Second object. | ||
556 | * @return {Object} Returns combination of both objects. | ||
557 | */ | ||
558 | function merge(obj1, obj2) | ||
559 | { | ||
560 | var result = {}, name; | ||
561 | |||
562 | for (name in obj1) | ||
563 | result[name] = obj1[name]; | ||
564 | |||
565 | for (name in obj2) | ||
566 | result[name] = obj2[name]; | ||
567 | |||
568 | return result; | ||
569 | }; | ||
570 | |||
571 | /** | ||
572 | * Attempts to convert string to boolean. | ||
573 | * @param {String} value Input string. | ||
574 | * @return {Boolean} Returns true if input was "true", false if input was "false" and value otherwise. | ||
575 | */ | ||
576 | function toBoolean(value) | ||
577 | { | ||
578 | var result = { "true" : true, "false" : false }[value]; | ||
579 | return result == null ? value : result; | ||
580 | }; | ||
581 | |||
582 | /** | ||
583 | * Opens up a centered popup window. | ||
584 | * @param {String} url URL to open in the window. | ||
585 | * @param {String} name Popup name. | ||
586 | * @param {int} width Popup width. | ||
587 | * @param {int} height Popup height. | ||
588 | * @param {String} options window.open() options. | ||
589 | * @return {Window} Returns window instance. | ||
590 | */ | ||
591 | function popup(url, name, width, height, options) | ||
592 | { | ||
593 | var x = (screen.width - width) / 2, | ||
594 | y = (screen.height - height) / 2 | ||
595 | ; | ||
596 | |||
597 | options += ', left=' + x + | ||
598 | ', top=' + y + | ||
599 | ', width=' + width + | ||
600 | ', height=' + height | ||
601 | ; | ||
602 | options = options.replace(/^,/, ''); | ||
603 | |||
604 | var win = window.open(url, name, options); | ||
605 | win.focus(); | ||
606 | return win; | ||
607 | }; | ||
608 | |||
609 | /** | ||
610 | * Adds event handler to the target object. | ||
611 | * @param {Object} obj Target object. | ||
612 | * @param {String} type Name of the event. | ||
613 | * @param {Function} func Handling function. | ||
614 | */ | ||
615 | function attachEvent(obj, type, func, scope) | ||
616 | { | ||
617 | function handler(e) | ||
618 | { | ||
619 | e = e || window.event; | ||
620 | |||
621 | if (!e.target) | ||
622 | { | ||
623 | e.target = e.srcElement; | ||
624 | e.preventDefault = function() | ||
625 | { | ||
626 | this.returnValue = false; | ||
627 | }; | ||
628 | } | ||
629 | |||
630 | func.call(scope || window, e); | ||
631 | }; | ||
632 | |||
633 | if (obj.attachEvent) | ||
634 | { | ||
635 | obj.attachEvent('on' + type, handler); | ||
636 | } | ||
637 | else | ||
638 | { | ||
639 | obj.addEventListener(type, handler, false); | ||
640 | } | ||
641 | }; | ||
642 | |||
643 | /** | ||
644 | * Displays an alert. | ||
645 | * @param {String} str String to display. | ||
646 | */ | ||
647 | function alert(str) | ||
648 | { | ||
649 | window.alert(sh.config.strings.alert + str); | ||
650 | }; | ||
651 | |||
652 | /** | ||
653 | * Finds a brush by its alias. | ||
654 | * | ||
655 | * @param {String} alias Brush alias. | ||
656 | * @param {Boolean} showAlert Suppresses the alert if false. | ||
657 | * @return {Brush} Returns bursh constructor if found, null otherwise. | ||
658 | */ | ||
659 | function findBrush(alias, showAlert) | ||
660 | { | ||
661 | var brushes = sh.vars.discoveredBrushes, | ||
662 | result = null | ||
663 | ; | ||
664 | |||
665 | if (brushes == null) | ||
666 | { | ||
667 | brushes = {}; | ||
668 | |||
669 | // Find all brushes | ||
670 | for (var brush in sh.brushes) | ||
671 | { | ||
672 | var info = sh.brushes[brush], | ||
673 | aliases = info.aliases | ||
674 | ; | ||
675 | |||
676 | if (aliases == null) | ||
677 | continue; | ||
678 | |||
679 | // keep the brush name | ||
680 | info.brushName = brush.toLowerCase(); | ||
681 | |||
682 | for (var i = 0; i < aliases.length; i++) | ||
683 | brushes[aliases[i]] = brush; | ||
684 | } | ||
685 | |||
686 | sh.vars.discoveredBrushes = brushes; | ||
687 | } | ||
688 | |||
689 | result = sh.brushes[brushes[alias]]; | ||
690 | |||
691 | if (result == null && showAlert != false) | ||
692 | alert(sh.config.strings.noBrush + alias); | ||
693 | |||
694 | return result; | ||
695 | }; | ||
696 | |||
697 | /** | ||
698 | * Executes a callback on each line and replaces each line with result from the callback. | ||
699 | * @param {Object} str Input string. | ||
700 | * @param {Object} callback Callback function taking one string argument and returning a string. | ||
701 | */ | ||
702 | function eachLine(str, callback) | ||
703 | { | ||
704 | var lines = splitLines(str); | ||
705 | |||
706 | for (var i = 0; i < lines.length; i++) | ||
707 | lines[i] = callback(lines[i], i); | ||
708 | |||
709 | return lines.join('\n'); | ||
710 | }; | ||
711 | |||
712 | /** | ||
713 | * This is a special trim which only removes first and last empty lines | ||
714 | * and doesn't affect valid leading space on the first line. | ||
715 | * | ||
716 | * @param {String} str Input string | ||
717 | * @return {String} Returns string without empty first and last lines. | ||
718 | */ | ||
719 | function trimFirstAndLastLines(str) | ||
720 | { | ||
721 | return str.replace(/^[ ]*[\n]+|[\n]*[ ]*$/g, ''); | ||
722 | }; | ||
723 | |||
724 | /** | ||
725 | * Parses key/value pairs into hash object. | ||
726 | * | ||
727 | * Understands the following formats: | ||
728 | * - name: word; | ||
729 | * - name: [word, word]; | ||
730 | * - name: "string"; | ||
731 | * - name: 'string'; | ||
732 | * | ||
733 | * For example: | ||
734 | * name1: value; name2: [value, value]; name3: 'value' | ||
735 | * | ||
736 | * @param {String} str Input string. | ||
737 | * @return {Object} Returns deserialized object. | ||
738 | */ | ||
739 | function parseParams(str) | ||
740 | { | ||
741 | var match, | ||
742 | result = {}, | ||
743 | arrayRegex = new XRegExp("^\\[(?<values>(.*?))\\]$"), | ||
744 | regex = new XRegExp( | ||
745 | "(?<name>[\\w-]+)" + | ||
746 | "\\s*:\\s*" + | ||
747 | "(?<value>" + | ||
748 | "[\\w-%#]+|" + // word | ||
749 | "\\[.*?\\]|" + // [] array | ||
750 | '".*?"|' + // "" string | ||
751 | "'.*?'" + // '' string | ||
752 | ")\\s*;?", | ||
753 | "g" | ||
754 | ) | ||
755 | ; | ||
756 | |||
757 | while ((match = regex.exec(str)) != null) | ||
758 | { | ||
759 | var value = match.value | ||
760 | .replace(/^['"]|['"]$/g, '') // strip quotes from end of strings | ||
761 | ; | ||
762 | |||
763 | // try to parse array value | ||
764 | if (value != null && arrayRegex.test(value)) | ||
765 | { | ||
766 | var m = arrayRegex.exec(value); | ||
767 | value = m.values.length > 0 ? m.values.split(/\s*,\s*/) : []; | ||
768 | } | ||
769 | |||
770 | result[match.name] = value; | ||
771 | } | ||
772 | |||
773 | return result; | ||
774 | }; | ||
775 | |||
776 | /** | ||
777 | * Wraps each line of the string into <code/> tag with given style applied to it. | ||
778 | * | ||
779 | * @param {String} str Input string. | ||
780 | * @param {String} css Style name to apply to the string. | ||
781 | * @return {String} Returns input string with each line surrounded by <span/> tag. | ||
782 | */ | ||
783 | function wrapLinesWithCode(str, css) | ||
784 | { | ||
785 | if (str == null || str.length == 0 || str == '\n') | ||
786 | return str; | ||
787 | |||
788 | str = str.replace(/</g, '<'); | ||
789 | |||
790 | // Replace two or more sequential spaces with leaving last space untouched. | ||
791 | str = str.replace(/ {2,}/g, function(m) | ||
792 | { | ||
793 | var spaces = ''; | ||
794 | |||
795 | for (var i = 0; i < m.length - 1; i++) | ||
796 | spaces += sh.config.space; | ||
797 | |||
798 | return spaces + ' '; | ||
799 | }); | ||
800 | |||
801 | // Split each line and apply <span class="...">...</span> to them so that | ||
802 | // leading spaces aren't included. | ||
803 | if (css != null) | ||
804 | str = eachLine(str, function(line) | ||
805 | { | ||
806 | if (line.length == 0) | ||
807 | return ''; | ||
808 | |||
809 | var spaces = ''; | ||
810 | |||
811 | line = line.replace(/^( | )+/, function(s) | ||
812 | { | ||
813 | spaces = s; | ||
814 | return ''; | ||
815 | }); | ||
816 | |||
817 | if (line.length == 0) | ||
818 | return spaces; | ||
819 | |||
820 | return spaces + '<code class="' + css + '">' + line + '</code>'; | ||
821 | }); | ||
822 | |||
823 | return str; | ||
824 | }; | ||
825 | |||
826 | /** | ||
827 | * Pads number with zeros until it's length is the same as given length. | ||
828 | * | ||
829 | * @param {Number} number Number to pad. | ||
830 | * @param {Number} length Max string length with. | ||
831 | * @return {String} Returns a string padded with proper amount of '0'. | ||
832 | */ | ||
833 | function padNumber(number, length) | ||
834 | { | ||
835 | var result = number.toString(); | ||
836 | |||
837 | while (result.length < length) | ||
838 | result = '0' + result; | ||
839 | |||
840 | return result; | ||
841 | }; | ||
842 | |||
843 | /** | ||
844 | * Replaces tabs with spaces. | ||
845 | * | ||
846 | * @param {String} code Source code. | ||
847 | * @param {Number} tabSize Size of the tab. | ||
848 | * @return {String} Returns code with all tabs replaces by spaces. | ||
849 | */ | ||
850 | function processTabs(code, tabSize) | ||
851 | { | ||
852 | var tab = ''; | ||
853 | |||
854 | for (var i = 0; i < tabSize; i++) | ||
855 | tab += ' '; | ||
856 | |||
857 | return code.replace(/\t/g, tab); | ||
858 | }; | ||
859 | |||
860 | /** | ||
861 | * Replaces tabs with smart spaces. | ||
862 | * | ||
863 | * @param {String} code Code to fix the tabs in. | ||
864 | * @param {Number} tabSize Number of spaces in a column. | ||
865 | * @return {String} Returns code with all tabs replaces with roper amount of spaces. | ||
866 | */ | ||
867 | function processSmartTabs(code, tabSize) | ||
868 | { | ||
869 | var lines = splitLines(code), | ||
870 | tab = '\t', | ||
871 | spaces = '' | ||
872 | ; | ||
873 | |||
874 | // Create a string with 1000 spaces to copy spaces from... | ||
875 | // It's assumed that there would be no indentation longer than that. | ||
876 | for (var i = 0; i < 50; i++) | ||
877 | spaces += ' '; // 20 spaces * 50 | ||
878 | |||
879 | // This function inserts specified amount of spaces in the string | ||
880 | // where a tab is while removing that given tab. | ||
881 | function insertSpaces(line, pos, count) | ||
882 | { | ||
883 | return line.substr(0, pos) | ||
884 | + spaces.substr(0, count) | ||
885 | + line.substr(pos + 1, line.length) // pos + 1 will get rid of the tab | ||
886 | ; | ||
887 | }; | ||
888 | |||
889 | // Go through all the lines and do the 'smart tabs' magic. | ||
890 | code = eachLine(code, function(line) | ||
891 | { | ||
892 | if (line.indexOf(tab) == -1) | ||
893 | return line; | ||
894 | |||
895 | var pos = 0; | ||
896 | |||
897 | while ((pos = line.indexOf(tab)) != -1) | ||
898 | { | ||
899 | // This is pretty much all there is to the 'smart tabs' logic. | ||
900 | // Based on the position within the line and size of a tab, | ||
901 | // calculate the amount of spaces we need to insert. | ||
902 | var spaces = tabSize - pos % tabSize; | ||
903 | line = insertSpaces(line, pos, spaces); | ||
904 | } | ||
905 | |||
906 | return line; | ||
907 | }); | ||
908 | |||
909 | return code; | ||
910 | }; | ||
911 | |||
912 | /** | ||
913 | * Performs various string fixes based on configuration. | ||
914 | */ | ||
915 | function fixInputString(str) | ||
916 | { | ||
917 | var br = /<br\s*\/?>|<br\s*\/?>/gi; | ||
918 | |||
919 | if (sh.config.bloggerMode == true) | ||
920 | str = str.replace(br, '\n'); | ||
921 | |||
922 | if (sh.config.stripBrs == true) | ||
923 | str = str.replace(br, ''); | ||
924 | |||
925 | return str; | ||
926 | }; | ||
927 | |||
928 | /** | ||
929 | * Removes all white space at the begining and end of a string. | ||
930 | * | ||
931 | * @param {String} str String to trim. | ||
932 | * @return {String} Returns string without leading and following white space characters. | ||
933 | */ | ||
934 | function trim(str) | ||
935 | { | ||
936 | return str.replace(/^\s+|\s+$/g, ''); | ||
937 | }; | ||
938 | |||
939 | /** | ||
940 | * Unindents a block of text by the lowest common indent amount. | ||
941 | * @param {String} str Text to unindent. | ||
942 | * @return {String} Returns unindented text block. | ||
943 | */ | ||
944 | function unindent(str) | ||
945 | { | ||
946 | var lines = splitLines(fixInputString(str)), | ||
947 | indents = new Array(), | ||
948 | regex = /^\s*/, | ||
949 | min = 1000 | ||
950 | ; | ||
951 | |||
952 | // go through every line and check for common number of indents | ||
953 | for (var i = 0; i < lines.length && min > 0; i++) | ||
954 | { | ||
955 | var line = lines[i]; | ||
956 | |||
957 | if (trim(line).length == 0) | ||
958 | continue; | ||
959 | |||
960 | var matches = regex.exec(line); | ||
961 | |||
962 | // In the event that just one line doesn't have leading white space | ||
963 | // we can't unindent anything, so bail completely. | ||
964 | if (matches == null) | ||
965 | return str; | ||
966 | |||
967 | min = Math.min(matches[0].length, min); | ||
968 | } | ||
969 | |||
970 | // trim minimum common number of white space from the begining of every line | ||
971 | if (min > 0) | ||
972 | for (var i = 0; i < lines.length; i++) | ||
973 | lines[i] = lines[i].substr(min); | ||
974 | |||
975 | return lines.join('\n'); | ||
976 | }; | ||
977 | |||
978 | /** | ||
979 | * Callback method for Array.sort() which sorts matches by | ||
980 | * index position and then by length. | ||
981 | * | ||
982 | * @param {Match} m1 Left object. | ||
983 | * @param {Match} m2 Right object. | ||
984 | * @return {Number} Returns -1, 0 or -1 as a comparison result. | ||
985 | */ | ||
986 | function matchesSortCallback(m1, m2) | ||
987 | { | ||
988 | // sort matches by index first | ||
989 | if(m1.index < m2.index) | ||
990 | return -1; | ||
991 | else if(m1.index > m2.index) | ||
992 | return 1; | ||
993 | else | ||
994 | { | ||
995 | // if index is the same, sort by length | ||
996 | if(m1.length < m2.length) | ||
997 | return -1; | ||
998 | else if(m1.length > m2.length) | ||
999 | return 1; | ||
1000 | } | ||
1001 | |||
1002 | return 0; | ||
1003 | }; | ||
1004 | |||
1005 | /** | ||
1006 | * Executes given regular expression on provided code and returns all | ||
1007 | * matches that are found. | ||
1008 | * | ||
1009 | * @param {String} code Code to execute regular expression on. | ||
1010 | * @param {Object} regex Regular expression item info from <code>regexList</code> collection. | ||
1011 | * @return {Array} Returns a list of Match objects. | ||
1012 | */ | ||
1013 | function getMatches(code, regexInfo) | ||
1014 | { | ||
1015 | function defaultAdd(match, regexInfo) | ||
1016 | { | ||
1017 | return match[0]; | ||
1018 | }; | ||
1019 | |||
1020 | var index = 0, | ||
1021 | match = null, | ||
1022 | matches = [], | ||
1023 | func = regexInfo.func ? regexInfo.func : defaultAdd | ||
1024 | ; | ||
1025 | |||
1026 | while((match = regexInfo.regex.exec(code)) != null) | ||
1027 | { | ||
1028 | var resultMatch = func(match, regexInfo); | ||
1029 | |||
1030 | if (typeof(resultMatch) == 'string') | ||
1031 | resultMatch = [new sh.Match(resultMatch, match.index, regexInfo.css)]; | ||
1032 | |||
1033 | matches = matches.concat(resultMatch); | ||
1034 | } | ||
1035 | |||
1036 | return matches; | ||
1037 | }; | ||
1038 | |||
1039 | /** | ||
1040 | * Turns all URLs in the code into <a/> tags. | ||
1041 | * @param {String} code Input code. | ||
1042 | * @return {String} Returns code with </a> tags. | ||
1043 | */ | ||
1044 | function processUrls(code) | ||
1045 | { | ||
1046 | var gt = /(.*)((>|<).*)/; | ||
1047 | |||
1048 | return code.replace(sh.regexLib.url, function(m) | ||
1049 | { | ||
1050 | var suffix = '', | ||
1051 | match = null | ||
1052 | ; | ||
1053 | |||
1054 | // We include < and > in the URL for the common cases like <http://google.com> | ||
1055 | // The problem is that they get transformed into <http://google.com> | ||
1056 | // Where as > easily looks like part of the URL string. | ||
1057 | |||
1058 | if (match = gt.exec(m)) | ||
1059 | { | ||
1060 | m = match[1]; | ||
1061 | suffix = match[2]; | ||
1062 | } | ||
1063 | |||
1064 | return '<a href="' + m + '">' + m + '</a>' + suffix; | ||
1065 | }); | ||
1066 | }; | ||
1067 | |||
1068 | /** | ||
1069 | * Finds all <SCRIPT TYPE="syntaxhighlighter" /> elementss. | ||
1070 | * @return {Array} Returns array of all found SyntaxHighlighter tags. | ||
1071 | */ | ||
1072 | function getSyntaxHighlighterScriptTags() | ||
1073 | { | ||
1074 | var tags = document.getElementsByTagName('script'), | ||
1075 | result = [] | ||
1076 | ; | ||
1077 | |||
1078 | for (var i = 0; i < tags.length; i++) | ||
1079 | if (tags[i].type == 'syntaxhighlighter') | ||
1080 | result.push(tags[i]); | ||
1081 | |||
1082 | return result; | ||
1083 | }; | ||
1084 | |||
1085 | /** | ||
1086 | * Strips <![CDATA[]]> from <SCRIPT /> content because it should be used | ||
1087 | * there in most cases for XHTML compliance. | ||
1088 | * @param {String} original Input code. | ||
1089 | * @return {String} Returns code without leading <![CDATA[]]> tags. | ||
1090 | */ | ||
1091 | function stripCData(original) | ||
1092 | { | ||
1093 | var left = '<![CDATA[', | ||
1094 | right = ']]>', | ||
1095 | // for some reason IE inserts some leading blanks here | ||
1096 | copy = trim(original), | ||
1097 | changed = false, | ||
1098 | leftLength = left.length, | ||
1099 | rightLength = right.length | ||
1100 | ; | ||
1101 | |||
1102 | if (copy.indexOf(left) == 0) | ||
1103 | { | ||
1104 | copy = copy.substring(leftLength); | ||
1105 | changed = true; | ||
1106 | } | ||
1107 | |||
1108 | var copyLength = copy.length; | ||
1109 | |||
1110 | if (copy.indexOf(right) == copyLength - rightLength) | ||
1111 | { | ||
1112 | copy = copy.substring(0, copyLength - rightLength); | ||
1113 | changed = true; | ||
1114 | } | ||
1115 | |||
1116 | return changed ? copy : original; | ||
1117 | }; | ||
1118 | |||
1119 | |||
1120 | /** | ||
1121 | * Quick code mouse double click handler. | ||
1122 | */ | ||
1123 | function quickCodeHandler(e) | ||
1124 | { | ||
1125 | var target = e.target, | ||
1126 | highlighterDiv = findParentElement(target, '.syntaxhighlighter'), | ||
1127 | container = findParentElement(target, '.container'), | ||
1128 | textarea = document.createElement('textarea'), | ||
1129 | highlighter | ||
1130 | ; | ||
1131 | |||
1132 | if (!container || !highlighterDiv || findElement(container, 'textarea')) | ||
1133 | return; | ||
1134 | |||
1135 | highlighter = getHighlighterById(highlighterDiv.id); | ||
1136 | |||
1137 | // add source class name | ||
1138 | addClass(highlighterDiv, 'source'); | ||
1139 | |||
1140 | // Have to go over each line and grab it's text, can't just do it on the | ||
1141 | // container because Firefox loses all \n where as Webkit doesn't. | ||
1142 | var lines = container.childNodes, | ||
1143 | code = [] | ||
1144 | ; | ||
1145 | |||
1146 | for (var i = 0; i < lines.length; i++) | ||
1147 | code.push(lines[i].innerText || lines[i].textContent); | ||
1148 | |||
1149 | // using \r instead of \r or \r\n makes this work equally well on IE, FF and Webkit | ||
1150 | code = code.join('\r'); | ||
1151 | |||
1152 | // inject <textarea/> tag | ||
1153 | textarea.appendChild(document.createTextNode(code)); | ||
1154 | container.appendChild(textarea); | ||
1155 | |||
1156 | // preselect all text | ||
1157 | textarea.focus(); | ||
1158 | textarea.select(); | ||
1159 | |||
1160 | // set up handler for lost focus | ||
1161 | attachEvent(textarea, 'blur', function(e) | ||
1162 | { | ||
1163 | textarea.parentNode.removeChild(textarea); | ||
1164 | removeClass(highlighterDiv, 'source'); | ||
1165 | }); | ||
1166 | }; | ||
1167 | |||
1168 | /** | ||
1169 | * Match object. | ||
1170 | */ | ||
1171 | sh.Match = function(value, index, css) | ||
1172 | { | ||
1173 | this.value = value; | ||
1174 | this.index = index; | ||
1175 | this.length = value.length; | ||
1176 | this.css = css; | ||
1177 | this.brushName = null; | ||
1178 | }; | ||
1179 | |||
1180 | sh.Match.prototype.toString = function() | ||
1181 | { | ||
1182 | return this.value; | ||
1183 | }; | ||
1184 | |||
1185 | /** | ||
1186 | * Simulates HTML code with a scripting language embedded. | ||
1187 | * | ||
1188 | * @param {String} scriptBrushName Brush name of the scripting language. | ||
1189 | */ | ||
1190 | sh.HtmlScript = function(scriptBrushName) | ||
1191 | { | ||
1192 | var brushClass = findBrush(scriptBrushName), | ||
1193 | scriptBrush, | ||
1194 | xmlBrush = new sh.brushes.Xml(), | ||
1195 | bracketsRegex = null, | ||
1196 | ref = this, | ||
1197 | methodsToExpose = 'getDiv getHtml init'.split(' ') | ||
1198 | ; | ||
1199 | |||
1200 | if (brushClass == null) | ||
1201 | return; | ||
1202 | |||
1203 | scriptBrush = new brushClass(); | ||
1204 | |||
1205 | for(var i = 0; i < methodsToExpose.length; i++) | ||
1206 | // make a closure so we don't lose the name after i changes | ||
1207 | (function() { | ||
1208 | var name = methodsToExpose[i]; | ||
1209 | |||
1210 | ref[name] = function() | ||
1211 | { | ||
1212 | return xmlBrush[name].apply(xmlBrush, arguments); | ||
1213 | }; | ||
1214 | })(); | ||
1215 | |||
1216 | if (scriptBrush.htmlScript == null) | ||
1217 | { | ||
1218 | alert(sh.config.strings.brushNotHtmlScript + scriptBrushName); | ||
1219 | return; | ||
1220 | } | ||
1221 | |||
1222 | xmlBrush.regexList.push( | ||
1223 | { regex: scriptBrush.htmlScript.code, func: process } | ||
1224 | ); | ||
1225 | |||
1226 | function offsetMatches(matches, offset) | ||
1227 | { | ||
1228 | for (var j = 0; j < matches.length; j++) | ||
1229 | matches[j].index += offset; | ||
1230 | } | ||
1231 | |||
1232 | function process(match, info) | ||
1233 | { | ||
1234 | var code = match.code, | ||
1235 | matches = [], | ||
1236 | regexList = scriptBrush.regexList, | ||
1237 | offset = match.index + match.left.length, | ||
1238 | htmlScript = scriptBrush.htmlScript, | ||
1239 | result | ||
1240 | ; | ||
1241 | |||
1242 | // add all matches from the code | ||
1243 | for (var i = 0; i < regexList.length; i++) | ||
1244 | { | ||
1245 | result = getMatches(code, regexList[i]); | ||
1246 | offsetMatches(result, offset); | ||
1247 | matches = matches.concat(result); | ||
1248 | } | ||
1249 | |||
1250 | // add left script bracket | ||
1251 | if (htmlScript.left != null && match.left != null) | ||
1252 | { | ||
1253 | result = getMatches(match.left, htmlScript.left); | ||
1254 | offsetMatches(result, match.index); | ||
1255 | matches = matches.concat(result); | ||
1256 | } | ||
1257 | |||
1258 | // add right script bracket | ||
1259 | if (htmlScript.right != null && match.right != null) | ||
1260 | { | ||
1261 | result = getMatches(match.right, htmlScript.right); | ||
1262 | offsetMatches(result, match.index + match[0].lastIndexOf(match.right)); | ||
1263 | matches = matches.concat(result); | ||
1264 | } | ||
1265 | |||
1266 | for (var j = 0; j < matches.length; j++) | ||
1267 | matches[j].brushName = brushClass.brushName; | ||
1268 | |||
1269 | return matches; | ||
1270 | } | ||
1271 | }; | ||
1272 | |||
1273 | /** | ||
1274 | * Main Highlither class. | ||
1275 | * @constructor | ||
1276 | */ | ||
1277 | sh.Highlighter = function() | ||
1278 | { | ||
1279 | // not putting any code in here because of the prototype inheritance | ||
1280 | }; | ||
1281 | |||
1282 | sh.Highlighter.prototype = { | ||
1283 | /** | ||
1284 | * Returns value of the parameter passed to the highlighter. | ||
1285 | * @param {String} name Name of the parameter. | ||
1286 | * @param {Object} defaultValue Default value. | ||
1287 | * @return {Object} Returns found value or default value otherwise. | ||
1288 | */ | ||
1289 | getParam: function(name, defaultValue) | ||
1290 | { | ||
1291 | var result = this.params[name]; | ||
1292 | return toBoolean(result == null ? defaultValue : result); | ||
1293 | }, | ||
1294 | |||
1295 | /** | ||
1296 | * Shortcut to document.createElement(). | ||
1297 | * @param {String} name Name of the element to create (DIV, A, etc). | ||
1298 | * @return {HTMLElement} Returns new HTML element. | ||
1299 | */ | ||
1300 | create: function(name) | ||
1301 | { | ||
1302 | return document.createElement(name); | ||
1303 | }, | ||
1304 | |||
1305 | /** | ||
1306 | * Applies all regular expression to the code and stores all found | ||
1307 | * matches in the `this.matches` array. | ||
1308 | * @param {Array} regexList List of regular expressions. | ||
1309 | * @param {String} code Source code. | ||
1310 | * @return {Array} Returns list of matches. | ||
1311 | */ | ||
1312 | findMatches: function(regexList, code) | ||
1313 | { | ||
1314 | var result = []; | ||
1315 | |||
1316 | if (regexList != null) | ||
1317 | for (var i = 0; i < regexList.length; i++) | ||
1318 | // BUG: length returns len+1 for array if methods added to prototype chain ([email protected]) | ||
1319 | if (typeof (regexList[i]) == "object") | ||
1320 | result = result.concat(getMatches(code, regexList[i])); | ||
1321 | |||
1322 | // sort and remove nested the matches | ||
1323 | return this.removeNestedMatches(result.sort(matchesSortCallback)); | ||
1324 | }, | ||
1325 | |||
1326 | /** | ||
1327 | * Checks to see if any of the matches are inside of other matches. | ||
1328 | * This process would get rid of highligted strings inside comments, | ||
1329 | * keywords inside strings and so on. | ||
1330 | */ | ||
1331 | removeNestedMatches: function(matches) | ||
1332 | { | ||
1333 | // Optimized by Jose Prado (http://joseprado.com) | ||
1334 | for (var i = 0; i < matches.length; i++) | ||
1335 | { | ||
1336 | if (matches[i] === null) | ||
1337 | continue; | ||
1338 | |||
1339 | var itemI = matches[i], | ||
1340 | itemIEndPos = itemI.index + itemI.length | ||
1341 | ; | ||
1342 | |||
1343 | for (var j = i + 1; j < matches.length && matches[i] !== null; j++) | ||
1344 | { | ||
1345 | var itemJ = matches[j]; | ||
1346 | |||
1347 | if (itemJ === null) | ||
1348 | continue; | ||
1349 | else if (itemJ.index > itemIEndPos) | ||
1350 | break; | ||
1351 | else if (itemJ.index == itemI.index && itemJ.length > itemI.length) | ||
1352 | matches[i] = null; | ||
1353 | else if (itemJ.index >= itemI.index && itemJ.index < itemIEndPos) | ||
1354 | matches[j] = null; | ||
1355 | } | ||
1356 | } | ||
1357 | |||
1358 | return matches; | ||
1359 | }, | ||
1360 | |||
1361 | /** | ||
1362 | * Creates an array containing integer line numbers starting from the 'first-line' param. | ||
1363 | * @return {Array} Returns array of integers. | ||
1364 | */ | ||
1365 | figureOutLineNumbers: function(code) | ||
1366 | { | ||
1367 | var lines = [], | ||
1368 | firstLine = parseInt(this.getParam('first-line')) | ||
1369 | ; | ||
1370 | |||
1371 | eachLine(code, function(line, index) | ||
1372 | { | ||
1373 | lines.push(index + firstLine); | ||
1374 | }); | ||
1375 | |||
1376 | return lines; | ||
1377 | }, | ||
1378 | |||
1379 | /** | ||
1380 | * Determines if specified line number is in the highlighted list. | ||
1381 | */ | ||
1382 | isLineHighlighted: function(lineNumber) | ||
1383 | { | ||
1384 | var list = this.getParam('highlight', []); | ||
1385 | |||
1386 | if (typeof(list) != 'object' && list.push == null) | ||
1387 | list = [ list ]; | ||
1388 | |||
1389 | return indexOf(list, lineNumber.toString()) != -1; | ||
1390 | }, | ||
1391 | |||
1392 | /** | ||
1393 | * Generates HTML markup for a single line of code while determining alternating line style. | ||
1394 | * @param {Integer} lineNumber Line number. | ||
1395 | * @param {String} code Line HTML markup. | ||
1396 | * @return {String} Returns HTML markup. | ||
1397 | */ | ||
1398 | getLineHtml: function(lineIndex, lineNumber, code) | ||
1399 | { | ||
1400 | var classes = [ | ||
1401 | 'line', | ||
1402 | 'number' + lineNumber, | ||
1403 | 'index' + lineIndex, | ||
1404 | 'alt' + (lineNumber % 2 == 0 ? 1 : 2).toString() | ||
1405 | ]; | ||
1406 | |||
1407 | if (this.isLineHighlighted(lineNumber)) | ||
1408 | classes.push('highlighted'); | ||
1409 | |||
1410 | if (lineNumber == 0) | ||
1411 | classes.push('break'); | ||
1412 | |||
1413 | return '<div class="' + classes.join(' ') + '">' + code + '</div>'; | ||
1414 | }, | ||
1415 | |||
1416 | /** | ||
1417 | * Generates HTML markup for line number column. | ||
1418 | * @param {String} code Complete code HTML markup. | ||
1419 | * @param {Array} lineNumbers Calculated line numbers. | ||
1420 | * @return {String} Returns HTML markup. | ||
1421 | */ | ||
1422 | getLineNumbersHtml: function(code, lineNumbers) | ||
1423 | { | ||
1424 | var html = '', | ||
1425 | count = splitLines(code).length, | ||
1426 | firstLine = parseInt(this.getParam('first-line')), | ||
1427 | pad = this.getParam('pad-line-numbers') | ||
1428 | ; | ||
1429 | |||
1430 | if (pad == true) | ||
1431 | pad = (firstLine + count - 1).toString().length; | ||
1432 | else if (isNaN(pad) == true) | ||
1433 | pad = 0; | ||
1434 | |||
1435 | for (var i = 0; i < count; i++) | ||
1436 | { | ||
1437 | var lineNumber = lineNumbers ? lineNumbers[i] : firstLine + i, | ||
1438 | code = lineNumber == 0 ? sh.config.space : padNumber(lineNumber, pad) | ||
1439 | ; | ||
1440 | |||
1441 | html += this.getLineHtml(i, lineNumber, code); | ||
1442 | } | ||
1443 | |||
1444 | return html; | ||
1445 | }, | ||
1446 | |||
1447 | /** | ||
1448 | * Splits block of text into individual DIV lines. | ||
1449 | * @param {String} code Code to highlight. | ||
1450 | * @param {Array} lineNumbers Calculated line numbers. | ||
1451 | * @return {String} Returns highlighted code in HTML form. | ||
1452 | */ | ||
1453 | getCodeLinesHtml: function(html, lineNumbers) | ||
1454 | { | ||
1455 | html = trim(html); | ||
1456 | |||
1457 | var lines = splitLines(html), | ||
1458 | padLength = this.getParam('pad-line-numbers'), | ||
1459 | firstLine = parseInt(this.getParam('first-line')), | ||
1460 | html = '', | ||
1461 | brushName = this.getParam('brush') | ||
1462 | ; | ||
1463 | |||
1464 | for (var i = 0; i < lines.length; i++) | ||
1465 | { | ||
1466 | var line = lines[i], | ||
1467 | indent = /^( |\s)+/.exec(line), | ||
1468 | spaces = null, | ||
1469 | lineNumber = lineNumbers ? lineNumbers[i] : firstLine + i; | ||
1470 | ; | ||
1471 | |||
1472 | if (indent != null) | ||
1473 | { | ||
1474 | spaces = indent[0].toString(); | ||
1475 | line = line.substr(spaces.length); | ||
1476 | spaces = spaces.replace(' ', sh.config.space); | ||
1477 | } | ||
1478 | |||
1479 | line = trim(line); | ||
1480 | |||
1481 | if (line.length == 0) | ||
1482 | line = sh.config.space; | ||
1483 | |||
1484 | html += this.getLineHtml( | ||
1485 | i, | ||
1486 | lineNumber, | ||
1487 | (spaces != null ? '<code class="' + brushName + ' spaces">' + spaces + '</code>' : '') + line | ||
1488 | ); | ||
1489 | } | ||
1490 | |||
1491 | return html; | ||
1492 | }, | ||
1493 | |||
1494 | /** | ||
1495 | * Returns HTML for the table title or empty string if title is null. | ||
1496 | */ | ||
1497 | getTitleHtml: function(title) | ||
1498 | { | ||
1499 | return title ? '<caption>' + title + '</caption>' : ''; | ||
1500 | }, | ||
1501 | |||
1502 | /** | ||
1503 | * Finds all matches in the source code. | ||
1504 | * @param {String} code Source code to process matches in. | ||
1505 | * @param {Array} matches Discovered regex matches. | ||
1506 | * @return {String} Returns formatted HTML with processed mathes. | ||
1507 | */ | ||
1508 | getMatchesHtml: function(code, matches) | ||
1509 | { | ||
1510 | var pos = 0, | ||
1511 | result = '', | ||
1512 | brushName = this.getParam('brush', '') | ||
1513 | ; | ||
1514 | |||
1515 | function getBrushNameCss(match) | ||
1516 | { | ||
1517 | var result = match ? (match.brushName || brushName) : brushName; | ||
1518 | return result ? result + ' ' : ''; | ||
1519 | }; | ||
1520 | |||
1521 | // Finally, go through the final list of matches and pull the all | ||
1522 | // together adding everything in between that isn't a match. | ||
1523 | for (var i = 0; i < matches.length; i++) | ||
1524 | { | ||
1525 | var match = matches[i], | ||
1526 | matchBrushName | ||
1527 | ; | ||
1528 | |||
1529 | if (match === null || match.length === 0) | ||
1530 | continue; | ||
1531 | |||
1532 | matchBrushName = getBrushNameCss(match); | ||
1533 | |||
1534 | result += wrapLinesWithCode(code.substr(pos, match.index - pos), matchBrushName + 'plain') | ||
1535 | + wrapLinesWithCode(match.value, matchBrushName + match.css) | ||
1536 | ; | ||
1537 | |||
1538 | pos = match.index + match.length + (match.offset || 0); | ||
1539 | } | ||
1540 | |||
1541 | // don't forget to add whatever's remaining in the string | ||
1542 | result += wrapLinesWithCode(code.substr(pos), getBrushNameCss() + 'plain'); | ||
1543 | |||
1544 | return result; | ||
1545 | }, | ||
1546 | |||
1547 | /** | ||
1548 | * Generates HTML markup for the whole syntax highlighter. | ||
1549 | * @param {String} code Source code. | ||
1550 | * @return {String} Returns HTML markup. | ||
1551 | */ | ||
1552 | getHtml: function(code) | ||
1553 | { | ||
1554 | var html = '', | ||
1555 | classes = [ 'syntaxhighlighter' ], | ||
1556 | tabSize, | ||
1557 | matches, | ||
1558 | lineNumbers | ||
1559 | ; | ||
1560 | |||
1561 | // process light mode | ||
1562 | if (this.getParam('light') == true) | ||
1563 | this.params.toolbar = this.params.gutter = false; | ||
1564 | |||
1565 | className = 'syntaxhighlighter'; | ||
1566 | |||
1567 | if (this.getParam('collapse') == true) | ||
1568 | classes.push('collapsed'); | ||
1569 | |||
1570 | if ((gutter = this.getParam('gutter')) == false) | ||
1571 | classes.push('nogutter'); | ||
1572 | |||
1573 | // add custom user style name | ||
1574 | classes.push(this.getParam('class-name')); | ||
1575 | |||
1576 | // add brush alias to the class name for custom CSS | ||
1577 | classes.push(this.getParam('brush')); | ||
1578 | |||
1579 | code = trimFirstAndLastLines(code) | ||
1580 | .replace(/\r/g, ' ') // IE lets these buggers through | ||
1581 | ; | ||
1582 | |||
1583 | tabSize = this.getParam('tab-size'); | ||
1584 | |||
1585 | // replace tabs with spaces | ||
1586 | code = this.getParam('smart-tabs') == true | ||
1587 | ? processSmartTabs(code, tabSize) | ||
1588 | : processTabs(code, tabSize) | ||
1589 | ; | ||
1590 | |||
1591 | // unindent code by the common indentation | ||
1592 | code = unindent(code); | ||
1593 | |||
1594 | if (gutter) | ||
1595 | lineNumbers = this.figureOutLineNumbers(code); | ||
1596 | |||
1597 | // find matches in the code using brushes regex list | ||
1598 | matches = this.findMatches(this.regexList, code); | ||
1599 | // processes found matches into the html | ||
1600 | html = this.getMatchesHtml(code, matches); | ||
1601 | // finally, split all lines so that they wrap well | ||
1602 | html = this.getCodeLinesHtml(html, lineNumbers); | ||
1603 | |||
1604 | // finally, process the links | ||
1605 | if (this.getParam('auto-links')) | ||
1606 | html = processUrls(html); | ||
1607 | |||
1608 | if (typeof(navigator) != 'undefined' && navigator.userAgent && navigator.userAgent.match(/MSIE/)) | ||
1609 | classes.push('ie'); | ||
1610 | |||
1611 | html = | ||
1612 | '<div id="' + getHighlighterId(this.id) + '" class="' + classes.join(' ') + '">' | ||
1613 | + (this.getParam('toolbar') ? sh.toolbar.getHtml(this) : '') | ||
1614 | + '<table border="0" cellpadding="0" cellspacing="0">' | ||
1615 | + this.getTitleHtml(this.getParam('title')) | ||
1616 | + '<tbody>' | ||
1617 | + '<tr>' | ||
1618 | + (gutter ? '<td class="gutter">' + this.getLineNumbersHtml(code) + '</td>' : '') | ||
1619 | + '<td class="code">' | ||
1620 | + '<div class="container">' | ||
1621 | + html | ||
1622 | + '</div>' | ||
1623 | + '</td>' | ||
1624 | + '</tr>' | ||
1625 | + '</tbody>' | ||
1626 | + '</table>' | ||
1627 | + '</div>' | ||
1628 | ; | ||
1629 | |||
1630 | return html; | ||
1631 | }, | ||
1632 | |||
1633 | /** | ||
1634 | * Highlights the code and returns complete HTML. | ||
1635 | * @param {String} code Code to highlight. | ||
1636 | * @return {Element} Returns container DIV element with all markup. | ||
1637 | */ | ||
1638 | getDiv: function(code) | ||
1639 | { | ||
1640 | if (code === null) | ||
1641 | code = ''; | ||
1642 | |||
1643 | this.code = code; | ||
1644 | |||
1645 | var div = this.create('div'); | ||
1646 | |||
1647 | // create main HTML | ||
1648 | div.innerHTML = this.getHtml(code); | ||
1649 | |||
1650 | // set up click handlers | ||
1651 | if (this.getParam('toolbar')) | ||
1652 | attachEvent(findElement(div, '.toolbar'), 'click', sh.toolbar.handler); | ||
1653 | |||
1654 | if (this.getParam('quick-code')) | ||
1655 | attachEvent(findElement(div, '.code'), 'dblclick', quickCodeHandler); | ||
1656 | |||
1657 | return div; | ||
1658 | }, | ||
1659 | |||
1660 | /** | ||
1661 | * Initializes the highlighter/brush. | ||
1662 | * | ||
1663 | * Constructor isn't used for initialization so that nothing executes during necessary | ||
1664 | * `new SyntaxHighlighter.Highlighter()` call when setting up brush inheritence. | ||
1665 | * | ||
1666 | * @param {Hash} params Highlighter parameters. | ||
1667 | */ | ||
1668 | init: function(params) | ||
1669 | { | ||
1670 | this.id = guid(); | ||
1671 | |||
1672 | // register this instance in the highlighters list | ||
1673 | storeHighlighter(this); | ||
1674 | |||
1675 | // local params take precedence over defaults | ||
1676 | this.params = merge(sh.defaults, params || {}) | ||
1677 | |||
1678 | // process light mode | ||
1679 | if (this.getParam('light') == true) | ||
1680 | this.params.toolbar = this.params.gutter = false; | ||
1681 | }, | ||
1682 | |||
1683 | /** | ||
1684 | * Converts space separated list of keywords into a regular expression string. | ||
1685 | * @param {String} str Space separated keywords. | ||
1686 | * @return {String} Returns regular expression string. | ||
1687 | */ | ||
1688 | getKeywords: function(str) | ||
1689 | { | ||
1690 | str = str | ||
1691 | .replace(/^\s+|\s+$/g, '') | ||
1692 | .replace(/\s+/g, '|') | ||
1693 | ; | ||
1694 | |||
1695 | return '\\b(?:' + str + ')\\b'; | ||
1696 | }, | ||
1697 | |||
1698 | /** | ||
1699 | * Makes a brush compatible with the `html-script` functionality. | ||
1700 | * @param {Object} regexGroup Object containing `left` and `right` regular expressions. | ||
1701 | */ | ||
1702 | forHtmlScript: function(regexGroup) | ||
1703 | { | ||
1704 | this.htmlScript = { | ||
1705 | left : { regex: regexGroup.left, css: 'script' }, | ||
1706 | right : { regex: regexGroup.right, css: 'script' }, | ||
1707 | code : new XRegExp( | ||
1708 | "(?<left>" + regexGroup.left.source + ")" + | ||
1709 | "(?<code>.*?)" + | ||
1710 | "(?<right>" + regexGroup.right.source + ")", | ||
1711 | "sgi" | ||
1712 | ) | ||
1713 | }; | ||
1714 | } | ||
1715 | }; // end of Highlighter | ||
1716 | |||
1717 | return sh; | ||
1718 | }(); // end of anonymous function | ||
1719 | |||
1720 | // CommonJS | ||
1721 | typeof(exports) != 'undefined' ? exports['SyntaxHighlighter'] = SyntaxHighlighter : null; | ||
diff --git a/Blocks/syntax/src/shLegacy.js b/Blocks/syntax/src/shLegacy.js new file mode 100644 index 0000000..36951c9 --- /dev/null +++ b/Blocks/syntax/src/shLegacy.js | |||
@@ -0,0 +1,157 @@ | |||
1 | /** | ||
2 | * SyntaxHighlighter | ||
3 | * http://alexgorbatchev.com/SyntaxHighlighter | ||
4 | * | ||
5 | * SyntaxHighlighter is donationware. If you are using it, please donate. | ||
6 | * http://alexgorbatchev.com/SyntaxHighlighter/donate.html | ||
7 | * | ||
8 | * @version | ||
9 | * 3.0.83 (July 02 2010) | ||
10 | * | ||
11 | * @copyright | ||
12 | * Copyright (C) 2004-2010 Alex Gorbatchev. | ||
13 | * | ||
14 | * @license | ||
15 | * Dual licensed under the MIT and GPL licenses. | ||
16 | */ | ||
17 | var dp = { | ||
18 | SyntaxHighlighter : {} | ||
19 | }; | ||
20 | |||
21 | dp.SyntaxHighlighter = { | ||
22 | parseParams: function( | ||
23 | input, | ||
24 | showGutter, | ||
25 | showControls, | ||
26 | collapseAll, | ||
27 | firstLine, | ||
28 | showColumns | ||
29 | ) | ||
30 | { | ||
31 | function getValue(list, name) | ||
32 | { | ||
33 | var regex = new XRegExp('^' + name + '\\[(?<value>\\w+)\\]$', 'gi'), | ||
34 | match = null | ||
35 | ; | ||
36 | |||
37 | for (var i = 0; i < list.length; i++) | ||
38 | if ((match = regex.exec(list[i])) != null) | ||
39 | return match.value; | ||
40 | |||
41 | return null; | ||
42 | }; | ||
43 | |||
44 | function defaultValue(value, def) | ||
45 | { | ||
46 | return value != null ? value : def; | ||
47 | }; | ||
48 | |||
49 | function asString(value) | ||
50 | { | ||
51 | return value != null ? value.toString() : null; | ||
52 | }; | ||
53 | |||
54 | var parts = input.split(':'), | ||
55 | brushName = parts[0], | ||
56 | options = {}, | ||
57 | straight = { 'true' : true } | ||
58 | reverse = { 'true' : false }, | ||
59 | result = null, | ||
60 | defaults = SyntaxHighlighter.defaults | ||
61 | ; | ||
62 | |||
63 | for (var i in parts) | ||
64 | options[parts[i]] = 'true'; | ||
65 | |||
66 | showGutter = asString(defaultValue(showGutter, defaults.gutter)); | ||
67 | showControls = asString(defaultValue(showControls, defaults.toolbar)); | ||
68 | collapseAll = asString(defaultValue(collapseAll, defaults.collapse)); | ||
69 | showColumns = asString(defaultValue(showColumns, defaults.ruler)); | ||
70 | firstLine = asString(defaultValue(firstLine, defaults['first-line'])); | ||
71 | |||
72 | return { | ||
73 | brush : brushName, | ||
74 | gutter : defaultValue(reverse[options.nogutter], showGutter), | ||
75 | toolbar : defaultValue(reverse[options.nocontrols], showControls), | ||
76 | collapse : defaultValue(straight[options.collapse], collapseAll), | ||
77 | // ruler : defaultValue(straight[options.showcolumns], showColumns), | ||
78 | 'first-line' : defaultValue(getValue(parts, 'firstline'), firstLine) | ||
79 | }; | ||
80 | }, | ||
81 | |||
82 | HighlightAll: function( | ||
83 | name, | ||
84 | showGutter /* optional */, | ||
85 | showControls /* optional */, | ||
86 | collapseAll /* optional */, | ||
87 | firstLine /* optional */, | ||
88 | showColumns /* optional */ | ||
89 | ) | ||
90 | { | ||
91 | function findValue() | ||
92 | { | ||
93 | var a = arguments; | ||
94 | |||
95 | for (var i = 0; i < a.length; i++) | ||
96 | { | ||
97 | if (a[i] === null) | ||
98 | continue; | ||
99 | |||
100 | if (typeof(a[i]) == 'string' && a[i] != '') | ||
101 | return a[i] + ''; | ||
102 | |||
103 | if (typeof(a[i]) == 'object' && a[i].value != '') | ||
104 | return a[i].value + ''; | ||
105 | } | ||
106 | |||
107 | return null; | ||
108 | }; | ||
109 | |||
110 | function findTagsByName(list, name, tagName) | ||
111 | { | ||
112 | var tags = document.getElementsByTagName(tagName); | ||
113 | |||
114 | for (var i = 0; i < tags.length; i++) | ||
115 | if (tags[i].getAttribute('name') == name) | ||
116 | list.push(tags[i]); | ||
117 | } | ||
118 | |||
119 | var elements = [], | ||
120 | highlighter = null, | ||
121 | registered = {}, | ||
122 | propertyName = 'innerHTML' | ||
123 | ; | ||
124 | |||
125 | // for some reason IE doesn't find <pre/> by name, however it does see them just fine by tag name... | ||
126 | findTagsByName(elements, name, 'pre'); | ||
127 | findTagsByName(elements, name, 'textarea'); | ||
128 | |||
129 | if (elements.length === 0) | ||
130 | return; | ||
131 | |||
132 | for (var i = 0; i < elements.length; i++) | ||
133 | { | ||
134 | var element = elements[i], | ||
135 | params = findValue( | ||
136 | element.attributes['class'], element.className, | ||
137 | element.attributes['language'], element.language | ||
138 | ), | ||
139 | language = '' | ||
140 | ; | ||
141 | |||
142 | if (params === null) | ||
143 | continue; | ||
144 | |||
145 | params = dp.SyntaxHighlighter.parseParams( | ||
146 | params, | ||
147 | showGutter, | ||
148 | showControls, | ||
149 | collapseAll, | ||
150 | firstLine, | ||
151 | showColumns | ||
152 | ); | ||
153 | |||
154 | SyntaxHighlighter.highlight(params, element); | ||
155 | } | ||
156 | } | ||
157 | }; | ||
diff --git a/Blocks/syntax/styles/shCore.css b/Blocks/syntax/styles/shCore.css new file mode 100644 index 0000000..34f6864 --- /dev/null +++ b/Blocks/syntax/styles/shCore.css | |||
@@ -0,0 +1,226 @@ | |||
1 | /** | ||
2 | * SyntaxHighlighter | ||
3 | * http://alexgorbatchev.com/SyntaxHighlighter | ||
4 | * | ||
5 | * SyntaxHighlighter is donationware. If you are using it, please donate. | ||
6 | * http://alexgorbatchev.com/SyntaxHighlighter/donate.html | ||
7 | * | ||
8 | * @version | ||
9 | * 3.0.83 (July 02 2010) | ||
10 | * | ||
11 | * @copyright | ||
12 | * Copyright (C) 2004-2010 Alex Gorbatchev. | ||
13 | * | ||
14 | * @license | ||
15 | * Dual licensed under the MIT and GPL licenses. | ||
16 | */ | ||
17 | .syntaxhighlighter a, | ||
18 | .syntaxhighlighter div, | ||
19 | .syntaxhighlighter code, | ||
20 | .syntaxhighlighter table, | ||
21 | .syntaxhighlighter table td, | ||
22 | .syntaxhighlighter table tr, | ||
23 | .syntaxhighlighter table tbody, | ||
24 | .syntaxhighlighter table thead, | ||
25 | .syntaxhighlighter table caption, | ||
26 | .syntaxhighlighter textarea { | ||
27 | -moz-border-radius: 0 0 0 0 !important; | ||
28 | -webkit-border-radius: 0 0 0 0 !important; | ||
29 | background: none !important; | ||
30 | border: 0 !important; | ||
31 | bottom: auto !important; | ||
32 | float: none !important; | ||
33 | height: auto !important; | ||
34 | left: auto !important; | ||
35 | line-height: 1.1em !important; | ||
36 | margin: 0 !important; | ||
37 | outline: 0 !important; | ||
38 | overflow: visible !important; | ||
39 | padding: 0 !important; | ||
40 | position: static !important; | ||
41 | right: auto !important; | ||
42 | text-align: left !important; | ||
43 | top: auto !important; | ||
44 | vertical-align: baseline !important; | ||
45 | width: auto !important; | ||
46 | box-sizing: content-box !important; | ||
47 | font-family: "Consolas", "Bitstream Vera Sans Mono", "Courier New", Courier, monospace !important; | ||
48 | font-weight: normal !important; | ||
49 | font-style: normal !important; | ||
50 | font-size: 1em !important; | ||
51 | min-height: inherit !important; | ||
52 | min-height: auto !important; | ||
53 | } | ||
54 | |||
55 | .syntaxhighlighter { | ||
56 | width: 100% !important; | ||
57 | margin: 1em 0 1em 0 !important; | ||
58 | position: relative !important; | ||
59 | overflow: auto !important; | ||
60 | font-size: 1em !important; | ||
61 | } | ||
62 | .syntaxhighlighter.source { | ||
63 | overflow: hidden !important; | ||
64 | } | ||
65 | .syntaxhighlighter .bold { | ||
66 | font-weight: bold !important; | ||
67 | } | ||
68 | .syntaxhighlighter .italic { | ||
69 | font-style: italic !important; | ||
70 | } | ||
71 | .syntaxhighlighter .line { | ||
72 | white-space: pre !important; | ||
73 | } | ||
74 | .syntaxhighlighter table { | ||
75 | width: 100% !important; | ||
76 | } | ||
77 | .syntaxhighlighter table caption { | ||
78 | text-align: left !important; | ||
79 | padding: .5em 0 0.5em 1em !important; | ||
80 | } | ||
81 | .syntaxhighlighter table td.code { | ||
82 | width: 100% !important; | ||
83 | } | ||
84 | .syntaxhighlighter table td.code .container { | ||
85 | position: relative !important; | ||
86 | } | ||
87 | .syntaxhighlighter table td.code .container textarea { | ||
88 | box-sizing: border-box !important; | ||
89 | position: absolute !important; | ||
90 | left: 0 !important; | ||
91 | top: 0 !important; | ||
92 | width: 100% !important; | ||
93 | height: 100% !important; | ||
94 | border: none !important; | ||
95 | background: white !important; | ||
96 | padding-left: 1em !important; | ||
97 | overflow: hidden !important; | ||
98 | white-space: pre !important; | ||
99 | } | ||
100 | .syntaxhighlighter table td.gutter .line { | ||
101 | text-align: right !important; | ||
102 | padding: 0 0.5em 0 1em !important; | ||
103 | } | ||
104 | .syntaxhighlighter table td.code .line { | ||
105 | padding: 0 1em !important; | ||
106 | } | ||
107 | .syntaxhighlighter.nogutter td.code .container textarea, .syntaxhighlighter.nogutter td.code .line { | ||
108 | padding-left: 0em !important; | ||
109 | } | ||
110 | .syntaxhighlighter.show { | ||
111 | display: block !important; | ||
112 | } | ||
113 | .syntaxhighlighter.collapsed table { | ||
114 | display: none !important; | ||
115 | } | ||
116 | .syntaxhighlighter.collapsed .toolbar { | ||
117 | padding: 0.1em 0.8em 0em 0.8em !important; | ||
118 | font-size: 1em !important; | ||
119 | position: static !important; | ||
120 | width: auto !important; | ||
121 | height: auto !important; | ||
122 | } | ||
123 | .syntaxhighlighter.collapsed .toolbar span { | ||
124 | display: inline !important; | ||
125 | margin-right: 1em !important; | ||
126 | } | ||
127 | .syntaxhighlighter.collapsed .toolbar span a { | ||
128 | padding: 0 !important; | ||
129 | display: none !important; | ||
130 | } | ||
131 | .syntaxhighlighter.collapsed .toolbar span a.expandSource { | ||
132 | display: inline !important; | ||
133 | } | ||
134 | .syntaxhighlighter .toolbar { | ||
135 | position: absolute !important; | ||
136 | right: 1px !important; | ||
137 | top: 1px !important; | ||
138 | width: 11px !important; | ||
139 | height: 11px !important; | ||
140 | font-size: 10px !important; | ||
141 | z-index: 10 !important; | ||
142 | } | ||
143 | .syntaxhighlighter .toolbar span.title { | ||
144 | display: inline !important; | ||
145 | } | ||
146 | .syntaxhighlighter .toolbar a { | ||
147 | display: block !important; | ||
148 | text-align: center !important; | ||
149 | text-decoration: none !important; | ||
150 | padding-top: 1px !important; | ||
151 | } | ||
152 | .syntaxhighlighter .toolbar a.expandSource { | ||
153 | display: none !important; | ||
154 | } | ||
155 | .syntaxhighlighter.ie { | ||
156 | font-size: .9em !important; | ||
157 | padding: 1px 0 1px 0 !important; | ||
158 | } | ||
159 | .syntaxhighlighter.ie .toolbar { | ||
160 | line-height: 8px !important; | ||
161 | } | ||
162 | .syntaxhighlighter.ie .toolbar a { | ||
163 | padding-top: 0px !important; | ||
164 | } | ||
165 | .syntaxhighlighter.printing .line.alt1 .content, | ||
166 | .syntaxhighlighter.printing .line.alt2 .content, | ||
167 | .syntaxhighlighter.printing .line.highlighted .number, | ||
168 | .syntaxhighlighter.printing .line.highlighted.alt1 .content, | ||
169 | .syntaxhighlighter.printing .line.highlighted.alt2 .content { | ||
170 | background: none !important; | ||
171 | } | ||
172 | .syntaxhighlighter.printing .line .number { | ||
173 | color: #bbbbbb !important; | ||
174 | } | ||
175 | .syntaxhighlighter.printing .line .content { | ||
176 | color: black !important; | ||
177 | } | ||
178 | .syntaxhighlighter.printing .toolbar { | ||
179 | display: none !important; | ||
180 | } | ||
181 | .syntaxhighlighter.printing a { | ||
182 | text-decoration: none !important; | ||
183 | } | ||
184 | .syntaxhighlighter.printing .plain, .syntaxhighlighter.printing .plain a { | ||
185 | color: black !important; | ||
186 | } | ||
187 | .syntaxhighlighter.printing .comments, .syntaxhighlighter.printing .comments a { | ||
188 | color: #008200 !important; | ||
189 | } | ||
190 | .syntaxhighlighter.printing .string, .syntaxhighlighter.printing .string a { | ||
191 | color: blue !important; | ||
192 | } | ||
193 | .syntaxhighlighter.printing .keyword { | ||
194 | color: #006699 !important; | ||
195 | font-weight: bold !important; | ||
196 | } | ||
197 | .syntaxhighlighter.printing .preprocessor { | ||
198 | color: gray !important; | ||
199 | } | ||
200 | .syntaxhighlighter.printing .variable { | ||
201 | color: #aa7700 !important; | ||
202 | } | ||
203 | .syntaxhighlighter.printing .value { | ||
204 | color: #009900 !important; | ||
205 | } | ||
206 | .syntaxhighlighter.printing .functions { | ||
207 | color: #ff1493 !important; | ||
208 | } | ||
209 | .syntaxhighlighter.printing .constants { | ||
210 | color: #0066cc !important; | ||
211 | } | ||
212 | .syntaxhighlighter.printing .script { | ||
213 | font-weight: bold !important; | ||
214 | } | ||
215 | .syntaxhighlighter.printing .color1, .syntaxhighlighter.printing .color1 a { | ||
216 | color: gray !important; | ||
217 | } | ||
218 | .syntaxhighlighter.printing .color2, .syntaxhighlighter.printing .color2 a { | ||
219 | color: #ff1493 !important; | ||
220 | } | ||
221 | .syntaxhighlighter.printing .color3, .syntaxhighlighter.printing .color3 a { | ||
222 | color: red !important; | ||
223 | } | ||
224 | .syntaxhighlighter.printing .break, .syntaxhighlighter.printing .break a { | ||
225 | color: black !important; | ||
226 | } | ||
diff --git a/Blocks/syntax/styles/shCoreDefault.css b/Blocks/syntax/styles/shCoreDefault.css new file mode 100644 index 0000000..08f9e10 --- /dev/null +++ b/Blocks/syntax/styles/shCoreDefault.css | |||
@@ -0,0 +1,328 @@ | |||
1 | /** | ||
2 | * SyntaxHighlighter | ||
3 | * http://alexgorbatchev.com/SyntaxHighlighter | ||
4 | * | ||
5 | * SyntaxHighlighter is donationware. If you are using it, please donate. | ||
6 | * http://alexgorbatchev.com/SyntaxHighlighter/donate.html | ||
7 | * | ||
8 | * @version | ||
9 | * 3.0.83 (July 02 2010) | ||
10 | * | ||
11 | * @copyright | ||
12 | * Copyright (C) 2004-2010 Alex Gorbatchev. | ||
13 | * | ||
14 | * @license | ||
15 | * Dual licensed under the MIT and GPL licenses. | ||
16 | */ | ||
17 | .syntaxhighlighter a, | ||
18 | .syntaxhighlighter div, | ||
19 | .syntaxhighlighter code, | ||
20 | .syntaxhighlighter table, | ||
21 | .syntaxhighlighter table td, | ||
22 | .syntaxhighlighter table tr, | ||
23 | .syntaxhighlighter table tbody, | ||
24 | .syntaxhighlighter table thead, | ||
25 | .syntaxhighlighter table caption, | ||
26 | .syntaxhighlighter textarea { | ||
27 | -moz-border-radius: 0 0 0 0 !important; | ||
28 | -webkit-border-radius: 0 0 0 0 !important; | ||
29 | background: none !important; | ||
30 | border: 0 !important; | ||
31 | bottom: auto !important; | ||
32 | float: none !important; | ||
33 | height: auto !important; | ||
34 | left: auto !important; | ||
35 | line-height: 1.1em !important; | ||
36 | margin: 0 !important; | ||
37 | outline: 0 !important; | ||
38 | overflow: visible !important; | ||
39 | padding: 0 !important; | ||
40 | position: static !important; | ||
41 | right: auto !important; | ||
42 | text-align: left !important; | ||
43 | top: auto !important; | ||
44 | vertical-align: baseline !important; | ||
45 | width: auto !important; | ||
46 | box-sizing: content-box !important; | ||
47 | font-family: "Consolas", "Bitstream Vera Sans Mono", "Courier New", Courier, monospace !important; | ||
48 | font-weight: normal !important; | ||
49 | font-style: normal !important; | ||
50 | font-size: 1em !important; | ||
51 | min-height: inherit !important; | ||
52 | min-height: auto !important; | ||
53 | } | ||
54 | |||
55 | .syntaxhighlighter { | ||
56 | width: 100% !important; | ||
57 | margin: 1em 0 1em 0 !important; | ||
58 | position: relative !important; | ||
59 | overflow: auto !important; | ||
60 | font-size: 1em !important; | ||
61 | } | ||
62 | .syntaxhighlighter.source { | ||
63 | overflow: hidden !important; | ||
64 | } | ||
65 | .syntaxhighlighter .bold { | ||
66 | font-weight: bold !important; | ||
67 | } | ||
68 | .syntaxhighlighter .italic { | ||
69 | font-style: italic !important; | ||
70 | } | ||
71 | .syntaxhighlighter .line { | ||
72 | white-space: pre !important; | ||
73 | } | ||
74 | .syntaxhighlighter table { | ||
75 | width: 100% !important; | ||
76 | } | ||
77 | .syntaxhighlighter table caption { | ||
78 | text-align: left !important; | ||
79 | padding: .5em 0 0.5em 1em !important; | ||
80 | } | ||
81 | .syntaxhighlighter table td.code { | ||
82 | width: 100% !important; | ||
83 | } | ||
84 | .syntaxhighlighter table td.code .container { | ||
85 | position: relative !important; | ||
86 | } | ||
87 | .syntaxhighlighter table td.code .container textarea { | ||
88 | box-sizing: border-box !important; | ||
89 | position: absolute !important; | ||
90 | left: 0 !important; | ||
91 | top: 0 !important; | ||
92 | width: 100% !important; | ||
93 | height: 100% !important; | ||
94 | border: none !important; | ||
95 | background: white !important; | ||
96 | padding-left: 1em !important; | ||
97 | overflow: hidden !important; | ||
98 | white-space: pre !important; | ||
99 | } | ||
100 | .syntaxhighlighter table td.gutter .line { | ||
101 | text-align: right !important; | ||
102 | padding: 0 0.5em 0 1em !important; | ||
103 | } | ||
104 | .syntaxhighlighter table td.code .line { | ||
105 | padding: 0 1em !important; | ||
106 | } | ||
107 | .syntaxhighlighter.nogutter td.code .container textarea, .syntaxhighlighter.nogutter td.code .line { | ||
108 | padding-left: 0em !important; | ||
109 | } | ||
110 | .syntaxhighlighter.show { | ||
111 | display: block !important; | ||
112 | } | ||
113 | .syntaxhighlighter.collapsed table { | ||
114 | display: none !important; | ||
115 | } | ||
116 | .syntaxhighlighter.collapsed .toolbar { | ||
117 | padding: 0.1em 0.8em 0em 0.8em !important; | ||
118 | font-size: 1em !important; | ||
119 | position: static !important; | ||
120 | width: auto !important; | ||
121 | height: auto !important; | ||
122 | } | ||
123 | .syntaxhighlighter.collapsed .toolbar span { | ||
124 | display: inline !important; | ||
125 | margin-right: 1em !important; | ||
126 | } | ||
127 | .syntaxhighlighter.collapsed .toolbar span a { | ||
128 | padding: 0 !important; | ||
129 | display: none !important; | ||
130 | } | ||
131 | .syntaxhighlighter.collapsed .toolbar span a.expandSource { | ||
132 | display: inline !important; | ||
133 | } | ||
134 | .syntaxhighlighter .toolbar { | ||
135 | position: absolute !important; | ||
136 | right: 1px !important; | ||
137 | top: 1px !important; | ||
138 | width: 11px !important; | ||
139 | height: 11px !important; | ||
140 | font-size: 10px !important; | ||
141 | z-index: 10 !important; | ||
142 | } | ||
143 | .syntaxhighlighter .toolbar span.title { | ||
144 | display: inline !important; | ||
145 | } | ||
146 | .syntaxhighlighter .toolbar a { | ||
147 | display: block !important; | ||
148 | text-align: center !important; | ||
149 | text-decoration: none !important; | ||
150 | padding-top: 1px !important; | ||
151 | } | ||
152 | .syntaxhighlighter .toolbar a.expandSource { | ||
153 | display: none !important; | ||
154 | } | ||
155 | .syntaxhighlighter.ie { | ||
156 | font-size: .9em !important; | ||
157 | padding: 1px 0 1px 0 !important; | ||
158 | } | ||
159 | .syntaxhighlighter.ie .toolbar { | ||
160 | line-height: 8px !important; | ||
161 | } | ||
162 | .syntaxhighlighter.ie .toolbar a { | ||
163 | padding-top: 0px !important; | ||
164 | } | ||
165 | .syntaxhighlighter.printing .line.alt1 .content, | ||
166 | .syntaxhighlighter.printing .line.alt2 .content, | ||
167 | .syntaxhighlighter.printing .line.highlighted .number, | ||
168 | .syntaxhighlighter.printing .line.highlighted.alt1 .content, | ||
169 | .syntaxhighlighter.printing .line.highlighted.alt2 .content { | ||
170 | background: none !important; | ||
171 | } | ||
172 | .syntaxhighlighter.printing .line .number { | ||
173 | color: #bbbbbb !important; | ||
174 | } | ||
175 | .syntaxhighlighter.printing .line .content { | ||
176 | color: black !important; | ||
177 | } | ||
178 | .syntaxhighlighter.printing .toolbar { | ||
179 | display: none !important; | ||
180 | } | ||
181 | .syntaxhighlighter.printing a { | ||
182 | text-decoration: none !important; | ||
183 | } | ||
184 | .syntaxhighlighter.printing .plain, .syntaxhighlighter.printing .plain a { | ||
185 | color: black !important; | ||
186 | } | ||
187 | .syntaxhighlighter.printing .comments, .syntaxhighlighter.printing .comments a { | ||
188 | color: #008200 !important; | ||
189 | } | ||
190 | .syntaxhighlighter.printing .string, .syntaxhighlighter.printing .string a { | ||
191 | color: blue !important; | ||
192 | } | ||
193 | .syntaxhighlighter.printing .keyword { | ||
194 | color: #006699 !important; | ||
195 | font-weight: bold !important; | ||
196 | } | ||
197 | .syntaxhighlighter.printing .preprocessor { | ||
198 | color: gray !important; | ||
199 | } | ||
200 | .syntaxhighlighter.printing .variable { | ||
201 | color: #aa7700 !important; | ||
202 | } | ||
203 | .syntaxhighlighter.printing .value { | ||
204 | color: #009900 !important; | ||
205 | } | ||
206 | .syntaxhighlighter.printing .functions { | ||
207 | color: #ff1493 !important; | ||
208 | } | ||
209 | .syntaxhighlighter.printing .constants { | ||
210 | color: #0066cc !important; | ||
211 | } | ||
212 | .syntaxhighlighter.printing .script { | ||
213 | font-weight: bold !important; | ||
214 | } | ||
215 | .syntaxhighlighter.printing .color1, .syntaxhighlighter.printing .color1 a { | ||
216 | color: gray !important; | ||
217 | } | ||
218 | .syntaxhighlighter.printing .color2, .syntaxhighlighter.printing .color2 a { | ||
219 | color: #ff1493 !important; | ||
220 | } | ||
221 | .syntaxhighlighter.printing .color3, .syntaxhighlighter.printing .color3 a { | ||
222 | color: red !important; | ||
223 | } | ||
224 | .syntaxhighlighter.printing .break, .syntaxhighlighter.printing .break a { | ||
225 | color: black !important; | ||
226 | } | ||
227 | |||
228 | .syntaxhighlighter { | ||
229 | background-color: white !important; | ||
230 | } | ||
231 | .syntaxhighlighter .line.alt1 { | ||
232 | background-color: white !important; | ||
233 | } | ||
234 | .syntaxhighlighter .line.alt2 { | ||
235 | background-color: white !important; | ||
236 | } | ||
237 | .syntaxhighlighter .line.highlighted.alt1, .syntaxhighlighter .line.highlighted.alt2 { | ||
238 | background-color: #e0e0e0 !important; | ||
239 | } | ||
240 | .syntaxhighlighter .line.highlighted.number { | ||
241 | color: black !important; | ||
242 | } | ||
243 | .syntaxhighlighter table caption { | ||
244 | color: black !important; | ||
245 | } | ||
246 | .syntaxhighlighter .gutter { | ||
247 | color: #afafaf !important; | ||
248 | } | ||
249 | .syntaxhighlighter .gutter .line { | ||
250 | border-right: 3px solid #6ce26c !important; | ||
251 | } | ||
252 | .syntaxhighlighter .gutter .line.highlighted { | ||
253 | background-color: #6ce26c !important; | ||
254 | color: white !important; | ||
255 | } | ||
256 | .syntaxhighlighter.printing .line .content { | ||
257 | border: none !important; | ||
258 | } | ||
259 | .syntaxhighlighter.collapsed { | ||
260 | overflow: visible !important; | ||
261 | } | ||
262 | .syntaxhighlighter.collapsed .toolbar { | ||
263 | color: blue !important; | ||
264 | background: white !important; | ||
265 | border: 1px solid #6ce26c !important; | ||
266 | } | ||
267 | .syntaxhighlighter.collapsed .toolbar a { | ||
268 | color: blue !important; | ||
269 | } | ||
270 | .syntaxhighlighter.collapsed .toolbar a:hover { | ||
271 | color: red !important; | ||
272 | } | ||
273 | .syntaxhighlighter .toolbar { | ||
274 | color: white !important; | ||
275 | background: #6ce26c !important; | ||
276 | border: none !important; | ||
277 | } | ||
278 | .syntaxhighlighter .toolbar a { | ||
279 | color: white !important; | ||
280 | } | ||
281 | .syntaxhighlighter .toolbar a:hover { | ||
282 | color: black !important; | ||
283 | } | ||
284 | .syntaxhighlighter .plain, .syntaxhighlighter .plain a { | ||
285 | color: black !important; | ||
286 | } | ||
287 | .syntaxhighlighter .comments, .syntaxhighlighter .comments a { | ||
288 | color: #008200 !important; | ||
289 | } | ||
290 | .syntaxhighlighter .string, .syntaxhighlighter .string a { | ||
291 | color: blue !important; | ||
292 | } | ||
293 | .syntaxhighlighter .keyword { | ||
294 | color: #006699 !important; | ||
295 | } | ||
296 | .syntaxhighlighter .preprocessor { | ||
297 | color: gray !important; | ||
298 | } | ||
299 | .syntaxhighlighter .variable { | ||
300 | color: #aa7700 !important; | ||
301 | } | ||
302 | .syntaxhighlighter .value { | ||
303 | color: #009900 !important; | ||
304 | } | ||
305 | .syntaxhighlighter .functions { | ||
306 | color: #ff1493 !important; | ||
307 | } | ||
308 | .syntaxhighlighter .constants { | ||
309 | color: #0066cc !important; | ||
310 | } | ||
311 | .syntaxhighlighter .script { | ||
312 | font-weight: bold !important; | ||
313 | color: #006699 !important; | ||
314 | background-color: none !important; | ||
315 | } | ||
316 | .syntaxhighlighter .color1, .syntaxhighlighter .color1 a { | ||
317 | color: gray !important; | ||
318 | } | ||
319 | .syntaxhighlighter .color2, .syntaxhighlighter .color2 a { | ||
320 | color: #ff1493 !important; | ||
321 | } | ||
322 | .syntaxhighlighter .color3, .syntaxhighlighter .color3 a { | ||
323 | color: red !important; | ||
324 | } | ||
325 | |||
326 | .syntaxhighlighter .keyword { | ||
327 | font-weight: bold !important; | ||
328 | } | ||
diff --git a/Blocks/syntax/styles/shCoreDjango.css b/Blocks/syntax/styles/shCoreDjango.css new file mode 100644 index 0000000..1db1f70 --- /dev/null +++ b/Blocks/syntax/styles/shCoreDjango.css | |||
@@ -0,0 +1,331 @@ | |||
1 | /** | ||
2 | * SyntaxHighlighter | ||
3 | * http://alexgorbatchev.com/SyntaxHighlighter | ||
4 | * | ||
5 | * SyntaxHighlighter is donationware. If you are using it, please donate. | ||
6 | * http://alexgorbatchev.com/SyntaxHighlighter/donate.html | ||
7 | * | ||
8 | * @version | ||
9 | * 3.0.83 (July 02 2010) | ||
10 | * | ||
11 | * @copyright | ||
12 | * Copyright (C) 2004-2010 Alex Gorbatchev. | ||
13 | * | ||
14 | * @license | ||
15 | * Dual licensed under the MIT and GPL licenses. | ||
16 | */ | ||
17 | .syntaxhighlighter a, | ||
18 | .syntaxhighlighter div, | ||
19 | .syntaxhighlighter code, | ||
20 | .syntaxhighlighter table, | ||
21 | .syntaxhighlighter table td, | ||
22 | .syntaxhighlighter table tr, | ||
23 | .syntaxhighlighter table tbody, | ||
24 | .syntaxhighlighter table thead, | ||
25 | .syntaxhighlighter table caption, | ||
26 | .syntaxhighlighter textarea { | ||
27 | -moz-border-radius: 0 0 0 0 !important; | ||
28 | -webkit-border-radius: 0 0 0 0 !important; | ||
29 | background: none !important; | ||
30 | border: 0 !important; | ||
31 | bottom: auto !important; | ||
32 | float: none !important; | ||
33 | height: auto !important; | ||
34 | left: auto !important; | ||
35 | line-height: 1.1em !important; | ||
36 | margin: 0 !important; | ||
37 | outline: 0 !important; | ||
38 | overflow: visible !important; | ||
39 | padding: 0 !important; | ||
40 | position: static !important; | ||
41 | right: auto !important; | ||
42 | text-align: left !important; | ||
43 | top: auto !important; | ||
44 | vertical-align: baseline !important; | ||
45 | width: auto !important; | ||
46 | box-sizing: content-box !important; | ||
47 | font-family: "Consolas", "Bitstream Vera Sans Mono", "Courier New", Courier, monospace !important; | ||
48 | font-weight: normal !important; | ||
49 | font-style: normal !important; | ||
50 | font-size: 1em !important; | ||
51 | min-height: inherit !important; | ||
52 | min-height: auto !important; | ||
53 | } | ||
54 | |||
55 | .syntaxhighlighter { | ||
56 | width: 100% !important; | ||
57 | margin: 1em 0 1em 0 !important; | ||
58 | position: relative !important; | ||
59 | overflow: auto !important; | ||
60 | font-size: 1em !important; | ||
61 | } | ||
62 | .syntaxhighlighter.source { | ||
63 | overflow: hidden !important; | ||
64 | } | ||
65 | .syntaxhighlighter .bold { | ||
66 | font-weight: bold !important; | ||
67 | } | ||
68 | .syntaxhighlighter .italic { | ||
69 | font-style: italic !important; | ||
70 | } | ||
71 | .syntaxhighlighter .line { | ||
72 | white-space: pre !important; | ||
73 | } | ||
74 | .syntaxhighlighter table { | ||
75 | width: 100% !important; | ||
76 | } | ||
77 | .syntaxhighlighter table caption { | ||
78 | text-align: left !important; | ||
79 | padding: .5em 0 0.5em 1em !important; | ||
80 | } | ||
81 | .syntaxhighlighter table td.code { | ||
82 | width: 100% !important; | ||
83 | } | ||
84 | .syntaxhighlighter table td.code .container { | ||
85 | position: relative !important; | ||
86 | } | ||
87 | .syntaxhighlighter table td.code .container textarea { | ||
88 | box-sizing: border-box !important; | ||
89 | position: absolute !important; | ||
90 | left: 0 !important; | ||
91 | top: 0 !important; | ||
92 | width: 100% !important; | ||
93 | height: 100% !important; | ||
94 | border: none !important; | ||
95 | background: white !important; | ||
96 | padding-left: 1em !important; | ||
97 | overflow: hidden !important; | ||
98 | white-space: pre !important; | ||
99 | } | ||
100 | .syntaxhighlighter table td.gutter .line { | ||
101 | text-align: right !important; | ||
102 | padding: 0 0.5em 0 1em !important; | ||
103 | } | ||
104 | .syntaxhighlighter table td.code .line { | ||
105 | padding: 0 1em !important; | ||
106 | } | ||
107 | .syntaxhighlighter.nogutter td.code .container textarea, .syntaxhighlighter.nogutter td.code .line { | ||
108 | padding-left: 0em !important; | ||
109 | } | ||
110 | .syntaxhighlighter.show { | ||
111 | display: block !important; | ||
112 | } | ||
113 | .syntaxhighlighter.collapsed table { | ||
114 | display: none !important; | ||
115 | } | ||
116 | .syntaxhighlighter.collapsed .toolbar { | ||
117 | padding: 0.1em 0.8em 0em 0.8em !important; | ||
118 | font-size: 1em !important; | ||
119 | position: static !important; | ||
120 | width: auto !important; | ||
121 | height: auto !important; | ||
122 | } | ||
123 | .syntaxhighlighter.collapsed .toolbar span { | ||
124 | display: inline !important; | ||
125 | margin-right: 1em !important; | ||
126 | } | ||
127 | .syntaxhighlighter.collapsed .toolbar span a { | ||
128 | padding: 0 !important; | ||
129 | display: none !important; | ||
130 | } | ||
131 | .syntaxhighlighter.collapsed .toolbar span a.expandSource { | ||
132 | display: inline !important; | ||
133 | } | ||
134 | .syntaxhighlighter .toolbar { | ||
135 | position: absolute !important; | ||
136 | right: 1px !important; | ||
137 | top: 1px !important; | ||
138 | width: 11px !important; | ||
139 | height: 11px !important; | ||
140 | font-size: 10px !important; | ||
141 | z-index: 10 !important; | ||
142 | } | ||
143 | .syntaxhighlighter .toolbar span.title { | ||
144 | display: inline !important; | ||
145 | } | ||
146 | .syntaxhighlighter .toolbar a { | ||
147 | display: block !important; | ||
148 | text-align: center !important; | ||
149 | text-decoration: none !important; | ||
150 | padding-top: 1px !important; | ||
151 | } | ||
152 | .syntaxhighlighter .toolbar a.expandSource { | ||
153 | display: none !important; | ||
154 | } | ||
155 | .syntaxhighlighter.ie { | ||
156 | font-size: .9em !important; | ||
157 | padding: 1px 0 1px 0 !important; | ||
158 | } | ||
159 | .syntaxhighlighter.ie .toolbar { | ||
160 | line-height: 8px !important; | ||
161 | } | ||
162 | .syntaxhighlighter.ie .toolbar a { | ||
163 | padding-top: 0px !important; | ||
164 | } | ||
165 | .syntaxhighlighter.printing .line.alt1 .content, | ||
166 | .syntaxhighlighter.printing .line.alt2 .content, | ||
167 | .syntaxhighlighter.printing .line.highlighted .number, | ||
168 | .syntaxhighlighter.printing .line.highlighted.alt1 .content, | ||
169 | .syntaxhighlighter.printing .line.highlighted.alt2 .content { | ||
170 | background: none !important; | ||
171 | } | ||
172 | .syntaxhighlighter.printing .line .number { | ||
173 | color: #bbbbbb !important; | ||
174 | } | ||
175 | .syntaxhighlighter.printing .line .content { | ||
176 | color: black !important; | ||
177 | } | ||
178 | .syntaxhighlighter.printing .toolbar { | ||
179 | display: none !important; | ||
180 | } | ||
181 | .syntaxhighlighter.printing a { | ||
182 | text-decoration: none !important; | ||
183 | } | ||
184 | .syntaxhighlighter.printing .plain, .syntaxhighlighter.printing .plain a { | ||
185 | color: black !important; | ||
186 | } | ||
187 | .syntaxhighlighter.printing .comments, .syntaxhighlighter.printing .comments a { | ||
188 | color: #008200 !important; | ||
189 | } | ||
190 | .syntaxhighlighter.printing .string, .syntaxhighlighter.printing .string a { | ||
191 | color: blue !important; | ||
192 | } | ||
193 | .syntaxhighlighter.printing .keyword { | ||
194 | color: #006699 !important; | ||
195 | font-weight: bold !important; | ||
196 | } | ||
197 | .syntaxhighlighter.printing .preprocessor { | ||
198 | color: gray !important; | ||
199 | } | ||
200 | .syntaxhighlighter.printing .variable { | ||
201 | color: #aa7700 !important; | ||
202 | } | ||
203 | .syntaxhighlighter.printing .value { | ||
204 | color: #009900 !important; | ||
205 | } | ||
206 | .syntaxhighlighter.printing .functions { | ||
207 | color: #ff1493 !important; | ||
208 | } | ||
209 | .syntaxhighlighter.printing .constants { | ||
210 | color: #0066cc !important; | ||
211 | } | ||
212 | .syntaxhighlighter.printing .script { | ||
213 | font-weight: bold !important; | ||
214 | } | ||
215 | .syntaxhighlighter.printing .color1, .syntaxhighlighter.printing .color1 a { | ||
216 | color: gray !important; | ||
217 | } | ||
218 | .syntaxhighlighter.printing .color2, .syntaxhighlighter.printing .color2 a { | ||
219 | color: #ff1493 !important; | ||
220 | } | ||
221 | .syntaxhighlighter.printing .color3, .syntaxhighlighter.printing .color3 a { | ||
222 | color: red !important; | ||
223 | } | ||
224 | .syntaxhighlighter.printing .break, .syntaxhighlighter.printing .break a { | ||
225 | color: black !important; | ||
226 | } | ||
227 | |||
228 | .syntaxhighlighter { | ||
229 | background-color: #0a2b1d !important; | ||
230 | } | ||
231 | .syntaxhighlighter .line.alt1 { | ||
232 | background-color: #0a2b1d !important; | ||
233 | } | ||
234 | .syntaxhighlighter .line.alt2 { | ||
235 | background-color: #0a2b1d !important; | ||
236 | } | ||
237 | .syntaxhighlighter .line.highlighted.alt1, .syntaxhighlighter .line.highlighted.alt2 { | ||
238 | background-color: #233729 !important; | ||
239 | } | ||
240 | .syntaxhighlighter .line.highlighted.number { | ||
241 | color: white !important; | ||
242 | } | ||
243 | .syntaxhighlighter table caption { | ||
244 | color: #f8f8f8 !important; | ||
245 | } | ||
246 | .syntaxhighlighter .gutter { | ||
247 | color: #497958 !important; | ||
248 | } | ||
249 | .syntaxhighlighter .gutter .line { | ||
250 | border-right: 3px solid #41a83e !important; | ||
251 | } | ||
252 | .syntaxhighlighter .gutter .line.highlighted { | ||
253 | background-color: #41a83e !important; | ||
254 | color: #0a2b1d !important; | ||
255 | } | ||
256 | .syntaxhighlighter.printing .line .content { | ||
257 | border: none !important; | ||
258 | } | ||
259 | .syntaxhighlighter.collapsed { | ||
260 | overflow: visible !important; | ||
261 | } | ||
262 | .syntaxhighlighter.collapsed .toolbar { | ||
263 | color: #96dd3b !important; | ||
264 | background: black !important; | ||
265 | border: 1px solid #41a83e !important; | ||
266 | } | ||
267 | .syntaxhighlighter.collapsed .toolbar a { | ||
268 | color: #96dd3b !important; | ||
269 | } | ||
270 | .syntaxhighlighter.collapsed .toolbar a:hover { | ||
271 | color: white !important; | ||
272 | } | ||
273 | .syntaxhighlighter .toolbar { | ||
274 | color: white !important; | ||
275 | background: #41a83e !important; | ||
276 | border: none !important; | ||
277 | } | ||
278 | .syntaxhighlighter .toolbar a { | ||
279 | color: white !important; | ||
280 | } | ||
281 | .syntaxhighlighter .toolbar a:hover { | ||
282 | color: #ffe862 !important; | ||
283 | } | ||
284 | .syntaxhighlighter .plain, .syntaxhighlighter .plain a { | ||
285 | color: #f8f8f8 !important; | ||
286 | } | ||
287 | .syntaxhighlighter .comments, .syntaxhighlighter .comments a { | ||
288 | color: #336442 !important; | ||
289 | } | ||
290 | .syntaxhighlighter .string, .syntaxhighlighter .string a { | ||
291 | color: #9df39f !important; | ||
292 | } | ||
293 | .syntaxhighlighter .keyword { | ||
294 | color: #96dd3b !important; | ||
295 | } | ||
296 | .syntaxhighlighter .preprocessor { | ||
297 | color: #91bb9e !important; | ||
298 | } | ||
299 | .syntaxhighlighter .variable { | ||
300 | color: #ffaa3e !important; | ||
301 | } | ||
302 | .syntaxhighlighter .value { | ||
303 | color: #f7e741 !important; | ||
304 | } | ||
305 | .syntaxhighlighter .functions { | ||
306 | color: #ffaa3e !important; | ||
307 | } | ||
308 | .syntaxhighlighter .constants { | ||
309 | color: #e0e8ff !important; | ||
310 | } | ||
311 | .syntaxhighlighter .script { | ||
312 | font-weight: bold !important; | ||
313 | color: #96dd3b !important; | ||
314 | background-color: none !important; | ||
315 | } | ||
316 | .syntaxhighlighter .color1, .syntaxhighlighter .color1 a { | ||
317 | color: #eb939a !important; | ||
318 | } | ||
319 | .syntaxhighlighter .color2, .syntaxhighlighter .color2 a { | ||
320 | color: #91bb9e !important; | ||
321 | } | ||
322 | .syntaxhighlighter .color3, .syntaxhighlighter .color3 a { | ||
323 | color: #edef7d !important; | ||
324 | } | ||
325 | |||
326 | .syntaxhighlighter .comments { | ||
327 | font-style: italic !important; | ||
328 | } | ||
329 | .syntaxhighlighter .keyword { | ||
330 | font-weight: bold !important; | ||
331 | } | ||
diff --git a/Blocks/syntax/styles/shCoreEclipse.css b/Blocks/syntax/styles/shCoreEclipse.css new file mode 100644 index 0000000..a45de9f --- /dev/null +++ b/Blocks/syntax/styles/shCoreEclipse.css | |||
@@ -0,0 +1,339 @@ | |||
1 | /** | ||
2 | * SyntaxHighlighter | ||
3 | * http://alexgorbatchev.com/SyntaxHighlighter | ||
4 | * | ||
5 | * SyntaxHighlighter is donationware. If you are using it, please donate. | ||
6 | * http://alexgorbatchev.com/SyntaxHighlighter/donate.html | ||
7 | * | ||
8 | * @version | ||
9 | * 3.0.83 (July 02 2010) | ||
10 | * | ||
11 | * @copyright | ||
12 | * Copyright (C) 2004-2010 Alex Gorbatchev. | ||
13 | * | ||
14 | * @license | ||
15 | * Dual licensed under the MIT and GPL licenses. | ||
16 | */ | ||
17 | .syntaxhighlighter a, | ||
18 | .syntaxhighlighter div, | ||
19 | .syntaxhighlighter code, | ||
20 | .syntaxhighlighter table, | ||
21 | .syntaxhighlighter table td, | ||
22 | .syntaxhighlighter table tr, | ||
23 | .syntaxhighlighter table tbody, | ||
24 | .syntaxhighlighter table thead, | ||
25 | .syntaxhighlighter table caption, | ||
26 | .syntaxhighlighter textarea { | ||
27 | -moz-border-radius: 0 0 0 0 !important; | ||
28 | -webkit-border-radius: 0 0 0 0 !important; | ||
29 | background: none !important; | ||
30 | border: 0 !important; | ||
31 | bottom: auto !important; | ||
32 | float: none !important; | ||
33 | height: auto !important; | ||
34 | left: auto !important; | ||
35 | line-height: 1.1em !important; | ||
36 | margin: 0 !important; | ||
37 | outline: 0 !important; | ||
38 | overflow: visible !important; | ||
39 | padding: 0 !important; | ||
40 | position: static !important; | ||
41 | right: auto !important; | ||
42 | text-align: left !important; | ||
43 | top: auto !important; | ||
44 | vertical-align: baseline !important; | ||
45 | width: auto !important; | ||
46 | box-sizing: content-box !important; | ||
47 | font-family: "Consolas", "Bitstream Vera Sans Mono", "Courier New", Courier, monospace !important; | ||
48 | font-weight: normal !important; | ||
49 | font-style: normal !important; | ||
50 | font-size: 1em !important; | ||
51 | min-height: inherit !important; | ||
52 | min-height: auto !important; | ||
53 | } | ||
54 | |||
55 | .syntaxhighlighter { | ||
56 | width: 100% !important; | ||
57 | margin: 1em 0 1em 0 !important; | ||
58 | position: relative !important; | ||
59 | overflow: auto !important; | ||
60 | font-size: 1em !important; | ||
61 | } | ||
62 | .syntaxhighlighter.source { | ||
63 | overflow: hidden !important; | ||
64 | } | ||
65 | .syntaxhighlighter .bold { | ||
66 | font-weight: bold !important; | ||
67 | } | ||
68 | .syntaxhighlighter .italic { | ||
69 | font-style: italic !important; | ||
70 | } | ||
71 | .syntaxhighlighter .line { | ||
72 | white-space: pre !important; | ||
73 | } | ||
74 | .syntaxhighlighter table { | ||
75 | width: 100% !important; | ||
76 | } | ||
77 | .syntaxhighlighter table caption { | ||
78 | text-align: left !important; | ||
79 | padding: .5em 0 0.5em 1em !important; | ||
80 | } | ||
81 | .syntaxhighlighter table td.code { | ||
82 | width: 100% !important; | ||
83 | } | ||
84 | .syntaxhighlighter table td.code .container { | ||
85 | position: relative !important; | ||
86 | } | ||
87 | .syntaxhighlighter table td.code .container textarea { | ||
88 | box-sizing: border-box !important; | ||
89 | position: absolute !important; | ||
90 | left: 0 !important; | ||
91 | top: 0 !important; | ||
92 | width: 100% !important; | ||
93 | height: 100% !important; | ||
94 | border: none !important; | ||
95 | background: white !important; | ||
96 | padding-left: 1em !important; | ||
97 | overflow: hidden !important; | ||
98 | white-space: pre !important; | ||
99 | } | ||
100 | .syntaxhighlighter table td.gutter .line { | ||
101 | text-align: right !important; | ||
102 | padding: 0 0.5em 0 1em !important; | ||
103 | } | ||
104 | .syntaxhighlighter table td.code .line { | ||
105 | padding: 0 1em !important; | ||
106 | } | ||
107 | .syntaxhighlighter.nogutter td.code .container textarea, .syntaxhighlighter.nogutter td.code .line { | ||
108 | padding-left: 0em !important; | ||
109 | } | ||
110 | .syntaxhighlighter.show { | ||
111 | display: block !important; | ||
112 | } | ||
113 | .syntaxhighlighter.collapsed table { | ||
114 | display: none !important; | ||
115 | } | ||
116 | .syntaxhighlighter.collapsed .toolbar { | ||
117 | padding: 0.1em 0.8em 0em 0.8em !important; | ||
118 | font-size: 1em !important; | ||
119 | position: static !important; | ||
120 | width: auto !important; | ||
121 | height: auto !important; | ||
122 | } | ||
123 | .syntaxhighlighter.collapsed .toolbar span { | ||
124 | display: inline !important; | ||
125 | margin-right: 1em !important; | ||
126 | } | ||
127 | .syntaxhighlighter.collapsed .toolbar span a { | ||
128 | padding: 0 !important; | ||
129 | display: none !important; | ||
130 | } | ||
131 | .syntaxhighlighter.collapsed .toolbar span a.expandSource { | ||
132 | display: inline !important; | ||
133 | } | ||
134 | .syntaxhighlighter .toolbar { | ||
135 | position: absolute !important; | ||
136 | right: 1px !important; | ||
137 | top: 1px !important; | ||
138 | width: 11px !important; | ||
139 | height: 11px !important; | ||
140 | font-size: 10px !important; | ||
141 | z-index: 10 !important; | ||
142 | } | ||
143 | .syntaxhighlighter .toolbar span.title { | ||
144 | display: inline !important; | ||
145 | } | ||
146 | .syntaxhighlighter .toolbar a { | ||
147 | display: block !important; | ||
148 | text-align: center !important; | ||
149 | text-decoration: none !important; | ||
150 | padding-top: 1px !important; | ||
151 | } | ||
152 | .syntaxhighlighter .toolbar a.expandSource { | ||
153 | display: none !important; | ||
154 | } | ||
155 | .syntaxhighlighter.ie { | ||
156 | font-size: .9em !important; | ||
157 | padding: 1px 0 1px 0 !important; | ||
158 | } | ||
159 | .syntaxhighlighter.ie .toolbar { | ||
160 | line-height: 8px !important; | ||
161 | } | ||
162 | .syntaxhighlighter.ie .toolbar a { | ||
163 | padding-top: 0px !important; | ||
164 | } | ||
165 | .syntaxhighlighter.printing .line.alt1 .content, | ||
166 | .syntaxhighlighter.printing .line.alt2 .content, | ||
167 | .syntaxhighlighter.printing .line.highlighted .number, | ||
168 | .syntaxhighlighter.printing .line.highlighted.alt1 .content, | ||
169 | .syntaxhighlighter.printing .line.highlighted.alt2 .content { | ||
170 | background: none !important; | ||
171 | } | ||
172 | .syntaxhighlighter.printing .line .number { | ||
173 | color: #bbbbbb !important; | ||
174 | } | ||
175 | .syntaxhighlighter.printing .line .content { | ||
176 | color: black !important; | ||
177 | } | ||
178 | .syntaxhighlighter.printing .toolbar { | ||
179 | display: none !important; | ||
180 | } | ||
181 | .syntaxhighlighter.printing a { | ||
182 | text-decoration: none !important; | ||
183 | } | ||
184 | .syntaxhighlighter.printing .plain, .syntaxhighlighter.printing .plain a { | ||
185 | color: black !important; | ||
186 | } | ||
187 | .syntaxhighlighter.printing .comments, .syntaxhighlighter.printing .comments a { | ||
188 | color: #008200 !important; | ||
189 | } | ||
190 | .syntaxhighlighter.printing .string, .syntaxhighlighter.printing .string a { | ||
191 | color: blue !important; | ||
192 | } | ||
193 | .syntaxhighlighter.printing .keyword { | ||
194 | color: #006699 !important; | ||
195 | font-weight: bold !important; | ||
196 | } | ||
197 | .syntaxhighlighter.printing .preprocessor { | ||
198 | color: gray !important; | ||
199 | } | ||
200 | .syntaxhighlighter.printing .variable { | ||
201 | color: #aa7700 !important; | ||
202 | } | ||
203 | .syntaxhighlighter.printing .value { | ||
204 | color: #009900 !important; | ||
205 | } | ||
206 | .syntaxhighlighter.printing .functions { | ||
207 | color: #ff1493 !important; | ||
208 | } | ||
209 | .syntaxhighlighter.printing .constants { | ||
210 | color: #0066cc !important; | ||
211 | } | ||
212 | .syntaxhighlighter.printing .script { | ||
213 | font-weight: bold !important; | ||
214 | } | ||
215 | .syntaxhighlighter.printing .color1, .syntaxhighlighter.printing .color1 a { | ||
216 | color: gray !important; | ||
217 | } | ||
218 | .syntaxhighlighter.printing .color2, .syntaxhighlighter.printing .color2 a { | ||
219 | color: #ff1493 !important; | ||
220 | } | ||
221 | .syntaxhighlighter.printing .color3, .syntaxhighlighter.printing .color3 a { | ||
222 | color: red !important; | ||
223 | } | ||
224 | .syntaxhighlighter.printing .break, .syntaxhighlighter.printing .break a { | ||
225 | color: black !important; | ||
226 | } | ||
227 | |||
228 | .syntaxhighlighter { | ||
229 | background-color: white !important; | ||
230 | } | ||
231 | .syntaxhighlighter .line.alt1 { | ||
232 | background-color: white !important; | ||
233 | } | ||
234 | .syntaxhighlighter .line.alt2 { | ||
235 | background-color: white !important; | ||
236 | } | ||
237 | .syntaxhighlighter .line.highlighted.alt1, .syntaxhighlighter .line.highlighted.alt2 { | ||
238 | background-color: #c3defe !important; | ||
239 | } | ||
240 | .syntaxhighlighter .line.highlighted.number { | ||
241 | color: white !important; | ||
242 | } | ||
243 | .syntaxhighlighter table caption { | ||
244 | color: black !important; | ||
245 | } | ||
246 | .syntaxhighlighter .gutter { | ||
247 | color: #787878 !important; | ||
248 | } | ||
249 | .syntaxhighlighter .gutter .line { | ||
250 | border-right: 3px solid #d4d0c8 !important; | ||
251 | } | ||
252 | .syntaxhighlighter .gutter .line.highlighted { | ||
253 | background-color: #d4d0c8 !important; | ||
254 | color: white !important; | ||
255 | } | ||
256 | .syntaxhighlighter.printing .line .content { | ||
257 | border: none !important; | ||
258 | } | ||
259 | .syntaxhighlighter.collapsed { | ||
260 | overflow: visible !important; | ||
261 | } | ||
262 | .syntaxhighlighter.collapsed .toolbar { | ||
263 | color: #3f5fbf !important; | ||
264 | background: white !important; | ||
265 | border: 1px solid #d4d0c8 !important; | ||
266 | } | ||
267 | .syntaxhighlighter.collapsed .toolbar a { | ||
268 | color: #3f5fbf !important; | ||
269 | } | ||
270 | .syntaxhighlighter.collapsed .toolbar a:hover { | ||
271 | color: #aa7700 !important; | ||
272 | } | ||
273 | .syntaxhighlighter .toolbar { | ||
274 | color: #a0a0a0 !important; | ||
275 | background: #d4d0c8 !important; | ||
276 | border: none !important; | ||
277 | } | ||
278 | .syntaxhighlighter .toolbar a { | ||
279 | color: #a0a0a0 !important; | ||
280 | } | ||
281 | .syntaxhighlighter .toolbar a:hover { | ||
282 | color: red !important; | ||
283 | } | ||
284 | .syntaxhighlighter .plain, .syntaxhighlighter .plain a { | ||
285 | color: black !important; | ||
286 | } | ||
287 | .syntaxhighlighter .comments, .syntaxhighlighter .comments a { | ||
288 | color: #3f5fbf !important; | ||
289 | } | ||
290 | .syntaxhighlighter .string, .syntaxhighlighter .string a { | ||
291 | color: #2a00ff !important; | ||
292 | } | ||
293 | .syntaxhighlighter .keyword { | ||
294 | color: #7f0055 !important; | ||
295 | } | ||
296 | .syntaxhighlighter .preprocessor { | ||
297 | color: #646464 !important; | ||
298 | } | ||
299 | .syntaxhighlighter .variable { | ||
300 | color: #aa7700 !important; | ||
301 | } | ||
302 | .syntaxhighlighter .value { | ||
303 | color: #009900 !important; | ||
304 | } | ||
305 | .syntaxhighlighter .functions { | ||
306 | color: #ff1493 !important; | ||
307 | } | ||
308 | .syntaxhighlighter .constants { | ||
309 | color: #0066cc !important; | ||
310 | } | ||
311 | .syntaxhighlighter .script { | ||
312 | font-weight: bold !important; | ||
313 | color: #7f0055 !important; | ||
314 | background-color: none !important; | ||
315 | } | ||
316 | .syntaxhighlighter .color1, .syntaxhighlighter .color1 a { | ||
317 | color: gray !important; | ||
318 | } | ||
319 | .syntaxhighlighter .color2, .syntaxhighlighter .color2 a { | ||
320 | color: #ff1493 !important; | ||
321 | } | ||
322 | .syntaxhighlighter .color3, .syntaxhighlighter .color3 a { | ||
323 | color: red !important; | ||
324 | } | ||
325 | |||
326 | .syntaxhighlighter .keyword { | ||
327 | font-weight: bold !important; | ||
328 | } | ||
329 | .syntaxhighlighter .xml .keyword { | ||
330 | color: #3f7f7f !important; | ||
331 | font-weight: normal !important; | ||
332 | } | ||
333 | .syntaxhighlighter .xml .color1, .syntaxhighlighter .xml .color1 a { | ||
334 | color: #7f007f !important; | ||
335 | } | ||
336 | .syntaxhighlighter .xml .string { | ||
337 | font-style: italic !important; | ||
338 | color: #2a00ff !important; | ||
339 | } | ||
diff --git a/Blocks/syntax/styles/shCoreEmacs.css b/Blocks/syntax/styles/shCoreEmacs.css new file mode 100644 index 0000000..706c77a --- /dev/null +++ b/Blocks/syntax/styles/shCoreEmacs.css | |||
@@ -0,0 +1,324 @@ | |||
1 | /** | ||
2 | * SyntaxHighlighter | ||
3 | * http://alexgorbatchev.com/SyntaxHighlighter | ||
4 | * | ||
5 | * SyntaxHighlighter is donationware. If you are using it, please donate. | ||
6 | * http://alexgorbatchev.com/SyntaxHighlighter/donate.html | ||
7 | * | ||
8 | * @version | ||
9 | * 3.0.83 (July 02 2010) | ||
10 | * | ||
11 | * @copyright | ||
12 | * Copyright (C) 2004-2010 Alex Gorbatchev. | ||
13 | * | ||
14 | * @license | ||
15 | * Dual licensed under the MIT and GPL licenses. | ||
16 | */ | ||
17 | .syntaxhighlighter a, | ||
18 | .syntaxhighlighter div, | ||
19 | .syntaxhighlighter code, | ||
20 | .syntaxhighlighter table, | ||
21 | .syntaxhighlighter table td, | ||
22 | .syntaxhighlighter table tr, | ||
23 | .syntaxhighlighter table tbody, | ||
24 | .syntaxhighlighter table thead, | ||
25 | .syntaxhighlighter table caption, | ||
26 | .syntaxhighlighter textarea { | ||
27 | -moz-border-radius: 0 0 0 0 !important; | ||
28 | -webkit-border-radius: 0 0 0 0 !important; | ||
29 | background: none !important; | ||
30 | border: 0 !important; | ||
31 | bottom: auto !important; | ||
32 | float: none !important; | ||
33 | height: auto !important; | ||
34 | left: auto !important; | ||
35 | line-height: 1.1em !important; | ||
36 | margin: 0 !important; | ||
37 | outline: 0 !important; | ||
38 | overflow: visible !important; | ||
39 | padding: 0 !important; | ||
40 | position: static !important; | ||
41 | right: auto !important; | ||
42 | text-align: left !important; | ||
43 | top: auto !important; | ||
44 | vertical-align: baseline !important; | ||
45 | width: auto !important; | ||
46 | box-sizing: content-box !important; | ||
47 | font-family: "Consolas", "Bitstream Vera Sans Mono", "Courier New", Courier, monospace !important; | ||
48 | font-weight: normal !important; | ||
49 | font-style: normal !important; | ||
50 | font-size: 1em !important; | ||
51 | min-height: inherit !important; | ||
52 | min-height: auto !important; | ||
53 | } | ||
54 | |||
55 | .syntaxhighlighter { | ||
56 | width: 100% !important; | ||
57 | margin: 1em 0 1em 0 !important; | ||
58 | position: relative !important; | ||
59 | overflow: auto !important; | ||
60 | font-size: 1em !important; | ||
61 | } | ||
62 | .syntaxhighlighter.source { | ||
63 | overflow: hidden !important; | ||
64 | } | ||
65 | .syntaxhighlighter .bold { | ||
66 | font-weight: bold !important; | ||
67 | } | ||
68 | .syntaxhighlighter .italic { | ||
69 | font-style: italic !important; | ||
70 | } | ||
71 | .syntaxhighlighter .line { | ||
72 | white-space: pre !important; | ||
73 | } | ||
74 | .syntaxhighlighter table { | ||
75 | width: 100% !important; | ||
76 | } | ||
77 | .syntaxhighlighter table caption { | ||
78 | text-align: left !important; | ||
79 | padding: .5em 0 0.5em 1em !important; | ||
80 | } | ||
81 | .syntaxhighlighter table td.code { | ||
82 | width: 100% !important; | ||
83 | } | ||
84 | .syntaxhighlighter table td.code .container { | ||
85 | position: relative !important; | ||
86 | } | ||
87 | .syntaxhighlighter table td.code .container textarea { | ||
88 | box-sizing: border-box !important; | ||
89 | position: absolute !important; | ||
90 | left: 0 !important; | ||
91 | top: 0 !important; | ||
92 | width: 100% !important; | ||
93 | height: 100% !important; | ||
94 | border: none !important; | ||
95 | background: white !important; | ||
96 | padding-left: 1em !important; | ||
97 | overflow: hidden !important; | ||
98 | white-space: pre !important; | ||
99 | } | ||
100 | .syntaxhighlighter table td.gutter .line { | ||
101 | text-align: right !important; | ||
102 | padding: 0 0.5em 0 1em !important; | ||
103 | } | ||
104 | .syntaxhighlighter table td.code .line { | ||
105 | padding: 0 1em !important; | ||
106 | } | ||
107 | .syntaxhighlighter.nogutter td.code .container textarea, .syntaxhighlighter.nogutter td.code .line { | ||
108 | padding-left: 0em !important; | ||
109 | } | ||
110 | .syntaxhighlighter.show { | ||
111 | display: block !important; | ||
112 | } | ||
113 | .syntaxhighlighter.collapsed table { | ||
114 | display: none !important; | ||
115 | } | ||
116 | .syntaxhighlighter.collapsed .toolbar { | ||
117 | padding: 0.1em 0.8em 0em 0.8em !important; | ||
118 | font-size: 1em !important; | ||
119 | position: static !important; | ||
120 | width: auto !important; | ||
121 | height: auto !important; | ||
122 | } | ||
123 | .syntaxhighlighter.collapsed .toolbar span { | ||
124 | display: inline !important; | ||
125 | margin-right: 1em !important; | ||
126 | } | ||
127 | .syntaxhighlighter.collapsed .toolbar span a { | ||
128 | padding: 0 !important; | ||
129 | display: none !important; | ||
130 | } | ||
131 | .syntaxhighlighter.collapsed .toolbar span a.expandSource { | ||
132 | display: inline !important; | ||
133 | } | ||
134 | .syntaxhighlighter .toolbar { | ||
135 | position: absolute !important; | ||
136 | right: 1px !important; | ||
137 | top: 1px !important; | ||
138 | width: 11px !important; | ||
139 | height: 11px !important; | ||
140 | font-size: 10px !important; | ||
141 | z-index: 10 !important; | ||
142 | } | ||
143 | .syntaxhighlighter .toolbar span.title { | ||
144 | display: inline !important; | ||
145 | } | ||
146 | .syntaxhighlighter .toolbar a { | ||
147 | display: block !important; | ||
148 | text-align: center !important; | ||
149 | text-decoration: none !important; | ||
150 | padding-top: 1px !important; | ||
151 | } | ||
152 | .syntaxhighlighter .toolbar a.expandSource { | ||
153 | display: none !important; | ||
154 | } | ||
155 | .syntaxhighlighter.ie { | ||
156 | font-size: .9em !important; | ||
157 | padding: 1px 0 1px 0 !important; | ||
158 | } | ||
159 | .syntaxhighlighter.ie .toolbar { | ||
160 | line-height: 8px !important; | ||
161 | } | ||
162 | .syntaxhighlighter.ie .toolbar a { | ||
163 | padding-top: 0px !important; | ||
164 | } | ||
165 | .syntaxhighlighter.printing .line.alt1 .content, | ||
166 | .syntaxhighlighter.printing .line.alt2 .content, | ||
167 | .syntaxhighlighter.printing .line.highlighted .number, | ||
168 | .syntaxhighlighter.printing .line.highlighted.alt1 .content, | ||
169 | .syntaxhighlighter.printing .line.highlighted.alt2 .content { | ||
170 | background: none !important; | ||
171 | } | ||
172 | .syntaxhighlighter.printing .line .number { | ||
173 | color: #bbbbbb !important; | ||
174 | } | ||
175 | .syntaxhighlighter.printing .line .content { | ||
176 | color: black !important; | ||
177 | } | ||
178 | .syntaxhighlighter.printing .toolbar { | ||
179 | display: none !important; | ||
180 | } | ||
181 | .syntaxhighlighter.printing a { | ||
182 | text-decoration: none !important; | ||
183 | } | ||
184 | .syntaxhighlighter.printing .plain, .syntaxhighlighter.printing .plain a { | ||
185 | color: black !important; | ||
186 | } | ||
187 | .syntaxhighlighter.printing .comments, .syntaxhighlighter.printing .comments a { | ||
188 | color: #008200 !important; | ||
189 | } | ||
190 | .syntaxhighlighter.printing .string, .syntaxhighlighter.printing .string a { | ||
191 | color: blue !important; | ||
192 | } | ||
193 | .syntaxhighlighter.printing .keyword { | ||
194 | color: #006699 !important; | ||
195 | font-weight: bold !important; | ||
196 | } | ||
197 | .syntaxhighlighter.printing .preprocessor { | ||
198 | color: gray !important; | ||
199 | } | ||
200 | .syntaxhighlighter.printing .variable { | ||
201 | color: #aa7700 !important; | ||
202 | } | ||
203 | .syntaxhighlighter.printing .value { | ||
204 | color: #009900 !important; | ||
205 | } | ||
206 | .syntaxhighlighter.printing .functions { | ||
207 | color: #ff1493 !important; | ||
208 | } | ||
209 | .syntaxhighlighter.printing .constants { | ||
210 | color: #0066cc !important; | ||
211 | } | ||
212 | .syntaxhighlighter.printing .script { | ||
213 | font-weight: bold !important; | ||
214 | } | ||
215 | .syntaxhighlighter.printing .color1, .syntaxhighlighter.printing .color1 a { | ||
216 | color: gray !important; | ||
217 | } | ||
218 | .syntaxhighlighter.printing .color2, .syntaxhighlighter.printing .color2 a { | ||
219 | color: #ff1493 !important; | ||
220 | } | ||
221 | .syntaxhighlighter.printing .color3, .syntaxhighlighter.printing .color3 a { | ||
222 | color: red !important; | ||
223 | } | ||
224 | .syntaxhighlighter.printing .break, .syntaxhighlighter.printing .break a { | ||
225 | color: black !important; | ||
226 | } | ||
227 | |||
228 | .syntaxhighlighter { | ||
229 | background-color: black !important; | ||
230 | } | ||
231 | .syntaxhighlighter .line.alt1 { | ||
232 | background-color: black !important; | ||
233 | } | ||
234 | .syntaxhighlighter .line.alt2 { | ||
235 | background-color: black !important; | ||
236 | } | ||
237 | .syntaxhighlighter .line.highlighted.alt1, .syntaxhighlighter .line.highlighted.alt2 { | ||
238 | background-color: #2a3133 !important; | ||
239 | } | ||
240 | .syntaxhighlighter .line.highlighted.number { | ||
241 | color: white !important; | ||
242 | } | ||
243 | .syntaxhighlighter table caption { | ||
244 | color: #d3d3d3 !important; | ||
245 | } | ||
246 | .syntaxhighlighter .gutter { | ||
247 | color: #d3d3d3 !important; | ||
248 | } | ||
249 | .syntaxhighlighter .gutter .line { | ||
250 | border-right: 3px solid #990000 !important; | ||
251 | } | ||
252 | .syntaxhighlighter .gutter .line.highlighted { | ||
253 | background-color: #990000 !important; | ||
254 | color: black !important; | ||
255 | } | ||
256 | .syntaxhighlighter.printing .line .content { | ||
257 | border: none !important; | ||
258 | } | ||
259 | .syntaxhighlighter.collapsed { | ||
260 | overflow: visible !important; | ||
261 | } | ||
262 | .syntaxhighlighter.collapsed .toolbar { | ||
263 | color: #ebdb8d !important; | ||
264 | background: black !important; | ||
265 | border: 1px solid #990000 !important; | ||
266 | } | ||
267 | .syntaxhighlighter.collapsed .toolbar a { | ||
268 | color: #ebdb8d !important; | ||
269 | } | ||
270 | .syntaxhighlighter.collapsed .toolbar a:hover { | ||
271 | color: #ff7d27 !important; | ||
272 | } | ||
273 | .syntaxhighlighter .toolbar { | ||
274 | color: white !important; | ||
275 | background: #990000 !important; | ||
276 | border: none !important; | ||
277 | } | ||
278 | .syntaxhighlighter .toolbar a { | ||
279 | color: white !important; | ||
280 | } | ||
281 | .syntaxhighlighter .toolbar a:hover { | ||
282 | color: #9ccff4 !important; | ||
283 | } | ||
284 | .syntaxhighlighter .plain, .syntaxhighlighter .plain a { | ||
285 | color: #d3d3d3 !important; | ||
286 | } | ||
287 | .syntaxhighlighter .comments, .syntaxhighlighter .comments a { | ||
288 | color: #ff7d27 !important; | ||
289 | } | ||
290 | .syntaxhighlighter .string, .syntaxhighlighter .string a { | ||
291 | color: #ff9e7b !important; | ||
292 | } | ||
293 | .syntaxhighlighter .keyword { | ||
294 | color: aqua !important; | ||
295 | } | ||
296 | .syntaxhighlighter .preprocessor { | ||
297 | color: #aec4de !important; | ||
298 | } | ||
299 | .syntaxhighlighter .variable { | ||
300 | color: #ffaa3e !important; | ||
301 | } | ||
302 | .syntaxhighlighter .value { | ||
303 | color: #009900 !important; | ||
304 | } | ||
305 | .syntaxhighlighter .functions { | ||
306 | color: #81cef9 !important; | ||
307 | } | ||
308 | .syntaxhighlighter .constants { | ||
309 | color: #ff9e7b !important; | ||
310 | } | ||
311 | .syntaxhighlighter .script { | ||
312 | font-weight: bold !important; | ||
313 | color: aqua !important; | ||
314 | background-color: none !important; | ||
315 | } | ||
316 | .syntaxhighlighter .color1, .syntaxhighlighter .color1 a { | ||
317 | color: #ebdb8d !important; | ||
318 | } | ||
319 | .syntaxhighlighter .color2, .syntaxhighlighter .color2 a { | ||
320 | color: #ff7d27 !important; | ||
321 | } | ||
322 | .syntaxhighlighter .color3, .syntaxhighlighter .color3 a { | ||
323 | color: #aec4de !important; | ||
324 | } | ||
diff --git a/Blocks/syntax/styles/shCoreFadeToGrey.css b/Blocks/syntax/styles/shCoreFadeToGrey.css new file mode 100644 index 0000000..6101eba --- /dev/null +++ b/Blocks/syntax/styles/shCoreFadeToGrey.css | |||
@@ -0,0 +1,328 @@ | |||
1 | /** | ||
2 | * SyntaxHighlighter | ||
3 | * http://alexgorbatchev.com/SyntaxHighlighter | ||
4 | * | ||
5 | * SyntaxHighlighter is donationware. If you are using it, please donate. | ||
6 | * http://alexgorbatchev.com/SyntaxHighlighter/donate.html | ||
7 | * | ||
8 | * @version | ||
9 | * 3.0.83 (July 02 2010) | ||
10 | * | ||
11 | * @copyright | ||
12 | * Copyright (C) 2004-2010 Alex Gorbatchev. | ||
13 | * | ||
14 | * @license | ||
15 | * Dual licensed under the MIT and GPL licenses. | ||
16 | */ | ||
17 | .syntaxhighlighter a, | ||
18 | .syntaxhighlighter div, | ||
19 | .syntaxhighlighter code, | ||
20 | .syntaxhighlighter table, | ||
21 | .syntaxhighlighter table td, | ||
22 | .syntaxhighlighter table tr, | ||
23 | .syntaxhighlighter table tbody, | ||
24 | .syntaxhighlighter table thead, | ||
25 | .syntaxhighlighter table caption, | ||
26 | .syntaxhighlighter textarea { | ||
27 | -moz-border-radius: 0 0 0 0 !important; | ||
28 | -webkit-border-radius: 0 0 0 0 !important; | ||
29 | background: none !important; | ||
30 | border: 0 !important; | ||
31 | bottom: auto !important; | ||
32 | float: none !important; | ||
33 | height: auto !important; | ||
34 | left: auto !important; | ||
35 | line-height: 1.1em !important; | ||
36 | margin: 0 !important; | ||
37 | outline: 0 !important; | ||
38 | overflow: visible !important; | ||
39 | padding: 0 !important; | ||
40 | position: static !important; | ||
41 | right: auto !important; | ||
42 | text-align: left !important; | ||
43 | top: auto !important; | ||
44 | vertical-align: baseline !important; | ||
45 | width: auto !important; | ||
46 | box-sizing: content-box !important; | ||
47 | font-family: "Consolas", "Bitstream Vera Sans Mono", "Courier New", Courier, monospace !important; | ||
48 | font-weight: normal !important; | ||
49 | font-style: normal !important; | ||
50 | font-size: 1em !important; | ||
51 | min-height: inherit !important; | ||
52 | min-height: auto !important; | ||
53 | } | ||
54 | |||
55 | .syntaxhighlighter { | ||
56 | width: 100% !important; | ||
57 | margin: 1em 0 1em 0 !important; | ||
58 | position: relative !important; | ||
59 | overflow: auto !important; | ||
60 | font-size: 1em !important; | ||
61 | } | ||
62 | .syntaxhighlighter.source { | ||
63 | overflow: hidden !important; | ||
64 | } | ||
65 | .syntaxhighlighter .bold { | ||
66 | font-weight: bold !important; | ||
67 | } | ||
68 | .syntaxhighlighter .italic { | ||
69 | font-style: italic !important; | ||
70 | } | ||
71 | .syntaxhighlighter .line { | ||
72 | white-space: pre !important; | ||
73 | } | ||
74 | .syntaxhighlighter table { | ||
75 | width: 100% !important; | ||
76 | } | ||
77 | .syntaxhighlighter table caption { | ||
78 | text-align: left !important; | ||
79 | padding: .5em 0 0.5em 1em !important; | ||
80 | } | ||
81 | .syntaxhighlighter table td.code { | ||
82 | width: 100% !important; | ||
83 | } | ||
84 | .syntaxhighlighter table td.code .container { | ||
85 | position: relative !important; | ||
86 | } | ||
87 | .syntaxhighlighter table td.code .container textarea { | ||
88 | box-sizing: border-box !important; | ||
89 | position: absolute !important; | ||
90 | left: 0 !important; | ||
91 | top: 0 !important; | ||
92 | width: 100% !important; | ||
93 | height: 100% !important; | ||
94 | border: none !important; | ||
95 | background: white !important; | ||
96 | padding-left: 1em !important; | ||
97 | overflow: hidden !important; | ||
98 | white-space: pre !important; | ||
99 | } | ||
100 | .syntaxhighlighter table td.gutter .line { | ||
101 | text-align: right !important; | ||
102 | padding: 0 0.5em 0 1em !important; | ||
103 | } | ||
104 | .syntaxhighlighter table td.code .line { | ||
105 | padding: 0 1em !important; | ||
106 | } | ||
107 | .syntaxhighlighter.nogutter td.code .container textarea, .syntaxhighlighter.nogutter td.code .line { | ||
108 | padding-left: 0em !important; | ||
109 | } | ||
110 | .syntaxhighlighter.show { | ||
111 | display: block !important; | ||
112 | } | ||
113 | .syntaxhighlighter.collapsed table { | ||
114 | display: none !important; | ||
115 | } | ||
116 | .syntaxhighlighter.collapsed .toolbar { | ||
117 | padding: 0.1em 0.8em 0em 0.8em !important; | ||
118 | font-size: 1em !important; | ||
119 | position: static !important; | ||
120 | width: auto !important; | ||
121 | height: auto !important; | ||
122 | } | ||
123 | .syntaxhighlighter.collapsed .toolbar span { | ||
124 | display: inline !important; | ||
125 | margin-right: 1em !important; | ||
126 | } | ||
127 | .syntaxhighlighter.collapsed .toolbar span a { | ||
128 | padding: 0 !important; | ||
129 | display: none !important; | ||
130 | } | ||
131 | .syntaxhighlighter.collapsed .toolbar span a.expandSource { | ||
132 | display: inline !important; | ||
133 | } | ||
134 | .syntaxhighlighter .toolbar { | ||
135 | position: absolute !important; | ||
136 | right: 1px !important; | ||
137 | top: 1px !important; | ||
138 | width: 11px !important; | ||
139 | height: 11px !important; | ||
140 | font-size: 10px !important; | ||
141 | z-index: 10 !important; | ||
142 | } | ||
143 | .syntaxhighlighter .toolbar span.title { | ||
144 | display: inline !important; | ||
145 | } | ||
146 | .syntaxhighlighter .toolbar a { | ||
147 | display: block !important; | ||
148 | text-align: center !important; | ||
149 | text-decoration: none !important; | ||
150 | padding-top: 1px !important; | ||
151 | } | ||
152 | .syntaxhighlighter .toolbar a.expandSource { | ||
153 | display: none !important; | ||
154 | } | ||
155 | .syntaxhighlighter.ie { | ||
156 | font-size: .9em !important; | ||
157 | padding: 1px 0 1px 0 !important; | ||
158 | } | ||
159 | .syntaxhighlighter.ie .toolbar { | ||
160 | line-height: 8px !important; | ||
161 | } | ||
162 | .syntaxhighlighter.ie .toolbar a { | ||
163 | padding-top: 0px !important; | ||
164 | } | ||
165 | .syntaxhighlighter.printing .line.alt1 .content, | ||
166 | .syntaxhighlighter.printing .line.alt2 .content, | ||
167 | .syntaxhighlighter.printing .line.highlighted .number, | ||
168 | .syntaxhighlighter.printing .line.highlighted.alt1 .content, | ||
169 | .syntaxhighlighter.printing .line.highlighted.alt2 .content { | ||
170 | background: none !important; | ||
171 | } | ||
172 | .syntaxhighlighter.printing .line .number { | ||
173 | color: #bbbbbb !important; | ||
174 | } | ||
175 | .syntaxhighlighter.printing .line .content { | ||
176 | color: black !important; | ||
177 | } | ||
178 | .syntaxhighlighter.printing .toolbar { | ||
179 | display: none !important; | ||
180 | } | ||
181 | .syntaxhighlighter.printing a { | ||
182 | text-decoration: none !important; | ||
183 | } | ||
184 | .syntaxhighlighter.printing .plain, .syntaxhighlighter.printing .plain a { | ||
185 | color: black !important; | ||
186 | } | ||
187 | .syntaxhighlighter.printing .comments, .syntaxhighlighter.printing .comments a { | ||
188 | color: #008200 !important; | ||
189 | } | ||
190 | .syntaxhighlighter.printing .string, .syntaxhighlighter.printing .string a { | ||
191 | color: blue !important; | ||
192 | } | ||
193 | .syntaxhighlighter.printing .keyword { | ||
194 | color: #006699 !important; | ||
195 | font-weight: bold !important; | ||
196 | } | ||
197 | .syntaxhighlighter.printing .preprocessor { | ||
198 | color: gray !important; | ||
199 | } | ||
200 | .syntaxhighlighter.printing .variable { | ||
201 | color: #aa7700 !important; | ||
202 | } | ||
203 | .syntaxhighlighter.printing .value { | ||
204 | color: #009900 !important; | ||
205 | } | ||
206 | .syntaxhighlighter.printing .functions { | ||
207 | color: #ff1493 !important; | ||
208 | } | ||
209 | .syntaxhighlighter.printing .constants { | ||
210 | color: #0066cc !important; | ||
211 | } | ||
212 | .syntaxhighlighter.printing .script { | ||
213 | font-weight: bold !important; | ||
214 | } | ||
215 | .syntaxhighlighter.printing .color1, .syntaxhighlighter.printing .color1 a { | ||
216 | color: gray !important; | ||
217 | } | ||
218 | .syntaxhighlighter.printing .color2, .syntaxhighlighter.printing .color2 a { | ||
219 | color: #ff1493 !important; | ||
220 | } | ||
221 | .syntaxhighlighter.printing .color3, .syntaxhighlighter.printing .color3 a { | ||
222 | color: red !important; | ||
223 | } | ||
224 | .syntaxhighlighter.printing .break, .syntaxhighlighter.printing .break a { | ||
225 | color: black !important; | ||
226 | } | ||
227 | |||
228 | .syntaxhighlighter { | ||
229 | background-color: #121212 !important; | ||
230 | } | ||
231 | .syntaxhighlighter .line.alt1 { | ||
232 | background-color: #121212 !important; | ||
233 | } | ||
234 | .syntaxhighlighter .line.alt2 { | ||
235 | background-color: #121212 !important; | ||
236 | } | ||
237 | .syntaxhighlighter .line.highlighted.alt1, .syntaxhighlighter .line.highlighted.alt2 { | ||
238 | background-color: #2c2c29 !important; | ||
239 | } | ||
240 | .syntaxhighlighter .line.highlighted.number { | ||
241 | color: white !important; | ||
242 | } | ||
243 | .syntaxhighlighter table caption { | ||
244 | color: white !important; | ||
245 | } | ||
246 | .syntaxhighlighter .gutter { | ||
247 | color: #afafaf !important; | ||
248 | } | ||
249 | .syntaxhighlighter .gutter .line { | ||
250 | border-right: 3px solid #3185b9 !important; | ||
251 | } | ||
252 | .syntaxhighlighter .gutter .line.highlighted { | ||
253 | background-color: #3185b9 !important; | ||
254 | color: #121212 !important; | ||
255 | } | ||
256 | .syntaxhighlighter.printing .line .content { | ||
257 | border: none !important; | ||
258 | } | ||
259 | .syntaxhighlighter.collapsed { | ||
260 | overflow: visible !important; | ||
261 | } | ||
262 | .syntaxhighlighter.collapsed .toolbar { | ||
263 | color: #3185b9 !important; | ||
264 | background: black !important; | ||
265 | border: 1px solid #3185b9 !important; | ||
266 | } | ||
267 | .syntaxhighlighter.collapsed .toolbar a { | ||
268 | color: #3185b9 !important; | ||
269 | } | ||
270 | .syntaxhighlighter.collapsed .toolbar a:hover { | ||
271 | color: #d01d33 !important; | ||
272 | } | ||
273 | .syntaxhighlighter .toolbar { | ||
274 | color: white !important; | ||
275 | background: #3185b9 !important; | ||
276 | border: none !important; | ||
277 | } | ||
278 | .syntaxhighlighter .toolbar a { | ||
279 | color: white !important; | ||
280 | } | ||
281 | .syntaxhighlighter .toolbar a:hover { | ||
282 | color: #96daff !important; | ||
283 | } | ||
284 | .syntaxhighlighter .plain, .syntaxhighlighter .plain a { | ||
285 | color: white !important; | ||
286 | } | ||
287 | .syntaxhighlighter .comments, .syntaxhighlighter .comments a { | ||
288 | color: #696854 !important; | ||
289 | } | ||
290 | .syntaxhighlighter .string, .syntaxhighlighter .string a { | ||
291 | color: #e3e658 !important; | ||
292 | } | ||
293 | .syntaxhighlighter .keyword { | ||
294 | color: #d01d33 !important; | ||
295 | } | ||
296 | .syntaxhighlighter .preprocessor { | ||
297 | color: #435a5f !important; | ||
298 | } | ||
299 | .syntaxhighlighter .variable { | ||
300 | color: #898989 !important; | ||
301 | } | ||
302 | .syntaxhighlighter .value { | ||
303 | color: #009900 !important; | ||
304 | } | ||
305 | .syntaxhighlighter .functions { | ||
306 | color: #aaaaaa !important; | ||
307 | } | ||
308 | .syntaxhighlighter .constants { | ||
309 | color: #96daff !important; | ||
310 | } | ||
311 | .syntaxhighlighter .script { | ||
312 | font-weight: bold !important; | ||
313 | color: #d01d33 !important; | ||
314 | background-color: none !important; | ||
315 | } | ||
316 | .syntaxhighlighter .color1, .syntaxhighlighter .color1 a { | ||
317 | color: #ffc074 !important; | ||
318 | } | ||
319 | .syntaxhighlighter .color2, .syntaxhighlighter .color2 a { | ||
320 | color: #4a8cdb !important; | ||
321 | } | ||
322 | .syntaxhighlighter .color3, .syntaxhighlighter .color3 a { | ||
323 | color: #96daff !important; | ||
324 | } | ||
325 | |||
326 | .syntaxhighlighter .functions { | ||
327 | font-weight: bold !important; | ||
328 | } | ||
diff --git a/Blocks/syntax/styles/shCoreMDUltra.css b/Blocks/syntax/styles/shCoreMDUltra.css new file mode 100644 index 0000000..2923ce7 --- /dev/null +++ b/Blocks/syntax/styles/shCoreMDUltra.css | |||
@@ -0,0 +1,324 @@ | |||
1 | /** | ||
2 | * SyntaxHighlighter | ||
3 | * http://alexgorbatchev.com/SyntaxHighlighter | ||
4 | * | ||
5 | * SyntaxHighlighter is donationware. If you are using it, please donate. | ||
6 | * http://alexgorbatchev.com/SyntaxHighlighter/donate.html | ||
7 | * | ||
8 | * @version | ||
9 | * 3.0.83 (July 02 2010) | ||
10 | * | ||
11 | * @copyright | ||
12 | * Copyright (C) 2004-2010 Alex Gorbatchev. | ||
13 | * | ||
14 | * @license | ||
15 | * Dual licensed under the MIT and GPL licenses. | ||
16 | */ | ||
17 | .syntaxhighlighter a, | ||
18 | .syntaxhighlighter div, | ||
19 | .syntaxhighlighter code, | ||
20 | .syntaxhighlighter table, | ||
21 | .syntaxhighlighter table td, | ||
22 | .syntaxhighlighter table tr, | ||
23 | .syntaxhighlighter table tbody, | ||
24 | .syntaxhighlighter table thead, | ||
25 | .syntaxhighlighter table caption, | ||
26 | .syntaxhighlighter textarea { | ||
27 | -moz-border-radius: 0 0 0 0 !important; | ||
28 | -webkit-border-radius: 0 0 0 0 !important; | ||
29 | background: none !important; | ||
30 | border: 0 !important; | ||
31 | bottom: auto !important; | ||
32 | float: none !important; | ||
33 | height: auto !important; | ||
34 | left: auto !important; | ||
35 | line-height: 1.1em !important; | ||
36 | margin: 0 !important; | ||
37 | outline: 0 !important; | ||
38 | overflow: visible !important; | ||
39 | padding: 0 !important; | ||
40 | position: static !important; | ||
41 | right: auto !important; | ||
42 | text-align: left !important; | ||
43 | top: auto !important; | ||
44 | vertical-align: baseline !important; | ||
45 | width: auto !important; | ||
46 | box-sizing: content-box !important; | ||
47 | font-family: "Consolas", "Bitstream Vera Sans Mono", "Courier New", Courier, monospace !important; | ||
48 | font-weight: normal !important; | ||
49 | font-style: normal !important; | ||
50 | font-size: 1em !important; | ||
51 | min-height: inherit !important; | ||
52 | min-height: auto !important; | ||
53 | } | ||
54 | |||
55 | .syntaxhighlighter { | ||
56 | width: 100% !important; | ||
57 | margin: 1em 0 1em 0 !important; | ||
58 | position: relative !important; | ||
59 | overflow: auto !important; | ||
60 | font-size: 1em !important; | ||
61 | } | ||
62 | .syntaxhighlighter.source { | ||
63 | overflow: hidden !important; | ||
64 | } | ||
65 | .syntaxhighlighter .bold { | ||
66 | font-weight: bold !important; | ||
67 | } | ||
68 | .syntaxhighlighter .italic { | ||
69 | font-style: italic !important; | ||
70 | } | ||
71 | .syntaxhighlighter .line { | ||
72 | white-space: pre !important; | ||
73 | } | ||
74 | .syntaxhighlighter table { | ||
75 | width: 100% !important; | ||
76 | } | ||
77 | .syntaxhighlighter table caption { | ||
78 | text-align: left !important; | ||
79 | padding: .5em 0 0.5em 1em !important; | ||
80 | } | ||
81 | .syntaxhighlighter table td.code { | ||
82 | width: 100% !important; | ||
83 | } | ||
84 | .syntaxhighlighter table td.code .container { | ||
85 | position: relative !important; | ||
86 | } | ||
87 | .syntaxhighlighter table td.code .container textarea { | ||
88 | box-sizing: border-box !important; | ||
89 | position: absolute !important; | ||
90 | left: 0 !important; | ||
91 | top: 0 !important; | ||
92 | width: 100% !important; | ||
93 | height: 100% !important; | ||
94 | border: none !important; | ||
95 | background: white !important; | ||
96 | padding-left: 1em !important; | ||
97 | overflow: hidden !important; | ||
98 | white-space: pre !important; | ||
99 | } | ||
100 | .syntaxhighlighter table td.gutter .line { | ||
101 | text-align: right !important; | ||
102 | padding: 0 0.5em 0 1em !important; | ||
103 | } | ||
104 | .syntaxhighlighter table td.code .line { | ||
105 | padding: 0 1em !important; | ||
106 | } | ||
107 | .syntaxhighlighter.nogutter td.code .container textarea, .syntaxhighlighter.nogutter td.code .line { | ||
108 | padding-left: 0em !important; | ||
109 | } | ||
110 | .syntaxhighlighter.show { | ||
111 | display: block !important; | ||
112 | } | ||
113 | .syntaxhighlighter.collapsed table { | ||
114 | display: none !important; | ||
115 | } | ||
116 | .syntaxhighlighter.collapsed .toolbar { | ||
117 | padding: 0.1em 0.8em 0em 0.8em !important; | ||
118 | font-size: 1em !important; | ||
119 | position: static !important; | ||
120 | width: auto !important; | ||
121 | height: auto !important; | ||
122 | } | ||
123 | .syntaxhighlighter.collapsed .toolbar span { | ||
124 | display: inline !important; | ||
125 | margin-right: 1em !important; | ||
126 | } | ||
127 | .syntaxhighlighter.collapsed .toolbar span a { | ||
128 | padding: 0 !important; | ||
129 | display: none !important; | ||
130 | } | ||
131 | .syntaxhighlighter.collapsed .toolbar span a.expandSource { | ||
132 | display: inline !important; | ||
133 | } | ||
134 | .syntaxhighlighter .toolbar { | ||
135 | position: absolute !important; | ||
136 | right: 1px !important; | ||
137 | top: 1px !important; | ||
138 | width: 11px !important; | ||
139 | height: 11px !important; | ||
140 | font-size: 10px !important; | ||
141 | z-index: 10 !important; | ||
142 | } | ||
143 | .syntaxhighlighter .toolbar span.title { | ||
144 | display: inline !important; | ||
145 | } | ||
146 | .syntaxhighlighter .toolbar a { | ||
147 | display: block !important; | ||
148 | text-align: center !important; | ||
149 | text-decoration: none !important; | ||
150 | padding-top: 1px !important; | ||
151 | } | ||
152 | .syntaxhighlighter .toolbar a.expandSource { | ||
153 | display: none !important; | ||
154 | } | ||
155 | .syntaxhighlighter.ie { | ||
156 | font-size: .9em !important; | ||
157 | padding: 1px 0 1px 0 !important; | ||
158 | } | ||
159 | .syntaxhighlighter.ie .toolbar { | ||
160 | line-height: 8px !important; | ||
161 | } | ||
162 | .syntaxhighlighter.ie .toolbar a { | ||
163 | padding-top: 0px !important; | ||
164 | } | ||
165 | .syntaxhighlighter.printing .line.alt1 .content, | ||
166 | .syntaxhighlighter.printing .line.alt2 .content, | ||
167 | .syntaxhighlighter.printing .line.highlighted .number, | ||
168 | .syntaxhighlighter.printing .line.highlighted.alt1 .content, | ||
169 | .syntaxhighlighter.printing .line.highlighted.alt2 .content { | ||
170 | background: none !important; | ||
171 | } | ||
172 | .syntaxhighlighter.printing .line .number { | ||
173 | color: #bbbbbb !important; | ||
174 | } | ||
175 | .syntaxhighlighter.printing .line .content { | ||
176 | color: black !important; | ||
177 | } | ||
178 | .syntaxhighlighter.printing .toolbar { | ||
179 | display: none !important; | ||
180 | } | ||
181 | .syntaxhighlighter.printing a { | ||
182 | text-decoration: none !important; | ||
183 | } | ||
184 | .syntaxhighlighter.printing .plain, .syntaxhighlighter.printing .plain a { | ||
185 | color: black !important; | ||
186 | } | ||
187 | .syntaxhighlighter.printing .comments, .syntaxhighlighter.printing .comments a { | ||
188 | color: #008200 !important; | ||
189 | } | ||
190 | .syntaxhighlighter.printing .string, .syntaxhighlighter.printing .string a { | ||
191 | color: blue !important; | ||
192 | } | ||
193 | .syntaxhighlighter.printing .keyword { | ||
194 | color: #006699 !important; | ||
195 | font-weight: bold !important; | ||
196 | } | ||
197 | .syntaxhighlighter.printing .preprocessor { | ||
198 | color: gray !important; | ||
199 | } | ||
200 | .syntaxhighlighter.printing .variable { | ||
201 | color: #aa7700 !important; | ||
202 | } | ||
203 | .syntaxhighlighter.printing .value { | ||
204 | color: #009900 !important; | ||
205 | } | ||
206 | .syntaxhighlighter.printing .functions { | ||
207 | color: #ff1493 !important; | ||
208 | } | ||
209 | .syntaxhighlighter.printing .constants { | ||
210 | color: #0066cc !important; | ||
211 | } | ||
212 | .syntaxhighlighter.printing .script { | ||
213 | font-weight: bold !important; | ||
214 | } | ||
215 | .syntaxhighlighter.printing .color1, .syntaxhighlighter.printing .color1 a { | ||
216 | color: gray !important; | ||
217 | } | ||
218 | .syntaxhighlighter.printing .color2, .syntaxhighlighter.printing .color2 a { | ||
219 | color: #ff1493 !important; | ||
220 | } | ||
221 | .syntaxhighlighter.printing .color3, .syntaxhighlighter.printing .color3 a { | ||
222 | color: red !important; | ||
223 | } | ||
224 | .syntaxhighlighter.printing .break, .syntaxhighlighter.printing .break a { | ||
225 | color: black !important; | ||
226 | } | ||
227 | |||
228 | .syntaxhighlighter { | ||
229 | background-color: #222222 !important; | ||
230 | } | ||
231 | .syntaxhighlighter .line.alt1 { | ||
232 | background-color: #222222 !important; | ||
233 | } | ||
234 | .syntaxhighlighter .line.alt2 { | ||
235 | background-color: #222222 !important; | ||
236 | } | ||
237 | .syntaxhighlighter .line.highlighted.alt1, .syntaxhighlighter .line.highlighted.alt2 { | ||
238 | background-color: #253e5a !important; | ||
239 | } | ||
240 | .syntaxhighlighter .line.highlighted.number { | ||
241 | color: white !important; | ||
242 | } | ||
243 | .syntaxhighlighter table caption { | ||
244 | color: lime !important; | ||
245 | } | ||
246 | .syntaxhighlighter .gutter { | ||
247 | color: #38566f !important; | ||
248 | } | ||
249 | .syntaxhighlighter .gutter .line { | ||
250 | border-right: 3px solid #435a5f !important; | ||
251 | } | ||
252 | .syntaxhighlighter .gutter .line.highlighted { | ||
253 | background-color: #435a5f !important; | ||
254 | color: #222222 !important; | ||
255 | } | ||
256 | .syntaxhighlighter.printing .line .content { | ||
257 | border: none !important; | ||
258 | } | ||
259 | .syntaxhighlighter.collapsed { | ||
260 | overflow: visible !important; | ||
261 | } | ||
262 | .syntaxhighlighter.collapsed .toolbar { | ||
263 | color: #428bdd !important; | ||
264 | background: black !important; | ||
265 | border: 1px solid #435a5f !important; | ||
266 | } | ||
267 | .syntaxhighlighter.collapsed .toolbar a { | ||
268 | color: #428bdd !important; | ||
269 | } | ||
270 | .syntaxhighlighter.collapsed .toolbar a:hover { | ||
271 | color: lime !important; | ||
272 | } | ||
273 | .syntaxhighlighter .toolbar { | ||
274 | color: #aaaaff !important; | ||
275 | background: #435a5f !important; | ||
276 | border: none !important; | ||
277 | } | ||
278 | .syntaxhighlighter .toolbar a { | ||
279 | color: #aaaaff !important; | ||
280 | } | ||
281 | .syntaxhighlighter .toolbar a:hover { | ||
282 | color: #9ccff4 !important; | ||
283 | } | ||
284 | .syntaxhighlighter .plain, .syntaxhighlighter .plain a { | ||
285 | color: lime !important; | ||
286 | } | ||
287 | .syntaxhighlighter .comments, .syntaxhighlighter .comments a { | ||
288 | color: #428bdd !important; | ||
289 | } | ||
290 | .syntaxhighlighter .string, .syntaxhighlighter .string a { | ||
291 | color: lime !important; | ||
292 | } | ||
293 | .syntaxhighlighter .keyword { | ||
294 | color: #aaaaff !important; | ||
295 | } | ||
296 | .syntaxhighlighter .preprocessor { | ||
297 | color: #8aa6c1 !important; | ||
298 | } | ||
299 | .syntaxhighlighter .variable { | ||
300 | color: aqua !important; | ||
301 | } | ||
302 | .syntaxhighlighter .value { | ||
303 | color: #f7e741 !important; | ||
304 | } | ||
305 | .syntaxhighlighter .functions { | ||
306 | color: #ff8000 !important; | ||
307 | } | ||
308 | .syntaxhighlighter .constants { | ||
309 | color: yellow !important; | ||
310 | } | ||
311 | .syntaxhighlighter .script { | ||
312 | font-weight: bold !important; | ||
313 | color: #aaaaff !important; | ||
314 | background-color: none !important; | ||
315 | } | ||
316 | .syntaxhighlighter .color1, .syntaxhighlighter .color1 a { | ||
317 | color: red !important; | ||
318 | } | ||
319 | .syntaxhighlighter .color2, .syntaxhighlighter .color2 a { | ||
320 | color: yellow !important; | ||
321 | } | ||
322 | .syntaxhighlighter .color3, .syntaxhighlighter .color3 a { | ||
323 | color: #ffaa3e !important; | ||
324 | } | ||
diff --git a/Blocks/syntax/styles/shCoreMidnight.css b/Blocks/syntax/styles/shCoreMidnight.css new file mode 100644 index 0000000..e3733ee --- /dev/null +++ b/Blocks/syntax/styles/shCoreMidnight.css | |||
@@ -0,0 +1,324 @@ | |||
1 | /** | ||
2 | * SyntaxHighlighter | ||
3 | * http://alexgorbatchev.com/SyntaxHighlighter | ||
4 | * | ||
5 | * SyntaxHighlighter is donationware. If you are using it, please donate. | ||
6 | * http://alexgorbatchev.com/SyntaxHighlighter/donate.html | ||
7 | * | ||
8 | * @version | ||
9 | * 3.0.83 (July 02 2010) | ||
10 | * | ||
11 | * @copyright | ||
12 | * Copyright (C) 2004-2010 Alex Gorbatchev. | ||
13 | * | ||
14 | * @license | ||
15 | * Dual licensed under the MIT and GPL licenses. | ||
16 | */ | ||
17 | .syntaxhighlighter a, | ||
18 | .syntaxhighlighter div, | ||
19 | .syntaxhighlighter code, | ||
20 | .syntaxhighlighter table, | ||
21 | .syntaxhighlighter table td, | ||
22 | .syntaxhighlighter table tr, | ||
23 | .syntaxhighlighter table tbody, | ||
24 | .syntaxhighlighter table thead, | ||
25 | .syntaxhighlighter table caption, | ||
26 | .syntaxhighlighter textarea { | ||
27 | -moz-border-radius: 0 0 0 0 !important; | ||
28 | -webkit-border-radius: 0 0 0 0 !important; | ||
29 | background: none !important; | ||
30 | border: 0 !important; | ||
31 | bottom: auto !important; | ||
32 | float: none !important; | ||
33 | height: auto !important; | ||
34 | left: auto !important; | ||
35 | line-height: 1.1em !important; | ||
36 | margin: 0 !important; | ||
37 | outline: 0 !important; | ||
38 | overflow: visible !important; | ||
39 | padding: 0 !important; | ||
40 | position: static !important; | ||
41 | right: auto !important; | ||
42 | text-align: left !important; | ||
43 | top: auto !important; | ||
44 | vertical-align: baseline !important; | ||
45 | width: auto !important; | ||
46 | box-sizing: content-box !important; | ||
47 | font-family: "Consolas", "Bitstream Vera Sans Mono", "Courier New", Courier, monospace !important; | ||
48 | font-weight: normal !important; | ||
49 | font-style: normal !important; | ||
50 | font-size: 1em !important; | ||
51 | min-height: inherit !important; | ||
52 | min-height: auto !important; | ||
53 | } | ||
54 | |||
55 | .syntaxhighlighter { | ||
56 | width: 100% !important; | ||
57 | margin: 1em 0 1em 0 !important; | ||
58 | position: relative !important; | ||
59 | overflow: auto !important; | ||
60 | font-size: 1em !important; | ||
61 | } | ||
62 | .syntaxhighlighter.source { | ||
63 | overflow: hidden !important; | ||
64 | } | ||
65 | .syntaxhighlighter .bold { | ||
66 | font-weight: bold !important; | ||
67 | } | ||
68 | .syntaxhighlighter .italic { | ||
69 | font-style: italic !important; | ||
70 | } | ||
71 | .syntaxhighlighter .line { | ||
72 | white-space: pre !important; | ||
73 | } | ||
74 | .syntaxhighlighter table { | ||
75 | width: 100% !important; | ||
76 | } | ||
77 | .syntaxhighlighter table caption { | ||
78 | text-align: left !important; | ||
79 | padding: .5em 0 0.5em 1em !important; | ||
80 | } | ||
81 | .syntaxhighlighter table td.code { | ||
82 | width: 100% !important; | ||
83 | } | ||
84 | .syntaxhighlighter table td.code .container { | ||
85 | position: relative !important; | ||
86 | } | ||
87 | .syntaxhighlighter table td.code .container textarea { | ||
88 | box-sizing: border-box !important; | ||
89 | position: absolute !important; | ||
90 | left: 0 !important; | ||
91 | top: 0 !important; | ||
92 | width: 100% !important; | ||
93 | height: 100% !important; | ||
94 | border: none !important; | ||
95 | background: white !important; | ||
96 | padding-left: 1em !important; | ||
97 | overflow: hidden !important; | ||
98 | white-space: pre !important; | ||
99 | } | ||
100 | .syntaxhighlighter table td.gutter .line { | ||
101 | text-align: right !important; | ||
102 | padding: 0 0.5em 0 1em !important; | ||
103 | } | ||
104 | .syntaxhighlighter table td.code .line { | ||
105 | padding: 0 1em !important; | ||
106 | } | ||
107 | .syntaxhighlighter.nogutter td.code .container textarea, .syntaxhighlighter.nogutter td.code .line { | ||
108 | padding-left: 0em !important; | ||
109 | } | ||
110 | .syntaxhighlighter.show { | ||
111 | display: block !important; | ||
112 | } | ||
113 | .syntaxhighlighter.collapsed table { | ||
114 | display: none !important; | ||
115 | } | ||
116 | .syntaxhighlighter.collapsed .toolbar { | ||
117 | padding: 0.1em 0.8em 0em 0.8em !important; | ||
118 | font-size: 1em !important; | ||
119 | position: static !important; | ||
120 | width: auto !important; | ||
121 | height: auto !important; | ||
122 | } | ||
123 | .syntaxhighlighter.collapsed .toolbar span { | ||
124 | display: inline !important; | ||
125 | margin-right: 1em !important; | ||
126 | } | ||
127 | .syntaxhighlighter.collapsed .toolbar span a { | ||
128 | padding: 0 !important; | ||
129 | display: none !important; | ||
130 | } | ||
131 | .syntaxhighlighter.collapsed .toolbar span a.expandSource { | ||
132 | display: inline !important; | ||
133 | } | ||
134 | .syntaxhighlighter .toolbar { | ||
135 | position: absolute !important; | ||
136 | right: 1px !important; | ||
137 | top: 1px !important; | ||
138 | width: 11px !important; | ||
139 | height: 11px !important; | ||
140 | font-size: 10px !important; | ||
141 | z-index: 10 !important; | ||
142 | } | ||
143 | .syntaxhighlighter .toolbar span.title { | ||
144 | display: inline !important; | ||
145 | } | ||
146 | .syntaxhighlighter .toolbar a { | ||
147 | display: block !important; | ||
148 | text-align: center !important; | ||
149 | text-decoration: none !important; | ||
150 | padding-top: 1px !important; | ||
151 | } | ||
152 | .syntaxhighlighter .toolbar a.expandSource { | ||
153 | display: none !important; | ||
154 | } | ||
155 | .syntaxhighlighter.ie { | ||
156 | font-size: .9em !important; | ||
157 | padding: 1px 0 1px 0 !important; | ||
158 | } | ||
159 | .syntaxhighlighter.ie .toolbar { | ||
160 | line-height: 8px !important; | ||
161 | } | ||
162 | .syntaxhighlighter.ie .toolbar a { | ||
163 | padding-top: 0px !important; | ||
164 | } | ||
165 | .syntaxhighlighter.printing .line.alt1 .content, | ||
166 | .syntaxhighlighter.printing .line.alt2 .content, | ||
167 | .syntaxhighlighter.printing .line.highlighted .number, | ||
168 | .syntaxhighlighter.printing .line.highlighted.alt1 .content, | ||
169 | .syntaxhighlighter.printing .line.highlighted.alt2 .content { | ||
170 | background: none !important; | ||
171 | } | ||
172 | .syntaxhighlighter.printing .line .number { | ||
173 | color: #bbbbbb !important; | ||
174 | } | ||
175 | .syntaxhighlighter.printing .line .content { | ||
176 | color: black !important; | ||
177 | } | ||
178 | .syntaxhighlighter.printing .toolbar { | ||
179 | display: none !important; | ||
180 | } | ||
181 | .syntaxhighlighter.printing a { | ||
182 | text-decoration: none !important; | ||
183 | } | ||
184 | .syntaxhighlighter.printing .plain, .syntaxhighlighter.printing .plain a { | ||
185 | color: black !important; | ||
186 | } | ||
187 | .syntaxhighlighter.printing .comments, .syntaxhighlighter.printing .comments a { | ||
188 | color: #008200 !important; | ||
189 | } | ||
190 | .syntaxhighlighter.printing .string, .syntaxhighlighter.printing .string a { | ||
191 | color: blue !important; | ||
192 | } | ||
193 | .syntaxhighlighter.printing .keyword { | ||
194 | color: #006699 !important; | ||
195 | font-weight: bold !important; | ||
196 | } | ||
197 | .syntaxhighlighter.printing .preprocessor { | ||
198 | color: gray !important; | ||
199 | } | ||
200 | .syntaxhighlighter.printing .variable { | ||
201 | color: #aa7700 !important; | ||
202 | } | ||
203 | .syntaxhighlighter.printing .value { | ||
204 | color: #009900 !important; | ||
205 | } | ||
206 | .syntaxhighlighter.printing .functions { | ||
207 | color: #ff1493 !important; | ||
208 | } | ||
209 | .syntaxhighlighter.printing .constants { | ||
210 | color: #0066cc !important; | ||
211 | } | ||
212 | .syntaxhighlighter.printing .script { | ||
213 | font-weight: bold !important; | ||
214 | } | ||
215 | .syntaxhighlighter.printing .color1, .syntaxhighlighter.printing .color1 a { | ||
216 | color: gray !important; | ||
217 | } | ||
218 | .syntaxhighlighter.printing .color2, .syntaxhighlighter.printing .color2 a { | ||
219 | color: #ff1493 !important; | ||
220 | } | ||
221 | .syntaxhighlighter.printing .color3, .syntaxhighlighter.printing .color3 a { | ||
222 | color: red !important; | ||
223 | } | ||
224 | .syntaxhighlighter.printing .break, .syntaxhighlighter.printing .break a { | ||
225 | color: black !important; | ||
226 | } | ||
227 | |||
228 | .syntaxhighlighter { | ||
229 | background-color: #0f192a !important; | ||
230 | } | ||
231 | .syntaxhighlighter .line.alt1 { | ||
232 | background-color: #0f192a !important; | ||
233 | } | ||
234 | .syntaxhighlighter .line.alt2 { | ||
235 | background-color: #0f192a !important; | ||
236 | } | ||
237 | .syntaxhighlighter .line.highlighted.alt1, .syntaxhighlighter .line.highlighted.alt2 { | ||
238 | background-color: #253e5a !important; | ||
239 | } | ||
240 | .syntaxhighlighter .line.highlighted.number { | ||
241 | color: #38566f !important; | ||
242 | } | ||
243 | .syntaxhighlighter table caption { | ||
244 | color: #d1edff !important; | ||
245 | } | ||
246 | .syntaxhighlighter .gutter { | ||
247 | color: #afafaf !important; | ||
248 | } | ||
249 | .syntaxhighlighter .gutter .line { | ||
250 | border-right: 3px solid #435a5f !important; | ||
251 | } | ||
252 | .syntaxhighlighter .gutter .line.highlighted { | ||
253 | background-color: #435a5f !important; | ||
254 | color: #0f192a !important; | ||
255 | } | ||
256 | .syntaxhighlighter.printing .line .content { | ||
257 | border: none !important; | ||
258 | } | ||
259 | .syntaxhighlighter.collapsed { | ||
260 | overflow: visible !important; | ||
261 | } | ||
262 | .syntaxhighlighter.collapsed .toolbar { | ||
263 | color: #428bdd !important; | ||
264 | background: black !important; | ||
265 | border: 1px solid #435a5f !important; | ||
266 | } | ||
267 | .syntaxhighlighter.collapsed .toolbar a { | ||
268 | color: #428bdd !important; | ||
269 | } | ||
270 | .syntaxhighlighter.collapsed .toolbar a:hover { | ||
271 | color: #1dc116 !important; | ||
272 | } | ||
273 | .syntaxhighlighter .toolbar { | ||
274 | color: #d1edff !important; | ||
275 | background: #435a5f !important; | ||
276 | border: none !important; | ||
277 | } | ||
278 | .syntaxhighlighter .toolbar a { | ||
279 | color: #d1edff !important; | ||
280 | } | ||
281 | .syntaxhighlighter .toolbar a:hover { | ||
282 | color: #8aa6c1 !important; | ||
283 | } | ||
284 | .syntaxhighlighter .plain, .syntaxhighlighter .plain a { | ||
285 | color: #d1edff !important; | ||
286 | } | ||
287 | .syntaxhighlighter .comments, .syntaxhighlighter .comments a { | ||
288 | color: #428bdd !important; | ||
289 | } | ||
290 | .syntaxhighlighter .string, .syntaxhighlighter .string a { | ||
291 | color: #1dc116 !important; | ||
292 | } | ||
293 | .syntaxhighlighter .keyword { | ||
294 | color: #b43d3d !important; | ||
295 | } | ||
296 | .syntaxhighlighter .preprocessor { | ||
297 | color: #8aa6c1 !important; | ||
298 | } | ||
299 | .syntaxhighlighter .variable { | ||
300 | color: #ffaa3e !important; | ||
301 | } | ||
302 | .syntaxhighlighter .value { | ||
303 | color: #f7e741 !important; | ||
304 | } | ||
305 | .syntaxhighlighter .functions { | ||
306 | color: #ffaa3e !important; | ||
307 | } | ||
308 | .syntaxhighlighter .constants { | ||
309 | color: #e0e8ff !important; | ||
310 | } | ||
311 | .syntaxhighlighter .script { | ||
312 | font-weight: bold !important; | ||
313 | color: #b43d3d !important; | ||
314 | background-color: none !important; | ||
315 | } | ||
316 | .syntaxhighlighter .color1, .syntaxhighlighter .color1 a { | ||
317 | color: #f8bb00 !important; | ||
318 | } | ||
319 | .syntaxhighlighter .color2, .syntaxhighlighter .color2 a { | ||
320 | color: white !important; | ||
321 | } | ||
322 | .syntaxhighlighter .color3, .syntaxhighlighter .color3 a { | ||
323 | color: #ffaa3e !important; | ||
324 | } | ||
diff --git a/Blocks/syntax/styles/shCoreRDark.css b/Blocks/syntax/styles/shCoreRDark.css new file mode 100644 index 0000000..d093683 --- /dev/null +++ b/Blocks/syntax/styles/shCoreRDark.css | |||
@@ -0,0 +1,324 @@ | |||
1 | /** | ||
2 | * SyntaxHighlighter | ||
3 | * http://alexgorbatchev.com/SyntaxHighlighter | ||
4 | * | ||
5 | * SyntaxHighlighter is donationware. If you are using it, please donate. | ||
6 | * http://alexgorbatchev.com/SyntaxHighlighter/donate.html | ||
7 | * | ||
8 | * @version | ||
9 | * 3.0.83 (July 02 2010) | ||
10 | * | ||
11 | * @copyright | ||
12 | * Copyright (C) 2004-2010 Alex Gorbatchev. | ||
13 | * | ||
14 | * @license | ||
15 | * Dual licensed under the MIT and GPL licenses. | ||
16 | */ | ||
17 | .syntaxhighlighter a, | ||
18 | .syntaxhighlighter div, | ||
19 | .syntaxhighlighter code, | ||
20 | .syntaxhighlighter table, | ||
21 | .syntaxhighlighter table td, | ||
22 | .syntaxhighlighter table tr, | ||
23 | .syntaxhighlighter table tbody, | ||
24 | .syntaxhighlighter table thead, | ||
25 | .syntaxhighlighter table caption, | ||
26 | .syntaxhighlighter textarea { | ||
27 | -moz-border-radius: 0 0 0 0 !important; | ||
28 | -webkit-border-radius: 0 0 0 0 !important; | ||
29 | background: none !important; | ||
30 | border: 0 !important; | ||
31 | bottom: auto !important; | ||
32 | float: none !important; | ||
33 | height: auto !important; | ||
34 | left: auto !important; | ||
35 | line-height: 1.1em !important; | ||
36 | margin: 0 !important; | ||
37 | outline: 0 !important; | ||
38 | overflow: visible !important; | ||
39 | padding: 0 !important; | ||
40 | position: static !important; | ||
41 | right: auto !important; | ||
42 | text-align: left !important; | ||
43 | top: auto !important; | ||
44 | vertical-align: baseline !important; | ||
45 | width: auto !important; | ||
46 | box-sizing: content-box !important; | ||
47 | font-family: "Consolas", "Bitstream Vera Sans Mono", "Courier New", Courier, monospace !important; | ||
48 | font-weight: normal !important; | ||
49 | font-style: normal !important; | ||
50 | font-size: 1em !important; | ||
51 | min-height: inherit !important; | ||
52 | min-height: auto !important; | ||
53 | } | ||
54 | |||
55 | .syntaxhighlighter { | ||
56 | width: 100% !important; | ||
57 | margin: 1em 0 1em 0 !important; | ||
58 | position: relative !important; | ||
59 | overflow: auto !important; | ||
60 | font-size: 1em !important; | ||
61 | } | ||
62 | .syntaxhighlighter.source { | ||
63 | overflow: hidden !important; | ||
64 | } | ||
65 | .syntaxhighlighter .bold { | ||
66 | font-weight: bold !important; | ||
67 | } | ||
68 | .syntaxhighlighter .italic { | ||
69 | font-style: italic !important; | ||
70 | } | ||
71 | .syntaxhighlighter .line { | ||
72 | white-space: pre !important; | ||
73 | } | ||
74 | .syntaxhighlighter table { | ||
75 | width: 100% !important; | ||
76 | } | ||
77 | .syntaxhighlighter table caption { | ||
78 | text-align: left !important; | ||
79 | padding: .5em 0 0.5em 1em !important; | ||
80 | } | ||
81 | .syntaxhighlighter table td.code { | ||
82 | width: 100% !important; | ||
83 | } | ||
84 | .syntaxhighlighter table td.code .container { | ||
85 | position: relative !important; | ||
86 | } | ||
87 | .syntaxhighlighter table td.code .container textarea { | ||
88 | box-sizing: border-box !important; | ||
89 | position: absolute !important; | ||
90 | left: 0 !important; | ||
91 | top: 0 !important; | ||
92 | width: 100% !important; | ||
93 | height: 100% !important; | ||
94 | border: none !important; | ||
95 | background: white !important; | ||
96 | padding-left: 1em !important; | ||
97 | overflow: hidden !important; | ||
98 | white-space: pre !important; | ||
99 | } | ||
100 | .syntaxhighlighter table td.gutter .line { | ||
101 | text-align: right !important; | ||
102 | padding: 0 0.5em 0 1em !important; | ||
103 | } | ||
104 | .syntaxhighlighter table td.code .line { | ||
105 | padding: 0 1em !important; | ||
106 | } | ||
107 | .syntaxhighlighter.nogutter td.code .container textarea, .syntaxhighlighter.nogutter td.code .line { | ||
108 | padding-left: 0em !important; | ||
109 | } | ||
110 | .syntaxhighlighter.show { | ||
111 | display: block !important; | ||
112 | } | ||
113 | .syntaxhighlighter.collapsed table { | ||
114 | display: none !important; | ||
115 | } | ||
116 | .syntaxhighlighter.collapsed .toolbar { | ||
117 | padding: 0.1em 0.8em 0em 0.8em !important; | ||
118 | font-size: 1em !important; | ||
119 | position: static !important; | ||
120 | width: auto !important; | ||
121 | height: auto !important; | ||
122 | } | ||
123 | .syntaxhighlighter.collapsed .toolbar span { | ||
124 | display: inline !important; | ||
125 | margin-right: 1em !important; | ||
126 | } | ||
127 | .syntaxhighlighter.collapsed .toolbar span a { | ||
128 | padding: 0 !important; | ||
129 | display: none !important; | ||
130 | } | ||
131 | .syntaxhighlighter.collapsed .toolbar span a.expandSource { | ||
132 | display: inline !important; | ||
133 | } | ||
134 | .syntaxhighlighter .toolbar { | ||
135 | position: absolute !important; | ||
136 | right: 1px !important; | ||
137 | top: 1px !important; | ||
138 | width: 11px !important; | ||
139 | height: 11px !important; | ||
140 | font-size: 10px !important; | ||
141 | z-index: 10 !important; | ||
142 | } | ||
143 | .syntaxhighlighter .toolbar span.title { | ||
144 | display: inline !important; | ||
145 | } | ||
146 | .syntaxhighlighter .toolbar a { | ||
147 | display: block !important; | ||
148 | text-align: center !important; | ||
149 | text-decoration: none !important; | ||
150 | padding-top: 1px !important; | ||
151 | } | ||
152 | .syntaxhighlighter .toolbar a.expandSource { | ||
153 | display: none !important; | ||
154 | } | ||
155 | .syntaxhighlighter.ie { | ||
156 | font-size: .9em !important; | ||
157 | padding: 1px 0 1px 0 !important; | ||
158 | } | ||
159 | .syntaxhighlighter.ie .toolbar { | ||
160 | line-height: 8px !important; | ||
161 | } | ||
162 | .syntaxhighlighter.ie .toolbar a { | ||
163 | padding-top: 0px !important; | ||
164 | } | ||
165 | .syntaxhighlighter.printing .line.alt1 .content, | ||
166 | .syntaxhighlighter.printing .line.alt2 .content, | ||
167 | .syntaxhighlighter.printing .line.highlighted .number, | ||
168 | .syntaxhighlighter.printing .line.highlighted.alt1 .content, | ||
169 | .syntaxhighlighter.printing .line.highlighted.alt2 .content { | ||
170 | background: none !important; | ||
171 | } | ||
172 | .syntaxhighlighter.printing .line .number { | ||
173 | color: #bbbbbb !important; | ||
174 | } | ||
175 | .syntaxhighlighter.printing .line .content { | ||
176 | color: black !important; | ||
177 | } | ||
178 | .syntaxhighlighter.printing .toolbar { | ||
179 | display: none !important; | ||
180 | } | ||
181 | .syntaxhighlighter.printing a { | ||
182 | text-decoration: none !important; | ||
183 | } | ||
184 | .syntaxhighlighter.printing .plain, .syntaxhighlighter.printing .plain a { | ||
185 | color: black !important; | ||
186 | } | ||
187 | .syntaxhighlighter.printing .comments, .syntaxhighlighter.printing .comments a { | ||
188 | color: #008200 !important; | ||
189 | } | ||
190 | .syntaxhighlighter.printing .string, .syntaxhighlighter.printing .string a { | ||
191 | color: blue !important; | ||
192 | } | ||
193 | .syntaxhighlighter.printing .keyword { | ||
194 | color: #006699 !important; | ||
195 | font-weight: bold !important; | ||
196 | } | ||
197 | .syntaxhighlighter.printing .preprocessor { | ||
198 | color: gray !important; | ||
199 | } | ||
200 | .syntaxhighlighter.printing .variable { | ||
201 | color: #aa7700 !important; | ||
202 | } | ||
203 | .syntaxhighlighter.printing .value { | ||
204 | color: #009900 !important; | ||
205 | } | ||
206 | .syntaxhighlighter.printing .functions { | ||
207 | color: #ff1493 !important; | ||
208 | } | ||
209 | .syntaxhighlighter.printing .constants { | ||
210 | color: #0066cc !important; | ||
211 | } | ||
212 | .syntaxhighlighter.printing .script { | ||
213 | font-weight: bold !important; | ||
214 | } | ||
215 | .syntaxhighlighter.printing .color1, .syntaxhighlighter.printing .color1 a { | ||
216 | color: gray !important; | ||
217 | } | ||
218 | .syntaxhighlighter.printing .color2, .syntaxhighlighter.printing .color2 a { | ||
219 | color: #ff1493 !important; | ||
220 | } | ||
221 | .syntaxhighlighter.printing .color3, .syntaxhighlighter.printing .color3 a { | ||
222 | color: red !important; | ||
223 | } | ||
224 | .syntaxhighlighter.printing .break, .syntaxhighlighter.printing .break a { | ||
225 | color: black !important; | ||
226 | } | ||
227 | |||
228 | .syntaxhighlighter { | ||
229 | background-color: #1b2426 !important; | ||
230 | } | ||
231 | .syntaxhighlighter .line.alt1 { | ||
232 | background-color: #1b2426 !important; | ||
233 | } | ||
234 | .syntaxhighlighter .line.alt2 { | ||
235 | background-color: #1b2426 !important; | ||
236 | } | ||
237 | .syntaxhighlighter .line.highlighted.alt1, .syntaxhighlighter .line.highlighted.alt2 { | ||
238 | background-color: #323e41 !important; | ||
239 | } | ||
240 | .syntaxhighlighter .line.highlighted.number { | ||
241 | color: #b9bdb6 !important; | ||
242 | } | ||
243 | .syntaxhighlighter table caption { | ||
244 | color: #b9bdb6 !important; | ||
245 | } | ||
246 | .syntaxhighlighter .gutter { | ||
247 | color: #afafaf !important; | ||
248 | } | ||
249 | .syntaxhighlighter .gutter .line { | ||
250 | border-right: 3px solid #435a5f !important; | ||
251 | } | ||
252 | .syntaxhighlighter .gutter .line.highlighted { | ||
253 | background-color: #435a5f !important; | ||
254 | color: #1b2426 !important; | ||
255 | } | ||
256 | .syntaxhighlighter.printing .line .content { | ||
257 | border: none !important; | ||
258 | } | ||
259 | .syntaxhighlighter.collapsed { | ||
260 | overflow: visible !important; | ||
261 | } | ||
262 | .syntaxhighlighter.collapsed .toolbar { | ||
263 | color: #5ba1cf !important; | ||
264 | background: black !important; | ||
265 | border: 1px solid #435a5f !important; | ||
266 | } | ||
267 | .syntaxhighlighter.collapsed .toolbar a { | ||
268 | color: #5ba1cf !important; | ||
269 | } | ||
270 | .syntaxhighlighter.collapsed .toolbar a:hover { | ||
271 | color: #5ce638 !important; | ||
272 | } | ||
273 | .syntaxhighlighter .toolbar { | ||
274 | color: white !important; | ||
275 | background: #435a5f !important; | ||
276 | border: none !important; | ||
277 | } | ||
278 | .syntaxhighlighter .toolbar a { | ||
279 | color: white !important; | ||
280 | } | ||
281 | .syntaxhighlighter .toolbar a:hover { | ||
282 | color: #e0e8ff !important; | ||
283 | } | ||
284 | .syntaxhighlighter .plain, .syntaxhighlighter .plain a { | ||
285 | color: #b9bdb6 !important; | ||
286 | } | ||
287 | .syntaxhighlighter .comments, .syntaxhighlighter .comments a { | ||
288 | color: #878a85 !important; | ||
289 | } | ||
290 | .syntaxhighlighter .string, .syntaxhighlighter .string a { | ||
291 | color: #5ce638 !important; | ||
292 | } | ||
293 | .syntaxhighlighter .keyword { | ||
294 | color: #5ba1cf !important; | ||
295 | } | ||
296 | .syntaxhighlighter .preprocessor { | ||
297 | color: #435a5f !important; | ||
298 | } | ||
299 | .syntaxhighlighter .variable { | ||
300 | color: #ffaa3e !important; | ||
301 | } | ||
302 | .syntaxhighlighter .value { | ||
303 | color: #009900 !important; | ||
304 | } | ||
305 | .syntaxhighlighter .functions { | ||
306 | color: #ffaa3e !important; | ||
307 | } | ||
308 | .syntaxhighlighter .constants { | ||
309 | color: #e0e8ff !important; | ||
310 | } | ||
311 | .syntaxhighlighter .script { | ||
312 | font-weight: bold !important; | ||
313 | color: #5ba1cf !important; | ||
314 | background-color: none !important; | ||
315 | } | ||
316 | .syntaxhighlighter .color1, .syntaxhighlighter .color1 a { | ||
317 | color: #e0e8ff !important; | ||
318 | } | ||
319 | .syntaxhighlighter .color2, .syntaxhighlighter .color2 a { | ||
320 | color: white !important; | ||
321 | } | ||
322 | .syntaxhighlighter .color3, .syntaxhighlighter .color3 a { | ||
323 | color: #ffaa3e !important; | ||
324 | } | ||
diff --git a/Blocks/syntax/styles/shThemeDefault.css b/Blocks/syntax/styles/shThemeDefault.css new file mode 100644 index 0000000..1365411 --- /dev/null +++ b/Blocks/syntax/styles/shThemeDefault.css | |||
@@ -0,0 +1,117 @@ | |||
1 | /** | ||
2 | * SyntaxHighlighter | ||
3 | * http://alexgorbatchev.com/SyntaxHighlighter | ||
4 | * | ||
5 | * SyntaxHighlighter is donationware. If you are using it, please donate. | ||
6 | * http://alexgorbatchev.com/SyntaxHighlighter/donate.html | ||
7 | * | ||
8 | * @version | ||
9 | * 3.0.83 (July 02 2010) | ||
10 | * | ||
11 | * @copyright | ||
12 | * Copyright (C) 2004-2010 Alex Gorbatchev. | ||
13 | * | ||
14 | * @license | ||
15 | * Dual licensed under the MIT and GPL licenses. | ||
16 | */ | ||
17 | .syntaxhighlighter { | ||
18 | background-color: white !important; | ||
19 | } | ||
20 | .syntaxhighlighter .line.alt1 { | ||
21 | background-color: white !important; | ||
22 | } | ||
23 | .syntaxhighlighter .line.alt2 { | ||
24 | background-color: white !important; | ||
25 | } | ||
26 | .syntaxhighlighter .line.highlighted.alt1, .syntaxhighlighter .line.highlighted.alt2 { | ||
27 | background-color: #e0e0e0 !important; | ||
28 | } | ||
29 | .syntaxhighlighter .line.highlighted.number { | ||
30 | color: black !important; | ||
31 | } | ||
32 | .syntaxhighlighter table caption { | ||
33 | color: black !important; | ||
34 | } | ||
35 | .syntaxhighlighter .gutter { | ||
36 | color: #afafaf !important; | ||
37 | } | ||
38 | .syntaxhighlighter .gutter .line { | ||
39 | border-right: 3px solid #6ce26c !important; | ||
40 | } | ||
41 | .syntaxhighlighter .gutter .line.highlighted { | ||
42 | background-color: #6ce26c !important; | ||
43 | color: white !important; | ||
44 | } | ||
45 | .syntaxhighlighter.printing .line .content { | ||
46 | border: none !important; | ||
47 | } | ||
48 | .syntaxhighlighter.collapsed { | ||
49 | overflow: visible !important; | ||
50 | } | ||
51 | .syntaxhighlighter.collapsed .toolbar { | ||
52 | color: blue !important; | ||
53 | background: white !important; | ||
54 | border: 1px solid #6ce26c !important; | ||
55 | } | ||
56 | .syntaxhighlighter.collapsed .toolbar a { | ||
57 | color: blue !important; | ||
58 | } | ||
59 | .syntaxhighlighter.collapsed .toolbar a:hover { | ||
60 | color: red !important; | ||
61 | } | ||
62 | .syntaxhighlighter .toolbar { | ||
63 | color: white !important; | ||
64 | background: #6ce26c !important; | ||
65 | border: none !important; | ||
66 | } | ||
67 | .syntaxhighlighter .toolbar a { | ||
68 | color: white !important; | ||
69 | } | ||
70 | .syntaxhighlighter .toolbar a:hover { | ||
71 | color: black !important; | ||
72 | } | ||
73 | .syntaxhighlighter .plain, .syntaxhighlighter .plain a { | ||
74 | color: black !important; | ||
75 | } | ||
76 | .syntaxhighlighter .comments, .syntaxhighlighter .comments a { | ||
77 | color: #008200 !important; | ||
78 | } | ||
79 | .syntaxhighlighter .string, .syntaxhighlighter .string a { | ||
80 | color: blue !important; | ||
81 | } | ||
82 | .syntaxhighlighter .keyword { | ||
83 | color: #006699 !important; | ||
84 | } | ||
85 | .syntaxhighlighter .preprocessor { | ||
86 | color: gray !important; | ||
87 | } | ||
88 | .syntaxhighlighter .variable { | ||
89 | color: #aa7700 !important; | ||
90 | } | ||
91 | .syntaxhighlighter .value { | ||
92 | color: #009900 !important; | ||
93 | } | ||
94 | .syntaxhighlighter .functions { | ||
95 | color: #ff1493 !important; | ||
96 | } | ||
97 | .syntaxhighlighter .constants { | ||
98 | color: #0066cc !important; | ||
99 | } | ||
100 | .syntaxhighlighter .script { | ||
101 | font-weight: bold !important; | ||
102 | color: #006699 !important; | ||
103 | background-color: none !important; | ||
104 | } | ||
105 | .syntaxhighlighter .color1, .syntaxhighlighter .color1 a { | ||
106 | color: gray !important; | ||
107 | } | ||
108 | .syntaxhighlighter .color2, .syntaxhighlighter .color2 a { | ||
109 | color: #ff1493 !important; | ||
110 | } | ||
111 | .syntaxhighlighter .color3, .syntaxhighlighter .color3 a { | ||
112 | color: red !important; | ||
113 | } | ||
114 | |||
115 | .syntaxhighlighter .keyword { | ||
116 | font-weight: bold !important; | ||
117 | } | ||
diff --git a/Blocks/syntax/styles/shThemeDjango.css b/Blocks/syntax/styles/shThemeDjango.css new file mode 100644 index 0000000..d8b4313 --- /dev/null +++ b/Blocks/syntax/styles/shThemeDjango.css | |||
@@ -0,0 +1,120 @@ | |||
1 | /** | ||
2 | * SyntaxHighlighter | ||
3 | * http://alexgorbatchev.com/SyntaxHighlighter | ||
4 | * | ||
5 | * SyntaxHighlighter is donationware. If you are using it, please donate. | ||
6 | * http://alexgorbatchev.com/SyntaxHighlighter/donate.html | ||
7 | * | ||
8 | * @version | ||
9 | * 3.0.83 (July 02 2010) | ||
10 | * | ||
11 | * @copyright | ||
12 | * Copyright (C) 2004-2010 Alex Gorbatchev. | ||
13 | * | ||
14 | * @license | ||
15 | * Dual licensed under the MIT and GPL licenses. | ||
16 | */ | ||
17 | .syntaxhighlighter { | ||
18 | background-color: #0a2b1d !important; | ||
19 | } | ||
20 | .syntaxhighlighter .line.alt1 { | ||
21 | background-color: #0a2b1d !important; | ||
22 | } | ||
23 | .syntaxhighlighter .line.alt2 { | ||
24 | background-color: #0a2b1d !important; | ||
25 | } | ||
26 | .syntaxhighlighter .line.highlighted.alt1, .syntaxhighlighter .line.highlighted.alt2 { | ||
27 | background-color: #233729 !important; | ||
28 | } | ||
29 | .syntaxhighlighter .line.highlighted.number { | ||
30 | color: white !important; | ||
31 | } | ||
32 | .syntaxhighlighter table caption { | ||
33 | color: #f8f8f8 !important; | ||
34 | } | ||
35 | .syntaxhighlighter .gutter { | ||
36 | color: #497958 !important; | ||
37 | } | ||
38 | .syntaxhighlighter .gutter .line { | ||
39 | border-right: 3px solid #41a83e !important; | ||
40 | } | ||
41 | .syntaxhighlighter .gutter .line.highlighted { | ||
42 | background-color: #41a83e !important; | ||
43 | color: #0a2b1d !important; | ||
44 | } | ||
45 | .syntaxhighlighter.printing .line .content { | ||
46 | border: none !important; | ||
47 | } | ||
48 | .syntaxhighlighter.collapsed { | ||
49 | overflow: visible !important; | ||
50 | } | ||
51 | .syntaxhighlighter.collapsed .toolbar { | ||
52 | color: #96dd3b !important; | ||
53 | background: black !important; | ||
54 | border: 1px solid #41a83e !important; | ||
55 | } | ||
56 | .syntaxhighlighter.collapsed .toolbar a { | ||
57 | color: #96dd3b !important; | ||
58 | } | ||
59 | .syntaxhighlighter.collapsed .toolbar a:hover { | ||
60 | color: white !important; | ||
61 | } | ||
62 | .syntaxhighlighter .toolbar { | ||
63 | color: white !important; | ||
64 | background: #41a83e !important; | ||
65 | border: none !important; | ||
66 | } | ||
67 | .syntaxhighlighter .toolbar a { | ||
68 | color: white !important; | ||
69 | } | ||
70 | .syntaxhighlighter .toolbar a:hover { | ||
71 | color: #ffe862 !important; | ||
72 | } | ||
73 | .syntaxhighlighter .plain, .syntaxhighlighter .plain a { | ||
74 | color: #f8f8f8 !important; | ||
75 | } | ||
76 | .syntaxhighlighter .comments, .syntaxhighlighter .comments a { | ||
77 | color: #336442 !important; | ||
78 | } | ||
79 | .syntaxhighlighter .string, .syntaxhighlighter .string a { | ||
80 | color: #9df39f !important; | ||
81 | } | ||
82 | .syntaxhighlighter .keyword { | ||
83 | color: #96dd3b !important; | ||
84 | } | ||
85 | .syntaxhighlighter .preprocessor { | ||
86 | color: #91bb9e !important; | ||
87 | } | ||
88 | .syntaxhighlighter .variable { | ||
89 | color: #ffaa3e !important; | ||
90 | } | ||
91 | .syntaxhighlighter .value { | ||
92 | color: #f7e741 !important; | ||
93 | } | ||
94 | .syntaxhighlighter .functions { | ||
95 | color: #ffaa3e !important; | ||
96 | } | ||
97 | .syntaxhighlighter .constants { | ||
98 | color: #e0e8ff !important; | ||
99 | } | ||
100 | .syntaxhighlighter .script { | ||
101 | font-weight: bold !important; | ||
102 | color: #96dd3b !important; | ||
103 | background-color: none !important; | ||
104 | } | ||
105 | .syntaxhighlighter .color1, .syntaxhighlighter .color1 a { | ||
106 | color: #eb939a !important; | ||
107 | } | ||
108 | .syntaxhighlighter .color2, .syntaxhighlighter .color2 a { | ||
109 | color: #91bb9e !important; | ||
110 | } | ||
111 | .syntaxhighlighter .color3, .syntaxhighlighter .color3 a { | ||
112 | color: #edef7d !important; | ||
113 | } | ||
114 | |||
115 | .syntaxhighlighter .comments { | ||
116 | font-style: italic !important; | ||
117 | } | ||
118 | .syntaxhighlighter .keyword { | ||
119 | font-weight: bold !important; | ||
120 | } | ||
diff --git a/Blocks/syntax/styles/shThemeEclipse.css b/Blocks/syntax/styles/shThemeEclipse.css new file mode 100644 index 0000000..77377d9 --- /dev/null +++ b/Blocks/syntax/styles/shThemeEclipse.css | |||
@@ -0,0 +1,128 @@ | |||
1 | /** | ||
2 | * SyntaxHighlighter | ||
3 | * http://alexgorbatchev.com/SyntaxHighlighter | ||
4 | * | ||
5 | * SyntaxHighlighter is donationware. If you are using it, please donate. | ||
6 | * http://alexgorbatchev.com/SyntaxHighlighter/donate.html | ||
7 | * | ||
8 | * @version | ||
9 | * 3.0.83 (July 02 2010) | ||
10 | * | ||
11 | * @copyright | ||
12 | * Copyright (C) 2004-2010 Alex Gorbatchev. | ||
13 | * | ||
14 | * @license | ||
15 | * Dual licensed under the MIT and GPL licenses. | ||
16 | */ | ||
17 | .syntaxhighlighter { | ||
18 | background-color: white !important; | ||
19 | } | ||
20 | .syntaxhighlighter .line.alt1 { | ||
21 | background-color: white !important; | ||
22 | } | ||
23 | .syntaxhighlighter .line.alt2 { | ||
24 | background-color: white !important; | ||
25 | } | ||
26 | .syntaxhighlighter .line.highlighted.alt1, .syntaxhighlighter .line.highlighted.alt2 { | ||
27 | background-color: #c3defe !important; | ||
28 | } | ||
29 | .syntaxhighlighter .line.highlighted.number { | ||
30 | color: white !important; | ||
31 | } | ||
32 | .syntaxhighlighter table caption { | ||
33 | color: black !important; | ||
34 | } | ||
35 | .syntaxhighlighter .gutter { | ||
36 | color: #787878 !important; | ||
37 | } | ||
38 | .syntaxhighlighter .gutter .line { | ||
39 | border-right: 3px solid #d4d0c8 !important; | ||
40 | } | ||
41 | .syntaxhighlighter .gutter .line.highlighted { | ||
42 | background-color: #d4d0c8 !important; | ||
43 | color: white !important; | ||
44 | } | ||
45 | .syntaxhighlighter.printing .line .content { | ||
46 | border: none !important; | ||
47 | } | ||
48 | .syntaxhighlighter.collapsed { | ||
49 | overflow: visible !important; | ||
50 | } | ||
51 | .syntaxhighlighter.collapsed .toolbar { | ||
52 | color: #3f5fbf !important; | ||
53 | background: white !important; | ||
54 | border: 1px solid #d4d0c8 !important; | ||
55 | } | ||
56 | .syntaxhighlighter.collapsed .toolbar a { | ||
57 | color: #3f5fbf !important; | ||
58 | } | ||
59 | .syntaxhighlighter.collapsed .toolbar a:hover { | ||
60 | color: #aa7700 !important; | ||
61 | } | ||
62 | .syntaxhighlighter .toolbar { | ||
63 | color: #a0a0a0 !important; | ||
64 | background: #d4d0c8 !important; | ||
65 | border: none !important; | ||
66 | } | ||
67 | .syntaxhighlighter .toolbar a { | ||
68 | color: #a0a0a0 !important; | ||
69 | } | ||
70 | .syntaxhighlighter .toolbar a:hover { | ||
71 | color: red !important; | ||
72 | } | ||
73 | .syntaxhighlighter .plain, .syntaxhighlighter .plain a { | ||
74 | color: black !important; | ||
75 | } | ||
76 | .syntaxhighlighter .comments, .syntaxhighlighter .comments a { | ||
77 | color: #3f5fbf !important; | ||
78 | } | ||
79 | .syntaxhighlighter .string, .syntaxhighlighter .string a { | ||
80 | color: #2a00ff !important; | ||
81 | } | ||
82 | .syntaxhighlighter .keyword { | ||
83 | color: #7f0055 !important; | ||
84 | } | ||
85 | .syntaxhighlighter .preprocessor { | ||
86 | color: #646464 !important; | ||
87 | } | ||
88 | .syntaxhighlighter .variable { | ||
89 | color: #aa7700 !important; | ||
90 | } | ||
91 | .syntaxhighlighter .value { | ||
92 | color: #009900 !important; | ||
93 | } | ||
94 | .syntaxhighlighter .functions { | ||
95 | color: #ff1493 !important; | ||
96 | } | ||
97 | .syntaxhighlighter .constants { | ||
98 | color: #0066cc !important; | ||
99 | } | ||
100 | .syntaxhighlighter .script { | ||
101 | font-weight: bold !important; | ||
102 | color: #7f0055 !important; | ||
103 | background-color: none !important; | ||
104 | } | ||
105 | .syntaxhighlighter .color1, .syntaxhighlighter .color1 a { | ||
106 | color: gray !important; | ||
107 | } | ||
108 | .syntaxhighlighter .color2, .syntaxhighlighter .color2 a { | ||
109 | color: #ff1493 !important; | ||
110 | } | ||
111 | .syntaxhighlighter .color3, .syntaxhighlighter .color3 a { | ||
112 | color: red !important; | ||
113 | } | ||
114 | |||
115 | .syntaxhighlighter .keyword { | ||
116 | font-weight: bold !important; | ||
117 | } | ||
118 | .syntaxhighlighter .xml .keyword { | ||
119 | color: #3f7f7f !important; | ||
120 | font-weight: normal !important; | ||
121 | } | ||
122 | .syntaxhighlighter .xml .color1, .syntaxhighlighter .xml .color1 a { | ||
123 | color: #7f007f !important; | ||
124 | } | ||
125 | .syntaxhighlighter .xml .string { | ||
126 | font-style: italic !important; | ||
127 | color: #2a00ff !important; | ||
128 | } | ||
diff --git a/Blocks/syntax/styles/shThemeEmacs.css b/Blocks/syntax/styles/shThemeEmacs.css new file mode 100644 index 0000000..dae5053 --- /dev/null +++ b/Blocks/syntax/styles/shThemeEmacs.css | |||
@@ -0,0 +1,113 @@ | |||
1 | /** | ||
2 | * SyntaxHighlighter | ||
3 | * http://alexgorbatchev.com/SyntaxHighlighter | ||
4 | * | ||
5 | * SyntaxHighlighter is donationware. If you are using it, please donate. | ||
6 | * http://alexgorbatchev.com/SyntaxHighlighter/donate.html | ||
7 | * | ||
8 | * @version | ||
9 | * 3.0.83 (July 02 2010) | ||
10 | * | ||
11 | * @copyright | ||
12 | * Copyright (C) 2004-2010 Alex Gorbatchev. | ||
13 | * | ||
14 | * @license | ||
15 | * Dual licensed under the MIT and GPL licenses. | ||
16 | */ | ||
17 | .syntaxhighlighter { | ||
18 | background-color: black !important; | ||
19 | } | ||
20 | .syntaxhighlighter .line.alt1 { | ||
21 | background-color: black !important; | ||
22 | } | ||
23 | .syntaxhighlighter .line.alt2 { | ||
24 | background-color: black !important; | ||
25 | } | ||
26 | .syntaxhighlighter .line.highlighted.alt1, .syntaxhighlighter .line.highlighted.alt2 { | ||
27 | background-color: #2a3133 !important; | ||
28 | } | ||
29 | .syntaxhighlighter .line.highlighted.number { | ||
30 | color: white !important; | ||
31 | } | ||
32 | .syntaxhighlighter table caption { | ||
33 | color: #d3d3d3 !important; | ||
34 | } | ||
35 | .syntaxhighlighter .gutter { | ||
36 | color: #d3d3d3 !important; | ||
37 | } | ||
38 | .syntaxhighlighter .gutter .line { | ||
39 | border-right: 3px solid #990000 !important; | ||
40 | } | ||
41 | .syntaxhighlighter .gutter .line.highlighted { | ||
42 | background-color: #990000 !important; | ||
43 | color: black !important; | ||
44 | } | ||
45 | .syntaxhighlighter.printing .line .content { | ||
46 | border: none !important; | ||
47 | } | ||
48 | .syntaxhighlighter.collapsed { | ||
49 | overflow: visible !important; | ||
50 | } | ||
51 | .syntaxhighlighter.collapsed .toolbar { | ||
52 | color: #ebdb8d !important; | ||
53 | background: black !important; | ||
54 | border: 1px solid #990000 !important; | ||
55 | } | ||
56 | .syntaxhighlighter.collapsed .toolbar a { | ||
57 | color: #ebdb8d !important; | ||
58 | } | ||
59 | .syntaxhighlighter.collapsed .toolbar a:hover { | ||
60 | color: #ff7d27 !important; | ||
61 | } | ||
62 | .syntaxhighlighter .toolbar { | ||
63 | color: white !important; | ||
64 | background: #990000 !important; | ||
65 | border: none !important; | ||
66 | } | ||
67 | .syntaxhighlighter .toolbar a { | ||
68 | color: white !important; | ||
69 | } | ||
70 | .syntaxhighlighter .toolbar a:hover { | ||
71 | color: #9ccff4 !important; | ||
72 | } | ||
73 | .syntaxhighlighter .plain, .syntaxhighlighter .plain a { | ||
74 | color: #d3d3d3 !important; | ||
75 | } | ||
76 | .syntaxhighlighter .comments, .syntaxhighlighter .comments a { | ||
77 | color: #ff7d27 !important; | ||
78 | } | ||
79 | .syntaxhighlighter .string, .syntaxhighlighter .string a { | ||
80 | color: #ff9e7b !important; | ||
81 | } | ||
82 | .syntaxhighlighter .keyword { | ||
83 | color: aqua !important; | ||
84 | } | ||
85 | .syntaxhighlighter .preprocessor { | ||
86 | color: #aec4de !important; | ||
87 | } | ||
88 | .syntaxhighlighter .variable { | ||
89 | color: #ffaa3e !important; | ||
90 | } | ||
91 | .syntaxhighlighter .value { | ||
92 | color: #009900 !important; | ||
93 | } | ||
94 | .syntaxhighlighter .functions { | ||
95 | color: #81cef9 !important; | ||
96 | } | ||
97 | .syntaxhighlighter .constants { | ||
98 | color: #ff9e7b !important; | ||
99 | } | ||
100 | .syntaxhighlighter .script { | ||
101 | font-weight: bold !important; | ||
102 | color: aqua !important; | ||
103 | background-color: none !important; | ||
104 | } | ||
105 | .syntaxhighlighter .color1, .syntaxhighlighter .color1 a { | ||
106 | color: #ebdb8d !important; | ||
107 | } | ||
108 | .syntaxhighlighter .color2, .syntaxhighlighter .color2 a { | ||
109 | color: #ff7d27 !important; | ||
110 | } | ||
111 | .syntaxhighlighter .color3, .syntaxhighlighter .color3 a { | ||
112 | color: #aec4de !important; | ||
113 | } | ||
diff --git a/Blocks/syntax/styles/shThemeFadeToGrey.css b/Blocks/syntax/styles/shThemeFadeToGrey.css new file mode 100644 index 0000000..8fbd871 --- /dev/null +++ b/Blocks/syntax/styles/shThemeFadeToGrey.css | |||
@@ -0,0 +1,117 @@ | |||
1 | /** | ||
2 | * SyntaxHighlighter | ||
3 | * http://alexgorbatchev.com/SyntaxHighlighter | ||
4 | * | ||
5 | * SyntaxHighlighter is donationware. If you are using it, please donate. | ||
6 | * http://alexgorbatchev.com/SyntaxHighlighter/donate.html | ||
7 | * | ||
8 | * @version | ||
9 | * 3.0.83 (July 02 2010) | ||
10 | * | ||
11 | * @copyright | ||
12 | * Copyright (C) 2004-2010 Alex Gorbatchev. | ||
13 | * | ||
14 | * @license | ||
15 | * Dual licensed under the MIT and GPL licenses. | ||
16 | */ | ||
17 | .syntaxhighlighter { | ||
18 | background-color: #121212 !important; | ||
19 | } | ||
20 | .syntaxhighlighter .line.alt1 { | ||
21 | background-color: #121212 !important; | ||
22 | } | ||
23 | .syntaxhighlighter .line.alt2 { | ||
24 | background-color: #121212 !important; | ||
25 | } | ||
26 | .syntaxhighlighter .line.highlighted.alt1, .syntaxhighlighter .line.highlighted.alt2 { | ||
27 | background-color: #2c2c29 !important; | ||
28 | } | ||
29 | .syntaxhighlighter .line.highlighted.number { | ||
30 | color: white !important; | ||
31 | } | ||
32 | .syntaxhighlighter table caption { | ||
33 | color: white !important; | ||
34 | } | ||
35 | .syntaxhighlighter .gutter { | ||
36 | color: #afafaf !important; | ||
37 | } | ||
38 | .syntaxhighlighter .gutter .line { | ||
39 | border-right: 3px solid #3185b9 !important; | ||
40 | } | ||
41 | .syntaxhighlighter .gutter .line.highlighted { | ||
42 | background-color: #3185b9 !important; | ||
43 | color: #121212 !important; | ||
44 | } | ||
45 | .syntaxhighlighter.printing .line .content { | ||
46 | border: none !important; | ||
47 | } | ||
48 | .syntaxhighlighter.collapsed { | ||
49 | overflow: visible !important; | ||
50 | } | ||
51 | .syntaxhighlighter.collapsed .toolbar { | ||
52 | color: #3185b9 !important; | ||
53 | background: black !important; | ||
54 | border: 1px solid #3185b9 !important; | ||
55 | } | ||
56 | .syntaxhighlighter.collapsed .toolbar a { | ||
57 | color: #3185b9 !important; | ||
58 | } | ||
59 | .syntaxhighlighter.collapsed .toolbar a:hover { | ||
60 | color: #d01d33 !important; | ||
61 | } | ||
62 | .syntaxhighlighter .toolbar { | ||
63 | color: white !important; | ||
64 | background: #3185b9 !important; | ||
65 | border: none !important; | ||
66 | } | ||
67 | .syntaxhighlighter .toolbar a { | ||
68 | color: white !important; | ||
69 | } | ||
70 | .syntaxhighlighter .toolbar a:hover { | ||
71 | color: #96daff !important; | ||
72 | } | ||
73 | .syntaxhighlighter .plain, .syntaxhighlighter .plain a { | ||
74 | color: white !important; | ||
75 | } | ||
76 | .syntaxhighlighter .comments, .syntaxhighlighter .comments a { | ||
77 | color: #696854 !important; | ||
78 | } | ||
79 | .syntaxhighlighter .string, .syntaxhighlighter .string a { | ||
80 | color: #e3e658 !important; | ||
81 | } | ||
82 | .syntaxhighlighter .keyword { | ||
83 | color: #d01d33 !important; | ||
84 | } | ||
85 | .syntaxhighlighter .preprocessor { | ||
86 | color: #435a5f !important; | ||
87 | } | ||
88 | .syntaxhighlighter .variable { | ||
89 | color: #898989 !important; | ||
90 | } | ||
91 | .syntaxhighlighter .value { | ||
92 | color: #009900 !important; | ||
93 | } | ||
94 | .syntaxhighlighter .functions { | ||
95 | color: #aaaaaa !important; | ||
96 | } | ||
97 | .syntaxhighlighter .constants { | ||
98 | color: #96daff !important; | ||
99 | } | ||
100 | .syntaxhighlighter .script { | ||
101 | font-weight: bold !important; | ||
102 | color: #d01d33 !important; | ||
103 | background-color: none !important; | ||
104 | } | ||
105 | .syntaxhighlighter .color1, .syntaxhighlighter .color1 a { | ||
106 | color: #ffc074 !important; | ||
107 | } | ||
108 | .syntaxhighlighter .color2, .syntaxhighlighter .color2 a { | ||
109 | color: #4a8cdb !important; | ||
110 | } | ||
111 | .syntaxhighlighter .color3, .syntaxhighlighter .color3 a { | ||
112 | color: #96daff !important; | ||
113 | } | ||
114 | |||
115 | .syntaxhighlighter .functions { | ||
116 | font-weight: bold !important; | ||
117 | } | ||
diff --git a/Blocks/syntax/styles/shThemeMDUltra.css b/Blocks/syntax/styles/shThemeMDUltra.css new file mode 100644 index 0000000..f4db39c --- /dev/null +++ b/Blocks/syntax/styles/shThemeMDUltra.css | |||
@@ -0,0 +1,113 @@ | |||
1 | /** | ||
2 | * SyntaxHighlighter | ||
3 | * http://alexgorbatchev.com/SyntaxHighlighter | ||
4 | * | ||
5 | * SyntaxHighlighter is donationware. If you are using it, please donate. | ||
6 | * http://alexgorbatchev.com/SyntaxHighlighter/donate.html | ||
7 | * | ||
8 | * @version | ||
9 | * 3.0.83 (July 02 2010) | ||
10 | * | ||
11 | * @copyright | ||
12 | * Copyright (C) 2004-2010 Alex Gorbatchev. | ||
13 | * | ||
14 | * @license | ||
15 | * Dual licensed under the MIT and GPL licenses. | ||
16 | */ | ||
17 | .syntaxhighlighter { | ||
18 | background-color: #222222 !important; | ||
19 | } | ||
20 | .syntaxhighlighter .line.alt1 { | ||
21 | background-color: #222222 !important; | ||
22 | } | ||
23 | .syntaxhighlighter .line.alt2 { | ||
24 | background-color: #222222 !important; | ||
25 | } | ||
26 | .syntaxhighlighter .line.highlighted.alt1, .syntaxhighlighter .line.highlighted.alt2 { | ||
27 | background-color: #253e5a !important; | ||
28 | } | ||
29 | .syntaxhighlighter .line.highlighted.number { | ||
30 | color: white !important; | ||
31 | } | ||
32 | .syntaxhighlighter table caption { | ||
33 | color: lime !important; | ||
34 | } | ||
35 | .syntaxhighlighter .gutter { | ||
36 | color: #38566f !important; | ||
37 | } | ||
38 | .syntaxhighlighter .gutter .line { | ||
39 | border-right: 3px solid #435a5f !important; | ||
40 | } | ||
41 | .syntaxhighlighter .gutter .line.highlighted { | ||
42 | background-color: #435a5f !important; | ||
43 | color: #222222 !important; | ||
44 | } | ||
45 | .syntaxhighlighter.printing .line .content { | ||
46 | border: none !important; | ||
47 | } | ||
48 | .syntaxhighlighter.collapsed { | ||
49 | overflow: visible !important; | ||
50 | } | ||
51 | .syntaxhighlighter.collapsed .toolbar { | ||
52 | color: #428bdd !important; | ||
53 | background: black !important; | ||
54 | border: 1px solid #435a5f !important; | ||
55 | } | ||
56 | .syntaxhighlighter.collapsed .toolbar a { | ||
57 | color: #428bdd !important; | ||
58 | } | ||
59 | .syntaxhighlighter.collapsed .toolbar a:hover { | ||
60 | color: lime !important; | ||
61 | } | ||
62 | .syntaxhighlighter .toolbar { | ||
63 | color: #aaaaff !important; | ||
64 | background: #435a5f !important; | ||
65 | border: none !important; | ||
66 | } | ||
67 | .syntaxhighlighter .toolbar a { | ||
68 | color: #aaaaff !important; | ||
69 | } | ||
70 | .syntaxhighlighter .toolbar a:hover { | ||
71 | color: #9ccff4 !important; | ||
72 | } | ||
73 | .syntaxhighlighter .plain, .syntaxhighlighter .plain a { | ||
74 | color: lime !important; | ||
75 | } | ||
76 | .syntaxhighlighter .comments, .syntaxhighlighter .comments a { | ||
77 | color: #428bdd !important; | ||
78 | } | ||
79 | .syntaxhighlighter .string, .syntaxhighlighter .string a { | ||
80 | color: lime !important; | ||
81 | } | ||
82 | .syntaxhighlighter .keyword { | ||
83 | color: #aaaaff !important; | ||
84 | } | ||
85 | .syntaxhighlighter .preprocessor { | ||
86 | color: #8aa6c1 !important; | ||
87 | } | ||
88 | .syntaxhighlighter .variable { | ||
89 | color: aqua !important; | ||
90 | } | ||
91 | .syntaxhighlighter .value { | ||
92 | color: #f7e741 !important; | ||
93 | } | ||
94 | .syntaxhighlighter .functions { | ||
95 | color: #ff8000 !important; | ||
96 | } | ||
97 | .syntaxhighlighter .constants { | ||
98 | color: yellow !important; | ||
99 | } | ||
100 | .syntaxhighlighter .script { | ||
101 | font-weight: bold !important; | ||
102 | color: #aaaaff !important; | ||
103 | background-color: none !important; | ||
104 | } | ||
105 | .syntaxhighlighter .color1, .syntaxhighlighter .color1 a { | ||
106 | color: red !important; | ||
107 | } | ||
108 | .syntaxhighlighter .color2, .syntaxhighlighter .color2 a { | ||
109 | color: yellow !important; | ||
110 | } | ||
111 | .syntaxhighlighter .color3, .syntaxhighlighter .color3 a { | ||
112 | color: #ffaa3e !important; | ||
113 | } | ||
diff --git a/Blocks/syntax/styles/shThemeMidnight.css b/Blocks/syntax/styles/shThemeMidnight.css new file mode 100644 index 0000000..c49563c --- /dev/null +++ b/Blocks/syntax/styles/shThemeMidnight.css | |||
@@ -0,0 +1,113 @@ | |||
1 | /** | ||
2 | * SyntaxHighlighter | ||
3 | * http://alexgorbatchev.com/SyntaxHighlighter | ||
4 | * | ||
5 | * SyntaxHighlighter is donationware. If you are using it, please donate. | ||
6 | * http://alexgorbatchev.com/SyntaxHighlighter/donate.html | ||
7 | * | ||
8 | * @version | ||
9 | * 3.0.83 (July 02 2010) | ||
10 | * | ||
11 | * @copyright | ||
12 | * Copyright (C) 2004-2010 Alex Gorbatchev. | ||
13 | * | ||
14 | * @license | ||
15 | * Dual licensed under the MIT and GPL licenses. | ||
16 | */ | ||
17 | .syntaxhighlighter { | ||
18 | background-color: #0f192a !important; | ||
19 | } | ||
20 | .syntaxhighlighter .line.alt1 { | ||
21 | background-color: #0f192a !important; | ||
22 | } | ||
23 | .syntaxhighlighter .line.alt2 { | ||
24 | background-color: #0f192a !important; | ||
25 | } | ||
26 | .syntaxhighlighter .line.highlighted.alt1, .syntaxhighlighter .line.highlighted.alt2 { | ||
27 | background-color: #253e5a !important; | ||
28 | } | ||
29 | .syntaxhighlighter .line.highlighted.number { | ||
30 | color: #38566f !important; | ||
31 | } | ||
32 | .syntaxhighlighter table caption { | ||
33 | color: #d1edff !important; | ||
34 | } | ||
35 | .syntaxhighlighter .gutter { | ||
36 | color: #afafaf !important; | ||
37 | } | ||
38 | .syntaxhighlighter .gutter .line { | ||
39 | border-right: 3px solid #435a5f !important; | ||
40 | } | ||
41 | .syntaxhighlighter .gutter .line.highlighted { | ||
42 | background-color: #435a5f !important; | ||
43 | color: #0f192a !important; | ||
44 | } | ||
45 | .syntaxhighlighter.printing .line .content { | ||
46 | border: none !important; | ||
47 | } | ||
48 | .syntaxhighlighter.collapsed { | ||
49 | overflow: visible !important; | ||
50 | } | ||
51 | .syntaxhighlighter.collapsed .toolbar { | ||
52 | color: #428bdd !important; | ||
53 | background: black !important; | ||
54 | border: 1px solid #435a5f !important; | ||
55 | } | ||
56 | .syntaxhighlighter.collapsed .toolbar a { | ||
57 | color: #428bdd !important; | ||
58 | } | ||
59 | .syntaxhighlighter.collapsed .toolbar a:hover { | ||
60 | color: #1dc116 !important; | ||
61 | } | ||
62 | .syntaxhighlighter .toolbar { | ||
63 | color: #d1edff !important; | ||
64 | background: #435a5f !important; | ||
65 | border: none !important; | ||
66 | } | ||
67 | .syntaxhighlighter .toolbar a { | ||
68 | color: #d1edff !important; | ||
69 | } | ||
70 | .syntaxhighlighter .toolbar a:hover { | ||
71 | color: #8aa6c1 !important; | ||
72 | } | ||
73 | .syntaxhighlighter .plain, .syntaxhighlighter .plain a { | ||
74 | color: #d1edff !important; | ||
75 | } | ||
76 | .syntaxhighlighter .comments, .syntaxhighlighter .comments a { | ||
77 | color: #428bdd !important; | ||
78 | } | ||
79 | .syntaxhighlighter .string, .syntaxhighlighter .string a { | ||
80 | color: #1dc116 !important; | ||
81 | } | ||
82 | .syntaxhighlighter .keyword { | ||
83 | color: #b43d3d !important; | ||
84 | } | ||
85 | .syntaxhighlighter .preprocessor { | ||
86 | color: #8aa6c1 !important; | ||
87 | } | ||
88 | .syntaxhighlighter .variable { | ||
89 | color: #ffaa3e !important; | ||
90 | } | ||
91 | .syntaxhighlighter .value { | ||
92 | color: #f7e741 !important; | ||
93 | } | ||
94 | .syntaxhighlighter .functions { | ||
95 | color: #ffaa3e !important; | ||
96 | } | ||
97 | .syntaxhighlighter .constants { | ||
98 | color: #e0e8ff !important; | ||
99 | } | ||
100 | .syntaxhighlighter .script { | ||
101 | font-weight: bold !important; | ||
102 | color: #b43d3d !important; | ||
103 | background-color: none !important; | ||
104 | } | ||
105 | .syntaxhighlighter .color1, .syntaxhighlighter .color1 a { | ||
106 | color: #f8bb00 !important; | ||
107 | } | ||
108 | .syntaxhighlighter .color2, .syntaxhighlighter .color2 a { | ||
109 | color: white !important; | ||
110 | } | ||
111 | .syntaxhighlighter .color3, .syntaxhighlighter .color3 a { | ||
112 | color: #ffaa3e !important; | ||
113 | } | ||
diff --git a/Blocks/syntax/styles/shThemeRDark.css b/Blocks/syntax/styles/shThemeRDark.css new file mode 100644 index 0000000..6305a10 --- /dev/null +++ b/Blocks/syntax/styles/shThemeRDark.css | |||
@@ -0,0 +1,113 @@ | |||
1 | /** | ||
2 | * SyntaxHighlighter | ||
3 | * http://alexgorbatchev.com/SyntaxHighlighter | ||
4 | * | ||
5 | * SyntaxHighlighter is donationware. If you are using it, please donate. | ||
6 | * http://alexgorbatchev.com/SyntaxHighlighter/donate.html | ||
7 | * | ||
8 | * @version | ||
9 | * 3.0.83 (July 02 2010) | ||
10 | * | ||
11 | * @copyright | ||
12 | * Copyright (C) 2004-2010 Alex Gorbatchev. | ||
13 | * | ||
14 | * @license | ||
15 | * Dual licensed under the MIT and GPL licenses. | ||
16 | */ | ||
17 | .syntaxhighlighter { | ||
18 | background-color: #1b2426 !important; | ||
19 | } | ||
20 | .syntaxhighlighter .line.alt1 { | ||
21 | background-color: #1b2426 !important; | ||
22 | } | ||
23 | .syntaxhighlighter .line.alt2 { | ||
24 | background-color: #1b2426 !important; | ||
25 | } | ||
26 | .syntaxhighlighter .line.highlighted.alt1, .syntaxhighlighter .line.highlighted.alt2 { | ||
27 | background-color: #323e41 !important; | ||
28 | } | ||
29 | .syntaxhighlighter .line.highlighted.number { | ||
30 | color: #b9bdb6 !important; | ||
31 | } | ||
32 | .syntaxhighlighter table caption { | ||
33 | color: #b9bdb6 !important; | ||
34 | } | ||
35 | .syntaxhighlighter .gutter { | ||
36 | color: #afafaf !important; | ||
37 | } | ||
38 | .syntaxhighlighter .gutter .line { | ||
39 | border-right: 3px solid #435a5f !important; | ||
40 | } | ||
41 | .syntaxhighlighter .gutter .line.highlighted { | ||
42 | background-color: #435a5f !important; | ||
43 | color: #1b2426 !important; | ||
44 | } | ||
45 | .syntaxhighlighter.printing .line .content { | ||
46 | border: none !important; | ||
47 | } | ||
48 | .syntaxhighlighter.collapsed { | ||
49 | overflow: visible !important; | ||
50 | } | ||
51 | .syntaxhighlighter.collapsed .toolbar { | ||
52 | color: #5ba1cf !important; | ||
53 | background: black !important; | ||
54 | border: 1px solid #435a5f !important; | ||
55 | } | ||
56 | .syntaxhighlighter.collapsed .toolbar a { | ||
57 | color: #5ba1cf !important; | ||
58 | } | ||
59 | .syntaxhighlighter.collapsed .toolbar a:hover { | ||
60 | color: #5ce638 !important; | ||
61 | } | ||
62 | .syntaxhighlighter .toolbar { | ||
63 | color: white !important; | ||
64 | background: #435a5f !important; | ||
65 | border: none !important; | ||
66 | } | ||
67 | .syntaxhighlighter .toolbar a { | ||
68 | color: white !important; | ||
69 | } | ||
70 | .syntaxhighlighter .toolbar a:hover { | ||
71 | color: #e0e8ff !important; | ||
72 | } | ||
73 | .syntaxhighlighter .plain, .syntaxhighlighter .plain a { | ||
74 | color: #b9bdb6 !important; | ||
75 | } | ||
76 | .syntaxhighlighter .comments, .syntaxhighlighter .comments a { | ||
77 | color: #878a85 !important; | ||
78 | } | ||
79 | .syntaxhighlighter .string, .syntaxhighlighter .string a { | ||
80 | color: #5ce638 !important; | ||
81 | } | ||
82 | .syntaxhighlighter .keyword { | ||
83 | color: #5ba1cf !important; | ||
84 | } | ||
85 | .syntaxhighlighter .preprocessor { | ||
86 | color: #435a5f !important; | ||
87 | } | ||
88 | .syntaxhighlighter .variable { | ||
89 | color: #ffaa3e !important; | ||
90 | } | ||
91 | .syntaxhighlighter .value { | ||
92 | color: #009900 !important; | ||
93 | } | ||
94 | .syntaxhighlighter .functions { | ||
95 | color: #ffaa3e !important; | ||
96 | } | ||
97 | .syntaxhighlighter .constants { | ||
98 | color: #e0e8ff !important; | ||
99 | } | ||
100 | .syntaxhighlighter .script { | ||
101 | font-weight: bold !important; | ||
102 | color: #5ba1cf !important; | ||
103 | background-color: none !important; | ||
104 | } | ||
105 | .syntaxhighlighter .color1, .syntaxhighlighter .color1 a { | ||
106 | color: #e0e8ff !important; | ||
107 | } | ||
108 | .syntaxhighlighter .color2, .syntaxhighlighter .color2 a { | ||
109 | color: white !important; | ||
110 | } | ||
111 | .syntaxhighlighter .color3, .syntaxhighlighter .color3 a { | ||
112 | color: #ffaa3e !important; | ||
113 | } | ||
diff --git a/Blocks/syntax/tests/.rvmrc b/Blocks/syntax/tests/.rvmrc new file mode 100644 index 0000000..8cb2ee3 --- /dev/null +++ b/Blocks/syntax/tests/.rvmrc | |||
@@ -0,0 +1 @@ | |||
rvm 1.8.7-p249@copydeca \ No newline at end of file | |||
diff --git a/Blocks/syntax/tests/brushes/sass.html b/Blocks/syntax/tests/brushes/sass.html new file mode 100644 index 0000000..f415684 --- /dev/null +++ b/Blocks/syntax/tests/brushes/sass.html | |||
@@ -0,0 +1,204 @@ | |||
1 | <script class="brush: sass;" type="syntaxhighlighter"> | ||
2 | @mixin round_corners_custom($top, $right, $bottom, $left) { | ||
3 | -moz-border-radius: $top $right $bottom $left !important; | ||
4 | -webkit-border-radius: $top $right $bottom $left !important; | ||
5 | } | ||
6 | |||
7 | @mixin round_corners($radius) { | ||
8 | @include round_corners_custom($radius, $radius, $radius, $radius); | ||
9 | } | ||
10 | |||
11 | .syntaxhighlighter { | ||
12 | a, | ||
13 | div, | ||
14 | code, | ||
15 | table, | ||
16 | table td, | ||
17 | table tr, | ||
18 | table tbody, | ||
19 | table thead, | ||
20 | table caption, | ||
21 | textarea { | ||
22 | @include round_corners(0); | ||
23 | |||
24 | background: none !important; | ||
25 | border: 0 !important; | ||
26 | bottom: auto !important; | ||
27 | float: none !important; | ||
28 | height: auto !important; | ||
29 | left: auto !important; | ||
30 | line-height: 1.1em !important; | ||
31 | margin: 0 !important; | ||
32 | outline: 0 !important; | ||
33 | overflow: visible !important; | ||
34 | padding: 0 !important; | ||
35 | position: static !important; | ||
36 | right: auto !important; | ||
37 | text-align: left !important; | ||
38 | top: auto !important; | ||
39 | vertical-align: baseline !important; | ||
40 | width: auto !important; | ||
41 | font: { | ||
42 | family: "Consolas", "Bitstream Vera Sans Mono", "Courier New", Courier, monospace !important; | ||
43 | weight: normal !important; | ||
44 | style: normal !important; | ||
45 | size: 1em !important; | ||
46 | } | ||
47 | min: { | ||
48 | // For IE8, FF & WebKit | ||
49 | height: inherit !important; | ||
50 | // For IE7 | ||
51 | height: auto !important; | ||
52 | } | ||
53 | } | ||
54 | } | ||
55 | |||
56 | .syntaxhighlighter { | ||
57 | width: 100% !important; | ||
58 | margin: 1em 0 1em 0 !important; | ||
59 | |||
60 | position: relative !important; | ||
61 | overflow: auto !important; | ||
62 | font-size: 1em !important; | ||
63 | |||
64 | &.source { overflow: hidden !important; } | ||
65 | |||
66 | // set up bold and italic | ||
67 | .bold { font-weight: bold !important; } | ||
68 | .italic { font-style: italic !important; } | ||
69 | |||
70 | .line { white-space: pre !important; } | ||
71 | |||
72 | // main table and columns | ||
73 | table { | ||
74 | width: 100% !important; | ||
75 | caption { | ||
76 | text-align: left !important; | ||
77 | padding: .5em 0 0.5em 1em !important; | ||
78 | } | ||
79 | |||
80 | td.code { | ||
81 | width: 100% !important; | ||
82 | |||
83 | .container { | ||
84 | position: relative !important; | ||
85 | |||
86 | textarea { | ||
87 | position: absolute !important; | ||
88 | left: 0 !important; | ||
89 | top: 0 !important; | ||
90 | width: 100% !important; | ||
91 | height: 120% !important; | ||
92 | border: none !important; | ||
93 | background: white !important; | ||
94 | padding-left: 1em !important; | ||
95 | overflow: hidden !important; | ||
96 | white-space: pre !important; | ||
97 | } | ||
98 | } | ||
99 | } | ||
100 | |||
101 | // middle spacing between line numbers and lines | ||
102 | td.gutter .line { | ||
103 | text-align: right !important; | ||
104 | padding: 0 0.5em 0 1em !important; | ||
105 | } | ||
106 | |||
107 | td.code .line { | ||
108 | padding: 0 1em !important; | ||
109 | } | ||
110 | } | ||
111 | |||
112 | &.nogutter { | ||
113 | td.code { | ||
114 | .container textarea, .line { padding-left: 0em !important; } | ||
115 | } | ||
116 | } | ||
117 | |||
118 | &.show { display: block !important; } | ||
119 | |||
120 | // Adjust some properties when collapsed | ||
121 | &.collapsed { | ||
122 | table { display: none !important; } | ||
123 | |||
124 | .toolbar { | ||
125 | padding: 0.1em 0.8em 0em 0.8em !important; | ||
126 | font-size: 1em !important; | ||
127 | position: static !important; | ||
128 | width: auto !important; | ||
129 | height: auto !important; | ||
130 | |||
131 | span { | ||
132 | display: inline !important; | ||
133 | margin-right: 1em !important; | ||
134 | |||
135 | a { | ||
136 | padding: 0 !important; | ||
137 | display: none !important; | ||
138 | &.expandSource, &.help { display: inline !important; } | ||
139 | } | ||
140 | } | ||
141 | } | ||
142 | } | ||
143 | |||
144 | // Styles for the toolbar | ||
145 | .toolbar { | ||
146 | position: absolute !important; | ||
147 | right: 1px !important; | ||
148 | top: 1px !important; | ||
149 | width: 11px !important; | ||
150 | height: 11px !important; | ||
151 | font-size: 10px !important; | ||
152 | z-index: 10 !important; | ||
153 | |||
154 | span.title { display: inline !important; } | ||
155 | |||
156 | a { | ||
157 | display: block !important; | ||
158 | text-align: center !important; | ||
159 | text-decoration: none !important; | ||
160 | padding-top: 1px !important; | ||
161 | |||
162 | &.expandSource { display: none !important; } | ||
163 | } | ||
164 | } | ||
165 | |||
166 | // Print view. | ||
167 | // Colors are based on the default theme without background. | ||
168 | &.printing { | ||
169 | .line.alt1 .content, | ||
170 | .line.alt2 .content, | ||
171 | .line.highlighted .number, | ||
172 | .line.highlighted.alt1 .content, | ||
173 | .line.highlighted.alt2 .content { background: none !important; } | ||
174 | |||
175 | // Gutter line numbers | ||
176 | .line { | ||
177 | .number { color: #bbbbbb !important; } | ||
178 | // Add border to the lines | ||
179 | .content { color: black !important; } | ||
180 | } | ||
181 | |||
182 | // Toolbar when visible | ||
183 | .toolbar { display: none !important; } | ||
184 | a { text-decoration: none !important; } | ||
185 | .plain, .plain a { color: black !important; } | ||
186 | .comments, .comments a { color: #008200 !important; } | ||
187 | .string, .string a { color: blue !important; } | ||
188 | .keyword { | ||
189 | color: #006699 !important; | ||
190 | font-weight: bold !important; | ||
191 | } | ||
192 | .preprocessor { color: gray !important; } | ||
193 | .variable { color: #aa7700 !important; } | ||
194 | .value { color: #009900 !important; } | ||
195 | .functions { color: #ff1493 !important; } | ||
196 | .constants { color: #0066cc !important; } | ||
197 | .script { font-weight: bold !important; } | ||
198 | .color1, .color1 a { color: gray !important; } | ||
199 | .color2, .color2 a { color: #ff1493 !important; } | ||
200 | .color3, .color3 a { color: red !important; } | ||
201 | .break, .break a { color: black !important; } | ||
202 | } | ||
203 | } | ||
204 | </script> \ No newline at end of file | ||
diff --git a/Blocks/syntax/tests/brushes_tests.html b/Blocks/syntax/tests/brushes_tests.html new file mode 100644 index 0000000..cf60a98 --- /dev/null +++ b/Blocks/syntax/tests/brushes_tests.html | |||
@@ -0,0 +1,143 @@ | |||
1 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> | ||
2 | <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> | ||
3 | <head> | ||
4 | <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> | ||
5 | <title>SyntaxHighlighter Brushes Tests</title> | ||
6 | <script type="text/javascript" src="/js/jquery-1.4.2.js"></script> | ||
7 | |||
8 | <!-- SyntaxHighlighter --> | ||
9 | <script type="text/javascript" src="/sh/scripts/XRegExp.js"></script> <!-- XRegExp is bundled with the final shCore.js during build --> | ||
10 | <script type="text/javascript" src="/sh/scripts/shCore.js"></script> | ||
11 | <script type="text/javascript" src="/sh/scripts/shAutoloader.js"></script> | ||
12 | <script type="text/javascript" src="/sh/scripts/shBrushAppleScript.js"></script> | ||
13 | <script type="text/javascript" src="/sh/scripts/shBrushAS3.js"></script> | ||
14 | <script type="text/javascript" src="/sh/scripts/shBrushBash.js"></script> | ||
15 | <script type="text/javascript" src="/sh/scripts/shBrushColdFusion.js"></script> | ||
16 | <script type="text/javascript" src="/sh/scripts/shBrushCpp.js"></script> | ||
17 | <script type="text/javascript" src="/sh/scripts/shBrushCSharp.js"></script> | ||
18 | <script type="text/javascript" src="/sh/scripts/shBrushCss.js"></script> | ||
19 | <script type="text/javascript" src="/sh/scripts/shBrushDelphi.js"></script> | ||
20 | <script type="text/javascript" src="/sh/scripts/shBrushDiff.js"></script> | ||
21 | <script type="text/javascript" src="/sh/scripts/shBrushErlang.js"></script> | ||
22 | <script type="text/javascript" src="/sh/scripts/shBrushGroovy.js"></script> | ||
23 | <script type="text/javascript" src="/sh/scripts/shBrushJava.js"></script> | ||
24 | <script type="text/javascript" src="/sh/scripts/shBrushJavaFx.js"></script> | ||
25 | <script type="text/javascript" src="/sh/scripts/shBrushJScript.js"></script> | ||
26 | <script type="text/javascript" src="/sh/scripts/shBrushPerl.js"></script> | ||
27 | <script type="text/javascript" src="/sh/scripts/shBrushPhp.js"></script> | ||
28 | <script type="text/javascript" src="/sh/scripts/shBrushPlain.js"></script> | ||
29 | <script type="text/javascript" src="/sh/scripts/shBrushPowerShell.js"></script> | ||
30 | <script type="text/javascript" src="/sh/scripts/shBrushPython.js"></script> | ||
31 | <script type="text/javascript" src="/sh/scripts/shBrushRuby.js"></script> | ||
32 | <script type="text/javascript" src="/sh/scripts/shBrushSass.js"></script> | ||
33 | <script type="text/javascript" src="/sh/scripts/shBrushScala.js"></script> | ||
34 | <script type="text/javascript" src="/sh/scripts/shBrushSql.js"></script> | ||
35 | <script type="text/javascript" src="/sh/scripts/shBrushVb.js"></script> | ||
36 | <script type="text/javascript" src="/sh/scripts/shBrushXml.js"></script> | ||
37 | |||
38 | <link type="text/css" rel="stylesheet" href="/sh/styles/shCoreDefault.css"/> | ||
39 | </head> | ||
40 | |||
41 | <body> | ||
42 | |||
43 | <div id="output"></div> | ||
44 | |||
45 | <style> | ||
46 | body { | ||
47 | background: white; | ||
48 | font-family: Helvetica; | ||
49 | } | ||
50 | |||
51 | .test-wrap { | ||
52 | width: 100%; | ||
53 | height: 800px; | ||
54 | overflow: auto; | ||
55 | border: none; | ||
56 | } | ||
57 | </style> | ||
58 | |||
59 | <script type="text/javascript"> | ||
60 | var brushes = [ | ||
61 | 'AS3', | ||
62 | 'AppleScript', | ||
63 | 'Bash', | ||
64 | 'CSharp', | ||
65 | 'ColdFusion', | ||
66 | 'Cpp', | ||
67 | 'Css', | ||
68 | 'Delphi', | ||
69 | 'Diff', | ||
70 | 'Erlang', | ||
71 | 'Groovy', | ||
72 | 'JScript', | ||
73 | 'Java', | ||
74 | 'JavaFX', | ||
75 | 'Perl', | ||
76 | 'Php', | ||
77 | 'Plain', | ||
78 | 'PowerShell', | ||
79 | 'Python', | ||
80 | 'Ruby', | ||
81 | 'Sass', | ||
82 | 'Scala', | ||
83 | 'Sql', | ||
84 | 'Vb', | ||
85 | 'Xml' | ||
86 | ]; | ||
87 | |||
88 | $(document).ready(function() | ||
89 | { | ||
90 | var html = ''; | ||
91 | |||
92 | $.each(brushes, function(index) | ||
93 | { | ||
94 | var name = this; | ||
95 | |||
96 | html += '' | ||
97 | + '<div class="test-wrap">' | ||
98 | + '<h1>' | ||
99 | + '<a href="#theme' + (index + 1) + '">next</a> ' | ||
100 | + '<a name="theme' + index + '">' | ||
101 | + name | ||
102 | + '</a>' | ||
103 | + '</h1>' | ||
104 | ; | ||
105 | |||
106 | $.ajax({ | ||
107 | url: 'brushes/' + name.toLowerCase() + '.html', | ||
108 | type: 'GET', | ||
109 | dataType: 'text', | ||
110 | async: false, | ||
111 | success: function(data) | ||
112 | { | ||
113 | html += data; | ||
114 | }, | ||
115 | error: function() | ||
116 | { | ||
117 | html += '<p>Not found...</p>'; | ||
118 | } | ||
119 | }); | ||
120 | |||
121 | html += '</div>\n'; | ||
122 | |||
123 | if (index % 2 != 0) | ||
124 | html += '<div style="clear:both"></div>\n'; | ||
125 | }); | ||
126 | |||
127 | $('#output')[0].innerHTML = html; | ||
128 | $('#output a[name]:first').attr('name', 'top'); | ||
129 | $('#output a[href]:last').attr('href', '#top').html('top'); | ||
130 | |||
131 | SyntaxHighlighter.highlight(); | ||
132 | }); | ||
133 | </script> | ||
134 | |||
135 | |||
136 | <!-- jinwei.me Baidu tongji analytics --> | ||
137 | <script type="text/javascript"> | ||
138 | var _bdhmProtocol = (("https:" == document.location.protocol) ? " https://" : " http://"); | ||
139 | document.write(unescape("%3Cscript src='" + _bdhmProtocol + "hm.baidu.com/h.js%3F91918ac6d6854623883a2b546ebc00ac' type='text/javascript'%3E%3C/script%3E")); | ||
140 | </script> | ||
141 | |||
142 | </body> | ||
143 | </html> | ||
diff --git a/Blocks/syntax/tests/cases/001_basic.html b/Blocks/syntax/tests/cases/001_basic.html new file mode 100644 index 0000000..1d57334 --- /dev/null +++ b/Blocks/syntax/tests/cases/001_basic.html | |||
@@ -0,0 +1,42 @@ | |||
1 | <pre id="sh_001_basic" class="brush: js;" title="Title/caption should render"> | ||
2 | /** | ||
3 | * multiline comment | ||
4 | */ | ||
5 | |||
6 | text | ||
7 | |||
8 | // single line comment | ||
9 | |||
10 | text | ||
11 | |||
12 | "string" text 'string' text "string" | ||
13 | "string with \" escape" text 'string with \' escape' text "string with \" escape" | ||
14 | |||
15 | var code = '\ | ||
16 | function helloWorld()\ | ||
17 | {\ | ||
18 | // this is great!\ | ||
19 | for(var i = 0; i <= 1; i++)\ | ||
20 | alert("yay");\ | ||
21 | }\ | ||
22 | '; | ||
23 | </pre> | ||
24 | |||
25 | <script type="text/javascript"> | ||
26 | queue(function() | ||
27 | { | ||
28 | var $sh; | ||
29 | |||
30 | module('001_basic'); | ||
31 | |||
32 | test('basic html check of default elements', function() | ||
33 | { | ||
34 | $sh = $('#sh_001_basic'); | ||
35 | ok_sh($sh); | ||
36 | ok_toolbar($sh); | ||
37 | ok_caption($sh, 'Title/caption should render'); | ||
38 | ok_gutter($sh); | ||
39 | ok_code($sh); | ||
40 | }); | ||
41 | }); | ||
42 | </script> | ||
diff --git a/Blocks/syntax/tests/cases/002_brushes.html b/Blocks/syntax/tests/cases/002_brushes.html new file mode 100644 index 0000000..e9c64e2 --- /dev/null +++ b/Blocks/syntax/tests/cases/002_brushes.html | |||
@@ -0,0 +1,50 @@ | |||
1 | <div id="sh_002_brushes"> | ||
2 | <pre class="brush: applescript;">test</pre> | ||
3 | <pre class="brush: as3;">test</pre> | ||
4 | <pre class="brush: bash;">test</pre> | ||
5 | <pre class="brush: cf;">test</pre> | ||
6 | <pre class="brush: cpp;">test</pre> | ||
7 | <pre class="brush: csharp;">test</pre> | ||
8 | <pre class="brush: css;">test</pre> | ||
9 | <pre class="brush: delphi;">test</pre> | ||
10 | <pre class="brush: diff;">test</pre> | ||
11 | <pre class="brush: erlang;">test</pre> | ||
12 | <pre class="brush: groovy;">test</pre> | ||
13 | <pre class="brush: java;">test</pre> | ||
14 | <pre class="brush: javafx;">test</pre> | ||
15 | <pre class="brush: jscript;">test</pre> | ||
16 | <pre class="brush: perl;">test</pre> | ||
17 | <pre class="brush: php;">test</pre> | ||
18 | <pre class="brush: plain;">test</pre> | ||
19 | <pre class="brush: powershell;">test</pre> | ||
20 | <pre class="brush: python;">test</pre> | ||
21 | <pre class="brush: ruby;">test</pre> | ||
22 | <pre class="brush: sass;">test</pre> | ||
23 | <pre class="brush: scala;">test</pre> | ||
24 | <pre class="brush: sql;">test</pre> | ||
25 | <pre class="brush: vb;">test</pre> | ||
26 | <pre class="brush: xml;">test</pre> | ||
27 | </div> | ||
28 | |||
29 | <script type="text/javascript"> | ||
30 | queue(function() | ||
31 | { | ||
32 | var $sh; | ||
33 | |||
34 | module('002_brushes'); | ||
35 | |||
36 | test('check that all brushes loaded and rendered', function() | ||
37 | { | ||
38 | $sh = $('#sh_002_brushes'); | ||
39 | |||
40 | $sh.find('> div > .syntaxhighlighter').each(function() | ||
41 | { | ||
42 | var $sh = $(this).parent(); | ||
43 | ok_sh($sh); | ||
44 | ok_sh($sh); | ||
45 | ok_toolbar($sh); | ||
46 | ok_code($sh); | ||
47 | }); | ||
48 | }); | ||
49 | }); | ||
50 | </script> | ||
diff --git a/Blocks/syntax/tests/cases/003_script_tag.html b/Blocks/syntax/tests/cases/003_script_tag.html new file mode 100644 index 0000000..9b44292 --- /dev/null +++ b/Blocks/syntax/tests/cases/003_script_tag.html | |||
@@ -0,0 +1,42 @@ | |||
1 | <div> | ||
2 | <script id="sh_003_script_tag" type="syntaxhighlighter" class="brush: csharp" title="Title/caption should render"><![CDATA[ | ||
3 | partial class Foo | ||
4 | { | ||
5 | function test() | ||
6 | { | ||
7 | yield return; | ||
8 | yield break; | ||
9 | } | ||
10 | } | ||
11 | |||
12 | function foo() | ||
13 | { | ||
14 | var vector:Vector.<Vector.<String>> = new Vector<Vector.String>>(); | ||
15 | |||
16 | for (var i = 0; i < 10; i++) | ||
17 | { | ||
18 | /* comments */ | ||
19 | } | ||
20 | } | ||
21 | ]]></script> | ||
22 | </div> | ||
23 | |||
24 | <script type="text/javascript"> | ||
25 | queue(function() | ||
26 | { | ||
27 | var $sh; | ||
28 | |||
29 | module('003_script_tag'); | ||
30 | |||
31 | test('basic html check of default elements', function() | ||
32 | { | ||
33 | $sh = $('#sh_003_script_tag'); | ||
34 | |||
35 | ok_sh($sh); | ||
36 | ok_toolbar($sh); | ||
37 | ok_caption($sh, 'Title/caption should render'); | ||
38 | ok_gutter($sh); | ||
39 | ok_code($sh); | ||
40 | }); | ||
41 | }); | ||
42 | </script> | ||
diff --git a/Blocks/syntax/tests/cases/004_url_parsing.html b/Blocks/syntax/tests/cases/004_url_parsing.html new file mode 100644 index 0000000..d489a66 --- /dev/null +++ b/Blocks/syntax/tests/cases/004_url_parsing.html | |||
@@ -0,0 +1,43 @@ | |||
1 | <pre id="sh_004_url_parsing" class="brush: as3;"> | ||
2 | /** | ||
3 | * Please see <http://www.alexgorbatchev.come/?test=1&y=2> | ||
4 | */ | ||
5 | var home = "http://www.alexgorbatchev.come/?test=1&y=2;test/1/2/3;"; | ||
6 | // < http://www.gnu.org/licenses/?test=1&y=2 >. | ||
7 | |||
8 | // Test embedded URLs that terminate at a left angle bracket. | ||
9 | // See bug #28: http://bitbucket.org/alexg/syntaxhighlighter/issue/28/ | ||
10 | "<location>http://www.example.com/song2.mp3</location>"; | ||
11 | </pre> | ||
12 | |||
13 | <script type="text/javascript"> | ||
14 | queue(function() | ||
15 | { | ||
16 | var $sh; | ||
17 | |||
18 | module('004_url_parsing'); | ||
19 | |||
20 | test('check that urls are present', function() | ||
21 | { | ||
22 | $sh = $('#sh_004_url_parsing'); | ||
23 | |||
24 | ok_sh($sh); | ||
25 | ok_toolbar($sh); | ||
26 | ok_code($sh); | ||
27 | |||
28 | var expected = [ | ||
29 | 'http://www.alexgorbatchev.come/?test=1&y=2', | ||
30 | 'http://www.alexgorbatchev.come/?test=1&y=2;test/1/2/3;', | ||
31 | 'http://www.gnu.org/licenses/?test=1&y=2', | ||
32 | 'http://bitbucket.org/alexg/syntaxhighlighter/issue/28/', | ||
33 | 'http://www.example.com/song2.mp3' | ||
34 | ]; | ||
35 | |||
36 | $sh.find('td.code a').each(function(index) | ||
37 | { | ||
38 | equal($(this).attr('href'), expected[index], 'href'); | ||
39 | equal($(this).text(), expected[index], 'text'); | ||
40 | }) | ||
41 | }); | ||
42 | }); | ||
43 | </script> \ No newline at end of file | ||
diff --git a/Blocks/syntax/tests/cases/005_no_gutter.html b/Blocks/syntax/tests/cases/005_no_gutter.html new file mode 100644 index 0000000..6e6b1be --- /dev/null +++ b/Blocks/syntax/tests/cases/005_no_gutter.html | |||
@@ -0,0 +1,33 @@ | |||
1 | <pre id="sh_005_no_gutter" class="brush: java; gutter: false;"> | ||
2 | public Image getImage(URL url, String name) { | ||
3 | try { | ||
4 | /* | ||
5 | Regular multiline comment. | ||
6 | */ | ||
7 | return getImage(new URL(url, name)); | ||
8 | } catch (MalformedURLException e) { | ||
9 | return null; | ||
10 | } | ||
11 | } | ||
12 | </pre> | ||
13 | |||
14 | <script type="text/javascript"> | ||
15 | queue(function() | ||
16 | { | ||
17 | var $sh; | ||
18 | |||
19 | module('005_no_gutter'); | ||
20 | |||
21 | test('check that there is no gutter', function() | ||
22 | { | ||
23 | $sh = $('#sh_005_no_gutter'); | ||
24 | |||
25 | ok_sh($sh); | ||
26 | ok_toolbar($sh); | ||
27 | ok_code($sh); | ||
28 | |||
29 | ok($sh.find('> .syntaxhighlighter.nogutter').length == 1, '.nogutter present'); | ||
30 | ok($sh.find('> .syntaxhighlighter > table > tbody > tr > .gutter').length == 0, 'Gutter not present'); | ||
31 | }); | ||
32 | }); | ||
33 | </script> | ||
diff --git a/Blocks/syntax/tests/cases/006_pad_line_numbers.html b/Blocks/syntax/tests/cases/006_pad_line_numbers.html new file mode 100644 index 0000000..8ebdd55 --- /dev/null +++ b/Blocks/syntax/tests/cases/006_pad_line_numbers.html | |||
@@ -0,0 +1,39 @@ | |||
1 | <pre id="sh_006_pad_line_numbers" class="brush: java; pad-line-numbers: true"> | ||
2 | /** | ||
3 | * Returns an Image object that can then be painted on the screen. | ||
4 | * The url argument must specify an absolute {@link URL}. The name | ||
5 | * argument is a specifier that is relative to the url argument. | ||
6 | * | ||
7 | * @param url an absolute URL giving the base location of the image | ||
8 | * @param name the location of the image, relative to the url argument | ||
9 | * @return the image at the specified URL | ||
10 | * @see Image | ||
11 | */ | ||
12 | </pre> | ||
13 | |||
14 | <script type="text/javascript"> | ||
15 | queue(function() | ||
16 | { | ||
17 | var $sh; | ||
18 | |||
19 | module('006_pad_line_numbers'); | ||
20 | |||
21 | test('check that line numbers are padded with zeroes', function() | ||
22 | { | ||
23 | $sh = $('#sh_006_pad_line_numbers'); | ||
24 | |||
25 | ok_sh($sh); | ||
26 | ok_toolbar($sh); | ||
27 | ok_gutter($sh); | ||
28 | ok_code($sh); | ||
29 | |||
30 | $sh.find('.gutter > .line').each(function(index) | ||
31 | { | ||
32 | var text = $(this).text(); | ||
33 | |||
34 | if (parseInt(text) < 10) | ||
35 | ok(text.charAt(0) == '0', 'Line ' + index + ' has leading zero: ' + text); | ||
36 | }); | ||
37 | }); | ||
38 | }); | ||
39 | </script> | ||
diff --git a/Blocks/syntax/tests/cases/007_collapse.html b/Blocks/syntax/tests/cases/007_collapse.html new file mode 100644 index 0000000..2643bb5 --- /dev/null +++ b/Blocks/syntax/tests/cases/007_collapse.html | |||
@@ -0,0 +1,60 @@ | |||
1 | <pre id="sh_007_collapse_a" class="brush: groovy; collapse: true" title="This is a title for collapsed block"> | ||
2 | /** | ||
3 | * Returns an Image object that can then be painted on the screen. | ||
4 | * The url argument must specify an absolute {@link URL}. The name | ||
5 | * argument is a specifier that is relative to the url argument. | ||
6 | * | ||
7 | * @param url an absolute URL giving the base location of the image | ||
8 | * @param name the location of the image, relative to the url argument | ||
9 | * @return the image at the specified URL | ||
10 | * @see Image | ||
11 | */ | ||
12 | </pre> | ||
13 | |||
14 | <pre id="sh_007_collapse_b" class="brush: groovy; collapse: true"> | ||
15 | /** | ||
16 | * Returns an Image object that can then be painted on the screen. | ||
17 | * The url argument must specify an absolute {@link URL}. The name | ||
18 | * argument is a specifier that is relative to the url argument. | ||
19 | * | ||
20 | * @param url an absolute URL giving the base location of the image | ||
21 | * @param name the location of the image, relative to the url argument | ||
22 | * @return the image at the specified URL | ||
23 | * @see Image | ||
24 | */ | ||
25 | </pre> | ||
26 | |||
27 | <script type="text/javascript"> | ||
28 | queue(function() | ||
29 | { | ||
30 | var $sh; | ||
31 | |||
32 | module('007_collapse'); | ||
33 | |||
34 | test('collapsed block with title', function() | ||
35 | { | ||
36 | $sh = $('#sh_007_collapse_a'); | ||
37 | |||
38 | ok_sh($sh); | ||
39 | ok_toolbar($sh); | ||
40 | ok_collapsed($sh); | ||
41 | |||
42 | var $title = $sh.find('.toolbar a.toolbar_item.command_expandSource'); | ||
43 | ok($title.length == 1, 'Expand present'); | ||
44 | equal($title.text(), 'This is a title for collapsed block', 'Expand text'); | ||
45 | }); | ||
46 | |||
47 | test('collapsed block without title', function() | ||
48 | { | ||
49 | $sh = $('#sh_007_collapse_b'); | ||
50 | |||
51 | ok_sh($sh); | ||
52 | ok_toolbar($sh); | ||
53 | ok_collapsed($sh); | ||
54 | |||
55 | var $title = $sh.find('.toolbar a.toolbar_item.command_expandSource'); | ||
56 | ok($title.length == 1, 'Expand present'); | ||
57 | equal($title.text(), SyntaxHighlighter.config.strings.expandSource, 'Expand text'); | ||
58 | }); | ||
59 | }); | ||
60 | </script> | ||
diff --git a/Blocks/syntax/tests/cases/007_collapse_interaction.html b/Blocks/syntax/tests/cases/007_collapse_interaction.html new file mode 100644 index 0000000..ea72046 --- /dev/null +++ b/Blocks/syntax/tests/cases/007_collapse_interaction.html | |||
@@ -0,0 +1,44 @@ | |||
1 | <script type="text/javascript"> | ||
2 | queue(function() | ||
3 | { | ||
4 | var $sh; | ||
5 | |||
6 | module('007_collapse_interaction'); | ||
7 | |||
8 | function clickA($a) | ||
9 | { | ||
10 | SyntaxHighlighter.toolbar.handler({ | ||
11 | target: $a[0], | ||
12 | preventDefault: function() {} | ||
13 | }); | ||
14 | }; | ||
15 | |||
16 | test('expand collapsed block with title', function() | ||
17 | { | ||
18 | $sh = $('#sh_007_collapse_a'); | ||
19 | |||
20 | ok_sh($sh); | ||
21 | ok_toolbar($sh); | ||
22 | ok_collapsed($sh); | ||
23 | |||
24 | var $a = $sh.find('.toolbar a.toolbar_item.command_expandSource'); | ||
25 | clickA($a); | ||
26 | ok($a.not(':visible'), 'Expand not visible'); | ||
27 | ok_code($sh); | ||
28 | }); | ||
29 | |||
30 | test('expand collapsed block without title', function() | ||
31 | { | ||
32 | $sh = $('#sh_007_collapse_b'); | ||
33 | |||
34 | ok_sh($sh); | ||
35 | ok_toolbar($sh); | ||
36 | ok_collapsed($sh); | ||
37 | |||
38 | var $a = $sh.find('.toolbar a.toolbar_item.command_expandSource'); | ||
39 | clickA($a); | ||
40 | ok($a.not(':visible'), 'Expand not visible'); | ||
41 | ok_code($sh); | ||
42 | }); | ||
43 | }); | ||
44 | </script> | ||
diff --git a/Blocks/syntax/tests/cases/008_first_line.html b/Blocks/syntax/tests/cases/008_first_line.html new file mode 100644 index 0000000..169dc38 --- /dev/null +++ b/Blocks/syntax/tests/cases/008_first_line.html | |||
@@ -0,0 +1,29 @@ | |||
1 | <pre id="sh_008_first_line" class="brush: java; first-line: 10"> | ||
2 | partial class Foo | ||
3 | { | ||
4 | function test() | ||
5 | { | ||
6 | yield return; | ||
7 | } | ||
8 | } | ||
9 | </pre> | ||
10 | |||
11 | <script type="text/javascript"> | ||
12 | queue(function() | ||
13 | { | ||
14 | var $sh; | ||
15 | |||
16 | module('008_first_line'); | ||
17 | |||
18 | test('check the first line', function() | ||
19 | { | ||
20 | $sh = $('#sh_008_first_line'); | ||
21 | |||
22 | ok_sh($sh); | ||
23 | ok_toolbar($sh); | ||
24 | ok_gutter($sh); | ||
25 | ok_code($sh); | ||
26 | equals($sh.find('.gutter .index0').text(), '10', 'First line'); | ||
27 | }); | ||
28 | }); | ||
29 | </script> | ||
diff --git a/Blocks/syntax/tests/cases/009_class_name.html b/Blocks/syntax/tests/cases/009_class_name.html new file mode 100644 index 0000000..f2437d5 --- /dev/null +++ b/Blocks/syntax/tests/cases/009_class_name.html | |||
@@ -0,0 +1,32 @@ | |||
1 | <pre id="sh_009_class_name" class="brush: java; class-name: 'custom class here'"> | ||
2 | public Image getImage(URL url, String name) { | ||
3 | try { | ||
4 | /* | ||
5 | Regular multiline comment. | ||
6 | */ | ||
7 | return getImage(new URL(url, name)); | ||
8 | } catch (MalformedURLException e) { | ||
9 | return null; | ||
10 | } | ||
11 | } | ||
12 | </pre> | ||
13 | |||
14 | <script type="text/javascript"> | ||
15 | queue(function() | ||
16 | { | ||
17 | var $sh; | ||
18 | |||
19 | module('009_class_name'); | ||
20 | |||
21 | test('check custom classes', function() | ||
22 | { | ||
23 | $sh = $('#sh_009_class_name'); | ||
24 | |||
25 | ok_sh($sh); | ||
26 | ok_toolbar($sh); | ||
27 | ok_gutter($sh); | ||
28 | ok_code($sh); | ||
29 | ok($sh.find('.syntaxhighlighter').is('.custom.class.here'), 'Check custom classes'); | ||
30 | }); | ||
31 | }); | ||
32 | </script> | ||
diff --git a/Blocks/syntax/tests/cases/010_highlight.html b/Blocks/syntax/tests/cases/010_highlight.html new file mode 100644 index 0000000..64b6613 --- /dev/null +++ b/Blocks/syntax/tests/cases/010_highlight.html | |||
@@ -0,0 +1,70 @@ | |||
1 | <pre id="sh_010_highlight_a" class="brush: groovy; highlight: 2"> | ||
2 | public function validateStrongPassword(password:String):Boolean | ||
3 | { | ||
4 | if (password == null || password.length <= 0) | ||
5 | { | ||
6 | return false; | ||
7 | } | ||
8 | |||
9 | return STRONG_PASSWORD_PATTERN.test(password); | ||
10 | } | ||
11 | </pre> | ||
12 | <script id="sh_010_highlight_b" type="syntaxhighlighter" class="brush: as3; highlight: [2, 4, 12]"><![CDATA[ | ||
13 | /** | ||
14 | * Checks a password and returns a value indicating whether the password is a "strong" | ||
15 | * password. The criteria for a strong password are: | ||
16 | * | ||
17 | * <ul> | ||
18 | * <li>Minimum 8 characters</li> | ||
19 | * <li>Maxmium 32 characters</li> | ||
20 | * <li>Contains at least one lowercase letter</li> | ||
21 | * <li>Contains at least one uppercase letter</li> | ||
22 | * <li>Contains at least one number or symbol character</li> | ||
23 | * </ul> | ||
24 | * | ||
25 | * @param password The password to check | ||
26 | * | ||
27 | * @return A value indicating whether the password is a strong password (<code>true</code>) | ||
28 | * or not (<code>false</code>). | ||
29 | */ | ||
30 | public function validateStrongPassword(password:String):Boolean | ||
31 | { | ||
32 | if (password == null || password.length <= 0) | ||
33 | { | ||
34 | return false; | ||
35 | } | ||
36 | |||
37 | return STRONG_PASSWORD_PATTERN.test(password); | ||
38 | } | ||
39 | ]]></script> | ||
40 | |||
41 | <script type="text/javascript"> | ||
42 | queue(function() | ||
43 | { | ||
44 | var $sh; | ||
45 | |||
46 | module('010_highlight'); | ||
47 | |||
48 | test('one highlighted line', function() | ||
49 | { | ||
50 | $sh = $('#sh_010_highlight_a'); | ||
51 | |||
52 | ok_sh($sh); | ||
53 | ok_toolbar($sh); | ||
54 | ok_code($sh); | ||
55 | ok($sh.find('.gutter .number2').is('.highlighted'), 'Line 2 is highlighted'); | ||
56 | }); | ||
57 | |||
58 | test('multiple highlighted lines', function() | ||
59 | { | ||
60 | $sh = $('#sh_010_highlight_b'); | ||
61 | |||
62 | ok_sh($sh); | ||
63 | ok_toolbar($sh); | ||
64 | ok_code($sh); | ||
65 | ok($sh.find('.gutter .number2').is('.highlighted'), 'Line 2 is highlighted'); | ||
66 | ok($sh.find('.gutter .number4').is('.highlighted'), 'Line 4 is highlighted'); | ||
67 | ok($sh.find('.gutter .number12').is('.highlighted'), 'Line 12 is highlighted'); | ||
68 | }); | ||
69 | }); | ||
70 | </script> | ||
diff --git a/Blocks/syntax/tests/cases/011_smart_tabs.html b/Blocks/syntax/tests/cases/011_smart_tabs.html new file mode 100644 index 0000000..d6d62fc --- /dev/null +++ b/Blocks/syntax/tests/cases/011_smart_tabs.html | |||
@@ -0,0 +1,98 @@ | |||
1 | <pre id="sh_011_smart_tabs_a" class="brush: plain;"> | ||
2 | the words in this paragraph | ||
3 | should look like they are | ||
4 | evenly spaced between columns | ||
5 | </pre> | ||
6 | |||
7 | <pre id="sh_011_smart_tabs_b" class="brush: plain; tab-size: 8;"> | ||
8 | the words in this paragraph | ||
9 | should look like they are | ||
10 | evenly spaced between columns | ||
11 | </pre> | ||
12 | |||
13 | <pre id="sh_011_smart_tabs_c" class="brush: plain; smart-tabs: false"> | ||
14 | the words in this paragraph | ||
15 | should look out of whack | ||
16 | because smart tabs are disabled | ||
17 | </pre> | ||
18 | |||
19 | <script type="text/javascript"> | ||
20 | queue(function() | ||
21 | { | ||
22 | var $sh; | ||
23 | |||
24 | module('011_smart_tabs'); | ||
25 | |||
26 | var evenLines = [ | ||
27 | 'the words in this paragraph', | ||
28 | 'should look like they are', | ||
29 | 'evenly spaced between columns' | ||
30 | ], | ||
31 | unevenLines = [ | ||
32 | 'the words in this paragraph', | ||
33 | 'should look out of whack', | ||
34 | 'because smart tabs are disabled' | ||
35 | ] | ||
36 | ; | ||
37 | |||
38 | function fixSpaces(s) | ||
39 | { | ||
40 | s = encodeURIComponent(s).replace(/%C2%A0/g, '%20'); | ||
41 | return unescape(s).replace(/\s+$/g, ''); | ||
42 | }; | ||
43 | |||
44 | test('default tab size is 4', function() | ||
45 | { | ||
46 | $sh = $('#sh_011_smart_tabs_a'); | ||
47 | |||
48 | ok_sh($sh); | ||
49 | ok_toolbar($sh); | ||
50 | ok_code($sh); | ||
51 | |||
52 | $sh.find('.code .line').each(function(index) | ||
53 | { | ||
54 | var s1 = fixSpaces($(this).text()), | ||
55 | s2 = fixSpaces(evenLines[index]) | ||
56 | ; | ||
57 | |||
58 | equal(s1, s2, 'Line ' + index); | ||
59 | }); | ||
60 | }); | ||
61 | |||
62 | test('tab size changed to 8', function() | ||
63 | { | ||
64 | $sh = $('#sh_011_smart_tabs_b'); | ||
65 | |||
66 | ok_sh($sh); | ||
67 | ok_toolbar($sh); | ||
68 | ok_code($sh); | ||
69 | |||
70 | $sh.find('.code .line').each(function(index) | ||
71 | { | ||
72 | var s1 = fixSpaces($(this).text()), | ||
73 | s2 = fixSpaces(evenLines[index]) | ||
74 | ; | ||
75 | |||
76 | equal(s1, s2, 'Line ' + index); | ||
77 | }); | ||
78 | }); | ||
79 | |||
80 | test('smart tabs are off', function() | ||
81 | { | ||
82 | $sh = $('#sh_011_smart_tabs_c'); | ||
83 | |||
84 | ok_sh($sh); | ||
85 | ok_toolbar($sh); | ||
86 | ok_code($sh); | ||
87 | |||
88 | $sh.find('.code .line').each(function(index) | ||
89 | { | ||
90 | var s1 = fixSpaces($(this).text()), | ||
91 | s2 = fixSpaces(unevenLines[index]) | ||
92 | ; | ||
93 | |||
94 | equal(s1, s2, 'Line ' + index); | ||
95 | }); | ||
96 | }); | ||
97 | }); | ||
98 | </script> | ||
diff --git a/Blocks/syntax/tests/cases/012_server_side.html b/Blocks/syntax/tests/cases/012_server_side.html new file mode 100644 index 0000000..1bb4217 --- /dev/null +++ b/Blocks/syntax/tests/cases/012_server_side.html | |||
@@ -0,0 +1,35 @@ | |||
1 | <script id="sh_012_server_side_input" type="text/plain"> | ||
2 | function helloWorld() | ||
3 | { | ||
4 | // this is great! | ||
5 | for(var i = 0; i <= 1; i++) | ||
6 | alert("yay"); | ||
7 | } | ||
8 | </script> | ||
9 | |||
10 | <div id="sh_012_server_side_output"> | ||
11 | </div> | ||
12 | |||
13 | <script type="text/javascript"> | ||
14 | queue(function() | ||
15 | { | ||
16 | var $sh; | ||
17 | |||
18 | module('012_server_side'); | ||
19 | |||
20 | test('generate markup', function() | ||
21 | { | ||
22 | var brush = new SyntaxHighlighter.brushes.JScript(), | ||
23 | code = $('#sh_012_server_side_input').html() | ||
24 | ; | ||
25 | |||
26 | brush.init({ toolbar: false }); | ||
27 | $sh = $('#sh_012_server_side_output'); | ||
28 | $sh.html(brush.getHtml(code)); | ||
29 | |||
30 | ok_sh($sh); | ||
31 | ok_gutter($sh); | ||
32 | ok_code($sh); | ||
33 | }); | ||
34 | }); | ||
35 | </script> \ No newline at end of file | ||
diff --git a/Blocks/syntax/tests/cases/013_html_script.html b/Blocks/syntax/tests/cases/013_html_script.html new file mode 100644 index 0000000..c0a1201 --- /dev/null +++ b/Blocks/syntax/tests/cases/013_html_script.html | |||
@@ -0,0 +1,34 @@ | |||
1 | <pre id="sh_013_html_script" class="brush: groovy; html-script: true"> | ||
2 | <hello> | ||
3 | <% | ||
4 | package free.cafekiwi.gotapi; | ||
5 | %> | ||
6 | </hello> | ||
7 | |||
8 | <!-- | ||
9 | Comments here | ||
10 | --> | ||
11 | <%= print(); %> | ||
12 | </pre> | ||
13 | |||
14 | <script type="text/javascript"> | ||
15 | queue(function() | ||
16 | { | ||
17 | var $sh; | ||
18 | |||
19 | module('013_html_script'); | ||
20 | |||
21 | test('check markup', function() | ||
22 | { | ||
23 | $sh = $('#sh_013_html_script'); | ||
24 | |||
25 | ok_sh($sh); | ||
26 | ok_gutter($sh); | ||
27 | ok_code($sh); | ||
28 | |||
29 | ok($sh.find('.code .number1 > .htmlscript').length > 0, 'Has .htmlscript on line 1'); | ||
30 | ok($sh.find('.code .number3 > .groovy').length > 0, 'Has .groovy on line 3'); | ||
31 | ok($sh.find('.code .number10 > .groovy').length > 0, 'Has .groovy on line 10'); | ||
32 | }); | ||
33 | }); | ||
34 | </script> \ No newline at end of file | ||
diff --git a/Blocks/syntax/tests/cases/014_legacy.html b/Blocks/syntax/tests/cases/014_legacy.html new file mode 100644 index 0000000..eb4343e --- /dev/null +++ b/Blocks/syntax/tests/cases/014_legacy.html | |||
@@ -0,0 +1,70 @@ | |||
1 | <pre id="sh_014_legacy_a" name="code" class="plain">basic check</pre> | ||
2 | <pre id="sh_014_legacy_b" name="code" class="plain:nocontrols">no toolbar</pre> | ||
3 | <pre id="sh_014_legacy_c" name="code" class="plain:nogutter">no gutter</pre> | ||
4 | <pre id="sh_014_legacy_d" name="code" class="plain:collapse">collapsed</pre> | ||
5 | <pre id="sh_014_legacy_e" name="code" class="plain:firstline[10]">first line</pre> | ||
6 | |||
7 | <script type="text/javascript"> | ||
8 | queue(function() | ||
9 | { | ||
10 | var $sh; | ||
11 | |||
12 | dp.SyntaxHighlighter.HighlightAll('code'); | ||
13 | |||
14 | module('014_legacy'); | ||
15 | |||
16 | test('basic check', function() | ||
17 | { | ||
18 | $sh = $('#sh_014_legacy_a'); | ||
19 | |||
20 | ok_sh($sh); | ||
21 | ok_toolbar($sh); | ||
22 | ok_code($sh); | ||
23 | }); | ||
24 | |||
25 | test('no toolbar', function() | ||
26 | { | ||
27 | $sh = $('#sh_014_legacy_b'); | ||
28 | |||
29 | ok_sh($sh); | ||
30 | ok_code($sh); | ||
31 | ok($sh.find('> .syntaxhighlighter > .toolbar').length == 0, 'Toolbar not present'); | ||
32 | }); | ||
33 | |||
34 | test('no gutter', function() | ||
35 | { | ||
36 | $sh = $('#sh_014_legacy_c'); | ||
37 | |||
38 | ok_sh($sh); | ||
39 | ok_toolbar($sh); | ||
40 | ok_code($sh); | ||
41 | |||
42 | ok($sh.find('> .syntaxhighlighter.nogutter').length == 1, '.nogutter present'); | ||
43 | ok($sh.find('> .syntaxhighlighter > table > tbody > tr > .gutter').length == 0, 'Gutter not present'); | ||
44 | }); | ||
45 | |||
46 | test('collapsed check', function() | ||
47 | { | ||
48 | $sh = $('#sh_014_legacy_d'); | ||
49 | |||
50 | ok_sh($sh); | ||
51 | ok_toolbar($sh); | ||
52 | ok_collapsed($sh); | ||
53 | |||
54 | var $title = $sh.find('.toolbar a.toolbar_item.command_expandSource'); | ||
55 | ok($title.length == 1, 'Expand present'); | ||
56 | equal($title.text(), SyntaxHighlighter.config.strings.expandSource, 'Expand text'); | ||
57 | }); | ||
58 | |||
59 | test('first line check', function() | ||
60 | { | ||
61 | $sh = $('#sh_014_legacy_e'); | ||
62 | |||
63 | ok_sh($sh); | ||
64 | ok_toolbar($sh); | ||
65 | ok_gutter($sh); | ||
66 | ok_code($sh); | ||
67 | equals($sh.find('.gutter .index0').text(), '10', 'First line'); | ||
68 | }); | ||
69 | }); | ||
70 | </script> | ||
diff --git a/Blocks/syntax/tests/commonjs_tests.js b/Blocks/syntax/tests/commonjs_tests.js new file mode 100644 index 0000000..cda8162 --- /dev/null +++ b/Blocks/syntax/tests/commonjs_tests.js | |||
@@ -0,0 +1,52 @@ | |||
1 | /** | ||
2 | * This is a CommonJS compatibility test. You can run this file with node. | ||
3 | */ | ||
4 | require.paths.unshift(__dirname + '/../scripts'); | ||
5 | |||
6 | var sys = require('sys'), | ||
7 | shSyntaxHighlighter = require('shCore').SyntaxHighlighter, | ||
8 | code = 'test', | ||
9 | brushes = [ | ||
10 | 'AS3', | ||
11 | 'AppleScript', | ||
12 | 'Bash', | ||
13 | 'CSharp', | ||
14 | 'ColdFusion', | ||
15 | 'Cpp', | ||
16 | 'Css', | ||
17 | 'Delphi', | ||
18 | 'Diff', | ||
19 | 'Erlang', | ||
20 | 'Groovy', | ||
21 | 'JScript', | ||
22 | 'Java', | ||
23 | 'JavaFX', | ||
24 | 'Perl', | ||
25 | 'Php', | ||
26 | 'Plain', | ||
27 | 'PowerShell', | ||
28 | 'Python', | ||
29 | 'Ruby', | ||
30 | 'Sass', | ||
31 | 'Scala', | ||
32 | 'Sql', | ||
33 | 'Vb', | ||
34 | 'Xml' | ||
35 | ] | ||
36 | ; | ||
37 | |||
38 | brushes.sort(); | ||
39 | |||
40 | for (var i = 0; i < brushes.length; i++) | ||
41 | { | ||
42 | var name = brushes[i], | ||
43 | brush = require('shBrush' + name).Brush | ||
44 | ; | ||
45 | |||
46 | brush = new brush(); | ||
47 | brush.init({ toolbar: false }); | ||
48 | |||
49 | var result = brush.getHtml(code); | ||
50 | |||
51 | sys.puts(name + (result != null ? ': ok' : ': NOT OK')); | ||
52 | } | ||
diff --git a/Blocks/syntax/tests/js/jquery-1.4.2.js b/Blocks/syntax/tests/js/jquery-1.4.2.js new file mode 100644 index 0000000..e414a7e --- /dev/null +++ b/Blocks/syntax/tests/js/jquery-1.4.2.js | |||
@@ -0,0 +1,6240 @@ | |||
1 | /*! | ||
2 | * jQuery JavaScript Library v1.4.2 | ||
3 | * http://jquery.com/ | ||
4 | * | ||
5 | * Copyright 2010, John Resig | ||
6 | * Dual licensed under the MIT or GPL Version 2 licenses. | ||
7 | * http://jquery.org/license | ||
8 | * | ||
9 | * Includes Sizzle.js | ||
10 | * http://sizzlejs.com/ | ||
11 | * Copyright 2010, The Dojo Foundation | ||
12 | * Released under the MIT, BSD, and GPL Licenses. | ||
13 | * | ||
14 | * Date: Sat Feb 13 22:33:48 2010 -0500 | ||
15 | */ | ||
16 | (function( window, undefined ) { | ||
17 | |||
18 | // Define a local copy of jQuery | ||
19 | var jQuery = function( selector, context ) { | ||
20 | // The jQuery object is actually just the init constructor 'enhanced' | ||
21 | return new jQuery.fn.init( selector, context ); | ||
22 | }, | ||
23 | |||
24 | // Map over jQuery in case of overwrite | ||
25 | _jQuery = window.jQuery, | ||
26 | |||
27 | // Map over the $ in case of overwrite | ||
28 | _$ = window.$, | ||
29 | |||
30 | // Use the correct document accordingly with window argument (sandbox) | ||
31 | document = window.document, | ||
32 | |||
33 | // A central reference to the root jQuery(document) | ||
34 | rootjQuery, | ||
35 | |||
36 | // A simple way to check for HTML strings or ID strings | ||
37 | // (both of which we optimize for) | ||
38 | quickExpr = /^[^<]*(<[\w\W]+>)[^>]*$|^#([\w-]+)$/, | ||
39 | |||
40 | // Is it a simple selector | ||
41 | isSimple = /^.[^:#\[\.,]*$/, | ||
42 | |||
43 | // Check if a string has a non-whitespace character in it | ||
44 | rnotwhite = /\S/, | ||
45 | |||
46 | // Used for trimming whitespace | ||
47 | rtrim = /^(\s|\u00A0)+|(\s|\u00A0)+$/g, | ||
48 | |||
49 | // Match a standalone tag | ||
50 | rsingleTag = /^<(\w+)\s*\/?>(?:<\/\1>)?$/, | ||
51 | |||
52 | // Keep a UserAgent string for use with jQuery.browser | ||
53 | userAgent = navigator.userAgent, | ||
54 | |||
55 | // For matching the engine and version of the browser | ||
56 | browserMatch, | ||
57 | |||
58 | // Has the ready events already been bound? | ||
59 | readyBound = false, | ||
60 | |||
61 | // The functions to execute on DOM ready | ||
62 | readyList = [], | ||
63 | |||
64 | // The ready event handler | ||
65 | DOMContentLoaded, | ||
66 | |||
67 | // Save a reference to some core methods | ||
68 | toString = Object.prototype.toString, | ||
69 | hasOwnProperty = Object.prototype.hasOwnProperty, | ||
70 | push = Array.prototype.push, | ||
71 | slice = Array.prototype.slice, | ||
72 | indexOf = Array.prototype.indexOf; | ||
73 | |||
74 | jQuery.fn = jQuery.prototype = { | ||
75 | init: function( selector, context ) { | ||
76 | var match, elem, ret, doc; | ||
77 | |||
78 | // Handle $(""), $(null), or $(undefined) | ||
79 | if ( !selector ) { | ||
80 | return this; | ||
81 | } | ||
82 | |||
83 | // Handle $(DOMElement) | ||
84 | if ( selector.nodeType ) { | ||
85 | this.context = this[0] = selector; | ||
86 | this.length = 1; | ||
87 | return this; | ||
88 | } | ||
89 | |||
90 | // The body element only exists once, optimize finding it | ||
91 | if ( selector === "body" && !context ) { | ||
92 | this.context = document; | ||
93 | this[0] = document.body; | ||
94 | this.selector = "body"; | ||
95 | this.length = 1; | ||
96 | return this; | ||
97 | } | ||
98 | |||
99 | // Handle HTML strings | ||
100 | if ( typeof selector === "string" ) { | ||
101 | // Are we dealing with HTML string or an ID? | ||
102 | match = quickExpr.exec( selector ); | ||
103 | |||
104 | // Verify a match, and that no context was specified for #id | ||
105 | if ( match && (match[1] || !context) ) { | ||
106 | |||
107 | // HANDLE: $(html) -> $(array) | ||
108 | if ( match[1] ) { | ||
109 | doc = (context ? context.ownerDocument || context : document); | ||
110 | |||
111 | // If a single string is passed in and it's a single tag | ||
112 | // just do a createElement and skip the rest | ||
113 | ret = rsingleTag.exec( selector ); | ||
114 | |||
115 | if ( ret ) { | ||
116 | if ( jQuery.isPlainObject( context ) ) { | ||
117 | selector = [ document.createElement( ret[1] ) ]; | ||
118 | jQuery.fn.attr.call( selector, context, true ); | ||
119 | |||
120 | } else { | ||
121 | selector = [ doc.createElement( ret[1] ) ]; | ||
122 | } | ||
123 | |||
124 | } else { | ||
125 | ret = buildFragment( [ match[1] ], [ doc ] ); | ||
126 | selector = (ret.cacheable ? ret.fragment.cloneNode(true) : ret.fragment).childNodes; | ||
127 | } | ||
128 | |||
129 | return jQuery.merge( this, selector ); | ||
130 | |||
131 | // HANDLE: $("#id") | ||
132 | } else { | ||
133 | elem = document.getElementById( match[2] ); | ||
134 | |||
135 | if ( elem ) { | ||
136 | // Handle the case where IE and Opera return items | ||
137 | // by name instead of ID | ||
138 | if ( elem.id !== match[2] ) { | ||
139 | return rootjQuery.find( selector ); | ||
140 | } | ||
141 | |||
142 | // Otherwise, we inject the element directly into the jQuery object | ||
143 | this.length = 1; | ||
144 | this[0] = elem; | ||
145 | } | ||
146 | |||
147 | this.context = document; | ||
148 | this.selector = selector; | ||
149 | return this; | ||
150 | } | ||
151 | |||
152 | // HANDLE: $("TAG") | ||
153 | } else if ( !context && /^\w+$/.test( selector ) ) { | ||
154 | this.selector = selector; | ||
155 | this.context = document; | ||
156 | selector = document.getElementsByTagName( selector ); | ||
157 | return jQuery.merge( this, selector ); | ||
158 | |||
159 | // HANDLE: $(expr, $(...)) | ||
160 | } else if ( !context || context.jquery ) { | ||
161 | return (context || rootjQuery).find( selector ); | ||
162 | |||
163 | // HANDLE: $(expr, context) | ||
164 | // (which is just equivalent to: $(context).find(expr) | ||
165 | } else { | ||
166 | return jQuery( context ).find( selector ); | ||
167 | } | ||
168 | |||
169 | // HANDLE: $(function) | ||
170 | // Shortcut for document ready | ||
171 | } else if ( jQuery.isFunction( selector ) ) { | ||
172 | return rootjQuery.ready( selector ); | ||
173 | } | ||
174 | |||
175 | if (selector.selector !== undefined) { | ||
176 | this.selector = selector.selector; | ||
177 | this.context = selector.context; | ||
178 | } | ||
179 | |||
180 | return jQuery.makeArray( selector, this ); | ||
181 | }, | ||
182 | |||
183 | // Start with an empty selector | ||
184 | selector: "", | ||
185 | |||
186 | // The current version of jQuery being used | ||
187 | jquery: "1.4.2", | ||
188 | |||
189 | // The default length of a jQuery object is 0 | ||
190 | length: 0, | ||
191 | |||
192 | // The number of elements contained in the matched element set | ||
193 | size: function() { | ||
194 | return this.length; | ||
195 | }, | ||
196 | |||
197 | toArray: function() { | ||
198 | return slice.call( this, 0 ); | ||
199 | }, | ||
200 | |||
201 | // Get the Nth element in the matched element set OR | ||
202 | // Get the whole matched element set as a clean array | ||
203 | get: function( num ) { | ||
204 | return num == null ? | ||
205 | |||
206 | // Return a 'clean' array | ||
207 | this.toArray() : | ||
208 | |||
209 | // Return just the object | ||
210 | ( num < 0 ? this.slice(num)[ 0 ] : this[ num ] ); | ||
211 | }, | ||
212 | |||
213 | // Take an array of elements and push it onto the stack | ||
214 | // (returning the new matched element set) | ||
215 | pushStack: function( elems, name, selector ) { | ||
216 | // Build a new jQuery matched element set | ||
217 | var ret = jQuery(); | ||
218 | |||
219 | if ( jQuery.isArray( elems ) ) { | ||
220 | push.apply( ret, elems ); | ||
221 | |||
222 | } else { | ||
223 | jQuery.merge( ret, elems ); | ||
224 | } | ||
225 | |||
226 | // Add the old object onto the stack (as a reference) | ||
227 | ret.prevObject = this; | ||
228 | |||
229 | ret.context = this.context; | ||
230 | |||
231 | if ( name === "find" ) { | ||
232 | ret.selector = this.selector + (this.selector ? " " : "") + selector; | ||
233 | } else if ( name ) { | ||
234 | ret.selector = this.selector + "." + name + "(" + selector + ")"; | ||
235 | } | ||
236 | |||
237 | // Return the newly-formed element set | ||
238 | return ret; | ||
239 | }, | ||
240 | |||
241 | // Execute a callback for every element in the matched set. | ||
242 | // (You can seed the arguments with an array of args, but this is | ||
243 | // only used internally.) | ||
244 | each: function( callback, args ) { | ||
245 | return jQuery.each( this, callback, args ); | ||
246 | }, | ||
247 | |||
248 | ready: function( fn ) { | ||
249 | // Attach the listeners | ||
250 | jQuery.bindReady(); | ||
251 | |||
252 | // If the DOM is already ready | ||
253 | if ( jQuery.isReady ) { | ||
254 | // Execute the function immediately | ||
255 | fn.call( document, jQuery ); | ||
256 | |||
257 | // Otherwise, remember the function for later | ||
258 | } else if ( readyList ) { | ||
259 | // Add the function to the wait list | ||
260 | readyList.push( fn ); | ||
261 | } | ||
262 | |||
263 | return this; | ||
264 | }, | ||
265 | |||
266 | eq: function( i ) { | ||
267 | return i === -1 ? | ||
268 | this.slice( i ) : | ||
269 | this.slice( i, +i + 1 ); | ||
270 | }, | ||
271 | |||
272 | first: function() { | ||
273 | return this.eq( 0 ); | ||
274 | }, | ||
275 | |||
276 | last: function() { | ||
277 | return this.eq( -1 ); | ||
278 | }, | ||
279 | |||
280 | slice: function() { | ||
281 | return this.pushStack( slice.apply( this, arguments ), | ||
282 | "slice", slice.call(arguments).join(",") ); | ||
283 | }, | ||
284 | |||
285 | map: function( callback ) { | ||
286 | return this.pushStack( jQuery.map(this, function( elem, i ) { | ||
287 | return callback.call( elem, i, elem ); | ||
288 | })); | ||
289 | }, | ||
290 | |||
291 | end: function() { | ||
292 | return this.prevObject || jQuery(null); | ||
293 | }, | ||
294 | |||
295 | // For internal use only. | ||
296 | // Behaves like an Array's method, not like a jQuery method. | ||
297 | push: push, | ||
298 | sort: [].sort, | ||
299 | splice: [].splice | ||
300 | }; | ||
301 | |||
302 | // Give the init function the jQuery prototype for later instantiation | ||
303 | jQuery.fn.init.prototype = jQuery.fn; | ||
304 | |||
305 | jQuery.extend = jQuery.fn.extend = function() { | ||
306 | // copy reference to target object | ||
307 | var target = arguments[0] || {}, i = 1, length = arguments.length, deep = false, options, name, src, copy; | ||
308 | |||
309 | // Handle a deep copy situation | ||
310 | if ( typeof target === "boolean" ) { | ||
311 | deep = target; | ||
312 | target = arguments[1] || {}; | ||
313 | // skip the boolean and the target | ||
314 | i = 2; | ||
315 | } | ||
316 | |||
317 | // Handle case when target is a string or something (possible in deep copy) | ||
318 | if ( typeof target !== "object" && !jQuery.isFunction(target) ) { | ||
319 | target = {}; | ||
320 | } | ||
321 | |||
322 | // extend jQuery itself if only one argument is passed | ||
323 | if ( length === i ) { | ||
324 | target = this; | ||
325 | --i; | ||
326 | } | ||
327 | |||
328 | for ( ; i < length; i++ ) { | ||
329 | // Only deal with non-null/undefined values | ||
330 | if ( (options = arguments[ i ]) != null ) { | ||
331 | // Extend the base object | ||
332 | for ( name in options ) { | ||
333 | src = target[ name ]; | ||
334 | copy = options[ name ]; | ||
335 | |||
336 | // Prevent never-ending loop | ||
337 | if ( target === copy ) { | ||
338 | continue; | ||
339 | } | ||
340 | |||
341 | // Recurse if we're merging object literal values or arrays | ||
342 | if ( deep && copy && ( jQuery.isPlainObject(copy) || jQuery.isArray(copy) ) ) { | ||
343 | var clone = src && ( jQuery.isPlainObject(src) || jQuery.isArray(src) ) ? src | ||
344 | : jQuery.isArray(copy) ? [] : {}; | ||
345 | |||
346 | // Never move original objects, clone them | ||
347 | target[ name ] = jQuery.extend( deep, clone, copy ); | ||
348 | |||
349 | // Don't bring in undefined values | ||
350 | } else if ( copy !== undefined ) { | ||
351 | target[ name ] = copy; | ||
352 | } | ||
353 | } | ||
354 | } | ||
355 | } | ||
356 | |||
357 | // Return the modified object | ||
358 | return target; | ||
359 | }; | ||
360 | |||
361 | jQuery.extend({ | ||
362 | noConflict: function( deep ) { | ||
363 | window.$ = _$; | ||
364 | |||
365 | if ( deep ) { | ||
366 | window.jQuery = _jQuery; | ||
367 | } | ||
368 | |||
369 | return jQuery; | ||
370 | }, | ||
371 | |||
372 | // Is the DOM ready to be used? Set to true once it occurs. | ||
373 | isReady: false, | ||
374 | |||
375 | // Handle when the DOM is ready | ||
376 | ready: function() { | ||
377 | // Make sure that the DOM is not already loaded | ||
378 | if ( !jQuery.isReady ) { | ||
379 | // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443). | ||
380 | if ( !document.body ) { | ||
381 | return setTimeout( jQuery.ready, 13 ); | ||
382 | } | ||
383 | |||
384 | // Remember that the DOM is ready | ||
385 | jQuery.isReady = true; | ||
386 | |||
387 | // If there are functions bound, to execute | ||
388 | if ( readyList ) { | ||
389 | // Execute all of them | ||
390 | var fn, i = 0; | ||
391 | while ( (fn = readyList[ i++ ]) ) { | ||
392 | fn.call( document, jQuery ); | ||
393 | } | ||
394 | |||
395 | // Reset the list of functions | ||
396 | readyList = null; | ||
397 | } | ||
398 | |||
399 | // Trigger any bound ready events | ||
400 | if ( jQuery.fn.triggerHandler ) { | ||
401 | jQuery( document ).triggerHandler( "ready" ); | ||
402 | } | ||
403 | } | ||
404 | }, | ||
405 | |||
406 | bindReady: function() { | ||
407 | if ( readyBound ) { | ||
408 | return; | ||
409 | } | ||
410 | |||
411 | readyBound = true; | ||
412 | |||
413 | // Catch cases where $(document).ready() is called after the | ||
414 | // browser event has already occurred. | ||
415 | if ( document.readyState === "complete" ) { | ||
416 | return jQuery.ready(); | ||
417 | } | ||
418 | |||
419 | // Mozilla, Opera and webkit nightlies currently support this event | ||
420 | if ( document.addEventListener ) { | ||
421 | // Use the handy event callback | ||
422 | document.addEventListener( "DOMContentLoaded", DOMContentLoaded, false ); | ||
423 | |||
424 | // A fallback to window.onload, that will always work | ||
425 | window.addEventListener( "load", jQuery.ready, false ); | ||
426 | |||
427 | // If IE event model is used | ||
428 | } else if ( document.attachEvent ) { | ||
429 | // ensure firing before onload, | ||
430 | // maybe late but safe also for iframes | ||
431 | document.attachEvent("onreadystatechange", DOMContentLoaded); | ||
432 | |||
433 | // A fallback to window.onload, that will always work | ||
434 | window.attachEvent( "onload", jQuery.ready ); | ||
435 | |||
436 | // If IE and not a frame | ||
437 | // continually check to see if the document is ready | ||
438 | var toplevel = false; | ||
439 | |||
440 | try { | ||
441 | toplevel = window.frameElement == null; | ||
442 | } catch(e) {} | ||
443 | |||
444 | if ( document.documentElement.doScroll && toplevel ) { | ||
445 | doScrollCheck(); | ||
446 | } | ||
447 | } | ||
448 | }, | ||
449 | |||
450 | // See test/unit/core.js for details concerning isFunction. | ||
451 | // Since version 1.3, DOM methods and functions like alert | ||
452 | // aren't supported. They return false on IE (#2968). | ||
453 | isFunction: function( obj ) { | ||
454 | return toString.call(obj) === "[object Function]"; | ||
455 | }, | ||
456 | |||
457 | isArray: function( obj ) { | ||
458 | return toString.call(obj) === "[object Array]"; | ||
459 | }, | ||
460 | |||
461 | isPlainObject: function( obj ) { | ||
462 | // Must be an Object. | ||
463 | // Because of IE, we also have to check the presence of the constructor property. | ||
464 | // Make sure that DOM nodes and window objects don't pass through, as well | ||
465 | if ( !obj || toString.call(obj) !== "[object Object]" || obj.nodeType || obj.setInterval ) { | ||
466 | return false; | ||
467 | } | ||
468 | |||
469 | // Not own constructor property must be Object | ||
470 | if ( obj.constructor | ||
471 | && !hasOwnProperty.call(obj, "constructor") | ||
472 | && !hasOwnProperty.call(obj.constructor.prototype, "isPrototypeOf") ) { | ||
473 | return false; | ||
474 | } | ||
475 | |||
476 | // Own properties are enumerated firstly, so to speed up, | ||
477 | // if last one is own, then all properties are own. | ||
478 | |||
479 | var key; | ||
480 | for ( key in obj ) {} | ||
481 | |||
482 | return key === undefined || hasOwnProperty.call( obj, key ); | ||
483 | }, | ||
484 | |||
485 | isEmptyObject: function( obj ) { | ||
486 | for ( var name in obj ) { | ||
487 | return false; | ||
488 | } | ||
489 | return true; | ||
490 | }, | ||
491 | |||
492 | error: function( msg ) { | ||
493 | throw msg; | ||
494 | }, | ||
495 | |||
496 | parseJSON: function( data ) { | ||
497 | if ( typeof data !== "string" || !data ) { | ||
498 | return null; | ||
499 | } | ||
500 | |||
501 | // Make sure leading/trailing whitespace is removed (IE can't handle it) | ||
502 | data = jQuery.trim( data ); | ||
503 | |||
504 | // Make sure the incoming data is actual JSON | ||
505 | // Logic borrowed from http://json.org/json2.js | ||
506 | if ( /^[\],:{}\s]*$/.test(data.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, "@") | ||
507 | .replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, "]") | ||
508 | .replace(/(?:^|:|,)(?:\s*\[)+/g, "")) ) { | ||
509 | |||
510 | // Try to use the native JSON parser first | ||
511 | return window.JSON && window.JSON.parse ? | ||
512 | window.JSON.parse( data ) : | ||
513 | (new Function("return " + data))(); | ||
514 | |||
515 | } else { | ||
516 | jQuery.error( "Invalid JSON: " + data ); | ||
517 | } | ||
518 | }, | ||
519 | |||
520 | noop: function() {}, | ||
521 | |||
522 | // Evalulates a script in a global context | ||
523 | globalEval: function( data ) { | ||
524 | if ( data && rnotwhite.test(data) ) { | ||
525 | // Inspired by code by Andrea Giammarchi | ||
526 | // http://webreflection.blogspot.com/2007/08/global-scope-evaluation-and-dom.html | ||
527 | var head = document.getElementsByTagName("head")[0] || document.documentElement, | ||
528 | script = document.createElement("script"); | ||
529 | |||
530 | script.type = "text/javascript"; | ||
531 | |||
532 | if ( jQuery.support.scriptEval ) { | ||
533 | script.appendChild( document.createTextNode( data ) ); | ||
534 | } else { | ||
535 | script.text = data; | ||
536 | } | ||
537 | |||
538 | // Use insertBefore instead of appendChild to circumvent an IE6 bug. | ||
539 | // This arises when a base node is used (#2709). | ||
540 | head.insertBefore( script, head.firstChild ); | ||
541 | head.removeChild( script ); | ||
542 | } | ||
543 | }, | ||
544 | |||
545 | nodeName: function( elem, name ) { | ||
546 | return elem.nodeName && elem.nodeName.toUpperCase() === name.toUpperCase(); | ||
547 | }, | ||
548 | |||
549 | // args is for internal usage only | ||
550 | each: function( object, callback, args ) { | ||
551 | var name, i = 0, | ||
552 | length = object.length, | ||
553 | isObj = length === undefined || jQuery.isFunction(object); | ||
554 | |||
555 | if ( args ) { | ||
556 | if ( isObj ) { | ||
557 | for ( name in object ) { | ||
558 | if ( callback.apply( object[ name ], args ) === false ) { | ||
559 | break; | ||
560 | } | ||
561 | } | ||
562 | } else { | ||
563 | for ( ; i < length; ) { | ||
564 | if ( callback.apply( object[ i++ ], args ) === false ) { | ||
565 | break; | ||
566 | } | ||
567 | } | ||
568 | } | ||
569 | |||
570 | // A special, fast, case for the most common use of each | ||
571 | } else { | ||
572 | if ( isObj ) { | ||
573 | for ( name in object ) { | ||
574 | if ( callback.call( object[ name ], name, object[ name ] ) === false ) { | ||
575 | break; | ||
576 | } | ||
577 | } | ||
578 | } else { | ||
579 | for ( var value = object[0]; | ||
580 | i < length && callback.call( value, i, value ) !== false; value = object[++i] ) {} | ||
581 | } | ||
582 | } | ||
583 | |||
584 | return object; | ||
585 | }, | ||
586 | |||
587 | trim: function( text ) { | ||
588 | return (text || "").replace( rtrim, "" ); | ||
589 | }, | ||
590 | |||
591 | // results is for internal usage only | ||
592 | makeArray: function( array, results ) { | ||
593 | var ret = results || []; | ||
594 | |||
595 | if ( array != null ) { | ||
596 | // The window, strings (and functions) also have 'length' | ||
597 | // The extra typeof function check is to prevent crashes | ||
598 | // in Safari 2 (See: #3039) | ||
599 | if ( array.length == null || typeof array === "string" || jQuery.isFunction(array) || (typeof array !== "function" && array.setInterval) ) { | ||
600 | push.call( ret, array ); | ||
601 | } else { | ||
602 | jQuery.merge( ret, array ); | ||
603 | } | ||
604 | } | ||
605 | |||
606 | return ret; | ||
607 | }, | ||
608 | |||
609 | inArray: function( elem, array ) { | ||
610 | if ( array.indexOf ) { | ||
611 | return array.indexOf( elem ); | ||
612 | } | ||
613 | |||
614 | for ( var i = 0, length = array.length; i < length; i++ ) { | ||
615 | if ( array[ i ] === elem ) { | ||
616 | return i; | ||
617 | } | ||
618 | } | ||
619 | |||
620 | return -1; | ||
621 | }, | ||
622 | |||
623 | merge: function( first, second ) { | ||
624 | var i = first.length, j = 0; | ||
625 | |||
626 | if ( typeof second.length === "number" ) { | ||
627 | for ( var l = second.length; j < l; j++ ) { | ||
628 | first[ i++ ] = second[ j ]; | ||
629 | } | ||
630 | |||
631 | } else { | ||
632 | while ( second[j] !== undefined ) { | ||
633 | first[ i++ ] = second[ j++ ]; | ||
634 | } | ||
635 | } | ||
636 | |||
637 | first.length = i; | ||
638 | |||
639 | return first; | ||
640 | }, | ||
641 | |||
642 | grep: function( elems, callback, inv ) { | ||
643 | var ret = []; | ||
644 | |||
645 | // Go through the array, only saving the items | ||
646 | // that pass the validator function | ||
647 | for ( var i = 0, length = elems.length; i < length; i++ ) { | ||
648 | if ( !inv !== !callback( elems[ i ], i ) ) { | ||
649 | ret.push( elems[ i ] ); | ||
650 | } | ||
651 | } | ||
652 | |||
653 | return ret; | ||
654 | }, | ||
655 | |||
656 | // arg is for internal usage only | ||
657 | map: function( elems, callback, arg ) { | ||
658 | var ret = [], value; | ||
659 | |||
660 | // Go through the array, translating each of the items to their | ||
661 | // new value (or values). | ||
662 | for ( var i = 0, length = elems.length; i < length; i++ ) { | ||
663 | value = callback( elems[ i ], i, arg ); | ||
664 | |||
665 | if ( value != null ) { | ||
666 | ret[ ret.length ] = value; | ||
667 | } | ||
668 | } | ||
669 | |||
670 | return ret.concat.apply( [], ret ); | ||
671 | }, | ||
672 | |||
673 | // A global GUID counter for objects | ||
674 | guid: 1, | ||
675 | |||
676 | proxy: function( fn, proxy, thisObject ) { | ||
677 | if ( arguments.length === 2 ) { | ||
678 | if ( typeof proxy === "string" ) { | ||
679 | thisObject = fn; | ||
680 | fn = thisObject[ proxy ]; | ||
681 | proxy = undefined; | ||
682 | |||
683 | } else if ( proxy && !jQuery.isFunction( proxy ) ) { | ||
684 | thisObject = proxy; | ||
685 | proxy = undefined; | ||
686 | } | ||
687 | } | ||
688 | |||
689 | if ( !proxy && fn ) { | ||
690 | proxy = function() { | ||
691 | return fn.apply( thisObject || this, arguments ); | ||
692 | }; | ||
693 | } | ||
694 | |||
695 | // Set the guid of unique handler to the same of original handler, so it can be removed | ||
696 | if ( fn ) { | ||
697 | proxy.guid = fn.guid = fn.guid || proxy.guid || jQuery.guid++; | ||
698 | } | ||
699 | |||
700 | // So proxy can be declared as an argument | ||
701 | return proxy; | ||
702 | }, | ||
703 | |||
704 | // Use of jQuery.browser is frowned upon. | ||
705 | // More details: http://docs.jquery.com/Utilities/jQuery.browser | ||
706 | uaMatch: function( ua ) { | ||
707 | ua = ua.toLowerCase(); | ||
708 | |||
709 | var match = /(webkit)[ \/]([\w.]+)/.exec( ua ) || | ||
710 | /(opera)(?:.*version)?[ \/]([\w.]+)/.exec( ua ) || | ||
711 | /(msie) ([\w.]+)/.exec( ua ) || | ||
712 | !/compatible/.test( ua ) && /(mozilla)(?:.*? rv:([\w.]+))?/.exec( ua ) || | ||
713 | []; | ||
714 | |||
715 | return { browser: match[1] || "", version: match[2] || "0" }; | ||
716 | }, | ||
717 | |||
718 | browser: {} | ||
719 | }); | ||
720 | |||
721 | browserMatch = jQuery.uaMatch( userAgent ); | ||
722 | if ( browserMatch.browser ) { | ||
723 | jQuery.browser[ browserMatch.browser ] = true; | ||
724 | jQuery.browser.version = browserMatch.version; | ||
725 | } | ||
726 | |||
727 | // Deprecated, use jQuery.browser.webkit instead | ||
728 | if ( jQuery.browser.webkit ) { | ||
729 | jQuery.browser.safari = true; | ||
730 | } | ||
731 | |||
732 | if ( indexOf ) { | ||
733 | jQuery.inArray = function( elem, array ) { | ||
734 | return indexOf.call( array, elem ); | ||
735 | }; | ||
736 | } | ||
737 | |||
738 | // All jQuery objects should point back to these | ||
739 | rootjQuery = jQuery(document); | ||
740 | |||
741 | // Cleanup functions for the document ready method | ||
742 | if ( document.addEventListener ) { | ||
743 | DOMContentLoaded = function() { | ||
744 | document.removeEventListener( "DOMContentLoaded", DOMContentLoaded, false ); | ||
745 | jQuery.ready(); | ||
746 | }; | ||
747 | |||
748 | } else if ( document.attachEvent ) { | ||
749 | DOMContentLoaded = function() { | ||
750 | // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443). | ||
751 | if ( document.readyState === "complete" ) { | ||
752 | document.detachEvent( "onreadystatechange", DOMContentLoaded ); | ||
753 | jQuery.ready(); | ||
754 | } | ||
755 | }; | ||
756 | } | ||
757 | |||
758 | // The DOM ready check for Internet Explorer | ||
759 | function doScrollCheck() { | ||
760 | if ( jQuery.isReady ) { | ||
761 | return; | ||
762 | } | ||
763 | |||
764 | try { | ||
765 | // If IE is used, use the trick by Diego Perini | ||
766 | // http://javascript.nwbox.com/IEContentLoaded/ | ||
767 | document.documentElement.doScroll("left"); | ||
768 | } catch( error ) { | ||
769 | setTimeout( doScrollCheck, 1 ); | ||
770 | return; | ||
771 | } | ||
772 | |||
773 | // and execute any waiting functions | ||
774 | jQuery.ready(); | ||
775 | } | ||
776 | |||
777 | function evalScript( i, elem ) { | ||
778 | if ( elem.src ) { | ||
779 | jQuery.ajax({ | ||
780 | url: elem.src, | ||
781 | async: false, | ||
782 | dataType: "script" | ||
783 | }); | ||
784 | } else { | ||
785 | jQuery.globalEval( elem.text || elem.textContent || elem.innerHTML || "" ); | ||
786 | } | ||
787 | |||
788 | if ( elem.parentNode ) { | ||
789 | elem.parentNode.removeChild( elem ); | ||
790 | } | ||
791 | } | ||
792 | |||
793 | // Mutifunctional method to get and set values to a collection | ||
794 | // The value/s can be optionally by executed if its a function | ||
795 | function access( elems, key, value, exec, fn, pass ) { | ||
796 | var length = elems.length; | ||
797 | |||
798 | // Setting many attributes | ||
799 | if ( typeof key === "object" ) { | ||
800 | for ( var k in key ) { | ||
801 | access( elems, k, key[k], exec, fn, value ); | ||
802 | } | ||
803 | return elems; | ||
804 | } | ||
805 | |||
806 | // Setting one attribute | ||
807 | if ( value !== undefined ) { | ||
808 | // Optionally, function values get executed if exec is true | ||
809 | exec = !pass && exec && jQuery.isFunction(value); | ||
810 | |||
811 | for ( var i = 0; i < length; i++ ) { | ||
812 | fn( elems[i], key, exec ? value.call( elems[i], i, fn( elems[i], key ) ) : value, pass ); | ||
813 | } | ||
814 | |||
815 | return elems; | ||
816 | } | ||
817 | |||
818 | // Getting an attribute | ||
819 | return length ? fn( elems[0], key ) : undefined; | ||
820 | } | ||
821 | |||
822 | function now() { | ||
823 | return (new Date).getTime(); | ||
824 | } | ||
825 | (function() { | ||
826 | |||
827 | jQuery.support = {}; | ||
828 | |||
829 | var root = document.documentElement, | ||
830 | script = document.createElement("script"), | ||
831 | div = document.createElement("div"), | ||
832 | id = "script" + now(); | ||
833 | |||
834 | div.style.display = "none"; | ||
835 | div.innerHTML = " <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>"; | ||
836 | |||
837 | var all = div.getElementsByTagName("*"), | ||
838 | a = div.getElementsByTagName("a")[0]; | ||
839 | |||
840 | // Can't get basic test support | ||
841 | if ( !all || !all.length || !a ) { | ||
842 | return; | ||
843 | } | ||
844 | |||
845 | jQuery.support = { | ||
846 | // IE strips leading whitespace when .innerHTML is used | ||
847 | leadingWhitespace: div.firstChild.nodeType === 3, | ||
848 | |||
849 | // Make sure that tbody elements aren't automatically inserted | ||
850 | // IE will insert them into empty tables | ||
851 | tbody: !div.getElementsByTagName("tbody").length, | ||
852 | |||
853 | // Make sure that link elements get serialized correctly by innerHTML | ||
854 | // This requires a wrapper element in IE | ||
855 | htmlSerialize: !!div.getElementsByTagName("link").length, | ||
856 | |||
857 | // Get the style information from getAttribute | ||
858 | // (IE uses .cssText insted) | ||
859 | style: /red/.test( a.getAttribute("style") ), | ||
860 | |||
861 | // Make sure that URLs aren't manipulated | ||
862 | // (IE normalizes it by default) | ||
863 | hrefNormalized: a.getAttribute("href") === "/a", | ||
864 | |||
865 | // Make sure that element opacity exists | ||
866 | // (IE uses filter instead) | ||
867 | // Use a regex to work around a WebKit issue. See #5145 | ||
868 | opacity: /^0.55$/.test( a.style.opacity ), | ||
869 | |||
870 | // Verify style float existence | ||
871 | // (IE uses styleFloat instead of cssFloat) | ||
872 | cssFloat: !!a.style.cssFloat, | ||
873 | |||
874 | // Make sure that if no value is specified for a checkbox | ||
875 | // that it defaults to "on". | ||
876 | // (WebKit defaults to "" instead) | ||
877 | checkOn: div.getElementsByTagName("input")[0].value === "on", | ||
878 | |||
879 | // Make sure that a selected-by-default option has a working selected property. | ||
880 | // (WebKit defaults to false instead of true, IE too, if it's in an optgroup) | ||
881 | optSelected: document.createElement("select").appendChild( document.createElement("option") ).selected, | ||
882 | |||
883 | parentNode: div.removeChild( div.appendChild( document.createElement("div") ) ).parentNode === null, | ||
884 | |||
885 | // Will be defined later | ||
886 | deleteExpando: true, | ||
887 | checkClone: false, | ||
888 | scriptEval: false, | ||
889 | noCloneEvent: true, | ||
890 | boxModel: null | ||
891 | }; | ||
892 | |||
893 | script.type = "text/javascript"; | ||
894 | try { | ||
895 | script.appendChild( document.createTextNode( "window." + id + "=1;" ) ); | ||
896 | } catch(e) {} | ||
897 | |||
898 | root.insertBefore( script, root.firstChild ); | ||
899 | |||
900 | // Make sure that the execution of code works by injecting a script | ||
901 | // tag with appendChild/createTextNode | ||
902 | // (IE doesn't support this, fails, and uses .text instead) | ||
903 | if ( window[ id ] ) { | ||
904 | jQuery.support.scriptEval = true; | ||
905 | delete window[ id ]; | ||
906 | } | ||
907 | |||
908 | // Test to see if it's possible to delete an expando from an element | ||
909 | // Fails in Internet Explorer | ||
910 | try { | ||
911 | delete script.test; | ||
912 | |||
913 | } catch(e) { | ||
914 | jQuery.support.deleteExpando = false; | ||
915 | } | ||
916 | |||
917 | root.removeChild( script ); | ||
918 | |||
919 | if ( div.attachEvent && div.fireEvent ) { | ||
920 | div.attachEvent("onclick", function click() { | ||
921 | // Cloning a node shouldn't copy over any | ||
922 | // bound event handlers (IE does this) | ||
923 | jQuery.support.noCloneEvent = false; | ||
924 | div.detachEvent("onclick", click); | ||
925 | }); | ||
926 | div.cloneNode(true).fireEvent("onclick"); | ||
927 | } | ||
928 | |||
929 | div = document.createElement("div"); | ||
930 | div.innerHTML = "<input type='radio' name='radiotest' checked='checked'/>"; | ||
931 | |||
932 | var fragment = document.createDocumentFragment(); | ||
933 | fragment.appendChild( div.firstChild ); | ||
934 | |||
935 | // WebKit doesn't clone checked state correctly in fragments | ||
936 | jQuery.support.checkClone = fragment.cloneNode(true).cloneNode(true).lastChild.checked; | ||
937 | |||
938 | // Figure out if the W3C box model works as expected | ||
939 | // document.body must exist before we can do this | ||
940 | jQuery(function() { | ||
941 | var div = document.createElement("div"); | ||
942 | div.style.width = div.style.paddingLeft = "1px"; | ||
943 | |||
944 | document.body.appendChild( div ); | ||
945 | jQuery.boxModel = jQuery.support.boxModel = div.offsetWidth === 2; | ||
946 | document.body.removeChild( div ).style.display = 'none'; | ||
947 | |||
948 | div = null; | ||
949 | }); | ||
950 | |||
951 | // Technique from Juriy Zaytsev | ||
952 | // http://thinkweb2.com/projects/prototype/detecting-event-support-without-browser-sniffing/ | ||
953 | var eventSupported = function( eventName ) { | ||
954 | var el = document.createElement("div"); | ||
955 | eventName = "on" + eventName; | ||
956 | |||
957 | var isSupported = (eventName in el); | ||
958 | if ( !isSupported ) { | ||
959 | el.setAttribute(eventName, "return;"); | ||
960 | isSupported = typeof el[eventName] === "function"; | ||
961 | } | ||
962 | el = null; | ||
963 | |||
964 | return isSupported; | ||
965 | }; | ||
966 | |||
967 | jQuery.support.submitBubbles = eventSupported("submit"); | ||
968 | jQuery.support.changeBubbles = eventSupported("change"); | ||
969 | |||
970 | // release memory in IE | ||
971 | root = script = div = all = a = null; | ||
972 | })(); | ||
973 | |||
974 | jQuery.props = { | ||
975 | "for": "htmlFor", | ||
976 | "class": "className", | ||
977 | readonly: "readOnly", | ||
978 | maxlength: "maxLength", | ||
979 | cellspacing: "cellSpacing", | ||
980 | rowspan: "rowSpan", | ||
981 | colspan: "colSpan", | ||
982 | tabindex: "tabIndex", | ||
983 | usemap: "useMap", | ||
984 | frameborder: "frameBorder" | ||
985 | }; | ||
986 | var expando = "jQuery" + now(), uuid = 0, windowData = {}; | ||
987 | |||
988 | jQuery.extend({ | ||
989 | cache: {}, | ||
990 | |||
991 | expando:expando, | ||
992 | |||
993 | // The following elements throw uncatchable exceptions if you | ||
994 | // attempt to add expando properties to them. | ||
995 | noData: { | ||
996 | "embed": true, | ||
997 | "object": true, | ||
998 | "applet": true | ||
999 | }, | ||
1000 | |||
1001 | data: function( elem, name, data ) { | ||
1002 | if ( elem.nodeName && jQuery.noData[elem.nodeName.toLowerCase()] ) { | ||
1003 | return; | ||
1004 | } | ||
1005 | |||
1006 | elem = elem == window ? | ||
1007 | windowData : | ||
1008 | elem; | ||
1009 | |||
1010 | var id = elem[ expando ], cache = jQuery.cache, thisCache; | ||
1011 | |||
1012 | if ( !id && typeof name === "string" && data === undefined ) { | ||
1013 | return null; | ||
1014 | } | ||
1015 | |||
1016 | // Compute a unique ID for the element | ||
1017 | if ( !id ) { | ||
1018 | id = ++uuid; | ||
1019 | } | ||
1020 | |||
1021 | // Avoid generating a new cache unless none exists and we | ||
1022 | // want to manipulate it. | ||
1023 | if ( typeof name === "object" ) { | ||
1024 | elem[ expando ] = id; | ||
1025 | thisCache = cache[ id ] = jQuery.extend(true, {}, name); | ||
1026 | |||
1027 | } else if ( !cache[ id ] ) { | ||
1028 | elem[ expando ] = id; | ||
1029 | cache[ id ] = {}; | ||
1030 | } | ||
1031 | |||
1032 | thisCache = cache[ id ]; | ||
1033 | |||
1034 | // Prevent overriding the named cache with undefined values | ||
1035 | if ( data !== undefined ) { | ||
1036 | thisCache[ name ] = data; | ||
1037 | } | ||
1038 | |||
1039 | return typeof name === "string" ? thisCache[ name ] : thisCache; | ||
1040 | }, | ||
1041 | |||
1042 | removeData: function( elem, name ) { | ||
1043 | if ( elem.nodeName && jQuery.noData[elem.nodeName.toLowerCase()] ) { | ||
1044 | return; | ||
1045 | } | ||
1046 | |||
1047 | elem = elem == window ? | ||
1048 | windowData : | ||
1049 | elem; | ||
1050 | |||
1051 | var id = elem[ expando ], cache = jQuery.cache, thisCache = cache[ id ]; | ||
1052 | |||
1053 | // If we want to remove a specific section of the element's data | ||
1054 | if ( name ) { | ||
1055 | if ( thisCache ) { | ||
1056 | // Remove the section of cache data | ||
1057 | delete thisCache[ name ]; | ||
1058 | |||
1059 | // If we've removed all the data, remove the element's cache | ||
1060 | if ( jQuery.isEmptyObject(thisCache) ) { | ||
1061 | jQuery.removeData( elem ); | ||
1062 | } | ||
1063 | } | ||
1064 | |||
1065 | // Otherwise, we want to remove all of the element's data | ||
1066 | } else { | ||
1067 | if ( jQuery.support.deleteExpando ) { | ||
1068 | delete elem[ jQuery.expando ]; | ||
1069 | |||
1070 | } else if ( elem.removeAttribute ) { | ||
1071 | elem.removeAttribute( jQuery.expando ); | ||
1072 | } | ||
1073 | |||
1074 | // Completely remove the data cache | ||
1075 | delete cache[ id ]; | ||
1076 | } | ||
1077 | } | ||
1078 | }); | ||
1079 | |||
1080 | jQuery.fn.extend({ | ||
1081 | data: function( key, value ) { | ||
1082 | if ( typeof key === "undefined" && this.length ) { | ||
1083 | return jQuery.data( this[0] ); | ||
1084 | |||
1085 | } else if ( typeof key === "object" ) { | ||
1086 | return this.each(function() { | ||
1087 | jQuery.data( this, key ); | ||
1088 | }); | ||
1089 | } | ||
1090 | |||
1091 | var parts = key.split("."); | ||
1092 | parts[1] = parts[1] ? "." + parts[1] : ""; | ||
1093 | |||
1094 | if ( value === undefined ) { | ||
1095 | var data = this.triggerHandler("getData" + parts[1] + "!", [parts[0]]); | ||
1096 | |||
1097 | if ( data === undefined && this.length ) { | ||
1098 | data = jQuery.data( this[0], key ); | ||
1099 | } | ||
1100 | return data === undefined && parts[1] ? | ||
1101 | this.data( parts[0] ) : | ||
1102 | data; | ||
1103 | } else { | ||
1104 | return this.trigger("setData" + parts[1] + "!", [parts[0], value]).each(function() { | ||
1105 | jQuery.data( this, key, value ); | ||
1106 | }); | ||
1107 | } | ||
1108 | }, | ||
1109 | |||
1110 | removeData: function( key ) { | ||
1111 | return this.each(function() { | ||
1112 | jQuery.removeData( this, key ); | ||
1113 | }); | ||
1114 | } | ||
1115 | }); | ||
1116 | jQuery.extend({ | ||
1117 | queue: function( elem, type, data ) { | ||
1118 | if ( !elem ) { | ||
1119 | return; | ||
1120 | } | ||
1121 | |||
1122 | type = (type || "fx") + "queue"; | ||
1123 | var q = jQuery.data( elem, type ); | ||
1124 | |||
1125 | // Speed up dequeue by getting out quickly if this is just a lookup | ||
1126 | if ( !data ) { | ||
1127 | return q || []; | ||
1128 | } | ||
1129 | |||
1130 | if ( !q || jQuery.isArray(data) ) { | ||
1131 | q = jQuery.data( elem, type, jQuery.makeArray(data) ); | ||
1132 | |||
1133 | } else { | ||
1134 | q.push( data ); | ||
1135 | } | ||
1136 | |||
1137 | return q; | ||
1138 | }, | ||
1139 | |||
1140 | dequeue: function( elem, type ) { | ||
1141 | type = type || "fx"; | ||
1142 | |||
1143 | var queue = jQuery.queue( elem, type ), fn = queue.shift(); | ||
1144 | |||
1145 | // If the fx queue is dequeued, always remove the progress sentinel | ||
1146 | if ( fn === "inprogress" ) { | ||
1147 | fn = queue.shift(); | ||
1148 | } | ||
1149 | |||
1150 | if ( fn ) { | ||
1151 | // Add a progress sentinel to prevent the fx queue from being | ||
1152 | // automatically dequeued | ||
1153 | if ( type === "fx" ) { | ||
1154 | queue.unshift("inprogress"); | ||
1155 | } | ||
1156 | |||
1157 | fn.call(elem, function() { | ||
1158 | jQuery.dequeue(elem, type); | ||
1159 | }); | ||
1160 | } | ||
1161 | } | ||
1162 | }); | ||
1163 | |||
1164 | jQuery.fn.extend({ | ||
1165 | queue: function( type, data ) { | ||
1166 | if ( typeof type !== "string" ) { | ||
1167 | data = type; | ||
1168 | type = "fx"; | ||
1169 | } | ||
1170 | |||
1171 | if ( data === undefined ) { | ||
1172 | return jQuery.queue( this[0], type ); | ||
1173 | } | ||
1174 | return this.each(function( i, elem ) { | ||
1175 | var queue = jQuery.queue( this, type, data ); | ||
1176 | |||
1177 | if ( type === "fx" && queue[0] !== "inprogress" ) { | ||
1178 | jQuery.dequeue( this, type ); | ||
1179 | } | ||
1180 | }); | ||
1181 | }, | ||
1182 | dequeue: function( type ) { | ||
1183 | return this.each(function() { | ||
1184 | jQuery.dequeue( this, type ); | ||
1185 | }); | ||
1186 | }, | ||
1187 | |||
1188 | // Based off of the plugin by Clint Helfers, with permission. | ||
1189 | // http://blindsignals.com/index.php/2009/07/jquery-delay/ | ||
1190 | delay: function( time, type ) { | ||
1191 | time = jQuery.fx ? jQuery.fx.speeds[time] || time : time; | ||
1192 | type = type || "fx"; | ||
1193 | |||
1194 | return this.queue( type, function() { | ||
1195 | var elem = this; | ||
1196 | setTimeout(function() { | ||
1197 | jQuery.dequeue( elem, type ); | ||
1198 | }, time ); | ||
1199 | }); | ||
1200 | }, | ||
1201 | |||
1202 | clearQueue: function( type ) { | ||
1203 | return this.queue( type || "fx", [] ); | ||
1204 | } | ||
1205 | }); | ||
1206 | var rclass = /[\n\t]/g, | ||
1207 | rspace = /\s+/, | ||
1208 | rreturn = /\r/g, | ||
1209 | rspecialurl = /href|src|style/, | ||
1210 | rtype = /(button|input)/i, | ||
1211 | rfocusable = /(button|input|object|select|textarea)/i, | ||
1212 | rclickable = /^(a|area)$/i, | ||
1213 | rradiocheck = /radio|checkbox/; | ||
1214 | |||
1215 | jQuery.fn.extend({ | ||
1216 | attr: function( name, value ) { | ||
1217 | return access( this, name, value, true, jQuery.attr ); | ||
1218 | }, | ||
1219 | |||
1220 | removeAttr: function( name, fn ) { | ||
1221 | return this.each(function(){ | ||
1222 | jQuery.attr( this, name, "" ); | ||
1223 | if ( this.nodeType === 1 ) { | ||
1224 | this.removeAttribute( name ); | ||
1225 | } | ||
1226 | }); | ||
1227 | }, | ||
1228 | |||
1229 | addClass: function( value ) { | ||
1230 | if ( jQuery.isFunction(value) ) { | ||
1231 | return this.each(function(i) { | ||
1232 | var self = jQuery(this); | ||
1233 | self.addClass( value.call(this, i, self.attr("class")) ); | ||
1234 | }); | ||
1235 | } | ||
1236 | |||
1237 | if ( value && typeof value === "string" ) { | ||
1238 | var classNames = (value || "").split( rspace ); | ||
1239 | |||
1240 | for ( var i = 0, l = this.length; i < l; i++ ) { | ||
1241 | var elem = this[i]; | ||
1242 | |||
1243 | if ( elem.nodeType === 1 ) { | ||
1244 | if ( !elem.className ) { | ||
1245 | elem.className = value; | ||
1246 | |||
1247 | } else { | ||
1248 | var className = " " + elem.className + " ", setClass = elem.className; | ||
1249 | for ( var c = 0, cl = classNames.length; c < cl; c++ ) { | ||
1250 | if ( className.indexOf( " " + classNames[c] + " " ) < 0 ) { | ||
1251 | setClass += " " + classNames[c]; | ||
1252 | } | ||
1253 | } | ||
1254 | elem.className = jQuery.trim( setClass ); | ||
1255 | } | ||
1256 | } | ||
1257 | } | ||
1258 | } | ||
1259 | |||
1260 | return this; | ||
1261 | }, | ||
1262 | |||
1263 | removeClass: function( value ) { | ||
1264 | if ( jQuery.isFunction(value) ) { | ||
1265 | return this.each(function(i) { | ||
1266 | var self = jQuery(this); | ||
1267 | self.removeClass( value.call(this, i, self.attr("class")) ); | ||
1268 | }); | ||
1269 | } | ||
1270 | |||
1271 | if ( (value && typeof value === "string") || value === undefined ) { | ||
1272 | var classNames = (value || "").split(rspace); | ||
1273 | |||
1274 | for ( var i = 0, l = this.length; i < l; i++ ) { | ||
1275 | var elem = this[i]; | ||
1276 | |||
1277 | if ( elem.nodeType === 1 && elem.className ) { | ||
1278 | if ( value ) { | ||
1279 | var className = (" " + elem.className + " ").replace(rclass, " "); | ||
1280 | for ( var c = 0, cl = classNames.length; c < cl; c++ ) { | ||
1281 | className = className.replace(" " + classNames[c] + " ", " "); | ||
1282 | } | ||
1283 | elem.className = jQuery.trim( className ); | ||
1284 | |||
1285 | } else { | ||
1286 | elem.className = ""; | ||
1287 | } | ||
1288 | } | ||
1289 | } | ||
1290 | } | ||
1291 | |||
1292 | return this; | ||
1293 | }, | ||
1294 | |||
1295 | toggleClass: function( value, stateVal ) { | ||
1296 | var type = typeof value, isBool = typeof stateVal === "boolean"; | ||
1297 | |||
1298 | if ( jQuery.isFunction( value ) ) { | ||
1299 | return this.each(function(i) { | ||
1300 | var self = jQuery(this); | ||
1301 | self.toggleClass( value.call(this, i, self.attr("class"), stateVal), stateVal ); | ||
1302 | }); | ||
1303 | } | ||
1304 | |||
1305 | return this.each(function() { | ||
1306 | if ( type === "string" ) { | ||
1307 | // toggle individual class names | ||
1308 | var className, i = 0, self = jQuery(this), | ||
1309 | state = stateVal, | ||
1310 | classNames = value.split( rspace ); | ||
1311 | |||
1312 | while ( (className = classNames[ i++ ]) ) { | ||
1313 | // check each className given, space seperated list | ||
1314 | state = isBool ? state : !self.hasClass( className ); | ||
1315 | self[ state ? "addClass" : "removeClass" ]( className ); | ||
1316 | } | ||
1317 | |||
1318 | } else if ( type === "undefined" || type === "boolean" ) { | ||
1319 | if ( this.className ) { | ||
1320 | // store className if set | ||
1321 | jQuery.data( this, "__className__", this.className ); | ||
1322 | } | ||
1323 | |||
1324 | // toggle whole className | ||
1325 | this.className = this.className || value === false ? "" : jQuery.data( this, "__className__" ) || ""; | ||
1326 | } | ||
1327 | }); | ||
1328 | }, | ||
1329 | |||
1330 | hasClass: function( selector ) { | ||
1331 | var className = " " + selector + " "; | ||
1332 | for ( var i = 0, l = this.length; i < l; i++ ) { | ||
1333 | if ( (" " + this[i].className + " ").replace(rclass, " ").indexOf( className ) > -1 ) { | ||
1334 | return true; | ||
1335 | } | ||
1336 | } | ||
1337 | |||
1338 | return false; | ||
1339 | }, | ||
1340 | |||
1341 | val: function( value ) { | ||
1342 | if ( value === undefined ) { | ||
1343 | var elem = this[0]; | ||
1344 | |||
1345 | if ( elem ) { | ||
1346 | if ( jQuery.nodeName( elem, "option" ) ) { | ||
1347 | return (elem.attributes.value || {}).specified ? elem.value : elem.text; | ||
1348 | } | ||
1349 | |||
1350 | // We need to handle select boxes special | ||
1351 | if ( jQuery.nodeName( elem, "select" ) ) { | ||
1352 | var index = elem.selectedIndex, | ||
1353 | values = [], | ||
1354 | options = elem.options, | ||
1355 | one = elem.type === "select-one"; | ||
1356 | |||
1357 | // Nothing was selected | ||
1358 | if ( index < 0 ) { | ||
1359 | return null; | ||
1360 | } | ||
1361 | |||
1362 | // Loop through all the selected options | ||
1363 | for ( var i = one ? index : 0, max = one ? index + 1 : options.length; i < max; i++ ) { | ||
1364 | var option = options[ i ]; | ||
1365 | |||
1366 | if ( option.selected ) { | ||
1367 | // Get the specifc value for the option | ||
1368 | value = jQuery(option).val(); | ||
1369 | |||
1370 | // We don't need an array for one selects | ||
1371 | if ( one ) { | ||
1372 | return value; | ||
1373 | } | ||
1374 | |||
1375 | // Multi-Selects return an array | ||
1376 | values.push( value ); | ||
1377 | } | ||
1378 | } | ||
1379 | |||
1380 | return values; | ||
1381 | } | ||
1382 | |||
1383 | // Handle the case where in Webkit "" is returned instead of "on" if a value isn't specified | ||
1384 | if ( rradiocheck.test( elem.type ) && !jQuery.support.checkOn ) { | ||
1385 | return elem.getAttribute("value") === null ? "on" : elem.value; | ||
1386 | } | ||
1387 | |||
1388 | |||
1389 | // Everything else, we just grab the value | ||
1390 | return (elem.value || "").replace(rreturn, ""); | ||
1391 | |||
1392 | } | ||
1393 | |||
1394 | return undefined; | ||
1395 | } | ||
1396 | |||
1397 | var isFunction = jQuery.isFunction(value); | ||
1398 | |||
1399 | return this.each(function(i) { | ||
1400 | var self = jQuery(this), val = value; | ||
1401 | |||
1402 | if ( this.nodeType !== 1 ) { | ||
1403 | return; | ||
1404 | } | ||
1405 | |||
1406 | if ( isFunction ) { | ||
1407 | val = value.call(this, i, self.val()); | ||
1408 | } | ||
1409 | |||
1410 | // Typecast each time if the value is a Function and the appended | ||
1411 | // value is therefore different each time. | ||
1412 | if ( typeof val === "number" ) { | ||
1413 | val += ""; | ||
1414 | } | ||
1415 | |||
1416 | if ( jQuery.isArray(val) && rradiocheck.test( this.type ) ) { | ||
1417 | this.checked = jQuery.inArray( self.val(), val ) >= 0; | ||
1418 | |||
1419 | } else if ( jQuery.nodeName( this, "select" ) ) { | ||
1420 | var values = jQuery.makeArray(val); | ||
1421 | |||
1422 | jQuery( "option", this ).each(function() { | ||
1423 | this.selected = jQuery.inArray( jQuery(this).val(), values ) >= 0; | ||
1424 | }); | ||
1425 | |||
1426 | if ( !values.length ) { | ||
1427 | this.selectedIndex = -1; | ||
1428 | } | ||
1429 | |||
1430 | } else { | ||
1431 | this.value = val; | ||
1432 | } | ||
1433 | }); | ||
1434 | } | ||
1435 | }); | ||
1436 | |||
1437 | jQuery.extend({ | ||
1438 | attrFn: { | ||
1439 | val: true, | ||
1440 | css: true, | ||
1441 | html: true, | ||
1442 | text: true, | ||
1443 | data: true, | ||
1444 | width: true, | ||
1445 | height: true, | ||
1446 | offset: true | ||
1447 | }, | ||
1448 | |||
1449 | attr: function( elem, name, value, pass ) { | ||
1450 | // don't set attributes on text and comment nodes | ||
1451 | if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 ) { | ||
1452 | return undefined; | ||
1453 | } | ||
1454 | |||
1455 | if ( pass && name in jQuery.attrFn ) { | ||
1456 | return jQuery(elem)[name](value); | ||
1457 | } | ||
1458 | |||
1459 | var notxml = elem.nodeType !== 1 || !jQuery.isXMLDoc( elem ), | ||
1460 | // Whether we are setting (or getting) | ||
1461 | set = value !== undefined; | ||
1462 | |||
1463 | // Try to normalize/fix the name | ||
1464 | name = notxml && jQuery.props[ name ] || name; | ||
1465 | |||
1466 | // Only do all the following if this is a node (faster for style) | ||
1467 | if ( elem.nodeType === 1 ) { | ||
1468 | // These attributes require special treatment | ||
1469 | var special = rspecialurl.test( name ); | ||
1470 | |||
1471 | // Safari mis-reports the default selected property of an option | ||
1472 | // Accessing the parent's selectedIndex property fixes it | ||
1473 | if ( name === "selected" && !jQuery.support.optSelected ) { | ||
1474 | var parent = elem.parentNode; | ||
1475 | if ( parent ) { | ||
1476 | parent.selectedIndex; | ||
1477 | |||
1478 | // Make sure that it also works with optgroups, see #5701 | ||
1479 | if ( parent.parentNode ) { | ||
1480 | parent.parentNode.selectedIndex; | ||
1481 | } | ||
1482 | } | ||
1483 | } | ||
1484 | |||
1485 | // If applicable, access the attribute via the DOM 0 way | ||
1486 | if ( name in elem && notxml && !special ) { | ||
1487 | if ( set ) { | ||
1488 | // We can't allow the type property to be changed (since it causes problems in IE) | ||
1489 | if ( name === "type" && rtype.test( elem.nodeName ) && elem.parentNode ) { | ||
1490 | jQuery.error( "type property can't be changed" ); | ||
1491 | } | ||
1492 | |||
1493 | elem[ name ] = value; | ||
1494 | } | ||
1495 | |||
1496 | // browsers index elements by id/name on forms, give priority to attributes. | ||
1497 | if ( jQuery.nodeName( elem, "form" ) && elem.getAttributeNode(name) ) { | ||
1498 | return elem.getAttributeNode( name ).nodeValue; | ||
1499 | } | ||
1500 | |||
1501 | // elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set | ||
1502 | // http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ | ||
1503 | if ( name === "tabIndex" ) { | ||
1504 | var attributeNode = elem.getAttributeNode( "tabIndex" ); | ||
1505 | |||
1506 | return attributeNode && attributeNode.specified ? | ||
1507 | attributeNode.value : | ||
1508 | rfocusable.test( elem.nodeName ) || rclickable.test( elem.nodeName ) && elem.href ? | ||
1509 | 0 : | ||
1510 | undefined; | ||
1511 | } | ||
1512 | |||
1513 | return elem[ name ]; | ||
1514 | } | ||
1515 | |||
1516 | if ( !jQuery.support.style && notxml && name === "style" ) { | ||
1517 | if ( set ) { | ||
1518 | elem.style.cssText = "" + value; | ||
1519 | } | ||
1520 | |||
1521 | return elem.style.cssText; | ||
1522 | } | ||
1523 | |||
1524 | if ( set ) { | ||
1525 | // convert the value to a string (all browsers do this but IE) see #1070 | ||
1526 | elem.setAttribute( name, "" + value ); | ||
1527 | } | ||
1528 | |||
1529 | var attr = !jQuery.support.hrefNormalized && notxml && special ? | ||
1530 | // Some attributes require a special call on IE | ||
1531 | elem.getAttribute( name, 2 ) : | ||
1532 | elem.getAttribute( name ); | ||
1533 | |||
1534 | // Non-existent attributes return null, we normalize to undefined | ||
1535 | return attr === null ? undefined : attr; | ||
1536 | } | ||
1537 | |||
1538 | // elem is actually elem.style ... set the style | ||
1539 | // Using attr for specific style information is now deprecated. Use style instead. | ||
1540 | return jQuery.style( elem, name, value ); | ||
1541 | } | ||
1542 | }); | ||
1543 | var rnamespaces = /\.(.*)$/, | ||
1544 | fcleanup = function( nm ) { | ||
1545 | return nm.replace(/[^\w\s\.\|`]/g, function( ch ) { | ||
1546 | return "\\" + ch; | ||
1547 | }); | ||
1548 | }; | ||
1549 | |||
1550 | /* | ||
1551 | * A number of helper functions used for managing events. | ||
1552 | * Many of the ideas behind this code originated from | ||
1553 | * Dean Edwards' addEvent library. | ||
1554 | */ | ||
1555 | jQuery.event = { | ||
1556 | |||
1557 | // Bind an event to an element | ||
1558 | // Original by Dean Edwards | ||
1559 | add: function( elem, types, handler, data ) { | ||
1560 | if ( elem.nodeType === 3 || elem.nodeType === 8 ) { | ||
1561 | return; | ||
1562 | } | ||
1563 | |||
1564 | // For whatever reason, IE has trouble passing the window object | ||
1565 | // around, causing it to be cloned in the process | ||
1566 | if ( elem.setInterval && ( elem !== window && !elem.frameElement ) ) { | ||
1567 | elem = window; | ||
1568 | } | ||
1569 | |||
1570 | var handleObjIn, handleObj; | ||
1571 | |||
1572 | if ( handler.handler ) { | ||
1573 | handleObjIn = handler; | ||
1574 | handler = handleObjIn.handler; | ||
1575 | } | ||
1576 | |||
1577 | // Make sure that the function being executed has a unique ID | ||
1578 | if ( !handler.guid ) { | ||
1579 | handler.guid = jQuery.guid++; | ||
1580 | } | ||
1581 | |||
1582 | // Init the element's event structure | ||
1583 | var elemData = jQuery.data( elem ); | ||
1584 | |||
1585 | // If no elemData is found then we must be trying to bind to one of the | ||
1586 | // banned noData elements | ||
1587 | if ( !elemData ) { | ||
1588 | return; | ||
1589 | } | ||
1590 | |||
1591 | var events = elemData.events = elemData.events || {}, | ||
1592 | eventHandle = elemData.handle, eventHandle; | ||
1593 | |||
1594 | if ( !eventHandle ) { | ||
1595 | elemData.handle = eventHandle = function() { | ||
1596 | // Handle the second event of a trigger and when | ||
1597 | // an event is called after a page has unloaded | ||
1598 | return typeof jQuery !== "undefined" && !jQuery.event.triggered ? | ||
1599 | jQuery.event.handle.apply( eventHandle.elem, arguments ) : | ||
1600 | undefined; | ||
1601 | }; | ||
1602 | } | ||
1603 | |||
1604 | // Add elem as a property of the handle function | ||
1605 | // This is to prevent a memory leak with non-native events in IE. | ||
1606 | eventHandle.elem = elem; | ||
1607 | |||
1608 | // Handle multiple events separated by a space | ||
1609 | // jQuery(...).bind("mouseover mouseout", fn); | ||
1610 | types = types.split(" "); | ||
1611 | |||
1612 | var type, i = 0, namespaces; | ||
1613 | |||
1614 | while ( (type = types[ i++ ]) ) { | ||
1615 | handleObj = handleObjIn ? | ||
1616 | jQuery.extend({}, handleObjIn) : | ||
1617 | { handler: handler, data: data }; | ||
1618 | |||
1619 | // Namespaced event handlers | ||
1620 | if ( type.indexOf(".") > -1 ) { | ||
1621 | namespaces = type.split("."); | ||
1622 | type = namespaces.shift(); | ||
1623 | handleObj.namespace = namespaces.slice(0).sort().join("."); | ||
1624 | |||
1625 | } else { | ||
1626 | namespaces = []; | ||
1627 | handleObj.namespace = ""; | ||
1628 | } | ||
1629 | |||
1630 | handleObj.type = type; | ||
1631 | handleObj.guid = handler.guid; | ||
1632 | |||
1633 | // Get the current list of functions bound to this event | ||
1634 | var handlers = events[ type ], | ||
1635 | special = jQuery.event.special[ type ] || {}; | ||
1636 | |||
1637 | // Init the event handler queue | ||
1638 | if ( !handlers ) { | ||
1639 | handlers = events[ type ] = []; | ||
1640 | |||
1641 | // Check for a special event handler | ||
1642 | // Only use addEventListener/attachEvent if the special | ||
1643 | // events handler returns false | ||
1644 | if ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) { | ||
1645 | // Bind the global event handler to the element | ||
1646 | if ( elem.addEventListener ) { | ||
1647 | elem.addEventListener( type, eventHandle, false ); | ||
1648 | |||
1649 | } else if ( elem.attachEvent ) { | ||
1650 | elem.attachEvent( "on" + type, eventHandle ); | ||
1651 | } | ||
1652 | } | ||
1653 | } | ||
1654 | |||
1655 | if ( special.add ) { | ||
1656 | special.add.call( elem, handleObj ); | ||
1657 | |||
1658 | if ( !handleObj.handler.guid ) { | ||
1659 | handleObj.handler.guid = handler.guid; | ||
1660 | } | ||
1661 | } | ||
1662 | |||
1663 | // Add the function to the element's handler list | ||
1664 | handlers.push( handleObj ); | ||
1665 | |||
1666 | // Keep track of which events have been used, for global triggering | ||
1667 | jQuery.event.global[ type ] = true; | ||
1668 | } | ||
1669 | |||
1670 | // Nullify elem to prevent memory leaks in IE | ||
1671 | elem = null; | ||
1672 | }, | ||
1673 | |||
1674 | global: {}, | ||
1675 | |||
1676 | // Detach an event or set of events from an element | ||
1677 | remove: function( elem, types, handler, pos ) { | ||
1678 | // don't do events on text and comment nodes | ||
1679 | if ( elem.nodeType === 3 || elem.nodeType === 8 ) { | ||
1680 | return; | ||
1681 | } | ||
1682 | |||
1683 | var ret, type, fn, i = 0, all, namespaces, namespace, special, eventType, handleObj, origType, | ||
1684 | elemData = jQuery.data( elem ), | ||
1685 | events = elemData && elemData.events; | ||
1686 | |||
1687 | if ( !elemData || !events ) { | ||
1688 | return; | ||
1689 | } | ||
1690 | |||
1691 | // types is actually an event object here | ||
1692 | if ( types && types.type ) { | ||
1693 | handler = types.handler; | ||
1694 | types = types.type; | ||
1695 | } | ||
1696 | |||
1697 | // Unbind all events for the element | ||
1698 | if ( !types || typeof types === "string" && types.charAt(0) === "." ) { | ||
1699 | types = types || ""; | ||
1700 | |||
1701 | for ( type in events ) { | ||
1702 | jQuery.event.remove( elem, type + types ); | ||
1703 | } | ||
1704 | |||
1705 | return; | ||
1706 | } | ||
1707 | |||
1708 | // Handle multiple events separated by a space | ||
1709 | // jQuery(...).unbind("mouseover mouseout", fn); | ||
1710 | types = types.split(" "); | ||
1711 | |||
1712 | while ( (type = types[ i++ ]) ) { | ||
1713 | origType = type; | ||
1714 | handleObj = null; | ||
1715 | all = type.indexOf(".") < 0; | ||
1716 | namespaces = []; | ||
1717 | |||
1718 | if ( !all ) { | ||
1719 | // Namespaced event handlers | ||
1720 | namespaces = type.split("."); | ||
1721 | type = namespaces.shift(); | ||
1722 | |||
1723 | namespace = new RegExp("(^|\\.)" + | ||
1724 | jQuery.map( namespaces.slice(0).sort(), fcleanup ).join("\\.(?:.*\\.)?") + "(\\.|$)") | ||
1725 | } | ||
1726 | |||
1727 | eventType = events[ type ]; | ||
1728 | |||
1729 | if ( !eventType ) { | ||
1730 | continue; | ||
1731 | } | ||
1732 | |||
1733 | if ( !handler ) { | ||
1734 | for ( var j = 0; j < eventType.length; j++ ) { | ||
1735 | handleObj = eventType[ j ]; | ||
1736 | |||
1737 | if ( all || namespace.test( handleObj.namespace ) ) { | ||
1738 | jQuery.event.remove( elem, origType, handleObj.handler, j ); | ||
1739 | eventType.splice( j--, 1 ); | ||
1740 | } | ||
1741 | } | ||
1742 | |||
1743 | continue; | ||
1744 | } | ||
1745 | |||
1746 | special = jQuery.event.special[ type ] || {}; | ||
1747 | |||
1748 | for ( var j = pos || 0; j < eventType.length; j++ ) { | ||
1749 | handleObj = eventType[ j ]; | ||
1750 | |||
1751 | if ( handler.guid === handleObj.guid ) { | ||
1752 | // remove the given handler for the given type | ||
1753 | if ( all || namespace.test( handleObj.namespace ) ) { | ||
1754 | if ( pos == null ) { | ||
1755 | eventType.splice( j--, 1 ); | ||
1756 | } | ||
1757 | |||
1758 | if ( special.remove ) { | ||
1759 | special.remove.call( elem, handleObj ); | ||
1760 | } | ||
1761 | } | ||
1762 | |||
1763 | if ( pos != null ) { | ||
1764 | break; | ||
1765 | } | ||
1766 | } | ||
1767 | } | ||
1768 | |||
1769 | // remove generic event handler if no more handlers exist | ||
1770 | if ( eventType.length === 0 || pos != null && eventType.length === 1 ) { | ||
1771 | if ( !special.teardown || special.teardown.call( elem, namespaces ) === false ) { | ||
1772 | removeEvent( elem, type, elemData.handle ); | ||
1773 | } | ||
1774 | |||
1775 | ret = null; | ||
1776 | delete events[ type ]; | ||
1777 | } | ||
1778 | } | ||
1779 | |||
1780 | // Remove the expando if it's no longer used | ||
1781 | if ( jQuery.isEmptyObject( events ) ) { | ||
1782 | var handle = elemData.handle; | ||
1783 | if ( handle ) { | ||
1784 | handle.elem = null; | ||
1785 | } | ||
1786 | |||
1787 | delete elemData.events; | ||
1788 | delete elemData.handle; | ||
1789 | |||
1790 | if ( jQuery.isEmptyObject( elemData ) ) { | ||
1791 | jQuery.removeData( elem ); | ||
1792 | } | ||
1793 | } | ||
1794 | }, | ||
1795 | |||
1796 | // bubbling is internal | ||
1797 | trigger: function( event, data, elem /*, bubbling */ ) { | ||
1798 | // Event object or event type | ||
1799 | var type = event.type || event, | ||
1800 | bubbling = arguments[3]; | ||
1801 | |||
1802 | if ( !bubbling ) { | ||
1803 | event = typeof event === "object" ? | ||
1804 | // jQuery.Event object | ||
1805 | event[expando] ? event : | ||
1806 | // Object literal | ||
1807 | jQuery.extend( jQuery.Event(type), event ) : | ||
1808 | // Just the event type (string) | ||
1809 | jQuery.Event(type); | ||
1810 | |||
1811 | if ( type.indexOf("!") >= 0 ) { | ||
1812 | event.type = type = type.slice(0, -1); | ||
1813 | event.exclusive = true; | ||
1814 | } | ||
1815 | |||
1816 | // Handle a global trigger | ||
1817 | if ( !elem ) { | ||
1818 | // Don't bubble custom events when global (to avoid too much overhead) | ||
1819 | event.stopPropagation(); | ||
1820 | |||
1821 | // Only trigger if we've ever bound an event for it | ||
1822 | if ( jQuery.event.global[ type ] ) { | ||
1823 | jQuery.each( jQuery.cache, function() { | ||
1824 | if ( this.events && this.events[type] ) { | ||
1825 | jQuery.event.trigger( event, data, this.handle.elem ); | ||
1826 | } | ||
1827 | }); | ||
1828 | } | ||
1829 | } | ||
1830 | |||
1831 | // Handle triggering a single element | ||
1832 | |||
1833 | // don't do events on text and comment nodes | ||
1834 | if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 ) { | ||
1835 | return undefined; | ||
1836 | } | ||
1837 | |||
1838 | // Clean up in case it is reused | ||
1839 | event.result = undefined; | ||
1840 | event.target = elem; | ||
1841 | |||
1842 | // Clone the incoming data, if any | ||
1843 | data = jQuery.makeArray( data ); | ||
1844 | data.unshift( event ); | ||
1845 | } | ||
1846 | |||
1847 | event.currentTarget = elem; | ||
1848 | |||
1849 | // Trigger the event, it is assumed that "handle" is a function | ||
1850 | var handle = jQuery.data( elem, "handle" ); | ||
1851 | if ( handle ) { | ||
1852 | handle.apply( elem, data ); | ||
1853 | } | ||
1854 | |||
1855 | var parent = elem.parentNode || elem.ownerDocument; | ||
1856 | |||
1857 | // Trigger an inline bound script | ||
1858 | try { | ||
1859 | if ( !(elem && elem.nodeName && jQuery.noData[elem.nodeName.toLowerCase()]) ) { | ||
1860 | if ( elem[ "on" + type ] && elem[ "on" + type ].apply( elem, data ) === false ) { | ||
1861 | event.result = false; | ||
1862 | } | ||
1863 | } | ||
1864 | |||
1865 | // prevent IE from throwing an error for some elements with some event types, see #3533 | ||
1866 | } catch (e) {} | ||
1867 | |||
1868 | if ( !event.isPropagationStopped() && parent ) { | ||
1869 | jQuery.event.trigger( event, data, parent, true ); | ||
1870 | |||
1871 | } else if ( !event.isDefaultPrevented() ) { | ||
1872 | var target = event.target, old, | ||
1873 | isClick = jQuery.nodeName(target, "a") && type === "click", | ||
1874 | special = jQuery.event.special[ type ] || {}; | ||
1875 | |||
1876 | if ( (!special._default || special._default.call( elem, event ) === false) && | ||
1877 | !isClick && !(target && target.nodeName && jQuery.noData[target.nodeName.toLowerCase()]) ) { | ||
1878 | |||
1879 | try { | ||
1880 | if ( target[ type ] ) { | ||
1881 | // Make sure that we don't accidentally re-trigger the onFOO events | ||
1882 | old = target[ "on" + type ]; | ||
1883 | |||
1884 | if ( old ) { | ||
1885 | target[ "on" + type ] = null; | ||
1886 | } | ||
1887 | |||
1888 | jQuery.event.triggered = true; | ||
1889 | target[ type ](); | ||
1890 | } | ||
1891 | |||
1892 | // prevent IE from throwing an error for some elements with some event types, see #3533 | ||
1893 | } catch (e) {} | ||
1894 | |||
1895 | if ( old ) { | ||
1896 | target[ "on" + type ] = old; | ||
1897 | } | ||
1898 | |||
1899 | jQuery.event.triggered = false; | ||
1900 | } | ||
1901 | } | ||
1902 | }, | ||
1903 | |||
1904 | handle: function( event ) { | ||
1905 | var all, handlers, namespaces, namespace, events; | ||
1906 | |||
1907 | event = arguments[0] = jQuery.event.fix( event || window.event ); | ||
1908 | event.currentTarget = this; | ||
1909 | |||
1910 | // Namespaced event handlers | ||
1911 | all = event.type.indexOf(".") < 0 && !event.exclusive; | ||
1912 | |||
1913 | if ( !all ) { | ||
1914 | namespaces = event.type.split("."); | ||
1915 | event.type = namespaces.shift(); | ||
1916 | namespace = new RegExp("(^|\\.)" + namespaces.slice(0).sort().join("\\.(?:.*\\.)?") + "(\\.|$)"); | ||
1917 | } | ||
1918 | |||
1919 | var events = jQuery.data(this, "events"), handlers = events[ event.type ]; | ||
1920 | |||
1921 | if ( events && handlers ) { | ||
1922 | // Clone the handlers to prevent manipulation | ||
1923 | handlers = handlers.slice(0); | ||
1924 | |||
1925 | for ( var j = 0, l = handlers.length; j < l; j++ ) { | ||
1926 | var handleObj = handlers[ j ]; | ||
1927 | |||
1928 | // Filter the functions by class | ||
1929 | if ( all || namespace.test( handleObj.namespace ) ) { | ||
1930 | // Pass in a reference to the handler function itself | ||
1931 | // So that we can later remove it | ||
1932 | event.handler = handleObj.handler; | ||
1933 | event.data = handleObj.data; | ||
1934 | event.handleObj = handleObj; | ||
1935 | |||
1936 | var ret = handleObj.handler.apply( this, arguments ); | ||
1937 | |||
1938 | if ( ret !== undefined ) { | ||
1939 | event.result = ret; | ||
1940 | if ( ret === false ) { | ||
1941 | event.preventDefault(); | ||
1942 | event.stopPropagation(); | ||
1943 | } | ||
1944 | } | ||
1945 | |||
1946 | if ( event.isImmediatePropagationStopped() ) { | ||
1947 | break; | ||
1948 | } | ||
1949 | } | ||
1950 | } | ||
1951 | } | ||
1952 | |||
1953 | return event.result; | ||
1954 | }, | ||
1955 | |||
1956 | props: "altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "), | ||
1957 | |||
1958 | fix: function( event ) { | ||
1959 | if ( event[ expando ] ) { | ||
1960 | return event; | ||
1961 | } | ||
1962 | |||
1963 | // store a copy of the original event object | ||
1964 | // and "clone" to set read-only properties | ||
1965 | var originalEvent = event; | ||
1966 | event = jQuery.Event( originalEvent ); | ||
1967 | |||
1968 | for ( var i = this.props.length, prop; i; ) { | ||
1969 | prop = this.props[ --i ]; | ||
1970 | event[ prop ] = originalEvent[ prop ]; | ||
1971 | } | ||
1972 | |||
1973 | // Fix target property, if necessary | ||
1974 | if ( !event.target ) { | ||
1975 | event.target = event.srcElement || document; // Fixes #1925 where srcElement might not be defined either | ||
1976 | } | ||
1977 | |||
1978 | // check if target is a textnode (safari) | ||
1979 | if ( event.target.nodeType === 3 ) { | ||
1980 | event.target = event.target.parentNode; | ||
1981 | } | ||
1982 | |||
1983 | // Add relatedTarget, if necessary | ||
1984 | if ( !event.relatedTarget && event.fromElement ) { | ||
1985 | event.relatedTarget = event.fromElement === event.target ? event.toElement : event.fromElement; | ||
1986 | } | ||
1987 | |||
1988 | // Calculate pageX/Y if missing and clientX/Y available | ||
1989 | if ( event.pageX == null && event.clientX != null ) { | ||
1990 | var doc = document.documentElement, body = document.body; | ||
1991 | event.pageX = event.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc && doc.clientLeft || body && body.clientLeft || 0); | ||
1992 | event.pageY = event.clientY + (doc && doc.scrollTop || body && body.scrollTop || 0) - (doc && doc.clientTop || body && body.clientTop || 0); | ||
1993 | } | ||
1994 | |||
1995 | // Add which for key events | ||
1996 | if ( !event.which && ((event.charCode || event.charCode === 0) ? event.charCode : event.keyCode) ) { | ||
1997 | event.which = event.charCode || event.keyCode; | ||
1998 | } | ||
1999 | |||
2000 | // Add metaKey to non-Mac browsers (use ctrl for PC's and Meta for Macs) | ||
2001 | if ( !event.metaKey && event.ctrlKey ) { | ||
2002 | event.metaKey = event.ctrlKey; | ||
2003 | } | ||
2004 | |||
2005 | // Add which for click: 1 === left; 2 === middle; 3 === right | ||
2006 | // Note: button is not normalized, so don't use it | ||
2007 | if ( !event.which && event.button !== undefined ) { | ||
2008 | event.which = (event.button & 1 ? 1 : ( event.button & 2 ? 3 : ( event.button & 4 ? 2 : 0 ) )); | ||
2009 | } | ||
2010 | |||
2011 | return event; | ||
2012 | }, | ||
2013 | |||
2014 | // Deprecated, use jQuery.guid instead | ||
2015 | guid: 1E8, | ||
2016 | |||
2017 | // Deprecated, use jQuery.proxy instead | ||
2018 | proxy: jQuery.proxy, | ||
2019 | |||
2020 | special: { | ||
2021 | ready: { | ||
2022 | // Make sure the ready event is setup | ||
2023 | setup: jQuery.bindReady, | ||
2024 | teardown: jQuery.noop | ||
2025 | }, | ||
2026 | |||
2027 | live: { | ||
2028 | add: function( handleObj ) { | ||
2029 | jQuery.event.add( this, handleObj.origType, jQuery.extend({}, handleObj, {handler: liveHandler}) ); | ||
2030 | }, | ||
2031 | |||
2032 | remove: function( handleObj ) { | ||
2033 | var remove = true, | ||
2034 | type = handleObj.origType.replace(rnamespaces, ""); | ||
2035 | |||
2036 | jQuery.each( jQuery.data(this, "events").live || [], function() { | ||
2037 | if ( type === this.origType.replace(rnamespaces, "") ) { | ||
2038 | remove = false; | ||
2039 | return false; | ||
2040 | } | ||
2041 | }); | ||
2042 | |||
2043 | if ( remove ) { | ||
2044 | jQuery.event.remove( this, handleObj.origType, liveHandler ); | ||
2045 | } | ||
2046 | } | ||
2047 | |||
2048 | }, | ||
2049 | |||
2050 | beforeunload: { | ||
2051 | setup: function( data, namespaces, eventHandle ) { | ||
2052 | // We only want to do this special case on windows | ||
2053 | if ( this.setInterval ) { | ||
2054 | this.onbeforeunload = eventHandle; | ||
2055 | } | ||
2056 | |||
2057 | return false; | ||
2058 | }, | ||
2059 | teardown: function( namespaces, eventHandle ) { | ||
2060 | if ( this.onbeforeunload === eventHandle ) { | ||
2061 | this.onbeforeunload = null; | ||
2062 | } | ||
2063 | } | ||
2064 | } | ||
2065 | } | ||
2066 | }; | ||
2067 | |||
2068 | var removeEvent = document.removeEventListener ? | ||
2069 | function( elem, type, handle ) { | ||
2070 | elem.removeEventListener( type, handle, false ); | ||
2071 | } : | ||
2072 | function( elem, type, handle ) { | ||
2073 | elem.detachEvent( "on" + type, handle ); | ||
2074 | }; | ||
2075 | |||
2076 | jQuery.Event = function( src ) { | ||
2077 | // Allow instantiation without the 'new' keyword | ||
2078 | if ( !this.preventDefault ) { | ||
2079 | return new jQuery.Event( src ); | ||
2080 | } | ||
2081 | |||
2082 | // Event object | ||
2083 | if ( src && src.type ) { | ||
2084 | this.originalEvent = src; | ||
2085 | this.type = src.type; | ||
2086 | // Event type | ||
2087 | } else { | ||
2088 | this.type = src; | ||
2089 | } | ||
2090 | |||
2091 | // timeStamp is buggy for some events on Firefox(#3843) | ||
2092 | // So we won't rely on the native value | ||
2093 | this.timeStamp = now(); | ||
2094 | |||
2095 | // Mark it as fixed | ||
2096 | this[ expando ] = true; | ||
2097 | }; | ||
2098 | |||
2099 | function returnFalse() { | ||
2100 | return false; | ||
2101 | } | ||
2102 | function returnTrue() { | ||
2103 | return true; | ||
2104 | } | ||
2105 | |||
2106 | // jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding | ||
2107 | // http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html | ||
2108 | jQuery.Event.prototype = { | ||
2109 | preventDefault: function() { | ||
2110 | this.isDefaultPrevented = returnTrue; | ||
2111 | |||
2112 | var e = this.originalEvent; | ||
2113 | if ( !e ) { | ||
2114 | return; | ||
2115 | } | ||
2116 | |||
2117 | // if preventDefault exists run it on the original event | ||
2118 | if ( e.preventDefault ) { | ||
2119 | e.preventDefault(); | ||
2120 | } | ||
2121 | // otherwise set the returnValue property of the original event to false (IE) | ||
2122 | e.returnValue = false; | ||
2123 | }, | ||
2124 | stopPropagation: function() { | ||
2125 | this.isPropagationStopped = returnTrue; | ||
2126 | |||
2127 | var e = this.originalEvent; | ||
2128 | if ( !e ) { | ||
2129 | return; | ||
2130 | } | ||
2131 | // if stopPropagation exists run it on the original event | ||
2132 | if ( e.stopPropagation ) { | ||
2133 | e.stopPropagation(); | ||
2134 | } | ||
2135 | // otherwise set the cancelBubble property of the original event to true (IE) | ||
2136 | e.cancelBubble = true; | ||
2137 | }, | ||
2138 | stopImmediatePropagation: function() { | ||
2139 | this.isImmediatePropagationStopped = returnTrue; | ||
2140 | this.stopPropagation(); | ||
2141 | }, | ||
2142 | isDefaultPrevented: returnFalse, | ||
2143 | isPropagationStopped: returnFalse, | ||
2144 | isImmediatePropagationStopped: returnFalse | ||
2145 | }; | ||
2146 | |||
2147 | // Checks if an event happened on an element within another element | ||
2148 | // Used in jQuery.event.special.mouseenter and mouseleave handlers | ||
2149 | var withinElement = function( event ) { | ||
2150 | // Check if mouse(over|out) are still within the same parent element | ||
2151 | var parent = event.relatedTarget; | ||
2152 | |||
2153 | // Firefox sometimes assigns relatedTarget a XUL element | ||
2154 | // which we cannot access the parentNode property of | ||
2155 | try { | ||
2156 | // Traverse up the tree | ||
2157 | while ( parent && parent !== this ) { | ||
2158 | parent = parent.parentNode; | ||
2159 | } | ||
2160 | |||
2161 | if ( parent !== this ) { | ||
2162 | // set the correct event type | ||
2163 | event.type = event.data; | ||
2164 | |||
2165 | // handle event if we actually just moused on to a non sub-element | ||
2166 | jQuery.event.handle.apply( this, arguments ); | ||
2167 | } | ||
2168 | |||
2169 | // assuming we've left the element since we most likely mousedover a xul element | ||
2170 | } catch(e) { } | ||
2171 | }, | ||
2172 | |||
2173 | // In case of event delegation, we only need to rename the event.type, | ||
2174 | // liveHandler will take care of the rest. | ||
2175 | delegate = function( event ) { | ||
2176 | event.type = event.data; | ||
2177 | jQuery.event.handle.apply( this, arguments ); | ||
2178 | }; | ||
2179 | |||
2180 | // Create mouseenter and mouseleave events | ||
2181 | jQuery.each({ | ||
2182 | mouseenter: "mouseover", | ||
2183 | mouseleave: "mouseout" | ||
2184 | }, function( orig, fix ) { | ||
2185 | jQuery.event.special[ orig ] = { | ||
2186 | setup: function( data ) { | ||
2187 | jQuery.event.add( this, fix, data && data.selector ? delegate : withinElement, orig ); | ||
2188 | }, | ||
2189 | teardown: function( data ) { | ||
2190 | jQuery.event.remove( this, fix, data && data.selector ? delegate : withinElement ); | ||
2191 | } | ||
2192 | }; | ||
2193 | }); | ||
2194 | |||
2195 | // submit delegation | ||
2196 | if ( !jQuery.support.submitBubbles ) { | ||
2197 | |||
2198 | jQuery.event.special.submit = { | ||
2199 | setup: function( data, namespaces ) { | ||
2200 | if ( this.nodeName.toLowerCase() !== "form" ) { | ||
2201 | jQuery.event.add(this, "click.specialSubmit", function( e ) { | ||
2202 | var elem = e.target, type = elem.type; | ||
2203 | |||
2204 | if ( (type === "submit" || type === "image") && jQuery( elem ).closest("form").length ) { | ||
2205 | return trigger( "submit", this, arguments ); | ||
2206 | } | ||
2207 | }); | ||
2208 | |||
2209 | jQuery.event.add(this, "keypress.specialSubmit", function( e ) { | ||
2210 | var elem = e.target, type = elem.type; | ||
2211 | |||
2212 | if ( (type === "text" || type === "password") && jQuery( elem ).closest("form").length && e.keyCode === 13 ) { | ||
2213 | return trigger( "submit", this, arguments ); | ||
2214 | } | ||
2215 | }); | ||
2216 | |||
2217 | } else { | ||
2218 | return false; | ||
2219 | } | ||
2220 | }, | ||
2221 | |||
2222 | teardown: function( namespaces ) { | ||
2223 | jQuery.event.remove( this, ".specialSubmit" ); | ||
2224 | } | ||
2225 | }; | ||
2226 | |||
2227 | } | ||
2228 | |||
2229 | // change delegation, happens here so we have bind. | ||
2230 | if ( !jQuery.support.changeBubbles ) { | ||
2231 | |||
2232 | var formElems = /textarea|input|select/i, | ||
2233 | |||
2234 | changeFilters, | ||
2235 | |||
2236 | getVal = function( elem ) { | ||
2237 | var type = elem.type, val = elem.value; | ||
2238 | |||
2239 | if ( type === "radio" || type === "checkbox" ) { | ||
2240 | val = elem.checked; | ||
2241 | |||
2242 | } else if ( type === "select-multiple" ) { | ||
2243 | val = elem.selectedIndex > -1 ? | ||
2244 | jQuery.map( elem.options, function( elem ) { | ||
2245 | return elem.selected; | ||
2246 | }).join("-") : | ||
2247 | ""; | ||
2248 | |||
2249 | } else if ( elem.nodeName.toLowerCase() === "select" ) { | ||
2250 | val = elem.selectedIndex; | ||
2251 | } | ||
2252 | |||
2253 | return val; | ||
2254 | }, | ||
2255 | |||
2256 | testChange = function testChange( e ) { | ||
2257 | var elem = e.target, data, val; | ||
2258 | |||
2259 | if ( !formElems.test( elem.nodeName ) || elem.readOnly ) { | ||
2260 | return; | ||
2261 | } | ||
2262 | |||
2263 | data = jQuery.data( elem, "_change_data" ); | ||
2264 | val = getVal(elem); | ||
2265 | |||
2266 | // the current data will be also retrieved by beforeactivate | ||
2267 | if ( e.type !== "focusout" || elem.type !== "radio" ) { | ||
2268 | jQuery.data( elem, "_change_data", val ); | ||
2269 | } | ||
2270 | |||
2271 | if ( data === undefined || val === data ) { | ||
2272 | return; | ||
2273 | } | ||
2274 | |||
2275 | if ( data != null || val ) { | ||
2276 | e.type = "change"; | ||
2277 | return jQuery.event.trigger( e, arguments[1], elem ); | ||
2278 | } | ||
2279 | }; | ||
2280 | |||
2281 | jQuery.event.special.change = { | ||
2282 | filters: { | ||
2283 | focusout: testChange, | ||
2284 | |||
2285 | click: function( e ) { | ||
2286 | var elem = e.target, type = elem.type; | ||
2287 | |||
2288 | if ( type === "radio" || type === "checkbox" || elem.nodeName.toLowerCase() === "select" ) { | ||
2289 | return testChange.call( this, e ); | ||
2290 | } | ||
2291 | }, | ||
2292 | |||
2293 | // Change has to be called before submit | ||
2294 | // Keydown will be called before keypress, which is used in submit-event delegation | ||
2295 | keydown: function( e ) { | ||
2296 | var elem = e.target, type = elem.type; | ||
2297 | |||
2298 | if ( (e.keyCode === 13 && elem.nodeName.toLowerCase() !== "textarea") || | ||
2299 | (e.keyCode === 32 && (type === "checkbox" || type === "radio")) || | ||
2300 | type === "select-multiple" ) { | ||
2301 | return testChange.call( this, e ); | ||
2302 | } | ||
2303 | }, | ||
2304 | |||
2305 | // Beforeactivate happens also before the previous element is blurred | ||
2306 | // with this event you can't trigger a change event, but you can store | ||
2307 | // information/focus[in] is not needed anymore | ||
2308 | beforeactivate: function( e ) { | ||
2309 | var elem = e.target; | ||
2310 | jQuery.data( elem, "_change_data", getVal(elem) ); | ||
2311 | } | ||
2312 | }, | ||
2313 | |||
2314 | setup: function( data, namespaces ) { | ||
2315 | if ( this.type === "file" ) { | ||
2316 | return false; | ||
2317 | } | ||
2318 | |||
2319 | for ( var type in changeFilters ) { | ||
2320 | jQuery.event.add( this, type + ".specialChange", changeFilters[type] ); | ||
2321 | } | ||
2322 | |||
2323 | return formElems.test( this.nodeName ); | ||
2324 | }, | ||
2325 | |||
2326 | teardown: function( namespaces ) { | ||
2327 | jQuery.event.remove( this, ".specialChange" ); | ||
2328 | |||
2329 | return formElems.test( this.nodeName ); | ||
2330 | } | ||
2331 | }; | ||
2332 | |||
2333 | changeFilters = jQuery.event.special.change.filters; | ||
2334 | } | ||
2335 | |||
2336 | function trigger( type, elem, args ) { | ||
2337 | args[0].type = type; | ||
2338 | return jQuery.event.handle.apply( elem, args ); | ||
2339 | } | ||
2340 | |||
2341 | // Create "bubbling" focus and blur events | ||
2342 | if ( document.addEventListener ) { | ||
2343 | jQuery.each({ focus: "focusin", blur: "focusout" }, function( orig, fix ) { | ||
2344 | jQuery.event.special[ fix ] = { | ||
2345 | setup: function() { | ||
2346 | this.addEventListener( orig, handler, true ); | ||
2347 | }, | ||
2348 | teardown: function() { | ||
2349 | this.removeEventListener( orig, handler, true ); | ||
2350 | } | ||
2351 | }; | ||
2352 | |||
2353 | function handler( e ) { | ||
2354 | e = jQuery.event.fix( e ); | ||
2355 | e.type = fix; | ||
2356 | return jQuery.event.handle.call( this, e ); | ||
2357 | } | ||
2358 | }); | ||
2359 | } | ||
2360 | |||
2361 | jQuery.each(["bind", "one"], function( i, name ) { | ||
2362 | jQuery.fn[ name ] = function( type, data, fn ) { | ||
2363 | // Handle object literals | ||
2364 | if ( typeof type === "object" ) { | ||
2365 | for ( var key in type ) { | ||
2366 | this[ name ](key, data, type[key], fn); | ||
2367 | } | ||
2368 | return this; | ||
2369 | } | ||
2370 | |||
2371 | if ( jQuery.isFunction( data ) ) { | ||
2372 | fn = data; | ||
2373 | data = undefined; | ||
2374 | } | ||
2375 | |||
2376 | var handler = name === "one" ? jQuery.proxy( fn, function( event ) { | ||
2377 | jQuery( this ).unbind( event, handler ); | ||
2378 | return fn.apply( this, arguments ); | ||
2379 | }) : fn; | ||
2380 | |||
2381 | if ( type === "unload" && name !== "one" ) { | ||
2382 | this.one( type, data, fn ); | ||
2383 | |||
2384 | } else { | ||
2385 | for ( var i = 0, l = this.length; i < l; i++ ) { | ||
2386 | jQuery.event.add( this[i], type, handler, data ); | ||
2387 | } | ||
2388 | } | ||
2389 | |||
2390 | return this; | ||
2391 | }; | ||
2392 | }); | ||
2393 | |||
2394 | jQuery.fn.extend({ | ||
2395 | unbind: function( type, fn ) { | ||
2396 | // Handle object literals | ||
2397 | if ( typeof type === "object" && !type.preventDefault ) { | ||
2398 | for ( var key in type ) { | ||
2399 | this.unbind(key, type[key]); | ||
2400 | } | ||
2401 | |||
2402 | } else { | ||
2403 | for ( var i = 0, l = this.length; i < l; i++ ) { | ||
2404 | jQuery.event.remove( this[i], type, fn ); | ||
2405 | } | ||
2406 | } | ||
2407 | |||
2408 | return this; | ||
2409 | }, | ||
2410 | |||
2411 | delegate: function( selector, types, data, fn ) { | ||
2412 | return this.live( types, data, fn, selector ); | ||
2413 | }, | ||
2414 | |||
2415 | undelegate: function( selector, types, fn ) { | ||
2416 | if ( arguments.length === 0 ) { | ||
2417 | return this.unbind( "live" ); | ||
2418 | |||
2419 | } else { | ||
2420 | return this.die( types, null, fn, selector ); | ||
2421 | } | ||
2422 | }, | ||
2423 | |||
2424 | trigger: function( type, data ) { | ||
2425 | return this.each(function() { | ||
2426 | jQuery.event.trigger( type, data, this ); | ||
2427 | }); | ||
2428 | }, | ||
2429 | |||
2430 | triggerHandler: function( type, data ) { | ||
2431 | if ( this[0] ) { | ||
2432 | var event = jQuery.Event( type ); | ||
2433 | event.preventDefault(); | ||
2434 | event.stopPropagation(); | ||
2435 | jQuery.event.trigger( event, data, this[0] ); | ||
2436 | return event.result; | ||
2437 | } | ||
2438 | }, | ||
2439 | |||
2440 | toggle: function( fn ) { | ||
2441 | // Save reference to arguments for access in closure | ||
2442 | var args = arguments, i = 1; | ||
2443 | |||
2444 | // link all the functions, so any of them can unbind this click handler | ||
2445 | while ( i < args.length ) { | ||
2446 | jQuery.proxy( fn, args[ i++ ] ); | ||
2447 | } | ||
2448 | |||
2449 | return this.click( jQuery.proxy( fn, function( event ) { | ||
2450 | // Figure out which function to execute | ||
2451 | var lastToggle = ( jQuery.data( this, "lastToggle" + fn.guid ) || 0 ) % i; | ||
2452 | jQuery.data( this, "lastToggle" + fn.guid, lastToggle + 1 ); | ||
2453 | |||
2454 | // Make sure that clicks stop | ||
2455 | event.preventDefault(); | ||
2456 | |||
2457 | // and execute the function | ||
2458 | return args[ lastToggle ].apply( this, arguments ) || false; | ||
2459 | })); | ||
2460 | }, | ||
2461 | |||
2462 | hover: function( fnOver, fnOut ) { | ||
2463 | return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver ); | ||
2464 | } | ||
2465 | }); | ||
2466 | |||
2467 | var liveMap = { | ||
2468 | focus: "focusin", | ||
2469 | blur: "focusout", | ||
2470 | mouseenter: "mouseover", | ||
2471 | mouseleave: "mouseout" | ||
2472 | }; | ||
2473 | |||
2474 | jQuery.each(["live", "die"], function( i, name ) { | ||
2475 | jQuery.fn[ name ] = function( types, data, fn, origSelector /* Internal Use Only */ ) { | ||
2476 | var type, i = 0, match, namespaces, preType, | ||
2477 | selector = origSelector || this.selector, | ||
2478 | context = origSelector ? this : jQuery( this.context ); | ||
2479 | |||
2480 | if ( jQuery.isFunction( data ) ) { | ||
2481 | fn = data; | ||
2482 | data = undefined; | ||
2483 | } | ||
2484 | |||
2485 | types = (types || "").split(" "); | ||
2486 | |||
2487 | while ( (type = types[ i++ ]) != null ) { | ||
2488 | match = rnamespaces.exec( type ); | ||
2489 | namespaces = ""; | ||
2490 | |||
2491 | if ( match ) { | ||
2492 | namespaces = match[0]; | ||
2493 | type = type.replace( rnamespaces, "" ); | ||
2494 | } | ||
2495 | |||
2496 | if ( type === "hover" ) { | ||
2497 | types.push( "mouseenter" + namespaces, "mouseleave" + namespaces ); | ||
2498 | continue; | ||
2499 | } | ||
2500 | |||
2501 | preType = type; | ||
2502 | |||
2503 | if ( type === "focus" || type === "blur" ) { | ||
2504 | types.push( liveMap[ type ] + namespaces ); | ||
2505 | type = type + namespaces; | ||
2506 | |||
2507 | } else { | ||
2508 | type = (liveMap[ type ] || type) + namespaces; | ||
2509 | } | ||
2510 | |||
2511 | if ( name === "live" ) { | ||
2512 | // bind live handler | ||
2513 | context.each(function(){ | ||
2514 | jQuery.event.add( this, liveConvert( type, selector ), | ||
2515 | { data: data, selector: selector, handler: fn, origType: type, origHandler: fn, preType: preType } ); | ||
2516 | }); | ||
2517 | |||
2518 | } else { | ||
2519 | // unbind live handler | ||
2520 | context.unbind( liveConvert( type, selector ), fn ); | ||
2521 | } | ||
2522 | } | ||
2523 | |||
2524 | return this; | ||
2525 | } | ||
2526 | }); | ||
2527 | |||
2528 | function liveHandler( event ) { | ||
2529 | var stop, elems = [], selectors = [], args = arguments, | ||
2530 | related, match, handleObj, elem, j, i, l, data, | ||
2531 | events = jQuery.data( this, "events" ); | ||
2532 | |||
2533 | // Make sure we avoid non-left-click bubbling in Firefox (#3861) | ||
2534 | if ( event.liveFired === this || !events || !events.live || event.button && event.type === "click" ) { | ||
2535 | return; | ||
2536 | } | ||
2537 | |||
2538 | event.liveFired = this; | ||
2539 | |||
2540 | var live = events.live.slice(0); | ||
2541 | |||
2542 | for ( j = 0; j < live.length; j++ ) { | ||
2543 | handleObj = live[j]; | ||
2544 | |||
2545 | if ( handleObj.origType.replace( rnamespaces, "" ) === event.type ) { | ||
2546 | selectors.push( handleObj.selector ); | ||
2547 | |||
2548 | } else { | ||
2549 | live.splice( j--, 1 ); | ||
2550 | } | ||
2551 | } | ||
2552 | |||
2553 | match = jQuery( event.target ).closest( selectors, event.currentTarget ); | ||
2554 | |||
2555 | for ( i = 0, l = match.length; i < l; i++ ) { | ||
2556 | for ( j = 0; j < live.length; j++ ) { | ||
2557 | handleObj = live[j]; | ||
2558 | |||
2559 | if ( match[i].selector === handleObj.selector ) { | ||
2560 | elem = match[i].elem; | ||
2561 | related = null; | ||
2562 | |||
2563 | // Those two events require additional checking | ||
2564 | if ( handleObj.preType === "mouseenter" || handleObj.preType === "mouseleave" ) { | ||
2565 | related = jQuery( event.relatedTarget ).closest( handleObj.selector )[0]; | ||
2566 | } | ||
2567 | |||
2568 | if ( !related || related !== elem ) { | ||
2569 | elems.push({ elem: elem, handleObj: handleObj }); | ||
2570 | } | ||
2571 | } | ||
2572 | } | ||
2573 | } | ||
2574 | |||
2575 | for ( i = 0, l = elems.length; i < l; i++ ) { | ||
2576 | match = elems[i]; | ||
2577 | event.currentTarget = match.elem; | ||
2578 | event.data = match.handleObj.data; | ||
2579 | event.handleObj = match.handleObj; | ||
2580 | |||
2581 | if ( match.handleObj.origHandler.apply( match.elem, args ) === false ) { | ||
2582 | stop = false; | ||
2583 | break; | ||
2584 | } | ||
2585 | } | ||
2586 | |||
2587 | return stop; | ||
2588 | } | ||
2589 | |||
2590 | function liveConvert( type, selector ) { | ||
2591 | return "live." + (type && type !== "*" ? type + "." : "") + selector.replace(/\./g, "`").replace(/ /g, "&"); | ||
2592 | } | ||
2593 | |||
2594 | jQuery.each( ("blur focus focusin focusout load resize scroll unload click dblclick " + | ||
2595 | "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " + | ||
2596 | "change select submit keydown keypress keyup error").split(" "), function( i, name ) { | ||
2597 | |||
2598 | // Handle event binding | ||
2599 | jQuery.fn[ name ] = function( fn ) { | ||
2600 | return fn ? this.bind( name, fn ) : this.trigger( name ); | ||
2601 | }; | ||
2602 | |||
2603 | if ( jQuery.attrFn ) { | ||
2604 | jQuery.attrFn[ name ] = true; | ||
2605 | } | ||
2606 | }); | ||
2607 | |||
2608 | // Prevent memory leaks in IE | ||
2609 | // Window isn't included so as not to unbind existing unload events | ||
2610 | // More info: | ||
2611 | // - http://isaacschlueter.com/2006/10/msie-memory-leaks/ | ||
2612 | if ( window.attachEvent && !window.addEventListener ) { | ||
2613 | window.attachEvent("onunload", function() { | ||
2614 | for ( var id in jQuery.cache ) { | ||
2615 | if ( jQuery.cache[ id ].handle ) { | ||
2616 | // Try/Catch is to handle iframes being unloaded, see #4280 | ||
2617 | try { | ||
2618 | jQuery.event.remove( jQuery.cache[ id ].handle.elem ); | ||
2619 | } catch(e) {} | ||
2620 | } | ||
2621 | } | ||
2622 | }); | ||
2623 | } | ||
2624 | /*! | ||
2625 | * Sizzle CSS Selector Engine - v1.0 | ||
2626 | * Copyright 2009, The Dojo Foundation | ||
2627 | * Released under the MIT, BSD, and GPL Licenses. | ||
2628 | * More information: http://sizzlejs.com/ | ||
2629 | */ | ||
2630 | (function(){ | ||
2631 | |||
2632 | var chunker = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g, | ||
2633 | done = 0, | ||
2634 | toString = Object.prototype.toString, | ||
2635 | hasDuplicate = false, | ||
2636 | baseHasDuplicate = true; | ||
2637 | |||
2638 | // Here we check if the JavaScript engine is using some sort of | ||
2639 | // optimization where it does not always call our comparision | ||
2640 | // function. If that is the case, discard the hasDuplicate value. | ||
2641 | // Thus far that includes Google Chrome. | ||
2642 | [0, 0].sort(function(){ | ||
2643 | baseHasDuplicate = false; | ||
2644 | return 0; | ||
2645 | }); | ||
2646 | |||
2647 | var Sizzle = function(selector, context, results, seed) { | ||
2648 | results = results || []; | ||
2649 | var origContext = context = context || document; | ||
2650 | |||
2651 | if ( context.nodeType !== 1 && context.nodeType !== 9 ) { | ||
2652 | return []; | ||
2653 | } | ||
2654 | |||
2655 | if ( !selector || typeof selector !== "string" ) { | ||
2656 | return results; | ||
2657 | } | ||
2658 | |||
2659 | var parts = [], m, set, checkSet, extra, prune = true, contextXML = isXML(context), | ||
2660 | soFar = selector; | ||
2661 | |||
2662 | // Reset the position of the chunker regexp (start from head) | ||
2663 | while ( (chunker.exec(""), m = chunker.exec(soFar)) !== null ) { | ||
2664 | soFar = m[3]; | ||
2665 | |||
2666 | parts.push( m[1] ); | ||
2667 | |||
2668 | if ( m[2] ) { | ||
2669 | extra = m[3]; | ||
2670 | break; | ||
2671 | } | ||
2672 | } | ||
2673 | |||
2674 | if ( parts.length > 1 && origPOS.exec( selector ) ) { | ||
2675 | if ( parts.length === 2 && Expr.relative[ parts[0] ] ) { | ||
2676 | set = posProcess( parts[0] + parts[1], context ); | ||
2677 | } else { | ||
2678 | set = Expr.relative[ parts[0] ] ? | ||
2679 | [ context ] : | ||
2680 | Sizzle( parts.shift(), context ); | ||
2681 | |||
2682 | while ( parts.length ) { | ||
2683 | selector = parts.shift(); | ||
2684 | |||
2685 | if ( Expr.relative[ selector ] ) { | ||
2686 | selector += parts.shift(); | ||
2687 | } | ||
2688 | |||
2689 | set = posProcess( selector, set ); | ||
2690 | } | ||
2691 | } | ||
2692 | } else { | ||
2693 | // Take a shortcut and set the context if the root selector is an ID | ||
2694 | // (but not if it'll be faster if the inner selector is an ID) | ||
2695 | if ( !seed && parts.length > 1 && context.nodeType === 9 && !contextXML && | ||
2696 | Expr.match.ID.test(parts[0]) && !Expr.match.ID.test(parts[parts.length - 1]) ) { | ||
2697 | var ret = Sizzle.find( parts.shift(), context, contextXML ); | ||
2698 | context = ret.expr ? Sizzle.filter( ret.expr, ret.set )[0] : ret.set[0]; | ||
2699 | } | ||
2700 | |||
2701 | if ( context ) { | ||
2702 | var ret = seed ? | ||
2703 | { expr: parts.pop(), set: makeArray(seed) } : | ||
2704 | Sizzle.find( parts.pop(), parts.length === 1 && (parts[0] === "~" || parts[0] === "+") && context.parentNode ? context.parentNode : context, contextXML ); | ||
2705 | set = ret.expr ? Sizzle.filter( ret.expr, ret.set ) : ret.set; | ||
2706 | |||
2707 | if ( parts.length > 0 ) { | ||
2708 | checkSet = makeArray(set); | ||
2709 | } else { | ||
2710 | prune = false; | ||
2711 | } | ||
2712 | |||
2713 | while ( parts.length ) { | ||
2714 | var cur = parts.pop(), pop = cur; | ||
2715 | |||
2716 | if ( !Expr.relative[ cur ] ) { | ||
2717 | cur = ""; | ||
2718 | } else { | ||
2719 | pop = parts.pop(); | ||
2720 | } | ||
2721 | |||
2722 | if ( pop == null ) { | ||
2723 | pop = context; | ||
2724 | } | ||
2725 | |||
2726 | Expr.relative[ cur ]( checkSet, pop, contextXML ); | ||
2727 | } | ||
2728 | } else { | ||
2729 | checkSet = parts = []; | ||
2730 | } | ||
2731 | } | ||
2732 | |||
2733 | if ( !checkSet ) { | ||
2734 | checkSet = set; | ||
2735 | } | ||
2736 | |||
2737 | if ( !checkSet ) { | ||
2738 | Sizzle.error( cur || selector ); | ||
2739 | } | ||
2740 | |||
2741 | if ( toString.call(checkSet) === "[object Array]" ) { | ||
2742 | if ( !prune ) { | ||
2743 | results.push.apply( results, checkSet ); | ||
2744 | } else if ( context && context.nodeType === 1 ) { | ||
2745 | for ( var i = 0; checkSet[i] != null; i++ ) { | ||
2746 | if ( checkSet[i] && (checkSet[i] === true || checkSet[i].nodeType === 1 && contains(context, checkSet[i])) ) { | ||
2747 | results.push( set[i] ); | ||
2748 | } | ||
2749 | } | ||
2750 | } else { | ||
2751 | for ( var i = 0; checkSet[i] != null; i++ ) { | ||
2752 | if ( checkSet[i] && checkSet[i].nodeType === 1 ) { | ||
2753 | results.push( set[i] ); | ||
2754 | } | ||
2755 | } | ||
2756 | } | ||
2757 | } else { | ||
2758 | makeArray( checkSet, results ); | ||
2759 | } | ||
2760 | |||
2761 | if ( extra ) { | ||
2762 | Sizzle( extra, origContext, results, seed ); | ||
2763 | Sizzle.uniqueSort( results ); | ||
2764 | } | ||
2765 | |||
2766 | return results; | ||
2767 | }; | ||
2768 | |||
2769 | Sizzle.uniqueSort = function(results){ | ||
2770 | if ( sortOrder ) { | ||
2771 | hasDuplicate = baseHasDuplicate; | ||
2772 | results.sort(sortOrder); | ||
2773 | |||
2774 | if ( hasDuplicate ) { | ||
2775 | for ( var i = 1; i < results.length; i++ ) { | ||
2776 | if ( results[i] === results[i-1] ) { | ||
2777 | results.splice(i--, 1); | ||
2778 | } | ||
2779 | } | ||
2780 | } | ||
2781 | } | ||
2782 | |||
2783 | return results; | ||
2784 | }; | ||
2785 | |||
2786 | Sizzle.matches = function(expr, set){ | ||
2787 | return Sizzle(expr, null, null, set); | ||
2788 | }; | ||
2789 | |||
2790 | Sizzle.find = function(expr, context, isXML){ | ||
2791 | var set, match; | ||
2792 | |||
2793 | if ( !expr ) { | ||
2794 | return []; | ||
2795 | } | ||
2796 | |||
2797 | for ( var i = 0, l = Expr.order.length; i < l; i++ ) { | ||
2798 | var type = Expr.order[i], match; | ||
2799 | |||
2800 | if ( (match = Expr.leftMatch[ type ].exec( expr )) ) { | ||
2801 | var left = match[1]; | ||
2802 | match.splice(1,1); | ||
2803 | |||
2804 | if ( left.substr( left.length - 1 ) !== "\\" ) { | ||
2805 | match[1] = (match[1] || "").replace(/\\/g, ""); | ||
2806 | set = Expr.find[ type ]( match, context, isXML ); | ||
2807 | if ( set != null ) { | ||
2808 | expr = expr.replace( Expr.match[ type ], "" ); | ||
2809 | break; | ||
2810 | } | ||
2811 | } | ||
2812 | } | ||
2813 | } | ||
2814 | |||
2815 | if ( !set ) { | ||
2816 | set = context.getElementsByTagName("*"); | ||
2817 | } | ||
2818 | |||
2819 | return {set: set, expr: expr}; | ||
2820 | }; | ||
2821 | |||
2822 | Sizzle.filter = function(expr, set, inplace, not){ | ||
2823 | var old = expr, result = [], curLoop = set, match, anyFound, | ||
2824 | isXMLFilter = set && set[0] && isXML(set[0]); | ||
2825 | |||
2826 | while ( expr && set.length ) { | ||
2827 | for ( var type in Expr.filter ) { | ||
2828 | if ( (match = Expr.leftMatch[ type ].exec( expr )) != null && match[2] ) { | ||
2829 | var filter = Expr.filter[ type ], found, item, left = match[1]; | ||
2830 | anyFound = false; | ||
2831 | |||
2832 | match.splice(1,1); | ||
2833 | |||
2834 | if ( left.substr( left.length - 1 ) === "\\" ) { | ||
2835 | continue; | ||
2836 | } | ||
2837 | |||
2838 | if ( curLoop === result ) { | ||
2839 | result = []; | ||
2840 | } | ||
2841 | |||
2842 | if ( Expr.preFilter[ type ] ) { | ||
2843 | match = Expr.preFilter[ type ]( match, curLoop, inplace, result, not, isXMLFilter ); | ||
2844 | |||
2845 | if ( !match ) { | ||
2846 | anyFound = found = true; | ||
2847 | } else if ( match === true ) { | ||
2848 | continue; | ||
2849 | } | ||
2850 | } | ||
2851 | |||
2852 | if ( match ) { | ||
2853 | for ( var i = 0; (item = curLoop[i]) != null; i++ ) { | ||
2854 | if ( item ) { | ||
2855 | found = filter( item, match, i, curLoop ); | ||
2856 | var pass = not ^ !!found; | ||
2857 | |||
2858 | if ( inplace && found != null ) { | ||
2859 | if ( pass ) { | ||
2860 | anyFound = true; | ||
2861 | } else { | ||
2862 | curLoop[i] = false; | ||
2863 | } | ||
2864 | } else if ( pass ) { | ||
2865 | result.push( item ); | ||
2866 | anyFound = true; | ||
2867 | } | ||
2868 | } | ||
2869 | } | ||
2870 | } | ||
2871 | |||
2872 | if ( found !== undefined ) { | ||
2873 | if ( !inplace ) { | ||
2874 | curLoop = result; | ||
2875 | } | ||
2876 | |||
2877 | expr = expr.replace( Expr.match[ type ], "" ); | ||
2878 | |||
2879 | if ( !anyFound ) { | ||
2880 | return []; | ||
2881 | } | ||
2882 | |||
2883 | break; | ||
2884 | } | ||
2885 | } | ||
2886 | } | ||
2887 | |||
2888 | // Improper expression | ||
2889 | if ( expr === old ) { | ||
2890 | if ( anyFound == null ) { | ||
2891 | Sizzle.error( expr ); | ||
2892 | } else { | ||
2893 | break; | ||
2894 | } | ||
2895 | } | ||
2896 | |||
2897 | old = expr; | ||
2898 | } | ||
2899 | |||
2900 | return curLoop; | ||
2901 | }; | ||
2902 | |||
2903 | Sizzle.error = function( msg ) { | ||
2904 | throw "Syntax error, unrecognized expression: " + msg; | ||
2905 | }; | ||
2906 | |||
2907 | var Expr = Sizzle.selectors = { | ||
2908 | order: [ "ID", "NAME", "TAG" ], | ||
2909 | match: { | ||
2910 | ID: /#((?:[\w\u00c0-\uFFFF-]|\\.)+)/, | ||
2911 | CLASS: /\.((?:[\w\u00c0-\uFFFF-]|\\.)+)/, | ||
2912 | NAME: /\[name=['"]*((?:[\w\u00c0-\uFFFF-]|\\.)+)['"]*\]/, | ||
2913 | ATTR: /\[\s*((?:[\w\u00c0-\uFFFF-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/, | ||
2914 | TAG: /^((?:[\w\u00c0-\uFFFF\*-]|\\.)+)/, | ||
2915 | CHILD: /:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/, | ||
2916 | POS: /:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/, | ||
2917 | PSEUDO: /:((?:[\w\u00c0-\uFFFF-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/ | ||
2918 | }, | ||
2919 | leftMatch: {}, | ||
2920 | attrMap: { | ||
2921 | "class": "className", | ||
2922 | "for": "htmlFor" | ||
2923 | }, | ||
2924 | attrHandle: { | ||
2925 | href: function(elem){ | ||
2926 | return elem.getAttribute("href"); | ||
2927 | } | ||
2928 | }, | ||
2929 | relative: { | ||
2930 | "+": function(checkSet, part){ | ||
2931 | var isPartStr = typeof part === "string", | ||
2932 | isTag = isPartStr && !/\W/.test(part), | ||
2933 | isPartStrNotTag = isPartStr && !isTag; | ||
2934 | |||
2935 | if ( isTag ) { | ||
2936 | part = part.toLowerCase(); | ||
2937 | } | ||
2938 | |||
2939 | for ( var i = 0, l = checkSet.length, elem; i < l; i++ ) { | ||
2940 | if ( (elem = checkSet[i]) ) { | ||
2941 | while ( (elem = elem.previousSibling) && elem.nodeType !== 1 ) {} | ||
2942 | |||
2943 | checkSet[i] = isPartStrNotTag || elem && elem.nodeName.toLowerCase() === part ? | ||
2944 | elem || false : | ||
2945 | elem === part; | ||
2946 | } | ||
2947 | } | ||
2948 | |||
2949 | if ( isPartStrNotTag ) { | ||
2950 | Sizzle.filter( part, checkSet, true ); | ||
2951 | } | ||
2952 | }, | ||
2953 | ">": function(checkSet, part){ | ||
2954 | var isPartStr = typeof part === "string"; | ||
2955 | |||
2956 | if ( isPartStr && !/\W/.test(part) ) { | ||
2957 | part = part.toLowerCase(); | ||
2958 | |||
2959 | for ( var i = 0, l = checkSet.length; i < l; i++ ) { | ||
2960 | var elem = checkSet[i]; | ||
2961 | if ( elem ) { | ||
2962 | var parent = elem.parentNode; | ||
2963 | checkSet[i] = parent.nodeName.toLowerCase() === part ? parent : false; | ||
2964 | } | ||
2965 | } | ||
2966 | } else { | ||
2967 | for ( var i = 0, l = checkSet.length; i < l; i++ ) { | ||
2968 | var elem = checkSet[i]; | ||
2969 | if ( elem ) { | ||
2970 | checkSet[i] = isPartStr ? | ||
2971 | elem.parentNode : | ||
2972 | elem.parentNode === part; | ||
2973 | } | ||
2974 | } | ||
2975 | |||
2976 | if ( isPartStr ) { | ||
2977 | Sizzle.filter( part, checkSet, true ); | ||
2978 | } | ||
2979 | } | ||
2980 | }, | ||
2981 | "": function(checkSet, part, isXML){ | ||
2982 | var doneName = done++, checkFn = dirCheck; | ||
2983 | |||
2984 | if ( typeof part === "string" && !/\W/.test(part) ) { | ||
2985 | var nodeCheck = part = part.toLowerCase(); | ||
2986 | checkFn = dirNodeCheck; | ||
2987 | } | ||
2988 | |||
2989 | checkFn("parentNode", part, doneName, checkSet, nodeCheck, isXML); | ||
2990 | }, | ||
2991 | "~": function(checkSet, part, isXML){ | ||
2992 | var doneName = done++, checkFn = dirCheck; | ||
2993 | |||
2994 | if ( typeof part === "string" && !/\W/.test(part) ) { | ||
2995 | var nodeCheck = part = part.toLowerCase(); | ||
2996 | checkFn = dirNodeCheck; | ||
2997 | } | ||
2998 | |||
2999 | checkFn("previousSibling", part, doneName, checkSet, nodeCheck, isXML); | ||
3000 | } | ||
3001 | }, | ||
3002 | find: { | ||
3003 | ID: function(match, context, isXML){ | ||
3004 | if ( typeof context.getElementById !== "undefined" && !isXML ) { | ||
3005 | var m = context.getElementById(match[1]); | ||
3006 | return m ? [m] : []; | ||
3007 | } | ||
3008 | }, | ||
3009 | NAME: function(match, context){ | ||
3010 | if ( typeof context.getElementsByName !== "undefined" ) { | ||
3011 | var ret = [], results = context.getElementsByName(match[1]); | ||
3012 | |||
3013 | for ( var i = 0, l = results.length; i < l; i++ ) { | ||
3014 | if ( results[i].getAttribute("name") === match[1] ) { | ||
3015 | ret.push( results[i] ); | ||
3016 | } | ||
3017 | } | ||
3018 | |||
3019 | return ret.length === 0 ? null : ret; | ||
3020 | } | ||
3021 | }, | ||
3022 | TAG: function(match, context){ | ||
3023 | return context.getElementsByTagName(match[1]); | ||
3024 | } | ||
3025 | }, | ||
3026 | preFilter: { | ||
3027 | CLASS: function(match, curLoop, inplace, result, not, isXML){ | ||
3028 | match = " " + match[1].replace(/\\/g, "") + " "; | ||
3029 | |||
3030 | if ( isXML ) { | ||
3031 | return match; | ||
3032 | } | ||
3033 | |||
3034 | for ( var i = 0, elem; (elem = curLoop[i]) != null; i++ ) { | ||
3035 | if ( elem ) { | ||
3036 | if ( not ^ (elem.className && (" " + elem.className + " ").replace(/[\t\n]/g, " ").indexOf(match) >= 0) ) { | ||
3037 | if ( !inplace ) { | ||
3038 | result.push( elem ); | ||
3039 | } | ||
3040 | } else if ( inplace ) { | ||
3041 | curLoop[i] = false; | ||
3042 | } | ||
3043 | } | ||
3044 | } | ||
3045 | |||
3046 | return false; | ||
3047 | }, | ||
3048 | ID: function(match){ | ||
3049 | return match[1].replace(/\\/g, ""); | ||
3050 | }, | ||
3051 | TAG: function(match, curLoop){ | ||
3052 | return match[1].toLowerCase(); | ||
3053 | }, | ||
3054 | CHILD: function(match){ | ||
3055 | if ( match[1] === "nth" ) { | ||
3056 | // parse equations like 'even', 'odd', '5', '2n', '3n+2', '4n-1', '-n+6' | ||
3057 | var test = /(-?)(\d*)n((?:\+|-)?\d*)/.exec( | ||
3058 | match[2] === "even" && "2n" || match[2] === "odd" && "2n+1" || | ||
3059 | !/\D/.test( match[2] ) && "0n+" + match[2] || match[2]); | ||
3060 | |||
3061 | // calculate the numbers (first)n+(last) including if they are negative | ||
3062 | match[2] = (test[1] + (test[2] || 1)) - 0; | ||
3063 | match[3] = test[3] - 0; | ||
3064 | } | ||
3065 | |||
3066 | // TODO: Move to normal caching system | ||
3067 | match[0] = done++; | ||
3068 | |||
3069 | return match; | ||
3070 | }, | ||
3071 | ATTR: function(match, curLoop, inplace, result, not, isXML){ | ||
3072 | var name = match[1].replace(/\\/g, ""); | ||
3073 | |||
3074 | if ( !isXML && Expr.attrMap[name] ) { | ||
3075 | match[1] = Expr.attrMap[name]; | ||
3076 | } | ||
3077 | |||
3078 | if ( match[2] === "~=" ) { | ||
3079 | match[4] = " " + match[4] + " "; | ||
3080 | } | ||
3081 | |||
3082 | return match; | ||
3083 | }, | ||
3084 | PSEUDO: function(match, curLoop, inplace, result, not){ | ||
3085 | if ( match[1] === "not" ) { | ||
3086 | // If we're dealing with a complex expression, or a simple one | ||
3087 | if ( ( chunker.exec(match[3]) || "" ).length > 1 || /^\w/.test(match[3]) ) { | ||
3088 | match[3] = Sizzle(match[3], null, null, curLoop); | ||
3089 | } else { | ||
3090 | var ret = Sizzle.filter(match[3], curLoop, inplace, true ^ not); | ||
3091 | if ( !inplace ) { | ||
3092 | result.push.apply( result, ret ); | ||
3093 | } | ||
3094 | return false; | ||
3095 | } | ||
3096 | } else if ( Expr.match.POS.test( match[0] ) || Expr.match.CHILD.test( match[0] ) ) { | ||
3097 | return true; | ||
3098 | } | ||
3099 | |||
3100 | return match; | ||
3101 | }, | ||
3102 | POS: function(match){ | ||
3103 | match.unshift( true ); | ||
3104 | return match; | ||
3105 | } | ||
3106 | }, | ||
3107 | filters: { | ||
3108 | enabled: function(elem){ | ||
3109 | return elem.disabled === false && elem.type !== "hidden"; | ||
3110 | }, | ||
3111 | disabled: function(elem){ | ||
3112 | return elem.disabled === true; | ||
3113 | }, | ||
3114 | checked: function(elem){ | ||
3115 | return elem.checked === true; | ||
3116 | }, | ||
3117 | selected: function(elem){ | ||
3118 | // Accessing this property makes selected-by-default | ||
3119 | // options in Safari work properly | ||
3120 | elem.parentNode.selectedIndex; | ||
3121 | return elem.selected === true; | ||
3122 | }, | ||
3123 | parent: function(elem){ | ||
3124 | return !!elem.firstChild; | ||
3125 | }, | ||
3126 | empty: function(elem){ | ||
3127 | return !elem.firstChild; | ||
3128 | }, | ||
3129 | has: function(elem, i, match){ | ||
3130 | return !!Sizzle( match[3], elem ).length; | ||
3131 | }, | ||
3132 | header: function(elem){ | ||
3133 | return /h\d/i.test( elem.nodeName ); | ||
3134 | }, | ||
3135 | text: function(elem){ | ||
3136 | return "text" === elem.type; | ||
3137 | }, | ||
3138 | radio: function(elem){ | ||
3139 | return "radio" === elem.type; | ||
3140 | }, | ||
3141 | checkbox: function(elem){ | ||
3142 | return "checkbox" === elem.type; | ||
3143 | }, | ||
3144 | file: function(elem){ | ||
3145 | return "file" === elem.type; | ||
3146 | }, | ||
3147 | password: function(elem){ | ||
3148 | return "password" === elem.type; | ||
3149 | }, | ||
3150 | submit: function(elem){ | ||
3151 | return "submit" === elem.type; | ||
3152 | }, | ||
3153 | image: function(elem){ | ||
3154 | return "image" === elem.type; | ||
3155 | }, | ||
3156 | reset: function(elem){ | ||
3157 | return "reset" === elem.type; | ||
3158 | }, | ||
3159 | button: function(elem){ | ||
3160 | return "button" === elem.type || elem.nodeName.toLowerCase() === "button"; | ||
3161 | }, | ||
3162 | input: function(elem){ | ||
3163 | return /input|select|textarea|button/i.test(elem.nodeName); | ||
3164 | } | ||
3165 | }, | ||
3166 | setFilters: { | ||
3167 | first: function(elem, i){ | ||
3168 | return i === 0; | ||
3169 | }, | ||
3170 | last: function(elem, i, match, array){ | ||
3171 | return i === array.length - 1; | ||
3172 | }, | ||
3173 | even: function(elem, i){ | ||
3174 | return i % 2 === 0; | ||
3175 | }, | ||
3176 | odd: function(elem, i){ | ||
3177 | return i % 2 === 1; | ||
3178 | }, | ||
3179 | lt: function(elem, i, match){ | ||
3180 | return i < match[3] - 0; | ||
3181 | }, | ||
3182 | gt: function(elem, i, match){ | ||
3183 | return i > match[3] - 0; | ||
3184 | }, | ||
3185 | nth: function(elem, i, match){ | ||
3186 | return match[3] - 0 === i; | ||
3187 | }, | ||
3188 | eq: function(elem, i, match){ | ||
3189 | return match[3] - 0 === i; | ||
3190 | } | ||
3191 | }, | ||
3192 | filter: { | ||
3193 | PSEUDO: function(elem, match, i, array){ | ||
3194 | var name = match[1], filter = Expr.filters[ name ]; | ||
3195 | |||
3196 | if ( filter ) { | ||
3197 | return filter( elem, i, match, array ); | ||
3198 | } else if ( name === "contains" ) { | ||
3199 | return (elem.textContent || elem.innerText || getText([ elem ]) || "").indexOf(match[3]) >= 0; | ||
3200 | } else if ( name === "not" ) { | ||
3201 | var not = match[3]; | ||
3202 | |||
3203 | for ( var i = 0, l = not.length; i < l; i++ ) { | ||
3204 | if ( not[i] === elem ) { | ||
3205 | return false; | ||
3206 | } | ||
3207 | } | ||
3208 | |||
3209 | return true; | ||
3210 | } else { | ||
3211 | Sizzle.error( "Syntax error, unrecognized expression: " + name ); | ||
3212 | } | ||
3213 | }, | ||
3214 | CHILD: function(elem, match){ | ||
3215 | var type = match[1], node = elem; | ||
3216 | switch (type) { | ||
3217 | case 'only': | ||
3218 | case 'first': | ||
3219 | while ( (node = node.previousSibling) ) { | ||
3220 | if ( node.nodeType === 1 ) { | ||
3221 | return false; | ||
3222 | } | ||
3223 | } | ||
3224 | if ( type === "first" ) { | ||
3225 | return true; | ||
3226 | } | ||
3227 | node = elem; | ||
3228 | case 'last': | ||
3229 | while ( (node = node.nextSibling) ) { | ||
3230 | if ( node.nodeType === 1 ) { | ||
3231 | return false; | ||
3232 | } | ||
3233 | } | ||
3234 | return true; | ||
3235 | case 'nth': | ||
3236 | var first = match[2], last = match[3]; | ||
3237 | |||
3238 | if ( first === 1 && last === 0 ) { | ||
3239 | return true; | ||
3240 | } | ||
3241 | |||
3242 | var doneName = match[0], | ||
3243 | parent = elem.parentNode; | ||
3244 | |||
3245 | if ( parent && (parent.sizcache !== doneName || !elem.nodeIndex) ) { | ||
3246 | var count = 0; | ||
3247 | for ( node = parent.firstChild; node; node = node.nextSibling ) { | ||
3248 | if ( node.nodeType === 1 ) { | ||
3249 | node.nodeIndex = ++count; | ||
3250 | } | ||
3251 | } | ||
3252 | parent.sizcache = doneName; | ||
3253 | } | ||
3254 | |||
3255 | var diff = elem.nodeIndex - last; | ||
3256 | if ( first === 0 ) { | ||
3257 | return diff === 0; | ||
3258 | } else { | ||
3259 | return ( diff % first === 0 && diff / first >= 0 ); | ||
3260 | } | ||
3261 | } | ||
3262 | }, | ||
3263 | ID: function(elem, match){ | ||
3264 | return elem.nodeType === 1 && elem.getAttribute("id") === match; | ||
3265 | }, | ||
3266 | TAG: function(elem, match){ | ||
3267 | return (match === "*" && elem.nodeType === 1) || elem.nodeName.toLowerCase() === match; | ||
3268 | }, | ||
3269 | CLASS: function(elem, match){ | ||
3270 | return (" " + (elem.className || elem.getAttribute("class")) + " ") | ||
3271 | .indexOf( match ) > -1; | ||
3272 | }, | ||
3273 | ATTR: function(elem, match){ | ||
3274 | var name = match[1], | ||
3275 | result = Expr.attrHandle[ name ] ? | ||
3276 | Expr.attrHandle[ name ]( elem ) : | ||
3277 | elem[ name ] != null ? | ||
3278 | elem[ name ] : | ||
3279 | elem.getAttribute( name ), | ||
3280 | value = result + "", | ||
3281 | type = match[2], | ||
3282 | check = match[4]; | ||
3283 | |||
3284 | return result == null ? | ||
3285 | type === "!=" : | ||
3286 | type === "=" ? | ||
3287 | value === check : | ||
3288 | type === "*=" ? | ||
3289 | value.indexOf(check) >= 0 : | ||
3290 | type === "~=" ? | ||
3291 | (" " + value + " ").indexOf(check) >= 0 : | ||
3292 | !check ? | ||
3293 | value && result !== false : | ||
3294 | type === "!=" ? | ||
3295 | value !== check : | ||
3296 | type === "^=" ? | ||
3297 | value.indexOf(check) === 0 : | ||
3298 | type === "$=" ? | ||
3299 | value.substr(value.length - check.length) === check : | ||
3300 | type === "|=" ? | ||
3301 | value === check || value.substr(0, check.length + 1) === check + "-" : | ||
3302 | false; | ||
3303 | }, | ||
3304 | POS: function(elem, match, i, array){ | ||
3305 | var name = match[2], filter = Expr.setFilters[ name ]; | ||
3306 | |||
3307 | if ( filter ) { | ||
3308 | return filter( elem, i, match, array ); | ||
3309 | } | ||
3310 | } | ||
3311 | } | ||
3312 | }; | ||
3313 | |||
3314 | var origPOS = Expr.match.POS; | ||
3315 | |||
3316 | for ( var type in Expr.match ) { | ||
3317 | Expr.match[ type ] = new RegExp( Expr.match[ type ].source + /(?![^\[]*\])(?![^\(]*\))/.source ); | ||
3318 | Expr.leftMatch[ type ] = new RegExp( /(^(?:.|\r|\n)*?)/.source + Expr.match[ type ].source.replace(/\\(\d+)/g, function(all, num){ | ||
3319 | return "\\" + (num - 0 + 1); | ||
3320 | })); | ||
3321 | } | ||
3322 | |||
3323 | var makeArray = function(array, results) { | ||
3324 | array = Array.prototype.slice.call( array, 0 ); | ||
3325 | |||
3326 | if ( results ) { | ||
3327 | results.push.apply( results, array ); | ||
3328 | return results; | ||
3329 | } | ||
3330 | |||
3331 | return array; | ||
3332 | }; | ||
3333 | |||
3334 | // Perform a simple check to determine if the browser is capable of | ||
3335 | // converting a NodeList to an array using builtin methods. | ||
3336 | // Also verifies that the returned array holds DOM nodes | ||
3337 | // (which is not the case in the Blackberry browser) | ||
3338 | try { | ||
3339 | Array.prototype.slice.call( document.documentElement.childNodes, 0 )[0].nodeType; | ||
3340 | |||
3341 | // Provide a fallback method if it does not work | ||
3342 | } catch(e){ | ||
3343 | makeArray = function(array, results) { | ||
3344 | var ret = results || []; | ||
3345 | |||
3346 | if ( toString.call(array) === "[object Array]" ) { | ||
3347 | Array.prototype.push.apply( ret, array ); | ||
3348 | } else { | ||
3349 | if ( typeof array.length === "number" ) { | ||
3350 | for ( var i = 0, l = array.length; i < l; i++ ) { | ||
3351 | ret.push( array[i] ); | ||
3352 | } | ||
3353 | } else { | ||
3354 | for ( var i = 0; array[i]; i++ ) { | ||
3355 | ret.push( array[i] ); | ||
3356 | } | ||
3357 | } | ||
3358 | } | ||
3359 | |||
3360 | return ret; | ||
3361 | }; | ||
3362 | } | ||
3363 | |||
3364 | var sortOrder; | ||
3365 | |||
3366 | if ( document.documentElement.compareDocumentPosition ) { | ||
3367 | sortOrder = function( a, b ) { | ||
3368 | if ( !a.compareDocumentPosition || !b.compareDocumentPosition ) { | ||
3369 | if ( a == b ) { | ||
3370 | hasDuplicate = true; | ||
3371 | } | ||
3372 | return a.compareDocumentPosition ? -1 : 1; | ||
3373 | } | ||
3374 | |||
3375 | var ret = a.compareDocumentPosition(b) & 4 ? -1 : a === b ? 0 : 1; | ||
3376 | if ( ret === 0 ) { | ||
3377 | hasDuplicate = true; | ||
3378 | } | ||
3379 | return ret; | ||
3380 | }; | ||
3381 | } else if ( "sourceIndex" in document.documentElement ) { | ||
3382 | sortOrder = function( a, b ) { | ||
3383 | if ( !a.sourceIndex || !b.sourceIndex ) { | ||
3384 | if ( a == b ) { | ||
3385 | hasDuplicate = true; | ||
3386 | } | ||
3387 | return a.sourceIndex ? -1 : 1; | ||
3388 | } | ||
3389 | |||
3390 | var ret = a.sourceIndex - b.sourceIndex; | ||
3391 | if ( ret === 0 ) { | ||
3392 | hasDuplicate = true; | ||
3393 | } | ||
3394 | return ret; | ||
3395 | }; | ||
3396 | } else if ( document.createRange ) { | ||
3397 | sortOrder = function( a, b ) { | ||
3398 | if ( !a.ownerDocument || !b.ownerDocument ) { | ||
3399 | if ( a == b ) { | ||
3400 | hasDuplicate = true; | ||
3401 | } | ||
3402 | return a.ownerDocument ? -1 : 1; | ||
3403 | } | ||
3404 | |||
3405 | var aRange = a.ownerDocument.createRange(), bRange = b.ownerDocument.createRange(); | ||
3406 | aRange.setStart(a, 0); | ||
3407 | aRange.setEnd(a, 0); | ||
3408 | bRange.setStart(b, 0); | ||
3409 | bRange.setEnd(b, 0); | ||
3410 | var ret = aRange.compareBoundaryPoints(Range.START_TO_END, bRange); | ||
3411 | if ( ret === 0 ) { | ||
3412 | hasDuplicate = true; | ||
3413 | } | ||
3414 | return ret; | ||
3415 | }; | ||
3416 | } | ||
3417 | |||
3418 | // Utility function for retreiving the text value of an array of DOM nodes | ||
3419 | function getText( elems ) { | ||
3420 | var ret = "", elem; | ||
3421 | |||
3422 | for ( var i = 0; elems[i]; i++ ) { | ||
3423 | elem = elems[i]; | ||
3424 | |||
3425 | // Get the text from text nodes and CDATA nodes | ||
3426 | if ( elem.nodeType === 3 || elem.nodeType === 4 ) { | ||
3427 | ret += elem.nodeValue; | ||
3428 | |||
3429 | // Traverse everything else, except comment nodes | ||
3430 | } else if ( elem.nodeType !== 8 ) { | ||
3431 | ret += getText( elem.childNodes ); | ||
3432 | } | ||
3433 | } | ||
3434 | |||
3435 | return ret; | ||
3436 | } | ||
3437 | |||
3438 | // Check to see if the browser returns elements by name when | ||
3439 | // querying by getElementById (and provide a workaround) | ||
3440 | (function(){ | ||
3441 | // We're going to inject a fake input element with a specified name | ||
3442 | var form = document.createElement("div"), | ||
3443 | id = "script" + (new Date).getTime(); | ||
3444 | form.innerHTML = "<a name='" + id + "'/>"; | ||
3445 | |||
3446 | // Inject it into the root element, check its status, and remove it quickly | ||
3447 | var root = document.documentElement; | ||
3448 | root.insertBefore( form, root.firstChild ); | ||
3449 | |||
3450 | // The workaround has to do additional checks after a getElementById | ||
3451 | // Which slows things down for other browsers (hence the branching) | ||
3452 | if ( document.getElementById( id ) ) { | ||
3453 | Expr.find.ID = function(match, context, isXML){ | ||
3454 | if ( typeof context.getElementById !== "undefined" && !isXML ) { | ||
3455 | var m = context.getElementById(match[1]); | ||
3456 | return m ? m.id === match[1] || typeof m.getAttributeNode !== "undefined" && m.getAttributeNode("id").nodeValue === match[1] ? [m] : undefined : []; | ||
3457 | } | ||
3458 | }; | ||
3459 | |||
3460 | Expr.filter.ID = function(elem, match){ | ||
3461 | var node = typeof elem.getAttributeNode !== "undefined" && elem.getAttributeNode("id"); | ||
3462 | return elem.nodeType === 1 && node && node.nodeValue === match; | ||
3463 | }; | ||
3464 | } | ||
3465 | |||
3466 | root.removeChild( form ); | ||
3467 | root = form = null; // release memory in IE | ||
3468 | })(); | ||
3469 | |||
3470 | (function(){ | ||
3471 | // Check to see if the browser returns only elements | ||
3472 | // when doing getElementsByTagName("*") | ||
3473 | |||
3474 | // Create a fake element | ||
3475 | var div = document.createElement("div"); | ||
3476 | div.appendChild( document.createComment("") ); | ||
3477 | |||
3478 | // Make sure no comments are found | ||
3479 | if ( div.getElementsByTagName("*").length > 0 ) { | ||
3480 | Expr.find.TAG = function(match, context){ | ||
3481 | var results = context.getElementsByTagName(match[1]); | ||
3482 | |||
3483 | // Filter out possible comments | ||
3484 | if ( match[1] === "*" ) { | ||
3485 | var tmp = []; | ||
3486 | |||
3487 | for ( var i = 0; results[i]; i++ ) { | ||
3488 | if ( results[i].nodeType === 1 ) { | ||
3489 | tmp.push( results[i] ); | ||
3490 | } | ||
3491 | } | ||
3492 | |||
3493 | results = tmp; | ||
3494 | } | ||
3495 | |||
3496 | return results; | ||
3497 | }; | ||
3498 | } | ||
3499 | |||
3500 | // Check to see if an attribute returns normalized href attributes | ||
3501 | div.innerHTML = "<a href='#'></a>"; | ||
3502 | if ( div.firstChild && typeof div.firstChild.getAttribute !== "undefined" && | ||
3503 | div.firstChild.getAttribute("href") !== "#" ) { | ||
3504 | Expr.attrHandle.href = function(elem){ | ||
3505 | return elem.getAttribute("href", 2); | ||
3506 | }; | ||
3507 | } | ||
3508 | |||
3509 | div = null; // release memory in IE | ||
3510 | })(); | ||
3511 | |||
3512 | if ( document.querySelectorAll ) { | ||
3513 | (function(){ | ||
3514 | var oldSizzle = Sizzle, div = document.createElement("div"); | ||
3515 | div.innerHTML = "<p class='TEST'></p>"; | ||
3516 | |||
3517 | // Safari can't handle uppercase or unicode characters when | ||
3518 | // in quirks mode. | ||
3519 | if ( div.querySelectorAll && div.querySelectorAll(".TEST").length === 0 ) { | ||
3520 | return; | ||
3521 | } | ||
3522 | |||
3523 | Sizzle = function(query, context, extra, seed){ | ||
3524 | context = context || document; | ||
3525 | |||
3526 | // Only use querySelectorAll on non-XML documents | ||
3527 | // (ID selectors don't work in non-HTML documents) | ||
3528 | if ( !seed && context.nodeType === 9 && !isXML(context) ) { | ||
3529 | try { | ||
3530 | return makeArray( context.querySelectorAll(query), extra ); | ||
3531 | } catch(e){} | ||
3532 | } | ||
3533 | |||
3534 | return oldSizzle(query, context, extra, seed); | ||
3535 | }; | ||
3536 | |||
3537 | for ( var prop in oldSizzle ) { | ||
3538 | Sizzle[ prop ] = oldSizzle[ prop ]; | ||
3539 | } | ||
3540 | |||
3541 | div = null; // release memory in IE | ||
3542 | })(); | ||
3543 | } | ||
3544 | |||
3545 | (function(){ | ||
3546 | var div = document.createElement("div"); | ||
3547 | |||
3548 | div.innerHTML = "<div class='test e'></div><div class='test'></div>"; | ||
3549 | |||
3550 | // Opera can't find a second classname (in 9.6) | ||
3551 | // Also, make sure that getElementsByClassName actually exists | ||
3552 | if ( !div.getElementsByClassName || div.getElementsByClassName("e").length === 0 ) { | ||
3553 | return; | ||
3554 | } | ||
3555 | |||
3556 | // Safari caches class attributes, doesn't catch changes (in 3.2) | ||
3557 | div.lastChild.className = "e"; | ||
3558 | |||
3559 | if ( div.getElementsByClassName("e").length === 1 ) { | ||
3560 | return; | ||
3561 | } | ||
3562 | |||
3563 | Expr.order.splice(1, 0, "CLASS"); | ||
3564 | Expr.find.CLASS = function(match, context, isXML) { | ||
3565 | if ( typeof context.getElementsByClassName !== "undefined" && !isXML ) { | ||
3566 | return context.getElementsByClassName(match[1]); | ||
3567 | } | ||
3568 | }; | ||
3569 | |||
3570 | div = null; // release memory in IE | ||
3571 | })(); | ||
3572 | |||
3573 | function dirNodeCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) { | ||
3574 | for ( var i = 0, l = checkSet.length; i < l; i++ ) { | ||
3575 | var elem = checkSet[i]; | ||
3576 | if ( elem ) { | ||
3577 | elem = elem[dir]; | ||
3578 | var match = false; | ||
3579 | |||
3580 | while ( elem ) { | ||
3581 | if ( elem.sizcache === doneName ) { | ||
3582 | match = checkSet[elem.sizset]; | ||
3583 | break; | ||
3584 | } | ||
3585 | |||
3586 | if ( elem.nodeType === 1 && !isXML ){ | ||
3587 | elem.sizcache = doneName; | ||
3588 | elem.sizset = i; | ||
3589 | } | ||
3590 | |||
3591 | if ( elem.nodeName.toLowerCase() === cur ) { | ||
3592 | match = elem; | ||
3593 | break; | ||
3594 | } | ||
3595 | |||
3596 | elem = elem[dir]; | ||
3597 | } | ||
3598 | |||
3599 | checkSet[i] = match; | ||
3600 | } | ||
3601 | } | ||
3602 | } | ||
3603 | |||
3604 | function dirCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) { | ||
3605 | for ( var i = 0, l = checkSet.length; i < l; i++ ) { | ||
3606 | var elem = checkSet[i]; | ||
3607 | if ( elem ) { | ||
3608 | elem = elem[dir]; | ||
3609 | var match = false; | ||
3610 | |||
3611 | while ( elem ) { | ||
3612 | if ( elem.sizcache === doneName ) { | ||
3613 | match = checkSet[elem.sizset]; | ||
3614 | break; | ||
3615 | } | ||
3616 | |||
3617 | if ( elem.nodeType === 1 ) { | ||
3618 | if ( !isXML ) { | ||
3619 | elem.sizcache = doneName; | ||
3620 | elem.sizset = i; | ||
3621 | } | ||
3622 | if ( typeof cur !== "string" ) { | ||
3623 | if ( elem === cur ) { | ||
3624 | match = true; | ||
3625 | break; | ||
3626 | } | ||
3627 | |||
3628 | } else if ( Sizzle.filter( cur, [elem] ).length > 0 ) { | ||
3629 | match = elem; | ||
3630 | break; | ||
3631 | } | ||
3632 | } | ||
3633 | |||
3634 | elem = elem[dir]; | ||
3635 | } | ||
3636 | |||
3637 | checkSet[i] = match; | ||
3638 | } | ||
3639 | } | ||
3640 | } | ||
3641 | |||
3642 | var contains = document.compareDocumentPosition ? function(a, b){ | ||
3643 | return !!(a.compareDocumentPosition(b) & 16); | ||
3644 | } : function(a, b){ | ||
3645 | return a !== b && (a.contains ? a.contains(b) : true); | ||
3646 | }; | ||
3647 | |||
3648 | var isXML = function(elem){ | ||
3649 | // documentElement is verified for cases where it doesn't yet exist | ||
3650 | // (such as loading iframes in IE - #4833) | ||
3651 | var documentElement = (elem ? elem.ownerDocument || elem : 0).documentElement; | ||
3652 | return documentElement ? documentElement.nodeName !== "HTML" : false; | ||
3653 | }; | ||
3654 | |||
3655 | var posProcess = function(selector, context){ | ||
3656 | var tmpSet = [], later = "", match, | ||
3657 | root = context.nodeType ? [context] : context; | ||
3658 | |||
3659 | // Position selectors must be done after the filter | ||
3660 | // And so must :not(positional) so we move all PSEUDOs to the end | ||
3661 | while ( (match = Expr.match.PSEUDO.exec( selector )) ) { | ||
3662 | later += match[0]; | ||
3663 | selector = selector.replace( Expr.match.PSEUDO, "" ); | ||
3664 | } | ||
3665 | |||
3666 | selector = Expr.relative[selector] ? selector + "*" : selector; | ||
3667 | |||
3668 | for ( var i = 0, l = root.length; i < l; i++ ) { | ||
3669 | Sizzle( selector, root[i], tmpSet ); | ||
3670 | } | ||
3671 | |||
3672 | return Sizzle.filter( later, tmpSet ); | ||
3673 | }; | ||
3674 | |||
3675 | // EXPOSE | ||
3676 | jQuery.find = Sizzle; | ||
3677 | jQuery.expr = Sizzle.selectors; | ||
3678 | jQuery.expr[":"] = jQuery.expr.filters; | ||
3679 | jQuery.unique = Sizzle.uniqueSort; | ||
3680 | jQuery.text = getText; | ||
3681 | jQuery.isXMLDoc = isXML; | ||
3682 | jQuery.contains = contains; | ||
3683 | |||
3684 | return; | ||
3685 | |||
3686 | window.Sizzle = Sizzle; | ||
3687 | |||
3688 | })(); | ||
3689 | var runtil = /Until$/, | ||
3690 | rparentsprev = /^(?:parents|prevUntil|prevAll)/, | ||
3691 | // Note: This RegExp should be improved, or likely pulled from Sizzle | ||
3692 | rmultiselector = /,/, | ||
3693 | slice = Array.prototype.slice; | ||
3694 | |||
3695 | // Implement the identical functionality for filter and not | ||
3696 | var winnow = function( elements, qualifier, keep ) { | ||
3697 | if ( jQuery.isFunction( qualifier ) ) { | ||
3698 | return jQuery.grep(elements, function( elem, i ) { | ||
3699 | return !!qualifier.call( elem, i, elem ) === keep; | ||
3700 | }); | ||
3701 | |||
3702 | } else if ( qualifier.nodeType ) { | ||
3703 | return jQuery.grep(elements, function( elem, i ) { | ||
3704 | return (elem === qualifier) === keep; | ||
3705 | }); | ||
3706 | |||
3707 | } else if ( typeof qualifier === "string" ) { | ||
3708 | var filtered = jQuery.grep(elements, function( elem ) { | ||
3709 | return elem.nodeType === 1; | ||
3710 | }); | ||
3711 | |||
3712 | if ( isSimple.test( qualifier ) ) { | ||
3713 | return jQuery.filter(qualifier, filtered, !keep); | ||
3714 | } else { | ||
3715 | qualifier = jQuery.filter( qualifier, filtered ); | ||
3716 | } | ||
3717 | } | ||
3718 | |||
3719 | return jQuery.grep(elements, function( elem, i ) { | ||
3720 | return (jQuery.inArray( elem, qualifier ) >= 0) === keep; | ||
3721 | }); | ||
3722 | }; | ||
3723 | |||
3724 | jQuery.fn.extend({ | ||
3725 | find: function( selector ) { | ||
3726 | var ret = this.pushStack( "", "find", selector ), length = 0; | ||
3727 | |||
3728 | for ( var i = 0, l = this.length; i < l; i++ ) { | ||
3729 | length = ret.length; | ||
3730 | jQuery.find( selector, this[i], ret ); | ||
3731 | |||
3732 | if ( i > 0 ) { | ||
3733 | // Make sure that the results are unique | ||
3734 | for ( var n = length; n < ret.length; n++ ) { | ||
3735 | for ( var r = 0; r < length; r++ ) { | ||
3736 | if ( ret[r] === ret[n] ) { | ||
3737 | ret.splice(n--, 1); | ||
3738 | break; | ||
3739 | } | ||
3740 | } | ||
3741 | } | ||
3742 | } | ||
3743 | } | ||
3744 | |||
3745 | return ret; | ||
3746 | }, | ||
3747 | |||
3748 | has: function( target ) { | ||
3749 | var targets = jQuery( target ); | ||
3750 | return this.filter(function() { | ||
3751 | for ( var i = 0, l = targets.length; i < l; i++ ) { | ||
3752 | if ( jQuery.contains( this, targets[i] ) ) { | ||
3753 | return true; | ||
3754 | } | ||
3755 | } | ||
3756 | }); | ||
3757 | }, | ||
3758 | |||
3759 | not: function( selector ) { | ||
3760 | return this.pushStack( winnow(this, selector, false), "not", selector); | ||
3761 | }, | ||
3762 | |||
3763 | filter: function( selector ) { | ||
3764 | return this.pushStack( winnow(this, selector, true), "filter", selector ); | ||
3765 | }, | ||
3766 | |||
3767 | is: function( selector ) { | ||
3768 | return !!selector && jQuery.filter( selector, this ).length > 0; | ||
3769 | }, | ||
3770 | |||
3771 | closest: function( selectors, context ) { | ||
3772 | if ( jQuery.isArray( selectors ) ) { | ||
3773 | var ret = [], cur = this[0], match, matches = {}, selector; | ||
3774 | |||
3775 | if ( cur && selectors.length ) { | ||
3776 | for ( var i = 0, l = selectors.length; i < l; i++ ) { | ||
3777 | selector = selectors[i]; | ||
3778 | |||
3779 | if ( !matches[selector] ) { | ||
3780 | matches[selector] = jQuery.expr.match.POS.test( selector ) ? | ||
3781 | jQuery( selector, context || this.context ) : | ||
3782 | selector; | ||
3783 | } | ||
3784 | } | ||
3785 | |||
3786 | while ( cur && cur.ownerDocument && cur !== context ) { | ||
3787 | for ( selector in matches ) { | ||
3788 | match = matches[selector]; | ||
3789 | |||
3790 | if ( match.jquery ? match.index(cur) > -1 : jQuery(cur).is(match) ) { | ||
3791 | ret.push({ selector: selector, elem: cur }); | ||
3792 | delete matches[selector]; | ||
3793 | } | ||
3794 | } | ||
3795 | cur = cur.parentNode; | ||
3796 | } | ||
3797 | } | ||
3798 | |||
3799 | return ret; | ||
3800 | } | ||
3801 | |||
3802 | var pos = jQuery.expr.match.POS.test( selectors ) ? | ||
3803 | jQuery( selectors, context || this.context ) : null; | ||
3804 | |||
3805 | return this.map(function( i, cur ) { | ||
3806 | while ( cur && cur.ownerDocument && cur !== context ) { | ||
3807 | if ( pos ? pos.index(cur) > -1 : jQuery(cur).is(selectors) ) { | ||
3808 | return cur; | ||
3809 | } | ||
3810 | cur = cur.parentNode; | ||
3811 | } | ||
3812 | return null; | ||
3813 | }); | ||
3814 | }, | ||
3815 | |||
3816 | // Determine the position of an element within | ||
3817 | // the matched set of elements | ||
3818 | index: function( elem ) { | ||
3819 | if ( !elem || typeof elem === "string" ) { | ||
3820 | return jQuery.inArray( this[0], | ||
3821 | // If it receives a string, the selector is used | ||
3822 | // If it receives nothing, the siblings are used | ||
3823 | elem ? jQuery( elem ) : this.parent().children() ); | ||
3824 | } | ||
3825 | // Locate the position of the desired element | ||
3826 | return jQuery.inArray( | ||
3827 | // If it receives a jQuery object, the first element is used | ||
3828 | elem.jquery ? elem[0] : elem, this ); | ||
3829 | }, | ||
3830 | |||
3831 | add: function( selector, context ) { | ||
3832 | var set = typeof selector === "string" ? | ||
3833 | jQuery( selector, context || this.context ) : | ||
3834 | jQuery.makeArray( selector ), | ||
3835 | all = jQuery.merge( this.get(), set ); | ||
3836 | |||
3837 | return this.pushStack( isDisconnected( set[0] ) || isDisconnected( all[0] ) ? | ||
3838 | all : | ||
3839 | jQuery.unique( all ) ); | ||
3840 | }, | ||
3841 | |||
3842 | andSelf: function() { | ||
3843 | return this.add( this.prevObject ); | ||
3844 | } | ||
3845 | }); | ||
3846 | |||
3847 | // A painfully simple check to see if an element is disconnected | ||
3848 | // from a document (should be improved, where feasible). | ||
3849 | function isDisconnected( node ) { | ||
3850 | return !node || !node.parentNode || node.parentNode.nodeType === 11; | ||
3851 | } | ||
3852 | |||
3853 | jQuery.each({ | ||
3854 | parent: function( elem ) { | ||
3855 | var parent = elem.parentNode; | ||
3856 | return parent && parent.nodeType !== 11 ? parent : null; | ||
3857 | }, | ||
3858 | parents: function( elem ) { | ||
3859 | return jQuery.dir( elem, "parentNode" ); | ||
3860 | }, | ||
3861 | parentsUntil: function( elem, i, until ) { | ||
3862 | return jQuery.dir( elem, "parentNode", until ); | ||
3863 | }, | ||
3864 | next: function( elem ) { | ||
3865 | return jQuery.nth( elem, 2, "nextSibling" ); | ||
3866 | }, | ||
3867 | prev: function( elem ) { | ||
3868 | return jQuery.nth( elem, 2, "previousSibling" ); | ||
3869 | }, | ||
3870 | nextAll: function( elem ) { | ||
3871 | return jQuery.dir( elem, "nextSibling" ); | ||
3872 | }, | ||
3873 | prevAll: function( elem ) { | ||
3874 | return jQuery.dir( elem, "previousSibling" ); | ||
3875 | }, | ||
3876 | nextUntil: function( elem, i, until ) { | ||
3877 | return jQuery.dir( elem, "nextSibling", until ); | ||
3878 | }, | ||
3879 | prevUntil: function( elem, i, until ) { | ||
3880 | return jQuery.dir( elem, "previousSibling", until ); | ||
3881 | }, | ||
3882 | siblings: function( elem ) { | ||
3883 | return jQuery.sibling( elem.parentNode.firstChild, elem ); | ||
3884 | }, | ||
3885 | children: function( elem ) { | ||
3886 | return jQuery.sibling( elem.firstChild ); | ||
3887 | }, | ||
3888 | contents: function( elem ) { | ||
3889 | return jQuery.nodeName( elem, "iframe" ) ? | ||
3890 | elem.contentDocument || elem.contentWindow.document : | ||
3891 | jQuery.makeArray( elem.childNodes ); | ||
3892 | } | ||
3893 | }, function( name, fn ) { | ||
3894 | jQuery.fn[ name ] = function( until, selector ) { | ||
3895 | var ret = jQuery.map( this, fn, until ); | ||
3896 | |||
3897 | if ( !runtil.test( name ) ) { | ||
3898 | selector = until; | ||
3899 | } | ||
3900 | |||
3901 | if ( selector && typeof selector === "string" ) { | ||
3902 | ret = jQuery.filter( selector, ret ); | ||
3903 | } | ||
3904 | |||
3905 | ret = this.length > 1 ? jQuery.unique( ret ) : ret; | ||
3906 | |||
3907 | if ( (this.length > 1 || rmultiselector.test( selector )) && rparentsprev.test( name ) ) { | ||
3908 | ret = ret.reverse(); | ||
3909 | } | ||
3910 | |||
3911 | return this.pushStack( ret, name, slice.call(arguments).join(",") ); | ||
3912 | }; | ||
3913 | }); | ||
3914 | |||
3915 | jQuery.extend({ | ||
3916 | filter: function( expr, elems, not ) { | ||
3917 | if ( not ) { | ||
3918 | expr = ":not(" + expr + ")"; | ||
3919 | } | ||
3920 | |||
3921 | return jQuery.find.matches(expr, elems); | ||
3922 | }, | ||
3923 | |||
3924 | dir: function( elem, dir, until ) { | ||
3925 | var matched = [], cur = elem[dir]; | ||
3926 | while ( cur && cur.nodeType !== 9 && (until === undefined || cur.nodeType !== 1 || !jQuery( cur ).is( until )) ) { | ||
3927 | if ( cur.nodeType === 1 ) { | ||
3928 | matched.push( cur ); | ||
3929 | } | ||
3930 | cur = cur[dir]; | ||
3931 | } | ||
3932 | return matched; | ||
3933 | }, | ||
3934 | |||
3935 | nth: function( cur, result, dir, elem ) { | ||
3936 | result = result || 1; | ||
3937 | var num = 0; | ||
3938 | |||
3939 | for ( ; cur; cur = cur[dir] ) { | ||
3940 | if ( cur.nodeType === 1 && ++num === result ) { | ||
3941 | break; | ||
3942 | } | ||
3943 | } | ||
3944 | |||
3945 | return cur; | ||
3946 | }, | ||
3947 | |||
3948 | sibling: function( n, elem ) { | ||
3949 | var r = []; | ||
3950 | |||
3951 | for ( ; n; n = n.nextSibling ) { | ||
3952 | if ( n.nodeType === 1 && n !== elem ) { | ||
3953 | r.push( n ); | ||
3954 | } | ||
3955 | } | ||
3956 | |||
3957 | return r; | ||
3958 | } | ||
3959 | }); | ||
3960 | var rinlinejQuery = / jQuery\d+="(?:\d+|null)"/g, | ||
3961 | rleadingWhitespace = /^\s+/, | ||
3962 | rxhtmlTag = /(<([\w:]+)[^>]*?)\/>/g, | ||
3963 | rselfClosing = /^(?:area|br|col|embed|hr|img|input|link|meta|param)$/i, | ||
3964 | rtagName = /<([\w:]+)/, | ||
3965 | rtbody = /<tbody/i, | ||
3966 | rhtml = /<|&#?\w+;/, | ||
3967 | rnocache = /<script|<object|<embed|<option|<style/i, | ||
3968 | rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i, // checked="checked" or checked (html5) | ||
3969 | fcloseTag = function( all, front, tag ) { | ||
3970 | return rselfClosing.test( tag ) ? | ||
3971 | all : | ||
3972 | front + "></" + tag + ">"; | ||
3973 | }, | ||
3974 | wrapMap = { | ||
3975 | option: [ 1, "<select multiple='multiple'>", "</select>" ], | ||
3976 | legend: [ 1, "<fieldset>", "</fieldset>" ], | ||
3977 | thead: [ 1, "<table>", "</table>" ], | ||
3978 | tr: [ 2, "<table><tbody>", "</tbody></table>" ], | ||
3979 | td: [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ], | ||
3980 | col: [ 2, "<table><tbody></tbody><colgroup>", "</colgroup></table>" ], | ||
3981 | area: [ 1, "<map>", "</map>" ], | ||
3982 | _default: [ 0, "", "" ] | ||
3983 | }; | ||
3984 | |||
3985 | wrapMap.optgroup = wrapMap.option; | ||
3986 | wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; | ||
3987 | wrapMap.th = wrapMap.td; | ||
3988 | |||
3989 | // IE can't serialize <link> and <script> tags normally | ||
3990 | if ( !jQuery.support.htmlSerialize ) { | ||
3991 | wrapMap._default = [ 1, "div<div>", "</div>" ]; | ||
3992 | } | ||
3993 | |||
3994 | jQuery.fn.extend({ | ||
3995 | text: function( text ) { | ||
3996 | if ( jQuery.isFunction(text) ) { | ||
3997 | return this.each(function(i) { | ||
3998 | var self = jQuery(this); | ||
3999 | self.text( text.call(this, i, self.text()) ); | ||
4000 | }); | ||
4001 | } | ||
4002 | |||
4003 | if ( typeof text !== "object" && text !== undefined ) { | ||
4004 | return this.empty().append( (this[0] && this[0].ownerDocument || document).createTextNode( text ) ); | ||
4005 | } | ||
4006 | |||
4007 | return jQuery.text( this ); | ||
4008 | }, | ||
4009 | |||
4010 | wrapAll: function( html ) { | ||
4011 | if ( jQuery.isFunction( html ) ) { | ||
4012 | return this.each(function(i) { | ||
4013 | jQuery(this).wrapAll( html.call(this, i) ); | ||
4014 | }); | ||
4015 | } | ||
4016 | |||
4017 | if ( this[0] ) { | ||
4018 | // The elements to wrap the target around | ||
4019 | var wrap = jQuery( html, this[0].ownerDocument ).eq(0).clone(true); | ||
4020 | |||
4021 | if ( this[0].parentNode ) { | ||
4022 | wrap.insertBefore( this[0] ); | ||
4023 | } | ||
4024 | |||
4025 | wrap.map(function() { | ||
4026 | var elem = this; | ||
4027 | |||
4028 | while ( elem.firstChild && elem.firstChild.nodeType === 1 ) { | ||
4029 | elem = elem.firstChild; | ||
4030 | } | ||
4031 | |||
4032 | return elem; | ||
4033 | }).append(this); | ||
4034 | } | ||
4035 | |||
4036 | return this; | ||
4037 | }, | ||
4038 | |||
4039 | wrapInner: function( html ) { | ||
4040 | if ( jQuery.isFunction( html ) ) { | ||
4041 | return this.each(function(i) { | ||
4042 | jQuery(this).wrapInner( html.call(this, i) ); | ||
4043 | }); | ||
4044 | } | ||
4045 | |||
4046 | return this.each(function() { | ||
4047 | var self = jQuery( this ), contents = self.contents(); | ||
4048 | |||
4049 | if ( contents.length ) { | ||
4050 | contents.wrapAll( html ); | ||
4051 | |||
4052 | } else { | ||
4053 | self.append( html ); | ||
4054 | } | ||
4055 | }); | ||
4056 | }, | ||
4057 | |||
4058 | wrap: function( html ) { | ||
4059 | return this.each(function() { | ||
4060 | jQuery( this ).wrapAll( html ); | ||
4061 | }); | ||
4062 | }, | ||
4063 | |||
4064 | unwrap: function() { | ||
4065 | return this.parent().each(function() { | ||
4066 | if ( !jQuery.nodeName( this, "body" ) ) { | ||
4067 | jQuery( this ).replaceWith( this.childNodes ); | ||
4068 | } | ||
4069 | }).end(); | ||
4070 | }, | ||
4071 | |||
4072 | append: function() { | ||
4073 | return this.domManip(arguments, true, function( elem ) { | ||
4074 | if ( this.nodeType === 1 ) { | ||
4075 | this.appendChild( elem ); | ||
4076 | } | ||
4077 | }); | ||
4078 | }, | ||
4079 | |||
4080 | prepend: function() { | ||
4081 | return this.domManip(arguments, true, function( elem ) { | ||
4082 | if ( this.nodeType === 1 ) { | ||
4083 | this.insertBefore( elem, this.firstChild ); | ||
4084 | } | ||
4085 | }); | ||
4086 | }, | ||
4087 | |||
4088 | before: function() { | ||
4089 | if ( this[0] && this[0].parentNode ) { | ||
4090 | return this.domManip(arguments, false, function( elem ) { | ||
4091 | this.parentNode.insertBefore( elem, this ); | ||
4092 | }); | ||
4093 | } else if ( arguments.length ) { | ||
4094 | var set = jQuery(arguments[0]); | ||
4095 | set.push.apply( set, this.toArray() ); | ||
4096 | return this.pushStack( set, "before", arguments ); | ||
4097 | } | ||
4098 | }, | ||
4099 | |||
4100 | after: function() { | ||
4101 | if ( this[0] && this[0].parentNode ) { | ||
4102 | return this.domManip(arguments, false, function( elem ) { | ||
4103 | this.parentNode.insertBefore( elem, this.nextSibling ); | ||
4104 | }); | ||
4105 | } else if ( arguments.length ) { | ||
4106 | var set = this.pushStack( this, "after", arguments ); | ||
4107 | set.push.apply( set, jQuery(arguments[0]).toArray() ); | ||
4108 | return set; | ||
4109 | } | ||
4110 | }, | ||
4111 | |||
4112 | // keepData is for internal use only--do not document | ||
4113 | remove: function( selector, keepData ) { | ||
4114 | for ( var i = 0, elem; (elem = this[i]) != null; i++ ) { | ||
4115 | if ( !selector || jQuery.filter( selector, [ elem ] ).length ) { | ||
4116 | if ( !keepData && elem.nodeType === 1 ) { | ||
4117 | jQuery.cleanData( elem.getElementsByTagName("*") ); | ||
4118 | jQuery.cleanData( [ elem ] ); | ||
4119 | } | ||
4120 | |||
4121 | if ( elem.parentNode ) { | ||
4122 | elem.parentNode.removeChild( elem ); | ||
4123 | } | ||
4124 | } | ||
4125 | } | ||
4126 | |||
4127 | return this; | ||
4128 | }, | ||
4129 | |||
4130 | empty: function() { | ||
4131 | for ( var i = 0, elem; (elem = this[i]) != null; i++ ) { | ||
4132 | // Remove element nodes and prevent memory leaks | ||
4133 | if ( elem.nodeType === 1 ) { | ||
4134 | jQuery.cleanData( elem.getElementsByTagName("*") ); | ||
4135 | } | ||
4136 | |||
4137 | // Remove any remaining nodes | ||
4138 | while ( elem.firstChild ) { | ||
4139 | elem.removeChild( elem.firstChild ); | ||
4140 | } | ||
4141 | } | ||
4142 | |||
4143 | return this; | ||
4144 | }, | ||
4145 | |||
4146 | clone: function( events ) { | ||
4147 | // Do the clone | ||
4148 | var ret = this.map(function() { | ||
4149 | if ( !jQuery.support.noCloneEvent && !jQuery.isXMLDoc(this) ) { | ||
4150 | // IE copies events bound via attachEvent when | ||
4151 | // using cloneNode. Calling detachEvent on the | ||
4152 | // clone will also remove the events from the orignal | ||
4153 | // In order to get around this, we use innerHTML. | ||
4154 | // Unfortunately, this means some modifications to | ||
4155 | // attributes in IE that are actually only stored | ||
4156 | // as properties will not be copied (such as the | ||
4157 | // the name attribute on an input). | ||
4158 | var html = this.outerHTML, ownerDocument = this.ownerDocument; | ||
4159 | if ( !html ) { | ||
4160 | var div = ownerDocument.createElement("div"); | ||
4161 | div.appendChild( this.cloneNode(true) ); | ||
4162 | html = div.innerHTML; | ||
4163 | } | ||
4164 | |||
4165 | return jQuery.clean([html.replace(rinlinejQuery, "") | ||
4166 | // Handle the case in IE 8 where action=/test/> self-closes a tag | ||
4167 | .replace(/=([^="'>\s]+\/)>/g, '="$1">') | ||
4168 | .replace(rleadingWhitespace, "")], ownerDocument)[0]; | ||
4169 | } else { | ||
4170 | return this.cloneNode(true); | ||
4171 | } | ||
4172 | }); | ||
4173 | |||
4174 | // Copy the events from the original to the clone | ||
4175 | if ( events === true ) { | ||
4176 | cloneCopyEvent( this, ret ); | ||
4177 | cloneCopyEvent( this.find("*"), ret.find("*") ); | ||
4178 | } | ||
4179 | |||
4180 | // Return the cloned set | ||
4181 | return ret; | ||
4182 | }, | ||
4183 | |||
4184 | html: function( value ) { | ||
4185 | if ( value === undefined ) { | ||
4186 | return this[0] && this[0].nodeType === 1 ? | ||
4187 | this[0].innerHTML.replace(rinlinejQuery, "") : | ||
4188 | null; | ||
4189 | |||
4190 | // See if we can take a shortcut and just use innerHTML | ||
4191 | } else if ( typeof value === "string" && !rnocache.test( value ) && | ||
4192 | (jQuery.support.leadingWhitespace || !rleadingWhitespace.test( value )) && | ||
4193 | !wrapMap[ (rtagName.exec( value ) || ["", ""])[1].toLowerCase() ] ) { | ||
4194 | |||
4195 | value = value.replace(rxhtmlTag, fcloseTag); | ||
4196 | |||
4197 | try { | ||
4198 | for ( var i = 0, l = this.length; i < l; i++ ) { | ||
4199 | // Remove element nodes and prevent memory leaks | ||
4200 | if ( this[i].nodeType === 1 ) { | ||
4201 | jQuery.cleanData( this[i].getElementsByTagName("*") ); | ||
4202 | this[i].innerHTML = value; | ||
4203 | } | ||
4204 | } | ||
4205 | |||
4206 | // If using innerHTML throws an exception, use the fallback method | ||
4207 | } catch(e) { | ||
4208 | this.empty().append( value ); | ||
4209 | } | ||
4210 | |||
4211 | } else if ( jQuery.isFunction( value ) ) { | ||
4212 | this.each(function(i){ | ||
4213 | var self = jQuery(this), old = self.html(); | ||
4214 | self.empty().append(function(){ | ||
4215 | return value.call( this, i, old ); | ||
4216 | }); | ||
4217 | }); | ||
4218 | |||
4219 | } else { | ||
4220 | this.empty().append( value ); | ||
4221 | } | ||
4222 | |||
4223 | return this; | ||
4224 | }, | ||
4225 | |||
4226 | replaceWith: function( value ) { | ||
4227 | if ( this[0] && this[0].parentNode ) { | ||
4228 | // Make sure that the elements are removed from the DOM before they are inserted | ||
4229 | // this can help fix replacing a parent with child elements | ||
4230 | if ( jQuery.isFunction( value ) ) { | ||
4231 | return this.each(function(i) { | ||
4232 | var self = jQuery(this), old = self.html(); | ||
4233 | self.replaceWith( value.call( this, i, old ) ); | ||
4234 | }); | ||
4235 | } | ||
4236 | |||
4237 | if ( typeof value !== "string" ) { | ||
4238 | value = jQuery(value).detach(); | ||
4239 | } | ||
4240 | |||
4241 | return this.each(function() { | ||
4242 | var next = this.nextSibling, parent = this.parentNode; | ||
4243 | |||
4244 | jQuery(this).remove(); | ||
4245 | |||
4246 | if ( next ) { | ||
4247 | jQuery(next).before( value ); | ||
4248 | } else { | ||
4249 | jQuery(parent).append( value ); | ||
4250 | } | ||
4251 | }); | ||
4252 | } else { | ||
4253 | return this.pushStack( jQuery(jQuery.isFunction(value) ? value() : value), "replaceWith", value ); | ||
4254 | } | ||
4255 | }, | ||
4256 | |||
4257 | detach: function( selector ) { | ||
4258 | return this.remove( selector, true ); | ||
4259 | }, | ||
4260 | |||
4261 | domManip: function( args, table, callback ) { | ||
4262 | var results, first, value = args[0], scripts = [], fragment, parent; | ||
4263 | |||
4264 | // We can't cloneNode fragments that contain checked, in WebKit | ||
4265 | if ( !jQuery.support.checkClone && arguments.length === 3 && typeof value === "string" && rchecked.test( value ) ) { | ||
4266 | return this.each(function() { | ||
4267 | jQuery(this).domManip( args, table, callback, true ); | ||
4268 | }); | ||
4269 | } | ||
4270 | |||
4271 | if ( jQuery.isFunction(value) ) { | ||
4272 | return this.each(function(i) { | ||
4273 | var self = jQuery(this); | ||
4274 | args[0] = value.call(this, i, table ? self.html() : undefined); | ||
4275 | self.domManip( args, table, callback ); | ||
4276 | }); | ||
4277 | } | ||
4278 | |||
4279 | if ( this[0] ) { | ||
4280 | parent = value && value.parentNode; | ||
4281 | |||
4282 | // If we're in a fragment, just use that instead of building a new one | ||
4283 | if ( jQuery.support.parentNode && parent && parent.nodeType === 11 && parent.childNodes.length === this.length ) { | ||
4284 | results = { fragment: parent }; | ||
4285 | |||
4286 | } else { | ||
4287 | results = buildFragment( args, this, scripts ); | ||
4288 | } | ||
4289 | |||
4290 | fragment = results.fragment; | ||
4291 | |||
4292 | if ( fragment.childNodes.length === 1 ) { | ||
4293 | first = fragment = fragment.firstChild; | ||
4294 | } else { | ||
4295 | first = fragment.firstChild; | ||
4296 | } | ||
4297 | |||
4298 | if ( first ) { | ||
4299 | table = table && jQuery.nodeName( first, "tr" ); | ||
4300 | |||
4301 | for ( var i = 0, l = this.length; i < l; i++ ) { | ||
4302 | callback.call( | ||
4303 | table ? | ||
4304 | root(this[i], first) : | ||
4305 | this[i], | ||
4306 | i > 0 || results.cacheable || this.length > 1 ? | ||
4307 | fragment.cloneNode(true) : | ||
4308 | fragment | ||
4309 | ); | ||
4310 | } | ||
4311 | } | ||
4312 | |||
4313 | if ( scripts.length ) { | ||
4314 | jQuery.each( scripts, evalScript ); | ||
4315 | } | ||
4316 | } | ||
4317 | |||
4318 | return this; | ||
4319 | |||
4320 | function root( elem, cur ) { | ||
4321 | return jQuery.nodeName(elem, "table") ? | ||
4322 | (elem.getElementsByTagName("tbody")[0] || | ||
4323 | elem.appendChild(elem.ownerDocument.createElement("tbody"))) : | ||
4324 | elem; | ||
4325 | } | ||
4326 | } | ||
4327 | }); | ||
4328 | |||
4329 | function cloneCopyEvent(orig, ret) { | ||
4330 | var i = 0; | ||
4331 | |||
4332 | ret.each(function() { | ||
4333 | if ( this.nodeName !== (orig[i] && orig[i].nodeName) ) { | ||
4334 | return; | ||
4335 | } | ||
4336 | |||
4337 | var oldData = jQuery.data( orig[i++] ), curData = jQuery.data( this, oldData ), events = oldData && oldData.events; | ||
4338 | |||
4339 | if ( events ) { | ||
4340 | delete curData.handle; | ||
4341 | curData.events = {}; | ||
4342 | |||
4343 | for ( var type in events ) { | ||
4344 | for ( var handler in events[ type ] ) { | ||
4345 | jQuery.event.add( this, type, events[ type ][ handler ], events[ type ][ handler ].data ); | ||
4346 | } | ||
4347 | } | ||
4348 | } | ||
4349 | }); | ||
4350 | } | ||
4351 | |||
4352 | function buildFragment( args, nodes, scripts ) { | ||
4353 | var fragment, cacheable, cacheresults, | ||
4354 | doc = (nodes && nodes[0] ? nodes[0].ownerDocument || nodes[0] : document); | ||
4355 | |||
4356 | // Only cache "small" (1/2 KB) strings that are associated with the main document | ||
4357 | // Cloning options loses the selected state, so don't cache them | ||
4358 | // IE 6 doesn't like it when you put <object> or <embed> elements in a fragment | ||
4359 | // Also, WebKit does not clone 'checked' attributes on cloneNode, so don't cache | ||
4360 | if ( args.length === 1 && typeof args[0] === "string" && args[0].length < 512 && doc === document && | ||
4361 | !rnocache.test( args[0] ) && (jQuery.support.checkClone || !rchecked.test( args[0] )) ) { | ||
4362 | |||
4363 | cacheable = true; | ||
4364 | cacheresults = jQuery.fragments[ args[0] ]; | ||
4365 | if ( cacheresults ) { | ||
4366 | if ( cacheresults !== 1 ) { | ||
4367 | fragment = cacheresults; | ||
4368 | } | ||
4369 | } | ||
4370 | } | ||
4371 | |||
4372 | if ( !fragment ) { | ||
4373 | fragment = doc.createDocumentFragment(); | ||
4374 | jQuery.clean( args, doc, fragment, scripts ); | ||
4375 | } | ||
4376 | |||
4377 | if ( cacheable ) { | ||
4378 | jQuery.fragments[ args[0] ] = cacheresults ? fragment : 1; | ||
4379 | } | ||
4380 | |||
4381 | return { fragment: fragment, cacheable: cacheable }; | ||
4382 | } | ||
4383 | |||
4384 | jQuery.fragments = {}; | ||
4385 | |||
4386 | jQuery.each({ | ||
4387 | appendTo: "append", | ||
4388 | prependTo: "prepend", | ||
4389 | insertBefore: "before", | ||
4390 | insertAfter: "after", | ||
4391 | replaceAll: "replaceWith" | ||
4392 | }, function( name, original ) { | ||
4393 | jQuery.fn[ name ] = function( selector ) { | ||
4394 | var ret = [], insert = jQuery( selector ), | ||
4395 | parent = this.length === 1 && this[0].parentNode; | ||
4396 | |||
4397 | if ( parent && parent.nodeType === 11 && parent.childNodes.length === 1 && insert.length === 1 ) { | ||
4398 | insert[ original ]( this[0] ); | ||
4399 | return this; | ||
4400 | |||
4401 | } else { | ||
4402 | for ( var i = 0, l = insert.length; i < l; i++ ) { | ||
4403 | var elems = (i > 0 ? this.clone(true) : this).get(); | ||
4404 | jQuery.fn[ original ].apply( jQuery(insert[i]), elems ); | ||
4405 | ret = ret.concat( elems ); | ||
4406 | } | ||
4407 | |||
4408 | return this.pushStack( ret, name, insert.selector ); | ||
4409 | } | ||
4410 | }; | ||
4411 | }); | ||
4412 | |||
4413 | jQuery.extend({ | ||
4414 | clean: function( elems, context, fragment, scripts ) { | ||
4415 | context = context || document; | ||
4416 | |||
4417 | // !context.createElement fails in IE with an error but returns typeof 'object' | ||
4418 | if ( typeof context.createElement === "undefined" ) { | ||
4419 | context = context.ownerDocument || context[0] && context[0].ownerDocument || document; | ||
4420 | } | ||
4421 | |||
4422 | var ret = []; | ||
4423 | |||
4424 | for ( var i = 0, elem; (elem = elems[i]) != null; i++ ) { | ||
4425 | if ( typeof elem === "number" ) { | ||
4426 | elem += ""; | ||
4427 | } | ||
4428 | |||
4429 | if ( !elem ) { | ||
4430 | continue; | ||
4431 | } | ||
4432 | |||
4433 | // Convert html string into DOM nodes | ||
4434 | if ( typeof elem === "string" && !rhtml.test( elem ) ) { | ||
4435 | elem = context.createTextNode( elem ); | ||
4436 | |||
4437 | } else if ( typeof elem === "string" ) { | ||
4438 | // Fix "XHTML"-style tags in all browsers | ||
4439 | elem = elem.replace(rxhtmlTag, fcloseTag); | ||
4440 | |||
4441 | // Trim whitespace, otherwise indexOf won't work as expected | ||
4442 | var tag = (rtagName.exec( elem ) || ["", ""])[1].toLowerCase(), | ||
4443 | wrap = wrapMap[ tag ] || wrapMap._default, | ||
4444 | depth = wrap[0], | ||
4445 | div = context.createElement("div"); | ||
4446 | |||
4447 | // Go to html and back, then peel off extra wrappers | ||
4448 | div.innerHTML = wrap[1] + elem + wrap[2]; | ||
4449 | |||
4450 | // Move to the right depth | ||
4451 | while ( depth-- ) { | ||
4452 | div = div.lastChild; | ||
4453 | } | ||
4454 | |||
4455 | // Remove IE's autoinserted <tbody> from table fragments | ||
4456 | if ( !jQuery.support.tbody ) { | ||
4457 | |||
4458 | // String was a <table>, *may* have spurious <tbody> | ||
4459 | var hasBody = rtbody.test(elem), | ||
4460 | tbody = tag === "table" && !hasBody ? | ||
4461 | div.firstChild && div.firstChild.childNodes : | ||
4462 | |||
4463 | // String was a bare <thead> or <tfoot> | ||
4464 | wrap[1] === "<table>" && !hasBody ? | ||
4465 | div.childNodes : | ||
4466 | []; | ||
4467 | |||
4468 | for ( var j = tbody.length - 1; j >= 0 ; --j ) { | ||
4469 | if ( jQuery.nodeName( tbody[ j ], "tbody" ) && !tbody[ j ].childNodes.length ) { | ||
4470 | tbody[ j ].parentNode.removeChild( tbody[ j ] ); | ||
4471 | } | ||
4472 | } | ||
4473 | |||
4474 | } | ||
4475 | |||
4476 | // IE completely kills leading whitespace when innerHTML is used | ||
4477 | if ( !jQuery.support.leadingWhitespace && rleadingWhitespace.test( elem ) ) { | ||
4478 | div.insertBefore( context.createTextNode( rleadingWhitespace.exec(elem)[0] ), div.firstChild ); | ||
4479 | } | ||
4480 | |||
4481 | elem = div.childNodes; | ||
4482 | } | ||
4483 | |||
4484 | if ( elem.nodeType ) { | ||
4485 | ret.push( elem ); | ||
4486 | } else { | ||
4487 | ret = jQuery.merge( ret, elem ); | ||
4488 | } | ||
4489 | } | ||
4490 | |||
4491 | if ( fragment ) { | ||
4492 | for ( var i = 0; ret[i]; i++ ) { | ||
4493 | if ( scripts && jQuery.nodeName( ret[i], "script" ) && (!ret[i].type || ret[i].type.toLowerCase() === "text/javascript") ) { | ||
4494 | scripts.push( ret[i].parentNode ? ret[i].parentNode.removeChild( ret[i] ) : ret[i] ); | ||
4495 | |||
4496 | } else { | ||
4497 | if ( ret[i].nodeType === 1 ) { | ||
4498 | ret.splice.apply( ret, [i + 1, 0].concat(jQuery.makeArray(ret[i].getElementsByTagName("script"))) ); | ||
4499 | } | ||
4500 | fragment.appendChild( ret[i] ); | ||
4501 | } | ||
4502 | } | ||
4503 | } | ||
4504 | |||
4505 | return ret; | ||
4506 | }, | ||
4507 | |||
4508 | cleanData: function( elems ) { | ||
4509 | var data, id, cache = jQuery.cache, | ||
4510 | special = jQuery.event.special, | ||
4511 | deleteExpando = jQuery.support.deleteExpando; | ||
4512 | |||
4513 | for ( var i = 0, elem; (elem = elems[i]) != null; i++ ) { | ||
4514 | id = elem[ jQuery.expando ]; | ||
4515 | |||
4516 | if ( id ) { | ||
4517 | data = cache[ id ]; | ||
4518 | |||
4519 | if ( data.events ) { | ||
4520 | for ( var type in data.events ) { | ||
4521 | if ( special[ type ] ) { | ||
4522 | jQuery.event.remove( elem, type ); | ||
4523 | |||
4524 | } else { | ||
4525 | removeEvent( elem, type, data.handle ); | ||
4526 | } | ||
4527 | } | ||
4528 | } | ||
4529 | |||
4530 | if ( deleteExpando ) { | ||
4531 | delete elem[ jQuery.expando ]; | ||
4532 | |||
4533 | } else if ( elem.removeAttribute ) { | ||
4534 | elem.removeAttribute( jQuery.expando ); | ||
4535 | } | ||
4536 | |||
4537 | delete cache[ id ]; | ||
4538 | } | ||
4539 | } | ||
4540 | } | ||
4541 | }); | ||
4542 | // exclude the following css properties to add px | ||
4543 | var rexclude = /z-?index|font-?weight|opacity|zoom|line-?height/i, | ||
4544 | ralpha = /alpha\([^)]*\)/, | ||
4545 | ropacity = /opacity=([^)]*)/, | ||
4546 | rfloat = /float/i, | ||
4547 | rdashAlpha = /-([a-z])/ig, | ||
4548 | rupper = /([A-Z])/g, | ||
4549 | rnumpx = /^-?\d+(?:px)?$/i, | ||
4550 | rnum = /^-?\d/, | ||
4551 | |||
4552 | cssShow = { position: "absolute", visibility: "hidden", display:"block" }, | ||
4553 | cssWidth = [ "Left", "Right" ], | ||
4554 | cssHeight = [ "Top", "Bottom" ], | ||
4555 | |||
4556 | // cache check for defaultView.getComputedStyle | ||
4557 | getComputedStyle = document.defaultView && document.defaultView.getComputedStyle, | ||
4558 | // normalize float css property | ||
4559 | styleFloat = jQuery.support.cssFloat ? "cssFloat" : "styleFloat", | ||
4560 | fcamelCase = function( all, letter ) { | ||
4561 | return letter.toUpperCase(); | ||
4562 | }; | ||
4563 | |||
4564 | jQuery.fn.css = function( name, value ) { | ||
4565 | return access( this, name, value, true, function( elem, name, value ) { | ||
4566 | if ( value === undefined ) { | ||
4567 | return jQuery.curCSS( elem, name ); | ||
4568 | } | ||
4569 | |||
4570 | if ( typeof value === "number" && !rexclude.test(name) ) { | ||
4571 | value += "px"; | ||
4572 | } | ||
4573 | |||
4574 | jQuery.style( elem, name, value ); | ||
4575 | }); | ||
4576 | }; | ||
4577 | |||
4578 | jQuery.extend({ | ||
4579 | style: function( elem, name, value ) { | ||
4580 | // don't set styles on text and comment nodes | ||
4581 | if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 ) { | ||
4582 | return undefined; | ||
4583 | } | ||
4584 | |||
4585 | // ignore negative width and height values #1599 | ||
4586 | if ( (name === "width" || name === "height") && parseFloat(value) < 0 ) { | ||
4587 | value = undefined; | ||
4588 | } | ||
4589 | |||
4590 | var style = elem.style || elem, set = value !== undefined; | ||
4591 | |||
4592 | // IE uses filters for opacity | ||
4593 | if ( !jQuery.support.opacity && name === "opacity" ) { | ||
4594 | if ( set ) { | ||
4595 | // IE has trouble with opacity if it does not have layout | ||
4596 | // Force it by setting the zoom level | ||
4597 | style.zoom = 1; | ||
4598 | |||
4599 | // Set the alpha filter to set the opacity | ||
4600 | var opacity = parseInt( value, 10 ) + "" === "NaN" ? "" : "alpha(opacity=" + value * 100 + ")"; | ||
4601 | var filter = style.filter || jQuery.curCSS( elem, "filter" ) || ""; | ||
4602 | style.filter = ralpha.test(filter) ? filter.replace(ralpha, opacity) : opacity; | ||
4603 | } | ||
4604 | |||
4605 | return style.filter && style.filter.indexOf("opacity=") >= 0 ? | ||
4606 | (parseFloat( ropacity.exec(style.filter)[1] ) / 100) + "": | ||
4607 | ""; | ||
4608 | } | ||
4609 | |||
4610 | // Make sure we're using the right name for getting the float value | ||
4611 | if ( rfloat.test( name ) ) { | ||
4612 | name = styleFloat; | ||
4613 | } | ||
4614 | |||
4615 | name = name.replace(rdashAlpha, fcamelCase); | ||
4616 | |||
4617 | if ( set ) { | ||
4618 | style[ name ] = value; | ||
4619 | } | ||
4620 | |||
4621 | return style[ name ]; | ||
4622 | }, | ||
4623 | |||
4624 | css: function( elem, name, force, extra ) { | ||
4625 | if ( name === "width" || name === "height" ) { | ||
4626 | var val, props = cssShow, which = name === "width" ? cssWidth : cssHeight; | ||
4627 | |||
4628 | function getWH() { | ||
4629 | val = name === "width" ? elem.offsetWidth : elem.offsetHeight; | ||
4630 | |||
4631 | if ( extra === "border" ) { | ||
4632 | return; | ||
4633 | } | ||
4634 | |||
4635 | jQuery.each( which, function() { | ||
4636 | if ( !extra ) { | ||
4637 | val -= parseFloat(jQuery.curCSS( elem, "padding" + this, true)) || 0; | ||
4638 | } | ||
4639 | |||
4640 | if ( extra === "margin" ) { | ||
4641 | val += parseFloat(jQuery.curCSS( elem, "margin" + this, true)) || 0; | ||
4642 | } else { | ||
4643 | val -= parseFloat(jQuery.curCSS( elem, "border" + this + "Width", true)) || 0; | ||
4644 | } | ||
4645 | }); | ||
4646 | } | ||
4647 | |||
4648 | if ( elem.offsetWidth !== 0 ) { | ||
4649 | getWH(); | ||
4650 | } else { | ||
4651 | jQuery.swap( elem, props, getWH ); | ||
4652 | } | ||
4653 | |||
4654 | return Math.max(0, Math.round(val)); | ||
4655 | } | ||
4656 | |||
4657 | return jQuery.curCSS( elem, name, force ); | ||
4658 | }, | ||
4659 | |||
4660 | curCSS: function( elem, name, force ) { | ||
4661 | var ret, style = elem.style, filter; | ||
4662 | |||
4663 | // IE uses filters for opacity | ||
4664 | if ( !jQuery.support.opacity && name === "opacity" && elem.currentStyle ) { | ||
4665 | ret = ropacity.test(elem.currentStyle.filter || "") ? | ||
4666 | (parseFloat(RegExp.$1) / 100) + "" : | ||
4667 | ""; | ||
4668 | |||
4669 | return ret === "" ? | ||
4670 | "1" : | ||
4671 | ret; | ||
4672 | } | ||
4673 | |||
4674 | // Make sure we're using the right name for getting the float value | ||
4675 | if ( rfloat.test( name ) ) { | ||
4676 | name = styleFloat; | ||
4677 | } | ||
4678 | |||
4679 | if ( !force && style && style[ name ] ) { | ||
4680 | ret = style[ name ]; | ||
4681 | |||
4682 | } else if ( getComputedStyle ) { | ||
4683 | |||
4684 | // Only "float" is needed here | ||
4685 | if ( rfloat.test( name ) ) { | ||
4686 | name = "float"; | ||
4687 | } | ||
4688 | |||
4689 | name = name.replace( rupper, "-$1" ).toLowerCase(); | ||
4690 | |||
4691 | var defaultView = elem.ownerDocument.defaultView; | ||
4692 | |||
4693 | if ( !defaultView ) { | ||
4694 | return null; | ||
4695 | } | ||
4696 | |||
4697 | var computedStyle = defaultView.getComputedStyle( elem, null ); | ||
4698 | |||
4699 | if ( computedStyle ) { | ||
4700 | ret = computedStyle.getPropertyValue( name ); | ||
4701 | } | ||
4702 | |||
4703 | // We should always get a number back from opacity | ||
4704 | if ( name === "opacity" && ret === "" ) { | ||
4705 | ret = "1"; | ||
4706 | } | ||
4707 | |||
4708 | } else if ( elem.currentStyle ) { | ||
4709 | var camelCase = name.replace(rdashAlpha, fcamelCase); | ||
4710 | |||
4711 | ret = elem.currentStyle[ name ] || elem.currentStyle[ camelCase ]; | ||
4712 | |||
4713 | // From the awesome hack by Dean Edwards | ||
4714 | // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291 | ||
4715 | |||
4716 | // If we're not dealing with a regular pixel number | ||
4717 | // but a number that has a weird ending, we need to convert it to pixels | ||
4718 | if ( !rnumpx.test( ret ) && rnum.test( ret ) ) { | ||
4719 | // Remember the original values | ||
4720 | var left = style.left, rsLeft = elem.runtimeStyle.left; | ||
4721 | |||
4722 | // Put in the new values to get a computed value out | ||
4723 | elem.runtimeStyle.left = elem.currentStyle.left; | ||
4724 | style.left = camelCase === "fontSize" ? "1em" : (ret || 0); | ||
4725 | ret = style.pixelLeft + "px"; | ||
4726 | |||
4727 | // Revert the changed values | ||
4728 | style.left = left; | ||
4729 | elem.runtimeStyle.left = rsLeft; | ||
4730 | } | ||
4731 | } | ||
4732 | |||
4733 | return ret; | ||
4734 | }, | ||
4735 | |||
4736 | // A method for quickly swapping in/out CSS properties to get correct calculations | ||
4737 | swap: function( elem, options, callback ) { | ||
4738 | var old = {}; | ||
4739 | |||
4740 | // Remember the old values, and insert the new ones | ||
4741 | for ( var name in options ) { | ||
4742 | old[ name ] = elem.style[ name ]; | ||
4743 | elem.style[ name ] = options[ name ]; | ||
4744 | } | ||
4745 | |||
4746 | callback.call( elem ); | ||
4747 | |||
4748 | // Revert the old values | ||
4749 | for ( var name in options ) { | ||
4750 | elem.style[ name ] = old[ name ]; | ||
4751 | } | ||
4752 | } | ||
4753 | }); | ||
4754 | |||
4755 | if ( jQuery.expr && jQuery.expr.filters ) { | ||
4756 | jQuery.expr.filters.hidden = function( elem ) { | ||
4757 | var width = elem.offsetWidth, height = elem.offsetHeight, | ||
4758 | skip = elem.nodeName.toLowerCase() === "tr"; | ||
4759 | |||
4760 | return width === 0 && height === 0 && !skip ? | ||
4761 | true : | ||
4762 | width > 0 && height > 0 && !skip ? | ||
4763 | false : | ||
4764 | jQuery.curCSS(elem, "display") === "none"; | ||
4765 | }; | ||
4766 | |||
4767 | jQuery.expr.filters.visible = function( elem ) { | ||
4768 | return !jQuery.expr.filters.hidden( elem ); | ||
4769 | }; | ||
4770 | } | ||
4771 | var jsc = now(), | ||
4772 | rscript = /<script(.|\s)*?\/script>/gi, | ||
4773 | rselectTextarea = /select|textarea/i, | ||
4774 | rinput = /color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week/i, | ||
4775 | jsre = /=\?(&|$)/, | ||
4776 | rquery = /\?/, | ||
4777 | rts = /(\?|&)_=.*?(&|$)/, | ||
4778 | rurl = /^(\w+:)?\/\/([^\/?#]+)/, | ||
4779 | r20 = /%20/g, | ||
4780 | |||
4781 | // Keep a copy of the old load method | ||
4782 | _load = jQuery.fn.load; | ||
4783 | |||
4784 | jQuery.fn.extend({ | ||
4785 | load: function( url, params, callback ) { | ||
4786 | if ( typeof url !== "string" ) { | ||
4787 | return _load.call( this, url ); | ||
4788 | |||
4789 | // Don't do a request if no elements are being requested | ||
4790 | } else if ( !this.length ) { | ||
4791 | return this; | ||
4792 | } | ||
4793 | |||
4794 | var off = url.indexOf(" "); | ||
4795 | if ( off >= 0 ) { | ||
4796 | var selector = url.slice(off, url.length); | ||
4797 | url = url.slice(0, off); | ||
4798 | } | ||
4799 | |||
4800 | // Default to a GET request | ||
4801 | var type = "GET"; | ||
4802 | |||
4803 | // If the second parameter was provided | ||
4804 | if ( params ) { | ||
4805 | // If it's a function | ||
4806 | if ( jQuery.isFunction( params ) ) { | ||
4807 | // We assume that it's the callback | ||
4808 | callback = params; | ||
4809 | params = null; | ||
4810 | |||
4811 | // Otherwise, build a param string | ||
4812 | } else if ( typeof params === "object" ) { | ||
4813 | params = jQuery.param( params, jQuery.ajaxSettings.traditional ); | ||
4814 | type = "POST"; | ||
4815 | } | ||
4816 | } | ||
4817 | |||
4818 | var self = this; | ||
4819 | |||
4820 | // Request the remote document | ||
4821 | jQuery.ajax({ | ||
4822 | url: url, | ||
4823 | type: type, | ||
4824 | dataType: "html", | ||
4825 | data: params, | ||
4826 | complete: function( res, status ) { | ||
4827 | // If successful, inject the HTML into all the matched elements | ||
4828 | if ( status === "success" || status === "notmodified" ) { | ||
4829 | // See if a selector was specified | ||
4830 | self.html( selector ? | ||
4831 | // Create a dummy div to hold the results | ||
4832 | jQuery("<div />") | ||
4833 | // inject the contents of the document in, removing the scripts | ||
4834 | // to avoid any 'Permission Denied' errors in IE | ||
4835 | .append(res.responseText.replace(rscript, "")) | ||
4836 | |||
4837 | // Locate the specified elements | ||
4838 | .find(selector) : | ||
4839 | |||
4840 | // If not, just inject the full result | ||
4841 | res.responseText ); | ||
4842 | } | ||
4843 | |||
4844 | if ( callback ) { | ||
4845 | self.each( callback, [res.responseText, status, res] ); | ||
4846 | } | ||
4847 | } | ||
4848 | }); | ||
4849 | |||
4850 | return this; | ||
4851 | }, | ||
4852 | |||
4853 | serialize: function() { | ||
4854 | return jQuery.param(this.serializeArray()); | ||
4855 | }, | ||
4856 | serializeArray: function() { | ||
4857 | return this.map(function() { | ||
4858 | return this.elements ? jQuery.makeArray(this.elements) : this; | ||
4859 | }) | ||
4860 | .filter(function() { | ||
4861 | return this.name && !this.disabled && | ||
4862 | (this.checked || rselectTextarea.test(this.nodeName) || | ||
4863 | rinput.test(this.type)); | ||
4864 | }) | ||
4865 | .map(function( i, elem ) { | ||
4866 | var val = jQuery(this).val(); | ||
4867 | |||
4868 | return val == null ? | ||
4869 | null : | ||
4870 | jQuery.isArray(val) ? | ||
4871 | jQuery.map( val, function( val, i ) { | ||
4872 | return { name: elem.name, value: val }; | ||
4873 | }) : | ||
4874 | { name: elem.name, value: val }; | ||
4875 | }).get(); | ||
4876 | } | ||
4877 | }); | ||
4878 | |||
4879 | // Attach a bunch of functions for handling common AJAX events | ||
4880 | jQuery.each( "ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "), function( i, o ) { | ||
4881 | jQuery.fn[o] = function( f ) { | ||
4882 | return this.bind(o, f); | ||
4883 | }; | ||
4884 | }); | ||
4885 | |||
4886 | jQuery.extend({ | ||
4887 | |||
4888 | get: function( url, data, callback, type ) { | ||
4889 | // shift arguments if data argument was omited | ||
4890 | if ( jQuery.isFunction( data ) ) { | ||
4891 | type = type || callback; | ||
4892 | callback = data; | ||
4893 | data = null; | ||
4894 | } | ||
4895 | |||
4896 | return jQuery.ajax({ | ||
4897 | type: "GET", | ||
4898 | url: url, | ||
4899 | data: data, | ||
4900 | success: callback, | ||
4901 | dataType: type | ||
4902 | }); | ||
4903 | }, | ||
4904 | |||
4905 | getScript: function( url, callback ) { | ||
4906 | return jQuery.get(url, null, callback, "script"); | ||
4907 | }, | ||
4908 | |||
4909 | getJSON: function( url, data, callback ) { | ||
4910 | return jQuery.get(url, data, callback, "json"); | ||
4911 | }, | ||
4912 | |||
4913 | post: function( url, data, callback, type ) { | ||
4914 | // shift arguments if data argument was omited | ||
4915 | if ( jQuery.isFunction( data ) ) { | ||
4916 | type = type || callback; | ||
4917 | callback = data; | ||
4918 | data = {}; | ||
4919 | } | ||
4920 | |||
4921 | return jQuery.ajax({ | ||
4922 | type: "POST", | ||
4923 | url: url, | ||
4924 | data: data, | ||
4925 | success: callback, | ||
4926 | dataType: type | ||
4927 | }); | ||
4928 | }, | ||
4929 | |||
4930 | ajaxSetup: function( settings ) { | ||
4931 | jQuery.extend( jQuery.ajaxSettings, settings ); | ||
4932 | }, | ||
4933 | |||
4934 | ajaxSettings: { | ||
4935 | url: location.href, | ||
4936 | global: true, | ||
4937 | type: "GET", | ||
4938 | contentType: "application/x-www-form-urlencoded", | ||
4939 | processData: true, | ||
4940 | async: true, | ||
4941 | /* | ||
4942 | timeout: 0, | ||
4943 | data: null, | ||
4944 | username: null, | ||
4945 | password: null, | ||
4946 | traditional: false, | ||
4947 | */ | ||
4948 | // Create the request object; Microsoft failed to properly | ||
4949 | // implement the XMLHttpRequest in IE7 (can't request local files), | ||
4950 | // so we use the ActiveXObject when it is available | ||
4951 | // This function can be overriden by calling jQuery.ajaxSetup | ||
4952 | xhr: window.XMLHttpRequest && (window.location.protocol !== "file:" || !window.ActiveXObject) ? | ||
4953 | function() { | ||
4954 | return new window.XMLHttpRequest(); | ||
4955 | } : | ||
4956 | function() { | ||
4957 | try { | ||
4958 | return new window.ActiveXObject("Microsoft.XMLHTTP"); | ||
4959 | } catch(e) {} | ||
4960 | }, | ||
4961 | accepts: { | ||
4962 | xml: "application/xml, text/xml", | ||
4963 | html: "text/html", | ||
4964 | script: "text/javascript, application/javascript", | ||
4965 | json: "application/json, text/javascript", | ||
4966 | text: "text/plain", | ||
4967 | _default: "*/*" | ||
4968 | } | ||
4969 | }, | ||
4970 | |||
4971 | // Last-Modified header cache for next request | ||
4972 | lastModified: {}, | ||
4973 | etag: {}, | ||
4974 | |||
4975 | ajax: function( origSettings ) { | ||
4976 | var s = jQuery.extend(true, {}, jQuery.ajaxSettings, origSettings); | ||
4977 | |||
4978 | var jsonp, status, data, | ||
4979 | callbackContext = origSettings && origSettings.context || s, | ||
4980 | type = s.type.toUpperCase(); | ||
4981 | |||
4982 | // convert data if not already a string | ||
4983 | if ( s.data && s.processData && typeof s.data !== "string" ) { | ||
4984 | s.data = jQuery.param( s.data, s.traditional ); | ||
4985 | } | ||
4986 | |||
4987 | // Handle JSONP Parameter Callbacks | ||
4988 | if ( s.dataType === "jsonp" ) { | ||
4989 | if ( type === "GET" ) { | ||
4990 | if ( !jsre.test( s.url ) ) { | ||
4991 | s.url += (rquery.test( s.url ) ? "&" : "?") + (s.jsonp || "callback") + "=?"; | ||
4992 | } | ||
4993 | } else if ( !s.data || !jsre.test(s.data) ) { | ||
4994 | s.data = (s.data ? s.data + "&" : "") + (s.jsonp || "callback") + "=?"; | ||
4995 | } | ||
4996 | s.dataType = "json"; | ||
4997 | } | ||
4998 | |||
4999 | // Build temporary JSONP function | ||
5000 | if ( s.dataType === "json" && (s.data && jsre.test(s.data) || jsre.test(s.url)) ) { | ||
5001 | jsonp = s.jsonpCallback || ("jsonp" + jsc++); | ||
5002 | |||
5003 | // Replace the =? sequence both in the query string and the data | ||
5004 | if ( s.data ) { | ||
5005 | s.data = (s.data + "").replace(jsre, "=" + jsonp + "$1"); | ||
5006 | } | ||
5007 | |||
5008 | s.url = s.url.replace(jsre, "=" + jsonp + "$1"); | ||
5009 | |||
5010 | // We need to make sure | ||
5011 | // that a JSONP style response is executed properly | ||
5012 | s.dataType = "script"; | ||
5013 | |||
5014 | // Handle JSONP-style loading | ||
5015 | window[ jsonp ] = window[ jsonp ] || function( tmp ) { | ||
5016 | data = tmp; | ||
5017 | success(); | ||
5018 | complete(); | ||
5019 | // Garbage collect | ||
5020 | window[ jsonp ] = undefined; | ||
5021 | |||
5022 | try { | ||
5023 | delete window[ jsonp ]; | ||
5024 | } catch(e) {} | ||
5025 | |||
5026 | if ( head ) { | ||
5027 | head.removeChild( script ); | ||
5028 | } | ||
5029 | }; | ||
5030 | } | ||
5031 | |||
5032 | if ( s.dataType === "script" && s.cache === null ) { | ||
5033 | s.cache = false; | ||
5034 | } | ||
5035 | |||
5036 | if ( s.cache === false && type === "GET" ) { | ||
5037 | var ts = now(); | ||
5038 | |||
5039 | // try replacing _= if it is there | ||
5040 | var ret = s.url.replace(rts, "$1_=" + ts + "$2"); | ||
5041 | |||
5042 | // if nothing was replaced, add timestamp to the end | ||
5043 | s.url = ret + ((ret === s.url) ? (rquery.test(s.url) ? "&" : "?") + "_=" + ts : ""); | ||
5044 | } | ||
5045 | |||
5046 | // If data is available, append data to url for get requests | ||
5047 | if ( s.data && type === "GET" ) { | ||
5048 | s.url += (rquery.test(s.url) ? "&" : "?") + s.data; | ||
5049 | } | ||
5050 | |||
5051 | // Watch for a new set of requests | ||
5052 | if ( s.global && ! jQuery.active++ ) { | ||
5053 | jQuery.event.trigger( "ajaxStart" ); | ||
5054 | } | ||
5055 | |||
5056 | // Matches an absolute URL, and saves the domain | ||
5057 | var parts = rurl.exec( s.url ), | ||
5058 | remote = parts && (parts[1] && parts[1] !== location.protocol || parts[2] !== location.host); | ||
5059 | |||
5060 | // If we're requesting a remote document | ||
5061 | // and trying to load JSON or Script with a GET | ||
5062 | if ( s.dataType === "script" && type === "GET" && remote ) { | ||
5063 | var head = document.getElementsByTagName("head")[0] || document.documentElement; | ||
5064 | var script = document.createElement("script"); | ||
5065 | script.src = s.url; | ||
5066 | if ( s.scriptCharset ) { | ||
5067 | script.charset = s.scriptCharset; | ||
5068 | } | ||
5069 | |||
5070 | // Handle Script loading | ||
5071 | if ( !jsonp ) { | ||
5072 | var done = false; | ||
5073 | |||
5074 | // Attach handlers for all browsers | ||
5075 | script.onload = script.onreadystatechange = function() { | ||
5076 | if ( !done && (!this.readyState || | ||
5077 | this.readyState === "loaded" || this.readyState === "complete") ) { | ||
5078 | done = true; | ||
5079 | success(); | ||
5080 | complete(); | ||
5081 | |||
5082 | // Handle memory leak in IE | ||
5083 | script.onload = script.onreadystatechange = null; | ||
5084 | if ( head && script.parentNode ) { | ||
5085 | head.removeChild( script ); | ||
5086 | } | ||
5087 | } | ||
5088 | }; | ||
5089 | } | ||
5090 | |||
5091 | // Use insertBefore instead of appendChild to circumvent an IE6 bug. | ||
5092 | // This arises when a base node is used (#2709 and #4378). | ||
5093 | head.insertBefore( script, head.firstChild ); | ||
5094 | |||
5095 | // We handle everything using the script element injection | ||
5096 | return undefined; | ||
5097 | } | ||
5098 | |||
5099 | var requestDone = false; | ||
5100 | |||
5101 | // Create the request object | ||
5102 | var xhr = s.xhr(); | ||
5103 | |||
5104 | if ( !xhr ) { | ||
5105 | return; | ||
5106 | } | ||
5107 | |||
5108 | // Open the socket | ||
5109 | // Passing null username, generates a login popup on Opera (#2865) | ||
5110 | if ( s.username ) { | ||
5111 | xhr.open(type, s.url, s.async, s.username, s.password); | ||
5112 | } else { | ||
5113 | xhr.open(type, s.url, s.async); | ||
5114 | } | ||
5115 | |||
5116 | // Need an extra try/catch for cross domain requests in Firefox 3 | ||
5117 | try { | ||
5118 | // Set the correct header, if data is being sent | ||
5119 | if ( s.data || origSettings && origSettings.contentType ) { | ||
5120 | xhr.setRequestHeader("Content-Type", s.contentType); | ||
5121 | } | ||
5122 | |||
5123 | // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. | ||
5124 | if ( s.ifModified ) { | ||
5125 | if ( jQuery.lastModified[s.url] ) { | ||
5126 | xhr.setRequestHeader("If-Modified-Since", jQuery.lastModified[s.url]); | ||
5127 | } | ||
5128 | |||
5129 | if ( jQuery.etag[s.url] ) { | ||
5130 | xhr.setRequestHeader("If-None-Match", jQuery.etag[s.url]); | ||
5131 | } | ||
5132 | } | ||
5133 | |||
5134 | // Set header so the called script knows that it's an XMLHttpRequest | ||
5135 | // Only send the header if it's not a remote XHR | ||
5136 | if ( !remote ) { | ||
5137 | xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest"); | ||
5138 | } | ||
5139 | |||
5140 | // Set the Accepts header for the server, depending on the dataType | ||
5141 | xhr.setRequestHeader("Accept", s.dataType && s.accepts[ s.dataType ] ? | ||
5142 | s.accepts[ s.dataType ] + ", */*" : | ||
5143 | s.accepts._default ); | ||
5144 | } catch(e) {} | ||
5145 | |||
5146 | // Allow custom headers/mimetypes and early abort | ||
5147 | if ( s.beforeSend && s.beforeSend.call(callbackContext, xhr, s) === false ) { | ||
5148 | // Handle the global AJAX counter | ||
5149 | if ( s.global && ! --jQuery.active ) { | ||
5150 | jQuery.event.trigger( "ajaxStop" ); | ||
5151 | } | ||
5152 | |||
5153 | // close opended socket | ||
5154 | xhr.abort(); | ||
5155 | return false; | ||
5156 | } | ||
5157 | |||
5158 | if ( s.global ) { | ||
5159 | trigger("ajaxSend", [xhr, s]); | ||
5160 | } | ||
5161 | |||
5162 | // Wait for a response to come back | ||
5163 | var onreadystatechange = xhr.onreadystatechange = function( isTimeout ) { | ||
5164 | // The request was aborted | ||
5165 | if ( !xhr || xhr.readyState === 0 || isTimeout === "abort" ) { | ||
5166 | // Opera doesn't call onreadystatechange before this point | ||
5167 | // so we simulate the call | ||
5168 | if ( !requestDone ) { | ||
5169 | complete(); | ||
5170 | } | ||
5171 | |||
5172 | requestDone = true; | ||
5173 | if ( xhr ) { | ||
5174 | xhr.onreadystatechange = jQuery.noop; | ||
5175 | } | ||
5176 | |||
5177 | // The transfer is complete and the data is available, or the request timed out | ||
5178 | } else if ( !requestDone && xhr && (xhr.readyState === 4 || isTimeout === "timeout") ) { | ||
5179 | requestDone = true; | ||
5180 | xhr.onreadystatechange = jQuery.noop; | ||
5181 | |||
5182 | status = isTimeout === "timeout" ? | ||
5183 | "timeout" : | ||
5184 | !jQuery.httpSuccess( xhr ) ? | ||
5185 | "error" : | ||
5186 | s.ifModified && jQuery.httpNotModified( xhr, s.url ) ? | ||
5187 | "notmodified" : | ||
5188 | "success"; | ||
5189 | |||
5190 | var errMsg; | ||
5191 | |||
5192 | if ( status === "success" ) { | ||
5193 | // Watch for, and catch, XML document parse errors | ||
5194 | try { | ||
5195 | // process the data (runs the xml through httpData regardless of callback) | ||
5196 | data = jQuery.httpData( xhr, s.dataType, s ); | ||
5197 | } catch(err) { | ||
5198 | status = "parsererror"; | ||
5199 | errMsg = err; | ||
5200 | } | ||
5201 | } | ||
5202 | |||
5203 | // Make sure that the request was successful or notmodified | ||
5204 | if ( status === "success" || status === "notmodified" ) { | ||
5205 | // JSONP handles its own success callback | ||
5206 | if ( !jsonp ) { | ||
5207 | success(); | ||
5208 | } | ||
5209 | } else { | ||
5210 | jQuery.handleError(s, xhr, status, errMsg); | ||
5211 | } | ||
5212 | |||
5213 | // Fire the complete handlers | ||
5214 | complete(); | ||
5215 | |||
5216 | if ( isTimeout === "timeout" ) { | ||
5217 | xhr.abort(); | ||
5218 | } | ||
5219 | |||
5220 | // Stop memory leaks | ||
5221 | if ( s.async ) { | ||
5222 | xhr = null; | ||
5223 | } | ||
5224 | } | ||
5225 | }; | ||
5226 | |||
5227 | // Override the abort handler, if we can (IE doesn't allow it, but that's OK) | ||
5228 | // Opera doesn't fire onreadystatechange at all on abort | ||
5229 | try { | ||
5230 | var oldAbort = xhr.abort; | ||
5231 | xhr.abort = function() { | ||
5232 | if ( xhr ) { | ||
5233 | oldAbort.call( xhr ); | ||
5234 | } | ||
5235 | |||
5236 | onreadystatechange( "abort" ); | ||
5237 | }; | ||
5238 | } catch(e) { } | ||
5239 | |||
5240 | // Timeout checker | ||
5241 | if ( s.async && s.timeout > 0 ) { | ||
5242 | setTimeout(function() { | ||
5243 | // Check to see if the request is still happening | ||
5244 | if ( xhr && !requestDone ) { | ||
5245 | onreadystatechange( "timeout" ); | ||
5246 | } | ||
5247 | }, s.timeout); | ||
5248 | } | ||
5249 | |||
5250 | // Send the data | ||
5251 | try { | ||
5252 | xhr.send( type === "POST" || type === "PUT" || type === "DELETE" ? s.data : null ); | ||
5253 | } catch(e) { | ||
5254 | jQuery.handleError(s, xhr, null, e); | ||
5255 | // Fire the complete handlers | ||
5256 | complete(); | ||
5257 | } | ||
5258 | |||
5259 | // firefox 1.5 doesn't fire statechange for sync requests | ||
5260 | if ( !s.async ) { | ||
5261 | onreadystatechange(); | ||
5262 | } | ||
5263 | |||
5264 | function success() { | ||
5265 | // If a local callback was specified, fire it and pass it the data | ||
5266 | if ( s.success ) { | ||
5267 | s.success.call( callbackContext, data, status, xhr ); | ||
5268 | } | ||
5269 | |||
5270 | // Fire the global callback | ||
5271 | if ( s.global ) { | ||
5272 | trigger( "ajaxSuccess", [xhr, s] ); | ||
5273 | } | ||
5274 | } | ||
5275 | |||
5276 | function complete() { | ||
5277 | // Process result | ||
5278 | if ( s.complete ) { | ||
5279 | s.complete.call( callbackContext, xhr, status); | ||
5280 | } | ||
5281 | |||
5282 | // The request was completed | ||
5283 | if ( s.global ) { | ||
5284 | trigger( "ajaxComplete", [xhr, s] ); | ||
5285 | } | ||
5286 | |||
5287 | // Handle the global AJAX counter | ||
5288 | if ( s.global && ! --jQuery.active ) { | ||
5289 | jQuery.event.trigger( "ajaxStop" ); | ||
5290 | } | ||
5291 | } | ||
5292 | |||
5293 | function trigger(type, args) { | ||
5294 | (s.context ? jQuery(s.context) : jQuery.event).trigger(type, args); | ||
5295 | } | ||
5296 | |||
5297 | // return XMLHttpRequest to allow aborting the request etc. | ||
5298 | return xhr; | ||
5299 | }, | ||
5300 | |||
5301 | handleError: function( s, xhr, status, e ) { | ||
5302 | // If a local callback was specified, fire it | ||
5303 | if ( s.error ) { | ||
5304 | s.error.call( s.context || s, xhr, status, e ); | ||
5305 | } | ||
5306 | |||
5307 | // Fire the global callback | ||
5308 | if ( s.global ) { | ||
5309 | (s.context ? jQuery(s.context) : jQuery.event).trigger( "ajaxError", [xhr, s, e] ); | ||
5310 | } | ||
5311 | }, | ||
5312 | |||
5313 | // Counter for holding the number of active queries | ||
5314 | active: 0, | ||
5315 | |||
5316 | // Determines if an XMLHttpRequest was successful or not | ||
5317 | httpSuccess: function( xhr ) { | ||
5318 | try { | ||
5319 | // IE error sometimes returns 1223 when it should be 204 so treat it as success, see #1450 | ||
5320 | return !xhr.status && location.protocol === "file:" || | ||
5321 | // Opera returns 0 when status is 304 | ||
5322 | ( xhr.status >= 200 && xhr.status < 300 ) || | ||
5323 | xhr.status === 304 || xhr.status === 1223 || xhr.status === 0; | ||
5324 | } catch(e) {} | ||
5325 | |||
5326 | return false; | ||
5327 | }, | ||
5328 | |||
5329 | // Determines if an XMLHttpRequest returns NotModified | ||
5330 | httpNotModified: function( xhr, url ) { | ||
5331 | var lastModified = xhr.getResponseHeader("Last-Modified"), | ||
5332 | etag = xhr.getResponseHeader("Etag"); | ||
5333 | |||
5334 | if ( lastModified ) { | ||
5335 | jQuery.lastModified[url] = lastModified; | ||
5336 | } | ||
5337 | |||
5338 | if ( etag ) { | ||
5339 | jQuery.etag[url] = etag; | ||
5340 | } | ||
5341 | |||
5342 | // Opera returns 0 when status is 304 | ||
5343 | return xhr.status === 304 || xhr.status === 0; | ||
5344 | }, | ||
5345 | |||
5346 | httpData: function( xhr, type, s ) { | ||
5347 | var ct = xhr.getResponseHeader("content-type") || "", | ||
5348 | xml = type === "xml" || !type && ct.indexOf("xml") >= 0, | ||
5349 | data = xml ? xhr.responseXML : xhr.responseText; | ||
5350 | |||
5351 | if ( xml && data.documentElement.nodeName === "parsererror" ) { | ||
5352 | jQuery.error( "parsererror" ); | ||
5353 | } | ||
5354 | |||
5355 | // Allow a pre-filtering function to sanitize the response | ||
5356 | // s is checked to keep backwards compatibility | ||
5357 | if ( s && s.dataFilter ) { | ||
5358 | data = s.dataFilter( data, type ); | ||
5359 | } | ||
5360 | |||
5361 | // The filter can actually parse the response | ||
5362 | if ( typeof data === "string" ) { | ||
5363 | // Get the JavaScript object, if JSON is used. | ||
5364 | if ( type === "json" || !type && ct.indexOf("json") >= 0 ) { | ||
5365 | data = jQuery.parseJSON( data ); | ||
5366 | |||
5367 | // If the type is "script", eval it in global context | ||
5368 | } else if ( type === "script" || !type && ct.indexOf("javascript") >= 0 ) { | ||
5369 | jQuery.globalEval( data ); | ||
5370 | } | ||
5371 | } | ||
5372 | |||
5373 | return data; | ||
5374 | }, | ||
5375 | |||
5376 | // Serialize an array of form elements or a set of | ||
5377 | // key/values into a query string | ||
5378 | param: function( a, traditional ) { | ||
5379 | var s = []; | ||
5380 | |||
5381 | // Set traditional to true for jQuery <= 1.3.2 behavior. | ||
5382 | if ( traditional === undefined ) { | ||
5383 | traditional = jQuery.ajaxSettings.traditional; | ||
5384 | } | ||
5385 | |||
5386 | // If an array was passed in, assume that it is an array of form elements. | ||
5387 | if ( jQuery.isArray(a) || a.jquery ) { | ||
5388 | // Serialize the form elements | ||
5389 | jQuery.each( a, function() { | ||
5390 | add( this.name, this.value ); | ||
5391 | }); | ||
5392 | |||
5393 | } else { | ||
5394 | // If traditional, encode the "old" way (the way 1.3.2 or older | ||
5395 | // did it), otherwise encode params recursively. | ||
5396 | for ( var prefix in a ) { | ||
5397 | buildParams( prefix, a[prefix] ); | ||
5398 | } | ||
5399 | } | ||
5400 | |||
5401 | // Return the resulting serialization | ||
5402 | return s.join("&").replace(r20, "+"); | ||
5403 | |||
5404 | function buildParams( prefix, obj ) { | ||
5405 | if ( jQuery.isArray(obj) ) { | ||
5406 | // Serialize array item. | ||
5407 | jQuery.each( obj, function( i, v ) { | ||
5408 | if ( traditional || /\[\]$/.test( prefix ) ) { | ||
5409 | // Treat each array item as a scalar. | ||
5410 | add( prefix, v ); | ||
5411 | } else { | ||
5412 | // If array item is non-scalar (array or object), encode its | ||
5413 | // numeric index to resolve deserialization ambiguity issues. | ||
5414 | // Note that rack (as of 1.0.0) can't currently deserialize | ||
5415 | // nested arrays properly, and attempting to do so may cause | ||
5416 | // a server error. Possible fixes are to modify rack's | ||
5417 | // deserialization algorithm or to provide an option or flag | ||
5418 | // to force array serialization to be shallow. | ||
5419 | buildParams( prefix + "[" + ( typeof v === "object" || jQuery.isArray(v) ? i : "" ) + "]", v ); | ||
5420 | } | ||
5421 | }); | ||
5422 | |||
5423 | } else if ( !traditional && obj != null && typeof obj === "object" ) { | ||
5424 | // Serialize object item. | ||
5425 | jQuery.each( obj, function( k, v ) { | ||
5426 | buildParams( prefix + "[" + k + "]", v ); | ||
5427 | }); | ||
5428 | |||
5429 | } else { | ||
5430 | // Serialize scalar item. | ||
5431 | add( prefix, obj ); | ||
5432 | } | ||
5433 | } | ||
5434 | |||
5435 | function add( key, value ) { | ||
5436 | // If value is a function, invoke it and return its value | ||
5437 | value = jQuery.isFunction(value) ? value() : value; | ||
5438 | s[ s.length ] = encodeURIComponent(key) + "=" + encodeURIComponent(value); | ||
5439 | } | ||
5440 | } | ||
5441 | }); | ||
5442 | var elemdisplay = {}, | ||
5443 | rfxtypes = /toggle|show|hide/, | ||
5444 | rfxnum = /^([+-]=)?([\d+-.]+)(.*)$/, | ||
5445 | timerId, | ||
5446 | fxAttrs = [ | ||
5447 | // height animations | ||
5448 | [ "height", "marginTop", "marginBottom", "paddingTop", "paddingBottom" ], | ||
5449 | // width animations | ||
5450 | [ "width", "marginLeft", "marginRight", "paddingLeft", "paddingRight" ], | ||
5451 | // opacity animations | ||
5452 | [ "opacity" ] | ||
5453 | ]; | ||
5454 | |||
5455 | jQuery.fn.extend({ | ||
5456 | show: function( speed, callback ) { | ||
5457 | if ( speed || speed === 0) { | ||
5458 | return this.animate( genFx("show", 3), speed, callback); | ||
5459 | |||
5460 | } else { | ||
5461 | for ( var i = 0, l = this.length; i < l; i++ ) { | ||
5462 | var old = jQuery.data(this[i], "olddisplay"); | ||
5463 | |||
5464 | this[i].style.display = old || ""; | ||
5465 | |||
5466 | if ( jQuery.css(this[i], "display") === "none" ) { | ||
5467 | var nodeName = this[i].nodeName, display; | ||
5468 | |||
5469 | if ( elemdisplay[ nodeName ] ) { | ||
5470 | display = elemdisplay[ nodeName ]; | ||
5471 | |||
5472 | } else { | ||
5473 | var elem = jQuery("<" + nodeName + " />").appendTo("body"); | ||
5474 | |||
5475 | display = elem.css("display"); | ||
5476 | |||
5477 | if ( display === "none" ) { | ||
5478 | display = "block"; | ||
5479 | } | ||
5480 | |||
5481 | elem.remove(); | ||
5482 | |||
5483 | elemdisplay[ nodeName ] = display; | ||
5484 | } | ||
5485 | |||
5486 | jQuery.data(this[i], "olddisplay", display); | ||
5487 | } | ||
5488 | } | ||
5489 | |||
5490 | // Set the display of the elements in a second loop | ||
5491 | // to avoid the constant reflow | ||
5492 | for ( var j = 0, k = this.length; j < k; j++ ) { | ||
5493 | this[j].style.display = jQuery.data(this[j], "olddisplay") || ""; | ||
5494 | } | ||
5495 | |||
5496 | return this; | ||
5497 | } | ||
5498 | }, | ||
5499 | |||
5500 | hide: function( speed, callback ) { | ||
5501 | if ( speed || speed === 0 ) { | ||
5502 | return this.animate( genFx("hide", 3), speed, callback); | ||
5503 | |||
5504 | } else { | ||
5505 | for ( var i = 0, l = this.length; i < l; i++ ) { | ||
5506 | var old = jQuery.data(this[i], "olddisplay"); | ||
5507 | if ( !old && old !== "none" ) { | ||
5508 | jQuery.data(this[i], "olddisplay", jQuery.css(this[i], "display")); | ||
5509 | } | ||
5510 | } | ||
5511 | |||
5512 | // Set the display of the elements in a second loop | ||
5513 | // to avoid the constant reflow | ||
5514 | for ( var j = 0, k = this.length; j < k; j++ ) { | ||
5515 | this[j].style.display = "none"; | ||
5516 | } | ||
5517 | |||
5518 | return this; | ||
5519 | } | ||
5520 | }, | ||
5521 | |||
5522 | // Save the old toggle function | ||
5523 | _toggle: jQuery.fn.toggle, | ||
5524 | |||
5525 | toggle: function( fn, fn2 ) { | ||
5526 | var bool = typeof fn === "boolean"; | ||
5527 | |||
5528 | if ( jQuery.isFunction(fn) && jQuery.isFunction(fn2) ) { | ||
5529 | this._toggle.apply( this, arguments ); | ||
5530 | |||
5531 | } else if ( fn == null || bool ) { | ||
5532 | this.each(function() { | ||
5533 | var state = bool ? fn : jQuery(this).is(":hidden"); | ||
5534 | jQuery(this)[ state ? "show" : "hide" ](); | ||
5535 | }); | ||
5536 | |||
5537 | } else { | ||
5538 | this.animate(genFx("toggle", 3), fn, fn2); | ||
5539 | } | ||
5540 | |||
5541 | return this; | ||
5542 | }, | ||
5543 | |||
5544 | fadeTo: function( speed, to, callback ) { | ||
5545 | return this.filter(":hidden").css("opacity", 0).show().end() | ||
5546 | .animate({opacity: to}, speed, callback); | ||
5547 | }, | ||
5548 | |||
5549 | animate: function( prop, speed, easing, callback ) { | ||
5550 | var optall = jQuery.speed(speed, easing, callback); | ||
5551 | |||
5552 | if ( jQuery.isEmptyObject( prop ) ) { | ||
5553 | return this.each( optall.complete ); | ||
5554 | } | ||
5555 | |||
5556 | return this[ optall.queue === false ? "each" : "queue" ](function() { | ||
5557 | var opt = jQuery.extend({}, optall), p, | ||
5558 | hidden = this.nodeType === 1 && jQuery(this).is(":hidden"), | ||
5559 | self = this; | ||
5560 | |||
5561 | for ( p in prop ) { | ||
5562 | var name = p.replace(rdashAlpha, fcamelCase); | ||
5563 | |||
5564 | if ( p !== name ) { | ||
5565 | prop[ name ] = prop[ p ]; | ||
5566 | delete prop[ p ]; | ||
5567 | p = name; | ||
5568 | } | ||
5569 | |||
5570 | if ( prop[p] === "hide" && hidden || prop[p] === "show" && !hidden ) { | ||
5571 | return opt.complete.call(this); | ||
5572 | } | ||
5573 | |||
5574 | if ( ( p === "height" || p === "width" ) && this.style ) { | ||
5575 | // Store display property | ||
5576 | opt.display = jQuery.css(this, "display"); | ||
5577 | |||
5578 | // Make sure that nothing sneaks out | ||
5579 | opt.overflow = this.style.overflow; | ||
5580 | } | ||
5581 | |||
5582 | if ( jQuery.isArray( prop[p] ) ) { | ||
5583 | // Create (if needed) and add to specialEasing | ||
5584 | (opt.specialEasing = opt.specialEasing || {})[p] = prop[p][1]; | ||
5585 | prop[p] = prop[p][0]; | ||
5586 | } | ||
5587 | } | ||
5588 | |||
5589 | if ( opt.overflow != null ) { | ||
5590 | this.style.overflow = "hidden"; | ||
5591 | } | ||
5592 | |||
5593 | opt.curAnim = jQuery.extend({}, prop); | ||
5594 | |||
5595 | jQuery.each( prop, function( name, val ) { | ||
5596 | var e = new jQuery.fx( self, opt, name ); | ||
5597 | |||
5598 | if ( rfxtypes.test(val) ) { | ||
5599 | e[ val === "toggle" ? hidden ? "show" : "hide" : val ]( prop ); | ||
5600 | |||
5601 | } else { | ||
5602 | var parts = rfxnum.exec(val), | ||
5603 | start = e.cur(true) || 0; | ||
5604 | |||
5605 | if ( parts ) { | ||
5606 | var end = parseFloat( parts[2] ), | ||
5607 | unit = parts[3] || "px"; | ||
5608 | |||
5609 | // We need to compute starting value | ||
5610 | if ( unit !== "px" ) { | ||
5611 | self.style[ name ] = (end || 1) + unit; | ||
5612 | start = ((end || 1) / e.cur(true)) * start; | ||
5613 | self.style[ name ] = start + unit; | ||
5614 | } | ||
5615 | |||
5616 | // If a +=/-= token was provided, we're doing a relative animation | ||
5617 | if ( parts[1] ) { | ||
5618 | end = ((parts[1] === "-=" ? -1 : 1) * end) + start; | ||
5619 | } | ||
5620 | |||
5621 | e.custom( start, end, unit ); | ||
5622 | |||
5623 | } else { | ||
5624 | e.custom( start, val, "" ); | ||
5625 | } | ||
5626 | } | ||
5627 | }); | ||
5628 | |||
5629 | // For JS strict compliance | ||
5630 | return true; | ||
5631 | }); | ||
5632 | }, | ||
5633 | |||
5634 | stop: function( clearQueue, gotoEnd ) { | ||
5635 | var timers = jQuery.timers; | ||
5636 | |||
5637 | if ( clearQueue ) { | ||
5638 | this.queue([]); | ||
5639 | } | ||
5640 | |||
5641 | this.each(function() { | ||
5642 | // go in reverse order so anything added to the queue during the loop is ignored | ||
5643 | for ( var i = timers.length - 1; i >= 0; i-- ) { | ||
5644 | if ( timers[i].elem === this ) { | ||
5645 | if (gotoEnd) { | ||
5646 | // force the next step to be the last | ||
5647 | timers[i](true); | ||
5648 | } | ||
5649 | |||
5650 | timers.splice(i, 1); | ||
5651 | } | ||
5652 | } | ||
5653 | }); | ||
5654 | |||
5655 | // start the next in the queue if the last step wasn't forced | ||
5656 | if ( !gotoEnd ) { | ||
5657 | this.dequeue(); | ||
5658 | } | ||
5659 | |||
5660 | return this; | ||
5661 | } | ||
5662 | |||
5663 | }); | ||
5664 | |||
5665 | // Generate shortcuts for custom animations | ||
5666 | jQuery.each({ | ||
5667 | slideDown: genFx("show", 1), | ||
5668 | slideUp: genFx("hide", 1), | ||
5669 | slideToggle: genFx("toggle", 1), | ||
5670 | fadeIn: { opacity: "show" }, | ||
5671 | fadeOut: { opacity: "hide" } | ||
5672 | }, function( name, props ) { | ||
5673 | jQuery.fn[ name ] = function( speed, callback ) { | ||
5674 | return this.animate( props, speed, callback ); | ||
5675 | }; | ||
5676 | }); | ||
5677 | |||
5678 | jQuery.extend({ | ||
5679 | speed: function( speed, easing, fn ) { | ||
5680 | var opt = speed && typeof speed === "object" ? speed : { | ||
5681 | complete: fn || !fn && easing || | ||
5682 | jQuery.isFunction( speed ) && speed, | ||
5683 | duration: speed, | ||
5684 | easing: fn && easing || easing && !jQuery.isFunction(easing) && easing | ||
5685 | }; | ||
5686 | |||
5687 | opt.duration = jQuery.fx.off ? 0 : typeof opt.duration === "number" ? opt.duration : | ||
5688 | jQuery.fx.speeds[opt.duration] || jQuery.fx.speeds._default; | ||
5689 | |||
5690 | // Queueing | ||
5691 | opt.old = opt.complete; | ||
5692 | opt.complete = function() { | ||
5693 | if ( opt.queue !== false ) { | ||
5694 | jQuery(this).dequeue(); | ||
5695 | } | ||
5696 | if ( jQuery.isFunction( opt.old ) ) { | ||
5697 | opt.old.call( this ); | ||
5698 | } | ||
5699 | }; | ||
5700 | |||
5701 | return opt; | ||
5702 | }, | ||
5703 | |||
5704 | easing: { | ||
5705 | linear: function( p, n, firstNum, diff ) { | ||
5706 | return firstNum + diff * p; | ||
5707 | }, | ||
5708 | swing: function( p, n, firstNum, diff ) { | ||
5709 | return ((-Math.cos(p*Math.PI)/2) + 0.5) * diff + firstNum; | ||
5710 | } | ||
5711 | }, | ||
5712 | |||
5713 | timers: [], | ||
5714 | |||
5715 | fx: function( elem, options, prop ) { | ||
5716 | this.options = options; | ||
5717 | this.elem = elem; | ||
5718 | this.prop = prop; | ||
5719 | |||
5720 | if ( !options.orig ) { | ||
5721 | options.orig = {}; | ||
5722 | } | ||
5723 | } | ||
5724 | |||
5725 | }); | ||
5726 | |||
5727 | jQuery.fx.prototype = { | ||
5728 | // Simple function for setting a style value | ||
5729 | update: function() { | ||
5730 | if ( this.options.step ) { | ||
5731 | this.options.step.call( this.elem, this.now, this ); | ||
5732 | } | ||
5733 | |||
5734 | (jQuery.fx.step[this.prop] || jQuery.fx.step._default)( this ); | ||
5735 | |||
5736 | // Set display property to block for height/width animations | ||
5737 | if ( ( this.prop === "height" || this.prop === "width" ) && this.elem.style ) { | ||
5738 | this.elem.style.display = "block"; | ||
5739 | } | ||
5740 | }, | ||
5741 | |||
5742 | // Get the current size | ||
5743 | cur: function( force ) { | ||
5744 | if ( this.elem[this.prop] != null && (!this.elem.style || this.elem.style[this.prop] == null) ) { | ||
5745 | return this.elem[ this.prop ]; | ||
5746 | } | ||
5747 | |||
5748 | var r = parseFloat(jQuery.css(this.elem, this.prop, force)); | ||
5749 | return r && r > -10000 ? r : parseFloat(jQuery.curCSS(this.elem, this.prop)) || 0; | ||
5750 | }, | ||
5751 | |||
5752 | // Start an animation from one number to another | ||
5753 | custom: function( from, to, unit ) { | ||
5754 | this.startTime = now(); | ||
5755 | this.start = from; | ||
5756 | this.end = to; | ||
5757 | this.unit = unit || this.unit || "px"; | ||
5758 | this.now = this.start; | ||
5759 | this.pos = this.state = 0; | ||
5760 | |||
5761 | var self = this; | ||
5762 | function t( gotoEnd ) { | ||
5763 | return self.step(gotoEnd); | ||
5764 | } | ||
5765 | |||
5766 | t.elem = this.elem; | ||
5767 | |||
5768 | if ( t() && jQuery.timers.push(t) && !timerId ) { | ||
5769 | timerId = setInterval(jQuery.fx.tick, 13); | ||
5770 | } | ||
5771 | }, | ||
5772 | |||
5773 | // Simple 'show' function | ||
5774 | show: function() { | ||
5775 | // Remember where we started, so that we can go back to it later | ||
5776 | this.options.orig[this.prop] = jQuery.style( this.elem, this.prop ); | ||
5777 | this.options.show = true; | ||
5778 | |||
5779 | // Begin the animation | ||
5780 | // Make sure that we start at a small width/height to avoid any | ||
5781 | // flash of content | ||
5782 | this.custom(this.prop === "width" || this.prop === "height" ? 1 : 0, this.cur()); | ||
5783 | |||
5784 | // Start by showing the element | ||
5785 | jQuery( this.elem ).show(); | ||
5786 | }, | ||
5787 | |||
5788 | // Simple 'hide' function | ||
5789 | hide: function() { | ||
5790 | // Remember where we started, so that we can go back to it later | ||
5791 | this.options.orig[this.prop] = jQuery.style( this.elem, this.prop ); | ||
5792 | this.options.hide = true; | ||
5793 | |||
5794 | // Begin the animation | ||
5795 | this.custom(this.cur(), 0); | ||
5796 | }, | ||
5797 | |||
5798 | // Each step of an animation | ||
5799 | step: function( gotoEnd ) { | ||
5800 | var t = now(), done = true; | ||
5801 | |||
5802 | if ( gotoEnd || t >= this.options.duration + this.startTime ) { | ||
5803 | this.now = this.end; | ||
5804 | this.pos = this.state = 1; | ||
5805 | this.update(); | ||
5806 | |||
5807 | this.options.curAnim[ this.prop ] = true; | ||
5808 | |||
5809 | for ( var i in this.options.curAnim ) { | ||
5810 | if ( this.options.curAnim[i] !== true ) { | ||
5811 | done = false; | ||
5812 | } | ||
5813 | } | ||
5814 | |||
5815 | if ( done ) { | ||
5816 | if ( this.options.display != null ) { | ||
5817 | // Reset the overflow | ||
5818 | this.elem.style.overflow = this.options.overflow; | ||
5819 | |||
5820 | // Reset the display | ||
5821 | var old = jQuery.data(this.elem, "olddisplay"); | ||
5822 | this.elem.style.display = old ? old : this.options.display; | ||
5823 | |||
5824 | if ( jQuery.css(this.elem, "display") === "none" ) { | ||
5825 | this.elem.style.display = "block"; | ||
5826 | } | ||
5827 | } | ||
5828 | |||
5829 | // Hide the element if the "hide" operation was done | ||
5830 | if ( this.options.hide ) { | ||
5831 | jQuery(this.elem).hide(); | ||
5832 | } | ||
5833 | |||
5834 | // Reset the properties, if the item has been hidden or shown | ||
5835 | if ( this.options.hide || this.options.show ) { | ||
5836 | for ( var p in this.options.curAnim ) { | ||
5837 | jQuery.style(this.elem, p, this.options.orig[p]); | ||
5838 | } | ||
5839 | } | ||
5840 | |||
5841 | // Execute the complete function | ||
5842 | this.options.complete.call( this.elem ); | ||
5843 | } | ||
5844 | |||
5845 | return false; | ||
5846 | |||
5847 | } else { | ||
5848 | var n = t - this.startTime; | ||
5849 | this.state = n / this.options.duration; | ||
5850 | |||
5851 | // Perform the easing function, defaults to swing | ||
5852 | var specialEasing = this.options.specialEasing && this.options.specialEasing[this.prop]; | ||
5853 | var defaultEasing = this.options.easing || (jQuery.easing.swing ? "swing" : "linear"); | ||
5854 | this.pos = jQuery.easing[specialEasing || defaultEasing](this.state, n, 0, 1, this.options.duration); | ||
5855 | this.now = this.start + ((this.end - this.start) * this.pos); | ||
5856 | |||
5857 | // Perform the next step of the animation | ||
5858 | this.update(); | ||
5859 | } | ||
5860 | |||
5861 | return true; | ||
5862 | } | ||
5863 | }; | ||
5864 | |||
5865 | jQuery.extend( jQuery.fx, { | ||
5866 | tick: function() { | ||
5867 | var timers = jQuery.timers; | ||
5868 | |||
5869 | for ( var i = 0; i < timers.length; i++ ) { | ||
5870 | if ( !timers[i]() ) { | ||
5871 | timers.splice(i--, 1); | ||
5872 | } | ||
5873 | } | ||
5874 | |||
5875 | if ( !timers.length ) { | ||
5876 | jQuery.fx.stop(); | ||
5877 | } | ||
5878 | }, | ||
5879 | |||
5880 | stop: function() { | ||
5881 | clearInterval( timerId ); | ||
5882 | timerId = null; | ||
5883 | }, | ||
5884 | |||
5885 | speeds: { | ||
5886 | slow: 600, | ||
5887 | fast: 200, | ||
5888 | // Default speed | ||
5889 | _default: 400 | ||
5890 | }, | ||
5891 | |||
5892 | step: { | ||
5893 | opacity: function( fx ) { | ||
5894 | jQuery.style(fx.elem, "opacity", fx.now); | ||
5895 | }, | ||
5896 | |||
5897 | _default: function( fx ) { | ||
5898 | if ( fx.elem.style && fx.elem.style[ fx.prop ] != null ) { | ||
5899 | fx.elem.style[ fx.prop ] = (fx.prop === "width" || fx.prop === "height" ? Math.max(0, fx.now) : fx.now) + fx.unit; | ||
5900 | } else { | ||
5901 | fx.elem[ fx.prop ] = fx.now; | ||
5902 | } | ||
5903 | } | ||
5904 | } | ||
5905 | }); | ||
5906 | |||
5907 | if ( jQuery.expr && jQuery.expr.filters ) { | ||
5908 | jQuery.expr.filters.animated = function( elem ) { | ||
5909 | return jQuery.grep(jQuery.timers, function( fn ) { | ||
5910 | return elem === fn.elem; | ||
5911 | }).length; | ||
5912 | }; | ||
5913 | } | ||
5914 | |||
5915 | function genFx( type, num ) { | ||
5916 | var obj = {}; | ||
5917 | |||
5918 | jQuery.each( fxAttrs.concat.apply([], fxAttrs.slice(0,num)), function() { | ||
5919 | obj[ this ] = type; | ||
5920 | }); | ||
5921 | |||
5922 | return obj; | ||
5923 | } | ||
5924 | if ( "getBoundingClientRect" in document.documentElement ) { | ||
5925 | jQuery.fn.offset = function( options ) { | ||
5926 | var elem = this[0]; | ||
5927 | |||
5928 | if ( options ) { | ||
5929 | return this.each(function( i ) { | ||
5930 | jQuery.offset.setOffset( this, options, i ); | ||
5931 | }); | ||
5932 | } | ||
5933 | |||
5934 | if ( !elem || !elem.ownerDocument ) { | ||
5935 | return null; | ||
5936 | } | ||
5937 | |||
5938 | if ( elem === elem.ownerDocument.body ) { | ||
5939 | return jQuery.offset.bodyOffset( elem ); | ||
5940 | } | ||
5941 | |||
5942 | var box = elem.getBoundingClientRect(), doc = elem.ownerDocument, body = doc.body, docElem = doc.documentElement, | ||
5943 | clientTop = docElem.clientTop || body.clientTop || 0, clientLeft = docElem.clientLeft || body.clientLeft || 0, | ||
5944 | top = box.top + (self.pageYOffset || jQuery.support.boxModel && docElem.scrollTop || body.scrollTop ) - clientTop, | ||
5945 | left = box.left + (self.pageXOffset || jQuery.support.boxModel && docElem.scrollLeft || body.scrollLeft) - clientLeft; | ||
5946 | |||
5947 | return { top: top, left: left }; | ||
5948 | }; | ||
5949 | |||
5950 | } else { | ||
5951 | jQuery.fn.offset = function( options ) { | ||
5952 | var elem = this[0]; | ||
5953 | |||
5954 | if ( options ) { | ||
5955 | return this.each(function( i ) { | ||
5956 | jQuery.offset.setOffset( this, options, i ); | ||
5957 | }); | ||
5958 | } | ||
5959 | |||
5960 | if ( !elem || !elem.ownerDocument ) { | ||
5961 | return null; | ||
5962 | } | ||
5963 | |||
5964 | if ( elem === elem.ownerDocument.body ) { | ||
5965 | return jQuery.offset.bodyOffset( elem ); | ||
5966 | } | ||
5967 | |||
5968 | jQuery.offset.initialize(); | ||
5969 | |||
5970 | var offsetParent = elem.offsetParent, prevOffsetParent = elem, | ||
5971 | doc = elem.ownerDocument, computedStyle, docElem = doc.documentElement, | ||
5972 | body = doc.body, defaultView = doc.defaultView, | ||
5973 | prevComputedStyle = defaultView ? defaultView.getComputedStyle( elem, null ) : elem.currentStyle, | ||
5974 | top = elem.offsetTop, left = elem.offsetLeft; | ||
5975 | |||
5976 | while ( (elem = elem.parentNode) && elem !== body && elem !== docElem ) { | ||
5977 | if ( jQuery.offset.supportsFixedPosition && prevComputedStyle.position === "fixed" ) { | ||
5978 | break; | ||
5979 | } | ||
5980 | |||
5981 | computedStyle = defaultView ? defaultView.getComputedStyle(elem, null) : elem.currentStyle; | ||
5982 | top -= elem.scrollTop; | ||
5983 | left -= elem.scrollLeft; | ||
5984 | |||
5985 | if ( elem === offsetParent ) { | ||
5986 | top += elem.offsetTop; | ||
5987 | left += elem.offsetLeft; | ||
5988 | |||
5989 | if ( jQuery.offset.doesNotAddBorder && !(jQuery.offset.doesAddBorderForTableAndCells && /^t(able|d|h)$/i.test(elem.nodeName)) ) { | ||
5990 | top += parseFloat( computedStyle.borderTopWidth ) || 0; | ||
5991 | left += parseFloat( computedStyle.borderLeftWidth ) || 0; | ||
5992 | } | ||
5993 | |||
5994 | prevOffsetParent = offsetParent, offsetParent = elem.offsetParent; | ||
5995 | } | ||
5996 | |||
5997 | if ( jQuery.offset.subtractsBorderForOverflowNotVisible && computedStyle.overflow !== "visible" ) { | ||
5998 | top += parseFloat( computedStyle.borderTopWidth ) || 0; | ||
5999 | left += parseFloat( computedStyle.borderLeftWidth ) || 0; | ||
6000 | } | ||
6001 | |||
6002 | prevComputedStyle = computedStyle; | ||
6003 | } | ||
6004 | |||
6005 | if ( prevComputedStyle.position === "relative" || prevComputedStyle.position === "static" ) { | ||
6006 | top += body.offsetTop; | ||
6007 | left += body.offsetLeft; | ||
6008 | } | ||
6009 | |||
6010 | if ( jQuery.offset.supportsFixedPosition && prevComputedStyle.position === "fixed" ) { | ||
6011 | top += Math.max( docElem.scrollTop, body.scrollTop ); | ||
6012 | left += Math.max( docElem.scrollLeft, body.scrollLeft ); | ||
6013 | } | ||
6014 | |||
6015 | return { top: top, left: left }; | ||
6016 | }; | ||
6017 | } | ||
6018 | |||
6019 | jQuery.offset = { | ||
6020 | initialize: function() { | ||
6021 | var body = document.body, container = document.createElement("div"), innerDiv, checkDiv, table, td, bodyMarginTop = parseFloat( jQuery.curCSS(body, "marginTop", true) ) || 0, | ||
6022 | html = "<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>"; | ||
6023 | |||
6024 | jQuery.extend( container.style, { position: "absolute", top: 0, left: 0, margin: 0, border: 0, width: "1px", height: "1px", visibility: "hidden" } ); | ||
6025 | |||
6026 | container.innerHTML = html; | ||
6027 | body.insertBefore( container, body.firstChild ); | ||
6028 | innerDiv = container.firstChild; | ||
6029 | checkDiv = innerDiv.firstChild; | ||
6030 | td = innerDiv.nextSibling.firstChild.firstChild; | ||
6031 | |||
6032 | this.doesNotAddBorder = (checkDiv.offsetTop !== 5); | ||
6033 | this.doesAddBorderForTableAndCells = (td.offsetTop === 5); | ||
6034 | |||
6035 | checkDiv.style.position = "fixed", checkDiv.style.top = "20px"; | ||
6036 | // safari subtracts parent border width here which is 5px | ||
6037 | this.supportsFixedPosition = (checkDiv.offsetTop === 20 || checkDiv.offsetTop === 15); | ||
6038 | checkDiv.style.position = checkDiv.style.top = ""; | ||
6039 | |||
6040 | innerDiv.style.overflow = "hidden", innerDiv.style.position = "relative"; | ||
6041 | this.subtractsBorderForOverflowNotVisible = (checkDiv.offsetTop === -5); | ||
6042 | |||
6043 | this.doesNotIncludeMarginInBodyOffset = (body.offsetTop !== bodyMarginTop); | ||
6044 | |||
6045 | body.removeChild( container ); | ||
6046 | body = container = innerDiv = checkDiv = table = td = null; | ||
6047 | jQuery.offset.initialize = jQuery.noop; | ||
6048 | }, | ||
6049 | |||
6050 | bodyOffset: function( body ) { | ||
6051 | var top = body.offsetTop, left = body.offsetLeft; | ||
6052 | |||
6053 | jQuery.offset.initialize(); | ||
6054 | |||
6055 | if ( jQuery.offset.doesNotIncludeMarginInBodyOffset ) { | ||
6056 | top += parseFloat( jQuery.curCSS(body, "marginTop", true) ) || 0; | ||
6057 | left += parseFloat( jQuery.curCSS(body, "marginLeft", true) ) || 0; | ||
6058 | } | ||
6059 | |||
6060 | return { top: top, left: left }; | ||
6061 | }, | ||
6062 | |||
6063 | setOffset: function( elem, options, i ) { | ||
6064 | // set position first, in-case top/left are set even on static elem | ||
6065 | if ( /static/.test( jQuery.curCSS( elem, "position" ) ) ) { | ||
6066 | elem.style.position = "relative"; | ||
6067 | } | ||
6068 | var curElem = jQuery( elem ), | ||
6069 | curOffset = curElem.offset(), | ||
6070 | curTop = parseInt( jQuery.curCSS( elem, "top", true ), 10 ) || 0, | ||
6071 | curLeft = parseInt( jQuery.curCSS( elem, "left", true ), 10 ) || 0; | ||
6072 | |||
6073 | if ( jQuery.isFunction( options ) ) { | ||
6074 | options = options.call( elem, i, curOffset ); | ||
6075 | } | ||
6076 | |||
6077 | var props = { | ||
6078 | top: (options.top - curOffset.top) + curTop, | ||
6079 | left: (options.left - curOffset.left) + curLeft | ||
6080 | }; | ||
6081 | |||
6082 | if ( "using" in options ) { | ||
6083 | options.using.call( elem, props ); | ||
6084 | } else { | ||
6085 | curElem.css( props ); | ||
6086 | } | ||
6087 | } | ||
6088 | }; | ||
6089 | |||
6090 | |||
6091 | jQuery.fn.extend({ | ||
6092 | position: function() { | ||
6093 | if ( !this[0] ) { | ||
6094 | return null; | ||
6095 | } | ||
6096 | |||
6097 | var elem = this[0], | ||
6098 | |||
6099 | // Get *real* offsetParent | ||
6100 | offsetParent = this.offsetParent(), | ||
6101 | |||
6102 | // Get correct offsets | ||
6103 | offset = this.offset(), | ||
6104 | parentOffset = /^body|html$/i.test(offsetParent[0].nodeName) ? { top: 0, left: 0 } : offsetParent.offset(); | ||
6105 | |||
6106 | // Subtract element margins | ||
6107 | // note: when an element has margin: auto the offsetLeft and marginLeft | ||
6108 | // are the same in Safari causing offset.left to incorrectly be 0 | ||
6109 | offset.top -= parseFloat( jQuery.curCSS(elem, "marginTop", true) ) || 0; | ||
6110 | offset.left -= parseFloat( jQuery.curCSS(elem, "marginLeft", true) ) || 0; | ||
6111 | |||
6112 | // Add offsetParent borders | ||
6113 | parentOffset.top += parseFloat( jQuery.curCSS(offsetParent[0], "borderTopWidth", true) ) || 0; | ||
6114 | parentOffset.left += parseFloat( jQuery.curCSS(offsetParent[0], "borderLeftWidth", true) ) || 0; | ||
6115 | |||
6116 | // Subtract the two offsets | ||
6117 | return { | ||
6118 | top: offset.top - parentOffset.top, | ||
6119 | left: offset.left - parentOffset.left | ||
6120 | }; | ||
6121 | }, | ||
6122 | |||
6123 | offsetParent: function() { | ||
6124 | return this.map(function() { | ||
6125 | var offsetParent = this.offsetParent || document.body; | ||
6126 | while ( offsetParent && (!/^body|html$/i.test(offsetParent.nodeName) && jQuery.css(offsetParent, "position") === "static") ) { | ||
6127 | offsetParent = offsetParent.offsetParent; | ||
6128 | } | ||
6129 | return offsetParent; | ||
6130 | }); | ||
6131 | } | ||
6132 | }); | ||
6133 | |||
6134 | |||
6135 | // Create scrollLeft and scrollTop methods | ||
6136 | jQuery.each( ["Left", "Top"], function( i, name ) { | ||
6137 | var method = "scroll" + name; | ||
6138 | |||
6139 | jQuery.fn[ method ] = function(val) { | ||
6140 | var elem = this[0], win; | ||
6141 | |||
6142 | if ( !elem ) { | ||
6143 | return null; | ||
6144 | } | ||
6145 | |||
6146 | if ( val !== undefined ) { | ||
6147 | // Set the scroll offset | ||
6148 | return this.each(function() { | ||
6149 | win = getWindow( this ); | ||
6150 | |||
6151 | if ( win ) { | ||
6152 | win.scrollTo( | ||
6153 | !i ? val : jQuery(win).scrollLeft(), | ||
6154 | i ? val : jQuery(win).scrollTop() | ||
6155 | ); | ||
6156 | |||
6157 | } else { | ||
6158 | this[ method ] = val; | ||
6159 | } | ||
6160 | }); | ||
6161 | } else { | ||
6162 | win = getWindow( elem ); | ||
6163 | |||
6164 | // Return the scroll offset | ||
6165 | return win ? ("pageXOffset" in win) ? win[ i ? "pageYOffset" : "pageXOffset" ] : | ||
6166 | jQuery.support.boxModel && win.document.documentElement[ method ] || | ||
6167 | win.document.body[ method ] : | ||
6168 | elem[ method ]; | ||
6169 | } | ||
6170 | }; | ||
6171 | }); | ||
6172 | |||
6173 | function getWindow( elem ) { | ||
6174 | return ("scrollTo" in elem && elem.document) ? | ||
6175 | elem : | ||
6176 | elem.nodeType === 9 ? | ||
6177 | elem.defaultView || elem.parentWindow : | ||
6178 | false; | ||
6179 | } | ||
6180 | // Create innerHeight, innerWidth, outerHeight and outerWidth methods | ||
6181 | jQuery.each([ "Height", "Width" ], function( i, name ) { | ||
6182 | |||
6183 | var type = name.toLowerCase(); | ||
6184 | |||
6185 | // innerHeight and innerWidth | ||
6186 | jQuery.fn["inner" + name] = function() { | ||
6187 | return this[0] ? | ||
6188 | jQuery.css( this[0], type, false, "padding" ) : | ||
6189 | null; | ||
6190 | }; | ||
6191 | |||
6192 | // outerHeight and outerWidth | ||
6193 | jQuery.fn["outer" + name] = function( margin ) { | ||
6194 | return this[0] ? | ||
6195 | jQuery.css( this[0], type, false, margin ? "margin" : "border" ) : | ||
6196 | null; | ||
6197 | }; | ||
6198 | |||
6199 | jQuery.fn[ type ] = function( size ) { | ||
6200 | // Get window width or height | ||
6201 | var elem = this[0]; | ||
6202 | if ( !elem ) { | ||
6203 | return size == null ? null : this; | ||
6204 | } | ||
6205 | |||
6206 | if ( jQuery.isFunction( size ) ) { | ||
6207 | return this.each(function( i ) { | ||
6208 | var self = jQuery( this ); | ||
6209 | self[ type ]( size.call( this, i, self[ type ]() ) ); | ||
6210 | }); | ||
6211 | } | ||
6212 | |||
6213 | return ("scrollTo" in elem && elem.document) ? // does it walk and quack like a window? | ||
6214 | // Everyone else use document.documentElement or document.body depending on Quirks vs Standards mode | ||
6215 | elem.document.compatMode === "CSS1Compat" && elem.document.documentElement[ "client" + name ] || | ||
6216 | elem.document.body[ "client" + name ] : | ||
6217 | |||
6218 | // Get document width or height | ||
6219 | (elem.nodeType === 9) ? // is it a document | ||
6220 | // Either scroll[Width/Height] or offset[Width/Height], whichever is greater | ||
6221 | Math.max( | ||
6222 | elem.documentElement["client" + name], | ||
6223 | elem.body["scroll" + name], elem.documentElement["scroll" + name], | ||
6224 | elem.body["offset" + name], elem.documentElement["offset" + name] | ||
6225 | ) : | ||
6226 | |||
6227 | // Get or set width or height on the element | ||
6228 | size === undefined ? | ||
6229 | // Get width or height on the element | ||
6230 | jQuery.css( elem, type ) : | ||
6231 | |||
6232 | // Set the width or height on the element (default to pixels if value is unitless) | ||
6233 | this.css( type, typeof size === "string" ? size : size + "px" ); | ||
6234 | }; | ||
6235 | |||
6236 | }); | ||
6237 | // Expose jQuery to the global object | ||
6238 | window.jQuery = window.$ = jQuery; | ||
6239 | |||
6240 | })(window); \ No newline at end of file | ||
diff --git a/Blocks/syntax/tests/js/qunit.css b/Blocks/syntax/tests/js/qunit.css new file mode 100644 index 0000000..cc54391 --- /dev/null +++ b/Blocks/syntax/tests/js/qunit.css | |||
@@ -0,0 +1,135 @@ | |||
1 | /** | ||
2 | * SyntaxHighlighter | ||
3 | * http://alexgorbatchev.com/SyntaxHighlighter | ||
4 | * | ||
5 | * SyntaxHighlighter is donationware. If you are using it, please donate. | ||
6 | * http://alexgorbatchev.com/SyntaxHighlighter/donate.html | ||
7 | * | ||
8 | * @version | ||
9 | * 3.0.83 (July 02 2010) | ||
10 | * | ||
11 | * @copyright | ||
12 | * Copyright (C) 2004-2010 Alex Gorbatchev. | ||
13 | * | ||
14 | * @license | ||
15 | * Dual licensed under the MIT and GPL licenses. | ||
16 | */ | ||
17 | |||
18 | ol#qunit-tests { | ||
19 | font-family:"Helvetica Neue Light", "HelveticaNeue-Light", "Helvetica Neue", Calibri, Helvetica, Arial; | ||
20 | margin:0; | ||
21 | padding:0; | ||
22 | list-style-position:inside; | ||
23 | |||
24 | font-size: smaller; | ||
25 | } | ||
26 | ol#qunit-tests li{ | ||
27 | padding:0.4em 0.5em 0.4em 2.5em; | ||
28 | border-bottom:1px solid #fff; | ||
29 | font-size:small; | ||
30 | list-style-position:inside; | ||
31 | } | ||
32 | ol#qunit-tests li ol{ | ||
33 | box-shadow: inset 0px 2px 13px #999; | ||
34 | -moz-box-shadow: inset 0px 2px 13px #999; | ||
35 | -webkit-box-shadow: inset 0px 2px 13px #999; | ||
36 | margin-top:0.5em; | ||
37 | margin-left:0; | ||
38 | padding:0.5em; | ||
39 | background-color:#fff; | ||
40 | border-radius:15px; | ||
41 | -moz-border-radius: 15px; | ||
42 | -webkit-border-radius: 15px; | ||
43 | } | ||
44 | ol#qunit-tests li li{ | ||
45 | border-bottom:none; | ||
46 | margin:0.5em; | ||
47 | background-color:#fff; | ||
48 | list-style-position: inside; | ||
49 | padding:0.4em 0.5em 0.4em 0.5em; | ||
50 | } | ||
51 | |||
52 | ol#qunit-tests li li.pass{ | ||
53 | border-left:26px solid #C6E746; | ||
54 | background-color:#fff; | ||
55 | color:#5E740B; | ||
56 | } | ||
57 | ol#qunit-tests li li.fail{ | ||
58 | border-left:26px solid #EE5757; | ||
59 | background-color:#fff; | ||
60 | color:#710909; | ||
61 | } | ||
62 | ol#qunit-tests li.pass{ | ||
63 | background-color:#D2E0E6; | ||
64 | color:#528CE0; | ||
65 | } | ||
66 | ol#qunit-tests li.fail{ | ||
67 | background-color:#EE5757; | ||
68 | color:#000; | ||
69 | } | ||
70 | ol#qunit-tests li strong { | ||
71 | cursor:pointer; | ||
72 | } | ||
73 | h1#qunit-header{ | ||
74 | background-color:#0d3349; | ||
75 | margin:0; | ||
76 | padding:0.5em 0 0.5em 1em; | ||
77 | color:#fff; | ||
78 | font-family:"Helvetica Neue Light", "HelveticaNeue-Light", "Helvetica Neue", Calibri, Helvetica, Arial; | ||
79 | border-top-right-radius:15px; | ||
80 | border-top-left-radius:15px; | ||
81 | -moz-border-radius-topright:15px; | ||
82 | -moz-border-radius-topleft:15px; | ||
83 | -webkit-border-top-right-radius:15px; | ||
84 | -webkit-border-top-left-radius:15px; | ||
85 | text-shadow: rgba(0, 0, 0, 0.5) 4px 4px 1px; | ||
86 | } | ||
87 | h2#qunit-banner{ | ||
88 | font-family:"Helvetica Neue Light", "HelveticaNeue-Light", "Helvetica Neue", Calibri, Helvetica, Arial; | ||
89 | height:5px; | ||
90 | margin:0; | ||
91 | padding:0; | ||
92 | } | ||
93 | h2#qunit-banner.qunit-pass{ | ||
94 | background-color:#C6E746; | ||
95 | } | ||
96 | h2#qunit-banner.qunit-fail, #qunit-testrunner-toolbar { | ||
97 | background-color:#EE5757; | ||
98 | } | ||
99 | #qunit-testrunner-toolbar { | ||
100 | font-family:"Helvetica Neue Light", "HelveticaNeue-Light", "Helvetica Neue", Calibri, Helvetica, Arial; | ||
101 | padding:0; | ||
102 | /*width:80%;*/ | ||
103 | padding:0em 0 0.5em 2em; | ||
104 | font-size: small; | ||
105 | } | ||
106 | h2#qunit-userAgent { | ||
107 | font-family:"Helvetica Neue Light", "HelveticaNeue-Light", "Helvetica Neue", Calibri, Helvetica, Arial; | ||
108 | background-color:#2b81af; | ||
109 | margin:0; | ||
110 | padding:0; | ||
111 | color:#fff; | ||
112 | font-size: small; | ||
113 | padding:0.5em 0 0.5em 2.5em; | ||
114 | text-shadow: rgba(0, 0, 0, 0.5) 2px 2px 1px; | ||
115 | } | ||
116 | p#qunit-testresult{ | ||
117 | font-family:"Helvetica Neue Light", "HelveticaNeue-Light", "Helvetica Neue", Calibri, Helvetica, Arial; | ||
118 | margin:0; | ||
119 | font-size: small; | ||
120 | color:#2b81af; | ||
121 | border-bottom-right-radius:15px; | ||
122 | border-bottom-left-radius:15px; | ||
123 | -moz-border-radius-bottomright:15px; | ||
124 | -moz-border-radius-bottomleft:15px; | ||
125 | -webkit-border-bottom-right-radius:15px; | ||
126 | -webkit-border-bottom-left-radius:15px; | ||
127 | background-color:#D2E0E6; | ||
128 | padding:0.5em 0.5em 0.5em 2.5em; | ||
129 | } | ||
130 | strong b.fail{ | ||
131 | color:#710909; | ||
132 | } | ||
133 | strong b.pass{ | ||
134 | color:#5E740B; | ||
135 | } | ||
diff --git a/Blocks/syntax/tests/js/qunit.js b/Blocks/syntax/tests/js/qunit.js new file mode 100644 index 0000000..9ef5f8d --- /dev/null +++ b/Blocks/syntax/tests/js/qunit.js | |||
@@ -0,0 +1,1069 @@ | |||
1 | /* | ||
2 | * QUnit - A JavaScript Unit Testing Framework | ||
3 | * | ||
4 | * http://docs.jquery.com/QUnit | ||
5 | * | ||
6 | * Copyright (c) 2009 John Resig, Jörn Zaefferer | ||
7 | * Dual licensed under the MIT (MIT-LICENSE.txt) | ||
8 | * and GPL (GPL-LICENSE.txt) licenses. | ||
9 | */ | ||
10 | |||
11 | (function(window) { | ||
12 | |||
13 | var QUnit = { | ||
14 | |||
15 | // Initialize the configuration options | ||
16 | init: function() { | ||
17 | config = { | ||
18 | stats: { all: 0, bad: 0 }, | ||
19 | moduleStats: { all: 0, bad: 0 }, | ||
20 | started: +new Date, | ||
21 | updateRate: 1000, | ||
22 | blocking: false, | ||
23 | autorun: false, | ||
24 | assertions: [], | ||
25 | filters: [], | ||
26 | queue: [] | ||
27 | }; | ||
28 | |||
29 | var tests = id("qunit-tests"), | ||
30 | banner = id("qunit-banner"), | ||
31 | result = id("qunit-testresult"); | ||
32 | |||
33 | if ( tests ) { | ||
34 | tests.innerHTML = ""; | ||
35 | } | ||
36 | |||
37 | if ( banner ) { | ||
38 | banner.className = ""; | ||
39 | } | ||
40 | |||
41 | if ( result ) { | ||
42 | result.parentNode.removeChild( result ); | ||
43 | } | ||
44 | }, | ||
45 | |||
46 | // call on start of module test to prepend name to all tests | ||
47 | module: function(name, testEnvironment) { | ||
48 | config.currentModule = name; | ||
49 | |||
50 | synchronize(function() { | ||
51 | if ( config.currentModule ) { | ||
52 | QUnit.moduleDone( config.currentModule, config.moduleStats.bad, config.moduleStats.all ); | ||
53 | } | ||
54 | |||
55 | config.currentModule = name; | ||
56 | config.moduleTestEnvironment = testEnvironment; | ||
57 | config.moduleStats = { all: 0, bad: 0 }; | ||
58 | |||
59 | QUnit.moduleStart( name, testEnvironment ); | ||
60 | }); | ||
61 | }, | ||
62 | |||
63 | asyncTest: function(testName, expected, callback) { | ||
64 | if ( arguments.length === 2 ) { | ||
65 | callback = expected; | ||
66 | expected = 0; | ||
67 | } | ||
68 | |||
69 | QUnit.test(testName, expected, callback, true); | ||
70 | }, | ||
71 | |||
72 | test: function(testName, expected, callback, async) { | ||
73 | var name = testName, testEnvironment, testEnvironmentArg; | ||
74 | |||
75 | if ( arguments.length === 2 ) { | ||
76 | callback = expected; | ||
77 | expected = null; | ||
78 | } | ||
79 | // is 2nd argument a testEnvironment? | ||
80 | if ( expected && typeof expected === 'object') { | ||
81 | testEnvironmentArg = expected; | ||
82 | expected = null; | ||
83 | } | ||
84 | |||
85 | if ( config.currentModule ) { | ||
86 | name = config.currentModule + " module: " + name; | ||
87 | } | ||
88 | |||
89 | if ( !validTest(name) ) { | ||
90 | return; | ||
91 | } | ||
92 | |||
93 | synchronize(function() { | ||
94 | QUnit.testStart( testName ); | ||
95 | |||
96 | testEnvironment = extend({ | ||
97 | setup: function() {}, | ||
98 | teardown: function() {} | ||
99 | }, config.moduleTestEnvironment); | ||
100 | if (testEnvironmentArg) { | ||
101 | extend(testEnvironment,testEnvironmentArg); | ||
102 | } | ||
103 | |||
104 | // allow utility functions to access the current test environment | ||
105 | QUnit.current_testEnvironment = testEnvironment; | ||
106 | |||
107 | config.assertions = []; | ||
108 | config.expected = expected; | ||
109 | |||
110 | try { | ||
111 | if ( !config.pollution ) { | ||
112 | saveGlobal(); | ||
113 | } | ||
114 | |||
115 | testEnvironment.setup.call(testEnvironment); | ||
116 | } catch(e) { | ||
117 | QUnit.ok( false, "Setup failed on " + name + ": " + e.message ); | ||
118 | } | ||
119 | |||
120 | if ( async ) { | ||
121 | QUnit.stop(); | ||
122 | } | ||
123 | |||
124 | try { | ||
125 | callback.call(testEnvironment); | ||
126 | } catch(e) { | ||
127 | fail("Test " + name + " died, exception and test follows", e, callback); | ||
128 | QUnit.ok( false, "Died on test #" + (config.assertions.length + 1) + ": " + e.message ); | ||
129 | // else next test will carry the responsibility | ||
130 | saveGlobal(); | ||
131 | |||
132 | // Restart the tests if they're blocking | ||
133 | if ( config.blocking ) { | ||
134 | start(); | ||
135 | } | ||
136 | } | ||
137 | }); | ||
138 | |||
139 | synchronize(function() { | ||
140 | try { | ||
141 | checkPollution(); | ||
142 | testEnvironment.teardown.call(testEnvironment); | ||
143 | } catch(e) { | ||
144 | QUnit.ok( false, "Teardown failed on " + name + ": " + e.message ); | ||
145 | } | ||
146 | |||
147 | try { | ||
148 | QUnit.reset(); | ||
149 | } catch(e) { | ||
150 | fail("reset() failed, following Test " + name + ", exception and reset fn follows", e, reset); | ||
151 | } | ||
152 | |||
153 | if ( config.expected && config.expected != config.assertions.length ) { | ||
154 | QUnit.ok( false, "Expected " + config.expected + " assertions, but " + config.assertions.length + " were run" ); | ||
155 | } | ||
156 | |||
157 | var good = 0, bad = 0, | ||
158 | tests = id("qunit-tests"); | ||
159 | |||
160 | config.stats.all += config.assertions.length; | ||
161 | config.moduleStats.all += config.assertions.length; | ||
162 | |||
163 | if ( tests ) { | ||
164 | var ol = document.createElement("ol"); | ||
165 | ol.style.display = "none"; | ||
166 | |||
167 | for ( var i = 0; i < config.assertions.length; i++ ) { | ||
168 | var assertion = config.assertions[i]; | ||
169 | |||
170 | var li = document.createElement("li"); | ||
171 | li.className = assertion.result ? "pass" : "fail"; | ||
172 | li.appendChild(document.createTextNode(assertion.message || "(no message)")); | ||
173 | ol.appendChild( li ); | ||
174 | |||
175 | if ( assertion.result ) { | ||
176 | good++; | ||
177 | } else { | ||
178 | bad++; | ||
179 | config.stats.bad++; | ||
180 | config.moduleStats.bad++; | ||
181 | } | ||
182 | } | ||
183 | |||
184 | var b = document.createElement("strong"); | ||
185 | b.innerHTML = name + " <b style='color:black;'>(<b class='fail'>" + bad + "</b>, <b class='pass'>" + good + "</b>, " + config.assertions.length + ")</b>"; | ||
186 | |||
187 | addEvent(b, "click", function() { | ||
188 | var next = b.nextSibling, display = next.style.display; | ||
189 | next.style.display = display === "none" ? "block" : "none"; | ||
190 | }); | ||
191 | |||
192 | addEvent(b, "dblclick", function(e) { | ||
193 | var target = e && e.target ? e.target : window.event.srcElement; | ||
194 | if ( target.nodeName.toLowerCase() === "strong" ) { | ||
195 | var text = "", node = target.firstChild; | ||
196 | |||
197 | while ( node.nodeType === 3 ) { | ||
198 | text += node.nodeValue; | ||
199 | node = node.nextSibling; | ||
200 | } | ||
201 | |||
202 | text = text.replace(/(^\s*|\s*$)/g, ""); | ||
203 | |||
204 | if ( window.location ) { | ||
205 | window.location.href = window.location.href.match(/^(.+?)(\?.*)?$/)[1] + "?" + encodeURIComponent(text); | ||
206 | } | ||
207 | } | ||
208 | }); | ||
209 | |||
210 | var li = document.createElement("li"); | ||
211 | li.className = bad ? "fail" : "pass"; | ||
212 | li.appendChild( b ); | ||
213 | li.appendChild( ol ); | ||
214 | tests.appendChild( li ); | ||
215 | |||
216 | if ( bad ) { | ||
217 | var toolbar = id("qunit-testrunner-toolbar"); | ||
218 | if ( toolbar ) { | ||
219 | toolbar.style.display = "block"; | ||
220 | id("qunit-filter-pass").disabled = null; | ||
221 | id("qunit-filter-missing").disabled = null; | ||
222 | } | ||
223 | } | ||
224 | |||
225 | } else { | ||
226 | for ( var i = 0; i < config.assertions.length; i++ ) { | ||
227 | if ( !config.assertions[i].result ) { | ||
228 | bad++; | ||
229 | config.stats.bad++; | ||
230 | config.moduleStats.bad++; | ||
231 | } | ||
232 | } | ||
233 | } | ||
234 | |||
235 | QUnit.testDone( testName, bad, config.assertions.length ); | ||
236 | |||
237 | if ( !window.setTimeout && !config.queue.length ) { | ||
238 | done(); | ||
239 | } | ||
240 | }); | ||
241 | |||
242 | if ( window.setTimeout && !config.doneTimer ) { | ||
243 | config.doneTimer = window.setTimeout(function(){ | ||
244 | if ( !config.queue.length ) { | ||
245 | done(); | ||
246 | } else { | ||
247 | synchronize( done ); | ||
248 | } | ||
249 | }, 13); | ||
250 | } | ||
251 | }, | ||
252 | |||
253 | /** | ||
254 | * Specify the number of expected assertions to gurantee that failed test (no assertions are run at all) don't slip through. | ||
255 | */ | ||
256 | expect: function(asserts) { | ||
257 | config.expected = asserts; | ||
258 | }, | ||
259 | |||
260 | /** | ||
261 | * Asserts true. | ||
262 | * @example ok( "asdfasdf".length > 5, "There must be at least 5 chars" ); | ||
263 | */ | ||
264 | ok: function(a, msg) { | ||
265 | QUnit.log(a, msg); | ||
266 | |||
267 | config.assertions.push({ | ||
268 | result: !!a, | ||
269 | message: msg | ||
270 | }); | ||
271 | }, | ||
272 | |||
273 | /** | ||
274 | * Checks that the first two arguments are equal, with an optional message. | ||
275 | * Prints out both actual and expected values. | ||
276 | * | ||
277 | * Prefered to ok( actual == expected, message ) | ||
278 | * | ||
279 | * @example equal( format("Received {0} bytes.", 2), "Received 2 bytes." ); | ||
280 | * | ||
281 | * @param Object actual | ||
282 | * @param Object expected | ||
283 | * @param String message (optional) | ||
284 | */ | ||
285 | equal: function(actual, expected, message) { | ||
286 | push(expected == actual, actual, expected, message); | ||
287 | }, | ||
288 | |||
289 | notEqual: function(actual, expected, message) { | ||
290 | push(expected != actual, actual, expected, message); | ||
291 | }, | ||
292 | |||
293 | deepEqual: function(a, b, message) { | ||
294 | push(QUnit.equiv(a, b), a, b, message); | ||
295 | }, | ||
296 | |||
297 | notDeepEqual: function(a, b, message) { | ||
298 | push(!QUnit.equiv(a, b), a, b, message); | ||
299 | }, | ||
300 | |||
301 | strictEqual: function(actual, expected, message) { | ||
302 | push(expected === actual, actual, expected, message); | ||
303 | }, | ||
304 | |||
305 | notStrictEqual: function(actual, expected, message) { | ||
306 | push(expected !== actual, actual, expected, message); | ||
307 | }, | ||
308 | |||
309 | start: function() { | ||
310 | // A slight delay, to avoid any current callbacks | ||
311 | if ( window.setTimeout ) { | ||
312 | window.setTimeout(function() { | ||
313 | if ( config.timeout ) { | ||
314 | clearTimeout(config.timeout); | ||
315 | } | ||
316 | |||
317 | config.blocking = false; | ||
318 | process(); | ||
319 | }, 13); | ||
320 | } else { | ||
321 | config.blocking = false; | ||
322 | process(); | ||
323 | } | ||
324 | }, | ||
325 | |||
326 | stop: function(timeout) { | ||
327 | config.blocking = true; | ||
328 | |||
329 | if ( timeout && window.setTimeout ) { | ||
330 | config.timeout = window.setTimeout(function() { | ||
331 | QUnit.ok( false, "Test timed out" ); | ||
332 | QUnit.start(); | ||
333 | }, timeout); | ||
334 | } | ||
335 | }, | ||
336 | |||
337 | /** | ||
338 | * Resets the test setup. Useful for tests that modify the DOM. | ||
339 | */ | ||
340 | reset: function() { | ||
341 | if ( window.jQuery ) { | ||
342 | jQuery("#main").html( config.fixture ); | ||
343 | jQuery.event.global = {}; | ||
344 | jQuery.ajaxSettings = extend({}, config.ajaxSettings); | ||
345 | } | ||
346 | }, | ||
347 | |||
348 | /** | ||
349 | * Trigger an event on an element. | ||
350 | * | ||
351 | * @example triggerEvent( document.body, "click" ); | ||
352 | * | ||
353 | * @param DOMElement elem | ||
354 | * @param String type | ||
355 | */ | ||
356 | triggerEvent: function( elem, type, event ) { | ||
357 | if ( document.createEvent ) { | ||
358 | event = document.createEvent("MouseEvents"); | ||
359 | event.initMouseEvent(type, true, true, elem.ownerDocument.defaultView, | ||
360 | 0, 0, 0, 0, 0, false, false, false, false, 0, null); | ||
361 | elem.dispatchEvent( event ); | ||
362 | |||
363 | } else if ( elem.fireEvent ) { | ||
364 | elem.fireEvent("on"+type); | ||
365 | } | ||
366 | }, | ||
367 | |||
368 | // Safe object type checking | ||
369 | is: function( type, obj ) { | ||
370 | return Object.prototype.toString.call( obj ) === "[object "+ type +"]"; | ||
371 | }, | ||
372 | |||
373 | // Logging callbacks | ||
374 | done: function(failures, total) {}, | ||
375 | log: function(result, message) {}, | ||
376 | testStart: function(name) {}, | ||
377 | testDone: function(name, failures, total) {}, | ||
378 | moduleStart: function(name, testEnvironment) {}, | ||
379 | moduleDone: function(name, failures, total) {} | ||
380 | }; | ||
381 | |||
382 | // Backwards compatibility, deprecated | ||
383 | QUnit.equals = QUnit.equal; | ||
384 | QUnit.same = QUnit.deepEqual; | ||
385 | |||
386 | // Maintain internal state | ||
387 | var config = { | ||
388 | // The queue of tests to run | ||
389 | queue: [], | ||
390 | |||
391 | // block until document ready | ||
392 | blocking: true | ||
393 | }; | ||
394 | |||
395 | // Load paramaters | ||
396 | (function() { | ||
397 | var location = window.location || { search: "", protocol: "file:" }, | ||
398 | GETParams = location.search.slice(1).split('&'); | ||
399 | |||
400 | for ( var i = 0; i < GETParams.length; i++ ) { | ||
401 | GETParams[i] = decodeURIComponent( GETParams[i] ); | ||
402 | if ( GETParams[i] === "noglobals" ) { | ||
403 | GETParams.splice( i, 1 ); | ||
404 | i--; | ||
405 | config.noglobals = true; | ||
406 | } else if ( GETParams[i].search('=') > -1 ) { | ||
407 | GETParams.splice( i, 1 ); | ||
408 | i--; | ||
409 | } | ||
410 | } | ||
411 | |||
412 | // restrict modules/tests by get parameters | ||
413 | config.filters = GETParams; | ||
414 | |||
415 | // Figure out if we're running the tests from a server or not | ||
416 | QUnit.isLocal = !!(location.protocol === 'file:'); | ||
417 | })(); | ||
418 | |||
419 | // Expose the API as global variables, unless an 'exports' | ||
420 | // object exists, in that case we assume we're in CommonJS | ||
421 | if ( typeof exports === "undefined" || typeof require === "undefined" ) { | ||
422 | extend(window, QUnit); | ||
423 | window.QUnit = QUnit; | ||
424 | } else { | ||
425 | extend(exports, QUnit); | ||
426 | exports.QUnit = QUnit; | ||
427 | } | ||
428 | |||
429 | if ( typeof document === "undefined" || document.readyState === "complete" ) { | ||
430 | config.autorun = true; | ||
431 | } | ||
432 | |||
433 | addEvent(window, "load", function() { | ||
434 | // Initialize the config, saving the execution queue | ||
435 | var oldconfig = extend({}, config); | ||
436 | QUnit.init(); | ||
437 | extend(config, oldconfig); | ||
438 | |||
439 | config.blocking = false; | ||
440 | |||
441 | var userAgent = id("qunit-userAgent"); | ||
442 | if ( userAgent ) { | ||
443 | userAgent.innerHTML = navigator.userAgent; | ||
444 | } | ||
445 | |||
446 | var toolbar = id("qunit-testrunner-toolbar"); | ||
447 | if ( toolbar ) { | ||
448 | toolbar.style.display = "none"; | ||
449 | |||
450 | var filter = document.createElement("input"); | ||
451 | filter.type = "checkbox"; | ||
452 | filter.id = "qunit-filter-pass"; | ||
453 | filter.disabled = true; | ||
454 | addEvent( filter, "click", function() { | ||
455 | var li = document.getElementsByTagName("li"); | ||
456 | for ( var i = 0; i < li.length; i++ ) { | ||
457 | if ( li[i].className.indexOf("pass") > -1 ) { | ||
458 | li[i].style.display = filter.checked ? "none" : ""; | ||
459 | } | ||
460 | } | ||
461 | }); | ||
462 | toolbar.appendChild( filter ); | ||
463 | |||
464 | var label = document.createElement("label"); | ||
465 | label.setAttribute("for", "qunit-filter-pass"); | ||
466 | label.innerHTML = "Hide passed tests"; | ||
467 | toolbar.appendChild( label ); | ||
468 | |||
469 | var missing = document.createElement("input"); | ||
470 | missing.type = "checkbox"; | ||
471 | missing.id = "qunit-filter-missing"; | ||
472 | missing.disabled = true; | ||
473 | addEvent( missing, "click", function() { | ||
474 | var li = document.getElementsByTagName("li"); | ||
475 | for ( var i = 0; i < li.length; i++ ) { | ||
476 | if ( li[i].className.indexOf("fail") > -1 && li[i].innerHTML.indexOf('missing test - untested code is broken code') > - 1 ) { | ||
477 | li[i].parentNode.parentNode.style.display = missing.checked ? "none" : "block"; | ||
478 | } | ||
479 | } | ||
480 | }); | ||
481 | toolbar.appendChild( missing ); | ||
482 | |||
483 | label = document.createElement("label"); | ||
484 | label.setAttribute("for", "qunit-filter-missing"); | ||
485 | label.innerHTML = "Hide missing tests (untested code is broken code)"; | ||
486 | toolbar.appendChild( label ); | ||
487 | } | ||
488 | |||
489 | var main = id('main'); | ||
490 | if ( main ) { | ||
491 | config.fixture = main.innerHTML; | ||
492 | } | ||
493 | |||
494 | if ( window.jQuery ) { | ||
495 | config.ajaxSettings = window.jQuery.ajaxSettings; | ||
496 | } | ||
497 | |||
498 | QUnit.start(); | ||
499 | }); | ||
500 | |||
501 | function done() { | ||
502 | if ( config.doneTimer && window.clearTimeout ) { | ||
503 | window.clearTimeout( config.doneTimer ); | ||
504 | config.doneTimer = null; | ||
505 | } | ||
506 | |||
507 | if ( config.queue.length ) { | ||
508 | config.doneTimer = window.setTimeout(function(){ | ||
509 | if ( !config.queue.length ) { | ||
510 | done(); | ||
511 | } else { | ||
512 | synchronize( done ); | ||
513 | } | ||
514 | }, 13); | ||
515 | |||
516 | return; | ||
517 | } | ||
518 | |||
519 | config.autorun = true; | ||
520 | |||
521 | // Log the last module results | ||
522 | if ( config.currentModule ) { | ||
523 | QUnit.moduleDone( config.currentModule, config.moduleStats.bad, config.moduleStats.all ); | ||
524 | } | ||
525 | |||
526 | var banner = id("qunit-banner"), | ||
527 | tests = id("qunit-tests"), | ||
528 | html = ['Tests completed in ', | ||
529 | +new Date - config.started, ' milliseconds.<br/>', | ||
530 | '<span class="passed">', config.stats.all - config.stats.bad, '</span> tests of <span class="total">', config.stats.all, '</span> passed, <span class="failed">', config.stats.bad,'</span> failed.'].join(''); | ||
531 | |||
532 | if ( banner ) { | ||
533 | banner.className = (config.stats.bad ? "qunit-fail" : "qunit-pass"); | ||
534 | } | ||
535 | |||
536 | if ( tests ) { | ||
537 | var result = id("qunit-testresult"); | ||
538 | |||
539 | if ( !result ) { | ||
540 | result = document.createElement("p"); | ||
541 | result.id = "qunit-testresult"; | ||
542 | result.className = "result"; | ||
543 | tests.parentNode.insertBefore( result, tests.nextSibling ); | ||
544 | } | ||
545 | |||
546 | result.innerHTML = html; | ||
547 | } | ||
548 | |||
549 | QUnit.done( config.stats.bad, config.stats.all ); | ||
550 | } | ||
551 | |||
552 | function validTest( name ) { | ||
553 | var i = config.filters.length, | ||
554 | run = false; | ||
555 | |||
556 | if ( !i ) { | ||
557 | return true; | ||
558 | } | ||
559 | |||
560 | while ( i-- ) { | ||
561 | var filter = config.filters[i], | ||
562 | not = filter.charAt(0) == '!'; | ||
563 | |||
564 | if ( not ) { | ||
565 | filter = filter.slice(1); | ||
566 | } | ||
567 | |||
568 | if ( name.indexOf(filter) !== -1 ) { | ||
569 | return !not; | ||
570 | } | ||
571 | |||
572 | if ( not ) { | ||
573 | run = true; | ||
574 | } | ||
575 | } | ||
576 | |||
577 | return run; | ||
578 | } | ||
579 | |||
580 | function push(result, actual, expected, message) { | ||
581 | message = message || (result ? "okay" : "failed"); | ||
582 | QUnit.ok( result, result ? message + ": " + QUnit.jsDump.parse(expected) : message + ", expected: " + QUnit.jsDump.parse(expected) + " result: " + QUnit.jsDump.parse(actual) ); | ||
583 | } | ||
584 | |||
585 | function synchronize( callback ) { | ||
586 | config.queue.push( callback ); | ||
587 | |||
588 | if ( config.autorun && !config.blocking ) { | ||
589 | process(); | ||
590 | } | ||
591 | } | ||
592 | |||
593 | function process() { | ||
594 | var start = (new Date()).getTime(); | ||
595 | |||
596 | while ( config.queue.length && !config.blocking ) { | ||
597 | if ( config.updateRate <= 0 || (((new Date()).getTime() - start) < config.updateRate) ) { | ||
598 | config.queue.shift()(); | ||
599 | |||
600 | } else { | ||
601 | setTimeout( process, 13 ); | ||
602 | break; | ||
603 | } | ||
604 | } | ||
605 | } | ||
606 | |||
607 | function saveGlobal() { | ||
608 | config.pollution = []; | ||
609 | |||
610 | if ( config.noglobals ) { | ||
611 | for ( var key in window ) { | ||
612 | config.pollution.push( key ); | ||
613 | } | ||
614 | } | ||
615 | } | ||
616 | |||
617 | function checkPollution( name ) { | ||
618 | var old = config.pollution; | ||
619 | saveGlobal(); | ||
620 | |||
621 | var newGlobals = diff( old, config.pollution ); | ||
622 | if ( newGlobals.length > 0 ) { | ||
623 | ok( false, "Introduced global variable(s): " + newGlobals.join(", ") ); | ||
624 | config.expected++; | ||
625 | } | ||
626 | |||
627 | var deletedGlobals = diff( config.pollution, old ); | ||
628 | if ( deletedGlobals.length > 0 ) { | ||
629 | ok( false, "Deleted global variable(s): " + deletedGlobals.join(", ") ); | ||
630 | config.expected++; | ||
631 | } | ||
632 | } | ||
633 | |||
634 | // returns a new Array with the elements that are in a but not in b | ||
635 | function diff( a, b ) { | ||
636 | var result = a.slice(); | ||
637 | for ( var i = 0; i < result.length; i++ ) { | ||
638 | for ( var j = 0; j < b.length; j++ ) { | ||
639 | if ( result[i] === b[j] ) { | ||
640 | result.splice(i, 1); | ||
641 | i--; | ||
642 | break; | ||
643 | } | ||
644 | } | ||
645 | } | ||
646 | return result; | ||
647 | } | ||
648 | |||
649 | function fail(message, exception, callback) { | ||
650 | if ( typeof console !== "undefined" && console.error && console.warn ) { | ||
651 | console.error(message); | ||
652 | console.error(exception); | ||
653 | console.warn(callback.toString()); | ||
654 | |||
655 | } else if ( window.opera && opera.postError ) { | ||
656 | opera.postError(message, exception, callback.toString); | ||
657 | } | ||
658 | } | ||
659 | |||
660 | function extend(a, b) { | ||
661 | for ( var prop in b ) { | ||
662 | a[prop] = b[prop]; | ||
663 | } | ||
664 | |||
665 | return a; | ||
666 | } | ||
667 | |||
668 | function addEvent(elem, type, fn) { | ||
669 | if ( elem.addEventListener ) { | ||
670 | elem.addEventListener( type, fn, false ); | ||
671 | } else if ( elem.attachEvent ) { | ||
672 | elem.attachEvent( "on" + type, fn ); | ||
673 | } else { | ||
674 | fn(); | ||
675 | } | ||
676 | } | ||
677 | |||
678 | function id(name) { | ||
679 | return !!(typeof document !== "undefined" && document && document.getElementById) && | ||
680 | document.getElementById( name ); | ||
681 | } | ||
682 | |||
683 | // Test for equality any JavaScript type. | ||
684 | // Discussions and reference: http://philrathe.com/articles/equiv | ||
685 | // Test suites: http://philrathe.com/tests/equiv | ||
686 | // Author: Philippe Rathé <[email protected]> | ||
687 | QUnit.equiv = function () { | ||
688 | |||
689 | var innerEquiv; // the real equiv function | ||
690 | var callers = []; // stack to decide between skip/abort functions | ||
691 | var parents = []; // stack to avoiding loops from circular referencing | ||
692 | |||
693 | |||
694 | // Determine what is o. | ||
695 | function hoozit(o) { | ||
696 | if (QUnit.is("String", o)) { | ||
697 | return "string"; | ||
698 | |||
699 | } else if (QUnit.is("Boolean", o)) { | ||
700 | return "boolean"; | ||
701 | |||
702 | } else if (QUnit.is("Number", o)) { | ||
703 | |||
704 | if (isNaN(o)) { | ||
705 | return "nan"; | ||
706 | } else { | ||
707 | return "number"; | ||
708 | } | ||
709 | |||
710 | } else if (typeof o === "undefined") { | ||
711 | return "undefined"; | ||
712 | |||
713 | // consider: typeof null === object | ||
714 | } else if (o === null) { | ||
715 | return "null"; | ||
716 | |||
717 | // consider: typeof [] === object | ||
718 | } else if (QUnit.is( "Array", o)) { | ||
719 | return "array"; | ||
720 | |||
721 | // consider: typeof new Date() === object | ||
722 | } else if (QUnit.is( "Date", o)) { | ||
723 | return "date"; | ||
724 | |||
725 | // consider: /./ instanceof Object; | ||
726 | // /./ instanceof RegExp; | ||
727 | // typeof /./ === "function"; // => false in IE and Opera, | ||
728 | // true in FF and Safari | ||
729 | } else if (QUnit.is( "RegExp", o)) { | ||
730 | return "regexp"; | ||
731 | |||
732 | } else if (typeof o === "object") { | ||
733 | return "object"; | ||
734 | |||
735 | } else if (QUnit.is( "Function", o)) { | ||
736 | return "function"; | ||
737 | } else { | ||
738 | return undefined; | ||
739 | } | ||
740 | } | ||
741 | |||
742 | // Call the o related callback with the given arguments. | ||
743 | function bindCallbacks(o, callbacks, args) { | ||
744 | var prop = hoozit(o); | ||
745 | if (prop) { | ||
746 | if (hoozit(callbacks[prop]) === "function") { | ||
747 | return callbacks[prop].apply(callbacks, args); | ||
748 | } else { | ||
749 | return callbacks[prop]; // or undefined | ||
750 | } | ||
751 | } | ||
752 | } | ||
753 | |||
754 | var callbacks = function () { | ||
755 | |||
756 | // for string, boolean, number and null | ||
757 | function useStrictEquality(b, a) { | ||
758 | if (b instanceof a.constructor || a instanceof b.constructor) { | ||
759 | // to catch short annotaion VS 'new' annotation of a declaration | ||
760 | // e.g. var i = 1; | ||
761 | // var j = new Number(1); | ||
762 | return a == b; | ||
763 | } else { | ||
764 | return a === b; | ||
765 | } | ||
766 | } | ||
767 | |||
768 | return { | ||
769 | "string": useStrictEquality, | ||
770 | "boolean": useStrictEquality, | ||
771 | "number": useStrictEquality, | ||
772 | "null": useStrictEquality, | ||
773 | "undefined": useStrictEquality, | ||
774 | |||
775 | "nan": function (b) { | ||
776 | return isNaN(b); | ||
777 | }, | ||
778 | |||
779 | "date": function (b, a) { | ||
780 | return hoozit(b) === "date" && a.valueOf() === b.valueOf(); | ||
781 | }, | ||
782 | |||
783 | "regexp": function (b, a) { | ||
784 | return hoozit(b) === "regexp" && | ||
785 | a.source === b.source && // the regex itself | ||
786 | a.global === b.global && // and its modifers (gmi) ... | ||
787 | a.ignoreCase === b.ignoreCase && | ||
788 | a.multiline === b.multiline; | ||
789 | }, | ||
790 | |||
791 | // - skip when the property is a method of an instance (OOP) | ||
792 | // - abort otherwise, | ||
793 | // initial === would have catch identical references anyway | ||
794 | "function": function () { | ||
795 | var caller = callers[callers.length - 1]; | ||
796 | return caller !== Object && | ||
797 | typeof caller !== "undefined"; | ||
798 | }, | ||
799 | |||
800 | "array": function (b, a) { | ||
801 | var i, j, loop; | ||
802 | var len; | ||
803 | |||
804 | // b could be an object literal here | ||
805 | if ( ! (hoozit(b) === "array")) { | ||
806 | return false; | ||
807 | } | ||
808 | |||
809 | len = a.length; | ||
810 | if (len !== b.length) { // safe and faster | ||
811 | return false; | ||
812 | } | ||
813 | |||
814 | //track reference to avoid circular references | ||
815 | parents.push(a); | ||
816 | for (i = 0; i < len; i++) { | ||
817 | loop = false; | ||
818 | for(j=0;j<parents.length;j++){ | ||
819 | if(parents[j] === a[i]){ | ||
820 | loop = true;//dont rewalk array | ||
821 | } | ||
822 | } | ||
823 | if (!loop && ! innerEquiv(a[i], b[i])) { | ||
824 | parents.pop(); | ||
825 | return false; | ||
826 | } | ||
827 | } | ||
828 | parents.pop(); | ||
829 | return true; | ||
830 | }, | ||
831 | |||
832 | "object": function (b, a) { | ||
833 | var i, j, loop; | ||
834 | var eq = true; // unless we can proove it | ||
835 | var aProperties = [], bProperties = []; // collection of strings | ||
836 | |||
837 | // comparing constructors is more strict than using instanceof | ||
838 | if ( a.constructor !== b.constructor) { | ||
839 | return false; | ||
840 | } | ||
841 | |||
842 | // stack constructor before traversing properties | ||
843 | callers.push(a.constructor); | ||
844 | //track reference to avoid circular references | ||
845 | parents.push(a); | ||
846 | |||
847 | for (i in a) { // be strict: don't ensures hasOwnProperty and go deep | ||
848 | loop = false; | ||
849 | for(j=0;j<parents.length;j++){ | ||
850 | if(parents[j] === a[i]) | ||
851 | loop = true; //don't go down the same path twice | ||
852 | } | ||
853 | aProperties.push(i); // collect a's properties | ||
854 | |||
855 | if (!loop && ! innerEquiv(a[i], b[i])) { | ||
856 | eq = false; | ||
857 | break; | ||
858 | } | ||
859 | } | ||
860 | |||
861 | callers.pop(); // unstack, we are done | ||
862 | parents.pop(); | ||
863 | |||
864 | for (i in b) { | ||
865 | bProperties.push(i); // collect b's properties | ||
866 | } | ||
867 | |||
868 | // Ensures identical properties name | ||
869 | return eq && innerEquiv(aProperties.sort(), bProperties.sort()); | ||
870 | } | ||
871 | }; | ||
872 | }(); | ||
873 | |||
874 | innerEquiv = function () { // can take multiple arguments | ||
875 | var args = Array.prototype.slice.apply(arguments); | ||
876 | if (args.length < 2) { | ||
877 | return true; // end transition | ||
878 | } | ||
879 | |||
880 | return (function (a, b) { | ||
881 | if (a === b) { | ||
882 | return true; // catch the most you can | ||
883 | } else if (a === null || b === null || typeof a === "undefined" || typeof b === "undefined" || hoozit(a) !== hoozit(b)) { | ||
884 | return false; // don't lose time with error prone cases | ||
885 | } else { | ||
886 | return bindCallbacks(a, callbacks, [b, a]); | ||
887 | } | ||
888 | |||
889 | // apply transition with (1..n) arguments | ||
890 | })(args[0], args[1]) && arguments.callee.apply(this, args.splice(1, args.length -1)); | ||
891 | }; | ||
892 | |||
893 | return innerEquiv; | ||
894 | |||
895 | }(); | ||
896 | |||
897 | /** | ||
898 | * jsDump | ||
899 | * Copyright (c) 2008 Ariel Flesler - aflesler(at)gmail(dot)com | http://flesler.blogspot.com | ||
900 | * Licensed under BSD (http://www.opensource.org/licenses/bsd-license.php) | ||
901 | * Date: 5/15/2008 | ||
902 | * @projectDescription Advanced and extensible data dumping for Javascript. | ||
903 | * @version 1.0.0 | ||
904 | * @author Ariel Flesler | ||
905 | * @link {http://flesler.blogspot.com/2008/05/jsdump-pretty-dump-of-any-javascript.html} | ||
906 | */ | ||
907 | QUnit.jsDump = (function() { | ||
908 | function quote( str ) { | ||
909 | return '"' + str.toString().replace(/"/g, '\\"') + '"'; | ||
910 | }; | ||
911 | function literal( o ) { | ||
912 | return o + ''; | ||
913 | }; | ||
914 | function join( pre, arr, post ) { | ||
915 | var s = jsDump.separator(), | ||
916 | base = jsDump.indent(), | ||
917 | inner = jsDump.indent(1); | ||
918 | if ( arr.join ) | ||
919 | arr = arr.join( ',' + s + inner ); | ||
920 | if ( !arr ) | ||
921 | return pre + post; | ||
922 | return [ pre, inner + arr, base + post ].join(s); | ||
923 | }; | ||
924 | function array( arr ) { | ||
925 | var i = arr.length, ret = Array(i); | ||
926 | this.up(); | ||
927 | while ( i-- ) | ||
928 | ret[i] = this.parse( arr[i] ); | ||
929 | this.down(); | ||
930 | return join( '[', ret, ']' ); | ||
931 | }; | ||
932 | |||
933 | var reName = /^function (\w+)/; | ||
934 | |||
935 | var jsDump = { | ||
936 | parse:function( obj, type ) { //type is used mostly internally, you can fix a (custom)type in advance | ||
937 | var parser = this.parsers[ type || this.typeOf(obj) ]; | ||
938 | type = typeof parser; | ||
939 | |||
940 | return type == 'function' ? parser.call( this, obj ) : | ||
941 | type == 'string' ? parser : | ||
942 | this.parsers.error; | ||
943 | }, | ||
944 | typeOf:function( obj ) { | ||
945 | var type; | ||
946 | if ( obj === null ) { | ||
947 | type = "null"; | ||
948 | } else if (typeof obj === "undefined") { | ||
949 | type = "undefined"; | ||
950 | } else if (QUnit.is("RegExp", obj)) { | ||
951 | type = "regexp"; | ||
952 | } else if (QUnit.is("Date", obj)) { | ||
953 | type = "date"; | ||
954 | } else if (QUnit.is("Function", obj)) { | ||
955 | type = "function"; | ||
956 | } else if (obj.setInterval && obj.document && !obj.nodeType) { | ||
957 | type = "window"; | ||
958 | } else if (obj.nodeType === 9) { | ||
959 | type = "document"; | ||
960 | } else if (obj.nodeType) { | ||
961 | type = "node"; | ||
962 | } else if (typeof obj === "object" && typeof obj.length === "number" && obj.length >= 0) { | ||
963 | type = "array"; | ||
964 | } else { | ||
965 | type = typeof obj; | ||
966 | } | ||
967 | return type; | ||
968 | }, | ||
969 | separator:function() { | ||
970 | return this.multiline ? this.HTML ? '<br />' : '\n' : this.HTML ? ' ' : ' '; | ||
971 | }, | ||
972 | indent:function( extra ) {// extra can be a number, shortcut for increasing-calling-decreasing | ||
973 | if ( !this.multiline ) | ||
974 | return ''; | ||
975 | var chr = this.indentChar; | ||
976 | if ( this.HTML ) | ||
977 | chr = chr.replace(/\t/g,' ').replace(/ /g,' '); | ||
978 | return Array( this._depth_ + (extra||0) ).join(chr); | ||
979 | }, | ||
980 | up:function( a ) { | ||
981 | this._depth_ += a || 1; | ||
982 | }, | ||
983 | down:function( a ) { | ||
984 | this._depth_ -= a || 1; | ||
985 | }, | ||
986 | setParser:function( name, parser ) { | ||
987 | this.parsers[name] = parser; | ||
988 | }, | ||
989 | // The next 3 are exposed so you can use them | ||
990 | quote:quote, | ||
991 | literal:literal, | ||
992 | join:join, | ||
993 | // | ||
994 | _depth_: 1, | ||
995 | // This is the list of parsers, to modify them, use jsDump.setParser | ||
996 | parsers:{ | ||
997 | window: '[Window]', | ||
998 | document: '[Document]', | ||
999 | error:'[ERROR]', //when no parser is found, shouldn't happen | ||
1000 | unknown: '[Unknown]', | ||
1001 | 'null':'null', | ||
1002 | undefined:'undefined', | ||
1003 | 'function':function( fn ) { | ||
1004 | var ret = 'function', | ||
1005 | name = 'name' in fn ? fn.name : (reName.exec(fn)||[])[1];//functions never have name in IE | ||
1006 | if ( name ) | ||
1007 | ret += ' ' + name; | ||
1008 | ret += '('; | ||
1009 | |||
1010 | ret = [ ret, this.parse( fn, 'functionArgs' ), '){'].join(''); | ||
1011 | return join( ret, this.parse(fn,'functionCode'), '}' ); | ||
1012 | }, | ||
1013 | array: array, | ||
1014 | nodelist: array, | ||
1015 | arguments: array, | ||
1016 | object:function( map ) { | ||
1017 | var ret = [ ]; | ||
1018 | this.up(); | ||
1019 | for ( var key in map ) | ||
1020 | ret.push( this.parse(key,'key') + ': ' + this.parse(map[key]) ); | ||
1021 | this.down(); | ||
1022 | return join( '{', ret, '}' ); | ||
1023 | }, | ||
1024 | node:function( node ) { | ||
1025 | var open = this.HTML ? '<' : '<', | ||
1026 | close = this.HTML ? '>' : '>'; | ||
1027 | |||
1028 | var tag = node.nodeName.toLowerCase(), | ||
1029 | ret = open + tag; | ||
1030 | |||
1031 | for ( var a in this.DOMAttrs ) { | ||
1032 | var val = node[this.DOMAttrs[a]]; | ||
1033 | if ( val ) | ||
1034 | ret += ' ' + a + '=' + this.parse( val, 'attribute' ); | ||
1035 | } | ||
1036 | return ret + close + open + '/' + tag + close; | ||
1037 | }, | ||
1038 | functionArgs:function( fn ) {//function calls it internally, it's the arguments part of the function | ||
1039 | var l = fn.length; | ||
1040 | if ( !l ) return ''; | ||
1041 | |||
1042 | var args = Array(l); | ||
1043 | while ( l-- ) | ||
1044 | args[l] = String.fromCharCode(97+l);//97 is 'a' | ||
1045 | return ' ' + args.join(', ') + ' '; | ||
1046 | }, | ||
1047 | key:quote, //object calls it internally, the key part of an item in a map | ||
1048 | functionCode:'[code]', //function calls it internally, it's the content of the function | ||
1049 | attribute:quote, //node calls it internally, it's an html attribute value | ||
1050 | string:quote, | ||
1051 | date:quote, | ||
1052 | regexp:literal, //regex | ||
1053 | number:literal, | ||
1054 | 'boolean':literal | ||
1055 | }, | ||
1056 | DOMAttrs:{//attributes to dump from nodes, name=>realName | ||
1057 | id:'id', | ||
1058 | name:'name', | ||
1059 | 'class':'className' | ||
1060 | }, | ||
1061 | HTML:false,//if true, entities are escaped ( <, >, \t, space and \n ) | ||
1062 | indentChar:' ',//indentation unit | ||
1063 | multiline:false //if true, items in a collection, are separated by a \n, else just a space. | ||
1064 | }; | ||
1065 | |||
1066 | return jsDump; | ||
1067 | })(); | ||
1068 | |||
1069 | })(this); | ||
diff --git a/Blocks/syntax/tests/syntaxhighlighter_tests.html b/Blocks/syntax/tests/syntaxhighlighter_tests.html new file mode 100644 index 0000000..58e963f --- /dev/null +++ b/Blocks/syntax/tests/syntaxhighlighter_tests.html | |||
@@ -0,0 +1,249 @@ | |||
1 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> | ||
2 | <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> | ||
3 | <head> | ||
4 | <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> | ||
5 | <title>SyntaxHighlighter Highlight Tests</title> | ||
6 | |||
7 | <!-- jQuery & QUnit --> | ||
8 | <script type="text/javascript" src="js/jquery-1.4.2.js"></script> | ||
9 | <script type="text/javascript" src="js/qunit.js"></script> | ||
10 | <link type="text/css" rel="stylesheet" href="js/qunit.css"/> | ||
11 | |||
12 | <!-- SyntaxHighlighter --> | ||
13 | <script type="text/javascript" src="/sh/scripts/XRegExp.js"></script> <!-- XRegExp is bundled with the final shCore.js during build --> | ||
14 | <script type="text/javascript" src="/sh/scripts/shCore.js"></script> | ||
15 | <script type="text/javascript" src="/sh/scripts/shLegacy.js"></script> | ||
16 | <script type="text/javascript" src="/sh/scripts/shBrushAppleScript.js"></script> | ||
17 | <script type="text/javascript" src="/sh/scripts/shBrushAS3.js"></script> | ||
18 | <script type="text/javascript" src="/sh/scripts/shBrushBash.js"></script> | ||
19 | <script type="text/javascript" src="/sh/scripts/shBrushColdFusion.js"></script> | ||
20 | <script type="text/javascript" src="/sh/scripts/shBrushCpp.js"></script> | ||
21 | <script type="text/javascript" src="/sh/scripts/shBrushCSharp.js"></script> | ||
22 | <script type="text/javascript" src="/sh/scripts/shBrushCss.js"></script> | ||
23 | <script type="text/javascript" src="/sh/scripts/shBrushDelphi.js"></script> | ||
24 | <script type="text/javascript" src="/sh/scripts/shBrushDiff.js"></script> | ||
25 | <script type="text/javascript" src="/sh/scripts/shBrushErlang.js"></script> | ||
26 | <script type="text/javascript" src="/sh/scripts/shBrushGroovy.js"></script> | ||
27 | <script type="text/javascript" src="/sh/scripts/shBrushJava.js"></script> | ||
28 | <script type="text/javascript" src="/sh/scripts/shBrushJavaFx.js"></script> | ||
29 | <script type="text/javascript" src="/sh/scripts/shBrushJScript.js"></script> | ||
30 | <script type="text/javascript" src="/sh/scripts/shBrushPerl.js"></script> | ||
31 | <script type="text/javascript" src="/sh/scripts/shBrushPhp.js"></script> | ||
32 | <script type="text/javascript" src="/sh/scripts/shBrushPlain.js"></script> | ||
33 | <script type="text/javascript" src="/sh/scripts/shBrushPowerShell.js"></script> | ||
34 | <script type="text/javascript" src="/sh/scripts/shBrushPython.js"></script> | ||
35 | <script type="text/javascript" src="/sh/scripts/shBrushRuby.js"></script> | ||
36 | <script type="text/javascript" src="/sh/scripts/shBrushSass.js"></script> | ||
37 | <script type="text/javascript" src="/sh/scripts/shBrushScala.js"></script> | ||
38 | <script type="text/javascript" src="/sh/scripts/shBrushSql.js"></script> | ||
39 | <script type="text/javascript" src="/sh/scripts/shBrushVb.js"></script> | ||
40 | <script type="text/javascript" src="/sh/scripts/shBrushXml.js"></script> | ||
41 | |||
42 | <link type="text/css" rel="stylesheet" href="/sh/styles/shCoreDefault.css"/> | ||
43 | </head> | ||
44 | |||
45 | <body> | ||
46 | |||
47 | <h1 id="qunit-header">SyntaxHighlighter Highlight Lines Test</h1> | ||
48 | <h2 id="qunit-banner"></h2> | ||
49 | <div id="qunit-testrunner-toolbar"></div> | ||
50 | <h2 id="qunit-userAgent"></h2> | ||
51 | <ol id="qunit-tests"></ol> | ||
52 | |||
53 | <button id="interaction">Run interaction tests</button> | ||
54 | |||
55 | <div id="output"> | ||
56 | </div> | ||
57 | |||
58 | <style> | ||
59 | body { | ||
60 | background: white; | ||
61 | } | ||
62 | |||
63 | #interaction { | ||
64 | margin-top: 1em; | ||
65 | padding: 1em; | ||
66 | font-size: 1.5em; | ||
67 | } | ||
68 | |||
69 | .test-wrap { | ||
70 | width: 45%; | ||
71 | height: 400px; | ||
72 | overflow: auto; | ||
73 | float: left; | ||
74 | margin: 1em 1em 0 0; | ||
75 | border: 5px solid silver; | ||
76 | background: gray; | ||
77 | font-family: Helvetica; | ||
78 | } | ||
79 | |||
80 | .test-wrap h3 { | ||
81 | margin: 1em 0 0 1em; | ||
82 | color: white; | ||
83 | font-size: 1em; | ||
84 | font-weight: normal; | ||
85 | } | ||
86 | </style> | ||
87 | |||
88 | <script type="text/javascript"> | ||
89 | var testQueue = [], | ||
90 | renderTests = [ | ||
91 | '001_basic', | ||
92 | '002_brushes', | ||
93 | '003_script_tag', | ||
94 | '004_url_parsing', | ||
95 | '005_no_gutter', | ||
96 | '006_pad_line_numbers', | ||
97 | '007_collapse', | ||
98 | '008_first_line', | ||
99 | '009_class_name', | ||
100 | '010_highlight', | ||
101 | '011_smart_tabs', | ||
102 | '012_server_side', | ||
103 | '013_html_script', | ||
104 | '014_legacy' | ||
105 | ], | ||
106 | interactionTests = [ | ||
107 | '007_collapse_interaction' | ||
108 | ] | ||
109 | ; | ||
110 | |||
111 | function queue(func) | ||
112 | { | ||
113 | testQueue.push(func); | ||
114 | }; | ||
115 | |||
116 | function ok_sh($sh) | ||
117 | { | ||
118 | ok($sh.length > 0, 'Element present'); | ||
119 | ok($sh.is('div'), 'Element is DIV'); | ||
120 | ok($sh.find('> div').is('.syntaxhighlighter'), 'Nested DIV is a .syntaxhighlighter'); | ||
121 | }; | ||
122 | |||
123 | function ok_toolbar($sh) | ||
124 | { | ||
125 | var $target = $sh.find('> .syntaxhighlighter > .toolbar'); | ||
126 | ok($target.length > 0, 'Toolbar present'); | ||
127 | ok($target.is(':visible'), 'Toolbar visible'); | ||
128 | }; | ||
129 | |||
130 | function ok_caption($sh, value) | ||
131 | { | ||
132 | var $target = $sh.find('> .syntaxhighlighter > table > caption'); | ||
133 | ok($target.length > 0, 'Caption present'); | ||
134 | ok($target.is(':visible'), 'Caption visible'); | ||
135 | |||
136 | if (value != null) | ||
137 | equals($target.text(), value, 'Caption text'); | ||
138 | }; | ||
139 | |||
140 | function ok_gutter($sh) | ||
141 | { | ||
142 | var $target = $sh.find('> .syntaxhighlighter > table > tbody > tr > .gutter'); | ||
143 | ok($target.length > 0, 'Gutter present'); | ||
144 | ok($target.is(':visible'), 'Gutter visible'); | ||
145 | }; | ||
146 | |||
147 | function ok_code($sh) | ||
148 | { | ||
149 | var $target = $sh.find('> .syntaxhighlighter > table > tbody > tr > .code'); | ||
150 | ok($target.length > 0, 'Code present'); | ||
151 | ok($target.is(':visible'), 'Code visible'); | ||
152 | }; | ||
153 | |||
154 | function ok_collapsed($sh) | ||
155 | { | ||
156 | ok($sh.find('> .syntaxhighlighter.collapsed').length == 1, '.collapsed present'); | ||
157 | }; | ||
158 | |||
159 | function loadTests(tests, addHtml) | ||
160 | { | ||
161 | var html = ''; | ||
162 | |||
163 | $.each(tests, function(index) | ||
164 | { | ||
165 | var name = this; | ||
166 | |||
167 | if (addHtml != false) | ||
168 | { | ||
169 | html += '<div class="test-wrap">\n' | ||
170 | html += '<h3>' + name + '</h3>\n'; | ||
171 | } | ||
172 | |||
173 | $.ajax({ | ||
174 | url: 'cases/' + name + '.html', | ||
175 | type: 'GET', | ||
176 | dataType: 'text', | ||
177 | async: false, | ||
178 | success: function(data) | ||
179 | { | ||
180 | html += data; | ||
181 | }, | ||
182 | error: function() | ||
183 | { | ||
184 | html += '<p>Not found...</p>'; | ||
185 | } | ||
186 | }); | ||
187 | |||
188 | if (addHtml != false) | ||
189 | { | ||
190 | html += '</div>\n'; | ||
191 | |||
192 | if (index % 2 != 0) | ||
193 | html += '<div style="clear:both"></div>\n'; | ||
194 | } | ||
195 | }); | ||
196 | |||
197 | // | ||
198 | // Looks like .html() is producing different results when it comes to | ||
199 | // content that has <script /> which type is NOT "text/javascript". | ||
200 | // $('#output').html(html); | ||
201 | // | ||
202 | $('#output')[0].innerHTML += html; | ||
203 | |||
204 | // | ||
205 | // However, if HTML assigned to to .innerHTML container <script/> tags, | ||
206 | // they are not executed, so we have to manually walk all of them and | ||
207 | // eval() the content. | ||
208 | // | ||
209 | $('#output script[type="text/javascript"][class!="executed"]').each(function() | ||
210 | { | ||
211 | eval($(this).text() || $(this).html()); | ||
212 | $(this).addClass('executed') | ||
213 | }); | ||
214 | }; | ||
215 | |||
216 | function runTestQueue() | ||
217 | { | ||
218 | |||
219 | $.each(testQueue, function() | ||
220 | { | ||
221 | this.apply(null); | ||
222 | }); | ||
223 | |||
224 | testQueue = []; | ||
225 | }; | ||
226 | |||
227 | $(document).ready(function() | ||
228 | { | ||
229 | loadTests(renderTests); | ||
230 | SyntaxHighlighter.highlight(); | ||
231 | runTestQueue(); | ||
232 | |||
233 | $('#interaction').click(function() | ||
234 | { | ||
235 | loadTests(interactionTests, false /* addHtml */); | ||
236 | runTestQueue(); | ||
237 | }); | ||
238 | }); | ||
239 | </script> | ||
240 | |||
241 | |||
242 | <!-- jinwei.me Baidu tongji analytics --> | ||
243 | <script type="text/javascript"> | ||
244 | var _bdhmProtocol = (("https:" == document.location.protocol) ? " https://" : " http://"); | ||
245 | document.write(unescape("%3Cscript src='" + _bdhmProtocol + "hm.baidu.com/h.js%3F91918ac6d6854623883a2b546ebc00ac' type='text/javascript'%3E%3C/script%3E")); | ||
246 | </script> | ||
247 | |||
248 | </body> | ||
249 | </html> | ||
diff --git a/Blocks/syntax/tests/theme_tests.html b/Blocks/syntax/tests/theme_tests.html new file mode 100644 index 0000000..49ddd3a --- /dev/null +++ b/Blocks/syntax/tests/theme_tests.html | |||
@@ -0,0 +1,141 @@ | |||
1 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> | ||
2 | <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> | ||
3 | <head> | ||
4 | <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> | ||
5 | <title>SyntaxHighlighter Theme Tests</title> | ||
6 | <script type="text/javascript" src="/js/jquery-1.4.2.js"></script> | ||
7 | </head> | ||
8 | |||
9 | <body> | ||
10 | |||
11 | <div id="output"></div> | ||
12 | |||
13 | <style> | ||
14 | body { | ||
15 | background: white; | ||
16 | font-family: Helvetica; | ||
17 | } | ||
18 | |||
19 | .test-wrap { | ||
20 | width: 100%; | ||
21 | height: 800px; | ||
22 | overflow: auto; | ||
23 | border: none; | ||
24 | } | ||
25 | </style> | ||
26 | |||
27 | <script id="sample" type="text/plain"> | ||
28 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> | ||
29 | <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> | ||
30 | <head> | ||
31 | <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> | ||
32 | <title>SyntaxHighlighter Theme Tests</title> | ||
33 | </head> | ||
34 | |||
35 | <body> | ||
36 | <script> | ||
37 | /** | ||
38 | * Looks for a child or parent node which has specified classname. | ||
39 | * Equivalent to jQuery's $(container).find(".className") | ||
40 | * @param {Element} target Target element. | ||
41 | * @param {String} search Class name or node name to look for. | ||
42 | * @param {Boolean} reverse If set to true, will go up the node tree instead of down. | ||
43 | * @return {Element} Returns found child or parent element on null. | ||
44 | */ | ||
45 | function findElement(target, search, reverse /* optional */) | ||
46 | { | ||
47 | if (target == null) | ||
48 | return null; | ||
49 | |||
50 | var nodes = reverse != true ? target.childNodes : [ target.parentNode ], | ||
51 | propertyToFind = { '#' : 'id', '.' : 'className' }[search.substr(0, 1)] || 'nodeName', | ||
52 | expectedValue, | ||
53 | found | ||
54 | ; | ||
55 | |||
56 | // main return of the found node | ||
57 | if ((target[propertyToFind] || '').indexOf(expectedValue) != -1) | ||
58 | return target; | ||
59 | |||
60 | return found; | ||
61 | }; | ||
62 | </script> | ||
63 | |||
64 | |||
65 | <!-- jinwei.me Baidu tongji analytics --> | ||
66 | <script type="text/javascript"> | ||
67 | var _bdhmProtocol = (("https:" == document.location.protocol) ? " https://" : " http://"); | ||
68 | document.write(unescape("%3Cscript src='" + _bdhmProtocol + "hm.baidu.com/h.js%3F91918ac6d6854623883a2b546ebc00ac' type='text/javascript'%3E%3C/script%3E")); | ||
69 | </script> | ||
70 | |||
71 | </body> | ||
72 | </html> | ||
73 | </script> | ||
74 | |||
75 | <script type="text/javascript"> | ||
76 | var themes = [ | ||
77 | ['#fff', 'Default'], | ||
78 | ['#000', 'Django'], | ||
79 | ['#fff', 'Eclipse'], | ||
80 | ['#000', 'Emacs'], | ||
81 | ['#000', 'FadeToGrey'], | ||
82 | ['#000', 'MDUltra'], | ||
83 | ['#000', 'Midnight'], | ||
84 | ['#000', 'RDark'] | ||
85 | ]; | ||
86 | |||
87 | $(document).ready(function() | ||
88 | { | ||
89 | var sample = $('#sample').text().replace(/</g, '<'); | ||
90 | |||
91 | $.each(themes, function(index) | ||
92 | { | ||
93 | var $iframe = $('<iframe class="test-wrap" src="about:blank" />'), | ||
94 | background = this[0], | ||
95 | themeName = this[1] | ||
96 | ; | ||
97 | |||
98 | $('#output') | ||
99 | .append('' | ||
100 | + '<h1>' | ||
101 | + '<a href="#theme' + (index + 1) + '">next</a> ' | ||
102 | + '<a name="theme' + index + '">' | ||
103 | + themeName | ||
104 | + '</a>' | ||
105 | + '</h1>' | ||
106 | ) | ||
107 | .append($iframe) | ||
108 | ; | ||
109 | |||
110 | $iframe.ready(function() | ||
111 | { | ||
112 | var doc = $iframe[0].contentDocument; | ||
113 | $iframe.css('background', background); | ||
114 | |||
115 | doc.write('' | ||
116 | + '<scr' + 'ipt type="text/javascript" src="/sh/scripts/XRegExp.js"></scr' + 'ipt>' | ||
117 | + '<scr' + 'ipt type="text/javascript" src="/sh/scripts/shCore.js"></scr' + 'ipt>' | ||
118 | + '<scr' + 'ipt type="text/javascript" src="/sh/scripts/shBrushXml.js"></scr' + 'ipt>' | ||
119 | + '<scr' + 'ipt type="text/javascript" src="/sh/scripts/shBrushJScript.js"></scr' + 'ipt>' | ||
120 | + '<link type="text/css" rel="stylesheet" href="/sh/styles/shCore' + themeName + '.css"/>' | ||
121 | + '<pre type="syntaxhighlighter" class="brush: js; html-script: true; highlight: [5, 20]" title="This is SyntaxHighlighter theme ' + themeName + ' in action!">' | ||
122 | + sample | ||
123 | + '</pre>' | ||
124 | + '<pre type="syntaxhighlighter" class="brush: js; html-script: true; collapse: true">' | ||
125 | + sample | ||
126 | + '</pre>' | ||
127 | + '<scr' + 'ipt type="text/javascript">' | ||
128 | + 'SyntaxHighlighter.highlight();' | ||
129 | + '</scr' + 'ipt>' | ||
130 | ); | ||
131 | doc.close(); | ||
132 | }); | ||
133 | }); | ||
134 | |||
135 | $('#output a[name]:first').attr('name', 'top'); | ||
136 | $('#output a[href]:last').attr('href', '#top').html('top'); | ||
137 | }); | ||
138 | </script> | ||
139 | |||
140 | </body> | ||
141 | </html> | ||
diff --git a/Blocks/syntax/tests/webrick.rb b/Blocks/syntax/tests/webrick.rb new file mode 100644 index 0000000..0b3c93c --- /dev/null +++ b/Blocks/syntax/tests/webrick.rb | |||
@@ -0,0 +1,11 @@ | |||
1 | require 'webrick' | ||
2 | include WEBrick | ||
3 | |||
4 | s = HTTPServer.new( | ||
5 | :Port => 2010, | ||
6 | :DocumentRoot => Dir::pwd | ||
7 | ) | ||
8 | s.mount('/sh/scripts', WEBrick::HTTPServlet::FileHandler, '../scripts') | ||
9 | s.mount('/sh/styles', WEBrick::HTTPServlet::FileHandler, '../styles') | ||
10 | trap('INT') { s.stop } | ||
11 | s.start | ||
diff --git a/Blocks/syntax/tests/webrick.sh b/Blocks/syntax/tests/webrick.sh new file mode 100644 index 0000000..7e249f8 --- /dev/null +++ b/Blocks/syntax/tests/webrick.sh | |||
@@ -0,0 +1,2 @@ | |||
1 | #!/bin/sh | ||
2 | ruby webrick.rb | ||
diff --git a/Blocks/time/index.html b/Blocks/time/index.html new file mode 100644 index 0000000..c363595 --- /dev/null +++ b/Blocks/time/index.html | |||
@@ -0,0 +1,55 @@ | |||
1 | <!DOCTYPE html> | ||
2 | <html> | ||
3 | <head> | ||
4 | <script src="jquery.min.js"></script> | ||
5 | |||
6 | <meta charset="UTF-8" /> | ||
7 | <title> Lexical Clock</title> | ||
8 | <link type="text/css" rel="stylesheet" href="style.css" /> | ||
9 | <script type="text/javascript" src="jquery-1.8.3.min.js"></script> | ||
10 | <script type="text/javascript" src="script.js"></script> | ||
11 | </head> | ||
12 | |||
13 | <body> | ||
14 | <div id="main"> | ||
15 | <div class="row"> | ||
16 | <div id="its">It is</div> <div id="half"> half</div> <div id="tenMod">ten</div> | ||
17 | </div> | ||
18 | |||
19 | <div class="row"> | ||
20 | <div id="quarter">quarter</div> <div id="twenty">twenty</div> | ||
21 | </div> | ||
22 | |||
23 | <div class="row"> | ||
24 | <div id="fiveMod">five</div> <div id="minutes">minutes</div> <div id="to">to</div> | ||
25 | </div> | ||
26 | |||
27 | <div class="row"> | ||
28 | <div id="past">past</div> <div id="one">one</div> <div id="three">three</div> | ||
29 | </div> | ||
30 | |||
31 | <div class="row"> | ||
32 | <div id="two">two</div> <div id="four">four</div> <div id="five">five</div> | ||
33 | </div> | ||
34 | |||
35 | <div class="row"> | ||
36 | <div id="six">six</div> <div id="seven">seven</div> <div id="eight">eight</div> | ||
37 | </div> | ||
38 | |||
39 | <div class="row"> | ||
40 | <div id="nine">nine</div> <div id="ten">ten</div> <div id="eleven">eleven</div> | ||
41 | </div> | ||
42 | |||
43 | <div class="row"> | ||
44 | <div id="twelve">twelve</div> <div id="oclock">o'clock</div> | ||
45 | </div> | ||
46 | </div> | ||
47 | |||
48 | <!-- jinwei.me Baidu tongji analytics --> | ||
49 | <script type="text/javascript"> | ||
50 | var _bdhmProtocol = (("https:" == document.location.protocol) ? " https://" : " http://"); | ||
51 | document.write(unescape("%3Cscript src='" + _bdhmProtocol + "hm.baidu.com/h.js%3F91918ac6d6854623883a2b546ebc00ac' type='text/javascript'%3E%3C/script%3E")); | ||
52 | </script> | ||
53 | |||
54 | </body> | ||
55 | </html> \ No newline at end of file | ||
diff --git a/Blocks/time/jquery.min.js b/Blocks/time/jquery.min.js new file mode 100644 index 0000000..dbbc602 --- /dev/null +++ b/Blocks/time/jquery.min.js | |||
@@ -0,0 +1,6 @@ | |||
1 | /*! jQuery v1.10.2 | (c) 2005, 2013 jQuery Foundation, Inc. | jquery.org/license | ||
2 | //@ sourceMappingURL=jquery.min.map | ||
3 | */ | ||
4 | (function(e,t){var n,r,i=typeof t,o=e.location,a=e.document,s=a.documentElement,l=e.jQuery,u=e.$,c={},p=[],f="1.10.2",d=p.concat,h=p.push,g=p.slice,m=p.indexOf,y=c.toString,v=c.hasOwnProperty,b=f.trim,x=function(e,t){return new x.fn.init(e,t,r)},w=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,T=/\S+/g,C=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,N=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,k=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,E=/^[\],:{}\s]*$/,S=/(?:^|:|,)(?:\s*\[)+/g,A=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,j=/"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g,D=/^-ms-/,L=/-([\da-z])/gi,H=function(e,t){return t.toUpperCase()},q=function(e){(a.addEventListener||"load"===e.type||"complete"===a.readyState)&&(_(),x.ready())},_=function(){a.addEventListener?(a.removeEventListener("DOMContentLoaded",q,!1),e.removeEventListener("load",q,!1)):(a.detachEvent("onreadystatechange",q),e.detachEvent("onload",q))};x.fn=x.prototype={jquery:f,constructor:x,init:function(e,n,r){var i,o;if(!e)return this;if("string"==typeof e){if(i="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:N.exec(e),!i||!i[1]&&n)return!n||n.jquery?(n||r).find(e):this.constructor(n).find(e);if(i[1]){if(n=n instanceof x?n[0]:n,x.merge(this,x.parseHTML(i[1],n&&n.nodeType?n.ownerDocument||n:a,!0)),k.test(i[1])&&x.isPlainObject(n))for(i in n)x.isFunction(this[i])?this[i](n[i]):this.attr(i,n[i]);return this}if(o=a.getElementById(i[2]),o&&o.parentNode){if(o.id!==i[2])return r.find(e);this.length=1,this[0]=o}return this.context=a,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):x.isFunction(e)?r.ready(e):(e.selector!==t&&(this.selector=e.selector,this.context=e.context),x.makeArray(e,this))},selector:"",length:0,toArray:function(){return g.call(this)},get:function(e){return null==e?this.toArray():0>e?this[this.length+e]:this[e]},pushStack:function(e){var t=x.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:function(e,t){return x.each(this,e,t)},ready:function(e){return x.ready.promise().done(e),this},slice:function(){return this.pushStack(g.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(0>e?t:0);return this.pushStack(n>=0&&t>n?[this[n]]:[])},map:function(e){return this.pushStack(x.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:h,sort:[].sort,splice:[].splice},x.fn.init.prototype=x.fn,x.extend=x.fn.extend=function(){var e,n,r,i,o,a,s=arguments[0]||{},l=1,u=arguments.length,c=!1;for("boolean"==typeof s&&(c=s,s=arguments[1]||{},l=2),"object"==typeof s||x.isFunction(s)||(s={}),u===l&&(s=this,--l);u>l;l++)if(null!=(o=arguments[l]))for(i in o)e=s[i],r=o[i],s!==r&&(c&&r&&(x.isPlainObject(r)||(n=x.isArray(r)))?(n?(n=!1,a=e&&x.isArray(e)?e:[]):a=e&&x.isPlainObject(e)?e:{},s[i]=x.extend(c,a,r)):r!==t&&(s[i]=r));return s},x.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),noConflict:function(t){return e.$===x&&(e.$=u),t&&e.jQuery===x&&(e.jQuery=l),x},isReady:!1,readyWait:1,holdReady:function(e){e?x.readyWait++:x.ready(!0)},ready:function(e){if(e===!0?!--x.readyWait:!x.isReady){if(!a.body)return setTimeout(x.ready);x.isReady=!0,e!==!0&&--x.readyWait>0||(n.resolveWith(a,[x]),x.fn.trigger&&x(a).trigger("ready").off("ready"))}},isFunction:function(e){return"function"===x.type(e)},isArray:Array.isArray||function(e){return"array"===x.type(e)},isWindow:function(e){return null!=e&&e==e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?c[y.call(e)]||"object":typeof e},isPlainObject:function(e){var n;if(!e||"object"!==x.type(e)||e.nodeType||x.isWindow(e))return!1;try{if(e.constructor&&!v.call(e,"constructor")&&!v.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(r){return!1}if(x.support.ownLast)for(n in e)return v.call(e,n);for(n in e);return n===t||v.call(e,n)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw Error(e)},parseHTML:function(e,t,n){if(!e||"string"!=typeof e)return null;"boolean"==typeof t&&(n=t,t=!1),t=t||a;var r=k.exec(e),i=!n&&[];return r?[t.createElement(r[1])]:(r=x.buildFragment([e],t,i),i&&x(i).remove(),x.merge([],r.childNodes))},parseJSON:function(n){return e.JSON&&e.JSON.parse?e.JSON.parse(n):null===n?n:"string"==typeof n&&(n=x.trim(n),n&&E.test(n.replace(A,"@").replace(j,"]").replace(S,"")))?Function("return "+n)():(x.error("Invalid JSON: "+n),t)},parseXML:function(n){var r,i;if(!n||"string"!=typeof n)return null;try{e.DOMParser?(i=new DOMParser,r=i.parseFromString(n,"text/xml")):(r=new ActiveXObject("Microsoft.XMLDOM"),r.async="false",r.loadXML(n))}catch(o){r=t}return r&&r.documentElement&&!r.getElementsByTagName("parsererror").length||x.error("Invalid XML: "+n),r},noop:function(){},globalEval:function(t){t&&x.trim(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(D,"ms-").replace(L,H)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t,n){var r,i=0,o=e.length,a=M(e);if(n){if(a){for(;o>i;i++)if(r=t.apply(e[i],n),r===!1)break}else for(i in e)if(r=t.apply(e[i],n),r===!1)break}else if(a){for(;o>i;i++)if(r=t.call(e[i],i,e[i]),r===!1)break}else for(i in e)if(r=t.call(e[i],i,e[i]),r===!1)break;return e},trim:b&&!b.call("\ufeff\u00a0")?function(e){return null==e?"":b.call(e)}:function(e){return null==e?"":(e+"").replace(C,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(M(Object(e))?x.merge(n,"string"==typeof e?[e]:e):h.call(n,e)),n},inArray:function(e,t,n){var r;if(t){if(m)return m.call(t,e,n);for(r=t.length,n=n?0>n?Math.max(0,r+n):n:0;r>n;n++)if(n in t&&t[n]===e)return n}return-1},merge:function(e,n){var r=n.length,i=e.length,o=0;if("number"==typeof r)for(;r>o;o++)e[i++]=n[o];else while(n[o]!==t)e[i++]=n[o++];return e.length=i,e},grep:function(e,t,n){var r,i=[],o=0,a=e.length;for(n=!!n;a>o;o++)r=!!t(e[o],o),n!==r&&i.push(e[o]);return i},map:function(e,t,n){var r,i=0,o=e.length,a=M(e),s=[];if(a)for(;o>i;i++)r=t(e[i],i,n),null!=r&&(s[s.length]=r);else for(i in e)r=t(e[i],i,n),null!=r&&(s[s.length]=r);return d.apply([],s)},guid:1,proxy:function(e,n){var r,i,o;return"string"==typeof n&&(o=e[n],n=e,e=o),x.isFunction(e)?(r=g.call(arguments,2),i=function(){return e.apply(n||this,r.concat(g.call(arguments)))},i.guid=e.guid=e.guid||x.guid++,i):t},access:function(e,n,r,i,o,a,s){var l=0,u=e.length,c=null==r;if("object"===x.type(r)){o=!0;for(l in r)x.access(e,n,l,r[l],!0,a,s)}else if(i!==t&&(o=!0,x.isFunction(i)||(s=!0),c&&(s?(n.call(e,i),n=null):(c=n,n=function(e,t,n){return c.call(x(e),n)})),n))for(;u>l;l++)n(e[l],r,s?i:i.call(e[l],l,n(e[l],r)));return o?e:c?n.call(e):u?n(e[0],r):a},now:function(){return(new Date).getTime()},swap:function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=a[o];return i}}),x.ready.promise=function(t){if(!n)if(n=x.Deferred(),"complete"===a.readyState)setTimeout(x.ready);else if(a.addEventListener)a.addEventListener("DOMContentLoaded",q,!1),e.addEventListener("load",q,!1);else{a.attachEvent("onreadystatechange",q),e.attachEvent("onload",q);var r=!1;try{r=null==e.frameElement&&a.documentElement}catch(i){}r&&r.doScroll&&function o(){if(!x.isReady){try{r.doScroll("left")}catch(e){return setTimeout(o,50)}_(),x.ready()}}()}return n.promise(t)},x.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(e,t){c["[object "+t+"]"]=t.toLowerCase()});function M(e){var t=e.length,n=x.type(e);return x.isWindow(e)?!1:1===e.nodeType&&t?!0:"array"===n||"function"!==n&&(0===t||"number"==typeof t&&t>0&&t-1 in e)}r=x(a),function(e,t){var n,r,i,o,a,s,l,u,c,p,f,d,h,g,m,y,v,b="sizzle"+-new Date,w=e.document,T=0,C=0,N=st(),k=st(),E=st(),S=!1,A=function(e,t){return e===t?(S=!0,0):0},j=typeof t,D=1<<31,L={}.hasOwnProperty,H=[],q=H.pop,_=H.push,M=H.push,O=H.slice,F=H.indexOf||function(e){var t=0,n=this.length;for(;n>t;t++)if(this[t]===e)return t;return-1},B="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",P="[\\x20\\t\\r\\n\\f]",R="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",W=R.replace("w","w#"),$="\\["+P+"*("+R+")"+P+"*(?:([*^$|!~]?=)"+P+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+W+")|)|)"+P+"*\\]",I=":("+R+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+$.replace(3,8)+")*)|.*)\\)|)",z=RegExp("^"+P+"+|((?:^|[^\\\\])(?:\\\\.)*)"+P+"+$","g"),X=RegExp("^"+P+"*,"+P+"*"),U=RegExp("^"+P+"*([>+~]|"+P+")"+P+"*"),V=RegExp(P+"*[+~]"),Y=RegExp("="+P+"*([^\\]'\"]*)"+P+"*\\]","g"),J=RegExp(I),G=RegExp("^"+W+"$"),Q={ID:RegExp("^#("+R+")"),CLASS:RegExp("^\\.("+R+")"),TAG:RegExp("^("+R.replace("w","w*")+")"),ATTR:RegExp("^"+$),PSEUDO:RegExp("^"+I),CHILD:RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+P+"*(even|odd|(([+-]|)(\\d*)n|)"+P+"*(?:([+-]|)"+P+"*(\\d+)|))"+P+"*\\)|)","i"),bool:RegExp("^(?:"+B+")$","i"),needsContext:RegExp("^"+P+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+P+"*((?:-\\d)?\\d*)"+P+"*\\)|)(?=[^-]|$)","i")},K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,et=/^(?:input|select|textarea|button)$/i,tt=/^h\d$/i,nt=/'|\\/g,rt=RegExp("\\\\([\\da-f]{1,6}"+P+"?|("+P+")|.)","ig"),it=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:0>r?String.fromCharCode(r+65536):String.fromCharCode(55296|r>>10,56320|1023&r)};try{M.apply(H=O.call(w.childNodes),w.childNodes),H[w.childNodes.length].nodeType}catch(ot){M={apply:H.length?function(e,t){_.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function at(e,t,n,i){var o,a,s,l,u,c,d,m,y,x;if((t?t.ownerDocument||t:w)!==f&&p(t),t=t||f,n=n||[],!e||"string"!=typeof e)return n;if(1!==(l=t.nodeType)&&9!==l)return[];if(h&&!i){if(o=Z.exec(e))if(s=o[1]){if(9===l){if(a=t.getElementById(s),!a||!a.parentNode)return n;if(a.id===s)return n.push(a),n}else if(t.ownerDocument&&(a=t.ownerDocument.getElementById(s))&&v(t,a)&&a.id===s)return n.push(a),n}else{if(o[2])return M.apply(n,t.getElementsByTagName(e)),n;if((s=o[3])&&r.getElementsByClassName&&t.getElementsByClassName)return M.apply(n,t.getElementsByClassName(s)),n}if(r.qsa&&(!g||!g.test(e))){if(m=d=b,y=t,x=9===l&&e,1===l&&"object"!==t.nodeName.toLowerCase()){c=mt(e),(d=t.getAttribute("id"))?m=d.replace(nt,"\\$&"):t.setAttribute("id",m),m="[id='"+m+"'] ",u=c.length;while(u--)c[u]=m+yt(c[u]);y=V.test(e)&&t.parentNode||t,x=c.join(",")}if(x)try{return M.apply(n,y.querySelectorAll(x)),n}catch(T){}finally{d||t.removeAttribute("id")}}}return kt(e.replace(z,"$1"),t,n,i)}function st(){var e=[];function t(n,r){return e.push(n+=" ")>o.cacheLength&&delete t[e.shift()],t[n]=r}return t}function lt(e){return e[b]=!0,e}function ut(e){var t=f.createElement("div");try{return!!e(t)}catch(n){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function ct(e,t){var n=e.split("|"),r=e.length;while(r--)o.attrHandle[n[r]]=t}function pt(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||D)-(~e.sourceIndex||D);if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function ft(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function dt(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function ht(e){return lt(function(t){return t=+t,lt(function(n,r){var i,o=e([],n.length,t),a=o.length;while(a--)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}s=at.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},r=at.support={},p=at.setDocument=function(e){var n=e?e.ownerDocument||e:w,i=n.defaultView;return n!==f&&9===n.nodeType&&n.documentElement?(f=n,d=n.documentElement,h=!s(n),i&&i.attachEvent&&i!==i.top&&i.attachEvent("onbeforeunload",function(){p()}),r.attributes=ut(function(e){return e.className="i",!e.getAttribute("className")}),r.getElementsByTagName=ut(function(e){return e.appendChild(n.createComment("")),!e.getElementsByTagName("*").length}),r.getElementsByClassName=ut(function(e){return e.innerHTML="<div class='a'></div><div class='a i'></div>",e.firstChild.className="i",2===e.getElementsByClassName("i").length}),r.getById=ut(function(e){return d.appendChild(e).id=b,!n.getElementsByName||!n.getElementsByName(b).length}),r.getById?(o.find.ID=function(e,t){if(typeof t.getElementById!==j&&h){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},o.filter.ID=function(e){var t=e.replace(rt,it);return function(e){return e.getAttribute("id")===t}}):(delete o.find.ID,o.filter.ID=function(e){var t=e.replace(rt,it);return function(e){var n=typeof e.getAttributeNode!==j&&e.getAttributeNode("id");return n&&n.value===t}}),o.find.TAG=r.getElementsByTagName?function(e,n){return typeof n.getElementsByTagName!==j?n.getElementsByTagName(e):t}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},o.find.CLASS=r.getElementsByClassName&&function(e,n){return typeof n.getElementsByClassName!==j&&h?n.getElementsByClassName(e):t},m=[],g=[],(r.qsa=K.test(n.querySelectorAll))&&(ut(function(e){e.innerHTML="<select><option selected=''></option></select>",e.querySelectorAll("[selected]").length||g.push("\\["+P+"*(?:value|"+B+")"),e.querySelectorAll(":checked").length||g.push(":checked")}),ut(function(e){var t=n.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("t",""),e.querySelectorAll("[t^='']").length&&g.push("[*^$]="+P+"*(?:''|\"\")"),e.querySelectorAll(":enabled").length||g.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),g.push(",.*:")})),(r.matchesSelector=K.test(y=d.webkitMatchesSelector||d.mozMatchesSelector||d.oMatchesSelector||d.msMatchesSelector))&&ut(function(e){r.disconnectedMatch=y.call(e,"div"),y.call(e,"[s!='']:x"),m.push("!=",I)}),g=g.length&&RegExp(g.join("|")),m=m.length&&RegExp(m.join("|")),v=K.test(d.contains)||d.compareDocumentPosition?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},A=d.compareDocumentPosition?function(e,t){if(e===t)return S=!0,0;var i=t.compareDocumentPosition&&e.compareDocumentPosition&&e.compareDocumentPosition(t);return i?1&i||!r.sortDetached&&t.compareDocumentPosition(e)===i?e===n||v(w,e)?-1:t===n||v(w,t)?1:c?F.call(c,e)-F.call(c,t):0:4&i?-1:1:e.compareDocumentPosition?-1:1}:function(e,t){var r,i=0,o=e.parentNode,a=t.parentNode,s=[e],l=[t];if(e===t)return S=!0,0;if(!o||!a)return e===n?-1:t===n?1:o?-1:a?1:c?F.call(c,e)-F.call(c,t):0;if(o===a)return pt(e,t);r=e;while(r=r.parentNode)s.unshift(r);r=t;while(r=r.parentNode)l.unshift(r);while(s[i]===l[i])i++;return i?pt(s[i],l[i]):s[i]===w?-1:l[i]===w?1:0},n):f},at.matches=function(e,t){return at(e,null,null,t)},at.matchesSelector=function(e,t){if((e.ownerDocument||e)!==f&&p(e),t=t.replace(Y,"='$1']"),!(!r.matchesSelector||!h||m&&m.test(t)||g&&g.test(t)))try{var n=y.call(e,t);if(n||r.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(i){}return at(t,f,null,[e]).length>0},at.contains=function(e,t){return(e.ownerDocument||e)!==f&&p(e),v(e,t)},at.attr=function(e,n){(e.ownerDocument||e)!==f&&p(e);var i=o.attrHandle[n.toLowerCase()],a=i&&L.call(o.attrHandle,n.toLowerCase())?i(e,n,!h):t;return a===t?r.attributes||!h?e.getAttribute(n):(a=e.getAttributeNode(n))&&a.specified?a.value:null:a},at.error=function(e){throw Error("Syntax error, unrecognized expression: "+e)},at.uniqueSort=function(e){var t,n=[],i=0,o=0;if(S=!r.detectDuplicates,c=!r.sortStable&&e.slice(0),e.sort(A),S){while(t=e[o++])t===e[o]&&(i=n.push(o));while(i--)e.splice(n[i],1)}return e},a=at.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=a(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r];r++)n+=a(t);return n},o=at.selectors={cacheLength:50,createPseudo:lt,match:Q,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(rt,it),e[3]=(e[4]||e[5]||"").replace(rt,it),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||at.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&at.error(e[0]),e},PSEUDO:function(e){var n,r=!e[5]&&e[2];return Q.CHILD.test(e[0])?null:(e[3]&&e[4]!==t?e[2]=e[4]:r&&J.test(r)&&(n=mt(r,!0))&&(n=r.indexOf(")",r.length-n)-r.length)&&(e[0]=e[0].slice(0,n),e[2]=r.slice(0,n)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(rt,it).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=N[e+" "];return t||(t=RegExp("(^|"+P+")"+e+"("+P+"|$)"))&&N(e,function(e){return t.test("string"==typeof e.className&&e.className||typeof e.getAttribute!==j&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=at.attr(r,e);return null==i?"!="===t:t?(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i+" ").indexOf(n)>-1:"|="===t?i===n||i.slice(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,l){var u,c,p,f,d,h,g=o!==a?"nextSibling":"previousSibling",m=t.parentNode,y=s&&t.nodeName.toLowerCase(),v=!l&&!s;if(m){if(o){while(g){p=t;while(p=p[g])if(s?p.nodeName.toLowerCase()===y:1===p.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?m.firstChild:m.lastChild],a&&v){c=m[b]||(m[b]={}),u=c[e]||[],d=u[0]===T&&u[1],f=u[0]===T&&u[2],p=d&&m.childNodes[d];while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if(1===p.nodeType&&++f&&p===t){c[e]=[T,d,f];break}}else if(v&&(u=(t[b]||(t[b]={}))[e])&&u[0]===T)f=u[1];else while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if((s?p.nodeName.toLowerCase()===y:1===p.nodeType)&&++f&&(v&&((p[b]||(p[b]={}))[e]=[T,f]),p===t))break;return f-=i,f===r||0===f%r&&f/r>=0}}},PSEUDO:function(e,t){var n,r=o.pseudos[e]||o.setFilters[e.toLowerCase()]||at.error("unsupported pseudo: "+e);return r[b]?r(t):r.length>1?(n=[e,e,"",t],o.setFilters.hasOwnProperty(e.toLowerCase())?lt(function(e,n){var i,o=r(e,t),a=o.length;while(a--)i=F.call(e,o[a]),e[i]=!(n[i]=o[a])}):function(e){return r(e,0,n)}):r}},pseudos:{not:lt(function(e){var t=[],n=[],r=l(e.replace(z,"$1"));return r[b]?lt(function(e,t,n,i){var o,a=r(e,null,i,[]),s=e.length;while(s--)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),!n.pop()}}),has:lt(function(e){return function(t){return at(e,t).length>0}}),contains:lt(function(e){return function(t){return(t.textContent||t.innerText||a(t)).indexOf(e)>-1}}),lang:lt(function(e){return G.test(e||"")||at.error("unsupported lang: "+e),e=e.replace(rt,it).toLowerCase(),function(t){var n;do if(n=h?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===d},focus:function(e){return e===f.activeElement&&(!f.hasFocus||f.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeName>"@"||3===e.nodeType||4===e.nodeType)return!1;return!0},parent:function(e){return!o.pseudos.empty(e)},header:function(e){return tt.test(e.nodeName)},input:function(e){return et.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||t.toLowerCase()===e.type)},first:ht(function(){return[0]}),last:ht(function(e,t){return[t-1]}),eq:ht(function(e,t,n){return[0>n?n+t:n]}),even:ht(function(e,t){var n=0;for(;t>n;n+=2)e.push(n);return e}),odd:ht(function(e,t){var n=1;for(;t>n;n+=2)e.push(n);return e}),lt:ht(function(e,t,n){var r=0>n?n+t:n;for(;--r>=0;)e.push(r);return e}),gt:ht(function(e,t,n){var r=0>n?n+t:n;for(;t>++r;)e.push(r);return e})}},o.pseudos.nth=o.pseudos.eq;for(n in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})o.pseudos[n]=ft(n);for(n in{submit:!0,reset:!0})o.pseudos[n]=dt(n);function gt(){}gt.prototype=o.filters=o.pseudos,o.setFilters=new gt;function mt(e,t){var n,r,i,a,s,l,u,c=k[e+" "];if(c)return t?0:c.slice(0);s=e,l=[],u=o.preFilter;while(s){(!n||(r=X.exec(s)))&&(r&&(s=s.slice(r[0].length)||s),l.push(i=[])),n=!1,(r=U.exec(s))&&(n=r.shift(),i.push({value:n,type:r[0].replace(z," ")}),s=s.slice(n.length));for(a in o.filter)!(r=Q[a].exec(s))||u[a]&&!(r=u[a](r))||(n=r.shift(),i.push({value:n,type:a,matches:r}),s=s.slice(n.length));if(!n)break}return t?s.length:s?at.error(e):k(e,l).slice(0)}function yt(e){var t=0,n=e.length,r="";for(;n>t;t++)r+=e[t].value;return r}function vt(e,t,n){var r=t.dir,o=n&&"parentNode"===r,a=C++;return t.first?function(t,n,i){while(t=t[r])if(1===t.nodeType||o)return e(t,n,i)}:function(t,n,s){var l,u,c,p=T+" "+a;if(s){while(t=t[r])if((1===t.nodeType||o)&&e(t,n,s))return!0}else while(t=t[r])if(1===t.nodeType||o)if(c=t[b]||(t[b]={}),(u=c[r])&&u[0]===p){if((l=u[1])===!0||l===i)return l===!0}else if(u=c[r]=[p],u[1]=e(t,n,s)||i,u[1]===!0)return!0}}function bt(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function xt(e,t,n,r,i){var o,a=[],s=0,l=e.length,u=null!=t;for(;l>s;s++)(o=e[s])&&(!n||n(o,r,i))&&(a.push(o),u&&t.push(s));return a}function wt(e,t,n,r,i,o){return r&&!r[b]&&(r=wt(r)),i&&!i[b]&&(i=wt(i,o)),lt(function(o,a,s,l){var u,c,p,f=[],d=[],h=a.length,g=o||Nt(t||"*",s.nodeType?[s]:s,[]),m=!e||!o&&t?g:xt(g,f,e,s,l),y=n?i||(o?e:h||r)?[]:a:m;if(n&&n(m,y,s,l),r){u=xt(y,d),r(u,[],s,l),c=u.length;while(c--)(p=u[c])&&(y[d[c]]=!(m[d[c]]=p))}if(o){if(i||e){if(i){u=[],c=y.length;while(c--)(p=y[c])&&u.push(m[c]=p);i(null,y=[],u,l)}c=y.length;while(c--)(p=y[c])&&(u=i?F.call(o,p):f[c])>-1&&(o[u]=!(a[u]=p))}}else y=xt(y===a?y.splice(h,y.length):y),i?i(null,a,y,l):M.apply(a,y)})}function Tt(e){var t,n,r,i=e.length,a=o.relative[e[0].type],s=a||o.relative[" "],l=a?1:0,c=vt(function(e){return e===t},s,!0),p=vt(function(e){return F.call(t,e)>-1},s,!0),f=[function(e,n,r){return!a&&(r||n!==u)||((t=n).nodeType?c(e,n,r):p(e,n,r))}];for(;i>l;l++)if(n=o.relative[e[l].type])f=[vt(bt(f),n)];else{if(n=o.filter[e[l].type].apply(null,e[l].matches),n[b]){for(r=++l;i>r;r++)if(o.relative[e[r].type])break;return wt(l>1&&bt(f),l>1&&yt(e.slice(0,l-1).concat({value:" "===e[l-2].type?"*":""})).replace(z,"$1"),n,r>l&&Tt(e.slice(l,r)),i>r&&Tt(e=e.slice(r)),i>r&&yt(e))}f.push(n)}return bt(f)}function Ct(e,t){var n=0,r=t.length>0,a=e.length>0,s=function(s,l,c,p,d){var h,g,m,y=[],v=0,b="0",x=s&&[],w=null!=d,C=u,N=s||a&&o.find.TAG("*",d&&l.parentNode||l),k=T+=null==C?1:Math.random()||.1;for(w&&(u=l!==f&&l,i=n);null!=(h=N[b]);b++){if(a&&h){g=0;while(m=e[g++])if(m(h,l,c)){p.push(h);break}w&&(T=k,i=++n)}r&&((h=!m&&h)&&v--,s&&x.push(h))}if(v+=b,r&&b!==v){g=0;while(m=t[g++])m(x,y,l,c);if(s){if(v>0)while(b--)x[b]||y[b]||(y[b]=q.call(p));y=xt(y)}M.apply(p,y),w&&!s&&y.length>0&&v+t.length>1&&at.uniqueSort(p)}return w&&(T=k,u=C),x};return r?lt(s):s}l=at.compile=function(e,t){var n,r=[],i=[],o=E[e+" "];if(!o){t||(t=mt(e)),n=t.length;while(n--)o=Tt(t[n]),o[b]?r.push(o):i.push(o);o=E(e,Ct(i,r))}return o};function Nt(e,t,n){var r=0,i=t.length;for(;i>r;r++)at(e,t[r],n);return n}function kt(e,t,n,i){var a,s,u,c,p,f=mt(e);if(!i&&1===f.length){if(s=f[0]=f[0].slice(0),s.length>2&&"ID"===(u=s[0]).type&&r.getById&&9===t.nodeType&&h&&o.relative[s[1].type]){if(t=(o.find.ID(u.matches[0].replace(rt,it),t)||[])[0],!t)return n;e=e.slice(s.shift().value.length)}a=Q.needsContext.test(e)?0:s.length;while(a--){if(u=s[a],o.relative[c=u.type])break;if((p=o.find[c])&&(i=p(u.matches[0].replace(rt,it),V.test(s[0].type)&&t.parentNode||t))){if(s.splice(a,1),e=i.length&&yt(s),!e)return M.apply(n,i),n;break}}}return l(e,f)(i,t,!h,n,V.test(e)),n}r.sortStable=b.split("").sort(A).join("")===b,r.detectDuplicates=S,p(),r.sortDetached=ut(function(e){return 1&e.compareDocumentPosition(f.createElement("div"))}),ut(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||ct("type|href|height|width",function(e,n,r){return r?t:e.getAttribute(n,"type"===n.toLowerCase()?1:2)}),r.attributes&&ut(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||ct("value",function(e,n,r){return r||"input"!==e.nodeName.toLowerCase()?t:e.defaultValue}),ut(function(e){return null==e.getAttribute("disabled")})||ct(B,function(e,n,r){var i;return r?t:(i=e.getAttributeNode(n))&&i.specified?i.value:e[n]===!0?n.toLowerCase():null}),x.find=at,x.expr=at.selectors,x.expr[":"]=x.expr.pseudos,x.unique=at.uniqueSort,x.text=at.getText,x.isXMLDoc=at.isXML,x.contains=at.contains}(e);var O={};function F(e){var t=O[e]={};return x.each(e.match(T)||[],function(e,n){t[n]=!0}),t}x.Callbacks=function(e){e="string"==typeof e?O[e]||F(e):x.extend({},e);var n,r,i,o,a,s,l=[],u=!e.once&&[],c=function(t){for(r=e.memory&&t,i=!0,a=s||0,s=0,o=l.length,n=!0;l&&o>a;a++)if(l[a].apply(t[0],t[1])===!1&&e.stopOnFalse){r=!1;break}n=!1,l&&(u?u.length&&c(u.shift()):r?l=[]:p.disable())},p={add:function(){if(l){var t=l.length;(function i(t){x.each(t,function(t,n){var r=x.type(n);"function"===r?e.unique&&p.has(n)||l.push(n):n&&n.length&&"string"!==r&&i(n)})})(arguments),n?o=l.length:r&&(s=t,c(r))}return this},remove:function(){return l&&x.each(arguments,function(e,t){var r;while((r=x.inArray(t,l,r))>-1)l.splice(r,1),n&&(o>=r&&o--,a>=r&&a--)}),this},has:function(e){return e?x.inArray(e,l)>-1:!(!l||!l.length)},empty:function(){return l=[],o=0,this},disable:function(){return l=u=r=t,this},disabled:function(){return!l},lock:function(){return u=t,r||p.disable(),this},locked:function(){return!u},fireWith:function(e,t){return!l||i&&!u||(t=t||[],t=[e,t.slice?t.slice():t],n?u.push(t):c(t)),this},fire:function(){return p.fireWith(this,arguments),this},fired:function(){return!!i}};return p},x.extend({Deferred:function(e){var t=[["resolve","done",x.Callbacks("once memory"),"resolved"],["reject","fail",x.Callbacks("once memory"),"rejected"],["notify","progress",x.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return x.Deferred(function(n){x.each(t,function(t,o){var a=o[0],s=x.isFunction(e[t])&&e[t];i[o[1]](function(){var e=s&&s.apply(this,arguments);e&&x.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[a+"With"](this===r?n.promise():this,s?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?x.extend(e,r):r}},i={};return r.pipe=r.then,x.each(t,function(e,o){var a=o[2],s=o[3];r[o[1]]=a.add,s&&a.add(function(){n=s},t[1^e][2].disable,t[2][2].lock),i[o[0]]=function(){return i[o[0]+"With"](this===i?r:this,arguments),this},i[o[0]+"With"]=a.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t=0,n=g.call(arguments),r=n.length,i=1!==r||e&&x.isFunction(e.promise)?r:0,o=1===i?e:x.Deferred(),a=function(e,t,n){return function(r){t[e]=this,n[e]=arguments.length>1?g.call(arguments):r,n===s?o.notifyWith(t,n):--i||o.resolveWith(t,n)}},s,l,u;if(r>1)for(s=Array(r),l=Array(r),u=Array(r);r>t;t++)n[t]&&x.isFunction(n[t].promise)?n[t].promise().done(a(t,u,n)).fail(o.reject).progress(a(t,l,s)):--i;return i||o.resolveWith(u,n),o.promise()}}),x.support=function(t){var n,r,o,s,l,u,c,p,f,d=a.createElement("div");if(d.setAttribute("className","t"),d.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",n=d.getElementsByTagName("*")||[],r=d.getElementsByTagName("a")[0],!r||!r.style||!n.length)return t;s=a.createElement("select"),u=s.appendChild(a.createElement("option")),o=d.getElementsByTagName("input")[0],r.style.cssText="top:1px;float:left;opacity:.5",t.getSetAttribute="t"!==d.className,t.leadingWhitespace=3===d.firstChild.nodeType,t.tbody=!d.getElementsByTagName("tbody").length,t.htmlSerialize=!!d.getElementsByTagName("link").length,t.style=/top/.test(r.getAttribute("style")),t.hrefNormalized="/a"===r.getAttribute("href"),t.opacity=/^0.5/.test(r.style.opacity),t.cssFloat=!!r.style.cssFloat,t.checkOn=!!o.value,t.optSelected=u.selected,t.enctype=!!a.createElement("form").enctype,t.html5Clone="<:nav></:nav>"!==a.createElement("nav").cloneNode(!0).outerHTML,t.inlineBlockNeedsLayout=!1,t.shrinkWrapBlocks=!1,t.pixelPosition=!1,t.deleteExpando=!0,t.noCloneEvent=!0,t.reliableMarginRight=!0,t.boxSizingReliable=!0,o.checked=!0,t.noCloneChecked=o.cloneNode(!0).checked,s.disabled=!0,t.optDisabled=!u.disabled;try{delete d.test}catch(h){t.deleteExpando=!1}o=a.createElement("input"),o.setAttribute("value",""),t.input=""===o.getAttribute("value"),o.value="t",o.setAttribute("type","radio"),t.radioValue="t"===o.value,o.setAttribute("checked","t"),o.setAttribute("name","t"),l=a.createDocumentFragment(),l.appendChild(o),t.appendChecked=o.checked,t.checkClone=l.cloneNode(!0).cloneNode(!0).lastChild.checked,d.attachEvent&&(d.attachEvent("onclick",function(){t.noCloneEvent=!1}),d.cloneNode(!0).click());for(f in{submit:!0,change:!0,focusin:!0})d.setAttribute(c="on"+f,"t"),t[f+"Bubbles"]=c in e||d.attributes[c].expando===!1;d.style.backgroundClip="content-box",d.cloneNode(!0).style.backgroundClip="",t.clearCloneStyle="content-box"===d.style.backgroundClip;for(f in x(t))break;return t.ownLast="0"!==f,x(function(){var n,r,o,s="padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;",l=a.getElementsByTagName("body")[0];l&&(n=a.createElement("div"),n.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",l.appendChild(n).appendChild(d),d.innerHTML="<table><tr><td></td><td>t</td></tr></table>",o=d.getElementsByTagName("td"),o[0].style.cssText="padding:0;margin:0;border:0;display:none",p=0===o[0].offsetHeight,o[0].style.display="",o[1].style.display="none",t.reliableHiddenOffsets=p&&0===o[0].offsetHeight,d.innerHTML="",d.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",x.swap(l,null!=l.style.zoom?{zoom:1}:{},function(){t.boxSizing=4===d.offsetWidth}),e.getComputedStyle&&(t.pixelPosition="1%"!==(e.getComputedStyle(d,null)||{}).top,t.boxSizingReliable="4px"===(e.getComputedStyle(d,null)||{width:"4px"}).width,r=d.appendChild(a.createElement("div")),r.style.cssText=d.style.cssText=s,r.style.marginRight=r.style.width="0",d.style.width="1px",t.reliableMarginRight=!parseFloat((e.getComputedStyle(r,null)||{}).marginRight)),typeof d.style.zoom!==i&&(d.innerHTML="",d.style.cssText=s+"width:1px;padding:1px;display:inline;zoom:1",t.inlineBlockNeedsLayout=3===d.offsetWidth,d.style.display="block",d.innerHTML="<div></div>",d.firstChild.style.width="5px",t.shrinkWrapBlocks=3!==d.offsetWidth,t.inlineBlockNeedsLayout&&(l.style.zoom=1)),l.removeChild(n),n=d=o=r=null)}),n=s=l=u=r=o=null,t | ||
5 | }({});var B=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,P=/([A-Z])/g;function R(e,n,r,i){if(x.acceptData(e)){var o,a,s=x.expando,l=e.nodeType,u=l?x.cache:e,c=l?e[s]:e[s]&&s;if(c&&u[c]&&(i||u[c].data)||r!==t||"string"!=typeof n)return c||(c=l?e[s]=p.pop()||x.guid++:s),u[c]||(u[c]=l?{}:{toJSON:x.noop}),("object"==typeof n||"function"==typeof n)&&(i?u[c]=x.extend(u[c],n):u[c].data=x.extend(u[c].data,n)),a=u[c],i||(a.data||(a.data={}),a=a.data),r!==t&&(a[x.camelCase(n)]=r),"string"==typeof n?(o=a[n],null==o&&(o=a[x.camelCase(n)])):o=a,o}}function W(e,t,n){if(x.acceptData(e)){var r,i,o=e.nodeType,a=o?x.cache:e,s=o?e[x.expando]:x.expando;if(a[s]){if(t&&(r=n?a[s]:a[s].data)){x.isArray(t)?t=t.concat(x.map(t,x.camelCase)):t in r?t=[t]:(t=x.camelCase(t),t=t in r?[t]:t.split(" ")),i=t.length;while(i--)delete r[t[i]];if(n?!I(r):!x.isEmptyObject(r))return}(n||(delete a[s].data,I(a[s])))&&(o?x.cleanData([e],!0):x.support.deleteExpando||a!=a.window?delete a[s]:a[s]=null)}}}x.extend({cache:{},noData:{applet:!0,embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(e){return e=e.nodeType?x.cache[e[x.expando]]:e[x.expando],!!e&&!I(e)},data:function(e,t,n){return R(e,t,n)},removeData:function(e,t){return W(e,t)},_data:function(e,t,n){return R(e,t,n,!0)},_removeData:function(e,t){return W(e,t,!0)},acceptData:function(e){if(e.nodeType&&1!==e.nodeType&&9!==e.nodeType)return!1;var t=e.nodeName&&x.noData[e.nodeName.toLowerCase()];return!t||t!==!0&&e.getAttribute("classid")===t}}),x.fn.extend({data:function(e,n){var r,i,o=null,a=0,s=this[0];if(e===t){if(this.length&&(o=x.data(s),1===s.nodeType&&!x._data(s,"parsedAttrs"))){for(r=s.attributes;r.length>a;a++)i=r[a].name,0===i.indexOf("data-")&&(i=x.camelCase(i.slice(5)),$(s,i,o[i]));x._data(s,"parsedAttrs",!0)}return o}return"object"==typeof e?this.each(function(){x.data(this,e)}):arguments.length>1?this.each(function(){x.data(this,e,n)}):s?$(s,e,x.data(s,e)):null},removeData:function(e){return this.each(function(){x.removeData(this,e)})}});function $(e,n,r){if(r===t&&1===e.nodeType){var i="data-"+n.replace(P,"-$1").toLowerCase();if(r=e.getAttribute(i),"string"==typeof r){try{r="true"===r?!0:"false"===r?!1:"null"===r?null:+r+""===r?+r:B.test(r)?x.parseJSON(r):r}catch(o){}x.data(e,n,r)}else r=t}return r}function I(e){var t;for(t in e)if(("data"!==t||!x.isEmptyObject(e[t]))&&"toJSON"!==t)return!1;return!0}x.extend({queue:function(e,n,r){var i;return e?(n=(n||"fx")+"queue",i=x._data(e,n),r&&(!i||x.isArray(r)?i=x._data(e,n,x.makeArray(r)):i.push(r)),i||[]):t},dequeue:function(e,t){t=t||"fx";var n=x.queue(e,t),r=n.length,i=n.shift(),o=x._queueHooks(e,t),a=function(){x.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return x._data(e,n)||x._data(e,n,{empty:x.Callbacks("once memory").add(function(){x._removeData(e,t+"queue"),x._removeData(e,n)})})}}),x.fn.extend({queue:function(e,n){var r=2;return"string"!=typeof e&&(n=e,e="fx",r--),r>arguments.length?x.queue(this[0],e):n===t?this:this.each(function(){var t=x.queue(this,e,n);x._queueHooks(this,e),"fx"===e&&"inprogress"!==t[0]&&x.dequeue(this,e)})},dequeue:function(e){return this.each(function(){x.dequeue(this,e)})},delay:function(e,t){return e=x.fx?x.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,n){var r,i=1,o=x.Deferred(),a=this,s=this.length,l=function(){--i||o.resolveWith(a,[a])};"string"!=typeof e&&(n=e,e=t),e=e||"fx";while(s--)r=x._data(a[s],e+"queueHooks"),r&&r.empty&&(i++,r.empty.add(l));return l(),o.promise(n)}});var z,X,U=/[\t\r\n\f]/g,V=/\r/g,Y=/^(?:input|select|textarea|button|object)$/i,J=/^(?:a|area)$/i,G=/^(?:checked|selected)$/i,Q=x.support.getSetAttribute,K=x.support.input;x.fn.extend({attr:function(e,t){return x.access(this,x.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){x.removeAttr(this,e)})},prop:function(e,t){return x.access(this,x.prop,e,t,arguments.length>1)},removeProp:function(e){return e=x.propFix[e]||e,this.each(function(){try{this[e]=t,delete this[e]}catch(n){}})},addClass:function(e){var t,n,r,i,o,a=0,s=this.length,l="string"==typeof e&&e;if(x.isFunction(e))return this.each(function(t){x(this).addClass(e.call(this,t,this.className))});if(l)for(t=(e||"").match(T)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(U," "):" ")){o=0;while(i=t[o++])0>r.indexOf(" "+i+" ")&&(r+=i+" ");n.className=x.trim(r)}return this},removeClass:function(e){var t,n,r,i,o,a=0,s=this.length,l=0===arguments.length||"string"==typeof e&&e;if(x.isFunction(e))return this.each(function(t){x(this).removeClass(e.call(this,t,this.className))});if(l)for(t=(e||"").match(T)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(U," "):"")){o=0;while(i=t[o++])while(r.indexOf(" "+i+" ")>=0)r=r.replace(" "+i+" "," ");n.className=e?x.trim(r):""}return this},toggleClass:function(e,t){var n=typeof e;return"boolean"==typeof t&&"string"===n?t?this.addClass(e):this.removeClass(e):x.isFunction(e)?this.each(function(n){x(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if("string"===n){var t,r=0,o=x(this),a=e.match(T)||[];while(t=a[r++])o.hasClass(t)?o.removeClass(t):o.addClass(t)}else(n===i||"boolean"===n)&&(this.className&&x._data(this,"__className__",this.className),this.className=this.className||e===!1?"":x._data(this,"__className__")||"")})},hasClass:function(e){var t=" "+e+" ",n=0,r=this.length;for(;r>n;n++)if(1===this[n].nodeType&&(" "+this[n].className+" ").replace(U," ").indexOf(t)>=0)return!0;return!1},val:function(e){var n,r,i,o=this[0];{if(arguments.length)return i=x.isFunction(e),this.each(function(n){var o;1===this.nodeType&&(o=i?e.call(this,n,x(this).val()):e,null==o?o="":"number"==typeof o?o+="":x.isArray(o)&&(o=x.map(o,function(e){return null==e?"":e+""})),r=x.valHooks[this.type]||x.valHooks[this.nodeName.toLowerCase()],r&&"set"in r&&r.set(this,o,"value")!==t||(this.value=o))});if(o)return r=x.valHooks[o.type]||x.valHooks[o.nodeName.toLowerCase()],r&&"get"in r&&(n=r.get(o,"value"))!==t?n:(n=o.value,"string"==typeof n?n.replace(V,""):null==n?"":n)}}}),x.extend({valHooks:{option:{get:function(e){var t=x.find.attr(e,"value");return null!=t?t:e.text}},select:{get:function(e){var t,n,r=e.options,i=e.selectedIndex,o="select-one"===e.type||0>i,a=o?null:[],s=o?i+1:r.length,l=0>i?s:o?i:0;for(;s>l;l++)if(n=r[l],!(!n.selected&&l!==i||(x.support.optDisabled?n.disabled:null!==n.getAttribute("disabled"))||n.parentNode.disabled&&x.nodeName(n.parentNode,"optgroup"))){if(t=x(n).val(),o)return t;a.push(t)}return a},set:function(e,t){var n,r,i=e.options,o=x.makeArray(t),a=i.length;while(a--)r=i[a],(r.selected=x.inArray(x(r).val(),o)>=0)&&(n=!0);return n||(e.selectedIndex=-1),o}}},attr:function(e,n,r){var o,a,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return typeof e.getAttribute===i?x.prop(e,n,r):(1===s&&x.isXMLDoc(e)||(n=n.toLowerCase(),o=x.attrHooks[n]||(x.expr.match.bool.test(n)?X:z)),r===t?o&&"get"in o&&null!==(a=o.get(e,n))?a:(a=x.find.attr(e,n),null==a?t:a):null!==r?o&&"set"in o&&(a=o.set(e,r,n))!==t?a:(e.setAttribute(n,r+""),r):(x.removeAttr(e,n),t))},removeAttr:function(e,t){var n,r,i=0,o=t&&t.match(T);if(o&&1===e.nodeType)while(n=o[i++])r=x.propFix[n]||n,x.expr.match.bool.test(n)?K&&Q||!G.test(n)?e[r]=!1:e[x.camelCase("default-"+n)]=e[r]=!1:x.attr(e,n,""),e.removeAttribute(Q?n:r)},attrHooks:{type:{set:function(e,t){if(!x.support.radioValue&&"radio"===t&&x.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},propFix:{"for":"htmlFor","class":"className"},prop:function(e,n,r){var i,o,a,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return a=1!==s||!x.isXMLDoc(e),a&&(n=x.propFix[n]||n,o=x.propHooks[n]),r!==t?o&&"set"in o&&(i=o.set(e,r,n))!==t?i:e[n]=r:o&&"get"in o&&null!==(i=o.get(e,n))?i:e[n]},propHooks:{tabIndex:{get:function(e){var t=x.find.attr(e,"tabindex");return t?parseInt(t,10):Y.test(e.nodeName)||J.test(e.nodeName)&&e.href?0:-1}}}}),X={set:function(e,t,n){return t===!1?x.removeAttr(e,n):K&&Q||!G.test(n)?e.setAttribute(!Q&&x.propFix[n]||n,n):e[x.camelCase("default-"+n)]=e[n]=!0,n}},x.each(x.expr.match.bool.source.match(/\w+/g),function(e,n){var r=x.expr.attrHandle[n]||x.find.attr;x.expr.attrHandle[n]=K&&Q||!G.test(n)?function(e,n,i){var o=x.expr.attrHandle[n],a=i?t:(x.expr.attrHandle[n]=t)!=r(e,n,i)?n.toLowerCase():null;return x.expr.attrHandle[n]=o,a}:function(e,n,r){return r?t:e[x.camelCase("default-"+n)]?n.toLowerCase():null}}),K&&Q||(x.attrHooks.value={set:function(e,n,r){return x.nodeName(e,"input")?(e.defaultValue=n,t):z&&z.set(e,n,r)}}),Q||(z={set:function(e,n,r){var i=e.getAttributeNode(r);return i||e.setAttributeNode(i=e.ownerDocument.createAttribute(r)),i.value=n+="","value"===r||n===e.getAttribute(r)?n:t}},x.expr.attrHandle.id=x.expr.attrHandle.name=x.expr.attrHandle.coords=function(e,n,r){var i;return r?t:(i=e.getAttributeNode(n))&&""!==i.value?i.value:null},x.valHooks.button={get:function(e,n){var r=e.getAttributeNode(n);return r&&r.specified?r.value:t},set:z.set},x.attrHooks.contenteditable={set:function(e,t,n){z.set(e,""===t?!1:t,n)}},x.each(["width","height"],function(e,n){x.attrHooks[n]={set:function(e,r){return""===r?(e.setAttribute(n,"auto"),r):t}}})),x.support.hrefNormalized||x.each(["href","src"],function(e,t){x.propHooks[t]={get:function(e){return e.getAttribute(t,4)}}}),x.support.style||(x.attrHooks.style={get:function(e){return e.style.cssText||t},set:function(e,t){return e.style.cssText=t+""}}),x.support.optSelected||(x.propHooks.selected={get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null}}),x.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){x.propFix[this.toLowerCase()]=this}),x.support.enctype||(x.propFix.enctype="encoding"),x.each(["radio","checkbox"],function(){x.valHooks[this]={set:function(e,n){return x.isArray(n)?e.checked=x.inArray(x(e).val(),n)>=0:t}},x.support.checkOn||(x.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})});var Z=/^(?:input|select|textarea)$/i,et=/^key/,tt=/^(?:mouse|contextmenu)|click/,nt=/^(?:focusinfocus|focusoutblur)$/,rt=/^([^.]*)(?:\.(.+)|)$/;function it(){return!0}function ot(){return!1}function at(){try{return a.activeElement}catch(e){}}x.event={global:{},add:function(e,n,r,o,a){var s,l,u,c,p,f,d,h,g,m,y,v=x._data(e);if(v){r.handler&&(c=r,r=c.handler,a=c.selector),r.guid||(r.guid=x.guid++),(l=v.events)||(l=v.events={}),(f=v.handle)||(f=v.handle=function(e){return typeof x===i||e&&x.event.triggered===e.type?t:x.event.dispatch.apply(f.elem,arguments)},f.elem=e),n=(n||"").match(T)||[""],u=n.length;while(u--)s=rt.exec(n[u])||[],g=y=s[1],m=(s[2]||"").split(".").sort(),g&&(p=x.event.special[g]||{},g=(a?p.delegateType:p.bindType)||g,p=x.event.special[g]||{},d=x.extend({type:g,origType:y,data:o,handler:r,guid:r.guid,selector:a,needsContext:a&&x.expr.match.needsContext.test(a),namespace:m.join(".")},c),(h=l[g])||(h=l[g]=[],h.delegateCount=0,p.setup&&p.setup.call(e,o,m,f)!==!1||(e.addEventListener?e.addEventListener(g,f,!1):e.attachEvent&&e.attachEvent("on"+g,f))),p.add&&(p.add.call(e,d),d.handler.guid||(d.handler.guid=r.guid)),a?h.splice(h.delegateCount++,0,d):h.push(d),x.event.global[g]=!0);e=null}},remove:function(e,t,n,r,i){var o,a,s,l,u,c,p,f,d,h,g,m=x.hasData(e)&&x._data(e);if(m&&(c=m.events)){t=(t||"").match(T)||[""],u=t.length;while(u--)if(s=rt.exec(t[u])||[],d=g=s[1],h=(s[2]||"").split(".").sort(),d){p=x.event.special[d]||{},d=(r?p.delegateType:p.bindType)||d,f=c[d]||[],s=s[2]&&RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),l=o=f.length;while(o--)a=f[o],!i&&g!==a.origType||n&&n.guid!==a.guid||s&&!s.test(a.namespace)||r&&r!==a.selector&&("**"!==r||!a.selector)||(f.splice(o,1),a.selector&&f.delegateCount--,p.remove&&p.remove.call(e,a));l&&!f.length&&(p.teardown&&p.teardown.call(e,h,m.handle)!==!1||x.removeEvent(e,d,m.handle),delete c[d])}else for(d in c)x.event.remove(e,d+t[u],n,r,!0);x.isEmptyObject(c)&&(delete m.handle,x._removeData(e,"events"))}},trigger:function(n,r,i,o){var s,l,u,c,p,f,d,h=[i||a],g=v.call(n,"type")?n.type:n,m=v.call(n,"namespace")?n.namespace.split("."):[];if(u=f=i=i||a,3!==i.nodeType&&8!==i.nodeType&&!nt.test(g+x.event.triggered)&&(g.indexOf(".")>=0&&(m=g.split("."),g=m.shift(),m.sort()),l=0>g.indexOf(":")&&"on"+g,n=n[x.expando]?n:new x.Event(g,"object"==typeof n&&n),n.isTrigger=o?2:3,n.namespace=m.join("."),n.namespace_re=n.namespace?RegExp("(^|\\.)"+m.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,n.result=t,n.target||(n.target=i),r=null==r?[n]:x.makeArray(r,[n]),p=x.event.special[g]||{},o||!p.trigger||p.trigger.apply(i,r)!==!1)){if(!o&&!p.noBubble&&!x.isWindow(i)){for(c=p.delegateType||g,nt.test(c+g)||(u=u.parentNode);u;u=u.parentNode)h.push(u),f=u;f===(i.ownerDocument||a)&&h.push(f.defaultView||f.parentWindow||e)}d=0;while((u=h[d++])&&!n.isPropagationStopped())n.type=d>1?c:p.bindType||g,s=(x._data(u,"events")||{})[n.type]&&x._data(u,"handle"),s&&s.apply(u,r),s=l&&u[l],s&&x.acceptData(u)&&s.apply&&s.apply(u,r)===!1&&n.preventDefault();if(n.type=g,!o&&!n.isDefaultPrevented()&&(!p._default||p._default.apply(h.pop(),r)===!1)&&x.acceptData(i)&&l&&i[g]&&!x.isWindow(i)){f=i[l],f&&(i[l]=null),x.event.triggered=g;try{i[g]()}catch(y){}x.event.triggered=t,f&&(i[l]=f)}return n.result}},dispatch:function(e){e=x.event.fix(e);var n,r,i,o,a,s=[],l=g.call(arguments),u=(x._data(this,"events")||{})[e.type]||[],c=x.event.special[e.type]||{};if(l[0]=e,e.delegateTarget=this,!c.preDispatch||c.preDispatch.call(this,e)!==!1){s=x.event.handlers.call(this,e,u),n=0;while((o=s[n++])&&!e.isPropagationStopped()){e.currentTarget=o.elem,a=0;while((i=o.handlers[a++])&&!e.isImmediatePropagationStopped())(!e.namespace_re||e.namespace_re.test(i.namespace))&&(e.handleObj=i,e.data=i.data,r=((x.event.special[i.origType]||{}).handle||i.handler).apply(o.elem,l),r!==t&&(e.result=r)===!1&&(e.preventDefault(),e.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,e),e.result}},handlers:function(e,n){var r,i,o,a,s=[],l=n.delegateCount,u=e.target;if(l&&u.nodeType&&(!e.button||"click"!==e.type))for(;u!=this;u=u.parentNode||this)if(1===u.nodeType&&(u.disabled!==!0||"click"!==e.type)){for(o=[],a=0;l>a;a++)i=n[a],r=i.selector+" ",o[r]===t&&(o[r]=i.needsContext?x(r,this).index(u)>=0:x.find(r,this,null,[u]).length),o[r]&&o.push(i);o.length&&s.push({elem:u,handlers:o})}return n.length>l&&s.push({elem:this,handlers:n.slice(l)}),s},fix:function(e){if(e[x.expando])return e;var t,n,r,i=e.type,o=e,s=this.fixHooks[i];s||(this.fixHooks[i]=s=tt.test(i)?this.mouseHooks:et.test(i)?this.keyHooks:{}),r=s.props?this.props.concat(s.props):this.props,e=new x.Event(o),t=r.length;while(t--)n=r[t],e[n]=o[n];return e.target||(e.target=o.srcElement||a),3===e.target.nodeType&&(e.target=e.target.parentNode),e.metaKey=!!e.metaKey,s.filter?s.filter(e,o):e},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return null==e.which&&(e.which=null!=t.charCode?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,n){var r,i,o,s=n.button,l=n.fromElement;return null==e.pageX&&null!=n.clientX&&(i=e.target.ownerDocument||a,o=i.documentElement,r=i.body,e.pageX=n.clientX+(o&&o.scrollLeft||r&&r.scrollLeft||0)-(o&&o.clientLeft||r&&r.clientLeft||0),e.pageY=n.clientY+(o&&o.scrollTop||r&&r.scrollTop||0)-(o&&o.clientTop||r&&r.clientTop||0)),!e.relatedTarget&&l&&(e.relatedTarget=l===e.target?n.toElement:l),e.which||s===t||(e.which=1&s?1:2&s?3:4&s?2:0),e}},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==at()&&this.focus)try{return this.focus(),!1}catch(e){}},delegateType:"focusin"},blur:{trigger:function(){return this===at()&&this.blur?(this.blur(),!1):t},delegateType:"focusout"},click:{trigger:function(){return x.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):t},_default:function(e){return x.nodeName(e.target,"a")}},beforeunload:{postDispatch:function(e){e.result!==t&&(e.originalEvent.returnValue=e.result)}}},simulate:function(e,t,n,r){var i=x.extend(new x.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?x.event.trigger(i,null,t):x.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},x.removeEvent=a.removeEventListener?function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)}:function(e,t,n){var r="on"+t;e.detachEvent&&(typeof e[r]===i&&(e[r]=null),e.detachEvent(r,n))},x.Event=function(e,n){return this instanceof x.Event?(e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.returnValue===!1||e.getPreventDefault&&e.getPreventDefault()?it:ot):this.type=e,n&&x.extend(this,n),this.timeStamp=e&&e.timeStamp||x.now(),this[x.expando]=!0,t):new x.Event(e,n)},x.Event.prototype={isDefaultPrevented:ot,isPropagationStopped:ot,isImmediatePropagationStopped:ot,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=it,e&&(e.preventDefault?e.preventDefault():e.returnValue=!1)},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=it,e&&(e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=it,this.stopPropagation()}},x.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){x.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj;return(!i||i!==r&&!x.contains(r,i))&&(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),x.support.submitBubbles||(x.event.special.submit={setup:function(){return x.nodeName(this,"form")?!1:(x.event.add(this,"click._submit keypress._submit",function(e){var n=e.target,r=x.nodeName(n,"input")||x.nodeName(n,"button")?n.form:t;r&&!x._data(r,"submitBubbles")&&(x.event.add(r,"submit._submit",function(e){e._submit_bubble=!0}),x._data(r,"submitBubbles",!0))}),t)},postDispatch:function(e){e._submit_bubble&&(delete e._submit_bubble,this.parentNode&&!e.isTrigger&&x.event.simulate("submit",this.parentNode,e,!0))},teardown:function(){return x.nodeName(this,"form")?!1:(x.event.remove(this,"._submit"),t)}}),x.support.changeBubbles||(x.event.special.change={setup:function(){return Z.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(x.event.add(this,"propertychange._change",function(e){"checked"===e.originalEvent.propertyName&&(this._just_changed=!0)}),x.event.add(this,"click._change",function(e){this._just_changed&&!e.isTrigger&&(this._just_changed=!1),x.event.simulate("change",this,e,!0)})),!1):(x.event.add(this,"beforeactivate._change",function(e){var t=e.target;Z.test(t.nodeName)&&!x._data(t,"changeBubbles")&&(x.event.add(t,"change._change",function(e){!this.parentNode||e.isSimulated||e.isTrigger||x.event.simulate("change",this.parentNode,e,!0)}),x._data(t,"changeBubbles",!0))}),t)},handle:function(e){var n=e.target;return this!==n||e.isSimulated||e.isTrigger||"radio"!==n.type&&"checkbox"!==n.type?e.handleObj.handler.apply(this,arguments):t},teardown:function(){return x.event.remove(this,"._change"),!Z.test(this.nodeName)}}),x.support.focusinBubbles||x.each({focus:"focusin",blur:"focusout"},function(e,t){var n=0,r=function(e){x.event.simulate(t,e.target,x.event.fix(e),!0)};x.event.special[t]={setup:function(){0===n++&&a.addEventListener(e,r,!0)},teardown:function(){0===--n&&a.removeEventListener(e,r,!0)}}}),x.fn.extend({on:function(e,n,r,i,o){var a,s;if("object"==typeof e){"string"!=typeof n&&(r=r||n,n=t);for(a in e)this.on(a,n,r,e[a],o);return this}if(null==r&&null==i?(i=n,r=n=t):null==i&&("string"==typeof n?(i=r,r=t):(i=r,r=n,n=t)),i===!1)i=ot;else if(!i)return this;return 1===o&&(s=i,i=function(e){return x().off(e),s.apply(this,arguments)},i.guid=s.guid||(s.guid=x.guid++)),this.each(function(){x.event.add(this,e,i,r,n)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,n,r){var i,o;if(e&&e.preventDefault&&e.handleObj)return i=e.handleObj,x(e.delegateTarget).off(i.namespace?i.origType+"."+i.namespace:i.origType,i.selector,i.handler),this;if("object"==typeof e){for(o in e)this.off(o,n,e[o]);return this}return(n===!1||"function"==typeof n)&&(r=n,n=t),r===!1&&(r=ot),this.each(function(){x.event.remove(this,e,r,n)})},trigger:function(e,t){return this.each(function(){x.event.trigger(e,t,this)})},triggerHandler:function(e,n){var r=this[0];return r?x.event.trigger(e,n,r,!0):t}});var st=/^.[^:#\[\.,]*$/,lt=/^(?:parents|prev(?:Until|All))/,ut=x.expr.match.needsContext,ct={children:!0,contents:!0,next:!0,prev:!0};x.fn.extend({find:function(e){var t,n=[],r=this,i=r.length;if("string"!=typeof e)return this.pushStack(x(e).filter(function(){for(t=0;i>t;t++)if(x.contains(r[t],this))return!0}));for(t=0;i>t;t++)x.find(e,r[t],n);return n=this.pushStack(i>1?x.unique(n):n),n.selector=this.selector?this.selector+" "+e:e,n},has:function(e){var t,n=x(e,this),r=n.length;return this.filter(function(){for(t=0;r>t;t++)if(x.contains(this,n[t]))return!0})},not:function(e){return this.pushStack(ft(this,e||[],!0))},filter:function(e){return this.pushStack(ft(this,e||[],!1))},is:function(e){return!!ft(this,"string"==typeof e&&ut.test(e)?x(e):e||[],!1).length},closest:function(e,t){var n,r=0,i=this.length,o=[],a=ut.test(e)||"string"!=typeof e?x(e,t||this.context):0;for(;i>r;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(11>n.nodeType&&(a?a.index(n)>-1:1===n.nodeType&&x.find.matchesSelector(n,e))){n=o.push(n);break}return this.pushStack(o.length>1?x.unique(o):o)},index:function(e){return e?"string"==typeof e?x.inArray(this[0],x(e)):x.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){var n="string"==typeof e?x(e,t):x.makeArray(e&&e.nodeType?[e]:e),r=x.merge(this.get(),n);return this.pushStack(x.unique(r))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}});function pt(e,t){do e=e[t];while(e&&1!==e.nodeType);return e}x.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return x.dir(e,"parentNode")},parentsUntil:function(e,t,n){return x.dir(e,"parentNode",n)},next:function(e){return pt(e,"nextSibling")},prev:function(e){return pt(e,"previousSibling")},nextAll:function(e){return x.dir(e,"nextSibling")},prevAll:function(e){return x.dir(e,"previousSibling")},nextUntil:function(e,t,n){return x.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return x.dir(e,"previousSibling",n)},siblings:function(e){return x.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return x.sibling(e.firstChild)},contents:function(e){return x.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:x.merge([],e.childNodes)}},function(e,t){x.fn[e]=function(n,r){var i=x.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=x.filter(r,i)),this.length>1&&(ct[e]||(i=x.unique(i)),lt.test(e)&&(i=i.reverse())),this.pushStack(i)}}),x.extend({filter:function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?x.find.matchesSelector(r,e)?[r]:[]:x.find.matches(e,x.grep(t,function(e){return 1===e.nodeType}))},dir:function(e,n,r){var i=[],o=e[n];while(o&&9!==o.nodeType&&(r===t||1!==o.nodeType||!x(o).is(r)))1===o.nodeType&&i.push(o),o=o[n];return i},sibling:function(e,t){var n=[];for(;e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}});function ft(e,t,n){if(x.isFunction(t))return x.grep(e,function(e,r){return!!t.call(e,r,e)!==n});if(t.nodeType)return x.grep(e,function(e){return e===t!==n});if("string"==typeof t){if(st.test(t))return x.filter(t,e,n);t=x.filter(t,e)}return x.grep(e,function(e){return x.inArray(e,t)>=0!==n})}function dt(e){var t=ht.split("|"),n=e.createDocumentFragment();if(n.createElement)while(t.length)n.createElement(t.pop());return n}var ht="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",gt=/ jQuery\d+="(?:null|\d+)"/g,mt=RegExp("<(?:"+ht+")[\\s/>]","i"),yt=/^\s+/,vt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,bt=/<([\w:]+)/,xt=/<tbody/i,wt=/<|&#?\w+;/,Tt=/<(?:script|style|link)/i,Ct=/^(?:checkbox|radio)$/i,Nt=/checked\s*(?:[^=]|=\s*.checked.)/i,kt=/^$|\/(?:java|ecma)script/i,Et=/^true\/(.*)/,St=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,At={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:x.support.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]},jt=dt(a),Dt=jt.appendChild(a.createElement("div"));At.optgroup=At.option,At.tbody=At.tfoot=At.colgroup=At.caption=At.thead,At.th=At.td,x.fn.extend({text:function(e){return x.access(this,function(e){return e===t?x.text(this):this.empty().append((this[0]&&this[0].ownerDocument||a).createTextNode(e))},null,e,arguments.length)},append:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Lt(this,e);t.appendChild(e)}})},prepend:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Lt(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},remove:function(e,t){var n,r=e?x.filter(e,this):this,i=0;for(;null!=(n=r[i]);i++)t||1!==n.nodeType||x.cleanData(Ft(n)),n.parentNode&&(t&&x.contains(n.ownerDocument,n)&&_t(Ft(n,"script")),n.parentNode.removeChild(n));return this},empty:function(){var e,t=0;for(;null!=(e=this[t]);t++){1===e.nodeType&&x.cleanData(Ft(e,!1));while(e.firstChild)e.removeChild(e.firstChild);e.options&&x.nodeName(e,"select")&&(e.options.length=0)}return this},clone:function(e,t){return e=null==e?!1:e,t=null==t?e:t,this.map(function(){return x.clone(this,e,t)})},html:function(e){return x.access(this,function(e){var n=this[0]||{},r=0,i=this.length;if(e===t)return 1===n.nodeType?n.innerHTML.replace(gt,""):t;if(!("string"!=typeof e||Tt.test(e)||!x.support.htmlSerialize&&mt.test(e)||!x.support.leadingWhitespace&&yt.test(e)||At[(bt.exec(e)||["",""])[1].toLowerCase()])){e=e.replace(vt,"<$1></$2>");try{for(;i>r;r++)n=this[r]||{},1===n.nodeType&&(x.cleanData(Ft(n,!1)),n.innerHTML=e);n=0}catch(o){}}n&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var e=x.map(this,function(e){return[e.nextSibling,e.parentNode]}),t=0;return this.domManip(arguments,function(n){var r=e[t++],i=e[t++];i&&(r&&r.parentNode!==i&&(r=this.nextSibling),x(this).remove(),i.insertBefore(n,r))},!0),t?this:this.remove()},detach:function(e){return this.remove(e,!0)},domManip:function(e,t,n){e=d.apply([],e);var r,i,o,a,s,l,u=0,c=this.length,p=this,f=c-1,h=e[0],g=x.isFunction(h);if(g||!(1>=c||"string"!=typeof h||x.support.checkClone)&&Nt.test(h))return this.each(function(r){var i=p.eq(r);g&&(e[0]=h.call(this,r,i.html())),i.domManip(e,t,n)});if(c&&(l=x.buildFragment(e,this[0].ownerDocument,!1,!n&&this),r=l.firstChild,1===l.childNodes.length&&(l=r),r)){for(a=x.map(Ft(l,"script"),Ht),o=a.length;c>u;u++)i=l,u!==f&&(i=x.clone(i,!0,!0),o&&x.merge(a,Ft(i,"script"))),t.call(this[u],i,u);if(o)for(s=a[a.length-1].ownerDocument,x.map(a,qt),u=0;o>u;u++)i=a[u],kt.test(i.type||"")&&!x._data(i,"globalEval")&&x.contains(s,i)&&(i.src?x._evalUrl(i.src):x.globalEval((i.text||i.textContent||i.innerHTML||"").replace(St,"")));l=r=null}return this}});function Lt(e,t){return x.nodeName(e,"table")&&x.nodeName(1===t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function Ht(e){return e.type=(null!==x.find.attr(e,"type"))+"/"+e.type,e}function qt(e){var t=Et.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function _t(e,t){var n,r=0;for(;null!=(n=e[r]);r++)x._data(n,"globalEval",!t||x._data(t[r],"globalEval"))}function Mt(e,t){if(1===t.nodeType&&x.hasData(e)){var n,r,i,o=x._data(e),a=x._data(t,o),s=o.events;if(s){delete a.handle,a.events={};for(n in s)for(r=0,i=s[n].length;i>r;r++)x.event.add(t,n,s[n][r])}a.data&&(a.data=x.extend({},a.data))}}function Ot(e,t){var n,r,i;if(1===t.nodeType){if(n=t.nodeName.toLowerCase(),!x.support.noCloneEvent&&t[x.expando]){i=x._data(t);for(r in i.events)x.removeEvent(t,r,i.handle);t.removeAttribute(x.expando)}"script"===n&&t.text!==e.text?(Ht(t).text=e.text,qt(t)):"object"===n?(t.parentNode&&(t.outerHTML=e.outerHTML),x.support.html5Clone&&e.innerHTML&&!x.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML)):"input"===n&&Ct.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):"option"===n?t.defaultSelected=t.selected=e.defaultSelected:("input"===n||"textarea"===n)&&(t.defaultValue=e.defaultValue)}}x.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){x.fn[e]=function(e){var n,r=0,i=[],o=x(e),a=o.length-1;for(;a>=r;r++)n=r===a?this:this.clone(!0),x(o[r])[t](n),h.apply(i,n.get());return this.pushStack(i)}});function Ft(e,n){var r,o,a=0,s=typeof e.getElementsByTagName!==i?e.getElementsByTagName(n||"*"):typeof e.querySelectorAll!==i?e.querySelectorAll(n||"*"):t;if(!s)for(s=[],r=e.childNodes||e;null!=(o=r[a]);a++)!n||x.nodeName(o,n)?s.push(o):x.merge(s,Ft(o,n));return n===t||n&&x.nodeName(e,n)?x.merge([e],s):s}function Bt(e){Ct.test(e.type)&&(e.defaultChecked=e.checked)}x.extend({clone:function(e,t,n){var r,i,o,a,s,l=x.contains(e.ownerDocument,e);if(x.support.html5Clone||x.isXMLDoc(e)||!mt.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(Dt.innerHTML=e.outerHTML,Dt.removeChild(o=Dt.firstChild)),!(x.support.noCloneEvent&&x.support.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||x.isXMLDoc(e)))for(r=Ft(o),s=Ft(e),a=0;null!=(i=s[a]);++a)r[a]&&Ot(i,r[a]);if(t)if(n)for(s=s||Ft(e),r=r||Ft(o),a=0;null!=(i=s[a]);a++)Mt(i,r[a]);else Mt(e,o);return r=Ft(o,"script"),r.length>0&&_t(r,!l&&Ft(e,"script")),r=s=i=null,o},buildFragment:function(e,t,n,r){var i,o,a,s,l,u,c,p=e.length,f=dt(t),d=[],h=0;for(;p>h;h++)if(o=e[h],o||0===o)if("object"===x.type(o))x.merge(d,o.nodeType?[o]:o);else if(wt.test(o)){s=s||f.appendChild(t.createElement("div")),l=(bt.exec(o)||["",""])[1].toLowerCase(),c=At[l]||At._default,s.innerHTML=c[1]+o.replace(vt,"<$1></$2>")+c[2],i=c[0];while(i--)s=s.lastChild;if(!x.support.leadingWhitespace&&yt.test(o)&&d.push(t.createTextNode(yt.exec(o)[0])),!x.support.tbody){o="table"!==l||xt.test(o)?"<table>"!==c[1]||xt.test(o)?0:s:s.firstChild,i=o&&o.childNodes.length;while(i--)x.nodeName(u=o.childNodes[i],"tbody")&&!u.childNodes.length&&o.removeChild(u)}x.merge(d,s.childNodes),s.textContent="";while(s.firstChild)s.removeChild(s.firstChild);s=f.lastChild}else d.push(t.createTextNode(o));s&&f.removeChild(s),x.support.appendChecked||x.grep(Ft(d,"input"),Bt),h=0;while(o=d[h++])if((!r||-1===x.inArray(o,r))&&(a=x.contains(o.ownerDocument,o),s=Ft(f.appendChild(o),"script"),a&&_t(s),n)){i=0;while(o=s[i++])kt.test(o.type||"")&&n.push(o)}return s=null,f},cleanData:function(e,t){var n,r,o,a,s=0,l=x.expando,u=x.cache,c=x.support.deleteExpando,f=x.event.special;for(;null!=(n=e[s]);s++)if((t||x.acceptData(n))&&(o=n[l],a=o&&u[o])){if(a.events)for(r in a.events)f[r]?x.event.remove(n,r):x.removeEvent(n,r,a.handle); | ||
6 | u[o]&&(delete u[o],c?delete n[l]:typeof n.removeAttribute!==i?n.removeAttribute(l):n[l]=null,p.push(o))}},_evalUrl:function(e){return x.ajax({url:e,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})}}),x.fn.extend({wrapAll:function(e){if(x.isFunction(e))return this.each(function(t){x(this).wrapAll(e.call(this,t))});if(this[0]){var t=x(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstChild&&1===e.firstChild.nodeType)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return x.isFunction(e)?this.each(function(t){x(this).wrapInner(e.call(this,t))}):this.each(function(){var t=x(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=x.isFunction(e);return this.each(function(n){x(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){x.nodeName(this,"body")||x(this).replaceWith(this.childNodes)}).end()}});var Pt,Rt,Wt,$t=/alpha\([^)]*\)/i,It=/opacity\s*=\s*([^)]*)/,zt=/^(top|right|bottom|left)$/,Xt=/^(none|table(?!-c[ea]).+)/,Ut=/^margin/,Vt=RegExp("^("+w+")(.*)$","i"),Yt=RegExp("^("+w+")(?!px)[a-z%]+$","i"),Jt=RegExp("^([+-])=("+w+")","i"),Gt={BODY:"block"},Qt={position:"absolute",visibility:"hidden",display:"block"},Kt={letterSpacing:0,fontWeight:400},Zt=["Top","Right","Bottom","Left"],en=["Webkit","O","Moz","ms"];function tn(e,t){if(t in e)return t;var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=en.length;while(i--)if(t=en[i]+n,t in e)return t;return r}function nn(e,t){return e=t||e,"none"===x.css(e,"display")||!x.contains(e.ownerDocument,e)}function rn(e,t){var n,r,i,o=[],a=0,s=e.length;for(;s>a;a++)r=e[a],r.style&&(o[a]=x._data(r,"olddisplay"),n=r.style.display,t?(o[a]||"none"!==n||(r.style.display=""),""===r.style.display&&nn(r)&&(o[a]=x._data(r,"olddisplay",ln(r.nodeName)))):o[a]||(i=nn(r),(n&&"none"!==n||!i)&&x._data(r,"olddisplay",i?n:x.css(r,"display"))));for(a=0;s>a;a++)r=e[a],r.style&&(t&&"none"!==r.style.display&&""!==r.style.display||(r.style.display=t?o[a]||"":"none"));return e}x.fn.extend({css:function(e,n){return x.access(this,function(e,n,r){var i,o,a={},s=0;if(x.isArray(n)){for(o=Rt(e),i=n.length;i>s;s++)a[n[s]]=x.css(e,n[s],!1,o);return a}return r!==t?x.style(e,n,r):x.css(e,n)},e,n,arguments.length>1)},show:function(){return rn(this,!0)},hide:function(){return rn(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){nn(this)?x(this).show():x(this).hide()})}}),x.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Wt(e,"opacity");return""===n?"1":n}}}},cssNumber:{columnCount:!0,fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":x.support.cssFloat?"cssFloat":"styleFloat"},style:function(e,n,r,i){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var o,a,s,l=x.camelCase(n),u=e.style;if(n=x.cssProps[l]||(x.cssProps[l]=tn(u,l)),s=x.cssHooks[n]||x.cssHooks[l],r===t)return s&&"get"in s&&(o=s.get(e,!1,i))!==t?o:u[n];if(a=typeof r,"string"===a&&(o=Jt.exec(r))&&(r=(o[1]+1)*o[2]+parseFloat(x.css(e,n)),a="number"),!(null==r||"number"===a&&isNaN(r)||("number"!==a||x.cssNumber[l]||(r+="px"),x.support.clearCloneStyle||""!==r||0!==n.indexOf("background")||(u[n]="inherit"),s&&"set"in s&&(r=s.set(e,r,i))===t)))try{u[n]=r}catch(c){}}},css:function(e,n,r,i){var o,a,s,l=x.camelCase(n);return n=x.cssProps[l]||(x.cssProps[l]=tn(e.style,l)),s=x.cssHooks[n]||x.cssHooks[l],s&&"get"in s&&(a=s.get(e,!0,r)),a===t&&(a=Wt(e,n,i)),"normal"===a&&n in Kt&&(a=Kt[n]),""===r||r?(o=parseFloat(a),r===!0||x.isNumeric(o)?o||0:a):a}}),e.getComputedStyle?(Rt=function(t){return e.getComputedStyle(t,null)},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),l=s?s.getPropertyValue(n)||s[n]:t,u=e.style;return s&&(""!==l||x.contains(e.ownerDocument,e)||(l=x.style(e,n)),Yt.test(l)&&Ut.test(n)&&(i=u.width,o=u.minWidth,a=u.maxWidth,u.minWidth=u.maxWidth=u.width=l,l=s.width,u.width=i,u.minWidth=o,u.maxWidth=a)),l}):a.documentElement.currentStyle&&(Rt=function(e){return e.currentStyle},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),l=s?s[n]:t,u=e.style;return null==l&&u&&u[n]&&(l=u[n]),Yt.test(l)&&!zt.test(n)&&(i=u.left,o=e.runtimeStyle,a=o&&o.left,a&&(o.left=e.currentStyle.left),u.left="fontSize"===n?"1em":l,l=u.pixelLeft+"px",u.left=i,a&&(o.left=a)),""===l?"auto":l});function on(e,t,n){var r=Vt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function an(e,t,n,r,i){var o=n===(r?"border":"content")?4:"width"===t?1:0,a=0;for(;4>o;o+=2)"margin"===n&&(a+=x.css(e,n+Zt[o],!0,i)),r?("content"===n&&(a-=x.css(e,"padding"+Zt[o],!0,i)),"margin"!==n&&(a-=x.css(e,"border"+Zt[o]+"Width",!0,i))):(a+=x.css(e,"padding"+Zt[o],!0,i),"padding"!==n&&(a+=x.css(e,"border"+Zt[o]+"Width",!0,i)));return a}function sn(e,t,n){var r=!0,i="width"===t?e.offsetWidth:e.offsetHeight,o=Rt(e),a=x.support.boxSizing&&"border-box"===x.css(e,"boxSizing",!1,o);if(0>=i||null==i){if(i=Wt(e,t,o),(0>i||null==i)&&(i=e.style[t]),Yt.test(i))return i;r=a&&(x.support.boxSizingReliable||i===e.style[t]),i=parseFloat(i)||0}return i+an(e,t,n||(a?"border":"content"),r,o)+"px"}function ln(e){var t=a,n=Gt[e];return n||(n=un(e,t),"none"!==n&&n||(Pt=(Pt||x("<iframe frameborder='0' width='0' height='0'/>").css("cssText","display:block !important")).appendTo(t.documentElement),t=(Pt[0].contentWindow||Pt[0].contentDocument).document,t.write("<!doctype html><html><body>"),t.close(),n=un(e,t),Pt.detach()),Gt[e]=n),n}function un(e,t){var n=x(t.createElement(e)).appendTo(t.body),r=x.css(n[0],"display");return n.remove(),r}x.each(["height","width"],function(e,n){x.cssHooks[n]={get:function(e,r,i){return r?0===e.offsetWidth&&Xt.test(x.css(e,"display"))?x.swap(e,Qt,function(){return sn(e,n,i)}):sn(e,n,i):t},set:function(e,t,r){var i=r&&Rt(e);return on(e,t,r?an(e,n,r,x.support.boxSizing&&"border-box"===x.css(e,"boxSizing",!1,i),i):0)}}}),x.support.opacity||(x.cssHooks.opacity={get:function(e,t){return It.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,r=e.currentStyle,i=x.isNumeric(t)?"alpha(opacity="+100*t+")":"",o=r&&r.filter||n.filter||"";n.zoom=1,(t>=1||""===t)&&""===x.trim(o.replace($t,""))&&n.removeAttribute&&(n.removeAttribute("filter"),""===t||r&&!r.filter)||(n.filter=$t.test(o)?o.replace($t,i):o+" "+i)}}),x(function(){x.support.reliableMarginRight||(x.cssHooks.marginRight={get:function(e,n){return n?x.swap(e,{display:"inline-block"},Wt,[e,"marginRight"]):t}}),!x.support.pixelPosition&&x.fn.position&&x.each(["top","left"],function(e,n){x.cssHooks[n]={get:function(e,r){return r?(r=Wt(e,n),Yt.test(r)?x(e).position()[n]+"px":r):t}}})}),x.expr&&x.expr.filters&&(x.expr.filters.hidden=function(e){return 0>=e.offsetWidth&&0>=e.offsetHeight||!x.support.reliableHiddenOffsets&&"none"===(e.style&&e.style.display||x.css(e,"display"))},x.expr.filters.visible=function(e){return!x.expr.filters.hidden(e)}),x.each({margin:"",padding:"",border:"Width"},function(e,t){x.cssHooks[e+t]={expand:function(n){var r=0,i={},o="string"==typeof n?n.split(" "):[n];for(;4>r;r++)i[e+Zt[r]+t]=o[r]||o[r-2]||o[0];return i}},Ut.test(e)||(x.cssHooks[e+t].set=on)});var cn=/%20/g,pn=/\[\]$/,fn=/\r?\n/g,dn=/^(?:submit|button|image|reset|file)$/i,hn=/^(?:input|select|textarea|keygen)/i;x.fn.extend({serialize:function(){return x.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=x.prop(this,"elements");return e?x.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!x(this).is(":disabled")&&hn.test(this.nodeName)&&!dn.test(e)&&(this.checked||!Ct.test(e))}).map(function(e,t){var n=x(this).val();return null==n?null:x.isArray(n)?x.map(n,function(e){return{name:t.name,value:e.replace(fn,"\r\n")}}):{name:t.name,value:n.replace(fn,"\r\n")}}).get()}}),x.param=function(e,n){var r,i=[],o=function(e,t){t=x.isFunction(t)?t():null==t?"":t,i[i.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};if(n===t&&(n=x.ajaxSettings&&x.ajaxSettings.traditional),x.isArray(e)||e.jquery&&!x.isPlainObject(e))x.each(e,function(){o(this.name,this.value)});else for(r in e)gn(r,e[r],n,o);return i.join("&").replace(cn,"+")};function gn(e,t,n,r){var i;if(x.isArray(t))x.each(t,function(t,i){n||pn.test(e)?r(e,i):gn(e+"["+("object"==typeof i?t:"")+"]",i,n,r)});else if(n||"object"!==x.type(t))r(e,t);else for(i in t)gn(e+"["+i+"]",t[i],n,r)}x.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(e,t){x.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),x.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)},bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}});var mn,yn,vn=x.now(),bn=/\?/,xn=/#.*$/,wn=/([?&])_=[^&]*/,Tn=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Cn=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Nn=/^(?:GET|HEAD)$/,kn=/^\/\//,En=/^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,Sn=x.fn.load,An={},jn={},Dn="*/".concat("*");try{yn=o.href}catch(Ln){yn=a.createElement("a"),yn.href="",yn=yn.href}mn=En.exec(yn.toLowerCase())||[];function Hn(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(T)||[];if(x.isFunction(n))while(r=o[i++])"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function qn(e,n,r,i){var o={},a=e===jn;function s(l){var u;return o[l]=!0,x.each(e[l]||[],function(e,l){var c=l(n,r,i);return"string"!=typeof c||a||o[c]?a?!(u=c):t:(n.dataTypes.unshift(c),s(c),!1)}),u}return s(n.dataTypes[0])||!o["*"]&&s("*")}function _n(e,n){var r,i,o=x.ajaxSettings.flatOptions||{};for(i in n)n[i]!==t&&((o[i]?e:r||(r={}))[i]=n[i]);return r&&x.extend(!0,e,r),e}x.fn.load=function(e,n,r){if("string"!=typeof e&&Sn)return Sn.apply(this,arguments);var i,o,a,s=this,l=e.indexOf(" ");return l>=0&&(i=e.slice(l,e.length),e=e.slice(0,l)),x.isFunction(n)?(r=n,n=t):n&&"object"==typeof n&&(a="POST"),s.length>0&&x.ajax({url:e,type:a,dataType:"html",data:n}).done(function(e){o=arguments,s.html(i?x("<div>").append(x.parseHTML(e)).find(i):e)}).complete(r&&function(e,t){s.each(r,o||[e.responseText,t,e])}),this},x.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){x.fn[t]=function(e){return this.on(t,e)}}),x.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:yn,type:"GET",isLocal:Cn.test(mn[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Dn,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":x.parseJSON,"text xml":x.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?_n(_n(e,x.ajaxSettings),t):_n(x.ajaxSettings,e)},ajaxPrefilter:Hn(An),ajaxTransport:Hn(jn),ajax:function(e,n){"object"==typeof e&&(n=e,e=t),n=n||{};var r,i,o,a,s,l,u,c,p=x.ajaxSetup({},n),f=p.context||p,d=p.context&&(f.nodeType||f.jquery)?x(f):x.event,h=x.Deferred(),g=x.Callbacks("once memory"),m=p.statusCode||{},y={},v={},b=0,w="canceled",C={readyState:0,getResponseHeader:function(e){var t;if(2===b){if(!c){c={};while(t=Tn.exec(a))c[t[1].toLowerCase()]=t[2]}t=c[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return 2===b?a:null},setRequestHeader:function(e,t){var n=e.toLowerCase();return b||(e=v[n]=v[n]||e,y[e]=t),this},overrideMimeType:function(e){return b||(p.mimeType=e),this},statusCode:function(e){var t;if(e)if(2>b)for(t in e)m[t]=[m[t],e[t]];else C.always(e[C.status]);return this},abort:function(e){var t=e||w;return u&&u.abort(t),k(0,t),this}};if(h.promise(C).complete=g.add,C.success=C.done,C.error=C.fail,p.url=((e||p.url||yn)+"").replace(xn,"").replace(kn,mn[1]+"//"),p.type=n.method||n.type||p.method||p.type,p.dataTypes=x.trim(p.dataType||"*").toLowerCase().match(T)||[""],null==p.crossDomain&&(r=En.exec(p.url.toLowerCase()),p.crossDomain=!(!r||r[1]===mn[1]&&r[2]===mn[2]&&(r[3]||("http:"===r[1]?"80":"443"))===(mn[3]||("http:"===mn[1]?"80":"443")))),p.data&&p.processData&&"string"!=typeof p.data&&(p.data=x.param(p.data,p.traditional)),qn(An,p,n,C),2===b)return C;l=p.global,l&&0===x.active++&&x.event.trigger("ajaxStart"),p.type=p.type.toUpperCase(),p.hasContent=!Nn.test(p.type),o=p.url,p.hasContent||(p.data&&(o=p.url+=(bn.test(o)?"&":"?")+p.data,delete p.data),p.cache===!1&&(p.url=wn.test(o)?o.replace(wn,"$1_="+vn++):o+(bn.test(o)?"&":"?")+"_="+vn++)),p.ifModified&&(x.lastModified[o]&&C.setRequestHeader("If-Modified-Since",x.lastModified[o]),x.etag[o]&&C.setRequestHeader("If-None-Match",x.etag[o])),(p.data&&p.hasContent&&p.contentType!==!1||n.contentType)&&C.setRequestHeader("Content-Type",p.contentType),C.setRequestHeader("Accept",p.dataTypes[0]&&p.accepts[p.dataTypes[0]]?p.accepts[p.dataTypes[0]]+("*"!==p.dataTypes[0]?", "+Dn+"; q=0.01":""):p.accepts["*"]);for(i in p.headers)C.setRequestHeader(i,p.headers[i]);if(p.beforeSend&&(p.beforeSend.call(f,C,p)===!1||2===b))return C.abort();w="abort";for(i in{success:1,error:1,complete:1})C[i](p[i]);if(u=qn(jn,p,n,C)){C.readyState=1,l&&d.trigger("ajaxSend",[C,p]),p.async&&p.timeout>0&&(s=setTimeout(function(){C.abort("timeout")},p.timeout));try{b=1,u.send(y,k)}catch(N){if(!(2>b))throw N;k(-1,N)}}else k(-1,"No Transport");function k(e,n,r,i){var c,y,v,w,T,N=n;2!==b&&(b=2,s&&clearTimeout(s),u=t,a=i||"",C.readyState=e>0?4:0,c=e>=200&&300>e||304===e,r&&(w=Mn(p,C,r)),w=On(p,w,C,c),c?(p.ifModified&&(T=C.getResponseHeader("Last-Modified"),T&&(x.lastModified[o]=T),T=C.getResponseHeader("etag"),T&&(x.etag[o]=T)),204===e||"HEAD"===p.type?N="nocontent":304===e?N="notmodified":(N=w.state,y=w.data,v=w.error,c=!v)):(v=N,(e||!N)&&(N="error",0>e&&(e=0))),C.status=e,C.statusText=(n||N)+"",c?h.resolveWith(f,[y,N,C]):h.rejectWith(f,[C,N,v]),C.statusCode(m),m=t,l&&d.trigger(c?"ajaxSuccess":"ajaxError",[C,p,c?y:v]),g.fireWith(f,[C,N]),l&&(d.trigger("ajaxComplete",[C,p]),--x.active||x.event.trigger("ajaxStop")))}return C},getJSON:function(e,t,n){return x.get(e,t,n,"json")},getScript:function(e,n){return x.get(e,t,n,"script")}}),x.each(["get","post"],function(e,n){x[n]=function(e,r,i,o){return x.isFunction(r)&&(o=o||i,i=r,r=t),x.ajax({url:e,type:n,dataType:o,data:r,success:i})}});function Mn(e,n,r){var i,o,a,s,l=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),o===t&&(o=e.mimeType||n.getResponseHeader("Content-Type"));if(o)for(s in l)if(l[s]&&l[s].test(o)){u.unshift(s);break}if(u[0]in r)a=u[0];else{for(s in r){if(!u[0]||e.converters[s+" "+u[0]]){a=s;break}i||(i=s)}a=a||i}return a?(a!==u[0]&&u.unshift(a),r[a]):t}function On(e,t,n,r){var i,o,a,s,l,u={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)u[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!l&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),l=o,o=c.shift())if("*"===o)o=l;else if("*"!==l&&l!==o){if(a=u[l+" "+o]||u["* "+o],!a)for(i in u)if(s=i.split(" "),s[1]===o&&(a=u[l+" "+s[0]]||u["* "+s[0]])){a===!0?a=u[i]:u[i]!==!0&&(o=s[0],c.unshift(s[1]));break}if(a!==!0)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(p){return{state:"parsererror",error:a?p:"No conversion from "+l+" to "+o}}}return{state:"success",data:t}}x.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(e){return x.globalEval(e),e}}}),x.ajaxPrefilter("script",function(e){e.cache===t&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),x.ajaxTransport("script",function(e){if(e.crossDomain){var n,r=a.head||x("head")[0]||a.documentElement;return{send:function(t,i){n=a.createElement("script"),n.async=!0,e.scriptCharset&&(n.charset=e.scriptCharset),n.src=e.url,n.onload=n.onreadystatechange=function(e,t){(t||!n.readyState||/loaded|complete/.test(n.readyState))&&(n.onload=n.onreadystatechange=null,n.parentNode&&n.parentNode.removeChild(n),n=null,t||i(200,"success"))},r.insertBefore(n,r.firstChild)},abort:function(){n&&n.onload(t,!0)}}}});var Fn=[],Bn=/(=)\?(?=&|$)|\?\?/;x.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Fn.pop()||x.expando+"_"+vn++;return this[e]=!0,e}}),x.ajaxPrefilter("json jsonp",function(n,r,i){var o,a,s,l=n.jsonp!==!1&&(Bn.test(n.url)?"url":"string"==typeof n.data&&!(n.contentType||"").indexOf("application/x-www-form-urlencoded")&&Bn.test(n.data)&&"data");return l||"jsonp"===n.dataTypes[0]?(o=n.jsonpCallback=x.isFunction(n.jsonpCallback)?n.jsonpCallback():n.jsonpCallback,l?n[l]=n[l].replace(Bn,"$1"+o):n.jsonp!==!1&&(n.url+=(bn.test(n.url)?"&":"?")+n.jsonp+"="+o),n.converters["script json"]=function(){return s||x.error(o+" was not called"),s[0]},n.dataTypes[0]="json",a=e[o],e[o]=function(){s=arguments},i.always(function(){e[o]=a,n[o]&&(n.jsonpCallback=r.jsonpCallback,Fn.push(o)),s&&x.isFunction(a)&&a(s[0]),s=a=t}),"script"):t});var Pn,Rn,Wn=0,$n=e.ActiveXObject&&function(){var e;for(e in Pn)Pn[e](t,!0)};function In(){try{return new e.XMLHttpRequest}catch(t){}}function zn(){try{return new e.ActiveXObject("Microsoft.XMLHTTP")}catch(t){}}x.ajaxSettings.xhr=e.ActiveXObject?function(){return!this.isLocal&&In()||zn()}:In,Rn=x.ajaxSettings.xhr(),x.support.cors=!!Rn&&"withCredentials"in Rn,Rn=x.support.ajax=!!Rn,Rn&&x.ajaxTransport(function(n){if(!n.crossDomain||x.support.cors){var r;return{send:function(i,o){var a,s,l=n.xhr();if(n.username?l.open(n.type,n.url,n.async,n.username,n.password):l.open(n.type,n.url,n.async),n.xhrFields)for(s in n.xhrFields)l[s]=n.xhrFields[s];n.mimeType&&l.overrideMimeType&&l.overrideMimeType(n.mimeType),n.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest");try{for(s in i)l.setRequestHeader(s,i[s])}catch(u){}l.send(n.hasContent&&n.data||null),r=function(e,i){var s,u,c,p;try{if(r&&(i||4===l.readyState))if(r=t,a&&(l.onreadystatechange=x.noop,$n&&delete Pn[a]),i)4!==l.readyState&&l.abort();else{p={},s=l.status,u=l.getAllResponseHeaders(),"string"==typeof l.responseText&&(p.text=l.responseText);try{c=l.statusText}catch(f){c=""}s||!n.isLocal||n.crossDomain?1223===s&&(s=204):s=p.text?200:404}}catch(d){i||o(-1,d)}p&&o(s,c,p,u)},n.async?4===l.readyState?setTimeout(r):(a=++Wn,$n&&(Pn||(Pn={},x(e).unload($n)),Pn[a]=r),l.onreadystatechange=r):r()},abort:function(){r&&r(t,!0)}}}});var Xn,Un,Vn=/^(?:toggle|show|hide)$/,Yn=RegExp("^(?:([+-])=|)("+w+")([a-z%]*)$","i"),Jn=/queueHooks$/,Gn=[nr],Qn={"*":[function(e,t){var n=this.createTween(e,t),r=n.cur(),i=Yn.exec(t),o=i&&i[3]||(x.cssNumber[e]?"":"px"),a=(x.cssNumber[e]||"px"!==o&&+r)&&Yn.exec(x.css(n.elem,e)),s=1,l=20;if(a&&a[3]!==o){o=o||a[3],i=i||[],a=+r||1;do s=s||".5",a/=s,x.style(n.elem,e,a+o);while(s!==(s=n.cur()/r)&&1!==s&&--l)}return i&&(a=n.start=+a||+r||0,n.unit=o,n.end=i[1]?a+(i[1]+1)*i[2]:+i[2]),n}]};function Kn(){return setTimeout(function(){Xn=t}),Xn=x.now()}function Zn(e,t,n){var r,i=(Qn[t]||[]).concat(Qn["*"]),o=0,a=i.length;for(;a>o;o++)if(r=i[o].call(n,t,e))return r}function er(e,t,n){var r,i,o=0,a=Gn.length,s=x.Deferred().always(function(){delete l.elem}),l=function(){if(i)return!1;var t=Xn||Kn(),n=Math.max(0,u.startTime+u.duration-t),r=n/u.duration||0,o=1-r,a=0,l=u.tweens.length;for(;l>a;a++)u.tweens[a].run(o);return s.notifyWith(e,[u,o,n]),1>o&&l?n:(s.resolveWith(e,[u]),!1)},u=s.promise({elem:e,props:x.extend({},t),opts:x.extend(!0,{specialEasing:{}},n),originalProperties:t,originalOptions:n,startTime:Xn||Kn(),duration:n.duration,tweens:[],createTween:function(t,n){var r=x.Tween(e,u.opts,t,n,u.opts.specialEasing[t]||u.opts.easing);return u.tweens.push(r),r},stop:function(t){var n=0,r=t?u.tweens.length:0;if(i)return this;for(i=!0;r>n;n++)u.tweens[n].run(1);return t?s.resolveWith(e,[u,t]):s.rejectWith(e,[u,t]),this}}),c=u.props;for(tr(c,u.opts.specialEasing);a>o;o++)if(r=Gn[o].call(u,e,c,u.opts))return r;return x.map(c,Zn,u),x.isFunction(u.opts.start)&&u.opts.start.call(e,u),x.fx.timer(x.extend(l,{elem:e,anim:u,queue:u.opts.queue})),u.progress(u.opts.progress).done(u.opts.done,u.opts.complete).fail(u.opts.fail).always(u.opts.always)}function tr(e,t){var n,r,i,o,a;for(n in e)if(r=x.camelCase(n),i=t[r],o=e[n],x.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),a=x.cssHooks[r],a&&"expand"in a){o=a.expand(o),delete e[r];for(n in o)n in e||(e[n]=o[n],t[n]=i)}else t[r]=i}x.Animation=x.extend(er,{tweener:function(e,t){x.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");var n,r=0,i=e.length;for(;i>r;r++)n=e[r],Qn[n]=Qn[n]||[],Qn[n].unshift(t)},prefilter:function(e,t){t?Gn.unshift(e):Gn.push(e)}});function nr(e,t,n){var r,i,o,a,s,l,u=this,c={},p=e.style,f=e.nodeType&&nn(e),d=x._data(e,"fxshow");n.queue||(s=x._queueHooks(e,"fx"),null==s.unqueued&&(s.unqueued=0,l=s.empty.fire,s.empty.fire=function(){s.unqueued||l()}),s.unqueued++,u.always(function(){u.always(function(){s.unqueued--,x.queue(e,"fx").length||s.empty.fire()})})),1===e.nodeType&&("height"in t||"width"in t)&&(n.overflow=[p.overflow,p.overflowX,p.overflowY],"inline"===x.css(e,"display")&&"none"===x.css(e,"float")&&(x.support.inlineBlockNeedsLayout&&"inline"!==ln(e.nodeName)?p.zoom=1:p.display="inline-block")),n.overflow&&(p.overflow="hidden",x.support.shrinkWrapBlocks||u.always(function(){p.overflow=n.overflow[0],p.overflowX=n.overflow[1],p.overflowY=n.overflow[2]}));for(r in t)if(i=t[r],Vn.exec(i)){if(delete t[r],o=o||"toggle"===i,i===(f?"hide":"show"))continue;c[r]=d&&d[r]||x.style(e,r)}if(!x.isEmptyObject(c)){d?"hidden"in d&&(f=d.hidden):d=x._data(e,"fxshow",{}),o&&(d.hidden=!f),f?x(e).show():u.done(function(){x(e).hide()}),u.done(function(){var t;x._removeData(e,"fxshow");for(t in c)x.style(e,t,c[t])});for(r in c)a=Zn(f?d[r]:0,r,u),r in d||(d[r]=a.start,f&&(a.end=a.start,a.start="width"===r||"height"===r?1:0))}}function rr(e,t,n,r,i){return new rr.prototype.init(e,t,n,r,i)}x.Tween=rr,rr.prototype={constructor:rr,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||"swing",this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(x.cssNumber[n]?"":"px")},cur:function(){var e=rr.propHooks[this.prop];return e&&e.get?e.get(this):rr.propHooks._default.get(this)},run:function(e){var t,n=rr.propHooks[this.prop];return this.pos=t=this.options.duration?x.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):rr.propHooks._default.set(this),this}},rr.prototype.init.prototype=rr.prototype,rr.propHooks={_default:{get:function(e){var t;return null==e.elem[e.prop]||e.elem.style&&null!=e.elem.style[e.prop]?(t=x.css(e.elem,e.prop,""),t&&"auto"!==t?t:0):e.elem[e.prop]},set:function(e){x.fx.step[e.prop]?x.fx.step[e.prop](e):e.elem.style&&(null!=e.elem.style[x.cssProps[e.prop]]||x.cssHooks[e.prop])?x.style(e.elem,e.prop,e.now+e.unit):e.elem[e.prop]=e.now}}},rr.propHooks.scrollTop=rr.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},x.each(["toggle","show","hide"],function(e,t){var n=x.fn[t];x.fn[t]=function(e,r,i){return null==e||"boolean"==typeof e?n.apply(this,arguments):this.animate(ir(t,!0),e,r,i)}}),x.fn.extend({fadeTo:function(e,t,n,r){return this.filter(nn).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=x.isEmptyObject(e),o=x.speed(t,n,r),a=function(){var t=er(this,x.extend({},e),o);(i||x._data(this,"finish"))&&t.stop(!0)};return a.finish=a,i||o.queue===!1?this.each(a):this.queue(o.queue,a)},stop:function(e,n,r){var i=function(e){var t=e.stop;delete e.stop,t(r)};return"string"!=typeof e&&(r=n,n=e,e=t),n&&e!==!1&&this.queue(e||"fx",[]),this.each(function(){var t=!0,n=null!=e&&e+"queueHooks",o=x.timers,a=x._data(this);if(n)a[n]&&a[n].stop&&i(a[n]);else for(n in a)a[n]&&a[n].stop&&Jn.test(n)&&i(a[n]);for(n=o.length;n--;)o[n].elem!==this||null!=e&&o[n].queue!==e||(o[n].anim.stop(r),t=!1,o.splice(n,1));(t||!r)&&x.dequeue(this,e)})},finish:function(e){return e!==!1&&(e=e||"fx"),this.each(function(){var t,n=x._data(this),r=n[e+"queue"],i=n[e+"queueHooks"],o=x.timers,a=r?r.length:0;for(n.finish=!0,x.queue(this,e,[]),i&&i.stop&&i.stop.call(this,!0),t=o.length;t--;)o[t].elem===this&&o[t].queue===e&&(o[t].anim.stop(!0),o.splice(t,1));for(t=0;a>t;t++)r[t]&&r[t].finish&&r[t].finish.call(this);delete n.finish})}});function ir(e,t){var n,r={height:e},i=0;for(t=t?1:0;4>i;i+=2-t)n=Zt[i],r["margin"+n]=r["padding"+n]=e;return t&&(r.opacity=r.width=e),r}x.each({slideDown:ir("show"),slideUp:ir("hide"),slideToggle:ir("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){x.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),x.speed=function(e,t,n){var r=e&&"object"==typeof e?x.extend({},e):{complete:n||!n&&t||x.isFunction(e)&&e,duration:e,easing:n&&t||t&&!x.isFunction(t)&&t};return r.duration=x.fx.off?0:"number"==typeof r.duration?r.duration:r.duration in x.fx.speeds?x.fx.speeds[r.duration]:x.fx.speeds._default,(null==r.queue||r.queue===!0)&&(r.queue="fx"),r.old=r.complete,r.complete=function(){x.isFunction(r.old)&&r.old.call(this),r.queue&&x.dequeue(this,r.queue)},r},x.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2}},x.timers=[],x.fx=rr.prototype.init,x.fx.tick=function(){var e,n=x.timers,r=0;for(Xn=x.now();n.length>r;r++)e=n[r],e()||n[r]!==e||n.splice(r--,1);n.length||x.fx.stop(),Xn=t},x.fx.timer=function(e){e()&&x.timers.push(e)&&x.fx.start()},x.fx.interval=13,x.fx.start=function(){Un||(Un=setInterval(x.fx.tick,x.fx.interval))},x.fx.stop=function(){clearInterval(Un),Un=null},x.fx.speeds={slow:600,fast:200,_default:400},x.fx.step={},x.expr&&x.expr.filters&&(x.expr.filters.animated=function(e){return x.grep(x.timers,function(t){return e===t.elem}).length}),x.fn.offset=function(e){if(arguments.length)return e===t?this:this.each(function(t){x.offset.setOffset(this,e,t)});var n,r,o={top:0,left:0},a=this[0],s=a&&a.ownerDocument;if(s)return n=s.documentElement,x.contains(n,a)?(typeof a.getBoundingClientRect!==i&&(o=a.getBoundingClientRect()),r=or(s),{top:o.top+(r.pageYOffset||n.scrollTop)-(n.clientTop||0),left:o.left+(r.pageXOffset||n.scrollLeft)-(n.clientLeft||0)}):o},x.offset={setOffset:function(e,t,n){var r=x.css(e,"position");"static"===r&&(e.style.position="relative");var i=x(e),o=i.offset(),a=x.css(e,"top"),s=x.css(e,"left"),l=("absolute"===r||"fixed"===r)&&x.inArray("auto",[a,s])>-1,u={},c={},p,f;l?(c=i.position(),p=c.top,f=c.left):(p=parseFloat(a)||0,f=parseFloat(s)||0),x.isFunction(t)&&(t=t.call(e,n,o)),null!=t.top&&(u.top=t.top-o.top+p),null!=t.left&&(u.left=t.left-o.left+f),"using"in t?t.using.call(e,u):i.css(u)}},x.fn.extend({position:function(){if(this[0]){var e,t,n={top:0,left:0},r=this[0];return"fixed"===x.css(r,"position")?t=r.getBoundingClientRect():(e=this.offsetParent(),t=this.offset(),x.nodeName(e[0],"html")||(n=e.offset()),n.top+=x.css(e[0],"borderTopWidth",!0),n.left+=x.css(e[0],"borderLeftWidth",!0)),{top:t.top-n.top-x.css(r,"marginTop",!0),left:t.left-n.left-x.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||s;while(e&&!x.nodeName(e,"html")&&"static"===x.css(e,"position"))e=e.offsetParent;return e||s})}}),x.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,n){var r=/Y/.test(n);x.fn[e]=function(i){return x.access(this,function(e,i,o){var a=or(e);return o===t?a?n in a?a[n]:a.document.documentElement[i]:e[i]:(a?a.scrollTo(r?x(a).scrollLeft():o,r?o:x(a).scrollTop()):e[i]=o,t)},e,i,arguments.length,null)}});function or(e){return x.isWindow(e)?e:9===e.nodeType?e.defaultView||e.parentWindow:!1}x.each({Height:"height",Width:"width"},function(e,n){x.each({padding:"inner"+e,content:n,"":"outer"+e},function(r,i){x.fn[i]=function(i,o){var a=arguments.length&&(r||"boolean"!=typeof i),s=r||(i===!0||o===!0?"margin":"border");return x.access(this,function(n,r,i){var o;return x.isWindow(n)?n.document.documentElement["client"+e]:9===n.nodeType?(o=n.documentElement,Math.max(n.body["scroll"+e],o["scroll"+e],n.body["offset"+e],o["offset"+e],o["client"+e])):i===t?x.css(n,r,s):x.style(n,r,i,s)},n,a?i:t,a,null)}})}),x.fn.size=function(){return this.length},x.fn.andSelf=x.fn.addBack,"object"==typeof module&&module&&"object"==typeof module.exports?module.exports=x:(e.jQuery=e.$=x,"function"==typeof define&&define.amd&&define("jquery",[],function(){return x}))})(window); \ No newline at end of file | ||
diff --git a/Blocks/time/script.js b/Blocks/time/script.js new file mode 100644 index 0000000..fb8ba69 --- /dev/null +++ b/Blocks/time/script.js | |||
@@ -0,0 +1,98 @@ | |||
1 | |||
2 | var update = function() { | ||
3 | |||
4 | // initialise screen | ||
5 | // selects all elements with class on and removes it | ||
6 | $('.on').removeClass("on"); | ||
7 | $("#its").addClass('on'); | ||
8 | |||
9 | // initialise date variables | ||
10 | current = new Date(); | ||
11 | var hour = current.getHours(); | ||
12 | if (hour > 12) {hour -= 12}; | ||
13 | var minutes = current.getMinutes(); | ||
14 | |||
15 | // set modifier | ||
16 | if (minutes < 3){ | ||
17 | $("#oclock").addClass('on'); | ||
18 | }else if (minutes < 33){ | ||
19 | $("#past").addClass('on'); | ||
20 | $("#minutes").addClass('on'); | ||
21 | }else if (minutes <= 57){ | ||
22 | $("#to").addClass('on'); | ||
23 | $("#minutes").addClass('on'); | ||
24 | hour === 12 ? hour = 1: hour += 1; | ||
25 | minutes = 60 - minutes; | ||
26 | }else{ | ||
27 | $("#oclock").addClass('on'); | ||
28 | hour === 12 ? hour = 1: hour += 1; | ||
29 | minutes = 60 - minutes; | ||
30 | } | ||
31 | |||
32 | //set minutes | ||
33 | if (minutes >= 3){ | ||
34 | if(minutes < 7){ | ||
35 | $("#fiveMod").addClass('on'); | ||
36 | }else if (minutes < 13){ | ||
37 | $("#tenMod").addClass('on'); | ||
38 | }else if (minutes < 17){ | ||
39 | $("#quarter").addClass('on'); | ||
40 | $("#minutes").removeClass('on'); | ||
41 | }else if (minutes < 23){ | ||
42 | $("#twenty").addClass('on'); | ||
43 | }else if (minutes < 27){ | ||
44 | $("#twenty").addClass('on'); | ||
45 | $("#fiveMod").addClass('on'); | ||
46 | }else if (minutes < 33){ | ||
47 | $("#half").addClass('on'); | ||
48 | $("#minutes").removeClass('on'); | ||
49 | } | ||
50 | } | ||
51 | |||
52 | //set hours | ||
53 | switch (hour){ | ||
54 | case 1 : | ||
55 | $("#one").addClass('on'); | ||
56 | break; | ||
57 | case 2 : | ||
58 | $("#two").addClass('on'); | ||
59 | break; | ||
60 | case 3 : | ||
61 | $("#three").addClass('on'); | ||
62 | break; | ||
63 | case 4 : | ||
64 | $("#four").addClass('on'); | ||
65 | break; | ||
66 | case 5 : | ||
67 | $("#five").addClass('on'); | ||
68 | break; | ||
69 | case 6 : | ||
70 | $("#six").addClass('on'); | ||
71 | break; | ||
72 | case 7 : | ||
73 | $("#seven").addClass('on'); | ||
74 | break; | ||
75 | case 8 : | ||
76 | $("#eight").addClass('on'); | ||
77 | break; | ||
78 | case 9 : | ||
79 | $("#nine").addClass('on'); | ||
80 | break; | ||
81 | case 10 : | ||
82 | $("#ten").addClass('on'); | ||
83 | break; | ||
84 | case 11 : | ||
85 | $("#eleven").addClass('on'); | ||
86 | break; | ||
87 | case 12 : | ||
88 | $("#twelve").addClass('on'); | ||
89 | break; | ||
90 | } | ||
91 | |||
92 | } | ||
93 | |||
94 | // run update on load and repeat every 30 seconds afterwards | ||
95 | $(document).ready(function(){ | ||
96 | update(); | ||
97 | setInterval(update,30000); | ||
98 | }); \ No newline at end of file | ||
diff --git a/Blocks/time/style.css b/Blocks/time/style.css new file mode 100644 index 0000000..e51a68a --- /dev/null +++ b/Blocks/time/style.css | |||
@@ -0,0 +1,33 @@ | |||
1 | #main{ | ||
2 | margin:auto; | ||
3 | width:460px; | ||
4 | height:520px; | ||
5 | border: 5px solid gray; | ||
6 | background-color:black; | ||
7 | color:#303030; | ||
8 | padding:20px; | ||
9 | font-family:"Arial","Sans"; | ||
10 | text-transform:uppercase; | ||
11 | } | ||
12 | |||
13 | .row>div{ | ||
14 | display:inline-block; | ||
15 | margin: 10px 20px; | ||
16 | font-size:40px; | ||
17 | text-align:center; | ||
18 | } | ||
19 | |||
20 | .row>div:first-child{ | ||
21 | float:left; | ||
22 | text-align:left; | ||
23 | } | ||
24 | |||
25 | .row>div:last-child{ | ||
26 | float:right; | ||
27 | text-align:right; | ||
28 | } | ||
29 | |||
30 | .on{ | ||
31 | color:white; | ||
32 | } | ||
33 | |||
diff --git a/Blocks/welcome.html b/Blocks/welcome.html new file mode 100644 index 0000000..d7765d7 --- /dev/null +++ b/Blocks/welcome.html | |||
@@ -0,0 +1,132 @@ | |||
1 | <html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"> | ||
2 | <title>For U</title> | ||
3 | |||
4 | <meta charset="UTF-8"> | ||
5 | |||
6 | <link rel="shortcut icon" href="./pi1.png"> | ||
7 | |||
8 | <link rel="stylesheet" href="./main.css"> | ||
9 | <style type="text/css"> | ||
10 | #yddContainer{display:block;font-family:Segoe Script;position:relative;width:100%;height:100%;top:-4px;left:-4px;font-size:12px;border:1px solid}#yddTop{display:block;height:22px}#yddTopBorderlr{display:block;position:static;height:17px;padding:2px 28px;line-height:17px;font-size:12px;color:#5079bb;font-weight:bold;border-style:none solid;border-width:1px}#yddTopBorderlr .ydd-sp{position:absolute;top:2px;height:0;overflow:hidden}.ydd-icon{left:5px;width:17px;padding:0px 0px 0px 0px;padding-top:17px;background-position:-16px -44px}.ydd-close{right:5px;width:16px;padding-top:16px;background-position:left -44px}#yddKeyTitle{float:left;text-decoration:none}#yddMiddle{display:block;margin-bottom:10px}.ydd-tabs{display:block;margin:5px 0;padding:0 5px;height:18px;border-bottom:1px solid}.ydd-tab{display:block;float:left;height:18px;margin:0 5px -1px 0;padding:0 4px;line-height:18px;border:1px solid;border-bottom:none}.ydd-trans-container{display:block;line-height:160%}.ydd-trans-container a{text-decoration:none;}#yddBottom{position:absolute;bottom:0;left:0;width:100%;height:22px;line-height:22px;overflow:hidden;background-position:left -22px}.ydd-padding010{padding:0 10px}#yddWrapper{color:#252525;z-index:10001;background:url(chrome-extension://eopjamdnofihpioajgfdikhhbobonhbb/ab20.png);}#yddContainer{background:#fff;border-color:#4b7598}#yddTopBorderlr{border-color:#f0f8fc}#yddWrapper .ydd-sp{background-image:url(chrome-extension://eopjamdnofihpioajgfdikhhbobonhbb/ydd-sprite.png)}#yddWrapper a,#yddWrapper a:hover,#yddWrapper a:visited{color:#50799b}#yddWrapper .ydd-tabs{color:#959595}.ydd-tabs,.ydd-tab{background:#fff;border-color:#d5e7f3}#yddBottom{color:#363636}#yddWrapper{min-width:250px;max-width:400px;}body { | ||
11 | background-repeat: repeat; | ||
12 | background-color: #CEE3F6; | ||
13 | background-image: url(72906-106.jpg); | ||
14 | } | ||
15 | #apDiv1 { | ||
16 | position: absolute; | ||
17 | left: 918px; | ||
18 | top: 22px; | ||
19 | width: 285px; | ||
20 | height: 353px; | ||
21 | z-index: 1; | ||
22 | } | ||
23 | </style></head> | ||
24 | <body> | ||
25 | <div id="card"> | ||
26 | <div class="block" id="b1"> | ||
27 | <div class="divin love"> | ||
28 | <img src="./For U_files/love.png"> | ||
29 | <h1><a href="code.html" target="_blank" style="text-decoration:none; color: white">爱情</a></h1> | ||
30 | </div> | ||
31 | <div class="inbox"> | ||
32 | <p><a href="code.html" target="_blank" style="text-decoration:none; color: white">关于你的每件事</a></p> | ||
33 | </div> | ||
34 | </div> | ||
35 | <div class="block" id="b2"> | ||
36 | <div class="divin"> | ||
37 | <img src="./For U_files/life.png"> | ||
38 | <h1><a href="life.html" target="_blank" style="text-decoration:none; color: white">生命</a></h1> | ||
39 | </div> | ||
40 | <div class="inbox"> | ||
41 | <p><a href="life.html" target="_blank" style="text-decoration:none; color: white">一直在前行</a></p> | ||
42 | </div> | ||
43 | </div> | ||
44 | <div class="block" id="b3"> | ||
45 | <div class="divin"> | ||
46 | <img src="./For U_files/train.png"> | ||
47 | <h1><a href="Flipboard/index.html" target="_blank" style="text-decoration:none; color:white">未来</a></h1> | ||
48 | </div> | ||
49 | <div class="inbox"> | ||
50 | <p><a href="Flipboard/index.html" target="_blank" style="text-decoration:none; color:white">说好的约定</a></p> | ||
51 | </div> | ||
52 | </div> | ||
53 | <div class="block" id="b4"> | ||
54 | <div class="divin"> | ||
55 | <img src="./For U_files/world.png"> | ||
56 | <h1><a href="post/index.html" target="_blank" style="text-decoration: none;color:white">世界</a></h1> | ||
57 | </div> | ||
58 | <div class="inbox"> | ||
59 | <p><a href="post/index.html" target="_blank" style="text-decoration: none;color:white">将会慢慢老去</a></p><p> | ||
60 | </p></div> | ||
61 | </div> | ||
62 | <div class="block" id="b5"> | ||
63 | <div class="divin time5"> | ||
64 | <img src="./For U_files/time.png"> | ||
65 | <h1><a href="time/index.html" target="_blank" style="text-decoration:none; color: white">时间</a></h1> | ||
66 | </div> | ||
67 | <div class="inbox time"> | ||
68 | <li class="list"> | ||
69 | 星<br> | ||
70 | 期<br> | ||
71 | 一 | ||
72 | </li> | ||
73 | <li class="list"> | ||
74 | 星<br> | ||
75 | 期<br> | ||
76 | 二 | ||
77 | </li> | ||
78 | <li class="list"> | ||
79 | 星<br> | ||
80 | 期<br> | ||
81 | 三 | ||
82 | </li> | ||
83 | <li class="list"> | ||
84 | 星<br> | ||
85 | 期<br> | ||
86 | 四 | ||
87 | </li> | ||
88 | <li class="list"> | ||
89 | 星<br> | ||
90 | 期<br> | ||
91 | 五 | ||
92 | </li> | ||
93 | <li class="list"> | ||
94 | 星<br> | ||
95 | 期<br> | ||
96 | 六 | ||
97 | </li> | ||
98 | <li class="list"> | ||
99 | 星<br> | ||
100 | 期<br> | ||
101 | 日 | ||
102 | </li> | ||
103 | <span id="loveu"><a href="time/index.html" target="_blank" style="text-decoration:none; color: white">每一句晚安</a></span> | ||
104 | </div> | ||
105 | </div> | ||
106 | <div class="block" id="b6"> | ||
107 | <div class="divin"> | ||
108 | <img src="./For U_files/python.png"> | ||
109 | <h1><a href="http://blog.jinwei.me" target="_blank" style="text-decoration:none; color: white">你</a></h1> | ||
110 | </div> | ||
111 | <div class="inbox"> | ||
112 | <p><a href="http://blog.jinwei.me" target="_blank" style="text-decoration:none; color: white">我的世界</a></p> | ||
113 | </div> | ||
114 | </div> | ||
115 | </div> | ||
116 | <audio src="audiojs/Richard .mp3" preload="auto" autoplay="true" loop="true"></audio> | ||
117 | <div style="display:none"><script type="text/javascript" > | ||
118 | var _bdhmProtocol = (("https:" == document.location.protocol) ? " https://" : " http://"); | ||
119 | document.write(unescape("%3Cscript src='" + _bdhmProtocol + "hm.baidu.com/h.js%3F91918ac6d6854623883a2b546ebc00ac' type='text/javascript'%3E%3C/script%3E")); | ||
120 | </script></div> | ||
121 | |||
122 | <script> | ||
123 | (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ | ||
124 | (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), | ||
125 | m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) | ||
126 | })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); | ||
127 | |||
128 | ga('create', 'UA-46099659-1', 'jinwei.me'); | ||
129 | ga('send', 'pageview'); | ||
130 | |||
131 | </script> | ||
132 | </body></html> \ No newline at end of file | ||