Advertisement
Kalashnikov

Untitled

May 25th, 2012
257
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. (function () {
  2.     if (window.jQuery) var w = window.jQuery;
  3.     var E = window.jQuery = function (a, b) {
  4.             return new E.prototype.init(a, b)
  5.         };
  6.     if (window.$) var D = window.$;
  7.     window.$ = E;
  8.     var u = /^[^<]*(<(.|\s)+>)[^>]*$|^#(\w+)$/;
  9.     var G = /^.[^:#\[\.]*$/;
  10.     E.fn = E.prototype = {
  11.         init: function (d, b) {
  12.             d = d || document;
  13.             if (d.nodeType) {
  14.                 this[0] = d;
  15.                 this.length = 1;
  16.                 return this
  17.             } else if (typeof d == "string") {
  18.                 var c = u.exec(d);
  19.                 if (c && (c[1] || !b)) {
  20.                     if (c[1]) d = E.clean([c[1]], b);
  21.                     else {
  22.                         var a = document.getElementById(c[3]);
  23.                         if (a) if (a.id != c[3]) return E().find(d);
  24.                         else {
  25.                             this[0] = a;
  26.                             this.length = 1;
  27.                             return this
  28.                         } else d = []
  29.                     }
  30.                 } else return new E(b).find(d)
  31.             } else if (E.isFunction(d)) return new E(document)[E.fn.ready ? "ready" : "load"](d);
  32.             return this.setArray(d.constructor == Array && d || (d.jquery || d.length && d != window && !d.nodeType && d[0] != undefined && d[0].nodeType) && E.makeArray(d) || [d])
  33.         },
  34.         jquery: "1.2.3",
  35.         size: function () {
  36.             return this.length
  37.         },
  38.         length: 0,
  39.         get: function (a) {
  40.             return a == undefined ? E.makeArray(this) : this[a]
  41.         },
  42.         pushStack: function (b) {
  43.             var a = E(b);
  44.             a.prevObject = this;
  45.             return a
  46.         },
  47.         setArray: function (a) {
  48.             this.length = 0;
  49.             Array.prototype.push.apply(this, a);
  50.             return this
  51.         },
  52.         each: function (a, b) {
  53.             return E.each(this, a, b)
  54.         },
  55.         index: function (b) {
  56.             var a = -1;
  57.             this.each(function (i) {
  58.                 if (this == b) a = i
  59.             });
  60.             return a
  61.         },
  62.         attr: function (c, a, b) {
  63.             var d = c;
  64.             if (c.constructor == String) if (a == undefined) return this.length && E[b || "attr"](this[0], c) || undefined;
  65.             else {
  66.                 d = {};
  67.                 d[c] = a
  68.             }
  69.             return this.each(function (i) {
  70.                 for (c in d) E.attr(b ? this.style : this, c, E.prop(this, d[c], b, i, c))
  71.             })
  72.         },
  73.         css: function (b, a) {
  74.             if ((b == 'width' || b == 'height') && parseFloat(a) < 0) a = undefined;
  75.             return this.attr(b, a, "curCSS")
  76.         },
  77.         text: function (b) {
  78.             if (typeof b != "object" && b != null) return this.empty().append((this[0] && this[0].ownerDocument || document).createTextNode(b));
  79.             var a = "";
  80.             E.each(b || this, function () {
  81.                 E.each(this.childNodes, function () {
  82.                     if (this.nodeType != 8) a += this.nodeType != 1 ? this.nodeValue : E.fn.text([this])
  83.                 })
  84.             });
  85.             return a
  86.         },
  87.         wrapAll: function (b) {
  88.             if (this[0]) E(b, this[0].ownerDocument).clone().insertBefore(this[0]).map(function () {
  89.                 var a = this;
  90.                 while (a.firstChild) a = a.firstChild;
  91.                 return a
  92.             }).append(this);
  93.             return this
  94.         },
  95.         wrapInner: function (a) {
  96.             return this.each(function () {
  97.                 E(this).contents().wrapAll(a)
  98.             })
  99.         },
  100.         wrap: function (a) {
  101.             return this.each(function () {
  102.                 E(this).wrapAll(a)
  103.             })
  104.         },
  105.         append: function () {
  106.             return this.domManip(arguments, true, false, function (a) {
  107.                 if (this.nodeType == 1) this.appendChild(a)
  108.             })
  109.         },
  110.         prepend: function () {
  111.             return this.domManip(arguments, true, true, function (a) {
  112.                 if (this.nodeType == 1) this.insertBefore(a, this.firstChild)
  113.             })
  114.         },
  115.         before: function () {
  116.             return this.domManip(arguments, false, false, function (a) {
  117.                 this.parentNode.insertBefore(a, this)
  118.             })
  119.         },
  120.         after: function () {
  121.             return this.domManip(arguments, false, true, function (a) {
  122.                 this.parentNode.insertBefore(a, this.nextSibling)
  123.             })
  124.         },
  125.         end: function () {
  126.             return this.prevObject || E([])
  127.         },
  128.         find: function (b) {
  129.             var c = E.map(this, function (a) {
  130.                 return E.find(b, a)
  131.             });
  132.             return this.pushStack(/[^+>] [^+>]/.test(b) || b.indexOf("..") > -1 ? E.unique(c) : c)
  133.         },
  134.         clone: function (e) {
  135.             var f = this.map(function () {
  136.                 if (E.browser.msie && !E.isXMLDoc(this)) {
  137.                     var a = this.cloneNode(true),
  138.                         container = document.createElement("div");
  139.                     container.appendChild(a);
  140.                     return E.clean([container.innerHTML])[0]
  141.                 } else return this.cloneNode(true)
  142.             });
  143.             var d = f.find("*").andSelf().each(function () {
  144.                 if (this[F] != undefined) this[F] = null
  145.             });
  146.             if (e === true) this.find("*").andSelf().each(function (i) {
  147.                 if (this.nodeType == 3) return;
  148.                 var c = E.data(this, "events");
  149.                 for (var a in c) for (var b in c[a]) E.event.add(d[i], a, c[a][b], c[a][b].data)
  150.             });
  151.             return f
  152.         },
  153.         filter: function (b) {
  154.             return this.pushStack(E.isFunction(b) && E.grep(this, function (a, i) {
  155.                 return b.call(a, i)
  156.             }) || E.multiFilter(b, this))
  157.         },
  158.         not: function (b) {
  159.             if (b.constructor == String) if (G.test(b)) return this.pushStack(E.multiFilter(b, this, true));
  160.             else b = E.multiFilter(b, this);
  161.             var a = b.length && b[b.length - 1] !== undefined && !b.nodeType;
  162.             return this.filter(function () {
  163.                 return a ? E.inArray(this, b) < 0 : this != b
  164.             })
  165.         },
  166.         add: function (a) {
  167.             return !a ? this : this.pushStack(E.merge(this.get(), a.constructor == String ? E(a).get() : a.length != undefined && (!a.nodeName || E.nodeName(a, "form")) ? a : [a]))
  168.         },
  169.         is: function (a) {
  170.             return a ? E.multiFilter(a, this).length > 0 : false
  171.         },
  172.         hasClass: function (a) {
  173.             return this.is("." + a)
  174.         },
  175.         val: function (b) {
  176.             if (b == undefined) {
  177.                 if (this.length) {
  178.                     var c = this[0];
  179.                     if (E.nodeName(c, "select")) {
  180.                         var e = c.selectedIndex,
  181.                             values = [],
  182.                             options = c.options,
  183.                             one = c.type == "select-one";
  184.                         if (e < 0) return null;
  185.                         for (var i = one ? e : 0, max = one ? e + 1 : options.length; i < max; i++) {
  186.                             var d = options[i];
  187.                             if (d.selected) {
  188.                                 b = E.browser.msie && !d.attributes.value.specified ? d.text : d.value;
  189.                                 if (one) return b;
  190.                                 values.push(b)
  191.                             }
  192.                         }
  193.                         return values
  194.                     } else return (this[0].value || "").replace(/\r/g, "")
  195.                 }
  196.                 return undefined
  197.             }
  198.             return this.each(function () {
  199.                 if (this.nodeType != 1) return;
  200.                 if (b.constructor == Array && /radio|checkbox/.test(this.type)) this.checked = (E.inArray(this.value, b) >= 0 || E.inArray(this.name, b) >= 0);
  201.                 else if (E.nodeName(this, "select")) {
  202.                     var a = b.constructor == Array ? b : [b];
  203.                     E("option", this).each(function () {
  204.                         this.selected = (E.inArray(this.value, a) >= 0 || E.inArray(this.text, a) >= 0)
  205.                     });
  206.                     if (!a.length) this.selectedIndex = -1
  207.                 } else this.value = b
  208.             })
  209.         },
  210.         html: function (a) {
  211.             return a == undefined ? (this.length ? this[0].innerHTML : null) : this.empty().append(a)
  212.         },
  213.         replaceWith: function (a) {
  214.             return this.after(a).remove()
  215.         },
  216.         eq: function (i) {
  217.             return this.slice(i, i + 1)
  218.         },
  219.         slice: function () {
  220.             return this.pushStack(Array.prototype.slice.apply(this, arguments))
  221.         },
  222.         map: function (b) {
  223.             return this.pushStack(E.map(this, function (a, i) {
  224.                 return b.call(a, i, a)
  225.             }))
  226.         },
  227.         andSelf: function () {
  228.             return this.add(this.prevObject)
  229.         },
  230.         data: function (d, b) {
  231.             var a = d.split(".");
  232.             a[1] = a[1] ? "." + a[1] : "";
  233.             if (b == null) {
  234.                 var c = this.triggerHandler("getData" + a[1] + "!", [a[0]]);
  235.                 if (c == undefined && this.length) c = E.data(this[0], d);
  236.                 return c == null && a[1] ? this.data(a[0]) : c
  237.             } else return this.trigger("setData" + a[1] + "!", [a[0], b]).each(function () {
  238.                 E.data(this, d, b)
  239.             })
  240.         },
  241.         removeData: function (a) {
  242.             return this.each(function () {
  243.                 E.removeData(this, a)
  244.             })
  245.         },
  246.         domManip: function (g, f, h, d) {
  247.             var e = this.length > 1,
  248.                 elems;
  249.             return this.each(function () {
  250.                 if (!elems) {
  251.                     elems = E.clean(g, this.ownerDocument);
  252.                     if (h) elems.reverse()
  253.                 }
  254.                 var b = this;
  255.                 if (f && E.nodeName(this, "table") && E.nodeName(elems[0], "tr")) b = this.getElementsByTagName("tbody")[0] || this.appendChild(this.ownerDocument.createElement("tbody"));
  256.                 var c = E([]);
  257.                 E.each(elems, function () {
  258.                     var a = e ? E(this).clone(true)[0] : this;
  259.                     if (E.nodeName(a, "script")) {
  260.                         c = c.add(a)
  261.                     } else {
  262.                         if (a.nodeType == 1) c = c.add(E("script", a).remove());
  263.                         d.call(b, a)
  264.                     }
  265.                 });
  266.                 c.each(evalScript)
  267.             })
  268.         }
  269.     };
  270.     E.prototype.init.prototype = E.prototype;
  271.     function evalScript(i, a) {
  272.         if (a.src) E.ajax({
  273.             url: a.src,
  274.             async: false,
  275.             dataType: "script"
  276.         });
  277.         else E.globalEval(a.text || a.textContent || a.innerHTML || "");
  278.         if (a.parentNode) a.parentNode.removeChild(a)
  279.     }
  280.     E.extend = E.fn.extend = function () {
  281.         var b = arguments[0] || {},
  282.             i = 1,
  283.             length = arguments.length,
  284.             deep = false,
  285.             options;
  286.         if (b.constructor == Boolean) {
  287.             deep = b;
  288.             b = arguments[1] || {};
  289.             i = 2
  290.         }
  291.         if (typeof b != "object" && typeof b != "function") b = {};
  292.         if (length == 1) {
  293.             b = this;
  294.             i = 0
  295.         }
  296.         for (; i < length; i++) if ((options = arguments[i]) != null) for (var a in options) {
  297.             if (b === options[a]) continue;
  298.             if (deep && options[a] && typeof options[a] == "object" && b[a] && !options[a].nodeType) b[a] = E.extend(b[a], options[a]);
  299.             else if (options[a] != undefined) b[a] = options[a]
  300.         }
  301.         return b
  302.     };
  303.     var F = "jQuery" + (new Date()).getTime(),
  304.         uuid = 0,
  305.         windowData = {};
  306.     var H = /z-?index|font-?weight|opacity|zoom|line-?height/i;
  307.     E.extend({
  308.         noConflict: function (a) {
  309.             window.$ = D;
  310.             if (a) window.jQuery = w;
  311.             return E
  312.         },
  313.         isFunction: function (a) {
  314.             return !!a && typeof a != "string" && !a.nodeName && a.constructor != Array && /function/i.test(a + "")
  315.         },
  316.         isXMLDoc: function (a) {
  317.             return a.documentElement && !a.body || a.tagName && a.ownerDocument && !a.ownerDocument.body
  318.         },
  319.         globalEval: function (a) {
  320.             a = E.trim(a);
  321.             if (a) {
  322.                 var b = document.getElementsByTagName("head")[0] || document.documentElement,
  323.                     script = document.createElement("script");
  324.                 script.type = "text/javascript";
  325.                 if (E.browser.msie) script.text = a;
  326.                 else script.appendChild(document.createTextNode(a));
  327.                 b.appendChild(script);
  328.                 b.removeChild(script)
  329.             }
  330.         },
  331.         nodeName: function (b, a) {
  332.             return b.nodeName && b.nodeName.toUpperCase() == a.toUpperCase()
  333.         },
  334.         cache: {},
  335.         data: function (c, d, b) {
  336.             c = c == window ? windowData : c;
  337.             var a = c[F];
  338.             if (!a) a = c[F] = ++uuid;
  339.             if (d && !E.cache[a]) E.cache[a] = {};
  340.             if (b != undefined) E.cache[a][d] = b;
  341.             return d ? E.cache[a][d] : a
  342.         },
  343.         removeData: function (c, b) {
  344.             c = c == window ? windowData : c;
  345.             var a = c[F];
  346.             if (b) {
  347.                 if (E.cache[a]) {
  348.                     delete E.cache[a][b];
  349.                     b = "";
  350.                     for (b in E.cache[a]) break;
  351.                     if (!b) E.removeData(c)
  352.                 }
  353.             } else {
  354.                 try {
  355.                     delete c[F]
  356.                 } catch (e) {
  357.                     if (c.removeAttribute) c.removeAttribute(F)
  358.                 }
  359.                 delete E.cache[a]
  360.             }
  361.         },
  362.         each: function (c, a, b) {
  363.             if (b) {
  364.                 if (c.length == undefined) {
  365.                     for (var d in c) if (a.apply(c[d], b) === false) break
  366.                 } else for (var i = 0, length = c.length; i < length; i++) if (a.apply(c[i], b) === false) break
  367.             } else {
  368.                 if (c.length == undefined) {
  369.                     for (var d in c) if (a.call(c[d], d, c[d]) === false) break
  370.                 } else for (var i = 0, length = c.length, value = c[0]; i < length && a.call(value, i, value) !== false; value = c[++i]) {}
  371.             }
  372.             return c
  373.         },
  374.         prop: function (b, a, c, i, d) {
  375.             if (E.isFunction(a)) a = a.call(b, i);
  376.             return a && a.constructor == Number && c == "curCSS" && !H.test(d) ? a + "px" : a
  377.         },
  378.         className: {
  379.             add: function (c, b) {
  380.                 E.each((b || "").split(/\s+/), function (i, a) {
  381.                     if (c.nodeType == 1 && !E.className.has(c.className, a)) c.className += (c.className ? " " : "") + a
  382.                 })
  383.             },
  384.             remove: function (c, b) {
  385.                 if (c.nodeType == 1) c.className = b != undefined ? E.grep(c.className.split(/\s+/), function (a) {
  386.                     return !E.className.has(b, a)
  387.                 }).join(" ") : ""
  388.             },
  389.             has: function (b, a) {
  390.                 return E.inArray(a, (b.className || b).toString().split(/\s+/)) > -1
  391.             }
  392.         },
  393.         swap: function (b, c, a) {
  394.             var e = {};
  395.             for (var d in c) {
  396.                 e[d] = b.style[d];
  397.                 b.style[d] = c[d]
  398.             }
  399.             a.call(b);
  400.             for (var d in c) b.style[d] = e[d]
  401.         },
  402.         css: function (d, e, c) {
  403.             if (e == "width" || e == "height") {
  404.                 var b, props = {
  405.                     position: "absolute",
  406.                     visibility: "hidden",
  407.                     display: "block"
  408.                 },
  409.                     which = e == "width" ? ["Left", "Right"] : ["Top", "Bottom"];
  410.                 function getWH() {
  411.                     b = e == "width" ? d.offsetWidth : d.offsetHeight;
  412.                     var a = 0,
  413.                         border = 0;
  414.                     E.each(which, function () {
  415.                         a += parseFloat(E.curCSS(d, "padding" + this, true)) || 0;
  416.                         border += parseFloat(E.curCSS(d, "border" + this + "Width", true)) || 0
  417.                     });
  418.                     b -= Math.round(a + border)
  419.                 }
  420.                 if (E(d).is(":visible")) getWH();
  421.                 else E.swap(d, props, getWH);
  422.                 return Math.max(0, b)
  423.             }
  424.             return E.curCSS(d, e, c)
  425.         },
  426.         curCSS: function (e, k, j) {
  427.             var d;
  428.             function color(b) {
  429.                 if (!E.browser.safari) return false;
  430.                 var a = document.defaultView.getComputedStyle(b, null);
  431.                 return !a || a.getPropertyValue("color") == ""
  432.             }
  433.             if (k == "opacity" && E.browser.msie) {
  434.                 d = E.attr(e.style, "opacity");
  435.                 return d == "" ? "1" : d
  436.             }
  437.             if (E.browser.opera && k == "display") {
  438.                 var c = e.style.outline;
  439.                 e.style.outline = "0 solid black";
  440.                 e.style.outline = c
  441.             }
  442.             if (k.match(/float/i)) k = y;
  443.             if (!j && e.style && e.style[k]) d = e.style[k];
  444.             else if (document.defaultView && document.defaultView.getComputedStyle) {
  445.                 if (k.match(/float/i)) k = "float";
  446.                 k = k.replace(/([A-Z])/g, "-$1").toLowerCase();
  447.                 var h = document.defaultView.getComputedStyle(e, null);
  448.                 if (h && !color(e)) d = h.getPropertyValue(k);
  449.                 else {
  450.                     var f = [],
  451.                         stack = [];
  452.                     for (var a = e; a && color(a); a = a.parentNode) stack.unshift(a);
  453.                     for (var i = 0; i < stack.length; i++) if (color(stack[i])) {
  454.                         f[i] = stack[i].style.display;
  455.                         stack[i].style.display = "block"
  456.                     }
  457.                     d = k == "display" && f[stack.length - 1] != null ? "none" : (h && h.getPropertyValue(k)) || "";
  458.                     for (var i = 0; i < f.length; i++) if (f[i] != null) stack[i].style.display = f[i]
  459.                 }
  460.                 if (k == "opacity" && d == "") d = "1"
  461.             } else if (e.currentStyle) {
  462.                 var g = k.replace(/\-(\w)/g, function (a, b) {
  463.                     return b.toUpperCase()
  464.                 });
  465.                 d = e.currentStyle[k] || e.currentStyle[g];
  466.                 if (!/^\d+(px)?$/i.test(d) && /^\d/.test(d)) {
  467.                     var l = e.style.left,
  468.                         runtimeStyle = e.runtimeStyle.left;
  469.                     e.runtimeStyle.left = e.currentStyle.left;
  470.                     e.style.left = d || 0;
  471.                     d = e.style.pixelLeft + "px";
  472.                     e.style.left = l;
  473.                     e.runtimeStyle.left = runtimeStyle
  474.                 }
  475.             }
  476.             return d
  477.         },
  478.         clean: function (l, h) {
  479.             var k = [];
  480.             h = h || document;
  481.             if (typeof h.createElement == 'undefined') h = h.ownerDocument || h[0] && h[0].ownerDocument || document;
  482.             E.each(l, function (i, d) {
  483.                 if (!d) return;
  484.                 if (d.constructor == Number) d = d.toString();
  485.                 if (typeof d == "string") {
  486.                     d = d.replace(/(<(\w+)[^>]*?)\/>/g, function (b, a, c) {
  487.                         return c.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i) ? b : a + "></" + c + ">"
  488.                     });
  489.                     var f = E.trim(d).toLowerCase(),
  490.                         div = h.createElement("div");
  491.                     var e = !f.indexOf("<opt") && [1, "<select multiple='multiple'>", "</select>"] || !f.indexOf("<leg") && [1, "<fieldset>", "</fieldset>"] || f.match(/^<(thead|tbody|tfoot|colg|cap)/) && [1, "<table>", "</table>"] || !f.indexOf("<tr") && [2, "<table><tbody>", "</tbody></table>"] || (!f.indexOf("<td") || !f.indexOf("<th")) && [3, "<table><tbody><tr>", "</tr></tbody></table>"] || !f.indexOf("<col") && [2, "<table><tbody></tbody><colgroup>", "</colgroup></table>"] || E.browser.msie && [1, "div<div>", "</div>"] || [0, "", ""];
  492.                     div.innerHTML = e[1] + d + e[2];
  493.                     while (e[0]--) div = div.lastChild;
  494.                     if (E.browser.msie) {
  495.                         var g = !f.indexOf("<table") && f.indexOf("<tbody") < 0 ? div.firstChild && div.firstChild.childNodes : e[1] == "<table>" && f.indexOf("<tbody") < 0 ? div.childNodes : [];
  496.                         for (var j = g.length - 1; j >= 0; --j) if (E.nodeName(g[j], "tbody") && !g[j].childNodes.length) g[j].parentNode.removeChild(g[j]);
  497.                         if (/^\s/.test(d)) div.insertBefore(h.createTextNode(d.match(/^\s*/)[0]), div.firstChild)
  498.                     }
  499.                     d = E.makeArray(div.childNodes)
  500.                 }
  501.                 if (d.length === 0 && (!E.nodeName(d, "form") && !E.nodeName(d, "select"))) return;
  502.                 if (d[0] == undefined || E.nodeName(d, "form") || d.options) k.push(d);
  503.                 else k = E.merge(k, d)
  504.             });
  505.             return k
  506.         },
  507.         attr: function (d, e, c) {
  508.             if (!d || d.nodeType == 3 || d.nodeType == 8) return undefined;
  509.             var f = E.isXMLDoc(d) ? {} : E.props;
  510.             if (e == "selected" && E.browser.safari) d.parentNode.selectedIndex;
  511.             if (f[e]) {
  512.                 if (c != undefined) d[f[e]] = c;
  513.                 return d[f[e]]
  514.             } else if (E.browser.msie && e == "style") return E.attr(d.style, "cssText", c);
  515.             else if (c == undefined && E.browser.msie && E.nodeName(d, "form") && (e == "action" || e == "method")) return d.getAttributeNode(e).nodeValue;
  516.             else if (d.tagName) {
  517.                 if (c != undefined) {
  518.                     if (e == "type" && E.nodeName(d, "input") && d.parentNode) throw "type property can't be changed";
  519.                     d.setAttribute(e, "" + c)
  520.                 }
  521.                 if (E.browser.msie && /href|src/.test(e) && !E.isXMLDoc(d)) return d.getAttribute(e, 2);
  522.                 return d.getAttribute(e)
  523.             } else {
  524.                 if (e == "opacity" && E.browser.msie) {
  525.                     if (c != undefined) {
  526.                         d.zoom = 1;
  527.                         d.filter = (d.filter || "").replace(/alpha\([^)]*\)/, "") + (parseFloat(c).toString() == "NaN" ? "" : "alpha(opacity=" + c * 100 + ")")
  528.                     }
  529.                     return d.filter && d.filter.indexOf("opacity=") >= 0 ? (parseFloat(d.filter.match(/opacity=([^)]*)/)[1]) / 100).toString() : ""
  530.                 }
  531.                 e = e.replace(/-([a-z])/ig, function (a, b) {
  532.                     return b.toUpperCase()
  533.                 });
  534.                 if (c != undefined) d[e] = c;
  535.                 return d[e]
  536.             }
  537.         },
  538.         trim: function (a) {
  539.             return (a || "").replace(/^\s+|\s+$/g, "")
  540.         },
  541.         makeArray: function (b) {
  542.             var a = [];
  543.             if (typeof b != "array") for (var i = 0, length = b.length; i < length; i++) a.push(b[i]);
  544.             else a = b.slice(0);
  545.             return a
  546.         },
  547.         inArray: function (b, a) {
  548.             for (var i = 0, length = a.length; i < length; i++) if (a[i] == b) return i;
  549.             return -1
  550.         },
  551.         merge: function (a, b) {
  552.             if (E.browser.msie) {
  553.                 for (var i = 0; b[i]; i++) if (b[i].nodeType != 8) a.push(b[i])
  554.             } else for (var i = 0; b[i]; i++) a.push(b[i]);
  555.             return a
  556.         },
  557.         unique: function (a) {
  558.             var c = [],
  559.                 done = {};
  560.             try {
  561.                 for (var i = 0, length = a.length; i < length; i++) {
  562.                     var b = E.data(a[i]);
  563.                     if (!done[b]) {
  564.                         done[b] = true;
  565.                         c.push(a[i])
  566.                     }
  567.                 }
  568.             } catch (e) {
  569.                 c = a
  570.             }
  571.             return c
  572.         },
  573.         grep: function (c, a, d) {
  574.             var b = [];
  575.             for (var i = 0, length = c.length; i < length; i++) if (!d && a(c[i], i) || d && !a(c[i], i)) b.push(c[i]);
  576.             return b
  577.         },
  578.         map: function (d, a) {
  579.             var c = [];
  580.             for (var i = 0, length = d.length; i < length; i++) {
  581.                 var b = a(d[i], i);
  582.                 if (b !== null && b != undefined) {
  583.                     if (b.constructor != Array) b = [b];
  584.                     c = c.concat(b)
  585.                 }
  586.             }
  587.             return c
  588.         }
  589.     });
  590.     var v = navigator.userAgent.toLowerCase();
  591.     E.browser = {
  592.         version: (v.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/) || [])[1],
  593.         safari: /webkit/.test(v),
  594.         opera: /opera/.test(v),
  595.         msie: /msie/.test(v) && !/opera/.test(v),
  596.         mozilla: /mozilla/.test(v) && !/(compatible|webkit)/.test(v)
  597.     };
  598.     var y = E.browser.msie ? "styleFloat" : "cssFloat";
  599.     E.extend({
  600.         boxModel: !E.browser.msie || document.compatMode == "CSS1Compat",
  601.         props: {
  602.             "for": "htmlFor",
  603.             "class": "className",
  604.             "float": y,
  605.             cssFloat: y,
  606.             styleFloat: y,
  607.             innerHTML: "innerHTML",
  608.             className: "className",
  609.             value: "value",
  610.             disabled: "disabled",
  611.             checked: "checked",
  612.             readonly: "readOnly",
  613.             selected: "selected",
  614.             maxlength: "maxLength",
  615.             selectedIndex: "selectedIndex",
  616.             defaultValue: "defaultValue",
  617.             tagName: "tagName",
  618.             nodeName: "nodeName"
  619.         }
  620.     });
  621.     E.each({
  622.         parent: function (a) {
  623.             return a.parentNode
  624.         },
  625.         parents: function (a) {
  626.             return E.dir(a, "parentNode")
  627.         },
  628.         next: function (a) {
  629.             return E.nth(a, 2, "nextSibling")
  630.         },
  631.         prev: function (a) {
  632.             return E.nth(a, 2, "previousSibling")
  633.         },
  634.         nextAll: function (a) {
  635.             return E.dir(a, "nextSibling")
  636.         },
  637.         prevAll: function (a) {
  638.             return E.dir(a, "previousSibling")
  639.         },
  640.         siblings: function (a) {
  641.             return E.sibling(a.parentNode.firstChild, a)
  642.         },
  643.         children: function (a) {
  644.             return E.sibling(a.firstChild)
  645.         },
  646.         contents: function (a) {
  647.             return E.nodeName(a, "iframe") ? a.contentDocument || a.contentWindow.document : E.makeArray(a.childNodes)
  648.         }
  649.     }, function (c, d) {
  650.         E.fn[c] = function (b) {
  651.             var a = E.map(this, d);
  652.             if (b && typeof b == "string") a = E.multiFilter(b, a);
  653.             return this.pushStack(E.unique(a))
  654.         }
  655.     });
  656.     E.each({
  657.         appendTo: "append",
  658.         prependTo: "prepend",
  659.         insertBefore: "before",
  660.         insertAfter: "after",
  661.         replaceAll: "replaceWith"
  662.     }, function (c, b) {
  663.         E.fn[c] = function () {
  664.             var a = arguments;
  665.             return this.each(function () {
  666.                 for (var i = 0, length = a.length; i < length; i++) E(a[i])[b](this)
  667.             })
  668.         }
  669.     });
  670.     E.each({
  671.         removeAttr: function (a) {
  672.             E.attr(this, a, "");
  673.             if (this.nodeType == 1) this.removeAttribute(a)
  674.         },
  675.         addClass: function (a) {
  676.             E.className.add(this, a)
  677.         },
  678.         removeClass: function (a) {
  679.             E.className.remove(this, a)
  680.         },
  681.         toggleClass: function (a) {
  682.             E.className[E.className.has(this, a) ? "remove" : "add"](this, a)
  683.         },
  684.         remove: function (a) {
  685.             if (!a || E.filter(a, [this]).r.length) {
  686.                 E("*", this).add(this).each(function () {
  687.                     E.event.remove(this);
  688.                     E.removeData(this)
  689.                 });
  690.                 if (this.parentNode) this.parentNode.removeChild(this)
  691.             }
  692.         },
  693.         empty: function () {
  694.             E(">*", this).remove();
  695.             while (this.firstChild) this.removeChild(this.firstChild)
  696.         }
  697.     }, function (a, b) {
  698.         E.fn[a] = function () {
  699.             return this.each(b, arguments)
  700.         }
  701.     });
  702.     E.each(["Height", "Width"], function (i, c) {
  703.         var b = c.toLowerCase();
  704.         E.fn[b] = function (a) {
  705.             return this[0] == window ? E.browser.opera && document.body["client" + c] || E.browser.safari && window["inner" + c] || document.compatMode == "CSS1Compat" && document.documentElement["client" + c] || document.body["client" + c] : this[0] == document ? Math.max(Math.max(document.body["scroll" + c], document.documentElement["scroll" + c]), Math.max(document.body["offset" + c], document.documentElement["offset" + c])) : a == undefined ? (this.length ? E.css(this[0], b) : null) : this.css(b, a.constructor == String ? a : a + "px")
  706.         }
  707.     });
  708.     var C = E.browser.safari && parseInt(E.browser.version) < 417 ? "(?:[\\w*_-]|\\\\.)" : "(?:[\\w\u0128-\uFFFF*_-]|\\\\.)",
  709.         quickChild = new RegExp("^>\\s*(" + C + "+)"),
  710.         quickID = new RegExp("^(" + C + "+)(#)(" + C + "+)"),
  711.         quickClass = new RegExp("^([#.]?)(" + C + "*)");
  712.     E.extend({
  713.         expr: {
  714.             "": function (a, i, m) {
  715.                 return m[2] == "*" || E.nodeName(a, m[2])
  716.             },
  717.             "#": function (a, i, m) {
  718.                 return a.getAttribute("id") == m[2]
  719.             },
  720.             ":": {
  721.                 lt: function (a, i, m) {
  722.                     return i < m[3] - 0
  723.                 },
  724.                 gt: function (a, i, m) {
  725.                     return i > m[3] - 0
  726.                 },
  727.                 nth: function (a, i, m) {
  728.                     return m[3] - 0 == i
  729.                 },
  730.                 eq: function (a, i, m) {
  731.                     return m[3] - 0 == i
  732.                 },
  733.                 first: function (a, i) {
  734.                     return i == 0
  735.                 },
  736.                 last: function (a, i, m, r) {
  737.                     return i == r.length - 1
  738.                 },
  739.                 even: function (a, i) {
  740.                     return i % 2 == 0
  741.                 },
  742.                 odd: function (a, i) {
  743.                     return i % 2
  744.                 },
  745.                 "first-child": function (a) {
  746.                     return a.parentNode.getElementsByTagName("*")[0] == a
  747.                 },
  748.                 "last-child": function (a) {
  749.                     return E.nth(a.parentNode.lastChild, 1, "previousSibling") == a
  750.                 },
  751.                 "only-child": function (a) {
  752.                     return !E.nth(a.parentNode.lastChild, 2, "previousSibling")
  753.                 },
  754.                 parent: function (a) {
  755.                     return a.firstChild
  756.                 },
  757.                 empty: function (a) {
  758.                     return !a.firstChild
  759.                 },
  760.                 contains: function (a, i, m) {
  761.                     return (a.textContent || a.innerText || E(a).text() || "").indexOf(m[3]) >= 0
  762.                 },
  763.                 visible: function (a) {
  764.                     return "hidden" != a.type && E.css(a, "display") != "none" && E.css(a, "visibility") != "hidden"
  765.                 },
  766.                 hidden: function (a) {
  767.                     return "hidden" == a.type || E.css(a, "display") == "none" || E.css(a, "visibility") == "hidden"
  768.                 },
  769.                 enabled: function (a) {
  770.                     return !a.disabled
  771.                 },
  772.                 disabled: function (a) {
  773.                     return a.disabled
  774.                 },
  775.                 checked: function (a) {
  776.                     return a.checked
  777.                 },
  778.                 selected: function (a) {
  779.                     return a.selected || E.attr(a, "selected")
  780.                 },
  781.                 text: function (a) {
  782.                     return "text" == a.type
  783.                 },
  784.                 radio: function (a) {
  785.                     return "radio" == a.type
  786.                 },
  787.                 checkbox: function (a) {
  788.                     return "checkbox" == a.type
  789.                 },
  790.                 file: function (a) {
  791.                     return "file" == a.type
  792.                 },
  793.                 password: function (a) {
  794.                     return "password" == a.type
  795.                 },
  796.                 submit: function (a) {
  797.                     return "submit" == a.type
  798.                 },
  799.                 image: function (a) {
  800.                     return "image" == a.type
  801.                 },
  802.                 reset: function (a) {
  803.                     return "reset" == a.type
  804.                 },
  805.                 button: function (a) {
  806.                     return "button" == a.type || E.nodeName(a, "button")
  807.                 },
  808.                 input: function (a) {
  809.                     return /input|select|textarea|button/i.test(a.nodeName)
  810.                 },
  811.                 has: function (a, i, m) {
  812.                     return E.find(m[3], a).length
  813.                 },
  814.                 header: function (a) {
  815.                     return /h\d/i.test(a.nodeName)
  816.                 },
  817.                 animated: function (a) {
  818.                     return E.grep(E.timers, function (b) {
  819.                         return a == b.elem
  820.                     }).length
  821.                 }
  822.             }
  823.         },
  824.         parse: [/^(\[) *@?([\w-]+) *([!*$^~=]*) *('?"?)(.*?)\4 *\]/, /^(:)([\w-]+)\("?'?(.*?(\(.*?\))?[^(]*?)"?'?\)/, new RegExp("^([:.#]*)(" + C + "+)")],
  825.         multiFilter: function (a, c, b) {
  826.             var d, cur = [];
  827.             while (a && a != d) {
  828.                 d = a;
  829.                 var f = E.filter(a, c, b);
  830.                 a = f.t.replace(/^\s*,\s*/, "");
  831.                 cur = b ? c = f.r : E.merge(cur, f.r)
  832.             }
  833.             return cur
  834.         },
  835.         find: function (t, p) {
  836.             if (typeof t != "string") return [t];
  837.             if (p && p.nodeType != 1 && p.nodeType != 9) return [];
  838.             p = p || document;
  839.             var d = [p],
  840.                 done = [],
  841.                 last, nodeName;
  842.             while (t && last != t) {
  843.                 var r = [];
  844.                 last = t;
  845.                 t = E.trim(t);
  846.                 var o = false;
  847.                 var g = quickChild;
  848.                 var m = g.exec(t);
  849.                 if (m) {
  850.                     nodeName = m[1].toUpperCase();
  851.                     for (var i = 0; d[i]; i++) for (var c = d[i].firstChild; c; c = c.nextSibling) if (c.nodeType == 1 && (nodeName == "*" || c.nodeName.toUpperCase() == nodeName)) r.push(c);
  852.                     d = r;
  853.                     t = t.replace(g, "");
  854.                     if (t.indexOf(" ") == 0) continue;
  855.                     o = true
  856.                 } else {
  857.                     g = /^([>+~])\s*(\w*)/i;
  858.                     if ((m = g.exec(t)) != null) {
  859.                         r = [];
  860.                         var l = {};
  861.                         nodeName = m[2].toUpperCase();
  862.                         m = m[1];
  863.                         for (var j = 0, rl = d.length; j < rl; j++) {
  864.                             var n = m == "~" || m == "+" ? d[j].nextSibling : d[j].firstChild;
  865.                             for (; n; n = n.nextSibling) if (n.nodeType == 1) {
  866.                                 var h = E.data(n);
  867.                                 if (m == "~" && l[h]) break;
  868.                                 if (!nodeName || n.nodeName.toUpperCase() == nodeName) {
  869.                                     if (m == "~") l[h] = true;
  870.                                     r.push(n)
  871.                                 }
  872.                                 if (m == "+") break
  873.                             }
  874.                         }
  875.                         d = r;
  876.                         t = E.trim(t.replace(g, ""));
  877.                         o = true
  878.                     }
  879.                 }
  880.                 if (t && !o) {
  881.                     if (!t.indexOf(",")) {
  882.                         if (p == d[0]) d.shift();
  883.                         done = E.merge(done, d);
  884.                         r = d = [p];
  885.                         t = " " + t.substr(1, t.length)
  886.                     } else {
  887.                         var k = quickID;
  888.                         var m = k.exec(t);
  889.                         if (m) {
  890.                             m = [0, m[2], m[3], m[1]]
  891.                         } else {
  892.                             k = quickClass;
  893.                             m = k.exec(t)
  894.                         }
  895.                         m[2] = m[2].replace(/\\/g, "");
  896.                         var f = d[d.length - 1];
  897.                         if (m[1] == "#" && f && f.getElementById && !E.isXMLDoc(f)) {
  898.                             var q = f.getElementById(m[2]);
  899.                             if ((E.browser.msie || E.browser.opera) && q && typeof q.id == "string" && q.id != m[2]) q = E('[@id="' + m[2] + '"]', f)[0];
  900.                             d = r = q && (!m[3] || E.nodeName(q, m[3])) ? [q] : []
  901.                         } else {
  902.                             for (var i = 0; d[i]; i++) {
  903.                                 var a = m[1] == "#" && m[3] ? m[3] : m[1] != "" || m[0] == "" ? "*" : m[2];
  904.                                 if (a == "*" && d[i].nodeName.toLowerCase() == "object") a = "param";
  905.                                 r = E.merge(r, d[i].getElementsByTagName(a))
  906.                             }
  907.                             if (m[1] == ".") r = E.classFilter(r, m[2]);
  908.                             if (m[1] == "#") {
  909.                                 var e = [];
  910.                                 for (var i = 0; r[i]; i++) if (r[i].getAttribute("id") == m[2]) {
  911.                                     e = [r[i]];
  912.                                     break
  913.                                 }
  914.                                 r = e
  915.                             }
  916.                             d = r
  917.                         }
  918.                         t = t.replace(k, "")
  919.                     }
  920.                 }
  921.                 if (t) {
  922.                     var b = E.filter(t, r);
  923.                     d = r = b.r;
  924.                     t = E.trim(b.t)
  925.                 }
  926.             }
  927.             if (t) d = [];
  928.             if (d && p == d[0]) d.shift();
  929.             done = E.merge(done, d);
  930.             return done
  931.         },
  932.         classFilter: function (r, m, a) {
  933.             m = " " + m + " ";
  934.             var c = [];
  935.             for (var i = 0; r[i]; i++) {
  936.                 var b = (" " + r[i].className + " ").indexOf(m) >= 0;
  937.                 if (!a && b || a && !b) c.push(r[i])
  938.             }
  939.             return c
  940.         },
  941.         filter: function (t, r, h) {
  942.             var d;
  943.             while (t && t != d) {
  944.                 d = t;
  945.                 var p = E.parse,
  946.                     m;
  947.                 for (var i = 0; p[i]; i++) {
  948.                     m = p[i].exec(t);
  949.                     if (m) {
  950.                         t = t.substring(m[0].length);
  951.                         m[2] = m[2].replace(/\\/g, "");
  952.                         break
  953.                     }
  954.                 }
  955.                 if (!m) break;
  956.                 if (m[1] == ":" && m[2] == "not") r = G.test(m[3]) ? E.filter(m[3], r, true).r : E(r).not(m[3]);
  957.                 else if (m[1] == ".") r = E.classFilter(r, m[2], h);
  958.                 else if (m[1] == "[") {
  959.                     var g = [],
  960.                         type = m[3];
  961.                     for (var i = 0, rl = r.length; i < rl; i++) {
  962.                         var a = r[i],
  963.                             z = a[E.props[m[2]] || m[2]];
  964.                         if (z == null || /href|src|selected/.test(m[2])) z = E.attr(a, m[2]) || '';
  965.                         if ((type == "" && !! z || type == "=" && z == m[5] || type == "!=" && z != m[5] || type == "^=" && z && !z.indexOf(m[5]) || type == "$=" && z.substr(z.length - m[5].length) == m[5] || (type == "*=" || type == "~=") && z.indexOf(m[5]) >= 0) ^ h) g.push(a)
  966.                     }
  967.                     r = g
  968.                 } else if (m[1] == ":" && m[2] == "nth-child") {
  969.                     var e = {},
  970.                         g = [],
  971.                         test = /(-?)(\d*)n((?:\+|-)?\d*)/.exec(m[3] == "even" && "2n" || m[3] == "odd" && "2n+1" || !/\D/.test(m[3]) && "0n+" + m[3] || m[3]),
  972.                         first = (test[1] + (test[2] || 1)) - 0,
  973.                         d = test[3] - 0;
  974.                     for (var i = 0, rl = r.length; i < rl; i++) {
  975.                         var j = r[i],
  976.                             parentNode = j.parentNode,
  977.                             id = E.data(parentNode);
  978.                         if (!e[id]) {
  979.                             var c = 1;
  980.                             for (var n = parentNode.firstChild; n; n = n.nextSibling) if (n.nodeType == 1) n.nodeIndex = c++;
  981.                             e[id] = true
  982.                         }
  983.                         var b = false;
  984.                         if (first == 0) {
  985.                             if (j.nodeIndex == d) b = true
  986.                         } else if ((j.nodeIndex - d) % first == 0 && (j.nodeIndex - d) / first >= 0) b = true;
  987.                         if (b ^ h) g.push(j)
  988.                     }
  989.                     r = g
  990.                 } else {
  991.                     var f = E.expr[m[1]];
  992.                     if (typeof f == "object") f = f[m[2]];
  993.                     if (typeof f == "string") f = eval("false||function(a,i){return " + f + ";}");
  994.                     r = E.grep(r, function (a, i) {
  995.                         return f(a, i, m, r)
  996.                     }, h)
  997.                 }
  998.             }
  999.             return {
  1000.                 r: r,
  1001.                 t: t
  1002.             }
  1003.         },
  1004.         dir: function (b, c) {
  1005.             var d = [];
  1006.             var a = b[c];
  1007.             while (a && a != document) {
  1008.                 if (a.nodeType == 1) d.push(a);
  1009.                 a = a[c]
  1010.             }
  1011.             return d
  1012.         },
  1013.         nth: function (a, e, c, b) {
  1014.             e = e || 1;
  1015.             var d = 0;
  1016.             for (; a; a = a[c]) if (a.nodeType == 1 && ++d == e) break;
  1017.             return a
  1018.         },
  1019.         sibling: function (n, a) {
  1020.             var r = [];
  1021.             for (; n; n = n.nextSibling) {
  1022.                 if (n.nodeType == 1 && (!a || n != a)) r.push(n)
  1023.             }
  1024.             return r
  1025.         }
  1026.     });
  1027.     E.event = {
  1028.         add: function (f, i, g, e) {
  1029.             if (f.nodeType == 3 || f.nodeType == 8) return;
  1030.             if (E.browser.msie && f.setInterval != undefined) f = window;
  1031.             if (!g.guid) g.guid = this.guid++;
  1032.             if (e != undefined) {
  1033.                 var h = g;
  1034.                 g = function () {
  1035.                     return h.apply(this, arguments)
  1036.                 };
  1037.                 g.data = e;
  1038.                 g.guid = h.guid
  1039.             }
  1040.             var j = E.data(f, "events") || E.data(f, "events", {}),
  1041.                 handle = E.data(f, "handle") || E.data(f, "handle", function () {
  1042.                     var a;
  1043.                     if (typeof E == "undefined" || E.event.triggered) return a;
  1044.                     a = E.event.handle.apply(arguments.callee.elem, arguments);
  1045.                     return a
  1046.                 });
  1047.             handle.elem = f;
  1048.             E.each(i.split(/\s+/), function (c, b) {
  1049.                 var a = b.split(".");
  1050.                 b = a[0];
  1051.                 g.type = a[1];
  1052.                 var d = j[b];
  1053.                 if (!d) {
  1054.                     d = j[b] = {};
  1055.                     if (!E.event.special[b] || E.event.special[b].setup.call(f) === false) {
  1056.                         if (f.addEventListener) f.addEventListener(b, handle, false);
  1057.                         else if (f.attachEvent) f.attachEvent("on" + b, handle)
  1058.                     }
  1059.                 }
  1060.                 d[g.guid] = g;
  1061.                 E.event.global[b] = true
  1062.             });
  1063.             f = null
  1064.         },
  1065.         guid: 1,
  1066.         global: {},
  1067.         remove: function (e, h, f) {
  1068.             if (e.nodeType == 3 || e.nodeType == 8) return;
  1069.             var i = E.data(e, "events"),
  1070.                 ret, index;
  1071.             if (i) {
  1072.                 if (h == undefined || (typeof h == "string" && h.charAt(0) == ".")) for (var g in i) this.remove(e, g + (h || ""));
  1073.                 else {
  1074.                     if (h.type) {
  1075.                         f = h.handler;
  1076.                         h = h.type
  1077.                     }
  1078.                     E.each(h.split(/\s+/), function (b, a) {
  1079.                         var c = a.split(".");
  1080.                         a = c[0];
  1081.                         if (i[a]) {
  1082.                             if (f) delete i[a][f.guid];
  1083.                             else for (f in i[a]) if (!c[1] || i[a][f].type == c[1]) delete i[a][f];
  1084.                             for (ret in i[a]) break;
  1085.                             if (!ret) {
  1086.                                 if (!E.event.special[a] || E.event.special[a].teardown.call(e) === false) {
  1087.                                     if (e.removeEventListener) e.removeEventListener(a, E.data(e, "handle"), false);
  1088.                                     else if (e.detachEvent) e.detachEvent("on" + a, E.data(e, "handle"))
  1089.                                 }
  1090.                                 ret = null;
  1091.                                 delete i[a]
  1092.                             }
  1093.                         }
  1094.                     })
  1095.                 }
  1096.                 for (ret in i) break;
  1097.                 if (!ret) {
  1098.                     var d = E.data(e, "handle");
  1099.                     if (d) d.elem = null;
  1100.                     E.removeData(e, "events");
  1101.                     E.removeData(e, "handle")
  1102.                 }
  1103.             }
  1104.         },
  1105.         trigger: function (g, c, d, f, h) {
  1106.             c = E.makeArray(c || []);
  1107.             if (g.indexOf("!") >= 0) {
  1108.                 g = g.slice(0, -1);
  1109.                 var a = true
  1110.             }
  1111.             if (!d) {
  1112.                 if (this.global[g]) E("*").add([window, document]).trigger(g, c)
  1113.             } else {
  1114.                 if (d.nodeType == 3 || d.nodeType == 8) return undefined;
  1115.                 var b, ret, fn = E.isFunction(d[g] || null),
  1116.                     event = !c[0] || !c[0].preventDefault;
  1117.                 if (event) c.unshift(this.fix({
  1118.                     type: g,
  1119.                     target: d
  1120.                 }));
  1121.                 c[0].type = g;
  1122.                 if (a) c[0].exclusive = true;
  1123.                 if (E.isFunction(E.data(d, "handle"))) b = E.data(d, "handle").apply(d, c);
  1124.                 if (!fn && d["on" + g] && d["on" + g].apply(d, c) === false) b = false;
  1125.                 if (event) c.shift();
  1126.                 if (h && E.isFunction(h)) {
  1127.                     ret = h.apply(d, b == null ? c : c.concat(b));
  1128.                     if (ret !== undefined) b = ret
  1129.                 }
  1130.                 if (fn && f !== false && b !== false && !(E.nodeName(d, 'a') && g == "click")) {
  1131.                     this.triggered = true;
  1132.                     try {
  1133.                         d[g]()
  1134.                     } catch (e) {}
  1135.                 }
  1136.                 this.triggered = false
  1137.             }
  1138.             return b
  1139.         },
  1140.         handle: function (c) {
  1141.             var a;
  1142.             c = E.event.fix(c || window.event || {});
  1143.             var b = c.type.split(".");
  1144.             c.type = b[0];
  1145.             var f = E.data(this, "events") && E.data(this, "events")[c.type],
  1146.                 args = Array.prototype.slice.call(arguments, 1);
  1147.             args.unshift(c);
  1148.             for (var j in f) {
  1149.                 var d = f[j];
  1150.                 args[0].handler = d;
  1151.                 args[0].data = d.data;
  1152.                 if (!b[1] && !c.exclusive || d.type == b[1]) {
  1153.                     var e = d.apply(this, args);
  1154.                     if (a !== false) a = e;
  1155.                     if (e === false) {
  1156.                         c.preventDefault();
  1157.                         c.stopPropagation()
  1158.                     }
  1159.                 }
  1160.             }
  1161.             if (E.browser.msie) c.target = c.preventDefault = c.stopPropagation = c.handler = c.data = null;
  1162.             return a
  1163.         },
  1164.         fix: function (c) {
  1165.             var a = c;
  1166.             c = E.extend({}, a);
  1167.             c.preventDefault = function () {
  1168.                 if (a.preventDefault) a.preventDefault();
  1169.                 a.returnValue = false
  1170.             };
  1171.             c.stopPropagation = function () {
  1172.                 if (a.stopPropagation) a.stopPropagation();
  1173.                 a.cancelBubble = true
  1174.             };
  1175.             if (!c.target) c.target = c.srcElement || document;
  1176.             if (c.target.nodeType == 3) c.target = a.target.parentNode;
  1177.             if (!c.relatedTarget && c.fromElement) c.relatedTarget = c.fromElement == c.target ? c.toElement : c.fromElement;
  1178.             if (c.pageX == null && c.clientX != null) {
  1179.                 var b = document.documentElement,
  1180.                     body = document.body;
  1181.                 c.pageX = c.clientX + (b && b.scrollLeft || body && body.scrollLeft || 0) - (b.clientLeft || 0);
  1182.                 c.pageY = c.clientY + (b && b.scrollTop || body && body.scrollTop || 0) - (b.clientTop || 0)
  1183.             }
  1184.             if (!c.which && ((c.charCode || c.charCode === 0) ? c.charCode : c.keyCode)) c.which = c.charCode || c.keyCode;
  1185.             if (!c.metaKey && c.ctrlKey) c.metaKey = c.ctrlKey;
  1186.             if (!c.which && c.button) c.which = (c.button & 1 ? 1 : (c.button & 2 ? 3 : (c.button & 4 ? 2 : 0)));
  1187.             return c
  1188.         },
  1189.         special: {
  1190.             ready: {
  1191.                 setup: function () {
  1192.                     bindReady();
  1193.                     return
  1194.                 },
  1195.                 teardown: function () {
  1196.                     return
  1197.                 }
  1198.             },
  1199.             mouseenter: {
  1200.                 setup: function () {
  1201.                     if (E.browser.msie) return false;
  1202.                     E(this).bind("mouseover", E.event.special.mouseenter.handler);
  1203.                     return true
  1204.                 },
  1205.                 teardown: function () {
  1206.                     if (E.browser.msie) return false;
  1207.                     E(this).unbind("mouseover", E.event.special.mouseenter.handler);
  1208.                     return true
  1209.                 },
  1210.                 handler: function (a) {
  1211.                     if (I(a, this)) return true;
  1212.                     arguments[0].type = "mouseenter";
  1213.                     return E.event.handle.apply(this, arguments)
  1214.                 }
  1215.             },
  1216.             mouseleave: {
  1217.                 setup: function () {
  1218.                     if (E.browser.msie) return false;
  1219.                     E(this).bind("mouseout", E.event.special.mouseleave.handler);
  1220.                     return true
  1221.                 },
  1222.                 teardown: function () {
  1223.                     if (E.browser.msie) return false;
  1224.                     E(this).unbind("mouseout", E.event.special.mouseleave.handler);
  1225.                     return true
  1226.                 },
  1227.                 handler: function (a) {
  1228.                     if (I(a, this)) return true;
  1229.                     arguments[0].type = "mouseleave";
  1230.                     return E.event.handle.apply(this, arguments)
  1231.                 }
  1232.             }
  1233.         }
  1234.     };
  1235.     E.fn.extend({
  1236.         bind: function (c, a, b) {
  1237.             return c == "unload" ? this.one(c, a, b) : this.each(function () {
  1238.                 E.event.add(this, c, b || a, b && a)
  1239.             })
  1240.         },
  1241.         one: function (d, b, c) {
  1242.             return this.each(function () {
  1243.                 E.event.add(this, d, function (a) {
  1244.                     E(this).unbind(a);
  1245.                     return (c || b).apply(this, arguments)
  1246.                 }, c && b)
  1247.             })
  1248.         },
  1249.         unbind: function (a, b) {
  1250.             return this.each(function () {
  1251.                 E.event.remove(this, a, b)
  1252.             })
  1253.         },
  1254.         trigger: function (c, a, b) {
  1255.             return this.each(function () {
  1256.                 E.event.trigger(c, a, this, true, b)
  1257.             })
  1258.         },
  1259.         triggerHandler: function (c, a, b) {
  1260.             if (this[0]) return E.event.trigger(c, a, this[0], false, b);
  1261.             return undefined
  1262.         },
  1263.         toggle: function () {
  1264.             var b = arguments;
  1265.             return this.click(function (a) {
  1266.                 this.lastToggle = 0 == this.lastToggle ? 1 : 0;
  1267.                 a.preventDefault();
  1268.                 return b[this.lastToggle].apply(this, arguments) || false
  1269.             })
  1270.         },
  1271.         hover: function (a, b) {
  1272.             return this.bind('mouseenter', a).bind('mouseleave', b)
  1273.         },
  1274.         ready: function (a) {
  1275.             bindReady();
  1276.             if (E.isReady) a.call(document, E);
  1277.             else E.readyList.push(function () {
  1278.                 return a.call(this, E)
  1279.             });
  1280.             return this
  1281.         }
  1282.     });
  1283.     E.extend({
  1284.         isReady: false,
  1285.         readyList: [],
  1286.         ready: function () {
  1287.             if (!E.isReady) {
  1288.                 E.isReady = true;
  1289.                 if (E.readyList) {
  1290.                     E.each(E.readyList, function () {
  1291.                         this.apply(document)
  1292.                     });
  1293.                     E.readyList = null
  1294.                 }
  1295.                 E(document).triggerHandler("ready")
  1296.             }
  1297.         }
  1298.     });
  1299.     var x = false;
  1300.     function bindReady() {
  1301.         if (x) return;
  1302.         x = true;
  1303.         if (document.addEventListener && !E.browser.opera) document.addEventListener("DOMContentLoaded", E.ready, false);
  1304.         if (E.browser.msie && window == top)(function () {
  1305.             if (E.isReady) return;
  1306.             try {
  1307.                 document.documentElement.doScroll("left")
  1308.             } catch (error) {
  1309.                 setTimeout(arguments.callee, 0);
  1310.                 return
  1311.             }
  1312.             E.ready()
  1313.         })();
  1314.         if (E.browser.opera) document.addEventListener("DOMContentLoaded", function () {
  1315.             if (E.isReady) return;
  1316.             for (var i = 0; i < document.styleSheets.length; i++) if (document.styleSheets[i].disabled) {
  1317.                 setTimeout(arguments.callee, 0);
  1318.                 return
  1319.             }
  1320.             E.ready()
  1321.         }, false);
  1322.         if (E.browser.safari) {
  1323.             var a;
  1324.             (function () {
  1325.                 if (E.isReady) return;
  1326.                 if (document.readyState != "loaded" && document.readyState != "complete") {
  1327.                     setTimeout(arguments.callee, 0);
  1328.                     return
  1329.                 }
  1330.                 if (a === undefined) a = E("style, link[rel=stylesheet]").length;
  1331.                 if (document.styleSheets.length != a) {
  1332.                     setTimeout(arguments.callee, 0);
  1333.                     return
  1334.                 }
  1335.                 E.ready()
  1336.             })()
  1337.         }
  1338.         E.event.add(window, "load", E.ready)
  1339.     }
  1340.     E.each(("blur,focus,load,resize,scroll,unload,click,dblclick," + "mousedown,mouseup,mousemove,mouseover,mouseout,change,select," + "submit,keydown,keypress,keyup,error").split(","), function (i, b) {
  1341.         E.fn[b] = function (a) {
  1342.             return a ? this.bind(b, a) : this.trigger(b)
  1343.         }
  1344.     });
  1345.     var I = function (a, c) {
  1346.             var b = a.relatedTarget;
  1347.             while (b && b != c) try {
  1348.                 b = b.parentNode
  1349.             } catch (error) {
  1350.                 b = c
  1351.             }
  1352.             return b == c
  1353.         };
  1354.     E(window).bind("unload", function () {
  1355.         E("*").add(document).unbind()
  1356.     });
  1357.     E.fn.extend({
  1358.         load: function (g, d, c) {
  1359.             if (E.isFunction(g)) return this.bind("load", g);
  1360.             var e = g.indexOf(" ");
  1361.             if (e >= 0) {
  1362.                 var i = g.slice(e, g.length);
  1363.                 g = g.slice(0, e)
  1364.             }
  1365.             c = c ||
  1366.             function () {};
  1367.             var f = "GET";
  1368.             if (d) if (E.isFunction(d)) {
  1369.                 c = d;
  1370.                 d = null
  1371.             } else {
  1372.                 d = E.param(d);
  1373.                 f = "POST"
  1374.             }
  1375.             var h = this;
  1376.             E.ajax({
  1377.                 url: g,
  1378.                 type: f,
  1379.                 dataType: "html",
  1380.                 data: d,
  1381.                 complete: function (a, b) {
  1382.                     if (b == "success" || b == "notmodified") h.html(i ? E("<div/>").append(a.responseText.replace(/<script(.|\s)*?\/script>/g, "")).find(i) : a.responseText);
  1383.                     h.each(c, [a.responseText, b, a])
  1384.                 }
  1385.             });
  1386.             return this
  1387.         },
  1388.         serialize: function () {
  1389.             return E.param(this.serializeArray())
  1390.         },
  1391.         serializeArray: function () {
  1392.             return this.map(function () {
  1393.                 return E.nodeName(this, "form") ? E.makeArray(this.elements) : this
  1394.             }).filter(function () {
  1395.                 return this.name && !this.disabled && (this.checked || /select|textarea/i.test(this.nodeName) || /text|hidden|password/i.test(this.type))
  1396.             }).map(function (i, c) {
  1397.                 var b = E(this).val();
  1398.                 return b == null ? null : b.constructor == Array ? E.map(b, function (a, i) {
  1399.                     return {
  1400.                         name: c.name,
  1401.                         value: a
  1402.                     }
  1403.                 }) : {
  1404.                     name: c.name,
  1405.                     value: b
  1406.                 }
  1407.             }).get()
  1408.         }
  1409.     });
  1410.     E.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","), function (i, o) {
  1411.         E.fn[o] = function (f) {
  1412.             return this.bind(o, f)
  1413.         }
  1414.     });
  1415.     var B = (new Date).getTime();
  1416.     E.extend({
  1417.         get: function (d, b, a, c) {
  1418.             if (E.isFunction(b)) {
  1419.                 a = b;
  1420.                 b = null
  1421.             }
  1422.             return E.ajax({
  1423.                 type: "GET",
  1424.                 url: d,
  1425.                 data: b,
  1426.                 success: a,
  1427.                 dataType: c
  1428.             })
  1429.         },
  1430.         getScript: function (b, a) {
  1431.             return E.get(b, null, a, "script")
  1432.         },
  1433.         getJSON: function (c, b, a) {
  1434.             return E.get(c, b, a, "json")
  1435.         },
  1436.         post: function (d, b, a, c) {
  1437.             if (E.isFunction(b)) {
  1438.                 a = b;
  1439.                 b = {}
  1440.             }
  1441.             return E.ajax({
  1442.                 type: "POST",
  1443.                 url: d,
  1444.                 data: b,
  1445.                 success: a,
  1446.                 dataType: c
  1447.             })
  1448.         },
  1449.         ajaxSetup: function (a) {
  1450.             E.extend(E.ajaxSettings, a)
  1451.         },
  1452.         ajaxSettings: {
  1453.             global: true,
  1454.             type: "GET",
  1455.             timeout: 0,
  1456.             contentType: "application/x-www-form-urlencoded",
  1457.             processData: true,
  1458.             async: true,
  1459.             data: null,
  1460.             username: null,
  1461.             password: null,
  1462.             accepts: {
  1463.                 xml: "application/xml, text/xml",
  1464.                 html: "text/html",
  1465.                 script: "text/javascript, application/javascript",
  1466.                 json: "application/json, text/javascript",
  1467.                 text: "text/plain",
  1468.                 _default: "*/*"
  1469.             }
  1470.         },
  1471.         lastModified: {},
  1472.         ajax: function (s) {
  1473.             var f, jsre = /=\?(&|$)/g,
  1474.                 status, data;
  1475.             s = E.extend(true, s, E.extend(true, {}, E.ajaxSettings, s));
  1476.             if (s.data && s.processData && typeof s.data != "string") s.data = E.param(s.data);
  1477.             if (s.dataType == "jsonp") {
  1478.                 if (s.type.toLowerCase() == "get") {
  1479.                     if (!s.url.match(jsre)) s.url += (s.url.match(/\?/) ? "&" : "?") + (s.jsonp || "callback") + "=?"
  1480.                 } else if (!s.data || !s.data.match(jsre)) s.data = (s.data ? s.data + "&" : "") + (s.jsonp || "callback") + "=?";
  1481.                 s.dataType = "json"
  1482.             }
  1483.             if (s.dataType == "json" && (s.data && s.data.match(jsre) || s.url.match(jsre))) {
  1484.                 f = "jsonp" + B++;
  1485.                 if (s.data) s.data = (s.data + "").replace(jsre, "=" + f + "$1");
  1486.                 s.url = s.url.replace(jsre, "=" + f + "$1");
  1487.                 s.dataType = "script";
  1488.                 window[f] = function (a) {
  1489.                     data = a;
  1490.                     success();
  1491.                     complete();
  1492.                     window[f] = undefined;
  1493.                     try {
  1494.                         delete window[f]
  1495.                     } catch (e) {}
  1496.                     if (h) h.removeChild(g)
  1497.                 }
  1498.             }
  1499.             if (s.dataType == "script" && s.cache == null) s.cache = false;
  1500.             if (s.cache === false && s.type.toLowerCase() == "get") {
  1501.                 var i = (new Date()).getTime();
  1502.                 var j = s.url.replace(/(\?|&)_=.*?(&|$)/, "$1_=" + i + "$2");
  1503.                 s.url = j + ((j == s.url) ? (s.url.match(/\?/) ? "&" : "?") + "_=" + i : "")
  1504.             }
  1505.             if (s.data && s.type.toLowerCase() == "get") {
  1506.                 s.url += (s.url.match(/\?/) ? "&" : "?") + s.data;
  1507.                 s.data = null
  1508.             }
  1509.             if (s.global && !E.active++) E.event.trigger("ajaxStart");
  1510.             if ((!s.url.indexOf("http") || !s.url.indexOf("//")) && s.dataType == "script" && s.type.toLowerCase() == "get") {
  1511.                 var h = document.getElementsByTagName("head")[0];
  1512.                 var g = document.createElement("script");
  1513.                 g.src = s.url;
  1514.                 if (s.scriptCharset) g.charset = s.scriptCharset;
  1515.                 if (!f) {
  1516.                     var l = false;
  1517.                     g.onload = g.onreadystatechange = function () {
  1518.                         if (!l && (!this.readyState || this.readyState == "loaded" || this.readyState == "complete")) {
  1519.                             l = true;
  1520.                             success();
  1521.                             complete();
  1522.                             h.removeChild(g)
  1523.                         }
  1524.                     }
  1525.                 }
  1526.                 h.appendChild(g);
  1527.                 return undefined
  1528.             }
  1529.             var m = false;
  1530.             var k = window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
  1531.             k.open(s.type, s.url, s.async, s.username, s.password);
  1532.             try {
  1533.                 if (s.data) k.setRequestHeader("Content-Type", s.contentType);
  1534.                 if (s.ifModified) k.setRequestHeader("If-Modified-Since", E.lastModified[s.url] || "Thu, 01 Jan 1970 00:00:00 GMT");
  1535.                 k.setRequestHeader("X-Requested-With", "XMLHttpRequest");
  1536.                 k.setRequestHeader("Accept", s.dataType && s.accepts[s.dataType] ? s.accepts[s.dataType] + ", */*" : s.accepts._default)
  1537.             } catch (e) {}
  1538.             if (s.beforeSend) s.beforeSend(k);
  1539.             if (s.global) E.event.trigger("ajaxSend", [k, s]);
  1540.             var c = function (a) {
  1541.                     if (!m && k && (k.readyState == 4 || a == "timeout")) {
  1542.                         m = true;
  1543.                         if (d) {
  1544.                             clearInterval(d);
  1545.                             d = null
  1546.                         }
  1547.                         status = a == "timeout" && "timeout" || !E.httpSuccess(k) && "error" || s.ifModified && E.httpNotModified(k, s.url) && "notmodified" || "success";
  1548.                         if (status == "success") {
  1549.                             try {
  1550.                                 data = E.httpData(k, s.dataType)
  1551.                             } catch (e) {
  1552.                                 status = "parsererror"
  1553.                             }
  1554.                         }
  1555.                         if (status == "success") {
  1556.                             var b;
  1557.                             try {
  1558.                                 b = k.getResponseHeader("Last-Modified")
  1559.                             } catch (e) {}
  1560.                             if (s.ifModified && b) E.lastModified[s.url] = b;
  1561.                             if (!f) success()
  1562.                         } else E.handleError(s, k, status);
  1563.                         complete();
  1564.                         if (s.async) k = null
  1565.                     }
  1566.                 };
  1567.             if (s.async) {
  1568.                 var d = setInterval(c, 13);
  1569.                 if (s.timeout > 0) setTimeout(function () {
  1570.                     if (k) {
  1571.                         k.abort();
  1572.                         if (!m) c("timeout")
  1573.                     }
  1574.                 }, s.timeout)
  1575.             }
  1576.             try {
  1577.                 k.send(s.data)
  1578.             } catch (e) {
  1579.                 E.handleError(s, k, null, e)
  1580.             }
  1581.             if (!s.async) c();
  1582.             function success() {
  1583.                 if (s.success) s.success(data, status);
  1584.                 if (s.global) E.event.trigger("ajaxSuccess", [k, s])
  1585.             }
  1586.             function complete() {
  1587.                 if (s.complete) s.complete(k, status);
  1588.                 if (s.global) E.event.trigger("ajaxComplete", [k, s]);
  1589.                 if (s.global && !--E.active) E.event.trigger("ajaxStop")
  1590.             }
  1591.             return k
  1592.         },
  1593.         handleError: function (s, a, b, e) {
  1594.             if (s.error) s.error(a, b, e);
  1595.             if (s.global) E.event.trigger("ajaxError", [a, s, e])
  1596.         },
  1597.         active: 0,
  1598.         httpSuccess: function (r) {
  1599.             try {
  1600.                 return !r.status && location.protocol == "file:" || (r.status >= 200 && r.status < 300) || r.status == 304 || r.status == 1223 || E.browser.safari && r.status == undefined
  1601.             } catch (e) {}
  1602.             return false
  1603.         },
  1604.         httpNotModified: function (a, c) {
  1605.             try {
  1606.                 var b = a.getResponseHeader("Last-Modified");
  1607.                 return a.status == 304 || b == E.lastModified[c] || E.browser.safari && a.status == undefined
  1608.             } catch (e) {}
  1609.             return false
  1610.         },
  1611.         httpData: function (r, b) {
  1612.             var c = r.getResponseHeader("content-type");
  1613.             var d = b == "xml" || !b && c && c.indexOf("xml") >= 0;
  1614.             var a = d ? r.responseXML : r.responseText;
  1615.             if (d && a.documentElement.tagName == "parsererror") throw "parsererror";
  1616.             if (b == "script") E.globalEval(a);
  1617.             if (b == "json") a = eval("(" + a + ")");
  1618.             return a
  1619.         },
  1620.         param: function (a) {
  1621.             var s = [];
  1622.             if (a.constructor == Array || a.jquery) E.each(a, function () {
  1623.                 s.push(encodeURIComponent(this.name) + "=" + encodeURIComponent(this.value))
  1624.             });
  1625.             else for (var j in a) if (a[j] && a[j].constructor == Array) E.each(a[j], function () {
  1626.                 s.push(encodeURIComponent(j) + "=" + encodeURIComponent(this))
  1627.             });
  1628.             else s.push(encodeURIComponent(j) + "=" + encodeURIComponent(a[j]));
  1629.             return s.join("&").replace(/%20/g, "+")
  1630.         }
  1631.     });
  1632.     E.fn.extend({
  1633.         show: function (c, b) {
  1634.             return c ? this.animate({
  1635.                 height: "show",
  1636.                 width: "show",
  1637.                 opacity: "show"
  1638.             }, c, b) : this.filter(":hidden").each(function () {
  1639.                 this.style.display = this.oldblock || "";
  1640.                 if (E.css(this, "display") == "none") {
  1641.                     var a = E("<" + this.tagName + " />").appendTo("body");
  1642.                     this.style.display = a.css("display");
  1643.                     if (this.style.display == "none") this.style.display = "block";
  1644.                     a.remove()
  1645.                 }
  1646.             }).end()
  1647.         },
  1648.         hide: function (b, a) {
  1649.             return b ? this.animate({
  1650.                 height: "hide",
  1651.                 width: "hide",
  1652.                 opacity: "hide"
  1653.             }, b, a) : this.filter(":visible").each(function () {
  1654.                 this.oldblock = this.oldblock || E.css(this, "display");
  1655.                 this.style.display = "none"
  1656.             }).end()
  1657.         },
  1658.         _toggle: E.fn.toggle,
  1659.         toggle: function (a, b) {
  1660.             return E.isFunction(a) && E.isFunction(b) ? this._toggle(a, b) : a ? this.animate({
  1661.                 height: "toggle",
  1662.                 width: "toggle",
  1663.                 opacity: "toggle"
  1664.             }, a, b) : this.each(function () {
  1665.                 E(this)[E(this).is(":hidden") ? "show" : "hide"]()
  1666.             })
  1667.         },
  1668.         slideDown: function (b, a) {
  1669.             return this.animate({
  1670.                 height: "show"
  1671.             }, b, a)
  1672.         },
  1673.         slideUp: function (b, a) {
  1674.             return this.animate({
  1675.                 height: "hide"
  1676.             }, b, a)
  1677.         },
  1678.         slideToggle: function (b, a) {
  1679.             return this.animate({
  1680.                 height: "toggle"
  1681.             }, b, a)
  1682.         },
  1683.         fadeIn: function (b, a) {
  1684.             return this.animate({
  1685.                 opacity: "show"
  1686.             }, b, a)
  1687.         },
  1688.         fadeOut: function (b, a) {
  1689.             return this.animate({
  1690.                 opacity: "hide"
  1691.             }, b, a)
  1692.         },
  1693.         fadeTo: function (c, a, b) {
  1694.             return this.animate({
  1695.                 opacity: a
  1696.             }, c, b)
  1697.         },
  1698.         animate: function (l, k, j, h) {
  1699.             var i = E.speed(k, j, h);
  1700.             return this[i.queue === false ? "each" : "queue"](function () {
  1701.                 if (this.nodeType != 1) return false;
  1702.                 var g = E.extend({}, i);
  1703.                 var f = E(this).is(":hidden"),
  1704.                     self = this;
  1705.                 for (var p in l) {
  1706.                     if (l[p] == "hide" && f || l[p] == "show" && !f) return E.isFunction(g.complete) && g.complete.apply(this);
  1707.                     if (p == "height" || p == "width") {
  1708.                         g.display = E.css(this, "display");
  1709.                         g.overflow = this.style.overflow
  1710.                     }
  1711.                 }
  1712.                 if (g.overflow != null) this.style.overflow = "hidden";
  1713.                 g.curAnim = E.extend({}, l);
  1714.                 E.each(l, function (c, a) {
  1715.                     var e = new E.fx(self, g, c);
  1716.                     if (/toggle|show|hide/.test(a)) e[a == "toggle" ? f ? "show" : "hide" : a](l);
  1717.                     else {
  1718.                         var b = a.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),
  1719.                             start = e.cur(true) || 0;
  1720.                         if (b) {
  1721.                             var d = parseFloat(b[2]),
  1722.                                 unit = b[3] || "px";
  1723.                             if (unit != "px") {
  1724.                                 self.style[c] = (d || 1) + unit;
  1725.                                 start = ((d || 1) / e.cur(true)) * start;
  1726.                                 self.style[c] = start + unit
  1727.                             }
  1728.                             if (b[1]) d = ((b[1] == "-=" ? -1 : 1) * d) + start;
  1729.                             e.custom(start, d, unit)
  1730.                         } else e.custom(start, a, "")
  1731.                     }
  1732.                 });
  1733.                 return true
  1734.             })
  1735.         },
  1736.         queue: function (a, b) {
  1737.             if (E.isFunction(a) || (a && a.constructor == Array)) {
  1738.                 b = a;
  1739.                 a = "fx"
  1740.             }
  1741.             if (!a || (typeof a == "string" && !b)) return A(this[0], a);
  1742.             return this.each(function () {
  1743.                 if (b.constructor == Array) A(this, a, b);
  1744.                 else {
  1745.                     A(this, a).push(b);
  1746.                     if (A(this, a).length == 1) b.apply(this)
  1747.                 }
  1748.             })
  1749.         },
  1750.         stop: function (b, c) {
  1751.             var a = E.timers;
  1752.             if (b) this.queue([]);
  1753.             this.each(function () {
  1754.                 for (var i = a.length - 1; i >= 0; i--) if (a[i].elem == this) {
  1755.                     if (c) a[i](true);
  1756.                     a.splice(i, 1)
  1757.                 }
  1758.             });
  1759.             if (!c) this.dequeue();
  1760.             return this
  1761.         }
  1762.     });
  1763.     var A = function (b, c, a) {
  1764.             if (!b) return undefined;
  1765.             c = c || "fx";
  1766.             var q = E.data(b, c + "queue");
  1767.             if (!q || a) q = E.data(b, c + "queue", a ? E.makeArray(a) : []);
  1768.             return q
  1769.         };
  1770.     E.fn.dequeue = function (a) {
  1771.         a = a || "fx";
  1772.         return this.each(function () {
  1773.             var q = A(this, a);
  1774.             q.shift();
  1775.             if (q.length) q[0].apply(this)
  1776.         })
  1777.     };
  1778.     E.extend({
  1779.         speed: function (b, a, c) {
  1780.             var d = b && b.constructor == Object ? b : {
  1781.                 complete: c || !c && a || E.isFunction(b) && b,
  1782.                 duration: b,
  1783.                 easing: c && a || a && a.constructor != Function && a
  1784.             };
  1785.             d.duration = (d.duration && d.duration.constructor == Number ? d.duration : {
  1786.                 slow: 600,
  1787.                 fast: 200
  1788.             }[d.duration]) || 400;
  1789.             d.old = d.complete;
  1790.             d.complete = function () {
  1791.                 if (d.queue !== false) E(this).dequeue();
  1792.                 if (E.isFunction(d.old)) d.old.apply(this)
  1793.             };
  1794.             return d
  1795.         },
  1796.         easing: {
  1797.             linear: function (p, n, b, a) {
  1798.                 return b + a * p
  1799.             },
  1800.             swing: function (p, n, b, a) {
  1801.                 return ((-Math.cos(p * Math.PI) / 2) + 0.5) * a + b
  1802.             }
  1803.         },
  1804.         timers: [],
  1805.         timerId: null,
  1806.         fx: function (b, c, a) {
  1807.             this.options = c;
  1808.             this.elem = b;
  1809.             this.prop = a;
  1810.             if (!c.orig) c.orig = {}
  1811.         }
  1812.     });
  1813.     E.fx.prototype = {
  1814.         update: function () {
  1815.             if (this.options.step) this.options.step.apply(this.elem, [this.now, this]);
  1816.             (E.fx.step[this.prop] || E.fx.step._default)(this);
  1817.             if (this.prop == "height" || this.prop == "width") this.elem.style.display = "block"
  1818.         },
  1819.         cur: function (a) {
  1820.             if (this.elem[this.prop] != null && this.elem.style[this.prop] == null) return this.elem[this.prop];
  1821.             var r = parseFloat(E.css(this.elem, this.prop, a));
  1822.             return r && r > -10000 ? r : parseFloat(E.curCSS(this.elem, this.prop)) || 0
  1823.         },
  1824.         custom: function (c, b, d) {
  1825.             this.startTime = (new Date()).getTime();
  1826.             this.start = c;
  1827.             this.end = b;
  1828.             this.unit = d || this.unit || "px";
  1829.             this.now = this.start;
  1830.             this.pos = this.state = 0;
  1831.             this.update();
  1832.             var e = this;
  1833.             function t(a) {
  1834.                 return e.step(a)
  1835.             }
  1836.             t.elem = this.elem;
  1837.             E.timers.push(t);
  1838.             if (E.timerId == null) {
  1839.                 E.timerId = setInterval(function () {
  1840.                     var a = E.timers;
  1841.                     for (var i = 0; i < a.length; i++) if (!a[i]()) a.splice(i--, 1);
  1842.                     if (!a.length) {
  1843.                         clearInterval(E.timerId);
  1844.                         E.timerId = null
  1845.                     }
  1846.                 }, 13)
  1847.             }
  1848.         },
  1849.         show: function () {
  1850.             this.options.orig[this.prop] = E.attr(this.elem.style, this.prop);
  1851.             this.options.show = true;
  1852.             this.custom(0, this.cur());
  1853.             if (this.prop == "width" || this.prop == "height") this.elem.style[this.prop] = "1px";
  1854.             E(this.elem).show()
  1855.         },
  1856.         hide: function () {
  1857.             this.options.orig[this.prop] = E.attr(this.elem.style, this.prop);
  1858.             this.options.hide = true;
  1859.             this.custom(this.cur(), 0)
  1860.         },
  1861.         step: function (a) {
  1862.             var t = (new Date()).getTime();
  1863.             if (a || t > this.options.duration + this.startTime) {
  1864.                 this.now = this.end;
  1865.                 this.pos = this.state = 1;
  1866.                 this.update();
  1867.                 this.options.curAnim[this.prop] = true;
  1868.                 var b = true;
  1869.                 for (var i in this.options.curAnim) if (this.options.curAnim[i] !== true) b = false;
  1870.                 if (b) {
  1871.                     if (this.options.display != null) {
  1872.                         this.elem.style.overflow = this.options.overflow;
  1873.                         this.elem.style.display = this.options.display;
  1874.                         if (E.css(this.elem, "display") == "none") this.elem.style.display = "block"
  1875.                     }
  1876.                     if (this.options.hide) this.elem.style.display = "none";
  1877.                     if (this.options.hide || this.options.show) for (var p in this.options.curAnim) E.attr(this.elem.style, p, this.options.orig[p])
  1878.                 }
  1879.                 if (b && E.isFunction(this.options.complete)) this.options.complete.apply(this.elem);
  1880.                 return false
  1881.             } else {
  1882.                 var n = t - this.startTime;
  1883.                 this.state = n / this.options.duration;
  1884.                 this.pos = E.easing[this.options.easing || (E.easing.swing ? "swing" : "linear")](this.state, n, 0, 1, this.options.duration);
  1885.                 this.now = this.start + ((this.end - this.start) * this.pos);
  1886.                 this.update()
  1887.             }
  1888.             return true
  1889.         }
  1890.     };
  1891.     E.fx.step = {
  1892.         scrollLeft: function (a) {
  1893.             a.elem.scrollLeft = a.now
  1894.         },
  1895.         scrollTop: function (a) {
  1896.             a.elem.scrollTop = a.now
  1897.         },
  1898.         opacity: function (a) {
  1899.             E.attr(a.elem.style, "opacity", a.now)
  1900.         },
  1901.         _default: function (a) {
  1902.             a.elem.style[a.prop] = a.now + a.unit
  1903.         }
  1904.     };
  1905.     E.fn.offset = function () {
  1906.         var b = 0,
  1907.             top = 0,
  1908.             elem = this[0],
  1909.             results;
  1910.         if (elem) with(E.browser) {
  1911.             var d = elem.parentNode,
  1912.                 offsetChild = elem,
  1913.                 offsetParent = elem.offsetParent,
  1914.                 doc = elem.ownerDocument,
  1915.                 safari2 = safari && parseInt(version) < 522 && !/adobeair/i.test(v),
  1916.                 fixed = E.css(elem, "position") == "fixed";
  1917.             if (elem.getBoundingClientRect) {
  1918.                 var c = elem.getBoundingClientRect();
  1919.                 add(c.left + Math.max(doc.documentElement.scrollLeft, doc.body.scrollLeft), c.top + Math.max(doc.documentElement.scrollTop, doc.body.scrollTop));
  1920.                 add(-doc.documentElement.clientLeft, -doc.documentElement.clientTop)
  1921.             } else {
  1922.                 add(elem.offsetLeft, elem.offsetTop);
  1923.                 while (offsetParent) {
  1924.                     add(offsetParent.offsetLeft, offsetParent.offsetTop);
  1925.                     if (mozilla && !/^t(able|d|h)$/i.test(offsetParent.tagName) || safari && !safari2) border(offsetParent);
  1926.                     if (!fixed && E.css(offsetParent, "position") == "fixed") fixed = true;
  1927.                     offsetChild = /^body$/i.test(offsetParent.tagName) ? offsetChild : offsetParent;
  1928.                     offsetParent = offsetParent.offsetParent
  1929.                 }
  1930.                 while (d && d.tagName && !/^body|html$/i.test(d.tagName)) {
  1931.                     if (!/^inline|table.*$/i.test(E.css(d, "display"))) add(-d.scrollLeft, -d.scrollTop);
  1932.                     if (mozilla && E.css(d, "overflow") != "visible") border(d);
  1933.                     d = d.parentNode
  1934.                 }
  1935.                 if ((safari2 && (fixed || E.css(offsetChild, "position") == "absolute")) || (mozilla && E.css(offsetChild, "position") != "absolute")) add(-doc.body.offsetLeft, -doc.body.offsetTop);
  1936.                 if (fixed) add(Math.max(doc.documentElement.scrollLeft, doc.body.scrollLeft), Math.max(doc.documentElement.scrollTop, doc.body.scrollTop))
  1937.             }
  1938.             results = {
  1939.                 top: top,
  1940.                 left: b
  1941.             }
  1942.         }
  1943.         function border(a) {
  1944.             add(E.curCSS(a, "borderLeftWidth", true), E.curCSS(a, "borderTopWidth", true))
  1945.         }
  1946.         function add(l, t) {
  1947.             b += parseInt(l) || 0;
  1948.             top += parseInt(t) || 0
  1949.         }
  1950.         return results
  1951.     }
  1952. })();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement