merged cont.
[opensuse:yast-rest-service.git] / webyast / public / javascripts / jquery.js
1 /*
2  * Source: jQuery JavaScript Library v1.3.2
3  * http://jquery.com/
4  *
5  * Copyright (c) 2009 John Resig
6  * Dual licensed under the MIT and GPL licenses.
7  * http://docs.jquery.com/License
8  *
9  * Date: 2009-02-19 17:34:21 -0500 (Thu, 19 Feb 2009)
10  * Revision: 6246
11  */
12 (function () {
13     var l = this,
14     g, y = l.jQuery,
15     p = l.$,
16     o = l.jQuery = l.$ = function (E, F) {
17         return new o.fn.init(E, F)
18     },
19     D = /^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/,
20     f = /^.[^:#\[\.,]*$/;
21     o.fn = o.prototype = {
22         init: function (E, H) {
23             E = E || document;
24             if (E.nodeType) {
25                 this[0] = E;
26                 this.length = 1;
27                 this.context = E;
28                 return this
29             }
30             if (typeof E === "string") {
31                 var G = D.exec(E);
32                 if (G && (G[1] || !H)) {
33                     if (G[1]) {
34                         E = o.clean([G[1]], H)
35                     } else {
36                         var I = document.getElementById(G[3]);
37                         if (I && I.id != G[3]) {
38                             return o().find(E)
39                         }
40                         var F = o(I || []);
41                         F.context = document;
42                         F.selector = E;
43                         return F
44                     }
45                 } else {
46                     return o(H).find(E)
47                 }
48             } else { if (o.isFunction(E)) {
49                     return o(document).ready(E)
50                 }
51             }
52             if (E.selector && E.context) {
53                 this.selector = E.selector;
54                 this.context = E.context
55             }
56             return this.setArray(o.isArray(E) ? E : o.makeArray(E))
57         },
58         selector: "",
59         jquery: "1.3.2",
60         size: function () {
61             return this.length
62         },
63         get: function (E) {
64             return E === g ? Array.prototype.slice.call(this) : this[E]
65         },
66         pushStack: function (F, H, E) {
67             var G = o(F);
68             G.prevObject = this;
69             G.context = this.context;
70             if (H === "find") {
71                 G.selector = this.selector + (this.selector ? " " : "") + E
72             } else { if (H) {
73                     G.selector = this.selector + "." + H + "(" + E + ")"
74                 }
75             }
76             return G
77         },
78         setArray: function (E) {
79             this.length = 0;
80             Array.prototype.push.apply(this, E);
81             return this
82         },
83         each: function (F, E) {
84             return o.each(this, F, E)
85         },
86         index: function (E) {
87             return o.inArray(E && E.jquery ? E[0] : E, this)
88         },
89         attr: function (F, H, G) {
90             var E = F;
91             if (typeof F === "string") {
92                 if (H === g) {
93                     return this[0] && o[G || "attr"](this[0], F)
94                 } else {
95                     E = {};
96                     E[F] = H
97                 }
98             }
99             return this.each(function (I) {
100                 for (F in E) {
101                     o.attr(G ? this.style : this, F, o.prop(this, E[F], G, I, F))
102                 }
103             })
104         },
105         css: function (E, F) {
106             if ((E == "width" || E == "height") && parseFloat(F) < 0) {
107                 F = g
108             }
109             return this.attr(E, F, "curCSS")
110         },
111         text: function (F) {
112             if (typeof F !== "object" && F != null) {
113                 return this.empty().append((this[0] && this[0].ownerDocument || document).createTextNode(F))
114             }
115             var E = "";
116             o.each(F || this, function () {
117                 o.each(this.childNodes, function () {
118                     if (this.nodeType != 8) {
119                         E += this.nodeType != 1 ? this.nodeValue : o.fn.text([this])
120                     }
121                 })
122             });
123             return E
124         },
125         wrapAll: function (E) {
126             if (this[0]) {
127                 var F = o(E, this[0].ownerDocument).clone();
128                 if (this[0].parentNode) {
129                     F.insertBefore(this[0])
130                 }
131                 F.map(function () {
132                     var G = this;
133                     while (G.firstChild) {
134                         G = G.firstChild
135                     }
136                     return G
137                 }).append(this)
138             }
139             return this
140         },
141         wrapInner: function (E) {
142             return this.each(function () {
143                 o(this).contents().wrapAll(E)
144             })
145         },
146         wrap: function (E) {
147             return this.each(function () {
148                 o(this).wrapAll(E)
149             })
150         },
151         append: function () {
152             return this.domManip(arguments, true, function (E) {
153                 if (this.nodeType == 1) {
154                     this.appendChild(E)
155                 }
156             })
157         },
158         prepend: function () {
159             return this.domManip(arguments, true, function (E) {
160                 if (this.nodeType == 1) {
161                     this.insertBefore(E, this.firstChild)
162                 }
163             })
164         },
165         before: function () {
166             return this.domManip(arguments, false, function (E) {
167                 this.parentNode.insertBefore(E, this)
168             })
169         },
170         after: function () {
171             return this.domManip(arguments, false, function (E) {
172                 this.parentNode.insertBefore(E, this.nextSibling)
173             })
174         },
175         end: function () {
176             return this.prevObject || o([])
177         },
178         push: [].push,
179         sort: [].sort,
180         splice: [].splice,
181         find: function (E) {
182             if (this.length === 1) {
183                 var F = this.pushStack([], "find", E);
184                 F.length = 0;
185                 o.find(E, this[0], F);
186                 return F
187             } else {
188                 return this.pushStack(o.unique(o.map(this, function (G) {
189                     return o.find(E, G)
190                 })), "find", E)
191             }
192         },
193         clone: function (G) {
194             var E = this.map(function () {
195                 if (!o.support.noCloneEvent && !o.isXMLDoc(this)) {
196                     var I = this.outerHTML;
197                     if (!I) {
198                         var J = this.ownerDocument.createElement("div");
199                         J.appendChild(this.cloneNode(true));
200                         I = J.innerHTML
201                     }
202                     return o.clean([I.replace(/ jQuery\d+="(?:\d+|null)"/g, "").replace(/^\s*/, "")])[0]
203                 } else {
204                     return this.cloneNode(true)
205                 }
206             });
207             if (G === true) {
208                 var H = this.find("*").andSelf(),
209                 F = 0;
210                 E.find("*").andSelf().each(function () {
211                     if (this.nodeName !== H[F].nodeName) {
212                         return
213                     }
214                     var I = o.data(H[F], "events");
215                     for (var K in I) {
216                         for (var J in I[K]) {
217                             o.event.add(this, K, I[K][J], I[K][J].data)
218                         }
219                     }
220                     F++
221                 })
222             }
223             return E
224         },
225         filter: function (E) {
226             return this.pushStack(o.isFunction(E) && o.grep(this, function (G, F) {
227                 return E.call(G, F)
228             }) || o.multiFilter(E, o.grep(this, function (F) {
229                 return F.nodeType === 1
230             })), "filter", E)
231         },
232         closest: function (E) {
233             var G = o.expr.match.POS.test(E) ? o(E) : null,
234             F = 0;
235             return this.map(function () {
236                 var H = this;
237                 while (H && H.ownerDocument) {
238                     if (G ? G.index(H) > -1 : o(H).is(E)) {
239                         o.data(H, "closest", F);
240                         return H
241                     }
242                     H = H.parentNode;
243                     F++
244                 }
245             })
246         },
247         not: function (E) {
248             if (typeof E === "string") {
249                 if (f.test(E)) {
250                     return this.pushStack(o.multiFilter(E, this, true), "not", E)
251                 } else {
252                     E = o.multiFilter(E, this)
253                 }
254             }
255             var F = E.length && E[E.length - 1] !== g && !E.nodeType;
256             return this.filter(function () {
257                 return F ? o.inArray(this, E) < 0 : this != E
258             })
259         },
260         add: function (E) {
261             return this.pushStack(o.unique(o.merge(this.get(), typeof E === "string" ? o(E) : o.makeArray(E))))
262         },
263         is: function (E) {
264             return !! E && o.multiFilter(E, this).length > 0
265         },
266         hasClass: function (E) {
267             return !! E && this.is("." + E)
268         },
269         val: function (K) {
270             if (K === g) {
271                 var E = this[0];
272                 if (E) {
273                     if (o.nodeName(E, "option")) {
274                         return (E.attributes.value || {}).specified ? E.value : E.text
275                     }
276                     if (o.nodeName(E, "select")) {
277                         var I = E.selectedIndex,
278                         L = [],
279                         M = E.options,
280                         H = E.type == "select-one";
281                         if (I < 0) {
282                             return null
283                         }
284                         for (var F = H ? I : 0, J = H ? I + 1 : M.length; F < J; F++) {
285                             var G = M[F];
286                             if (G.selected) {
287                                 K = o(G).val();
288                                 if (H) {
289                                     return K
290                                 }
291                                 L.push(K)
292                             }
293                         }
294                         return L
295                     }
296                     return (E.value || "").replace(/\r/g, "")
297                 }
298                 return g
299             }
300             if (typeof K === "number") {
301                 K += ""
302             }
303             return this.each(function () {
304                 if (this.nodeType != 1) {
305                     return
306                 }
307                 if (o.isArray(K) && /radio|checkbox/.test(this.type)) {
308                     this.checked = (o.inArray(this.value, K) >= 0 || o.inArray(this.name, K) >= 0)
309                 } else { if (o.nodeName(this, "select")) {
310                         var N = o.makeArray(K);
311                         o("option", this).each(function () {
312                             this.selected = (o.inArray(this.value, N) >= 0 || o.inArray(this.text, N) >= 0)
313                         });
314                         if (!N.length) {
315                             this.selectedIndex = -1
316                         }
317                     } else {
318                         this.value = K
319                     }
320                 }
321             })
322         },
323         html: function (E) {
324             return E === g ? (this[0] ? this[0].innerHTML.replace(/ jQuery\d+="(?:\d+|null)"/g, "") : null) : this.empty().append(E)
325         },
326         replaceWith: function (E) {
327             return this.after(E).remove()
328         },
329         eq: function (E) {
330             return this.slice(E, +E + 1)
331         },
332         slice: function () {
333             return this.pushStack(Array.prototype.slice.apply(this, arguments), "slice", Array.prototype.slice.call(arguments).join(","))
334         },
335         map: function (E) {
336             return this.pushStack(o.map(this, function (G, F) {
337                 return E.call(G, F, G)
338             }))
339         },
340         andSelf: function () {
341             return this.add(this.prevObject)
342         },
343         domManip: function (J, M, L) {
344             if (this[0]) {
345                 var I = (this[0].ownerDocument || this[0]).createDocumentFragment(),
346                 F = o.clean(J, (this[0].ownerDocument || this[0]), I),
347                 H = I.firstChild;
348                 if (H) {
349                     for (var G = 0, E = this.length; G < E; G++) {
350                         L.call(K(this[G], H), this.length > 1 || G > 0 ? I.cloneNode(true) : I)
351                     }
352                 }
353                 if (F) {
354                     o.each(F, z)
355                 }
356             }
357             return this;
358             function K(N, O) {
359                 return M && o.nodeName(N, "table") && o.nodeName(O, "tr") ? (N.getElementsByTagName("tbody")[0] || N.appendChild(N.ownerDocument.createElement("tbody"))) : N
360             }
361         }
362     };
363     o.fn.init.prototype = o.fn;
364     function z(E, F) {
365         if (F.src) {
366             o.ajax({
367                 url: F.src,
368                 async: false,
369                 dataType: "script"
370             })
371         } else {
372             o.globalEval(F.text || F.textContent || F.innerHTML || "")
373         }
374         if (F.parentNode) {
375             F.parentNode.removeChild(F)
376         }
377     }
378     function e() {
379         return +new Date
380     }
381     o.extend = o.fn.extend = function () {
382         var J = arguments[0] || {},
383         H = 1,
384         I = arguments.length,
385         E = false,
386         G;
387         if (typeof J === "boolean") {
388             E = J;
389             J = arguments[1] || {};
390             H = 2
391         }
392         if (typeof J !== "object" && !o.isFunction(J)) {
393             J = {}
394         }
395         if (I == H) {
396             J = this;
397             --H
398         }
399         for (; H < I; H++) {
400             if ((G = arguments[H]) != null) {
401                 for (var F in G) {
402                     var K = J[F],
403                     L = G[F];
404                     if (J === L) {
405                         continue
406                     }
407                     if (E && L && typeof L === "object" && !L.nodeType) {
408                         J[F] = o.extend(E, K || (L.length != null ? [] : {}), L)
409                     } else { if (L !== g) {
410                             J[F] = L
411                         }
412                     }
413                 }
414             }
415         }
416         return J
417     };
418     var b = /z-?index|font-?weight|opacity|zoom|line-?height/i,
419     q = document.defaultView || {},
420     s = Object.prototype.toString;
421     o.extend({
422         noConflict: function (E) {
423             l.$ = p;
424             if (E) {
425                 l.jQuery = y
426             }
427             return o
428         },
429         isFunction: function (E) {
430             return s.call(E) === "[object Function]"
431         },
432         isArray: function (E) {
433             return s.call(E) === "[object Array]"
434         },
435         isXMLDoc: function (E) {
436             return E.nodeType === 9 && E.documentElement.nodeName !== "HTML" || !!E.ownerDocument && o.isXMLDoc(E.ownerDocument)
437         },
438         globalEval: function (G) {
439             if (G && /\S/.test(G)) {
440                 var F = document.getElementsByTagName("head")[0] || document.documentElement,
441                 E = document.createElement("script");
442                 E.type = "text/javascript";
443                 if (o.support.scriptEval) {
444                     E.appendChild(document.createTextNode(G))
445                 } else {
446                     E.text = G
447                 }
448                 F.insertBefore(E, F.firstChild);
449                 F.removeChild(E)
450             }
451         },
452         nodeName: function (F, E) {
453             return F.nodeName && F.nodeName.toUpperCase() == E.toUpperCase()
454         },
455         each: function (G, K, F) {
456             var E, H = 0,
457             I = G.length;
458             if (F) {
459                 if (I === g) {
460                     for (E in G) {
461                         if (K.apply(G[E], F) === false) {
462                             break
463                         }
464                     }
465                 } else {
466                     for (; H < I;) {
467                         if (K.apply(G[H++], F) === false) {
468                             break
469                         }
470                     }
471                 }
472             } else { if (I === g) {
473                     for (E in G) {
474                         if (K.call(G[E], E, G[E]) === false) {
475                             break
476                         }
477                     }
478                 } else {
479                     for (var J = G[0]; H < I && K.call(J, H, J) !== false; J = G[++H]) {}
480                 }
481             }
482             return G
483         },
484         prop: function (H, I, G, F, E) {
485             if (o.isFunction(I)) {
486                 I = I.call(H, F)
487             }
488             return typeof I === "number" && G == "curCSS" && !b.test(E) ? I + "px" : I
489         },
490         className: {
491             add: function (E, F) {
492                 o.each((F || "").split(/\s+/), function (G, H) {
493                     if (E.nodeType == 1 && !o.className.has(E.className, H)) {
494                         E.className += (E.className ? " " : "") + H
495                     }
496                 })
497             },
498             remove: function (E, F) {
499                 if (E.nodeType == 1) {
500                     E.className = F !== g ? o.grep(E.className.split(/\s+/), function (G) {
501                         return !o.className.has(F, G)
502                     }).join(" ") : ""
503                 }
504             },
505             has: function (F, E) {
506                 return F && o.inArray(E, (F.className || F).toString().split(/\s+/)) > -1
507             }
508         },
509         swap: function (H, G, I) {
510             var E = {};
511             for (var F in G) {
512                 E[F] = H.style[F];
513                 H.style[F] = G[F]
514             }
515             I.call(H);
516             for (var F in G) {
517                 H.style[F] = E[F]
518             }
519         },
520         css: function (H, F, J, E) {
521             if (F == "width" || F == "height") {
522                 var L, G = {
523                     position: "absolute",
524                     visibility: "hidden",
525                     display: "block"
526                 },
527                 K = F == "width" ? ["Left", "Right"] : ["Top", "Bottom"];
528                 function I() {
529                     L = F == "width" ? H.offsetWidth : H.offsetHeight;
530                     if (E === "border") {
531                         return
532                     }
533                     o.each(K, function () {
534                         if (!E) {
535                             L -= parseFloat(o.curCSS(H, "padding" + this, true)) || 0
536                         }
537                         if (E === "margin") {
538                             L += parseFloat(o.curCSS(H, "margin" + this, true)) || 0
539                         } else {
540                             L -= parseFloat(o.curCSS(H, "border" + this + "Width", true)) || 0
541                         }
542                     })
543                 }
544                 if (H.offsetWidth !== 0) {
545                     I()
546                 } else {
547                     o.swap(H, G, I)
548                 }
549                 return Math.max(0, Math.round(L))
550             }
551             return o.curCSS(H, F, J)
552         },
553         curCSS: function (I, F, G) {
554             var L, E = I.style;
555             if (F == "opacity" && !o.support.opacity) {
556                 L = o.attr(E, "opacity");
557                 return L == "" ? "1" : L
558             }
559             if (F.match(/float/i)) {
560                 F = w
561             }
562             if (!G && E && E[F]) {
563                 L = E[F]
564             } else { if (q.getComputedStyle) {
565                     if (F.match(/float/i)) {
566                         F = "float"
567                     }
568                     F = F.replace(/([A-Z])/g, "-$1").toLowerCase();
569                     var M = q.getComputedStyle(I, null);
570                     if (M) {
571                         L = M.getPropertyValue(F)
572                     }
573                     if (F == "opacity" && L == "") {
574                         L = "1"
575                     }
576                 } else { if (I.currentStyle) {
577                         var J = F.replace(/\-(\w)/g, function (N, O) {
578                             return O.toUpperCase()
579                         });
580                         L = I.currentStyle[F] || I.currentStyle[J];
581                         if (!/^\d+(px)?$/i.test(L) && /^\d/.test(L)) {
582                             var H = E.left,
583                             K = I.runtimeStyle.left;
584                             I.runtimeStyle.left = I.currentStyle.left;
585                             E.left = L || 0;
586                             L = E.pixelLeft + "px";
587                             E.left = H;
588                             I.runtimeStyle.left = K
589                         }
590                     }
591                 }
592             }
593             return L
594         },
595         clean: function (F, K, I) {
596             K = K || document;
597             if (typeof K.createElement === "undefined") {
598                 K = K.ownerDocument || K[0] && K[0].ownerDocument || document
599             }
600             if (!I && F.length === 1 && typeof F[0] === "string") {
601                 var H = /^<(\w+)\s*\/?>$/.exec(F[0]);
602                 if (H) {
603                     return [K.createElement(H[1])]
604                 }
605             }
606             var G = [],
607             E = [],
608             L = K.createElement("div");
609             o.each(F, function (P, S) {
610                 if (typeof S === "number") {
611                     S += ""
612                 }
613                 if (!S) {
614                     return
615                 }
616                 if (typeof S === "string") {
617                     S = S.replace(/(<(\w+)[^>]*?)\/>/g, function (U, V, T) {
618                         return T.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i) ? U : V + "></" + T + ">"
619                     });
620                     var O = S.replace(/^\s+/, "").substring(0, 10).toLowerCase();
621                     var Q = !O.indexOf("<opt") && [1, "<select multiple='multiple'>", "</select>"] || !O.indexOf("<leg") && [1, "<fieldset>", "</fieldset>"] || O.match(/^<(thead|tbody|tfoot|colg|cap)/) && [1, "<table>", "</table>"] || !O.indexOf("<tr") && [2, "<table><tbody>", "</tbody></table>"] || (!O.indexOf("<td") || !O.indexOf("<th")) && [3, "<table><tbody><tr>", "</tr></tbody></table>"] || !O.indexOf("<col") && [2, "<table><tbody></tbody><colgroup>", "</colgroup></table>"] || !o.support.htmlSerialize && [1, "div<div>", "</div>"] || [0, "", ""];
622                     L.innerHTML = Q[1] + S + Q[2];
623                     while (Q[0]--) {
624                         L = L.lastChild
625                     }
626                     if (!o.support.tbody) {
627                         var R = /<tbody/i.test(S),
628                         N = !O.indexOf("<table") && !R ? L.firstChild && L.firstChild.childNodes : Q[1] == "<table>" && !R ? L.childNodes : [];
629                         for (var M = N.length - 1; M >= 0; --M) {
630                             if (o.nodeName(N[M], "tbody") && !N[M].childNodes.length) {
631                                 N[M].parentNode.removeChild(N[M])
632                             }
633                         }
634                     }
635                     if (!o.support.leadingWhitespace && /^\s/.test(S)) {
636                         L.insertBefore(K.createTextNode(S.match(/^\s*/)[0]), L.firstChild)
637                     }
638                     S = o.makeArray(L.childNodes)
639                 }
640                 if (S.nodeType) {
641                     G.push(S)
642                 } else {
643                     G = o.merge(G, S)
644                 }
645             });
646             if (I) {
647                 for (var J = 0; G[J]; J++) {
648                     if (o.nodeName(G[J], "script") && (!G[J].type || G[J].type.toLowerCase() === "text/javascript")) {
649                         E.push(G[J].parentNode ? G[J].parentNode.removeChild(G[J]) : G[J])
650                     } else { if (G[J].nodeType === 1) {
651                             G.splice.apply(G, [J + 1, 0].concat(o.makeArray(G[J].getElementsByTagName("script"))))
652                         }
653                         I.appendChild(G[J])
654                     }
655                 }
656                 return E
657             }
658             return G
659         },
660         attr: function (J, G, K) {
661             if (!J || J.nodeType == 3 || J.nodeType == 8) {
662                 return g
663             }
664             var H = !o.isXMLDoc(J),
665             L = K !== g;
666             G = H && o.props[G] || G;
667             if (J.tagName) {
668                 var F = /href|src|style/.test(G);
669                 if (G == "selected" && J.parentNode) {
670                     J.parentNode.selectedIndex
671                 }
672                 if (G in J && H && !F) {
673                     if (L) {
674                         if (G == "type" && o.nodeName(J, "input") && J.parentNode) {
675                             throw "type property can't be changed"
676                         }
677                         J[G] = K
678                     }
679                     if (o.nodeName(J, "form") && J.getAttributeNode(G)) {
680                         return J.getAttributeNode(G).nodeValue
681                     }
682                     if (G == "tabIndex") {
683                         var I = J.getAttributeNode("tabIndex");
684                         return I && I.specified ? I.value : J.nodeName.match(/(button|input|object|select|textarea)/i) ? 0 : J.nodeName.match(/^(a|area)$/i) && J.href ? 0 : g
685                     }
686                     return J[G]
687                 }
688                 if (!o.support.style && H && G == "style") {
689                     return o.attr(J.style, "cssText", K)
690                 }
691                 if (L) {
692                     J.setAttribute(G, "" + K)
693                 }
694                 var E = !o.support.hrefNormalized && H && F ? J.getAttribute(G, 2) : J.getAttribute(G);
695                 return E === null ? g : E
696             }
697             if (!o.support.opacity && G == "opacity") {
698                 if (L) {
699                     J.zoom = 1;
700                     J.filter = (J.filter || "").replace(/alpha\([^)]*\)/, "") + (parseInt(K) + "" == "NaN" ? "" : "alpha(opacity=" + K * 100 + ")")
701                 }
702                 return J.filter && J.filter.indexOf("opacity=") >= 0 ? (parseFloat(J.filter.match(/opacity=([^)]*)/)[1]) / 100) + "" : ""
703             }
704             G = G.replace(/-([a-z])/ig, function (M, N) {
705                 return N.toUpperCase()
706             });
707             if (L) {
708                 J[G] = K
709             }
710             return J[G]
711         },
712         trim: function (E) {
713             return (E || "").replace(/^\s+|\s+$/g, "")
714         },
715         makeArray: function (G) {
716             var E = [];
717             if (G != null) {
718                 var F = G.length;
719                 if (F == null || typeof G === "string" || o.isFunction(G) || G.setInterval) {
720                     E[0] = G
721                 } else {
722                     while (F) {
723                         E[--F] = G[F]
724                     }
725                 }
726             }
727             return E
728         },
729         inArray: function (G, H) {
730             for (var E = 0, F = H.length; E < F; E++) {
731                 if (H[E] === G) {
732                     return E
733                 }
734             }
735             return -1
736         },
737         merge: function (H, E) {
738             var F = 0,
739             G, I = H.length;
740             if (!o.support.getAll) {
741                 while ((G = E[F++]) != null) {
742                     if (G.nodeType != 8) {
743                         H[I++] = G
744                     }
745                 }
746             } else {
747                 while ((G = E[F++]) != null) {
748                     H[I++] = G
749                 }
750             }
751             return H
752         },
753         unique: function (K) {
754             var F = [],
755             E = {};
756             try {
757                 for (var G = 0, H = K.length; G < H; G++) {
758                     var J = o.data(K[G]);
759                     if (!E[J]) {
760                         E[J] = true;
761                         F.push(K[G])
762                     }
763                 }
764             } catch(I) {
765                 F = K
766             }
767             return F
768         },
769         grep: function (F, J, E) {
770             var G = [];
771             for (var H = 0, I = F.length; H < I; H++) {
772                 if (!E != !J(F[H], H)) {
773                     G.push(F[H])
774                 }
775             }
776             return G
777         },
778         map: function (E, J) {
779             var F = [];
780             for (var G = 0, H = E.length; G < H; G++) {
781                 var I = J(E[G], G);
782                 if (I != null) {
783                     F[F.length] = I
784                 }
785             }
786             return F.concat.apply([], F)
787         }
788     });
789     var C = navigator.userAgent.toLowerCase();
790     o.browser = {
791         version: (C.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/) || [0, "0"])[1],
792         safari: /webkit/.test(C),
793         opera: /opera/.test(C),
794         msie: /msie/.test(C) && !/opera/.test(C),
795         mozilla: /mozilla/.test(C) && !/(compatible|webkit)/.test(C)
796     };
797     o.each({
798         parent: function (E) {
799             return E.parentNode
800         },
801         parents: function (E) {
802             return o.dir(E, "parentNode")
803         },
804         next: function (E) {
805             return o.nth(E, 2, "nextSibling")
806         },
807         prev: function (E) {
808             return o.nth(E, 2, "previousSibling")
809         },
810         nextAll: function (E) {
811             return o.dir(E, "nextSibling")
812         },
813         prevAll: function (E) {
814             return o.dir(E, "previousSibling")
815         },
816         siblings: function (E) {
817             return o.sibling(E.parentNode.firstChild, E)
818         },
819         children: function (E) {
820             return o.sibling(E.firstChild)
821         },
822         contents: function (E) {
823             return o.nodeName(E, "iframe") ? E.contentDocument || E.contentWindow.document : o.makeArray(E.childNodes)
824         }
825     },
826     function (E, F) {
827         o.fn[E] = function (G) {
828             var H = o.map(this, F);
829             if (G && typeof G == "string") {
830                 H = o.multiFilter(G, H)
831             }
832             return this.pushStack(o.unique(H), E, G)
833         }
834     });
835     o.each({
836         appendTo: "append",
837         prependTo: "prepend",
838         insertBefore: "before",
839         insertAfter: "after",
840         replaceAll: "replaceWith"
841     },
842     function (E, F) {
843         o.fn[E] = function (G) {
844             var J = [],
845             L = o(G);
846             for (var K = 0, H = L.length; K < H; K++) {
847                 var I = (K > 0 ? this.clone(true) : this).get();
848                 o.fn[F].apply(o(L[K]), I);
849                 J = J.concat(I)
850             }
851             return this.pushStack(J, E, G)
852         }
853     });
854     o.each({
855         removeAttr: function (E) {
856             o.attr(this, E, "");
857             if (this.nodeType == 1) {
858                 this.removeAttribute(E)
859             }
860         },
861         addClass: function (E) {
862             o.className.add(this, E)
863         },
864         removeClass: function (E) {
865             o.className.remove(this, E)
866         },
867         toggleClass: function (F, E) {
868             if (typeof E !== "boolean") {
869                 E = !o.className.has(this, F)
870             }
871             o.className[E ? "add" : "remove"](this, F)
872         },
873         remove: function (E) {
874             if (!E || o.filter(E, [this]).length) {
875                 o("*", this).add([this]).each(function () {
876                     o.event.remove(this);
877                     o.removeData(this)
878                 });
879                 if (this.parentNode) {
880                     this.parentNode.removeChild(this)
881                 }
882             }
883         },
884         empty: function () {
885             o(this).children().remove();
886             while (this.firstChild) {
887                 this.removeChild(this.firstChild)
888             }
889         }
890     },
891     function (E, F) {
892         o.fn[E] = function () {
893             return this.each(F, arguments)
894         }
895     });
896     function j(E, F) {
897         return E[0] && parseInt(o.curCSS(E[0], F, true), 10) || 0
898     }
899     var h = "jQuery" + e(),
900     v = 0,
901     A = {};
902     o.extend({
903         cache: {},
904         data: function (F, E, G) {
905             F = F == l ? A : F;
906             var H = F[h];
907             if (!H) {
908                 H = F[h] = ++v
909             }
910             if (E && !o.cache[H]) {
911                 o.cache[H] = {}
912             }
913             if (G !== g) {
914                 o.cache[H][E] = G
915             }
916             return E ? o.cache[H][E] : H
917         },
918         removeData: function (F, E) {
919             F = F == l ? A : F;
920             var H = F[h];
921             if (E) {
922                 if (o.cache[H]) {
923                     delete o.cache[H][E];
924                     E = "";
925                     for (E in o.cache[H]) {
926                         break
927                     }
928                     if (!E) {
929                         o.removeData(F)
930                     }
931                 }
932             } else {
933                 try {
934                     delete F[h]
935                 } catch(G) {
936                     if (F.removeAttribute) {
937                         F.removeAttribute(h)
938                     }
939                 }
940                 delete o.cache[H]
941             }
942         },
943         queue: function (F, E, H) {
944             if (F) {
945                 E = (E || "fx") + "queue";
946                 var G = o.data(F, E);
947                 if (!G || o.isArray(H)) {
948                     G = o.data(F, E, o.makeArray(H))
949                 } else { if (H) {
950                         G.push(H)
951                     }
952                 }
953             }
954             return G
955         },
956         dequeue: function (H, G) {
957             var E = o.queue(H, G),
958             F = E.shift();
959             if (!G || G === "fx") {
960                 F = E[0]
961             }
962             if (F !== g) {
963                 F.call(H)
964             }
965         }
966     });
967     o.fn.extend({
968         data: function (E, G) {
969             var H = E.split(".");
970             H[1] = H[1] ? "." + H[1] : "";
971             if (G === g) {
972                 var F = this.triggerHandler("getData" + H[1] + "!", [H[0]]);
973                 if (F === g && this.length) {
974                     F = o.data(this[0], E)
975                 }
976                 return F === g && H[1] ? this.data(H[0]) : F
977             } else {
978                 return this.trigger("setData" + H[1] + "!", [H[0], G]).each(function () {
979                     o.data(this, E, G)
980                 })
981             }
982         },
983         removeData: function (E) {
984             return this.each(function () {
985                 o.removeData(this, E)
986             })
987         },
988         queue: function (E, F) {
989             if (typeof E !== "string") {
990                 F = E;
991                 E = "fx"
992             }
993             if (F === g) {
994                 return o.queue(this[0], E)
995             }
996             return this.each(function () {
997                 var G = o.queue(this, E, F);
998                 if (E == "fx" && G.length == 1) {
999                     G[0].call(this)
1000                 }
1001             })
1002         },
1003         dequeue: function (E) {
1004             return this.each(function () {
1005                 o.dequeue(this, E)
1006             })
1007         }
1008     });
1009     /*
1010  * Sizzle CSS Selector Engine - v0.9.3
1011  *  Copyright 2009, The Dojo Foundation
1012  *  Released under the MIT, BSD, and GPL Licenses.
1013  *  More information: http://sizzlejs.com/
1014  */
1015     (function () {
1016         var R = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?/g,
1017         L = 0,
1018         H = Object.prototype.toString;
1019         var F = function (Y, U, ab, ac) {
1020             ab = ab || [];
1021             U = U || document;
1022             if (U.nodeType !== 1 && U.nodeType !== 9) {
1023                 return []
1024             }
1025             if (!Y || typeof Y !== "string") {
1026                 return ab
1027             }
1028             var Z = [],
1029             W,
1030             af,
1031             ai,
1032             T,
1033             ad,
1034             V,
1035             X = true;
1036             R.lastIndex = 0;
1037             while ((W = R.exec(Y)) !== null) {
1038                 Z.push(W[1]);
1039                 if (W[2]) {
1040                     V = RegExp.rightContext;
1041                     break
1042                 }
1043             }
1044             if (Z.length > 1 && M.exec(Y)) {
1045                 if (Z.length === 2 && I.relative[Z[0]]) {
1046                     af = J(Z[0] + Z[1], U)
1047                 } else {
1048                     af = I.relative[Z[0]] ? [U] : F(Z.shift(), U);
1049                     while (Z.length) {
1050                         Y = Z.shift();
1051                         if (I.relative[Y]) {
1052                             Y += Z.shift()
1053                         }
1054                         af = J(Y, af)
1055                     }
1056                 }
1057             } else {
1058                 var ae = ac ? {
1059                     expr: Z.pop(),
1060                     set: E(ac)
1061                 } : F.find(Z.pop(), Z.length === 1 && U.parentNode ? U.parentNode : U, Q(U));
1062                 af = F.filter(ae.expr, ae.set);
1063                 if (Z.length > 0) {
1064                     ai = E(af)
1065                 } else {
1066                     X = false
1067                 }
1068                 while (Z.length) {
1069                     var ah = Z.pop(),
1070                     ag = ah;
1071                     if (!I.relative[ah]) {
1072                         ah = ""
1073                     } else {
1074                         ag = Z.pop()
1075                     }
1076                     if (ag == null) {
1077                         ag = U
1078                     }
1079                     I.relative[ah](ai, ag, Q(U))
1080                 }
1081             }
1082             if (!ai) {
1083                 ai = af
1084             }
1085             if (!ai) {
1086                 throw "Syntax error, unrecognized expression: " + (ah || Y)
1087             }
1088             if (H.call(ai) === "[object Array]") {
1089                 if (!X) {
1090                     ab.push.apply(ab, ai)
1091                 } else { if (U.nodeType === 1) {
1092                         for (var aa = 0; ai[aa] != null; aa++) {
1093                             if (ai[aa] && (ai[aa] === true || ai[aa].nodeType === 1 && K(U, ai[aa]))) {
1094                                 ab.push(af[aa])
1095                             }
1096                         }
1097                     } else {
1098                         for (var aa = 0; ai[aa] != null; aa++) {
1099                             if (ai[aa] && ai[aa].nodeType === 1) {
1100                                 ab.push(af[aa])
1101                             }
1102                         }
1103                     }
1104                 }
1105             } else {
1106                 E(ai, ab)
1107             }
1108             if (V) {
1109                 F(V, U, ab, ac);
1110                 if (G) {
1111                     hasDuplicate = false;
1112                     ab.sort(G);
1113                     if (hasDuplicate) {
1114                         for (var aa = 1; aa < ab.length; aa++) {
1115                             if (ab[aa] === ab[aa - 1]) {
1116                                 ab.splice(aa--, 1)
1117                             }
1118                         }
1119                     }
1120                 }
1121             }
1122             return ab
1123         };
1124         F.matches = function (T, U) {
1125             return F(T, null, null, U)
1126         };
1127         F.find = function (aa, T, ab) {
1128             var Z, X;
1129             if (!aa) {
1130                 return []
1131             }
1132             for (var W = 0, V = I.order.length; W < V; W++) {
1133                 var Y = I.order[W],
1134                 X;
1135                 if ((X = I.match[Y].exec(aa))) {
1136                     var U = RegExp.leftContext;
1137                     if (U.substr(U.length - 1) !== "\\") {
1138                         X[1] = (X[1] || "").replace(/\\/g, "");
1139                         Z = I.find[Y](X, T, ab);
1140                         if (Z != null) {
1141                             aa = aa.replace(I.match[Y], "");
1142                             break
1143                         }
1144                     }
1145                 }
1146             }
1147             if (!Z) {
1148                 Z = T.getElementsByTagName("*")
1149             }
1150             return {
1151                 set: Z,
1152                 expr: aa
1153             }
1154         };
1155         F.filter = function (ad, ac, ag, W) {
1156             var V = ad,
1157             ai = [],
1158             aa = ac,
1159             Y,
1160             T,
1161             Z = ac && ac[0] && Q(ac[0]);
1162             while (ad && ac.length) {
1163                 for (var ab in I.filter) {
1164                     if ((Y = I.match[ab].exec(ad)) != null) {
1165                         var U = I.filter[ab],
1166                         ah,
1167                         af;
1168                         T = false;
1169                         if (aa == ai) {
1170                             ai = []
1171                         }
1172                         if (I.preFilter[ab]) {
1173                             Y = I.preFilter[ab](Y, aa, ag, ai, W, Z);
1174                             if (!Y) {
1175                                 T = ah = true
1176                             } else { if (Y === true) {
1177                                     continue
1178                                 }
1179                             }
1180                         }
1181                         if (Y) {
1182                             for (var X = 0;
1183                             (af = aa[X]) != null; X++) {
1184                                 if (af) {
1185                                     ah = U(af, Y, X, aa);
1186                                     var ae = W ^ !!ah;
1187                                     if (ag && ah != null) {
1188                                         if (ae) {
1189                                             T = true
1190                                         } else {
1191                                             aa[X] = false
1192                                         }
1193                                     } else { if (ae) {
1194                                             ai.push(af);
1195                                             T = true
1196                                         }
1197                                     }
1198                                 }
1199                             }
1200                         }
1201                         if (ah !== g) {
1202                             if (!ag) {
1203                                 aa = ai
1204                             }
1205                             ad = ad.replace(I.match[ab], "");
1206                             if (!T) {
1207                                 return []
1208                             }
1209                             break
1210                         }
1211                     }
1212                 }
1213                 if (ad == V) {
1214                     if (T == null) {
1215                         throw "Syntax error, unrecognized expression: " + ad
1216                     } else {
1217                         break
1218                     }
1219                 }
1220                 V = ad
1221             }
1222             return aa
1223         };
1224         var I = F.selectors = {
1225             order: ["ID", "NAME", "TAG"],
1226             match: {
1227                 ID: /#((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,
1228                 CLASS: /\.((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,
1229                 NAME: /\[name=['"]*((?:[\w\u00c0-\uFFFF_-]|\\.)+)['"]*\]/,
1230                 ATTR: /\[\s*((?:[\w\u00c0-\uFFFF_-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,
1231                 TAG: /^((?:[\w\u00c0-\uFFFF\*_-]|\\.)+)/,
1232                 CHILD: /:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,
1233                 POS: /:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,
1234                 PSEUDO: /:((?:[\w\u00c0-\uFFFF_-]|\\.)+)(?:\((['"]*)((?:\([^\)]+\)|[^\2\(\)]*)+)\2\))?/
1235             },
1236             attrMap: {
1237                 "class": "className",
1238                 "for": "htmlFor"
1239             },
1240             attrHandle: {
1241                 href: function (T) {
1242                     return T.getAttribute("href")
1243                 }
1244             },
1245             relative: {
1246                 "+": function (aa, T, Z) {
1247                     var X = typeof T === "string",
1248                     ab = X && !/\W/.test(T),
1249                     Y = X && !ab;
1250                     if (ab && !Z) {
1251                         T = T.toUpperCase()
1252                     }
1253                     for (var W = 0, V = aa.length, U; W < V; W++) {
1254                         if ((U = aa[W])) {
1255                             while ((U = U.previousSibling) && U.nodeType !== 1) {}
1256                             aa[W] = Y || U && U.nodeName === T ? U || false : U === T
1257                         }
1258                     }
1259                     if (Y) {
1260                         F.filter(T, aa, true)
1261                     }
1262                 },
1263                 ">": function (Z, U, aa) {
1264                     var X = typeof U === "string";
1265                     if (X && !/\W/.test(U)) {
1266                         U = aa ? U : U.toUpperCase();
1267                         for (var V = 0, T = Z.length; V < T; V++) {
1268                             var Y = Z[V];
1269                             if (Y) {
1270                                 var W = Y.parentNode;
1271                                 Z[V] = W.nodeName === U ? W : false
1272                             }
1273                         }
1274                     } else {
1275                         for (var V = 0, T = Z.length; V < T; V++) {
1276                             var Y = Z[V];
1277                             if (Y) {
1278                                 Z[V] = X ? Y.parentNode : Y.parentNode === U
1279                             }
1280                         }
1281                         if (X) {
1282                             F.filter(U, Z, true)
1283                         }
1284                     }
1285                 },
1286                 "": function (W, U, Y) {
1287                     var V = L++,
1288                     T = S;
1289                     if (!U.match(/\W/)) {
1290                         var X = U = Y ? U : U.toUpperCase();
1291                         T = P
1292                     }
1293                     T("parentNode", U, V, W, X, Y)
1294                 },
1295                 "~": function (W, U, Y) {
1296                     var V = L++,
1297                     T = S;
1298                     if (typeof U === "string" && !U.match(/\W/)) {
1299                         var X = U = Y ? U : U.toUpperCase();
1300                         T = P
1301                     }
1302                     T("previousSibling", U, V, W, X, Y)
1303                 }
1304             },
1305             find: {
1306                 ID: function (U, V, W) {
1307                     if (typeof V.getElementById !== "undefined" && !W) {
1308                         var T = V.getElementById(U[1]);
1309                         return T ? [T] : []
1310                     }
1311                 },
1312                 NAME: function (V, Y, Z) {
1313                     if (typeof Y.getElementsByName !== "undefined") {
1314                         var U = [],
1315                         X = Y.getElementsByName(V[1]);
1316                         for (var W = 0, T = X.length; W < T; W++) {
1317                             if (X[W].getAttribute("name") === V[1]) {
1318                                 U.push(X[W])
1319                             }
1320                         }
1321                         return U.length === 0 ? null : U
1322                     }
1323                 },
1324                 TAG: function (T, U) {
1325                     return U.getElementsByTagName(T[1])
1326                 }
1327             },
1328             preFilter: {
1329                 CLASS: function (W, U, V, T, Z, aa) {
1330                     W = " " + W[1].replace(/\\/g, "") + " ";
1331                     if (aa) {
1332                         return W
1333                     }
1334                     for (var X = 0, Y;
1335                     (Y = U[X]) != null; X++) {
1336                         if (Y) {
1337                             if (Z ^ (Y.className && (" " + Y.className + " ").indexOf(W) >= 0)) {
1338                                 if (!V) {
1339                                     T.push(Y)
1340                                 }
1341                             } else { if (V) {
1342                                     U[X] = false
1343                                 }
1344                             }
1345                         }
1346                     }
1347                     return false
1348                 },
1349                 ID: function (T) {
1350                     return T[1].replace(/\\/g, "")
1351                 },
1352                 TAG: function (U, T) {
1353                     for (var V = 0; T[V] === false; V++) {}
1354                     return T[V] && Q(T[V]) ? U[1] : U[1].toUpperCase()
1355                 },
1356                 CHILD: function (T) {
1357                     if (T[1] == "nth") {
1358                         var U = /(-?)(\d*)n((?:\+|-)?\d*)/.exec(T[2] == "even" && "2n" || T[2] == "odd" && "2n+1" || !/\D/.test(T[2]) && "0n+" + T[2] || T[2]);
1359                         T[2] = (U[1] + (U[2] || 1)) - 0;
1360                         T[3] = U[3] - 0
1361                     }
1362                     T[0] = L++;
1363                     return T
1364                 },
1365                 ATTR: function (X, U, V, T, Y, Z) {
1366                     var W = X[1].replace(/\\/g, "");
1367                     if (!Z && I.attrMap[W]) {
1368                         X[1] = I.attrMap[W]
1369                     }
1370                     if (X[2] === "~=") {
1371                         X[4] = " " + X[4] + " "
1372                     }
1373                     return X
1374                 },
1375                 PSEUDO: function (X, U, V, T, Y) {
1376                     if (X[1] === "not") {
1377                         if (X[3].match(R).length > 1 || /^\w/.test(X[3])) {
1378                             X[3] = F(X[3], null, null, U)
1379                         } else {
1380                             var W = F.filter(X[3], U, V, true ^ Y);
1381                             if (!V) {
1382                                 T.push.apply(T, W)
1383                             }
1384                             return false
1385                         }
1386                     } else { if (I.match.POS.test(X[0]) || I.match.CHILD.test(X[0])) {
1387                             return true
1388                         }
1389                     }
1390                     return X
1391                 },
1392                 POS: function (T) {
1393                     T.unshift(true);
1394                     return T
1395                 }
1396             },
1397             filters: {
1398                 enabled: function (T) {
1399                     return T.disabled === false && T.type !== "hidden"
1400                 },
1401                 disabled: function (T) {
1402                     return T.disabled === true
1403                 },
1404                 checked: function (T) {
1405                     return T.checked === true
1406                 },
1407                 selected: function (T) {
1408                     T.parentNode.selectedIndex;
1409                     return T.selected === true
1410                 },
1411                 parent: function (T) {
1412                     return !! T.firstChild
1413                 },
1414                 empty: function (T) {
1415                     return !T.firstChild
1416                 },
1417                 has: function (V, U, T) {
1418                     return !! F(T[3], V).length
1419                 },
1420                 header: function (T) {
1421                     return /h\d/i.test(T.nodeName)
1422                 },
1423                 text: function (T) {
1424                     return "text" === T.type
1425                 },
1426                 radio: function (T) {
1427                     return "radio" === T.type
1428                 },
1429                 checkbox: function (T) {
1430                     return "checkbox" === T.type
1431                 },
1432                 file: function (T) {
1433                     return "file" === T.type
1434                 },
1435                 password: function (T) {
1436                     return "password" === T.type
1437                 },
1438                 submit: function (T) {
1439                     return "submit" === T.type
1440                 },
1441                 image: function (T) {
1442                     return "image" === T.type
1443                 },
1444                 reset: function (T) {
1445                     return "reset" === T.type
1446                 },
1447                 button: function (T) {
1448                     return "button" === T.type || T.nodeName.toUpperCase() === "BUTTON"
1449                 },
1450                 input: function (T) {
1451                     return /input|select|textarea|button/i.test(T.nodeName)
1452                 }
1453             },
1454             setFilters: {
1455                 first: function (U, T) {
1456                     return T === 0
1457                 },
1458                 last: function (V, U, T, W) {
1459                     return U === W.length - 1
1460                 },
1461                 even: function (U, T) {
1462                     return T % 2 === 0
1463                 },
1464                 odd: function (U, T) {
1465                     return T % 2 === 1
1466                 },
1467                 lt: function (V, U, T) {
1468                     return U < T[3] - 0
1469                 },
1470                 gt: function (V, U, T) {
1471                     return U > T[3] - 0
1472                 },
1473                 nth: function (V, U, T) {
1474                     return T[3] - 0 == U
1475                 },
1476                 eq: function (V, U, T) {
1477                     return T[3] - 0 == U
1478                 }
1479             },
1480             filter: {
1481                 PSEUDO: function (Z, V, W, aa) {
1482                     var U = V[1],
1483                     X = I.filters[U];
1484                     if (X) {
1485                         return X(Z, W, V, aa)
1486                     } else { if (U === "contains") {
1487                             return (Z.textContent || Z.innerText || "").indexOf(V[3]) >= 0
1488                         } else { if (U === "not") {
1489                                 var Y = V[3];
1490                                 for (var W = 0, T = Y.length; W < T; W++) {
1491                                     if (Y[W] === Z) {
1492                                         return false
1493                                     }
1494                                 }
1495                                 return true
1496                             }
1497                         }
1498                     }
1499                 },
1500                 CHILD: function (T, W) {
1501                     var Z = W[1],
1502                     U = T;
1503                     switch (Z) {
1504                     case "only":
1505                     case "first":
1506                         while (U = U.previousSibling) {
1507                             if (U.nodeType === 1) {
1508                                 return false
1509                             }
1510                         }
1511                         if (Z == "first") {
1512                             return true
1513                         }
1514                         U = T;
1515                     case "last":
1516                         while (U = U.nextSibling) {
1517                             if (U.nodeType === 1) {
1518                                 return false
1519                             }
1520                         }
1521                         return true;
1522                     case "nth":
1523                         var V = W[2],
1524                         ac = W[3];
1525                         if (V == 1 && ac == 0) {
1526                             return true
1527                         }
1528                         var Y = W[0],
1529                         ab = T.parentNode;
1530                         if (ab && (ab.sizcache !== Y || !T.nodeIndex)) {
1531                             var X = 0;
1532                             for (U = ab.firstChild; U; U = U.nextSibling) {
1533                                 if (U.nodeType === 1) {
1534                                     U.nodeIndex = ++X
1535                                 }
1536                             }
1537                             ab.sizcache = Y
1538                         }
1539                         var aa = T.nodeIndex - ac;
1540                         if (V == 0) {
1541                             return aa == 0
1542                         } else {
1543                             return (aa % V == 0 && aa / V >= 0)
1544                         }
1545                     }
1546                 },
1547                 ID: function (U, T) {
1548                     return U.nodeType === 1 && U.getAttribute("id") === T
1549                 },
1550                 TAG: function (U, T) {
1551                     return (T === "*" && U.nodeType === 1) || U.nodeName === T
1552                 },
1553                 CLASS: function (U, T) {
1554                     return (" " + (U.className || U.getAttribute("class")) + " ").indexOf(T) > -1
1555                 },
1556                 ATTR: function (Y, W) {
1557                     var V = W[1],
1558                     T = I.attrHandle[V] ? I.attrHandle[V](Y) : Y[V] != null ? Y[V] : Y.getAttribute(V),
1559                     Z = T + "",
1560                     X = W[2],
1561                     U = W[4];
1562                     return T == null ? X === "!=" : X === "=" ? Z === U : X === "*=" ? Z.indexOf(U) >= 0 : X === "~=" ? (" " + Z + " ").indexOf(U) >= 0 : !U ? Z && T !== false : X === "!=" ? Z != U : X === "^=" ? Z.indexOf(U) === 0 : X === "$=" ? Z.substr(Z.length - U.length) === U : X === "|=" ? Z === U || Z.substr(0, U.length + 1) === U + "-" : false
1563                 },
1564                 POS: function (X, U, V, Y) {
1565                     var T = U[2],
1566                     W = I.setFilters[T];
1567                     if (W) {
1568                         return W(X, V, U, Y)
1569                     }
1570                 }
1571             }
1572         };
1573         var M = I.match.POS;
1574         for (var O in I.match) {
1575             I.match[O] = RegExp(I.match[O].source + /(?![^\[]*\])(?![^\(]*\))/.source)
1576         }
1577         var E = function (U, T) {
1578             U = Array.prototype.slice.call(U);
1579             if (T) {
1580                 T.push.apply(T, U);
1581                 return T
1582             }
1583             return U
1584         };
1585         try {
1586             Array.prototype.slice.call(document.documentElement.childNodes)
1587         } catch(N) {
1588             E = function (X, W) {
1589                 var U = W || [];
1590                 if (H.call(X) === "[object Array]") {
1591                     Array.prototype.push.apply(U, X)
1592                 } else { if (typeof X.length === "number") {
1593                         for (var V = 0, T = X.length; V < T; V++) {
1594                             U.push(X[V])
1595                         }
1596                     } else {
1597                         for (var V = 0; X[V]; V++) {
1598                             U.push(X[V])
1599                         }
1600                     }
1601                 }
1602                 return U
1603             }
1604         }
1605         var G;
1606         if (document.documentElement.compareDocumentPosition) {
1607             G = function (U, T) {
1608                 var V = U.compareDocumentPosition(T) & 4 ? -1 : U === T ? 0 : 1;
1609                 if (V === 0) {
1610                     hasDuplicate = true
1611                 }
1612                 return V
1613             }
1614         } else { if ("sourceIndex" in document.documentElement) {
1615                 G = function (U, T) {
1616                     var V = U.sourceIndex - T.sourceIndex;
1617                     if (V === 0) {
1618                         hasDuplicate = true
1619                     }
1620                     return V
1621                 }
1622             } else { if (document.createRange) {
1623                     G = function (W, U) {
1624                         var V = W.ownerDocument.createRange(),
1625                         T = U.ownerDocument.createRange();
1626                         V.selectNode(W);
1627                         V.collapse(true);
1628                         T.selectNode(U);
1629                         T.collapse(true);
1630                         var X = V.compareBoundaryPoints(Range.START_TO_END, T);
1631                         if (X === 0) {
1632                             hasDuplicate = true
1633                         }
1634                         return X
1635                     }
1636                 }
1637             }
1638         } (function () {
1639             var U = document.createElement("form"),
1640             V = "script" + (new Date).getTime();
1641             U.innerHTML = "<input name='" + V + "'/>";
1642             var T = document.documentElement;
1643             T.insertBefore(U, T.firstChild);
1644             if ( !! document.getElementById(V)) {
1645                 I.find.ID = function (X, Y, Z) {
1646                     if (typeof Y.getElementById !== "undefined" && !Z) {
1647                         var W = Y.getElementById(X[1]);
1648                         return W ? W.id === X[1] || typeof W.getAttributeNode !== "undefined" && W.getAttributeNode("id").nodeValue === X[1] ? [W] : g : []
1649                     }
1650                 };
1651                 I.filter.ID = function (Y, W) {
1652                     var X = typeof Y.getAttributeNode !== "undefined" && Y.getAttributeNode("id");
1653                     return Y.nodeType === 1 && X && X.nodeValue === W
1654                 }
1655             }
1656             T.removeChild(U)
1657         })();
1658         (function () {
1659             var T = document.createElement("div");
1660             T.appendChild(document.createComment(""));
1661             if (T.getElementsByTagName("*").length > 0) {
1662                 I.find.TAG = function (U, Y) {
1663                     var X = Y.getElementsByTagName(U[1]);
1664                     if (U[1] === "*") {
1665                         var W = [];
1666                         for (var V = 0; X[V]; V++) {
1667                             if (X[V].nodeType === 1) {
1668                                 W.push(X[V])
1669                             }
1670                         }
1671                         X = W
1672                     }
1673                     return X
1674                 }
1675             }
1676             T.innerHTML = "<a href='#'></a>";
1677             if (T.firstChild && typeof T.firstChild.getAttribute !== "undefined" && T.firstChild.getAttribute("href") !== "#") {
1678                 I.attrHandle.href = function (U) {
1679                     return U.getAttribute("href", 2)
1680                 }
1681             }
1682         })();
1683         if (document.querySelectorAll) {
1684             (function () {
1685                 var T = F,
1686                 U = document.createElement("div");
1687                 U.innerHTML = "<p class='TEST'></p>";
1688                 if (U.querySelectorAll && U.querySelectorAll(".TEST").length === 0) {
1689                     return
1690                 }
1691                 F = function (Y, X, V, W) {
1692                     X = X || document;
1693                     if (!W && X.nodeType === 9 && !Q(X)) {
1694                         try {
1695                             return E(X.querySelectorAll(Y), V)
1696                         } catch(Z) {}
1697                     }
1698                     return T(Y, X, V, W)
1699                 };
1700                 F.find = T.find;
1701                 F.filter = T.filter;
1702                 F.selectors = T.selectors;
1703                 F.matches = T.matches
1704             })()
1705         }
1706         if (document.getElementsByClassName && document.documentElement.getElementsByClassName) {
1707             (function () {
1708                 var T = document.createElement("div");
1709                 T.innerHTML = "<div class='test e'></div><div class='test'></div>";
1710                 if (T.getElementsByClassName("e").length === 0) {
1711                     return
1712                 }
1713                 T.lastChild.className = "e";
1714                 if (T.getElementsByClassName("e").length === 1) {
1715                     return
1716                 }
1717                 I.order.splice(1, 0, "CLASS");
1718                 I.find.CLASS = function (U, V, W) {
1719                     if (typeof V.getElementsByClassName !== "undefined" && !W) {
1720                         return V.getElementsByClassName(U[1])
1721                     }
1722                 }
1723             })()
1724         }
1725         function P(U, Z, Y, ad, aa, ac) {
1726             var ab = U == "previousSibling" && !ac;
1727             for (var W = 0, V = ad.length; W < V; W++) {
1728                 var T = ad[W];
1729                 if (T) {
1730                     if (ab && T.nodeType === 1) {
1731                         T.sizcache = Y;
1732                         T.sizset = W
1733                     }
1734                     T = T[U];
1735                     var X = false;
1736                     while (T) {
1737                         if (T.sizcache === Y) {
1738                             X = ad[T.sizset];
1739                             break
1740                         }
1741                         if (T.nodeType === 1 && !ac) {
1742                             T.sizcache = Y;
1743                             T.sizset = W
1744                         }
1745                         if (T.nodeName === Z) {
1746                             X = T;
1747                             break
1748                         }
1749                         T = T[U]
1750                     }
1751                     ad[W] = X
1752                 }
1753             }
1754         }
1755         function S(U, Z, Y, ad, aa, ac) {
1756             var ab = U == "previousSibling" && !ac;
1757             for (var W = 0, V = ad.length; W < V; W++) {
1758                 var T = ad[W];
1759                 if (T) {
1760                     if (ab && T.nodeType === 1) {
1761                         T.sizcache = Y;
1762                         T.sizset = W
1763                     }
1764                     T = T[U];
1765                     var X = false;
1766                     while (T) {
1767                         if (T.sizcache === Y) {
1768                             X = ad[T.sizset];
1769                             break
1770                         }
1771                         if (T.nodeType === 1) {
1772                             if (!ac) {
1773                                 T.sizcache = Y;
1774                                 T.sizset = W
1775                             }
1776                             if (typeof Z !== "string") {
1777                                 if (T === Z) {
1778                                     X = true;
1779                                     break
1780                                 }
1781                             } else { if (F.filter(Z, [T]).length > 0) {
1782                                     X = T;
1783                                     break
1784                                 }
1785                             }
1786                         }
1787                         T = T[U]
1788                     }
1789                     ad[W] = X
1790                 }
1791             }
1792         }
1793         var K = document.compareDocumentPosition ?
1794         function (U, T) {
1795             return U.compareDocumentPosition(T) & 16
1796         } : function (U, T) {
1797             return U !== T && (U.contains ? U.contains(T) : true)
1798         };
1799         var Q = function (T) {
1800             return T.nodeType === 9 && T.documentElement.nodeName !== "HTML" || !!T.ownerDocument && Q(T.ownerDocument)
1801         };
1802         var J = function (T, aa) {
1803             var W = [],
1804             X = "",
1805             Y,
1806             V = aa.nodeType ? [aa] : aa;
1807             while ((Y = I.match.PSEUDO.exec(T))) {
1808                 X += Y[0];
1809                 T = T.replace(I.match.PSEUDO, "")
1810             }
1811             T = I.relative[T] ? T + "*" : T;
1812             for (var Z = 0, U = V.length; Z < U; Z++) {
1813                 F(T, V[Z], W)
1814             }
1815             return F.filter(X, W)
1816         };
1817         o.find = F;
1818         o.filter = F.filter;
1819         o.expr = F.selectors;
1820         o.expr[":"] = o.expr.filters;
1821         F.selectors.filters.hidden = function (T) {
1822             return T.offsetWidth === 0 || T.offsetHeight === 0
1823         };
1824         F.selectors.filters.visible = function (T) {
1825             return T.offsetWidth > 0 || T.offsetHeight > 0
1826         };
1827         F.selectors.filters.animated = function (T) {
1828             return o.grep(o.timers, function (U) {
1829                 return T === U.elem
1830             }).length
1831         };
1832         o.multiFilter = function (V, T, U) {
1833             if (U) {
1834                 V = ":not(" + V + ")"
1835             }
1836             return F.matches(V, T)
1837         };
1838         o.dir = function (V, U) {
1839             var T = [],
1840             W = V[U];
1841             while (W && W != document) {
1842                 if (W.nodeType == 1) {
1843                     T.push(W)
1844                 }
1845                 W = W[U]
1846             }
1847             return T
1848         };
1849         o.nth = function (X, T, V, W) {
1850             T = T || 1;
1851             var U = 0;
1852             for (; X; X = X[V]) {
1853                 if (X.nodeType == 1 && ++U == T) {
1854                     break
1855                 }
1856             }
1857             return X
1858         };
1859         o.sibling = function (V, U) {
1860             var T = [];
1861             for (; V; V = V.nextSibling) {
1862                 if (V.nodeType == 1 && V != U) {
1863                     T.push(V)
1864                 }
1865             }
1866             return T
1867         };
1868         return;
1869         l.Sizzle = F
1870     })();
1871     o.event = {
1872         add: function (I, F, H, K) {
1873             if (I.nodeType == 3 || I.nodeType == 8) {
1874                 return
1875             }
1876             if (I.setInterval && I != l) {
1877                 I = l
1878             }
1879             if (!H.guid) {
1880                 H.guid = this.guid++
1881             }
1882             if (K !== g) {
1883                 var G = H;
1884                 H = this.proxy(G);
1885                 H.data = K
1886             }
1887             var E = o.data(I, "events") || o.data(I, "events", {}),
1888             J = o.data(I, "handle") || o.data(I, "handle", function () {
1889                 return typeof o !== "undefined" && !o.event.triggered ? o.event.handle.apply(arguments.callee.elem, arguments) : g
1890             });
1891             J.elem = I;
1892             o.each(F.split(/\s+/), function (M, N) {
1893                 var O = N.split(".");
1894                 N = O.shift();
1895                 H.type = O.slice().sort().join(".");
1896                 var L = E[N];
1897                 if (o.event.specialAll[N]) {
1898                     o.event.specialAll[N].setup.call(I, K, O)
1899                 }
1900                 if (!L) {
1901                     L = E[N] = {};
1902                     if (!o.event.special[N] || o.event.special[N].setup.call(I, K, O) === false) {
1903                         if (I.addEventListener) {
1904                             I.addEventListener(N, J, false)
1905                         } else { if (I.attachEvent) {
1906                                 I.attachEvent("on" + N, J)
1907                             }
1908                         }
1909                     }
1910                 }
1911                 L[H.guid] = H;
1912                 o.event.global[N] = true
1913             });
1914             I = null
1915         },
1916         guid: 1,
1917         global: {},
1918         remove: function (K, H, J) {
1919             if (K.nodeType == 3 || K.nodeType == 8) {
1920                 return
1921             }
1922             var G = o.data(K, "events"),
1923             F,
1924             E;
1925             if (G) {
1926                 if (H === g || (typeof H === "string" && H.charAt(0) == ".")) {
1927                     for (var I in G) {
1928                         this.remove(K, I + (H || ""))
1929                     }
1930                 } else { if (H.type) {
1931                         J = H.handler;
1932                         H = H.type
1933                     }
1934                     o.each(H.split(/\s+/), function (M, O) {
1935                         var Q = O.split(".");
1936                         O = Q.shift();
1937                         var N = RegExp("(^|\\.)" + Q.slice().sort().join(".*\\.") + "(\\.|$)");
1938                         if (G[O]) {
1939                             if (J) {
1940                                 delete G[O][J.guid]
1941                             } else {
1942                                 for (var P in G[O]) {
1943                                     if (N.test(G[O][P].type)) {
1944                                         delete G[O][P]
1945                                     }
1946                                 }
1947                             }
1948                             if (o.event.specialAll[O]) {
1949                                 o.event.specialAll[O].teardown.call(K, Q)
1950                             }
1951                             for (F in G[O]) {
1952                                 break
1953                             }
1954                             if (!F) {
1955                                 if (!o.event.special[O] || o.event.special[O].teardown.call(K, Q) === false) {
1956                                     if (K.removeEventListener) {
1957                                         K.removeEventListener(O, o.data(K, "handle"), false)
1958                                     } else { if (K.detachEvent) {
1959                                             K.detachEvent("on" + O, o.data(K, "handle"))
1960                                         }
1961                                     }
1962                                 }
1963                                 F = null;
1964                                 delete G[O]
1965                             }
1966                         }
1967                     })
1968                 }
1969                 for (F in G) {
1970                     break
1971                 }
1972                 if (!F) {
1973                     var L = o.data(K, "handle");
1974                     if (L) {
1975                         L.elem = null
1976                     }
1977                     o.removeData(K, "events");
1978                     o.removeData(K, "handle")
1979                 }
1980             }
1981         },
1982         trigger: function (I, K, H, E) {
1983             var G = I.type || I;
1984             if (!E) {
1985                 I = typeof I === "object" ? I[h] ? I : o.extend(o.Event(G), I) : o.Event(G);
1986                 if (G.indexOf("!") >= 0) {
1987                     I.type = G = G.slice(0, -1);
1988                     I.exclusive = true
1989                 }
1990                 if (!H) {
1991                     I.stopPropagation();
1992                     if (this.global[G]) {
1993                         o.each(o.cache, function () {
1994                             if (this.events && this.events[G]) {
1995                                 o.event.trigger(I, K, this.handle.elem)
1996                             }
1997                         })
1998                     }
1999                 }
2000                 if (!H || H.nodeType == 3 || H.nodeType == 8) {
2001                     return g
2002                 }
2003                 I.result = g;
2004                 I.target = H;
2005                 K = o.makeArray(K);
2006                 K.unshift(I)
2007             }
2008             I.currentTarget = H;
2009             var J = o.data(H, "handle");
2010             if (J) {
2011                 J.apply(H, K)
2012             }
2013             if ((!H[G] || (o.nodeName(H, "a") && G == "click")) && H["on" + G] && H["on" + G].apply(H, K) === false) {
2014                 I.result = false
2015             }
2016             if (!E && H[G] && !I.isDefaultPrevented() && !(o.nodeName(H, "a") && G == "click")) {
2017                 this.triggered = true;
2018                 try {
2019                     H[G]()
2020                 } catch(L) {}
2021             }
2022             this.triggered = false;
2023             if (!I.isPropagationStopped()) {
2024                 var F = H.parentNode || H.ownerDocument;
2025                 if (F) {
2026                     o.event.trigger(I, K, F, true)
2027                 }
2028             }
2029         },
2030         handle: function (K) {
2031             var J, E;
2032             K = arguments[0] = o.event.fix(K || l.event);
2033             K.currentTarget = this;
2034             var L = K.type.split(".");
2035             K.type = L.shift();
2036             J = !L.length && !K.exclusive;
2037             var I = RegExp("(^|\\.)" + L.slice().sort().join(".*\\.") + "(\\.|$)");
2038             E = (o.data(this, "events") || {})[K.type];
2039             for (var G in E) {
2040                 var H = E[G];
2041                 if (J || I.test(H.type)) {
2042                     K.handler = H;
2043                     K.data = H.data;
2044                     var F = H.apply(this, arguments);
2045                     if (F !== g) {
2046                         K.result = F;
2047                         if (F === false) {
2048                             K.preventDefault();
2049                             K.stopPropagation()
2050                         }
2051                     }
2052                     if (K.isImmediatePropagationStopped()) {
2053                         break
2054                     }
2055                 }
2056             }
2057         },
2058         props: "altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),
2059         fix: function (H) {
2060             if (H[h]) {
2061                 return H
2062             }
2063             var F = H;
2064             H = o.Event(F);
2065             for (var G = this.props.length, J; G;) {
2066                 J = this.props[--G];
2067                 H[J] = F[J]
2068             }
2069             if (!H.target) {
2070                 H.target = H.srcElement || document
2071             }
2072             if (H.target.nodeType == 3) {
2073                 H.target = H.target.parentNode
2074             }
2075             if (!H.relatedTarget && H.fromElement) {
2076                 H.relatedTarget = H.fromElement == H.target ? H.toElement : H.fromElement
2077             }
2078             if (H.pageX == null && H.clientX != null) {
2079                 var I = document.documentElement,
2080                 E = document.body;
2081                 H.pageX = H.clientX + (I && I.scrollLeft || E && E.scrollLeft || 0) - (I.clientLeft || 0);
2082                 H.pageY = H.clientY + (I && I.scrollTop || E && E.scrollTop || 0) - (I.clientTop || 0)
2083             }
2084             if (!H.which && ((H.charCode || H.charCode === 0) ? H.charCode : H.keyCode)) {
2085                 H.which = H.charCode || H.keyCode
2086             }
2087             if (!H.metaKey && H.ctrlKey) {
2088                 H.metaKey = H.ctrlKey
2089             }
2090             if (!H.which && H.button) {
2091                 H.which = (H.button & 1 ? 1 : (H.button & 2 ? 3 : (H.button & 4 ? 2 : 0)))
2092             }
2093             return H
2094         },
2095         proxy: function (F, E) {
2096             E = E ||
2097             function () {
2098                 return F.apply(this, arguments)
2099             };
2100             E.guid = F.guid = F.guid || E.guid || this.guid++;
2101             return E
2102         },
2103         special: {
2104             ready: {
2105                 setup: B,
2106                 teardown: function () {}
2107             }
2108         },
2109         specialAll: {
2110             live: {
2111                 setup: function (E, F) {
2112                     o.event.add(this, F[0], c)
2113                 },
2114                 teardown: function (G) {
2115                     if (G.length) {
2116                         var E = 0,
2117                         F = RegExp("(^|\\.)" + G[0] + "(\\.|$)");
2118                         o.each((o.data(this, "events").live || {}), function () {
2119                             if (F.test(this.type)) {
2120                                 E++
2121                             }
2122                         });
2123                         if (E < 1) {
2124                             o.event.remove(this, G[0], c)
2125                         }
2126                     }
2127                 }
2128             }
2129         }
2130     };
2131     o.Event = function (E) {
2132         if (!this.preventDefault) {
2133             return new o.Event(E)
2134         }
2135         if (E && E.type) {
2136             this.originalEvent = E;
2137             this.type = E.type
2138         } else {
2139             this.type = E
2140         }
2141         this.timeStamp = e();
2142         this[h] = true
2143     };
2144     function k() {
2145         return false
2146     }
2147     function u() {
2148         return true
2149     }
2150     o.Event.prototype = {
2151         preventDefault: function () {
2152             this.isDefaultPrevented = u;
2153             var E = this.originalEvent;
2154             if (!E) {
2155                 return
2156             }
2157             if (E.preventDefault) {
2158                 E.preventDefault()
2159             }
2160             E.returnValue = false
2161         },
2162         stopPropagation: function () {
2163             this.isPropagationStopped = u;
2164             var E = this.originalEvent;
2165             if (!E) {
2166                 return
2167             }
2168             if (E.stopPropagation) {
2169                 E.stopPropagation()
2170             }
2171             E.cancelBubble = true
2172         },
2173         stopImmediatePropagation: function () {
2174             this.isImmediatePropagationStopped = u;
2175             this.stopPropagation()
2176         },
2177         isDefaultPrevented: k,
2178         isPropagationStopped: k,
2179         isImmediatePropagationStopped: k
2180     };
2181     var a = function (F) {
2182         var E = F.relatedTarget;
2183         while (E && E != this) {
2184             try {
2185                 E = E.parentNode
2186             } catch(G) {
2187                 E = this
2188             }
2189         }
2190         if (E != this) {
2191             F.type = F.data;
2192             o.event.handle.apply(this, arguments)
2193         }
2194     };
2195     o.each({
2196         mouseover: "mouseenter",
2197         mouseout: "mouseleave"
2198     },
2199     function (F, E) {
2200         o.event.special[E] = {
2201             setup: function () {
2202                 o.event.add(this, F, a, E)
2203             },
2204             teardown: function () {
2205                 o.event.remove(this, F, a)
2206             }
2207         }
2208     });
2209     o.fn.extend({
2210         bind: function (F, G, E) {
2211             return F == "unload" ? this.one(F, G, E) : this.each(function () {
2212                 o.event.add(this, F, E || G, E && G)
2213             })
2214         },
2215         one: function (G, H, F) {
2216             var E = o.event.proxy(F || H, function (I) {
2217                 o(this).unbind(I, E);
2218                 return (F || H).apply(this, arguments)
2219             });
2220             return this.each(function () {
2221                 o.event.add(this, G, E, F && H)
2222             })
2223         },
2224         unbind: function (F, E) {
2225             return this.each(function () {
2226                 o.event.remove(this, F, E)
2227             })
2228         },
2229         trigger: function (E, F) {
2230             return this.each(function () {
2231                 o.event.trigger(E, F, this)
2232             })
2233         },
2234         triggerHandler: function (E, G) {
2235             if (this[0]) {
2236                 var F = o.Event(E);
2237                 F.preventDefault();
2238                 F.stopPropagation();
2239                 o.event.trigger(F, G, this[0]);
2240                 return F.result
2241             }
2242         },
2243         toggle: function (G) {
2244             var E = arguments,
2245             F = 1;
2246             while (F < E.length) {
2247                 o.event.proxy(G, E[F++])
2248             }
2249             return this.click(o.event.proxy(G, function (H) {
2250                 this.lastToggle = (this.lastToggle || 0) % F;
2251                 H.preventDefault();
2252                 return E[this.lastToggle++].apply(this, arguments) || false
2253             }))
2254         },
2255         hover: function (E, F) {
2256             return this.mouseenter(E).mouseleave(F)
2257         },
2258         ready: function (E) {
2259             B();
2260             if (o.isReady) {
2261                 E.call(document, o)
2262             } else {
2263                 o.readyList.push(E)
2264             }
2265             return this
2266         },
2267         live: function (G, F) {
2268             var E = o.event.proxy(F);
2269             E.guid += this.selector + G;
2270             o(document).bind(i(G, this.selector), this.selector, E);
2271             return this
2272         },
2273         die: function (F, E) {
2274             o(document).unbind(i(F, this.selector), E ? {
2275                 guid: E.guid + this.selector + F
2276             } : null);
2277             return this
2278         }
2279     });
2280     function c(H) {
2281         var E = RegExp("(^|\\.)" + H.type + "(\\.|$)"),
2282         G = true,
2283         F = [];
2284         o.each(o.data(this, "events").live || [], function (I, J) {
2285             if (E.test(J.type)) {
2286                 var K = o(H.target).closest(J.data)[0];
2287                 if (K) {
2288                     F.push({
2289                         elem: K,
2290                         fn: J
2291                     })
2292                 }
2293             }
2294         });
2295         F.sort(function (J, I) {
2296             return o.data(J.elem, "closest") - o.data(I.elem, "closest")
2297         });
2298         o.each(F, function () {
2299             if (this.fn.call(this.elem, H, this.fn.data) === false) {
2300                 return (G = false)
2301             }
2302         });
2303         return G
2304     }
2305     function i(F, E) {
2306         return ["live", F, E.replace(/\./g, "`").replace(/ /g, "|")].join(".")
2307     }
2308     o.extend({
2309         isReady: false,
2310         readyList: [],
2311         ready: function () {
2312             if (!o.isReady) {
2313                 o.isReady = true;
2314                 if (o.readyList) {
2315                     o.each(o.readyList, function () {
2316                         this.call(document, o)
2317                     });
2318                     o.readyList = null
2319                 }
2320                 o(document).triggerHandler("ready")
2321             }
2322         }
2323     });
2324     var x = false;
2325     function B() {
2326         if (x) {
2327             return
2328         }
2329         x = true;
2330         if (document.addEventListener) {
2331             document.addEventListener("DOMContentLoaded", function () {
2332                 document.removeEventListener("DOMContentLoaded", arguments.callee, false);
2333                 o.ready()
2334             },
2335             false)
2336         } else { if (document.attachEvent) {
2337                 document.attachEvent("onreadystatechange", function () {
2338                     if (document.readyState === "complete") {
2339                         document.detachEvent("onreadystatechange", arguments.callee);
2340                         o.ready()
2341                     }
2342                 });
2343                 if (document.documentElement.doScroll && l == l.top) {
2344                     (function () {
2345                         if (o.isReady) {
2346                             return
2347                         }
2348                         try {
2349                             document.documentElement.doScroll("left")
2350                         } catch(E) {
2351                             setTimeout(arguments.callee, 0);
2352                             return
2353                         }
2354                         o.ready()
2355                     })()
2356                 }
2357             }
2358         }
2359         o.event.add(l, "load", o.ready)
2360     }
2361     o.each(("blur,focus,load,resize,scroll,unload,click,dblclick,mousedown,mouseup,mousemove,mouseover,mouseout,mouseenter,mouseleave,change,select,submit,keydown,keypress,keyup,error").split(","), function (F, E) {
2362         o.fn[E] = function (G) {
2363             return G ? this.bind(E, G) : this.trigger(E)
2364         }
2365     });
2366     o(l).bind("unload", function () {
2367         for (var E in o.cache) {
2368             if (E != 1 && o.cache[E].handle) {
2369                 o.event.remove(o.cache[E].handle.elem)
2370             }
2371         }
2372     });
2373     (function () {
2374         o.support = {};
2375         var F = document.documentElement,
2376         G = document.createElement("script"),
2377         K = document.createElement("div"),
2378         J = "script" + (new Date).getTime();
2379         K.style.display = "none";
2380         K.innerHTML = '   <link/><table></table><a href="/a" style="color:red;float:left;opacity:.5;">a</a><select><option>text</option></select><object><param/></object>';
2381         var H = K.getElementsByTagName("*"),
2382         E = K.getElementsByTagName("a")[0];
2383         if (!H || !H.length || !E) {
2384             return
2385         }
2386         o.support = {
2387             leadingWhitespace: K.firstChild.nodeType == 3,
2388             tbody: !K.getElementsByTagName("tbody").length,
2389             objectAll: !!K.getElementsByTagName("object")[0].getElementsByTagName("*").length,
2390             htmlSerialize: !!K.getElementsByTagName("link").length,
2391             style: /red/.test(E.getAttribute("style")),
2392             hrefNormalized: E.getAttribute("href") === "/a",
2393             opacity: E.style.opacity === "0.5",
2394             cssFloat: !!E.style.cssFloat,
2395             scriptEval: false,
2396             noCloneEvent: true,
2397             boxModel: null
2398         };
2399         G.type = "text/javascript";
2400         try {
2401             G.appendChild(document.createTextNode("window." + J + "=1;"))
2402         } catch(I) {}
2403         F.insertBefore(G, F.firstChild);
2404         if (l[J]) {
2405             o.support.scriptEval = true;
2406             delete l[J]
2407         }
2408         F.removeChild(G);
2409         if (K.attachEvent && K.fireEvent) {
2410             K.attachEvent("onclick", function () {
2411                 o.support.noCloneEvent = false;
2412                 K.detachEvent("onclick", arguments.callee)
2413             });
2414             K.cloneNode(true).fireEvent("onclick")
2415         }
2416         o(function () {
2417             var L = document.createElement("div");
2418             L.style.width = L.style.paddingLeft = "1px";
2419             document.body.appendChild(L);
2420             o.boxModel = o.support.boxModel = L.offsetWidth === 2;
2421             document.body.removeChild(L).style.display = "none"
2422         })
2423     })();
2424     var w = o.support.cssFloat ? "cssFloat" : "styleFloat";
2425     o.props = {
2426         "for": "htmlFor",
2427         "class": "className",
2428         "float": w,
2429         cssFloat: w,
2430         styleFloat: w,
2431         readonly: "readOnly",
2432         maxlength: "maxLength",
2433         cellspacing: "cellSpacing",
2434         rowspan: "rowSpan",
2435         tabindex: "tabIndex"
2436     };
2437     o.fn.extend({
2438         _load: o.fn.load,
2439         load: function (G, J, K) {
2440             if (typeof G !== "string") {
2441                 return this._load(G)
2442             }
2443             var I = G.indexOf(" ");
2444             if (I >= 0) {
2445                 var E = G.slice(I, G.length);
2446                 G = G.slice(0, I)
2447             }
2448             var H = "GET";
2449             if (J) {
2450                 if (o.isFunction(J)) {
2451                     K = J;
2452                     J = null
2453                 } else { if (typeof J === "object") {
2454                         J = o.param(J);
2455                         H = "POST"
2456                     }
2457                 }
2458             }
2459             var F = this;
2460             o.ajax({
2461                 url: G,
2462                 type: H,
2463                 dataType: "html",
2464                 data: J,
2465                 complete: function (M, L) {
2466                     if (L == "success" || L == "notmodified") {
2467                         F.html(E ? o("<div/>").append(M.responseText.replace(/<script(.|\s)*?\/script>/g, "")).find(E) : M.responseText)
2468                     }
2469                     if (K) {
2470                         F.each(K, [M.responseText, L, M])
2471                     }
2472                 }
2473             });
2474             return this
2475         },
2476         serialize: function () {
2477             return o.param(this.serializeArray())
2478         },
2479         serializeArray: function () {
2480             return this.map(function () {
2481                 return this.elements ? o.makeArray(this.elements) : this
2482             }).filter(function () {
2483                 return this.name && !this.disabled && (this.checked || /select|textarea/i.test(this.nodeName) || /text|hidden|password|search/i.test(this.type))
2484             }).map(function (E, F) {
2485                 var G = o(this).val();
2486                 return G == null ? null : o.isArray(G) ? o.map(G, function (I, H) {
2487                     return {
2488                         name: F.name,
2489                         value: I
2490                     }
2491                 }) : {
2492                     name: F.name,
2493                     value: G
2494                 }
2495             }).get()
2496         }
2497     });
2498     o.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","), function (E, F) {
2499         o.fn[F] = function (G) {
2500             return this.bind(F, G)
2501         }
2502     });
2503     var r = e();
2504     o.extend({
2505         get: function (E, G, H, F) {
2506             if (o.isFunction(G)) {
2507                 H = G;
2508                 G = null
2509             }
2510             return o.ajax({
2511                 type: "GET",
2512                 url: E,
2513                 data: G,
2514                 success: H,
2515                 dataType: F
2516             })
2517         },
2518         getScript: function (E, F) {
2519             return o.get(E, null, F, "script")
2520         },
2521         getJSON: function (E, F, G) {
2522             return o.get(E, F, G, "json")
2523         },
2524         post: function (E, G, H, F) {
2525             if (o.isFunction(G)) {
2526                 H = G;
2527                 G = {}
2528             }
2529             return o.ajax({
2530                 type: "POST",
2531                 url: E,
2532                 data: G,
2533                 success: H,
2534                 dataType: F
2535             })
2536         },
2537         ajaxSetup: function (E) {
2538             o.extend(o.ajaxSettings, E)
2539         },
2540         ajaxSettings: {
2541             url: location.href,
2542             global: true,
2543             type: "GET",
2544             contentType: "application/x-www-form-urlencoded",
2545             processData: true,
2546             async: true,
2547             xhr: function () {
2548                 return l.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest()
2549             },
2550             accepts: {
2551                 xml: "application/xml, text/xml",
2552                 html: "text/html",
2553                 script: "text/javascript, application/javascript",
2554                 json: "application/json, text/javascript",
2555                 text: "text/plain",
2556                 _default: "*/*"
2557             }
2558         },
2559         lastModified: {},
2560         ajax: function (M) {
2561             M = o.extend(true, M, o.extend(true, {},
2562             o.ajaxSettings, M));
2563             var W, F = /=\?(&|$)/g,
2564             R, V, G = M.type.toUpperCase();
2565             if (M.data && M.processData && typeof M.data !== "string") {
2566                 M.data = o.param(M.data)
2567             }
2568             if (M.dataType == "jsonp") {
2569                 if (G == "GET") {
2570                     if (!M.url.match(F)) {
2571                         M.url += (M.url.match(/\?/) ? "&" : "?") + (M.jsonp || "callback") + "=?"
2572                     }
2573                 } else { if (!M.data || !M.data.match(F)) {
2574                         M.data = (M.data ? M.data + "&" : "") + (M.jsonp || "callback") + "=?"
2575                     }
2576                 }
2577                 M.dataType = "json"
2578             }
2579             if (M.dataType == "json" && (M.data && M.data.match(F) || M.url.match(F))) {
2580                 W = "jsonp" + r++;
2581                 if (M.data) {
2582                     M.data = (M.data + "").replace(F, "=" + W + "$1")
2583                 }
2584                 M.url = M.url.replace(F, "=" + W + "$1");
2585                 M.dataType = "script";
2586                 l[W] = function (X) {
2587                     V = X;
2588                     I();
2589                     L();
2590                     l[W] = g;
2591                     try {
2592                         delete l[W]
2593                     } catch(Y) {}
2594                     if (H) {
2595                         H.removeChild(T)
2596                     }
2597                 }
2598             }
2599             if (M.dataType == "script" && M.cache == null) {
2600                 M.cache = false
2601             }
2602             if (M.cache === false && G == "GET") {
2603                 var E = e();
2604                 var U = M.url.replace(/(\?|&)_=.*?(&|$)/, "$1_=" + E + "$2");
2605                 M.url = U + ((U == M.url) ? (M.url.match(/\?/) ? "&" : "?") + "_=" + E : "")
2606             }
2607             if (M.data && G == "GET") {
2608                 M.url += (M.url.match(/\?/) ? "&" : "?") + M.data;
2609                 M.data = null
2610             }
2611             if (M.global && !o.active++) {
2612                 o.event.trigger("ajaxStart")
2613             }
2614             var Q = /^(\w+:)?\/\/([^\/?#]+)/.exec(M.url);
2615             if (M.dataType == "script" && G == "GET" && Q && (Q[1] && Q[1] != location.protocol || Q[2] != location.host)) {
2616                 var H = document.getElementsByTagName("head")[0];
2617                 var T = document.createElement("script");
2618                 T.src = M.url;
2619                 if (M.scriptCharset) {
2620                     T.charset = M.scriptCharset
2621                 }
2622                 if (!W) {
2623                     var O = false;
2624                     T.onload = T.onreadystatechange = function () {
2625                         if (!O && (!this.readyState || this.readyState == "loaded" || this.readyState == "complete")) {
2626                             O = true;
2627                             I();
2628                             L();
2629                             T.onload = T.onreadystatechange = null;
2630                             H.removeChild(T)
2631                         }
2632                     }
2633                 }
2634                 H.appendChild(T);
2635                 return g
2636             }
2637             var K = false;
2638             var J = M.xhr();
2639             if (M.username) {
2640                 J.open(G, M.url, M.async, M.username, M.password)
2641             } else {
2642                 J.open(G, M.url, M.async)
2643             }
2644             try {
2645                 if (M.data) {
2646                     J.setRequestHeader("Content-Type", M.contentType)
2647                 }
2648                 if (M.ifModified) {
2649                     J.setRequestHeader("If-Modified-Since", o.lastModified[M.url] || "Thu, 01 Jan 1970 00:00:00 GMT")
2650                 }
2651                 J.setRequestHeader("X-Requested-With", "XMLHttpRequest");
2652                 J.setRequestHeader("Accept", M.dataType && M.accepts[M.dataType] ? M.accepts[M.dataType] + ", */*" : M.accepts._default)
2653             } catch(S) {}
2654             if (M.beforeSend && M.beforeSend(J, M) === false) {
2655                 if (M.global && !--o.active) {
2656                     o.event.trigger("ajaxStop")
2657                 }
2658                 J.abort();
2659                 return false
2660             }
2661             if (M.global) {
2662                 o.event.trigger("ajaxSend", [J, M])
2663             }
2664             var N = function (X) {
2665                 if (J.readyState == 0) {
2666                     if (P) {
2667                         clearInterval(P);
2668                         P = null;
2669                         if (M.global && !--o.active) {
2670                             o.event.trigger("ajaxStop")
2671                         }
2672                     }
2673                 } else { if (!K && J && (J.readyState == 4 || X == "timeout")) {
2674                         K = true;
2675                         if (P) {
2676                             clearInterval(P);
2677                             P = null
2678                         }
2679                         R = X == "timeout" ? "timeout" : !o.httpSuccess(J) ? "error" : M.ifModified && o.httpNotModified(J, M.url) ? "notmodified" : "success";
2680                         if (R == "success") {
2681                             try {
2682                                 V = o.httpData(J, M.dataType, M)
2683                             } catch(Z) {
2684                                 R = "parsererror"
2685                             }
2686                         }
2687                         if (R == "success") {
2688                             var Y;
2689                             try {
2690                                 Y = J.getResponseHeader("Last-Modified")
2691                             } catch(Z) {}
2692                             if (M.ifModified && Y) {
2693                                 o.lastModified[M.url] = Y
2694                             }
2695                             if (!W) {
2696                                 I()
2697                             }
2698                         } else {
2699                             o.handleError(M, J, R)
2700                         }
2701                         L();
2702                         if (X) {
2703                             J.abort()
2704                         }
2705                         if (M.async) {
2706                             J = null
2707                         }
2708                     }
2709                 }
2710             };
2711             if (M.async) {
2712                 var P = setInterval(N, 13);
2713                 if (M.timeout > 0) {
2714                     setTimeout(function () {
2715                         if (J && !K) {
2716                             N("timeout")
2717                         }
2718                     },
2719                     M.timeout)
2720                 }
2721             }
2722             try {
2723                 J.send(M.data)
2724             } catch(S) {
2725                 o.handleError(M, J, null, S)
2726             }
2727             if (!M.async) {
2728                 N()
2729             }
2730             function I() {
2731                 if (M.success) {