Skip to content

Instantly share code, notes, and snippets.

@zgramana
Created January 24, 2012 14:00
Show Gist options
  • Save zgramana/1670294 to your computer and use it in GitHub Desktop.
Save zgramana/1670294 to your computer and use it in GitHub Desktop.
hashalbum widget
/*!
* jQuery JavaScript Library v1.4.1
* http://jquery.com/
*
*
* Includes Sizzle.js
* http://sizzlejs.com/
* Copyright 2010, The Dojo Foundation
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to
* the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
* LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
* OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*
* Date: Mon Jan 25 19:43:33 2010 -0500
*/
(function (z, v) {
function la() { if (!c.isReady) { try { r.documentElement.doScroll("left") } catch (a) { setTimeout(la, 1); return } c.ready() } } function Ma(a, b) { b.src ? c.ajax({ url: b.src, async: false, dataType: "script" }) : c.globalEval(b.text || b.textContent || b.innerHTML || ""); b.parentNode && b.parentNode.removeChild(b) } function X(a, b, d, f, e, i) {
var j = a.length; if (typeof b === "object") { for (var n in b) X(a, n, b[n], f, e, d); return a } if (d !== v) { f = !i && f && c.isFunction(d); for (n = 0; n < j; n++) e(a[n], b, f ? d.call(a[n], n, e(a[n], b)) : d, i); return a } return j ?
e(a[0], b) : null
} function J() { return (new Date).getTime() } function Y() { return false } function Z() { return true } function ma(a, b, d) { d[0].type = a; return c.event.handle.apply(b, d) } function na(a) {
var b, d = [], f = [], e = arguments, i, j, n, o, m, s, x = c.extend({}, c.data(this, "events").live); if (!(a.button && a.type === "click")) {
for (o in x) { j = x[o]; if (j.live === a.type || j.altLive && c.inArray(a.type, j.altLive) > -1) { i = j.data; i.beforeFilter && i.beforeFilter[a.type] && !i.beforeFilter[a.type](a) || f.push(j.selector) } else delete x[o] } i = c(a.target).closest(f,
a.currentTarget); m = 0; for (s = i.length; m < s; m++) for (o in x) { j = x[o]; n = i[m].elem; f = null; if (i[m].selector === j.selector) { if (j.live === "mouseenter" || j.live === "mouseleave") f = c(a.relatedTarget).closest(j.selector)[0]; if (!f || f !== n) d.push({ elem: n, fn: j }) } } m = 0; for (s = d.length; m < s; m++) { i = d[m]; a.currentTarget = i.elem; a.data = i.fn.data; if (i.fn.apply(i.elem, e) === false) { b = false; break } } return b
}
} function oa(a, b) { return "live." + (a ? a + "." : "") + b.replace(/\./g, "`").replace(/ /g, "&") } function pa(a) {
return !a || !a.parentNode || a.parentNode.nodeType ===
11
} function qa(a, b) { var d = 0; b.each(function () { if (this.nodeName === (a[d] && a[d].nodeName)) { var f = c.data(a[d++]), e = c.data(this, f); if (f = f && f.events) { delete e.handle; e.events = {}; for (var i in f) for (var j in f[i]) c.event.add(this, i, f[i][j], f[i][j].data) } } }) } function ra(a, b, d) {
var f, e, i; if (a.length === 1 && typeof a[0] === "string" && a[0].length < 512 && a[0].indexOf("<option") < 0 && (c.support.checkClone || !sa.test(a[0]))) { e = true; if (i = c.fragments[a[0]]) if (i !== 1) f = i } if (!f) {
b = b && b[0] ? b[0].ownerDocument || b[0] : r; f = b.createDocumentFragment();
c.clean(a, b, f, d)
} if (e) c.fragments[a[0]] = i ? f : 1; return { fragment: f, cacheable: e}
} function K(a, b) { var d = {}; c.each(ta.concat.apply([], ta.slice(0, b)), function () { d[this] = a }); return d } function ua(a) { return "scrollTo" in a && a.document ? a : a.nodeType === 9 ? a.defaultView || a.parentWindow : false } var c = function (a, b) { return new c.fn.init(a, b) }, Na = z.jQuery, Oa = z.$, r = z.document, S, Pa = /^[^<]*(<[\w\W]+>)[^>]*$|^#([\w-]+)$/, Qa = /^.[^:#\[\.,]*$/, Ra = /\S/, Sa = /^(\s|\u00A0)+|(\s|\u00A0)+$/g, Ta = /^<(\w+)\s*\/?>(?:<\/\1>)?$/, O = navigator.userAgent,
va = false, P = [], L, $ = Object.prototype.toString, aa = Object.prototype.hasOwnProperty, ba = Array.prototype.push, Q = Array.prototype.slice, wa = Array.prototype.indexOf; c.fn = c.prototype = { init: function (a, b) {
var d, f; if (!a) return this; if (a.nodeType) { this.context = this[0] = a; this.length = 1; return this } if (typeof a === "string") if ((d = Pa.exec(a)) && (d[1] || !b)) if (d[1]) {
f = b ? b.ownerDocument || b : r; if (a = Ta.exec(a)) if (c.isPlainObject(b)) { a = [r.createElement(a[1])]; c.fn.attr.call(a, b, true) } else a = [f.createElement(a[1])]; else {
a = ra([d[1]],
[f]); a = (a.cacheable ? a.fragment.cloneNode(true) : a.fragment).childNodes
}
} else { if (b = r.getElementById(d[2])) { if (b.id !== d[2]) return S.find(a); this.length = 1; this[0] = b } this.context = r; this.selector = a; return this } else if (!b && /^\w+$/.test(a)) { this.selector = a; this.context = r; a = r.getElementsByTagName(a) } else return !b || b.jquery ? (b || S).find(a) : c(b).find(a); else if (c.isFunction(a)) return S.ready(a); if (a.selector !== v) { this.selector = a.selector; this.context = a.context } return c.isArray(a) ? this.setArray(a) : c.makeArray(a,
this)
}, selector: "", jquery: "1.4.1", length: 0, size: function () { return this.length }, toArray: function () { return Q.call(this, 0) }, get: function (a) { return a == null ? this.toArray() : a < 0 ? this.slice(a)[0] : this[a] }, pushStack: function (a, b, d) { a = c(a || null); a.prevObject = this; a.context = this.context; if (b === "find") a.selector = this.selector + (this.selector ? " " : "") + d; else if (b) a.selector = this.selector + "." + b + "(" + d + ")"; return a }, setArray: function (a) { this.length = 0; ba.apply(this, a); return this }, each: function (a, b) {
return c.each(this,
a, b)
}, ready: function (a) { c.bindReady(); if (c.isReady) a.call(r, c); else P && P.push(a); return this }, eq: function (a) { return a === -1 ? this.slice(a) : this.slice(a, +a + 1) }, first: function () { return this.eq(0) }, last: function () { return this.eq(-1) }, slice: function () { return this.pushStack(Q.apply(this, arguments), "slice", Q.call(arguments).join(",")) }, map: function (a) { return this.pushStack(c.map(this, function (b, d) { return a.call(b, d, b) })) }, end: function () { return this.prevObject || c(null) }, push: ba, sort: [].sort, splice: [].splice
};
c.fn.init.prototype = c.fn; c.extend = c.fn.extend = function () { var a = arguments[0] || {}, b = 1, d = arguments.length, f = false, e, i, j, n; if (typeof a === "boolean") { f = a; a = arguments[1] || {}; b = 2 } if (typeof a !== "object" && !c.isFunction(a)) a = {}; if (d === b) { a = this; --b } for (; b < d; b++) if ((e = arguments[b]) != null) for (i in e) { j = a[i]; n = e[i]; if (a !== n) if (f && n && (c.isPlainObject(n) || c.isArray(n))) { j = j && (c.isPlainObject(j) || c.isArray(j)) ? j : c.isArray(n) ? [] : {}; a[i] = c.extend(f, j, n) } else if (n !== v) a[i] = n } return a }; c.extend({ noConflict: function (a) {
z.$ =
Oa; if (a) z.jQuery = Na; return c
}, isReady: false, ready: function () { if (!c.isReady) { if (!r.body) return setTimeout(c.ready, 13); c.isReady = true; if (P) { for (var a, b = 0; a = P[b++]; ) a.call(r, c); P = null } c.fn.triggerHandler && c(r).triggerHandler("ready") } }, bindReady: function () {
if (!va) {
va = true; if (r.readyState === "complete") return c.ready(); if (r.addEventListener) { r.addEventListener("DOMContentLoaded", L, false); z.addEventListener("load", c.ready, false) } else if (r.attachEvent) {
r.attachEvent("onreadystatechange", L); z.attachEvent("onload",
c.ready); var a = false; try { a = z.frameElement == null } catch (b) { } r.documentElement.doScroll && a && la()
}
}
}, isFunction: function (a) { return $.call(a) === "[object Function]" }, isArray: function (a) { return $.call(a) === "[object Array]" }, isPlainObject: function (a) { if (!a || $.call(a) !== "[object Object]" || a.nodeType || a.setInterval) return false; if (a.constructor && !aa.call(a, "constructor") && !aa.call(a.constructor.prototype, "isPrototypeOf")) return false; var b; for (b in a); return b === v || aa.call(a, b) }, isEmptyObject: function (a) {
for (var b in a) return false;
return true
}, error: function (a) { throw a; }, parseJSON: function (a) { if (typeof a !== "string" || !a) return null; if (/^[\],:{}\s]*$/.test(a.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, "@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, "]").replace(/(?:^|:|,)(?:\s*\[)+/g, ""))) return z.JSON && z.JSON.parse ? z.JSON.parse(a) : (new Function("return " + a))(); else c.error("Invalid JSON: " + a) }, noop: function () { }, globalEval: function (a) {
if (a && Ra.test(a)) {
var b = r.getElementsByTagName("head")[0] ||
r.documentElement, d = r.createElement("script"); d.type = "text/javascript"; if (c.support.scriptEval) d.appendChild(r.createTextNode(a)); else d.text = a; b.insertBefore(d, b.firstChild); b.removeChild(d)
}
}, nodeName: function (a, b) { return a.nodeName && a.nodeName.toUpperCase() === b.toUpperCase() }, each: function (a, b, d) {
var f, e = 0, i = a.length, j = i === v || c.isFunction(a); if (d) if (j) for (f in a) { if (b.apply(a[f], d) === false) break } else for (; e < i; ) { if (b.apply(a[e++], d) === false) break } else if (j) for (f in a) { if (b.call(a[f], f, a[f]) === false) break } else for (d =
a[0]; e < i && b.call(d, e, d) !== false; d = a[++e]); return a
}, trim: function (a) { return (a || "").replace(Sa, "") }, makeArray: function (a, b) { b = b || []; if (a != null) a.length == null || typeof a === "string" || c.isFunction(a) || typeof a !== "function" && a.setInterval ? ba.call(b, a) : c.merge(b, a); return b }, inArray: function (a, b) { if (b.indexOf) return b.indexOf(a); for (var d = 0, f = b.length; d < f; d++) if (b[d] === a) return d; return -1 }, merge: function (a, b) {
var d = a.length, f = 0; if (typeof b.length === "number") for (var e = b.length; f < e; f++) a[d++] = b[f]; else for (; b[f] !==
v; ) a[d++] = b[f++]; a.length = d; return a
}, grep: function (a, b, d) { for (var f = [], e = 0, i = a.length; e < i; e++) !d !== !b(a[e], e) && f.push(a[e]); return f }, map: function (a, b, d) { for (var f = [], e, i = 0, j = a.length; i < j; i++) { e = b(a[i], i, d); if (e != null) f[f.length] = e } return f.concat.apply([], f) }, guid: 1, proxy: function (a, b, d) { if (arguments.length === 2) if (typeof b === "string") { d = a; a = d[b]; b = v } else if (b && !c.isFunction(b)) { d = b; b = v } if (!b && a) b = function () { return a.apply(d || this, arguments) }; if (a) b.guid = a.guid = a.guid || b.guid || c.guid++; return b },
uaMatch: function (a) { a = a.toLowerCase(); a = /(webkit)[ \/]([\w.]+)/.exec(a) || /(opera)(?:.*version)?[ \/]([\w.]+)/.exec(a) || /(msie) ([\w.]+)/.exec(a) || !/compatible/.test(a) && /(mozilla)(?:.*? rv:([\w.]+))?/.exec(a) || []; return { browser: a[1] || "", version: a[2] || "0"} }, browser: {}
}); O = c.uaMatch(O); if (O.browser) { c.browser[O.browser] = true; c.browser.version = O.version } if (c.browser.webkit) c.browser.safari = true; if (wa) c.inArray = function (a, b) { return wa.call(b, a) }; S = c(r); if (r.addEventListener) L = function () {
r.removeEventListener("DOMContentLoaded",
L, false); c.ready()
}; else if (r.attachEvent) L = function () { if (r.readyState === "complete") { r.detachEvent("onreadystatechange", L); c.ready() } }; (function () {
c.support = {}; var a = r.documentElement, b = r.createElement("script"), d = r.createElement("div"), f = "script" + J(); d.style.display = "none"; d.innerHTML = " <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>"; var e = d.getElementsByTagName("*"), i = d.getElementsByTagName("a")[0]; if (!(!e || !e.length || !i)) {
c.support =
{ leadingWhitespace: d.firstChild.nodeType === 3, tbody: !d.getElementsByTagName("tbody").length, htmlSerialize: !!d.getElementsByTagName("link").length, style: /red/.test(i.getAttribute("style")), hrefNormalized: i.getAttribute("href") === "/a", opacity: /^0.55$/.test(i.style.opacity), cssFloat: !!i.style.cssFloat, checkOn: d.getElementsByTagName("input")[0].value === "on", optSelected: r.createElement("select").appendChild(r.createElement("option")).selected, checkClone: false, scriptEval: false, noCloneEvent: true, boxModel: null };
b.type = "text/javascript"; try { b.appendChild(r.createTextNode("window." + f + "=1;")) } catch (j) { } a.insertBefore(b, a.firstChild); if (z[f]) { c.support.scriptEval = true; delete z[f] } a.removeChild(b); if (d.attachEvent && d.fireEvent) { d.attachEvent("onclick", function n() { c.support.noCloneEvent = false; d.detachEvent("onclick", n) }); d.cloneNode(true).fireEvent("onclick") } d = r.createElement("div"); d.innerHTML = "<input type='radio' name='radiotest' checked='checked'/>"; a = r.createDocumentFragment(); a.appendChild(d.firstChild);
c.support.checkClone = a.cloneNode(true).cloneNode(true).lastChild.checked; c(function () { var n = r.createElement("div"); n.style.width = n.style.paddingLeft = "1px"; r.body.appendChild(n); c.boxModel = c.support.boxModel = n.offsetWidth === 2; r.body.removeChild(n).style.display = "none" }); a = function (n) { var o = r.createElement("div"); n = "on" + n; var m = n in o; if (!m) { o.setAttribute(n, "return;"); m = typeof o[n] === "function" } return m }; c.support.submitBubbles = a("submit"); c.support.changeBubbles = a("change"); a = b = d = e = i = null
}
})(); c.props =
{ "for": "htmlFor", "class": "className", readonly: "readOnly", maxlength: "maxLength", cellspacing: "cellSpacing", rowspan: "rowSpan", colspan: "colSpan", tabindex: "tabIndex", usemap: "useMap", frameborder: "frameBorder" }; var G = "jQuery" + J(), Ua = 0, xa = {}, Va = {}; c.extend({ cache: {}, expando: G, noData: { embed: true, object: true, applet: true }, data: function (a, b, d) {
if (!(a.nodeName && c.noData[a.nodeName.toLowerCase()])) {
a = a == z ? xa : a; var f = a[G], e = c.cache; if (!b && !f) return null; f || (f = ++Ua); if (typeof b === "object") {
a[G] = f; e = e[f] = c.extend(true,
{}, b)
} else e = e[f] ? e[f] : typeof d === "undefined" ? Va : (e[f] = {}); if (d !== v) { a[G] = f; e[b] = d } return typeof b === "string" ? e[b] : e
}
}, removeData: function (a, b) { if (!(a.nodeName && c.noData[a.nodeName.toLowerCase()])) { a = a == z ? xa : a; var d = a[G], f = c.cache, e = f[d]; if (b) { if (e) { delete e[b]; c.isEmptyObject(e) && c.removeData(a) } } else { try { delete a[G] } catch (i) { a.removeAttribute && a.removeAttribute(G) } delete f[d] } } }
}); c.fn.extend({ data: function (a, b) {
if (typeof a === "undefined" && this.length) return c.data(this[0]); else if (typeof a === "object") return this.each(function () {
c.data(this,
a)
}); var d = a.split("."); d[1] = d[1] ? "." + d[1] : ""; if (b === v) { var f = this.triggerHandler("getData" + d[1] + "!", [d[0]]); if (f === v && this.length) f = c.data(this[0], a); return f === v && d[1] ? this.data(d[0]) : f } else return this.trigger("setData" + d[1] + "!", [d[0], b]).each(function () { c.data(this, a, b) })
}, removeData: function (a) { return this.each(function () { c.removeData(this, a) }) }
}); c.extend({ queue: function (a, b, d) {
if (a) {
b = (b || "fx") + "queue"; var f = c.data(a, b); if (!d) return f || []; if (!f || c.isArray(d)) f = c.data(a, b, c.makeArray(d)); else f.push(d);
return f
}
}, dequeue: function (a, b) { b = b || "fx"; var d = c.queue(a, b), f = d.shift(); if (f === "inprogress") f = d.shift(); if (f) { b === "fx" && d.unshift("inprogress"); f.call(a, function () { c.dequeue(a, b) }) } }
}); c.fn.extend({ queue: function (a, b) { if (typeof a !== "string") { b = a; a = "fx" } if (b === v) return c.queue(this[0], a); return this.each(function () { var d = c.queue(this, a, b); a === "fx" && d[0] !== "inprogress" && c.dequeue(this, a) }) }, dequeue: function (a) { return this.each(function () { c.dequeue(this, a) }) }, delay: function (a, b) {
a = c.fx ? c.fx.speeds[a] ||
a : a; b = b || "fx"; return this.queue(b, function () { var d = this; setTimeout(function () { c.dequeue(d, b) }, a) })
}, clearQueue: function (a) { return this.queue(a || "fx", []) }
}); var ya = /[\n\t]/g, ca = /\s+/, Wa = /\r/g, Xa = /href|src|style/, Ya = /(button|input)/i, Za = /(button|input|object|select|textarea)/i, $a = /^(a|area)$/i, za = /radio|checkbox/; c.fn.extend({ attr: function (a, b) { return X(this, a, b, true, c.attr) }, removeAttr: function (a) { return this.each(function () { c.attr(this, a, ""); this.nodeType === 1 && this.removeAttribute(a) }) }, addClass: function (a) {
if (c.isFunction(a)) return this.each(function (o) {
var m =
c(this); m.addClass(a.call(this, o, m.attr("class")))
}); if (a && typeof a === "string") for (var b = (a || "").split(ca), d = 0, f = this.length; d < f; d++) { var e = this[d]; if (e.nodeType === 1) if (e.className) for (var i = " " + e.className + " ", j = 0, n = b.length; j < n; j++) { if (i.indexOf(" " + b[j] + " ") < 0) e.className += " " + b[j] } else e.className = a } return this
}, removeClass: function (a) {
if (c.isFunction(a)) return this.each(function (o) { var m = c(this); m.removeClass(a.call(this, o, m.attr("class"))) }); if (a && typeof a === "string" || a === v) for (var b = (a || "").split(ca),
d = 0, f = this.length; d < f; d++) { var e = this[d]; if (e.nodeType === 1 && e.className) if (a) { for (var i = (" " + e.className + " ").replace(ya, " "), j = 0, n = b.length; j < n; j++) i = i.replace(" " + b[j] + " ", " "); e.className = i.substring(1, i.length - 1) } else e.className = "" } return this
}, toggleClass: function (a, b) {
var d = typeof a, f = typeof b === "boolean"; if (c.isFunction(a)) return this.each(function (e) { var i = c(this); i.toggleClass(a.call(this, e, i.attr("class"), b), b) }); return this.each(function () {
if (d === "string") for (var e, i = 0, j = c(this), n = b, o =
a.split(ca); e = o[i++]; ) { n = f ? n : !j.hasClass(e); j[n ? "addClass" : "removeClass"](e) } else if (d === "undefined" || d === "boolean") { this.className && c.data(this, "__className__", this.className); this.className = this.className || a === false ? "" : c.data(this, "__className__") || "" }
})
}, hasClass: function (a) { a = " " + a + " "; for (var b = 0, d = this.length; b < d; b++) if ((" " + this[b].className + " ").replace(ya, " ").indexOf(a) > -1) return true; return false }, val: function (a) {
if (a === v) {
var b = this[0]; if (b) {
if (c.nodeName(b, "option")) return (b.attributes.value ||
{}).specified ? b.value : b.text; if (c.nodeName(b, "select")) { var d = b.selectedIndex, f = [], e = b.options; b = b.type === "select-one"; if (d < 0) return null; var i = b ? d : 0; for (d = b ? d + 1 : e.length; i < d; i++) { var j = e[i]; if (j.selected) { a = c(j).val(); if (b) return a; f.push(a) } } return f } if (za.test(b.type) && !c.support.checkOn) return b.getAttribute("value") === null ? "on" : b.value; return (b.value || "").replace(Wa, "")
} return v
} var n = c.isFunction(a); return this.each(function (o) {
var m = c(this), s = a; if (this.nodeType === 1) {
if (n) s = a.call(this, o, m.val());
if (typeof s === "number") s += ""; if (c.isArray(s) && za.test(this.type)) this.checked = c.inArray(m.val(), s) >= 0; else if (c.nodeName(this, "select")) { var x = c.makeArray(s); c("option", this).each(function () { this.selected = c.inArray(c(this).val(), x) >= 0 }); if (!x.length) this.selectedIndex = -1 } else this.value = s
}
})
}
}); c.extend({ attrFn: { val: true, css: true, html: true, text: true, data: true, width: true, height: true, offset: true }, attr: function (a, b, d, f) {
if (!a || a.nodeType === 3 || a.nodeType === 8) return v; if (f && b in c.attrFn) return c(a)[b](d);
f = a.nodeType !== 1 || !c.isXMLDoc(a); var e = d !== v; b = f && c.props[b] || b; if (a.nodeType === 1) {
var i = Xa.test(b); if (b in a && f && !i) { if (e) { b === "type" && Ya.test(a.nodeName) && a.parentNode && c.error("type property can't be changed"); a[b] = d } if (c.nodeName(a, "form") && a.getAttributeNode(b)) return a.getAttributeNode(b).nodeValue; if (b === "tabIndex") return (b = a.getAttributeNode("tabIndex")) && b.specified ? b.value : Za.test(a.nodeName) || $a.test(a.nodeName) && a.href ? 0 : v; return a[b] } if (!c.support.style && f && b === "style") {
if (e) a.style.cssText =
"" + d; return a.style.cssText
} e && a.setAttribute(b, "" + d); a = !c.support.hrefNormalized && f && i ? a.getAttribute(b, 2) : a.getAttribute(b); return a === null ? v : a
} return c.style(a, b, d)
}
}); var ab = function (a) { return a.replace(/[^\w\s\.\|`]/g, function (b) { return "\\" + b }) }; c.event = { add: function (a, b, d, f) {
if (!(a.nodeType === 3 || a.nodeType === 8)) {
if (a.setInterval && a !== z && !a.frameElement) a = z; if (!d.guid) d.guid = c.guid++; if (f !== v) { d = c.proxy(d); d.data = f } var e = c.data(a, "events") || c.data(a, "events", {}), i = c.data(a, "handle"), j; if (!i) {
j =
function () { return typeof c !== "undefined" && !c.event.triggered ? c.event.handle.apply(j.elem, arguments) : v }; i = c.data(a, "handle", j)
} if (i) {
i.elem = a; b = b.split(/\s+/); for (var n, o = 0; n = b[o++]; ) {
var m = n.split("."); n = m.shift(); if (o > 1) { d = c.proxy(d); if (f !== v) d.data = f } d.type = m.slice(0).sort().join("."); var s = e[n], x = this.special[n] || {}; if (!s) { s = e[n] = {}; if (!x.setup || x.setup.call(a, f, m, d) === false) if (a.addEventListener) a.addEventListener(n, i, false); else a.attachEvent && a.attachEvent("on" + n, i) } if (x.add) if ((m = x.add.call(a,
d, f, m, s)) && c.isFunction(m)) { m.guid = m.guid || d.guid; m.data = m.data || d.data; m.type = m.type || d.type; d = m } s[d.guid] = d; this.global[n] = true
} a = null
}
}
}, global: {}, remove: function (a, b, d) {
if (!(a.nodeType === 3 || a.nodeType === 8)) {
var f = c.data(a, "events"), e, i, j; if (f) {
if (b === v || typeof b === "string" && b.charAt(0) === ".") for (i in f) this.remove(a, i + (b || "")); else {
if (b.type) { d = b.handler; b = b.type } b = b.split(/\s+/); for (var n = 0; i = b[n++]; ) {
var o = i.split("."); i = o.shift(); var m = !o.length, s = c.map(o.slice(0).sort(), ab); s = new RegExp("(^|\\.)" +
s.join("\\.(?:.*\\.)?") + "(\\.|$)"); var x = this.special[i] || {}; if (f[i]) { if (d) { j = f[i][d.guid]; delete f[i][d.guid] } else for (var A in f[i]) if (m || s.test(f[i][A].type)) delete f[i][A]; x.remove && x.remove.call(a, o, j); for (e in f[i]) break; if (!e) { if (!x.teardown || x.teardown.call(a, o) === false) if (a.removeEventListener) a.removeEventListener(i, c.data(a, "handle"), false); else a.detachEvent && a.detachEvent("on" + i, c.data(a, "handle")); e = null; delete f[i] } }
}
} for (e in f) break; if (!e) {
if (A = c.data(a, "handle")) A.elem = null; c.removeData(a,
"events"); c.removeData(a, "handle")
}
}
}
}, trigger: function (a, b, d, f) {
var e = a.type || a; if (!f) { a = typeof a === "object" ? a[G] ? a : c.extend(c.Event(e), a) : c.Event(e); if (e.indexOf("!") >= 0) { a.type = e = e.slice(0, -1); a.exclusive = true } if (!d) { a.stopPropagation(); this.global[e] && c.each(c.cache, function () { this.events && this.events[e] && c.event.trigger(a, b, this.handle.elem) }) } if (!d || d.nodeType === 3 || d.nodeType === 8) return v; a.result = v; a.target = d; b = c.makeArray(b); b.unshift(a) } a.currentTarget = d; (f = c.data(d, "handle")) && f.apply(d,
b); f = d.parentNode || d.ownerDocument; try { if (!(d && d.nodeName && c.noData[d.nodeName.toLowerCase()])) if (d["on" + e] && d["on" + e].apply(d, b) === false) a.result = false } catch (i) { } if (!a.isPropagationStopped() && f) c.event.trigger(a, b, f, true); else if (!a.isDefaultPrevented()) { d = a.target; var j; if (!(c.nodeName(d, "a") && e === "click") && !(d && d.nodeName && c.noData[d.nodeName.toLowerCase()])) { try { if (d[e]) { if (j = d["on" + e]) d["on" + e] = null; this.triggered = true; d[e]() } } catch (n) { } if (j) d["on" + e] = j; this.triggered = false } }
}, handle: function (a) {
var b,
d; a = arguments[0] = c.event.fix(a || z.event); a.currentTarget = this; d = a.type.split("."); a.type = d.shift(); b = !d.length && !a.exclusive; var f = new RegExp("(^|\\.)" + d.slice(0).sort().join("\\.(?:.*\\.)?") + "(\\.|$)"); d = (c.data(this, "events") || {})[a.type]; for (var e in d) { var i = d[e]; if (b || f.test(i.type)) { a.handler = i; a.data = i.data; i = i.apply(this, arguments); if (i !== v) { a.result = i; if (i === false) { a.preventDefault(); a.stopPropagation() } } if (a.isImmediatePropagationStopped()) break } } return a.result
}, props: "altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),
fix: function (a) {
if (a[G]) return a; var b = a; a = c.Event(b); for (var d = this.props.length, f; d; ) { f = this.props[--d]; a[f] = b[f] } if (!a.target) a.target = a.srcElement || r; if (a.target.nodeType === 3) a.target = a.target.parentNode; if (!a.relatedTarget && a.fromElement) a.relatedTarget = a.fromElement === a.target ? a.toElement : a.fromElement; if (a.pageX == null && a.clientX != null) {
b = r.documentElement; d = r.body; a.pageX = a.clientX + (b && b.scrollLeft || d && d.scrollLeft || 0) - (b && b.clientLeft || d && d.clientLeft || 0); a.pageY = a.clientY + (b && b.scrollTop ||
d && d.scrollTop || 0) - (b && b.clientTop || d && d.clientTop || 0)
} if (!a.which && (a.charCode || a.charCode === 0 ? a.charCode : a.keyCode)) a.which = a.charCode || a.keyCode; if (!a.metaKey && a.ctrlKey) a.metaKey = a.ctrlKey; if (!a.which && a.button !== v) a.which = a.button & 1 ? 1 : a.button & 2 ? 3 : a.button & 4 ? 2 : 0; return a
}, guid: 1E8, proxy: c.proxy, special: { ready: { setup: c.bindReady, teardown: c.noop }, live: { add: function (a, b) { c.extend(a, b || {}); a.guid += b.selector + b.live; b.liveProxy = a; c.event.add(this, b.live, na, b) }, remove: function (a) {
if (a.length) {
var b =
0, d = new RegExp("(^|\\.)" + a[0] + "(\\.|$)"); c.each(c.data(this, "events").live || {}, function () { d.test(this.type) && b++ }); b < 1 && c.event.remove(this, a[0], na)
}
}, special: {}
}, beforeunload: { setup: function (a, b, d) { if (this.setInterval) this.onbeforeunload = d; return false }, teardown: function (a, b) { if (this.onbeforeunload === b) this.onbeforeunload = null } }
}
}; c.Event = function (a) { if (!this.preventDefault) return new c.Event(a); if (a && a.type) { this.originalEvent = a; this.type = a.type } else this.type = a; this.timeStamp = J(); this[G] = true };
c.Event.prototype = { preventDefault: function () { this.isDefaultPrevented = Z; var a = this.originalEvent; if (a) { a.preventDefault && a.preventDefault(); a.returnValue = false } }, stopPropagation: function () { this.isPropagationStopped = Z; var a = this.originalEvent; if (a) { a.stopPropagation && a.stopPropagation(); a.cancelBubble = true } }, stopImmediatePropagation: function () { this.isImmediatePropagationStopped = Z; this.stopPropagation() }, isDefaultPrevented: Y, isPropagationStopped: Y, isImmediatePropagationStopped: Y }; var Aa = function (a) {
for (var b =
a.relatedTarget; b && b !== this; ) try { b = b.parentNode } catch (d) { break } if (b !== this) { a.type = a.data; c.event.handle.apply(this, arguments) }
}, Ba = function (a) { a.type = a.data; c.event.handle.apply(this, arguments) }; c.each({ mouseenter: "mouseover", mouseleave: "mouseout" }, function (a, b) { c.event.special[a] = { setup: function (d) { c.event.add(this, b, d && d.selector ? Ba : Aa, a) }, teardown: function (d) { c.event.remove(this, b, d && d.selector ? Ba : Aa) } } }); if (!c.support.submitBubbles) c.event.special.submit = { setup: function (a, b, d) {
if (this.nodeName.toLowerCase() !==
"form") { c.event.add(this, "click.specialSubmit." + d.guid, function (f) { var e = f.target, i = e.type; if ((i === "submit" || i === "image") && c(e).closest("form").length) return ma("submit", this, arguments) }); c.event.add(this, "keypress.specialSubmit." + d.guid, function (f) { var e = f.target, i = e.type; if ((i === "text" || i === "password") && c(e).closest("form").length && f.keyCode === 13) return ma("submit", this, arguments) }) } else return false
}, remove: function (a, b) {
c.event.remove(this, "click.specialSubmit" + (b ? "." + b.guid : "")); c.event.remove(this,
"keypress.specialSubmit" + (b ? "." + b.guid : ""))
}
}; if (!c.support.changeBubbles) {
var da = /textarea|input|select/i; function Ca(a) { var b = a.type, d = a.value; if (b === "radio" || b === "checkbox") d = a.checked; else if (b === "select-multiple") d = a.selectedIndex > -1 ? c.map(a.options, function (f) { return f.selected }).join("-") : ""; else if (a.nodeName.toLowerCase() === "select") d = a.selectedIndex; return d } function ea(a, b) {
var d = a.target, f, e; if (!(!da.test(d.nodeName) || d.readOnly)) {
f = c.data(d, "_change_data"); e = Ca(d); if (a.type !== "focusout" ||
d.type !== "radio") c.data(d, "_change_data", e); if (!(f === v || e === f)) if (f != null || e) { a.type = "change"; return c.event.trigger(a, b, d) }
}
} c.event.special.change = { filters: { focusout: ea, click: function (a) { var b = a.target, d = b.type; if (d === "radio" || d === "checkbox" || b.nodeName.toLowerCase() === "select") return ea.call(this, a) }, keydown: function (a) { var b = a.target, d = b.type; if (a.keyCode === 13 && b.nodeName.toLowerCase() !== "textarea" || a.keyCode === 32 && (d === "checkbox" || d === "radio") || d === "select-multiple") return ea.call(this, a) }, beforeactivate: function (a) {
a =
a.target; a.nodeName.toLowerCase() === "input" && a.type === "radio" && c.data(a, "_change_data", Ca(a))
}
}, setup: function (a, b, d) { for (var f in T) c.event.add(this, f + ".specialChange." + d.guid, T[f]); return da.test(this.nodeName) }, remove: function (a, b) { for (var d in T) c.event.remove(this, d + ".specialChange" + (b ? "." + b.guid : ""), T[d]); return da.test(this.nodeName) }
}; var T = c.event.special.change.filters
} r.addEventListener && c.each({ focus: "focusin", blur: "focusout" }, function (a, b) {
function d(f) {
f = c.event.fix(f); f.type = b; return c.event.handle.call(this,
f)
} c.event.special[b] = { setup: function () { this.addEventListener(a, d, true) }, teardown: function () { this.removeEventListener(a, d, true) } }
}); c.each(["bind", "one"], function (a, b) { c.fn[b] = function (d, f, e) { if (typeof d === "object") { for (var i in d) this[b](i, f, d[i], e); return this } if (c.isFunction(f)) { e = f; f = v } var j = b === "one" ? c.proxy(e, function (n) { c(this).unbind(n, j); return e.apply(this, arguments) }) : e; return d === "unload" && b !== "one" ? this.one(d, f, e) : this.each(function () { c.event.add(this, d, j, f) }) } }); c.fn.extend({ unbind: function (a,
b) { if (typeof a === "object" && !a.preventDefault) { for (var d in a) this.unbind(d, a[d]); return this } return this.each(function () { c.event.remove(this, a, b) }) }, trigger: function (a, b) { return this.each(function () { c.event.trigger(a, b, this) }) }, triggerHandler: function (a, b) { if (this[0]) { a = c.Event(a); a.preventDefault(); a.stopPropagation(); c.event.trigger(a, b, this[0]); return a.result } }, toggle: function (a) {
for (var b = arguments, d = 1; d < b.length; ) c.proxy(a, b[d++]); return this.click(c.proxy(a, function (f) {
var e = (c.data(this, "lastToggle" +
a.guid) || 0) % d; c.data(this, "lastToggle" + a.guid, e + 1); f.preventDefault(); return b[e].apply(this, arguments) || false
}))
}, hover: function (a, b) { return this.mouseenter(a).mouseleave(b || a) }
}); c.each(["live", "die"], function (a, b) {
c.fn[b] = function (d, f, e) {
var i, j = 0; if (c.isFunction(f)) { e = f; f = v } for (d = (d || "").split(/\s+/); (i = d[j++]) != null; ) {
i = i === "focus" ? "focusin" : i === "blur" ? "focusout" : i === "hover" ? d.push("mouseleave") && "mouseenter" : i; b === "live" ? c(this.context).bind(oa(i, this.selector), { data: f, selector: this.selector,
live: i
}, e) : c(this.context).unbind(oa(i, this.selector), e ? { guid: e.guid + this.selector + i} : null)
} return this
}
}); c.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split(" "), function (a, b) { c.fn[b] = function (d) { return d ? this.bind(b, d) : this.trigger(b) }; if (c.attrFn) c.attrFn[b] = true }); z.attachEvent && !z.addEventListener && z.attachEvent("onunload", function () { for (var a in c.cache) if (c.cache[a].handle) try { c.event.remove(c.cache[a].handle.elem) } catch (b) { } });
(function () {
function a(g) { for (var h = "", k, l = 0; g[l]; l++) { k = g[l]; if (k.nodeType === 3 || k.nodeType === 4) h += k.nodeValue; else if (k.nodeType !== 8) h += a(k.childNodes) } return h } function b(g, h, k, l, q, p) { q = 0; for (var u = l.length; q < u; q++) { var t = l[q]; if (t) { t = t[g]; for (var y = false; t; ) { if (t.sizcache === k) { y = l[t.sizset]; break } if (t.nodeType === 1 && !p) { t.sizcache = k; t.sizset = q } if (t.nodeName.toLowerCase() === h) { y = t; break } t = t[g] } l[q] = y } } } function d(g, h, k, l, q, p) {
q = 0; for (var u = l.length; q < u; q++) {
var t = l[q]; if (t) {
t = t[g]; for (var y = false; t; ) {
if (t.sizcache ===
k) { y = l[t.sizset]; break } if (t.nodeType === 1) { if (!p) { t.sizcache = k; t.sizset = q } if (typeof h !== "string") { if (t === h) { y = true; break } } else if (o.filter(h, [t]).length > 0) { y = t; break } } t = t[g]
} l[q] = y
}
}
} var f = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g, e = 0, i = Object.prototype.toString, j = false, n = true; [0, 0].sort(function () { n = false; return 0 }); var o = function (g, h, k, l) {
k = k || []; var q = h = h || r; if (h.nodeType !== 1 && h.nodeType !== 9) return []; if (!g ||
typeof g !== "string") return k; for (var p = [], u, t, y, R, H = true, M = w(h), I = g; (f.exec(""), u = f.exec(I)) !== null; ) { I = u[3]; p.push(u[1]); if (u[2]) { R = u[3]; break } } if (p.length > 1 && s.exec(g)) if (p.length === 2 && m.relative[p[0]]) t = fa(p[0] + p[1], h); else for (t = m.relative[p[0]] ? [h] : o(p.shift(), h); p.length; ) { g = p.shift(); if (m.relative[g]) g += p.shift(); t = fa(g, t) } else {
if (!l && p.length > 1 && h.nodeType === 9 && !M && m.match.ID.test(p[0]) && !m.match.ID.test(p[p.length - 1])) { u = o.find(p.shift(), h, M); h = u.expr ? o.filter(u.expr, u.set)[0] : u.set[0] } if (h) {
u =
l ? { expr: p.pop(), set: A(l)} : o.find(p.pop(), p.length === 1 && (p[0] === "~" || p[0] === "+") && h.parentNode ? h.parentNode : h, M); t = u.expr ? o.filter(u.expr, u.set) : u.set; if (p.length > 0) y = A(t); else H = false; for (; p.length; ) { var D = p.pop(); u = D; if (m.relative[D]) u = p.pop(); else D = ""; if (u == null) u = h; m.relative[D](y, u, M) }
} else y = []
} y || (y = t); y || o.error(D || g); if (i.call(y) === "[object Array]") if (H) if (h && h.nodeType === 1) for (g = 0; y[g] != null; g++) { if (y[g] && (y[g] === true || y[g].nodeType === 1 && E(h, y[g]))) k.push(t[g]) } else for (g = 0; y[g] != null; g++) y[g] &&
y[g].nodeType === 1 && k.push(t[g]); else k.push.apply(k, y); else A(y, k); if (R) { o(R, q, k, l); o.uniqueSort(k) } return k
}; o.uniqueSort = function (g) { if (C) { j = n; g.sort(C); if (j) for (var h = 1; h < g.length; h++) g[h] === g[h - 1] && g.splice(h--, 1) } return g }; o.matches = function (g, h) { return o(g, null, null, h) }; o.find = function (g, h, k) {
var l, q; if (!g) return []; for (var p = 0, u = m.order.length; p < u; p++) {
var t = m.order[p]; if (q = m.leftMatch[t].exec(g)) {
var y = q[1]; q.splice(1, 1); if (y.substr(y.length - 1) !== "\\") {
q[1] = (q[1] || "").replace(/\\/g, ""); l = m.find[t](q,
h, k); if (l != null) { g = g.replace(m.match[t], ""); break }
}
}
} l || (l = h.getElementsByTagName("*")); return { set: l, expr: g}
}; o.filter = function (g, h, k, l) {
for (var q = g, p = [], u = h, t, y, R = h && h[0] && w(h[0]); g && h.length; ) {
for (var H in m.filter) if ((t = m.leftMatch[H].exec(g)) != null && t[2]) {
var M = m.filter[H], I, D; D = t[1]; y = false; t.splice(1, 1); if (D.substr(D.length - 1) !== "\\") {
if (u === p) p = []; if (m.preFilter[H]) if (t = m.preFilter[H](t, u, k, p, l, R)) { if (t === true) continue } else y = I = true; if (t) for (var U = 0; (D = u[U]) != null; U++) if (D) {
I = M(D, t, U, u); var Da =
l ^ !!I; if (k && I != null) if (Da) y = true; else u[U] = false; else if (Da) { p.push(D); y = true }
} if (I !== v) { k || (u = p); g = g.replace(m.match[H], ""); if (!y) return []; break }
}
} if (g === q) if (y == null) o.error(g); else break; q = g
} return u
}; o.error = function (g) { throw "Syntax error, unrecognized expression: " + g; }; var m = o.selectors = { order: ["ID", "NAME", "TAG"], match: { ID: /#((?:[\w\u00c0-\uFFFF-]|\\.)+)/, CLASS: /\.((?:[\w\u00c0-\uFFFF-]|\\.)+)/, NAME: /\[name=['"]*((?:[\w\u00c0-\uFFFF-]|\\.)+)['"]*\]/, ATTR: /\[\s*((?:[\w\u00c0-\uFFFF-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,
TAG: /^((?:[\w\u00c0-\uFFFF\*-]|\\.)+)/, CHILD: /:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/, POS: /:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/, PSEUDO: /:((?:[\w\u00c0-\uFFFF-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/
}, leftMatch: {}, attrMap: { "class": "className", "for": "htmlFor" }, attrHandle: { href: function (g) { return g.getAttribute("href") } }, relative: { "+": function (g, h) {
var k = typeof h === "string", l = k && !/\W/.test(h); k = k && !l; if (l) h = h.toLowerCase(); l = 0; for (var q = g.length,
p; l < q; l++) if (p = g[l]) { for (; (p = p.previousSibling) && p.nodeType !== 1; ); g[l] = k || p && p.nodeName.toLowerCase() === h ? p || false : p === h } k && o.filter(h, g, true)
}, ">": function (g, h) { var k = typeof h === "string"; if (k && !/\W/.test(h)) { h = h.toLowerCase(); for (var l = 0, q = g.length; l < q; l++) { var p = g[l]; if (p) { k = p.parentNode; g[l] = k.nodeName.toLowerCase() === h ? k : false } } } else { l = 0; for (q = g.length; l < q; l++) if (p = g[l]) g[l] = k ? p.parentNode : p.parentNode === h; k && o.filter(h, g, true) } }, "": function (g, h, k) {
var l = e++, q = d; if (typeof h === "string" && !/\W/.test(h)) {
var p =
h = h.toLowerCase(); q = b
} q("parentNode", h, l, g, p, k)
}, "~": function (g, h, k) { var l = e++, q = d; if (typeof h === "string" && !/\W/.test(h)) { var p = h = h.toLowerCase(); q = b } q("previousSibling", h, l, g, p, k) }
}, find: { ID: function (g, h, k) { if (typeof h.getElementById !== "undefined" && !k) return (g = h.getElementById(g[1])) ? [g] : [] }, NAME: function (g, h) { if (typeof h.getElementsByName !== "undefined") { var k = []; h = h.getElementsByName(g[1]); for (var l = 0, q = h.length; l < q; l++) h[l].getAttribute("name") === g[1] && k.push(h[l]); return k.length === 0 ? null : k } },
TAG: function (g, h) { return h.getElementsByTagName(g[1]) }
}, preFilter: { CLASS: function (g, h, k, l, q, p) { g = " " + g[1].replace(/\\/g, "") + " "; if (p) return g; p = 0; for (var u; (u = h[p]) != null; p++) if (u) if (q ^ (u.className && (" " + u.className + " ").replace(/[\t\n]/g, " ").indexOf(g) >= 0)) k || l.push(u); else if (k) h[p] = false; return false }, ID: function (g) { return g[1].replace(/\\/g, "") }, TAG: function (g) { return g[1].toLowerCase() }, CHILD: function (g) {
if (g[1] === "nth") {
var h = /(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2] === "even" && "2n" || g[2] === "odd" &&
"2n+1" || !/\D/.test(g[2]) && "0n+" + g[2] || g[2]); g[2] = h[1] + (h[2] || 1) - 0; g[3] = h[3] - 0
} g[0] = e++; return g
}, ATTR: function (g, h, k, l, q, p) { h = g[1].replace(/\\/g, ""); if (!p && m.attrMap[h]) g[1] = m.attrMap[h]; if (g[2] === "~=") g[4] = " " + g[4] + " "; return g }, PSEUDO: function (g, h, k, l, q) { if (g[1] === "not") if ((f.exec(g[3]) || "").length > 1 || /^\w/.test(g[3])) g[3] = o(g[3], null, null, h); else { g = o.filter(g[3], h, k, true ^ q); k || l.push.apply(l, g); return false } else if (m.match.POS.test(g[0]) || m.match.CHILD.test(g[0])) return true; return g }, POS: function (g) {
g.unshift(true);
return g
}
}, filters: { enabled: function (g) { return g.disabled === false && g.type !== "hidden" }, disabled: function (g) { return g.disabled === true }, checked: function (g) { return g.checked === true }, selected: function (g) { return g.selected === true }, parent: function (g) { return !!g.firstChild }, empty: function (g) { return !g.firstChild }, has: function (g, h, k) { return !!o(k[3], g).length }, header: function (g) { return /h\d/i.test(g.nodeName) }, text: function (g) { return "text" === g.type }, radio: function (g) { return "radio" === g.type }, checkbox: function (g) {
return "checkbox" ===
g.type
}, file: function (g) { return "file" === g.type }, password: function (g) { return "password" === g.type }, submit: function (g) { return "submit" === g.type }, image: function (g) { return "image" === g.type }, reset: function (g) { return "reset" === g.type }, button: function (g) { return "button" === g.type || g.nodeName.toLowerCase() === "button" }, input: function (g) { return /input|select|textarea|button/i.test(g.nodeName) }
}, setFilters: { first: function (g, h) { return h === 0 }, last: function (g, h, k, l) { return h === l.length - 1 }, even: function (g, h) {
return h % 2 ===
0
}, odd: function (g, h) { return h % 2 === 1 }, lt: function (g, h, k) { return h < k[3] - 0 }, gt: function (g, h, k) { return h > k[3] - 0 }, nth: function (g, h, k) { return k[3] - 0 === h }, eq: function (g, h, k) { return k[3] - 0 === h }
}, filter: { PSEUDO: function (g, h, k, l) {
var q = h[1], p = m.filters[q]; if (p) return p(g, k, h, l); else if (q === "contains") return (g.textContent || g.innerText || a([g]) || "").indexOf(h[3]) >= 0; else if (q === "not") { h = h[3]; k = 0; for (l = h.length; k < l; k++) if (h[k] === g) return false; return true } else o.error("Syntax error, unrecognized expression: " +
q)
}, CHILD: function (g, h) {
var k = h[1], l = g; switch (k) {
case "only": case "first": for (; l = l.previousSibling; ) if (l.nodeType === 1) return false; if (k === "first") return true; l = g; case "last": for (; l = l.nextSibling; ) if (l.nodeType === 1) return false; return true; case "nth": k = h[2]; var q = h[3]; if (k === 1 && q === 0) return true; h = h[0]; var p = g.parentNode; if (p && (p.sizcache !== h || !g.nodeIndex)) { var u = 0; for (l = p.firstChild; l; l = l.nextSibling) if (l.nodeType === 1) l.nodeIndex = ++u; p.sizcache = h } g = g.nodeIndex - q; return k === 0 ? g === 0 : g % k === 0 && g / k >=
0
}
}, ID: function (g, h) { return g.nodeType === 1 && g.getAttribute("id") === h }, TAG: function (g, h) { return h === "*" && g.nodeType === 1 || g.nodeName.toLowerCase() === h }, CLASS: function (g, h) { return (" " + (g.className || g.getAttribute("class")) + " ").indexOf(h) > -1 }, ATTR: function (g, h) {
var k = h[1]; g = m.attrHandle[k] ? m.attrHandle[k](g) : g[k] != null ? g[k] : g.getAttribute(k); k = g + ""; var l = h[2]; h = h[4]; return g == null ? l === "!=" : l === "=" ? k === h : l === "*=" ? k.indexOf(h) >= 0 : l === "~=" ? (" " + k + " ").indexOf(h) >= 0 : !h ? k && g !== false : l === "!=" ? k !== h : l === "^=" ?
k.indexOf(h) === 0 : l === "$=" ? k.substr(k.length - h.length) === h : l === "|=" ? k === h || k.substr(0, h.length + 1) === h + "-" : false
}, POS: function (g, h, k, l) { var q = m.setFilters[h[2]]; if (q) return q(g, k, h, l) }
}
}, s = m.match.POS; for (var x in m.match) { m.match[x] = new RegExp(m.match[x].source + /(?![^\[]*\])(?![^\(]*\))/.source); m.leftMatch[x] = new RegExp(/(^(?:.|\r|\n)*?)/.source + m.match[x].source.replace(/\\(\d+)/g, function (g, h) { return "\\" + (h - 0 + 1) })) } var A = function (g, h) { g = Array.prototype.slice.call(g, 0); if (h) { h.push.apply(h, g); return h } return g };
try { Array.prototype.slice.call(r.documentElement.childNodes, 0) } catch (B) { A = function (g, h) { h = h || []; if (i.call(g) === "[object Array]") Array.prototype.push.apply(h, g); else if (typeof g.length === "number") for (var k = 0, l = g.length; k < l; k++) h.push(g[k]); else for (k = 0; g[k]; k++) h.push(g[k]); return h } } var C; if (r.documentElement.compareDocumentPosition) C = function (g, h) {
if (!g.compareDocumentPosition || !h.compareDocumentPosition) { if (g == h) j = true; return g.compareDocumentPosition ? -1 : 1 } g = g.compareDocumentPosition(h) & 4 ? -1 : g ===
h ? 0 : 1; if (g === 0) j = true; return g
}; else if ("sourceIndex" in r.documentElement) C = function (g, h) { if (!g.sourceIndex || !h.sourceIndex) { if (g == h) j = true; return g.sourceIndex ? -1 : 1 } g = g.sourceIndex - h.sourceIndex; if (g === 0) j = true; return g }; else if (r.createRange) C = function (g, h) {
if (!g.ownerDocument || !h.ownerDocument) { if (g == h) j = true; return g.ownerDocument ? -1 : 1 } var k = g.ownerDocument.createRange(), l = h.ownerDocument.createRange(); k.setStart(g, 0); k.setEnd(g, 0); l.setStart(h, 0); l.setEnd(h, 0); g = k.compareBoundaryPoints(Range.START_TO_END,
l); if (g === 0) j = true; return g
}; (function () {
var g = r.createElement("div"), h = "script" + (new Date).getTime(); g.innerHTML = "<a name='" + h + "'/>"; var k = r.documentElement; k.insertBefore(g, k.firstChild); if (r.getElementById(h)) {
m.find.ID = function (l, q, p) { if (typeof q.getElementById !== "undefined" && !p) return (q = q.getElementById(l[1])) ? q.id === l[1] || typeof q.getAttributeNode !== "undefined" && q.getAttributeNode("id").nodeValue === l[1] ? [q] : v : [] }; m.filter.ID = function (l, q) {
var p = typeof l.getAttributeNode !== "undefined" && l.getAttributeNode("id");
return l.nodeType === 1 && p && p.nodeValue === q
}
} k.removeChild(g); k = g = null
})(); (function () {
var g = r.createElement("div"); g.appendChild(r.createComment("")); if (g.getElementsByTagName("*").length > 0) m.find.TAG = function (h, k) { k = k.getElementsByTagName(h[1]); if (h[1] === "*") { h = []; for (var l = 0; k[l]; l++) k[l].nodeType === 1 && h.push(k[l]); k = h } return k }; g.innerHTML = "<a href='#'></a>"; if (g.firstChild && typeof g.firstChild.getAttribute !== "undefined" && g.firstChild.getAttribute("href") !== "#") m.attrHandle.href = function (h) {
return h.getAttribute("href",
2)
}; g = null
})(); r.querySelectorAll && function () { var g = o, h = r.createElement("div"); h.innerHTML = "<p class='TEST'></p>"; if (!(h.querySelectorAll && h.querySelectorAll(".TEST").length === 0)) { o = function (l, q, p, u) { q = q || r; if (!u && q.nodeType === 9 && !w(q)) try { return A(q.querySelectorAll(l), p) } catch (t) { } return g(l, q, p, u) }; for (var k in g) o[k] = g[k]; h = null } } (); (function () {
var g = r.createElement("div"); g.innerHTML = "<div class='test e'></div><div class='test'></div>"; if (!(!g.getElementsByClassName || g.getElementsByClassName("e").length ===
0)) { g.lastChild.className = "e"; if (g.getElementsByClassName("e").length !== 1) { m.order.splice(1, 0, "CLASS"); m.find.CLASS = function (h, k, l) { if (typeof k.getElementsByClassName !== "undefined" && !l) return k.getElementsByClassName(h[1]) }; g = null } }
})(); var E = r.compareDocumentPosition ? function (g, h) { return g.compareDocumentPosition(h) & 16 } : function (g, h) { return g !== h && (g.contains ? g.contains(h) : true) }, w = function (g) { return (g = (g ? g.ownerDocument || g : 0).documentElement) ? g.nodeName !== "HTML" : false }, fa = function (g, h) {
var k = [],
l = "", q; for (h = h.nodeType ? [h] : h; q = m.match.PSEUDO.exec(g); ) { l += q[0]; g = g.replace(m.match.PSEUDO, "") } g = m.relative[g] ? g + "*" : g; q = 0; for (var p = h.length; q < p; q++) o(g, h[q], k); return o.filter(l, k)
}; c.find = o; c.expr = o.selectors; c.expr[":"] = c.expr.filters; c.unique = o.uniqueSort; c.getText = a; c.isXMLDoc = w; c.contains = E
})(); var bb = /Until$/, cb = /^(?:parents|prevUntil|prevAll)/, db = /,/; Q = Array.prototype.slice; var Ea = function (a, b, d) {
if (c.isFunction(b)) return c.grep(a, function (e, i) { return !!b.call(e, i, e) === d }); else if (b.nodeType) return c.grep(a,
function (e) { return e === b === d }); else if (typeof b === "string") { var f = c.grep(a, function (e) { return e.nodeType === 1 }); if (Qa.test(b)) return c.filter(b, f, !d); else b = c.filter(b, f) } return c.grep(a, function (e) { return c.inArray(e, b) >= 0 === d })
}; c.fn.extend({ find: function (a) { for (var b = this.pushStack("", "find", a), d = 0, f = 0, e = this.length; f < e; f++) { d = b.length; c.find(a, this[f], b); if (f > 0) for (var i = d; i < b.length; i++) for (var j = 0; j < d; j++) if (b[j] === b[i]) { b.splice(i--, 1); break } } return b }, has: function (a) {
var b = c(a); return this.filter(function () {
for (var d =
0, f = b.length; d < f; d++) if (c.contains(this, b[d])) return true
})
}, not: function (a) { return this.pushStack(Ea(this, a, false), "not", a) }, filter: function (a) { return this.pushStack(Ea(this, a, true), "filter", a) }, is: function (a) { return !!a && c.filter(a, this).length > 0 }, closest: function (a, b) {
if (c.isArray(a)) {
var d = [], f = this[0], e, i = {}, j; if (f && a.length) {
e = 0; for (var n = a.length; e < n; e++) { j = a[e]; i[j] || (i[j] = c.expr.match.POS.test(j) ? c(j, b || this.context) : j) } for (; f && f.ownerDocument && f !== b; ) {
for (j in i) {
e = i[j]; if (e.jquery ? e.index(f) >
-1 : c(f).is(e)) { d.push({ selector: j, elem: f }); delete i[j] }
} f = f.parentNode
}
} return d
} var o = c.expr.match.POS.test(a) ? c(a, b || this.context) : null; return this.map(function (m, s) { for (; s && s.ownerDocument && s !== b; ) { if (o ? o.index(s) > -1 : c(s).is(a)) return s; s = s.parentNode } return null })
}, index: function (a) { if (!a || typeof a === "string") return c.inArray(this[0], a ? c(a) : this.parent().children()); return c.inArray(a.jquery ? a[0] : a, this) }, add: function (a, b) {
a = typeof a === "string" ? c(a, b || this.context) : c.makeArray(a); b = c.merge(this.get(),
a); return this.pushStack(pa(a[0]) || pa(b[0]) ? b : c.unique(b))
}, andSelf: function () { return this.add(this.prevObject) }
}); c.each({ parent: function (a) { return (a = a.parentNode) && a.nodeType !== 11 ? a : null }, parents: function (a) { return c.dir(a, "parentNode") }, parentsUntil: function (a, b, d) { return c.dir(a, "parentNode", d) }, next: function (a) { return c.nth(a, 2, "nextSibling") }, prev: function (a) { return c.nth(a, 2, "previousSibling") }, nextAll: function (a) { return c.dir(a, "nextSibling") }, prevAll: function (a) { return c.dir(a, "previousSibling") },
nextUntil: function (a, b, d) { return c.dir(a, "nextSibling", d) }, prevUntil: function (a, b, d) { return c.dir(a, "previousSibling", d) }, siblings: function (a) { return c.sibling(a.parentNode.firstChild, a) }, children: function (a) { return c.sibling(a.firstChild) }, contents: function (a) { return c.nodeName(a, "iframe") ? a.contentDocument || a.contentWindow.document : c.makeArray(a.childNodes) }
}, function (a, b) {
c.fn[a] = function (d, f) {
var e = c.map(this, b, d); bb.test(a) || (f = d); if (f && typeof f === "string") e = c.filter(f, e); e = this.length > 1 ? c.unique(e) :
e; if ((this.length > 1 || db.test(f)) && cb.test(a)) e = e.reverse(); return this.pushStack(e, a, Q.call(arguments).join(","))
}
}); c.extend({ filter: function (a, b, d) { if (d) a = ":not(" + a + ")"; return c.find.matches(a, b) }, dir: function (a, b, d) { var f = []; for (a = a[b]; a && a.nodeType !== 9 && (d === v || a.nodeType !== 1 || !c(a).is(d)); ) { a.nodeType === 1 && f.push(a); a = a[b] } return f }, nth: function (a, b, d) { b = b || 1; for (var f = 0; a; a = a[d]) if (a.nodeType === 1 && ++f === b) break; return a }, sibling: function (a, b) {
for (var d = []; a; a = a.nextSibling) a.nodeType === 1 && a !==
b && d.push(a); return d
}
}); var Fa = / jQuery\d+="(?:\d+|null)"/g, V = /^\s+/, Ga = /(<([\w:]+)[^>]*?)\/>/g, eb = /^(?:area|br|col|embed|hr|img|input|link|meta|param)$/i, Ha = /<([\w:]+)/, fb = /<tbody/i, gb = /<|&\w+;/, sa = /checked\s*(?:[^=]|=\s*.checked.)/i, Ia = function (a, b, d) { return eb.test(d) ? a : b + "></" + d + ">" }, F = { option: [1, "<select multiple='multiple'>", "</select>"], legend: [1, "<fieldset>", "</fieldset>"], thead: [1, "<table>", "</table>"], tr: [2, "<table><tbody>", "</tbody></table>"], td: [3, "<table><tbody><tr>", "</tr></tbody></table>"],
col: [2, "<table><tbody></tbody><colgroup>", "</colgroup></table>"], area: [1, "<map>", "</map>"], _default: [0, "", ""]
}; F.optgroup = F.option; F.tbody = F.tfoot = F.colgroup = F.caption = F.thead; F.th = F.td; if (!c.support.htmlSerialize) F._default = [1, "div<div>", "</div>"]; c.fn.extend({ text: function (a) { if (c.isFunction(a)) return this.each(function (b) { var d = c(this); d.text(a.call(this, b, d.text())) }); if (typeof a !== "object" && a !== v) return this.empty().append((this[0] && this[0].ownerDocument || r).createTextNode(a)); return c.getText(this) },
wrapAll: function (a) { if (c.isFunction(a)) return this.each(function (d) { c(this).wrapAll(a.call(this, d)) }); if (this[0]) { var b = c(a, this[0].ownerDocument).eq(0).clone(true); this[0].parentNode && b.insertBefore(this[0]); b.map(function () { for (var d = this; d.firstChild && d.firstChild.nodeType === 1; ) d = d.firstChild; return d }).append(this) } return this }, wrapInner: function (a) {
if (c.isFunction(a)) return this.each(function (b) { c(this).wrapInner(a.call(this, b)) }); return this.each(function () {
var b = c(this), d = b.contents(); d.length ?
d.wrapAll(a) : b.append(a)
})
}, wrap: function (a) { return this.each(function () { c(this).wrapAll(a) }) }, unwrap: function () { return this.parent().each(function () { c.nodeName(this, "body") || c(this).replaceWith(this.childNodes) }).end() }, append: function () { return this.domManip(arguments, true, function (a) { this.nodeType === 1 && this.appendChild(a) }) }, prepend: function () { return this.domManip(arguments, true, function (a) { this.nodeType === 1 && this.insertBefore(a, this.firstChild) }) }, before: function () {
if (this[0] && this[0].parentNode) return this.domManip(arguments,
false, function (b) { this.parentNode.insertBefore(b, this) }); else if (arguments.length) { var a = c(arguments[0]); a.push.apply(a, this.toArray()); return this.pushStack(a, "before", arguments) }
}, after: function () { if (this[0] && this[0].parentNode) return this.domManip(arguments, false, function (b) { this.parentNode.insertBefore(b, this.nextSibling) }); else if (arguments.length) { var a = this.pushStack(this, "after", arguments); a.push.apply(a, c(arguments[0]).toArray()); return a } }, clone: function (a) {
var b = this.map(function () {
if (!c.support.noCloneEvent &&
!c.isXMLDoc(this)) { var d = this.outerHTML, f = this.ownerDocument; if (!d) { d = f.createElement("div"); d.appendChild(this.cloneNode(true)); d = d.innerHTML } return c.clean([d.replace(Fa, "").replace(V, "")], f)[0] } else return this.cloneNode(true)
}); if (a === true) { qa(this, b); qa(this.find("*"), b.find("*")) } return b
}, html: function (a) {
if (a === v) return this[0] && this[0].nodeType === 1 ? this[0].innerHTML.replace(Fa, "") : null; else if (typeof a === "string" && !/<script/i.test(a) && (c.support.leadingWhitespace || !V.test(a)) && !F[(Ha.exec(a) ||
["", ""])[1].toLowerCase()]) { a = a.replace(Ga, Ia); try { for (var b = 0, d = this.length; b < d; b++) if (this[b].nodeType === 1) { c.cleanData(this[b].getElementsByTagName("*")); this[b].innerHTML = a } } catch (f) { this.empty().append(a) } } else c.isFunction(a) ? this.each(function (e) { var i = c(this), j = i.html(); i.empty().append(function () { return a.call(this, e, j) }) }) : this.empty().append(a); return this
}, replaceWith: function (a) {
if (this[0] && this[0].parentNode) {
if (c.isFunction(a)) return this.each(function (b) {
var d = c(this), f = d.html(); d.replaceWith(a.call(this,
b, f))
}); else a = c(a).detach(); return this.each(function () { var b = this.nextSibling, d = this.parentNode; c(this).remove(); b ? c(b).before(a) : c(d).append(a) })
} else return this.pushStack(c(c.isFunction(a) ? a() : a), "replaceWith", a)
}, detach: function (a) { return this.remove(a, true) }, domManip: function (a, b, d) {
function f(s) { return c.nodeName(s, "table") ? s.getElementsByTagName("tbody")[0] || s.appendChild(s.ownerDocument.createElement("tbody")) : s } var e, i, j = a[0], n = []; if (!c.support.checkClone && arguments.length === 3 && typeof j ===
"string" && sa.test(j)) return this.each(function () { c(this).domManip(a, b, d, true) }); if (c.isFunction(j)) return this.each(function (s) { var x = c(this); a[0] = j.call(this, s, b ? x.html() : v); x.domManip(a, b, d) }); if (this[0]) {
e = a[0] && a[0].parentNode && a[0].parentNode.nodeType === 11 ? { fragment: a[0].parentNode} : ra(a, this, n); if (i = e.fragment.firstChild) { b = b && c.nodeName(i, "tr"); for (var o = 0, m = this.length; o < m; o++) d.call(b ? f(this[o], i) : this[o], e.cacheable || this.length > 1 || o > 0 ? e.fragment.cloneNode(true) : e.fragment) } n && c.each(n,
Ma)
} return this
}
}); c.fragments = {}; c.each({ appendTo: "append", prependTo: "prepend", insertBefore: "before", insertAfter: "after", replaceAll: "replaceWith" }, function (a, b) { c.fn[a] = function (d) { var f = []; d = c(d); for (var e = 0, i = d.length; e < i; e++) { var j = (e > 0 ? this.clone(true) : this).get(); c.fn[b].apply(c(d[e]), j); f = f.concat(j) } return this.pushStack(f, a, d.selector) } }); c.each({ remove: function (a, b) {
if (!a || c.filter(a, [this]).length) {
if (!b && this.nodeType === 1) { c.cleanData(this.getElementsByTagName("*")); c.cleanData([this]) } this.parentNode &&
this.parentNode.removeChild(this)
}
}, empty: function () { for (this.nodeType === 1 && c.cleanData(this.getElementsByTagName("*")); this.firstChild; ) this.removeChild(this.firstChild) }
}, function (a, b) { c.fn[a] = function () { return this.each(b, arguments) } }); c.extend({ clean: function (a, b, d, f) {
b = b || r; if (typeof b.createElement === "undefined") b = b.ownerDocument || b[0] && b[0].ownerDocument || r; var e = []; c.each(a, function (i, j) {
if (typeof j === "number") j += ""; if (j) {
if (typeof j === "string" && !gb.test(j)) j = b.createTextNode(j); else if (typeof j ===
"string") {
j = j.replace(Ga, Ia); var n = (Ha.exec(j) || ["", ""])[1].toLowerCase(), o = F[n] || F._default, m = o[0]; i = b.createElement("div"); for (i.innerHTML = o[1] + j + o[2]; m--; ) i = i.lastChild; if (!c.support.tbody) { m = fb.test(j); n = n === "table" && !m ? i.firstChild && i.firstChild.childNodes : o[1] === "<table>" && !m ? i.childNodes : []; for (o = n.length - 1; o >= 0; --o) c.nodeName(n[o], "tbody") && !n[o].childNodes.length && n[o].parentNode.removeChild(n[o]) } !c.support.leadingWhitespace && V.test(j) && i.insertBefore(b.createTextNode(V.exec(j)[0]), i.firstChild);
j = c.makeArray(i.childNodes)
} if (j.nodeType) e.push(j); else e = c.merge(e, j)
}
}); if (d) for (a = 0; e[a]; a++) if (f && c.nodeName(e[a], "script") && (!e[a].type || e[a].type.toLowerCase() === "text/javascript")) f.push(e[a].parentNode ? e[a].parentNode.removeChild(e[a]) : e[a]); else { e[a].nodeType === 1 && e.splice.apply(e, [a + 1, 0].concat(c.makeArray(e[a].getElementsByTagName("script")))); d.appendChild(e[a]) } return e
}, cleanData: function (a) { for (var b = 0, d; (d = a[b]) != null; b++) { c.event.remove(d); c.removeData(d) } }
}); var hb = /z-?index|font-?weight|opacity|zoom|line-?height/i,
Ja = /alpha\([^)]*\)/, Ka = /opacity=([^)]*)/, ga = /float/i, ha = /-([a-z])/ig, ib = /([A-Z])/g, jb = /^-?\d+(?:px)?$/i, kb = /^-?\d/, lb = { position: "absolute", visibility: "hidden", display: "block" }, mb = ["Left", "Right"], nb = ["Top", "Bottom"], ob = r.defaultView && r.defaultView.getComputedStyle, La = c.support.cssFloat ? "cssFloat" : "styleFloat", ia = function (a, b) { return b.toUpperCase() }; c.fn.css = function (a, b) { return X(this, a, b, true, function (d, f, e) { if (e === v) return c.curCSS(d, f); if (typeof e === "number" && !hb.test(f)) e += "px"; c.style(d, f, e) }) };
c.extend({ style: function (a, b, d) { if (!a || a.nodeType === 3 || a.nodeType === 8) return v; if ((b === "width" || b === "height") && parseFloat(d) < 0) d = v; var f = a.style || a, e = d !== v; if (!c.support.opacity && b === "opacity") { if (e) { f.zoom = 1; b = parseInt(d, 10) + "" === "NaN" ? "" : "alpha(opacity=" + d * 100 + ")"; a = f.filter || c.curCSS(a, "filter") || ""; f.filter = Ja.test(a) ? a.replace(Ja, b) : b } return f.filter && f.filter.indexOf("opacity=") >= 0 ? parseFloat(Ka.exec(f.filter)[1]) / 100 + "" : "" } if (ga.test(b)) b = La; b = b.replace(ha, ia); if (e) f[b] = d; return f[b] }, css: function (a,
b, d, f) { if (b === "width" || b === "height") { var e, i = b === "width" ? mb : nb; function j() { e = b === "width" ? a.offsetWidth : a.offsetHeight; f !== "border" && c.each(i, function () { f || (e -= parseFloat(c.curCSS(a, "padding" + this, true)) || 0); if (f === "margin") e += parseFloat(c.curCSS(a, "margin" + this, true)) || 0; else e -= parseFloat(c.curCSS(a, "border" + this + "Width", true)) || 0 }) } a.offsetWidth !== 0 ? j() : c.swap(a, lb, j); return Math.max(0, Math.round(e)) } return c.curCSS(a, b, d) }, curCSS: function (a, b, d) {
var f, e = a.style; if (!c.support.opacity && b === "opacity" &&
a.currentStyle) { f = Ka.test(a.currentStyle.filter || "") ? parseFloat(RegExp.$1) / 100 + "" : ""; return f === "" ? "1" : f } if (ga.test(b)) b = La; if (!d && e && e[b]) f = e[b]; else if (ob) { if (ga.test(b)) b = "float"; b = b.replace(ib, "-$1").toLowerCase(); e = a.ownerDocument.defaultView; if (!e) return null; if (a = e.getComputedStyle(a, null)) f = a.getPropertyValue(b); if (b === "opacity" && f === "") f = "1" } else if (a.currentStyle) {
d = b.replace(ha, ia); f = a.currentStyle[b] || a.currentStyle[d]; if (!jb.test(f) && kb.test(f)) {
b = e.left; var i = a.runtimeStyle.left; a.runtimeStyle.left =
a.currentStyle.left; e.left = d === "fontSize" ? "1em" : f || 0; f = e.pixelLeft + "px"; e.left = b; a.runtimeStyle.left = i
}
} return f
}, swap: function (a, b, d) { var f = {}; for (var e in b) { f[e] = a.style[e]; a.style[e] = b[e] } d.call(a); for (e in b) a.style[e] = f[e] }
}); if (c.expr && c.expr.filters) { c.expr.filters.hidden = function (a) { var b = a.offsetWidth, d = a.offsetHeight, f = a.nodeName.toLowerCase() === "tr"; return b === 0 && d === 0 && !f ? true : b > 0 && d > 0 && !f ? false : c.curCSS(a, "display") === "none" }; c.expr.filters.visible = function (a) { return !c.expr.filters.hidden(a) } } var pb =
J(), qb = /<script(.|\s)*?\/script>/gi, rb = /select|textarea/i, sb = /color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week/i, N = /=\?(&|$)/, ja = /\?/, tb = /(\?|&)_=.*?(&|$)/, ub = /^(\w+:)?\/\/([^\/?#]+)/, vb = /%20/g; c.fn.extend({ _load: c.fn.load, load: function (a, b, d) {
if (typeof a !== "string") return this._load(a); else if (!this.length) return this; var f = a.indexOf(" "); if (f >= 0) { var e = a.slice(f, a.length); a = a.slice(0, f) } f = "GET"; if (b) if (c.isFunction(b)) { d = b; b = null } else if (typeof b === "object") {
b =
c.param(b, c.ajaxSettings.traditional); f = "POST"
} var i = this; c.ajax({ url: a, type: f, dataType: "html", data: b, complete: function (j, n) { if (n === "success" || n === "notmodified") i.html(e ? c("<div />").append(j.responseText.replace(qb, "")).find(e) : j.responseText); d && i.each(d, [j.responseText, n, j]) } }); return this
}, serialize: function () { return c.param(this.serializeArray()) }, serializeArray: function () {
return this.map(function () { return this.elements ? c.makeArray(this.elements) : this }).filter(function () {
return this.name && !this.disabled &&
(this.checked || rb.test(this.nodeName) || sb.test(this.type))
}).map(function (a, b) { a = c(this).val(); return a == null ? null : c.isArray(a) ? c.map(a, function (d) { return { name: b.name, value: d} }) : { name: b.name, value: a} }).get()
}
}); c.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "), function (a, b) { c.fn[b] = function (d) { return this.bind(b, d) } }); c.extend({ get: function (a, b, d, f) { if (c.isFunction(b)) { f = f || d; d = b; b = null } return c.ajax({ type: "GET", url: a, data: b, success: d, dataType: f }) }, getScript: function (a,
b) { return c.get(a, null, b, "script") }, getJSON: function (a, b, d) { return c.get(a, b, d, "json") }, post: function (a, b, d, f) { if (c.isFunction(b)) { f = f || d; d = b; b = {} } return c.ajax({ type: "POST", url: a, data: b, success: d, dataType: f }) }, ajaxSetup: function (a) { c.extend(c.ajaxSettings, a) }, ajaxSettings: { url: location.href, global: true, type: "GET", contentType: "application/x-www-form-urlencoded", processData: true, async: true, xhr: z.XMLHttpRequest && (z.location.protocol !== "file:" || !z.ActiveXObject) ? function () { return new z.XMLHttpRequest } :
function () { try { return new z.ActiveXObject("Microsoft.XMLHTTP") } catch (a) { } }, accepts: { xml: "application/xml, text/xml", html: "text/html", script: "text/javascript, application/javascript", json: "application/json, text/javascript", text: "text/plain", _default: "*/*"}
}, lastModified: {}, etag: {}, ajax: function (a) {
function b() { e.success && e.success.call(o, n, j, w); e.global && f("ajaxSuccess", [w, e]) } function d() { e.complete && e.complete.call(o, w, j); e.global && f("ajaxComplete", [w, e]); e.global && ! --c.active && c.event.trigger("ajaxStop") }
function f(q, p) { (e.context ? c(e.context) : c.event).trigger(q, p) } var e = c.extend(true, {}, c.ajaxSettings, a), i, j, n, o = a && a.context || e, m = e.type.toUpperCase(); if (e.data && e.processData && typeof e.data !== "string") e.data = c.param(e.data, e.traditional); if (e.dataType === "jsonp") { if (m === "GET") N.test(e.url) || (e.url += (ja.test(e.url) ? "&" : "?") + (e.jsonp || "callback") + "=?"); else if (!e.data || !N.test(e.data)) e.data = (e.data ? e.data + "&" : "") + (e.jsonp || "callback") + "=?"; e.dataType = "json" } if (e.dataType === "json" && (e.data && N.test(e.data) ||
N.test(e.url))) { i = e.jsonpCallback || "jsonp" + pb++; if (e.data) e.data = (e.data + "").replace(N, "=" + i + "$1"); e.url = e.url.replace(N, "=" + i + "$1"); e.dataType = "script"; z[i] = z[i] || function (q) { n = q; b(); d(); z[i] = v; try { delete z[i] } catch (p) { } A && A.removeChild(B) } } if (e.dataType === "script" && e.cache === null) e.cache = false; if (e.cache === false && m === "GET") { var s = J(), x = e.url.replace(tb, "$1_=" + s + "$2"); e.url = x + (x === e.url ? (ja.test(e.url) ? "&" : "?") + "_=" + s : "") } if (e.data && m === "GET") e.url += (ja.test(e.url) ? "&" : "?") + e.data; e.global && !c.active++ &&
c.event.trigger("ajaxStart"); s = (s = ub.exec(e.url)) && (s[1] && s[1] !== location.protocol || s[2] !== location.host); if (e.dataType === "script" && m === "GET" && s) {
var A = r.getElementsByTagName("head")[0] || r.documentElement, B = r.createElement("script"); B.src = e.url; if (e.scriptCharset) B.charset = e.scriptCharset; if (!i) {
var C = false; B.onload = B.onreadystatechange = function () {
if (!C && (!this.readyState || this.readyState === "loaded" || this.readyState === "complete")) {
C = true; b(); d(); B.onload = B.onreadystatechange = null; A && B.parentNode &&
A.removeChild(B)
}
}
} A.insertBefore(B, A.firstChild); return v
} var E = false, w = e.xhr(); if (w) {
e.username ? w.open(m, e.url, e.async, e.username, e.password) : w.open(m, e.url, e.async); try {
if (e.data || a && a.contentType) w.setRequestHeader("Content-Type", e.contentType); if (e.ifModified) { c.lastModified[e.url] && w.setRequestHeader("If-Modified-Since", c.lastModified[e.url]); c.etag[e.url] && w.setRequestHeader("If-None-Match", c.etag[e.url]) } s || w.setRequestHeader("X-Requested-With", "XMLHttpRequest"); w.setRequestHeader("Accept",
e.dataType && e.accepts[e.dataType] ? e.accepts[e.dataType] + ", */*" : e.accepts._default)
} catch (fa) { } if (e.beforeSend && e.beforeSend.call(o, w, e) === false) { e.global && ! --c.active && c.event.trigger("ajaxStop"); w.abort(); return false } e.global && f("ajaxSend", [w, e]); var g = w.onreadystatechange = function (q) {
if (!w || w.readyState === 0 || q === "abort") { E || d(); E = true; if (w) w.onreadystatechange = c.noop } else if (!E && w && (w.readyState === 4 || q === "timeout")) {
E = true; w.onreadystatechange = c.noop; j = q === "timeout" ? "timeout" : !c.httpSuccess(w) ?
"error" : e.ifModified && c.httpNotModified(w, e.url) ? "notmodified" : "success"; var p; if (j === "success") try { n = c.httpData(w, e.dataType, e) } catch (u) { j = "parsererror"; p = u } if (j === "success" || j === "notmodified") i || b(); else c.handleError(e, w, j, p); d(); q === "timeout" && w.abort(); if (e.async) w = null
}
}; try { var h = w.abort; w.abort = function () { w && h.call(w); g("abort") } } catch (k) { } e.async && e.timeout > 0 && setTimeout(function () { w && !E && g("timeout") }, e.timeout); try { w.send(m === "POST" || m === "PUT" || m === "DELETE" ? e.data : null) } catch (l) {
c.handleError(e,
w, null, l); d()
} e.async || g(); return w
}
}, handleError: function (a, b, d, f) { if (a.error) a.error.call(a.context || a, b, d, f); if (a.global) (a.context ? c(a.context) : c.event).trigger("ajaxError", [b, a, f]) }, active: 0, httpSuccess: function (a) { try { return !a.status && location.protocol === "file:" || a.status >= 200 && a.status < 300 || a.status === 304 || a.status === 1223 || a.status === 0 } catch (b) { } return false }, httpNotModified: function (a, b) {
var d = a.getResponseHeader("Last-Modified"), f = a.getResponseHeader("Etag"); if (d) c.lastModified[b] = d; if (f) c.etag[b] =
f; return a.status === 304 || a.status === 0
}, httpData: function (a, b, d) { var f = a.getResponseHeader("content-type") || "", e = b === "xml" || !b && f.indexOf("xml") >= 0; a = e ? a.responseXML : a.responseText; e && a.documentElement.nodeName === "parsererror" && c.error("parsererror"); if (d && d.dataFilter) a = d.dataFilter(a, b); if (typeof a === "string") if (b === "json" || !b && f.indexOf("json") >= 0) a = c.parseJSON(a); else if (b === "script" || !b && f.indexOf("javascript") >= 0) c.globalEval(a); return a }, param: function (a, b) {
function d(j, n) {
if (c.isArray(n)) c.each(n,
function (o, m) { b ? f(j, m) : d(j + "[" + (typeof m === "object" || c.isArray(m) ? o : "") + "]", m) }); else !b && n != null && typeof n === "object" ? c.each(n, function (o, m) { d(j + "[" + o + "]", m) }) : f(j, n)
} function f(j, n) { n = c.isFunction(n) ? n() : n; e[e.length] = encodeURIComponent(j) + "=" + encodeURIComponent(n) } var e = []; if (b === v) b = c.ajaxSettings.traditional; if (c.isArray(a) || a.jquery) c.each(a, function () { f(this.name, this.value) }); else for (var i in a) d(i, a[i]); return e.join("&").replace(vb, "+")
}
}); var ka = {}, wb = /toggle|show|hide/, xb = /^([+-]=)?([\d+-.]+)(.*)$/,
W, ta = [["height", "marginTop", "marginBottom", "paddingTop", "paddingBottom"], ["width", "marginLeft", "marginRight", "paddingLeft", "paddingRight"], ["opacity"]]; c.fn.extend({ show: function (a, b) {
if (a || a === 0) return this.animate(K("show", 3), a, b); else {
a = 0; for (b = this.length; a < b; a++) {
var d = c.data(this[a], "olddisplay"); this[a].style.display = d || ""; if (c.css(this[a], "display") === "none") {
d = this[a].nodeName; var f; if (ka[d]) f = ka[d]; else {
var e = c("<" + d + " />").appendTo("body"); f = e.css("display"); if (f === "none") f = "block"; e.remove();
ka[d] = f
} c.data(this[a], "olddisplay", f)
}
} a = 0; for (b = this.length; a < b; a++) this[a].style.display = c.data(this[a], "olddisplay") || ""; return this
}
}, hide: function (a, b) { if (a || a === 0) return this.animate(K("hide", 3), a, b); else { a = 0; for (b = this.length; a < b; a++) { var d = c.data(this[a], "olddisplay"); !d && d !== "none" && c.data(this[a], "olddisplay", c.css(this[a], "display")) } a = 0; for (b = this.length; a < b; a++) this[a].style.display = "none"; return this } }, _toggle: c.fn.toggle, toggle: function (a, b) {
var d = typeof a === "boolean"; if (c.isFunction(a) &&
c.isFunction(b)) this._toggle.apply(this, arguments); else a == null || d ? this.each(function () { var f = d ? a : c(this).is(":hidden"); c(this)[f ? "show" : "hide"]() }) : this.animate(K("toggle", 3), a, b); return this
}, fadeTo: function (a, b, d) { return this.filter(":hidden").css("opacity", 0).show().end().animate({ opacity: b }, a, d) }, animate: function (a, b, d, f) {
var e = c.speed(b, d, f); if (c.isEmptyObject(a)) return this.each(e.complete); return this[e.queue === false ? "each" : "queue"](function () {
var i = c.extend({}, e), j, n = this.nodeType === 1 && c(this).is(":hidden"),
o = this; for (j in a) { var m = j.replace(ha, ia); if (j !== m) { a[m] = a[j]; delete a[j]; j = m } if (a[j] === "hide" && n || a[j] === "show" && !n) return i.complete.call(this); if ((j === "height" || j === "width") && this.style) { i.display = c.css(this, "display"); i.overflow = this.style.overflow } if (c.isArray(a[j])) { (i.specialEasing = i.specialEasing || {})[j] = a[j][1]; a[j] = a[j][0] } } if (i.overflow != null) this.style.overflow = "hidden"; i.curAnim = c.extend({}, a); c.each(a, function (s, x) {
var A = new c.fx(o, i, s); if (wb.test(x)) A[x === "toggle" ? n ? "show" : "hide" : x](a);
else { var B = xb.exec(x), C = A.cur(true) || 0; if (B) { x = parseFloat(B[2]); var E = B[3] || "px"; if (E !== "px") { o.style[s] = (x || 1) + E; C = (x || 1) / A.cur(true) * C; o.style[s] = C + E } if (B[1]) x = (B[1] === "-=" ? -1 : 1) * x + C; A.custom(C, x, E) } else A.custom(C, x, "") }
}); return true
})
}, stop: function (a, b) { var d = c.timers; a && this.queue([]); this.each(function () { for (var f = d.length - 1; f >= 0; f--) if (d[f].elem === this) { b && d[f](true); d.splice(f, 1) } }); b || this.dequeue(); return this }
}); c.each({ slideDown: K("show", 1), slideUp: K("hide", 1), slideToggle: K("toggle",
1), fadeIn: { opacity: "show" }, fadeOut: { opacity: "hide"}
}, function (a, b) { c.fn[a] = function (d, f) { return this.animate(b, d, f) } }); c.extend({ speed: function (a, b, d) { var f = a && typeof a === "object" ? a : { complete: d || !d && b || c.isFunction(a) && a, duration: a, easing: d && b || b && !c.isFunction(b) && b }; f.duration = c.fx.off ? 0 : typeof f.duration === "number" ? f.duration : c.fx.speeds[f.duration] || c.fx.speeds._default; f.old = f.complete; f.complete = function () { f.queue !== false && c(this).dequeue(); c.isFunction(f.old) && f.old.call(this) }; return f }, easing: { linear: function (a,
b, d, f) { return d + f * a }, swing: function (a, b, d, f) { return (-Math.cos(a * Math.PI) / 2 + 0.5) * f + d }
}, timers: [], fx: function (a, b, d) { this.options = b; this.elem = a; this.prop = d; if (!b.orig) b.orig = {} }
}); c.fx.prototype = { update: function () { this.options.step && this.options.step.call(this.elem, this.now, this); (c.fx.step[this.prop] || c.fx.step._default)(this); if ((this.prop === "height" || this.prop === "width") && this.elem.style) this.elem.style.display = "block" }, cur: function (a) {
if (this.elem[this.prop] != null && (!this.elem.style || this.elem.style[this.prop] ==
null)) return this.elem[this.prop]; return (a = parseFloat(c.css(this.elem, this.prop, a))) && a > -10000 ? a : parseFloat(c.curCSS(this.elem, this.prop)) || 0
}, custom: function (a, b, d) { function f(i) { return e.step(i) } this.startTime = J(); this.start = a; this.end = b; this.unit = d || this.unit || "px"; this.now = this.start; this.pos = this.state = 0; var e = this; f.elem = this.elem; if (f() && c.timers.push(f) && !W) W = setInterval(c.fx.tick, 13) }, show: function () {
this.options.orig[this.prop] = c.style(this.elem, this.prop); this.options.show = true; this.custom(this.prop ===
"width" || this.prop === "height" ? 1 : 0, this.cur()); c(this.elem).show()
}, hide: function () { this.options.orig[this.prop] = c.style(this.elem, this.prop); this.options.hide = true; this.custom(this.cur(), 0) }, step: function (a) {
var b = J(), d = true; if (a || b >= this.options.duration + this.startTime) {
this.now = this.end; this.pos = this.state = 1; this.update(); this.options.curAnim[this.prop] = true; for (var f in this.options.curAnim) if (this.options.curAnim[f] !== true) d = false; if (d) {
if (this.options.display != null) {
this.elem.style.overflow =
this.options.overflow; a = c.data(this.elem, "olddisplay"); this.elem.style.display = a ? a : this.options.display; if (c.css(this.elem, "display") === "none") this.elem.style.display = "block"
} this.options.hide && c(this.elem).hide(); if (this.options.hide || this.options.show) for (var e in this.options.curAnim) c.style(this.elem, e, this.options.orig[e]); this.options.complete.call(this.elem)
} return false
} else {
e = b - this.startTime; this.state = e / this.options.duration; a = this.options.easing || (c.easing.swing ? "swing" : "linear"); this.pos =
c.easing[this.options.specialEasing && this.options.specialEasing[this.prop] || a](this.state, e, 0, 1, this.options.duration); this.now = this.start + (this.end - this.start) * this.pos; this.update()
} return true
}
}; c.extend(c.fx, { tick: function () { for (var a = c.timers, b = 0; b < a.length; b++) a[b]() || a.splice(b--, 1); a.length || c.fx.stop() }, stop: function () { clearInterval(W); W = null }, speeds: { slow: 600, fast: 200, _default: 400 }, step: { opacity: function (a) { c.style(a.elem, "opacity", a.now) }, _default: function (a) {
if (a.elem.style && a.elem.style[a.prop] !=
null) a.elem.style[a.prop] = (a.prop === "width" || a.prop === "height" ? Math.max(0, a.now) : a.now) + a.unit; else a.elem[a.prop] = a.now
}
}
}); if (c.expr && c.expr.filters) c.expr.filters.animated = function (a) { return c.grep(c.timers, function (b) { return a === b.elem }).length }; c.fn.offset = "getBoundingClientRect" in r.documentElement ? function (a) {
var b = this[0]; if (a) return this.each(function (e) { c.offset.setOffset(this, a, e) }); if (!b || !b.ownerDocument) return null; if (b === b.ownerDocument.body) return c.offset.bodyOffset(b); var d = b.getBoundingClientRect(),
f = b.ownerDocument; b = f.body; f = f.documentElement; return { top: d.top + (self.pageYOffset || c.support.boxModel && f.scrollTop || b.scrollTop) - (f.clientTop || b.clientTop || 0), left: d.left + (self.pageXOffset || c.support.boxModel && f.scrollLeft || b.scrollLeft) - (f.clientLeft || b.clientLeft || 0)}
} : function (a) {
var b = this[0]; if (a) return this.each(function (s) { c.offset.setOffset(this, a, s) }); if (!b || !b.ownerDocument) return null; if (b === b.ownerDocument.body) return c.offset.bodyOffset(b); c.offset.initialize(); var d = b.offsetParent, f =
b, e = b.ownerDocument, i, j = e.documentElement, n = e.body; f = (e = e.defaultView) ? e.getComputedStyle(b, null) : b.currentStyle; for (var o = b.offsetTop, m = b.offsetLeft; (b = b.parentNode) && b !== n && b !== j; ) {
if (c.offset.supportsFixedPosition && f.position === "fixed") break; i = e ? e.getComputedStyle(b, null) : b.currentStyle; o -= b.scrollTop; m -= b.scrollLeft; if (b === d) {
o += b.offsetTop; m += b.offsetLeft; if (c.offset.doesNotAddBorder && !(c.offset.doesAddBorderForTableAndCells && /^t(able|d|h)$/i.test(b.nodeName))) {
o += parseFloat(i.borderTopWidth) ||
0; m += parseFloat(i.borderLeftWidth) || 0
} f = d; d = b.offsetParent
} if (c.offset.subtractsBorderForOverflowNotVisible && i.overflow !== "visible") { o += parseFloat(i.borderTopWidth) || 0; m += parseFloat(i.borderLeftWidth) || 0 } f = i
} if (f.position === "relative" || f.position === "static") { o += n.offsetTop; m += n.offsetLeft } if (c.offset.supportsFixedPosition && f.position === "fixed") { o += Math.max(j.scrollTop, n.scrollTop); m += Math.max(j.scrollLeft, n.scrollLeft) } return { top: o, left: m}
}; c.offset = { initialize: function () {
var a = r.body, b = r.createElement("div"),
d, f, e, i = parseFloat(c.curCSS(a, "marginTop", true)) || 0; c.extend(b.style, { position: "absolute", top: 0, left: 0, margin: 0, border: 0, width: "1px", height: "1px", visibility: "hidden" }); b.innerHTML = "<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>"; a.insertBefore(b, a.firstChild);
d = b.firstChild; f = d.firstChild; e = d.nextSibling.firstChild.firstChild; this.doesNotAddBorder = f.offsetTop !== 5; this.doesAddBorderForTableAndCells = e.offsetTop === 5; f.style.position = "fixed"; f.style.top = "20px"; this.supportsFixedPosition = f.offsetTop === 20 || f.offsetTop === 15; f.style.position = f.style.top = ""; d.style.overflow = "hidden"; d.style.position = "relative"; this.subtractsBorderForOverflowNotVisible = f.offsetTop === -5; this.doesNotIncludeMarginInBodyOffset = a.offsetTop !== i; a.removeChild(b); c.offset.initialize = c.noop
},
bodyOffset: function (a) { var b = a.offsetTop, d = a.offsetLeft; c.offset.initialize(); if (c.offset.doesNotIncludeMarginInBodyOffset) { b += parseFloat(c.curCSS(a, "marginTop", true)) || 0; d += parseFloat(c.curCSS(a, "marginLeft", true)) || 0 } return { top: b, left: d} }, setOffset: function (a, b, d) {
if (/static/.test(c.curCSS(a, "position"))) a.style.position = "relative"; var f = c(a), e = f.offset(), i = parseInt(c.curCSS(a, "top", true), 10) || 0, j = parseInt(c.curCSS(a, "left", true), 10) || 0; if (c.isFunction(b)) b = b.call(a, d, e); d = { top: b.top - e.top + i, left: b.left -
e.left + j
}; "using" in b ? b.using.call(a, d) : f.css(d)
}
}; c.fn.extend({ position: function () { if (!this[0]) return null; var a = this[0], b = this.offsetParent(), d = this.offset(), f = /^body|html$/i.test(b[0].nodeName) ? { top: 0, left: 0} : b.offset(); d.top -= parseFloat(c.curCSS(a, "marginTop", true)) || 0; d.left -= parseFloat(c.curCSS(a, "marginLeft", true)) || 0; f.top += parseFloat(c.curCSS(b[0], "borderTopWidth", true)) || 0; f.left += parseFloat(c.curCSS(b[0], "borderLeftWidth", true)) || 0; return { top: d.top - f.top, left: d.left - f.left} }, offsetParent: function () {
return this.map(function () {
for (var a =
this.offsetParent || r.body; a && !/^body|html$/i.test(a.nodeName) && c.css(a, "position") === "static"; ) a = a.offsetParent; return a
})
}
}); c.each(["Left", "Top"], function (a, b) { var d = "scroll" + b; c.fn[d] = function (f) { var e = this[0], i; if (!e) return null; if (f !== v) return this.each(function () { if (i = ua(this)) i.scrollTo(!a ? f : c(i).scrollLeft(), a ? f : c(i).scrollTop()); else this[d] = f }); else return (i = ua(e)) ? "pageXOffset" in i ? i[a ? "pageYOffset" : "pageXOffset"] : c.support.boxModel && i.document.documentElement[d] || i.document.body[d] : e[d] } });
c.each(["Height", "Width"], function (a, b) {
var d = b.toLowerCase(); c.fn["inner" + b] = function () { return this[0] ? c.css(this[0], d, false, "padding") : null }; c.fn["outer" + b] = function (f) { return this[0] ? c.css(this[0], d, false, f ? "margin" : "border") : null }; c.fn[d] = function (f) {
var e = this[0]; if (!e) return f == null ? null : this; if (c.isFunction(f)) return this.each(function (i) { var j = c(this); j[d](f.call(this, i, j[d]())) }); return "scrollTo" in e && e.document ? e.document.compatMode === "CSS1Compat" && e.document.documentElement["client" + b] ||
e.document.body["client" + b] : e.nodeType === 9 ? Math.max(e.documentElement["client" + b], e.body["scroll" + b], e.documentElement["scroll" + b], e.body["offset" + b], e.documentElement["offset" + b]) : f === v ? c.css(e, d) : this.css(d, typeof f === "string" ? f : f + "px")
}
}); z.jQuery = z.$ = c
})(window);
/*
* jQuery UI Effects 1.6rc4
*
* Copyright (c) 2008 AUTHORS.txt (http://ui.jquery.com/about)
* Dual licensed under the MIT (MIT-LICENSE.txt)
* and GPL (GPL-LICENSE.txt) licenses.
*
* http://docs.jquery.com/UI/Effects/
*/
; (function ($) {
$.effects = $.effects || {}; //Add the 'effects' scope
$.extend($.effects, {
version: "1.6rc4",
save: function (el, set) {
for (var i = 0; i < set.length; i++) {
if (set[i] !== null) $.data(el[0], "ec.storage." + set[i], el[0].style[set[i]]);
}
},
restore: function (el, set) {
for (var i = 0; i < set.length; i++) {
if (set[i] !== null) el.css(set[i], $.data(el[0], "ec.storage." + set[i]));
}
},
setMode: function (el, mode) {
if (mode == 'toggle') mode = el.is(':hidden') ? 'show' : 'hide'; // Set for toggle
return mode;
},
getBaseline: function (origin, original) { // Translates a [top,left] array into a baseline value
// this should be a little more flexible in the future to handle a string & hash
var y, x;
switch (origin[0]) {
case 'top': y = 0; break;
case 'middle': y = 0.5; break;
case 'bottom': y = 1; break;
default: y = origin[0] / original.height;
};
switch (origin[1]) {
case 'left': x = 0; break;
case 'center': x = 0.5; break;
case 'right': x = 1; break;
default: x = origin[1] / original.width;
};
return { x: x, y: y };
},
createWrapper: function (el) {
if (el.parent().attr('id') == 'fxWrapper')
return el;
var props = { width: el.outerWidth({ margin: true }), height: el.outerHeight({ margin: true }), 'float': el.css('float') };
el.wrap('<div id="fxWrapper" style="font-size:100%;background:transparent;border:none;margin:0;padding:0"></div>');
var wrapper = el.parent();
if (el.css('position') == 'static') {
wrapper.css({ position: 'relative' });
el.css({ position: 'relative' });
} else {
var top = el.css('top'); if (isNaN(parseInt(top))) top = 'auto';
var left = el.css('left'); if (isNaN(parseInt(left))) left = 'auto';
wrapper.css({ position: el.css('position'), top: top, left: left, zIndex: el.css('z-index') }).show();
el.css({ position: 'relative', top: 0, left: 0 });
}
wrapper.css(props);
return wrapper;
},
removeWrapper: function (el) {
if (el.parent().attr('id') == 'fxWrapper')
return el.parent().replaceWith(el);
return el;
},
setTransition: function (el, list, factor, val) {
val = val || {};
$.each(list, function (i, x) {
unit = el.cssUnit(x);
if (unit[0] > 0) val[x] = unit[0] * factor + unit[1];
});
return val;
},
animateClass: function (value, duration, easing, callback) {
var cb = (typeof easing == "function" ? easing : (callback ? callback : null));
var ea = (typeof easing == "object" ? easing : null);
return this.each(function () {
var offset = {}; var that = $(this); var oldStyleAttr = that.attr("style") || '';
if (typeof oldStyleAttr == 'object') oldStyleAttr = oldStyleAttr["cssText"]; /* Stupidly in IE, style is a object.. */
if (value.toggle) { that.hasClass(value.toggle) ? value.remove = value.toggle : value.add = value.toggle; }
//Let's get a style offset
var oldStyle = $.extend({}, (document.defaultView ? document.defaultView.getComputedStyle(this, null) : this.currentStyle));
if (value.add) that.addClass(value.add); if (value.remove) that.removeClass(value.remove);
var newStyle = $.extend({}, (document.defaultView ? document.defaultView.getComputedStyle(this, null) : this.currentStyle));
if (value.add) that.removeClass(value.add); if (value.remove) that.addClass(value.remove);
// The main function to form the object for animation
for (var n in newStyle) {
if (typeof newStyle[n] != "function" && newStyle[n] /* No functions and null properties */
&& n.indexOf("Moz") == -1 && n.indexOf("length") == -1 /* No mozilla spezific render properties. */
&& newStyle[n] != oldStyle[n] /* Only values that have changed are used for the animation */
&& (n.match(/color/i) || (!n.match(/color/i) && !isNaN(parseInt(newStyle[n], 10)))) /* Only things that can be parsed to integers or colors */
&& (oldStyle.position != "static" || (oldStyle.position == "static" && !n.match(/left|top|bottom|right/))) /* No need for positions when dealing with static positions */
) offset[n] = newStyle[n];
}
that.animate(offset, duration, ea, function () { // Animate the newly constructed offset object
// Change style attribute back to original. For stupid IE, we need to clear the damn object.
if (typeof $(this).attr("style") == 'object') { $(this).attr("style")["cssText"] = ""; $(this).attr("style")["cssText"] = oldStyleAttr; } else $(this).attr("style", oldStyleAttr);
if (value.add) $(this).addClass(value.add); if (value.remove) $(this).removeClass(value.remove);
if (cb) cb.apply(this, arguments);
});
});
}
});
//Extend the methods of jQuery
$.fn.extend({
//Save old methods
_show: $.fn.show,
_hide: $.fn.hide,
__toggle: $.fn.toggle,
_addClass: $.fn.addClass,
_removeClass: $.fn.removeClass,
_toggleClass: $.fn.toggleClass,
// New ec methods
effect: function (fx, o, speed, callback) {
return $.effects[fx] ? $.effects[fx].call(this, { method: fx, options: o || {}, duration: speed, callback: callback }) : null;
},
show: function () {
if (!arguments[0] || (arguments[0].constructor == Number || /(slow|normal|fast)/.test(arguments[0])))
return this._show.apply(this, arguments);
else {
var o = arguments[1] || {}; o['mode'] = 'show';
return this.effect.apply(this, [arguments[0], o, arguments[2] || o.duration, arguments[3] || o.callback]);
}
},
hide: function () {
if (!arguments[0] || (arguments[0].constructor == Number || /(slow|normal|fast)/.test(arguments[0])))
return this._hide.apply(this, arguments);
else {
var o = arguments[1] || {}; o['mode'] = 'hide';
return this.effect.apply(this, [arguments[0], o, arguments[2] || o.duration, arguments[3] || o.callback]);
}
},
toggle: function () {
if (!arguments[0] || (arguments[0].constructor == Number || /(slow|normal|fast)/.test(arguments[0])) || (arguments[0].constructor == Function))
return this.__toggle.apply(this, arguments);
else {
var o = arguments[1] || {}; o['mode'] = 'toggle';
return this.effect.apply(this, [arguments[0], o, arguments[2] || o.duration, arguments[3] || o.callback]);
}
},
addClass: function (classNames, speed, easing, callback) {
return speed ? $.effects.animateClass.apply(this, [{ add: classNames }, speed, easing, callback]) : this._addClass(classNames);
},
removeClass: function (classNames, speed, easing, callback) {
return speed ? $.effects.animateClass.apply(this, [{ remove: classNames }, speed, easing, callback]) : this._removeClass(classNames);
},
toggleClass: function (classNames, speed, easing, callback) {
return speed ? $.effects.animateClass.apply(this, [{ toggle: classNames }, speed, easing, callback]) : this._toggleClass(classNames);
},
morph: function (remove, add, speed, easing, callback) {
return $.effects.animateClass.apply(this, [{ add: add, remove: remove }, speed, easing, callback]);
},
switchClass: function () {
return this.morph.apply(this, arguments);
},
// helper functions
cssUnit: function (key) {
var style = this.css(key), val = [];
$.each(['em', 'px', '%', 'pt'], function (i, unit) {
if (style.indexOf(unit) > 0)
val = [parseFloat(style), unit];
});
return val;
}
});
/*
* jQuery Color Animations
* Copyright 2007 John Resig
* Released under the MIT and GPL licenses.
*/
// We override the animation for all of these color styles
$.each(['backgroundColor', 'borderBottomColor', 'borderLeftColor', 'borderRightColor', 'borderTopColor', 'color', 'outlineColor'], function (i, attr) {
$.fx.step[attr] = function (fx) {
if (fx.state == 0) {
fx.start = getColor(fx.elem, attr);
fx.end = getRGB(fx.end);
}
fx.elem.style[attr] = "rgb(" + [
Math.max(Math.min(parseInt((fx.pos * (fx.end[0] - fx.start[0])) + fx.start[0]), 255), 0),
Math.max(Math.min(parseInt((fx.pos * (fx.end[1] - fx.start[1])) + fx.start[1]), 255), 0),
Math.max(Math.min(parseInt((fx.pos * (fx.end[2] - fx.start[2])) + fx.start[2]), 255), 0)
].join(",") + ")";
}
});
// Color Conversion functions from highlightFade
// By Blair Mitchelmore
// http://jquery.offput.ca/highlightFade/
// Parse strings looking for color tuples [255,255,255]
function getRGB(color) {
var result;
// Check if we're already dealing with an array of colors
if (color && color.constructor == Array && color.length == 3)
return color;
// Look for rgb(num,num,num)
if (result = /rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(color))
return [parseInt(result[1]), parseInt(result[2]), parseInt(result[3])];
// Look for rgb(num%,num%,num%)
if (result = /rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(color))
return [parseFloat(result[1]) * 2.55, parseFloat(result[2]) * 2.55, parseFloat(result[3]) * 2.55];
// Look for #a0b1c2
if (result = /#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(color))
return [parseInt(result[1], 16), parseInt(result[2], 16), parseInt(result[3], 16)];
// Look for #fff
if (result = /#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(color))
return [parseInt(result[1] + result[1], 16), parseInt(result[2] + result[2], 16), parseInt(result[3] + result[3], 16)];
// Look for rgba(0, 0, 0, 0) == transparent in Safari 3
if (result = /rgba\(0, 0, 0, 0\)/.exec(color))
return colors['transparent'];
// Otherwise, we're most likely dealing with a named color
return colors[$.trim(color).toLowerCase()];
}
function getColor(elem, attr) {
var color;
do {
color = $.curCSS(elem, attr);
// Keep going until we find an element that has color, or we hit the body
if (color != '' && color != 'transparent' || $.nodeName(elem, "body"))
break;
attr = "backgroundColor";
} while (elem = elem.parentNode);
return getRGB(color);
};
// Some named colors to work with
// From Interface by Stefan Petre
// http://interface.eyecon.ro/
var colors = {
aqua: [0, 255, 255],
azure: [240, 255, 255],
beige: [245, 245, 220],
black: [0, 0, 0],
blue: [0, 0, 255],
brown: [165, 42, 42],
cyan: [0, 255, 255],
darkblue: [0, 0, 139],
darkcyan: [0, 139, 139],
darkgrey: [169, 169, 169],
darkgreen: [0, 100, 0],
darkkhaki: [189, 183, 107],
darkmagenta: [139, 0, 139],
darkolivegreen: [85, 107, 47],
darkorange: [255, 140, 0],
darkorchid: [153, 50, 204],
darkred: [139, 0, 0],
darksalmon: [233, 150, 122],
darkviolet: [148, 0, 211],
fuchsia: [255, 0, 255],
gold: [255, 215, 0],
green: [0, 128, 0],
indigo: [75, 0, 130],
khaki: [240, 230, 140],
lightblue: [173, 216, 230],
lightcyan: [224, 255, 255],
lightgreen: [144, 238, 144],
lightgrey: [211, 211, 211],
lightpink: [255, 182, 193],
lightyellow: [255, 255, 224],
lime: [0, 255, 0],
magenta: [255, 0, 255],
maroon: [128, 0, 0],
navy: [0, 0, 128],
olive: [128, 128, 0],
orange: [255, 165, 0],
pink: [255, 192, 203],
purple: [128, 0, 128],
violet: [128, 0, 128],
red: [255, 0, 0],
silver: [192, 192, 192],
white: [255, 255, 255],
yellow: [255, 255, 0],
transparent: [255, 255, 255]
};
/*
* jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/
*
* Uses the built in easing capabilities added In jQuery 1.1
* to offer multiple easing options
*
* TERMS OF USE - jQuery Easing
*
* Open source under the BSD License.
*
* Copyright © 2008 George McGinley Smith
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification,
* are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice, this list of
* conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice, this list
* of conditions and the following disclaimer in the documentation and/or other materials
* provided with the distribution.
*
* Neither the name of the author nor the names of contributors may be used to endorse
* or promote products derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
* GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
* OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
// t: current time, b: begInnIng value, c: change In value, d: duration
$.easing.jswing = $.easing.swing;
$.extend($.easing,
{
def: 'easeOutQuad',
swing: function (x, t, b, c, d) {
//alert($.easing.default);
return $.easing[$.easing.def](x, t, b, c, d);
},
easeInQuad: function (x, t, b, c, d) {
return c * (t /= d) * t + b;
},
easeOutQuad: function (x, t, b, c, d) {
return -c * (t /= d) * (t - 2) + b;
},
easeInOutQuad: function (x, t, b, c, d) {
if ((t /= d / 2) < 1) return c / 2 * t * t + b;
return -c / 2 * ((--t) * (t - 2) - 1) + b;
},
easeInCubic: function (x, t, b, c, d) {
return c * (t /= d) * t * t + b;
},
easeOutCubic: function (x, t, b, c, d) {
return c * ((t = t / d - 1) * t * t + 1) + b;
},
easeInOutCubic: function (x, t, b, c, d) {
if ((t /= d / 2) < 1) return c / 2 * t * t * t + b;
return c / 2 * ((t -= 2) * t * t + 2) + b;
},
easeInQuart: function (x, t, b, c, d) {
return c * (t /= d) * t * t * t + b;
},
easeOutQuart: function (x, t, b, c, d) {
return -c * ((t = t / d - 1) * t * t * t - 1) + b;
},
easeInOutQuart: function (x, t, b, c, d) {
if ((t /= d / 2) < 1) return c / 2 * t * t * t * t + b;
return -c / 2 * ((t -= 2) * t * t * t - 2) + b;
},
easeInQuint: function (x, t, b, c, d) {
return c * (t /= d) * t * t * t * t + b;
},
easeOutQuint: function (x, t, b, c, d) {
return c * ((t = t / d - 1) * t * t * t * t + 1) + b;
},
easeInOutQuint: function (x, t, b, c, d) {
if ((t /= d / 2) < 1) return c / 2 * t * t * t * t * t + b;
return c / 2 * ((t -= 2) * t * t * t * t + 2) + b;
},
easeInSine: function (x, t, b, c, d) {
return -c * Math.cos(t / d * (Math.PI / 2)) + c + b;
},
easeOutSine: function (x, t, b, c, d) {
return c * Math.sin(t / d * (Math.PI / 2)) + b;
},
easeInOutSine: function (x, t, b, c, d) {
return -c / 2 * (Math.cos(Math.PI * t / d) - 1) + b;
},
easeInExpo: function (x, t, b, c, d) {
return (t == 0) ? b : c * Math.pow(2, 10 * (t / d - 1)) + b;
},
easeOutExpo: function (x, t, b, c, d) {
return (t == d) ? b + c : c * (-Math.pow(2, -10 * t / d) + 1) + b;
},
easeInOutExpo: function (x, t, b, c, d) {
if (t == 0) return b;
if (t == d) return b + c;
if ((t /= d / 2) < 1) return c / 2 * Math.pow(2, 10 * (t - 1)) + b;
return c / 2 * (-Math.pow(2, -10 * --t) + 2) + b;
},
easeInCirc: function (x, t, b, c, d) {
return -c * (Math.sqrt(1 - (t /= d) * t) - 1) + b;
},
easeOutCirc: function (x, t, b, c, d) {
return c * Math.sqrt(1 - (t = t / d - 1) * t) + b;
},
easeInOutCirc: function (x, t, b, c, d) {
if ((t /= d / 2) < 1) return -c / 2 * (Math.sqrt(1 - t * t) - 1) + b;
return c / 2 * (Math.sqrt(1 - (t -= 2) * t) + 1) + b;
},
easeInElastic: function (x, t, b, c, d) {
var s = 1.70158; var p = 0; var a = c;
if (t == 0) return b; if ((t /= d) == 1) return b + c; if (!p) p = d * .3;
if (a < Math.abs(c)) { a = c; var s = p / 4; }
else var s = p / (2 * Math.PI) * Math.asin(c / a);
return -(a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t * d - s) * (2 * Math.PI) / p)) + b;
},
easeOutElastic: function (x, t, b, c, d) {
var s = 1.70158; var p = 0; var a = c;
if (t == 0) return b; if ((t /= d) == 1) return b + c; if (!p) p = d * .3;
if (a < Math.abs(c)) { a = c; var s = p / 4; }
else var s = p / (2 * Math.PI) * Math.asin(c / a);
return a * Math.pow(2, -10 * t) * Math.sin((t * d - s) * (2 * Math.PI) / p) + c + b;
},
easeInOutElastic: function (x, t, b, c, d) {
var s = 1.70158; var p = 0; var a = c;
if (t == 0) return b; if ((t /= d / 2) == 2) return b + c; if (!p) p = d * (.3 * 1.5);
if (a < Math.abs(c)) { a = c; var s = p / 4; }
else var s = p / (2 * Math.PI) * Math.asin(c / a);
if (t < 1) return -.5 * (a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t * d - s) * (2 * Math.PI) / p)) + b;
return a * Math.pow(2, -10 * (t -= 1)) * Math.sin((t * d - s) * (2 * Math.PI) / p) * .5 + c + b;
},
easeInBack: function (x, t, b, c, d, s) {
if (s == undefined) s = 1.70158;
return c * (t /= d) * t * ((s + 1) * t - s) + b;
},
easeOutBack: function (x, t, b, c, d, s) {
if (s == undefined) s = 1.70158;
return c * ((t = t / d - 1) * t * ((s + 1) * t + s) + 1) + b;
},
easeInOutBack: function (x, t, b, c, d, s) {
if (s == undefined) s = 1.70158;
if ((t /= d / 2) < 1) return c / 2 * (t * t * (((s *= (1.525)) + 1) * t - s)) + b;
return c / 2 * ((t -= 2) * t * (((s *= (1.525)) + 1) * t + s) + 2) + b;
},
easeInBounce: function (x, t, b, c, d) {
return c - $.easing.easeOutBounce(x, d - t, 0, c, d) + b;
},
easeOutBounce: function (x, t, b, c, d) {
if ((t /= d) < (1 / 2.75)) {
return c * (7.5625 * t * t) + b;
} else if (t < (2 / 2.75)) {
return c * (7.5625 * (t -= (1.5 / 2.75)) * t + .75) + b;
} else if (t < (2.5 / 2.75)) {
return c * (7.5625 * (t -= (2.25 / 2.75)) * t + .9375) + b;
} else {
return c * (7.5625 * (t -= (2.625 / 2.75)) * t + .984375) + b;
}
},
easeInOutBounce: function (x, t, b, c, d) {
if (t < d / 2) return $.easing.easeInBounce(x, t * 2, 0, c, d) * .5 + b;
return $.easing.easeOutBounce(x, t * 2 - d, 0, c, d) * .5 + c * .5 + b;
}
});
/*
*
* TERMS OF USE - EASING EQUATIONS
*
* Open source under the BSD License.
*
* Copyright © 2001 Robert Penner
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification,
* are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice, this list of
* conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice, this list
* of conditions and the following disclaimer in the documentation and/or other materials
* provided with the distribution.
*
* Neither the name of the author nor the names of contributors may be used to endorse
* or promote products derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
* GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
* OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
})(jQuery);
/*
* jQuery UI Effects Blind 1.6rc4
*
* Copyright (c) 2008 AUTHORS.txt (http://ui.jquery.com/about)
* Dual licensed under the MIT (MIT-LICENSE.txt)
* and GPL (GPL-LICENSE.txt) licenses.
*
* http://docs.jquery.com/UI/Effects/Blind
*
* Depends:
* effects.core.js
*/
(function ($) {
$.effects.blind = function (o) {
return this.queue(function () {
// Create element
var el = $(this), props = ['position', 'top', 'left'];
// Set options
var mode = $.effects.setMode(el, o.options.mode || 'hide'); // Set Mode
var direction = o.options.direction || 'vertical'; // Default direction
// Adjust
$.effects.save(el, props); el.show(); // Save & Show
var wrapper = $.effects.createWrapper(el).css({ overflow: 'hidden' }); // Create Wrapper
var ref = (direction == 'vertical') ? 'height' : 'width';
var distance = (direction == 'vertical') ? wrapper.height() : wrapper.width();
if (mode == 'show') wrapper.css(ref, 0); // Shift
// Animation
var animation = {};
animation[ref] = mode == 'show' ? distance : 0;
// Animate
wrapper.animate(animation, o.duration, o.options.easing, function () {
if (mode == 'hide') el.hide(); // Hide
$.effects.restore(el, props); $.effects.removeWrapper(el); // Restore
if (o.callback) o.callback.apply(el[0], arguments); // Callback
el.dequeue();
});
});
};
})(jQuery);
/*
* jQuery UI Effects Bounce 1.6rc4
*
* Copyright (c) 2008 AUTHORS.txt (http://ui.jquery.com/about)
* Dual licensed under the MIT (MIT-LICENSE.txt)
* and GPL (GPL-LICENSE.txt) licenses.
*
* http://docs.jquery.com/UI/Effects/Bounce
*
* Depends:
* effects.core.js
*/
(function ($) {
$.effects.bounce = function (o) {
return this.queue(function () {
// Create element
var el = $(this), props = ['position', 'top', 'left'];
// Set options
var mode = $.effects.setMode(el, o.options.mode || 'effect'); // Set Mode
var direction = o.options.direction || 'up'; // Default direction
var distance = o.options.distance || 20; // Default distance
var times = o.options.times || 5; // Default # of times
var speed = o.duration || 250; // Default speed per bounce
if (/show|hide/.test(mode)) props.push('opacity'); // Avoid touching opacity to prevent clearType and PNG issues in IE
// Adjust
$.effects.save(el, props); el.show(); // Save & Show
$.effects.createWrapper(el); // Create Wrapper
var ref = (direction == 'up' || direction == 'down') ? 'top' : 'left';
var motion = (direction == 'up' || direction == 'left') ? 'pos' : 'neg';
var distance = o.options.distance || (ref == 'top' ? el.outerHeight({ margin: true }) / 3 : el.outerWidth({ margin: true }) / 3);
if (mode == 'show') el.css('opacity', 0).css(ref, motion == 'pos' ? -distance : distance); // Shift
if (mode == 'hide') distance = distance / (times * 2);
if (mode != 'hide') times--;
// Animate
if (mode == 'show') { // Show Bounce
var animation = { opacity: 1 };
animation[ref] = (motion == 'pos' ? '+=' : '-=') + distance;
el.animate(animation, speed / 2, o.options.easing);
distance = distance / 2;
times--;
};
for (var i = 0; i < times; i++) { // Bounces
var animation1 = {}, animation2 = {};
animation1[ref] = (motion == 'pos' ? '-=' : '+=') + distance;
animation2[ref] = (motion == 'pos' ? '+=' : '-=') + distance;
el.animate(animation1, speed / 2, o.options.easing).animate(animation2, speed / 2, o.options.easing);
distance = (mode == 'hide') ? distance * 2 : distance / 2;
};
if (mode == 'hide') { // Last Bounce
var animation = { opacity: 0 };
animation[ref] = (motion == 'pos' ? '-=' : '+=') + distance;
el.animate(animation, speed / 2, o.options.easing, function () {
el.hide(); // Hide
$.effects.restore(el, props); $.effects.removeWrapper(el); // Restore
if (o.callback) o.callback.apply(this, arguments); // Callback
});
} else {
var animation1 = {}, animation2 = {};
animation1[ref] = (motion == 'pos' ? '-=' : '+=') + distance;
animation2[ref] = (motion == 'pos' ? '+=' : '-=') + distance;
el.animate(animation1, speed / 2, o.options.easing).animate(animation2, speed / 2, o.options.easing, function () {
$.effects.restore(el, props); $.effects.removeWrapper(el); // Restore
if (o.callback) o.callback.apply(this, arguments); // Callback
});
};
el.queue('fx', function () { el.dequeue(); });
el.dequeue();
});
};
})(jQuery);
/*
* jQuery UI Effects Clip 1.6rc4
*
* Copyright (c) 2008 AUTHORS.txt (http://ui.jquery.com/about)
* Dual licensed under the MIT (MIT-LICENSE.txt)
* and GPL (GPL-LICENSE.txt) licenses.
*
* http://docs.jquery.com/UI/Effects/Clip
*
* Depends:
* effects.core.js
*/
(function ($) {
$.effects.clip = function (o) {
return this.queue(function () {
// Create element
var el = $(this), props = ['position', 'top', 'left', 'height', 'width'];
// Set options
var mode = $.effects.setMode(el, o.options.mode || 'hide'); // Set Mode
var direction = o.options.direction || 'vertical'; // Default direction
// Adjust
$.effects.save(el, props); el.show(); // Save & Show
var wrapper = $.effects.createWrapper(el).css({ overflow: 'hidden' }); // Create Wrapper
var animate = el[0].tagName == 'IMG' ? wrapper : el;
var ref = {
size: (direction == 'vertical') ? 'height' : 'width',
position: (direction == 'vertical') ? 'top' : 'left'
};
var distance = (direction == 'vertical') ? animate.height() : animate.width();
if (mode == 'show') { animate.css(ref.size, 0); animate.css(ref.position, distance / 2); } // Shift
// Animation
var animation = {};
animation[ref.size] = mode == 'show' ? distance : 0;
animation[ref.position] = mode == 'show' ? 0 : distance / 2;
// Animate
animate.animate(animation, { queue: false, duration: o.duration, easing: o.options.easing, complete: function () {
if (mode == 'hide') el.hide(); // Hide
$.effects.restore(el, props); $.effects.removeWrapper(el); // Restore
if (o.callback) o.callback.apply(el[0], arguments); // Callback
el.dequeue();
}
});
});
};
})(jQuery);
/*
* jQuery UI Effects Drop 1.6rc4
*
* Copyright (c) 2008 AUTHORS.txt (http://ui.jquery.com/about)
* Dual licensed under the MIT (MIT-LICENSE.txt)
* and GPL (GPL-LICENSE.txt) licenses.
*
* http://docs.jquery.com/UI/Effects/Drop
*
* Depends:
* effects.core.js
*/
(function ($) {
$.effects.drop = function (o) {
return this.queue(function () {
// Create element
var el = $(this), props = ['position', 'top', 'left', 'opacity'];
// Set options
var mode = $.effects.setMode(el, o.options.mode || 'hide'); // Set Mode
var direction = o.options.direction || 'left'; // Default Direction
// Adjust
$.effects.save(el, props); el.show(); // Save & Show
$.effects.createWrapper(el); // Create Wrapper
var ref = (direction == 'up' || direction == 'down') ? 'top' : 'left';
var motion = (direction == 'up' || direction == 'left') ? 'pos' : 'neg';
var distance = o.options.distance || (ref == 'top' ? el.outerHeight({ margin: true }) / 2 : el.outerWidth({ margin: true }) / 2);
if (mode == 'show') el.css('opacity', 0).css(ref, motion == 'pos' ? -distance : distance); // Shift
// Animation
var animation = { opacity: mode == 'show' ? 1 : 0 };
animation[ref] = (mode == 'show' ? (motion == 'pos' ? '+=' : '-=') : (motion == 'pos' ? '-=' : '+=')) + distance;
// Animate
el.animate(animation, { queue: false, duration: o.duration, easing: o.options.easing, complete: function () {
if (mode == 'hide') el.hide(); // Hide
$.effects.restore(el, props); $.effects.removeWrapper(el); // Restore
if (o.callback) o.callback.apply(this, arguments); // Callback
el.dequeue();
}
});
});
};
})(jQuery);
/*
* jQuery UI Effects Explode 1.6rc4
*
* Copyright (c) 2008 AUTHORS.txt (http://ui.jquery.com/about)
* Dual licensed under the MIT (MIT-LICENSE.txt)
* and GPL (GPL-LICENSE.txt) licenses.
*
* http://docs.jquery.com/UI/Effects/Explode
*
* Depends:
* effects.core.js
*/
(function ($) {
$.effects.explode = function (o) {
return this.queue(function () {
var rows = o.options.pieces ? Math.round(Math.sqrt(o.options.pieces)) : 3;
var cells = o.options.pieces ? Math.round(Math.sqrt(o.options.pieces)) : 3;
o.options.mode = o.options.mode == 'toggle' ? ($(this).is(':visible') ? 'hide' : 'show') : o.options.mode;
var el = $(this).show().css('visibility', 'hidden');
var offset = el.offset();
//Substract the margins - not fixing the problem yet.
offset.top -= parseInt(el.css("marginTop")) || 0;
offset.left -= parseInt(el.css("marginLeft")) || 0;
var width = el.outerWidth(true);
var height = el.outerHeight(true);
for (var i = 0; i < rows; i++) { // =
for (var j = 0; j < cells; j++) { // ||
el
.clone()
.appendTo('body')
.wrap('<div></div>')
.css({
position: 'absolute',
visibility: 'visible',
left: -j * (width / cells),
top: -i * (height / rows)
})
.parent()
.addClass('effects-explode')
.css({
position: 'absolute',
overflow: 'hidden',
width: width / cells,
height: height / rows,
left: offset.left + j * (width / cells) + (o.options.mode == 'show' ? (j - Math.floor(cells / 2)) * (width / cells) : 0),
top: offset.top + i * (height / rows) + (o.options.mode == 'show' ? (i - Math.floor(rows / 2)) * (height / rows) : 0),
opacity: o.options.mode == 'show' ? 0 : 1
}).animate({
left: offset.left + j * (width / cells) + (o.options.mode == 'show' ? 0 : (j - Math.floor(cells / 2)) * (width / cells)),
top: offset.top + i * (height / rows) + (o.options.mode == 'show' ? 0 : (i - Math.floor(rows / 2)) * (height / rows)),
opacity: o.options.mode == 'show' ? 1 : 0
}, o.duration || 500);
}
}
// Set a timeout, to call the callback approx. when the other animations have finished
setTimeout(function () {
o.options.mode == 'show' ? el.css({ visibility: 'visible' }) : el.css({ visibility: 'visible' }).hide();
if (o.callback) o.callback.apply(el[0]); // Callback
el.dequeue();
$('.effects-explode').remove();
}, o.duration || 500);
});
};
})(jQuery);
/*
* jQuery UI Effects Fold 1.6rc4
*
* Copyright (c) 2008 AUTHORS.txt (http://ui.jquery.com/about)
* Dual licensed under the MIT (MIT-LICENSE.txt)
* and GPL (GPL-LICENSE.txt) licenses.
*
* http://docs.jquery.com/UI/Effects/Fold
*
* Depends:
* effects.core.js
*/
(function ($) {
$.effects.fold = function (o) {
return this.queue(function () {
// Create element
var el = $(this), props = ['position', 'top', 'left'];
// Set options
var mode = $.effects.setMode(el, o.options.mode || 'hide'); // Set Mode
var size = o.options.size || 15; // Default fold size
var horizFirst = !(!o.options.horizFirst); // Ensure a boolean value
// Adjust
$.effects.save(el, props); el.show(); // Save & Show
var wrapper = $.effects.createWrapper(el).css({ overflow: 'hidden' }); // Create Wrapper
var widthFirst = ((mode == 'show') != horizFirst);
var ref = widthFirst ? ['width', 'height'] : ['height', 'width'];
var distance = widthFirst ? [wrapper.width(), wrapper.height()] : [wrapper.height(), wrapper.width()];
var percent = /([0-9]+)%/.exec(size);
if (percent) size = parseInt(percent[1]) / 100 * distance[mode == 'hide' ? 0 : 1];
if (mode == 'show') wrapper.css(horizFirst ? { height: 0, width: size} : { height: size, width: 0 }); // Shift
// Animation
var animation1 = {}, animation2 = {};
animation1[ref[0]] = mode == 'show' ? distance[0] : size;
animation2[ref[1]] = mode == 'show' ? distance[1] : 0;
// Animate
wrapper.animate(animation1, o.duration / 2, o.options.easing)
.animate(animation2, o.duration / 2, o.options.easing, function () {
if (mode == 'hide') el.hide(); // Hide
$.effects.restore(el, props); $.effects.removeWrapper(el); // Restore
if (o.callback) o.callback.apply(el[0], arguments); // Callback
el.dequeue();
});
});
};
})(jQuery);
/*
* jQuery UI Effects Highlight 1.6rc4
*
* Copyright (c) 2008 AUTHORS.txt (http://ui.jquery.com/about)
* Dual licensed under the MIT (MIT-LICENSE.txt)
* and GPL (GPL-LICENSE.txt) licenses.
*
* http://docs.jquery.com/UI/Effects/Highlight
*
* Depends:
* effects.core.js
*/
(function ($) {
$.effects.highlight = function (o) {
return this.queue(function () {
// Create element
var el = $(this), props = ['backgroundImage', 'backgroundColor', 'opacity'];
// Set options
var mode = $.effects.setMode(el, o.options.mode || 'show'); // Set Mode
var color = o.options.color || "#ffff99"; // Default highlight color
var oldColor = el.css("backgroundColor");
// Adjust
$.effects.save(el, props); el.show(); // Save & Show
el.css({ backgroundImage: 'none', backgroundColor: color }); // Shift
// Animation
var animation = { backgroundColor: oldColor };
if (mode == "hide") animation['opacity'] = 0;
// Animate
el.animate(animation, { queue: false, duration: o.duration, easing: o.options.easing, complete: function () {
if (mode == "hide") el.hide();
$.effects.restore(el, props);
if (mode == "show" && $.browser.msie) this.style.removeAttribute('filter');
if (o.callback) o.callback.apply(this, arguments);
el.dequeue();
}
});
});
};
})(jQuery);
/*
* jQuery UI Effects Pulsate 1.6rc4
*
* Copyright (c) 2008 AUTHORS.txt (http://ui.jquery.com/about)
* Dual licensed under the MIT (MIT-LICENSE.txt)
* and GPL (GPL-LICENSE.txt) licenses.
*
* http://docs.jquery.com/UI/Effects/Pulsate
*
* Depends:
* effects.core.js
*/
(function ($) {
$.effects.pulsate = function (o) {
return this.queue(function () {
// Create element
var el = $(this);
// Set options
var mode = $.effects.setMode(el, o.options.mode || 'show'); // Set Mode
var times = o.options.times || 5; // Default # of times
// Adjust
if (mode == 'hide') times--;
if (el.is(':hidden')) { // Show fadeIn
el.css('opacity', 0);
el.show(); // Show
el.animate({ opacity: 1 }, o.duration / 2, o.options.easing);
times = times - 2;
}
// Animate
for (var i = 0; i < times; i++) { // Pulsate
el.animate({ opacity: 0 }, o.duration / 2, o.options.easing).animate({ opacity: 1 }, o.duration / 2, o.options.easing);
};
if (mode == 'hide') { // Last Pulse
el.animate({ opacity: 0 }, o.duration / 2, o.options.easing, function () {
el.hide(); // Hide
if (o.callback) o.callback.apply(this, arguments); // Callback
});
} else {
el.animate({ opacity: 0 }, o.duration / 2, o.options.easing).animate({ opacity: 1 }, o.duration / 2, o.options.easing, function () {
if (o.callback) o.callback.apply(this, arguments); // Callback
});
};
el.queue('fx', function () { el.dequeue(); });
el.dequeue();
});
};
})(jQuery);
/*
* jQuery UI Effects Scale 1.6rc4
*
* Copyright (c) 2008 AUTHORS.txt (http://ui.jquery.com/about)
* Dual licensed under the MIT (MIT-LICENSE.txt)
* and GPL (GPL-LICENSE.txt) licenses.
*
* http://docs.jquery.com/UI/Effects/Scale
*
* Depends:
* effects.core.js
*/
(function ($) {
$.effects.puff = function (o) {
return this.queue(function () {
// Create element
var el = $(this);
// Set options
var options = $.extend(true, {}, o.options);
var mode = $.effects.setMode(el, o.options.mode || 'hide'); // Set Mode
var percent = parseInt(o.options.percent) || 150; // Set default puff percent
options.fade = true; // It's not a puff if it doesn't fade! :)
var original = { height: el.height(), width: el.width() }; // Save original
// Adjust
var factor = percent / 100;
el.from = (mode == 'hide') ? original : { height: original.height * factor, width: original.width * factor };
// Animation
options.from = el.from;
options.percent = (mode == 'hide') ? percent : 100;
options.mode = mode;
// Animate
el.effect('scale', options, o.duration, o.callback);
el.dequeue();
});
};
$.effects.scale = function (o) {
return this.queue(function () {
// Create element
var el = $(this);
// Set options
var options = $.extend(true, {}, o.options);
var mode = $.effects.setMode(el, o.options.mode || 'effect'); // Set Mode
var percent = parseInt(o.options.percent) || (parseInt(o.options.percent) == 0 ? 0 : (mode == 'hide' ? 0 : 100)); // Set default scaling percent
var direction = o.options.direction || 'both'; // Set default axis
var origin = o.options.origin; // The origin of the scaling
if (mode != 'effect') { // Set default origin and restore for show/hide
options.origin = origin || ['middle', 'center'];
options.restore = true;
}
var original = { height: el.height(), width: el.width() }; // Save original
el.from = o.options.from || (mode == 'show' ? { height: 0, width: 0} : original); // Default from state
// Adjust
var factor = { // Set scaling factor
y: direction != 'horizontal' ? (percent / 100) : 1,
x: direction != 'vertical' ? (percent / 100) : 1
};
el.to = { height: original.height * factor.y, width: original.width * factor.x }; // Set to state
if (o.options.fade) { // Fade option to support puff
if (mode == 'show') { el.from.opacity = 0; el.to.opacity = 1; };
if (mode == 'hide') { el.from.opacity = 1; el.to.opacity = 0; };
};
// Animation
options.from = el.from; options.to = el.to; options.mode = mode;
// Animate
el.effect('size', options, o.duration, o.callback);
el.dequeue();
});
};
$.effects.size = function (o) {
return this.queue(function () {
// Create element
var el = $(this), props = ['position', 'top', 'left', 'width', 'height', 'overflow', 'opacity'];
var props1 = ['position', 'top', 'left', 'overflow', 'opacity']; // Always restore
var props2 = ['width', 'height', 'overflow']; // Copy for children
var cProps = ['fontSize'];
var vProps = ['borderTopWidth', 'borderBottomWidth', 'paddingTop', 'paddingBottom'];
var hProps = ['borderLeftWidth', 'borderRightWidth', 'paddingLeft', 'paddingRight'];
// Set options
var mode = $.effects.setMode(el, o.options.mode || 'effect'); // Set Mode
var restore = o.options.restore || false; // Default restore
var scale = o.options.scale || 'both'; // Default scale mode
var origin = o.options.origin; // The origin of the sizing
var original = { height: el.height(), width: el.width() }; // Save original
el.from = o.options.from || original; // Default from state
el.to = o.options.to || original; // Default to state
// Adjust
if (origin) { // Calculate baseline shifts
var baseline = $.effects.getBaseline(origin, original);
el.from.top = (original.height - el.from.height) * baseline.y;
el.from.left = (original.width - el.from.width) * baseline.x;
el.to.top = (original.height - el.to.height) * baseline.y;
el.to.left = (original.width - el.to.width) * baseline.x;
};
var factor = { // Set scaling factor
from: { y: el.from.height / original.height, x: el.from.width / original.width },
to: { y: el.to.height / original.height, x: el.to.width / original.width }
};
if (scale == 'box' || scale == 'both') { // Scale the css box
if (factor.from.y != factor.to.y) { // Vertical props scaling
props = props.concat(vProps);
el.from = $.effects.setTransition(el, vProps, factor.from.y, el.from);
el.to = $.effects.setTransition(el, vProps, factor.to.y, el.to);
};
if (factor.from.x != factor.to.x) { // Horizontal props scaling
props = props.concat(hProps);
el.from = $.effects.setTransition(el, hProps, factor.from.x, el.from);
el.to = $.effects.setTransition(el, hProps, factor.to.x, el.to);
};
};
if (scale == 'content' || scale == 'both') { // Scale the content
if (factor.from.y != factor.to.y) { // Vertical props scaling
props = props.concat(cProps);
el.from = $.effects.setTransition(el, cProps, factor.from.y, el.from);
el.to = $.effects.setTransition(el, cProps, factor.to.y, el.to);
};
};
$.effects.save(el, restore ? props : props1); el.show(); // Save & Show
$.effects.createWrapper(el); // Create Wrapper
el.css('overflow', 'hidden').css(el.from); // Shift
// Animate
if (scale == 'content' || scale == 'both') { // Scale the children
vProps = vProps.concat(['marginTop', 'marginBottom']).concat(cProps); // Add margins/font-size
hProps = hProps.concat(['marginLeft', 'marginRight']); // Add margins
props2 = props.concat(vProps).concat(hProps); // Concat
el.find("*[width]").each(function () {
child = $(this);
if (restore) $.effects.save(child, props2);
var c_original = { height: child.height(), width: child.width() }; // Save original
child.from = { height: c_original.height * factor.from.y, width: c_original.width * factor.from.x };
child.to = { height: c_original.height * factor.to.y, width: c_original.width * factor.to.x };
if (factor.from.y != factor.to.y) { // Vertical props scaling
child.from = $.effects.setTransition(child, vProps, factor.from.y, child.from);
child.to = $.effects.setTransition(child, vProps, factor.to.y, child.to);
};
if (factor.from.x != factor.to.x) { // Horizontal props scaling
child.from = $.effects.setTransition(child, hProps, factor.from.x, child.from);
child.to = $.effects.setTransition(child, hProps, factor.to.x, child.to);
};
child.css(child.from); // Shift children
child.animate(child.to, o.duration, o.options.easing, function () {
if (restore) $.effects.restore(child, props2); // Restore children
}); // Animate children
});
};
// Animate
el.animate(el.to, { queue: false, duration: o.duration, easing: o.options.easing, complete: function () {
if (mode == 'hide') el.hide(); // Hide
$.effects.restore(el, restore ? props : props1); $.effects.removeWrapper(el); // Restore
if (o.callback) o.callback.apply(this, arguments); // Callback
el.dequeue();
}
});
});
};
})(jQuery);
/*
* jQuery UI Effects Shake 1.6rc4
*
* Copyright (c) 2008 AUTHORS.txt (http://ui.jquery.com/about)
* Dual licensed under the MIT (MIT-LICENSE.txt)
* and GPL (GPL-LICENSE.txt) licenses.
*
* http://docs.jquery.com/UI/Effects/Shake
*
* Depends:
* effects.core.js
*/
(function ($) {
$.effects.shake = function (o) {
return this.queue(function () {
// Create element
var el = $(this), props = ['position', 'top', 'left'];
// Set options
var mode = $.effects.setMode(el, o.options.mode || 'effect'); // Set Mode
var direction = o.options.direction || 'left'; // Default direction
var distance = o.options.distance || 20; // Default distance
var times = o.options.times || 3; // Default # of times
var speed = o.duration || o.options.duration || 140; // Default speed per shake
// Adjust
$.effects.save(el, props); el.show(); // Save & Show
$.effects.createWrapper(el); // Create Wrapper
var ref = (direction == 'up' || direction == 'down') ? 'top' : 'left';
var motion = (direction == 'up' || direction == 'left') ? 'pos' : 'neg';
// Animation
var animation = {}, animation1 = {}, animation2 = {};
animation[ref] = (motion == 'pos' ? '-=' : '+=') + distance;
animation1[ref] = (motion == 'pos' ? '+=' : '-=') + distance * 2;
animation2[ref] = (motion == 'pos' ? '-=' : '+=') + distance * 2;
// Animate
el.animate(animation, speed, o.options.easing);
for (var i = 1; i < times; i++) { // Shakes
el.animate(animation1, speed, o.options.easing).animate(animation2, speed, o.options.easing);
};
el.animate(animation1, speed, o.options.easing).
animate(animation, speed / 2, o.options.easing, function () { // Last shake
$.effects.restore(el, props); $.effects.removeWrapper(el); // Restore
if (o.callback) o.callback.apply(this, arguments); // Callback
});
el.queue('fx', function () { el.dequeue(); });
el.dequeue();
});
};
})(jQuery);
/*
* jQuery UI Effects Slide 1.6rc4
*
* Copyright (c) 2008 AUTHORS.txt (http://ui.jquery.com/about)
* Dual licensed under the MIT (MIT-LICENSE.txt)
* and GPL (GPL-LICENSE.txt) licenses.
*
* http://docs.jquery.com/UI/Effects/Slide
*
* Depends:
* effects.core.js
*/
(function ($) {
$.effects.slide = function (o) {
return this.queue(function () {
// Create element
var el = $(this), props = ['position', 'top', 'left'];
// Set options
var mode = $.effects.setMode(el, o.options.mode || 'show'); // Set Mode
var direction = o.options.direction || 'left'; // Default Direction
// Adjust
$.effects.save(el, props); el.show(); // Save & Show
$.effects.createWrapper(el).css({ overflow: 'hidden' }); // Create Wrapper
var ref = (direction == 'up' || direction == 'down') ? 'top' : 'left';
var motion = (direction == 'up' || direction == 'left') ? 'pos' : 'neg';
var distance = o.options.distance || (ref == 'top' ? el.outerHeight({ margin: true }) : el.outerWidth({ margin: true }));
if (mode == 'show') el.css(ref, motion == 'pos' ? -distance : distance); // Shift
// Animation
var animation = {};
animation[ref] = (mode == 'show' ? (motion == 'pos' ? '+=' : '-=') : (motion == 'pos' ? '-=' : '+=')) + distance;
// Animate
el.animate(animation, { queue: false, duration: o.duration, easing: o.options.easing, complete: function () {
if (mode == 'hide') el.hide(); // Hide
$.effects.restore(el, props); $.effects.removeWrapper(el); // Restore
if (o.callback) o.callback.apply(this, arguments); // Callback
el.dequeue();
}
});
});
};
})(jQuery);
/*
* jQuery UI Effects Transfer 1.6rc4
*
* Copyright (c) 2008 AUTHORS.txt (http://ui.jquery.com/about)
* Dual licensed under the MIT (MIT-LICENSE.txt)
* and GPL (GPL-LICENSE.txt) licenses.
*
* http://docs.jquery.com/UI/Effects/Transfer
*
* Depends:
* effects.core.js
*/
(function ($) {
$.effects.transfer = function (o) {
return this.queue(function () {
// Create element
var el = $(this);
// Set options
var mode = $.effects.setMode(el, o.options.mode || 'effect'); // Set Mode
var target = $(o.options.to); // Find Target
var position = el.offset();
var transfer = $('<div class="ui-effects-transfer"></div>').appendTo(document.body);
if (o.options.className) transfer.addClass(o.options.className);
// Set target css
transfer.addClass(o.options.className);
transfer.css({
top: position.top,
left: position.left,
height: el.outerHeight() - parseInt(transfer.css('borderTopWidth')) - parseInt(transfer.css('borderBottomWidth')),
width: el.outerWidth() - parseInt(transfer.css('borderLeftWidth')) - parseInt(transfer.css('borderRightWidth')),
position: 'absolute'
});
// Animation
position = target.offset();
animation = {
top: position.top,
left: position.left,
height: target.outerHeight() - parseInt(transfer.css('borderTopWidth')) - parseInt(transfer.css('borderBottomWidth')),
width: target.outerWidth() - parseInt(transfer.css('borderLeftWidth')) - parseInt(transfer.css('borderRightWidth'))
};
// Animate
transfer.animate(animation, o.duration, o.options.easing, function () {
transfer.remove(); // Remove div
if (o.callback) o.callback.apply(el[0], arguments); // Callback
el.dequeue();
});
});
};
})(jQuery);
/*
* jQuery carouFredSel 1.3.3
* www.frebsite.nl
* Copyright (c) 2010 Fred Heusschen
* Licensed under the MIT license.
* http://www.opensource.org/licenses/mit-license.php
*/
(function ($) {
$.fn.carouFredSel = function (options) {
return this.each(function () {
var opts = $.extend(true, {}, $.fn.carouFredSel.defaults, options),
$ul = $(this),
$items = $("li", $ul),
totalItems = $items.length,
nextItem = opts.visibleItems,
prevItem = totalItems - 1,
itemWidth = $items.outerWidth(),
itemHeight = $items.outerHeight(),
autoInterval = null,
direction = (opts.direction == "up" || opts.direction == "right") ? "next" : "prev";
if (opts.visibleItems >= totalItems) {
try { console.log('carouFredSel: Not enough items: terminating'); } catch (err) { }
return;
}
if (opts.scroll.items == 0) opts.scroll.items = opts.visibleItems;
opts.auto = $.extend({}, opts.scroll, opts.auto);
opts.buttons = $.extend({}, opts.scroll, opts.buttons);
opts.next = $.extend({}, opts.buttons, opts.next);
opts.prev = $.extend({}, opts.buttons, opts.prev);
if (!opts.auto.pauseDuration) opts.auto.pauseDuration = 2500;
if (opts.auto.pauseDuration == opts.auto.speed) opts.auto.speed--;
opts.buttons = null;
opts.scroll = null;
if (opts.direction == "right" ||
opts.direction == "left"
) {
var cs1 = {
width: itemWidth * totalItems * 2
}
var cs2 = {
width: opts.width || itemWidth * opts.visibleItems,
height: opts.height || itemHeight
}
} else {
var cs1 = {
height: itemHeight * totalItems * 2
}
var cs2 = {
height: opts.height || itemHeight * opts.visibleItems,
width: opts.width || itemWidth
}
}
$ul.css(cs1).css({
position: "absolute"
}).wrap('<div class="caroufredsel_wrapper" />').parent().css(cs2).css({
position: "relative",
overflow: "hidden"
});
$ul
.bind("pause", function () {
if (autoInterval != null) {
clearTimeout(autoInterval);
}
})
.bind("play", function (e, d) {
if (opts.autoPlay) {
if (d == null ||
d == '' ||
typeof (d) == 'undefined'
) {
d = direction;
}
autoInterval = setTimeout(function () {
if ($ul.is(":animated")) $ul.trigger("pause").trigger("play", d); // still animating, wait
else $ul.trigger(d, opts.auto); // scroll
}, opts.auto.pauseDuration);
}
})
.bind("next", function (e, sliderObj) {
if ($ul.is(":animated")) return;
if (typeof (sliderObj) == 'undefined') sliderObj = opts.next;
if (typeof (sliderObj) == 'object') numItems = sliderObj.items;
else if (typeof (sliderObj) == 'number') {
numItems = sliderObj;
sliderObj = opts.next;
}
if (!numItems || typeof (numItems) != 'number') return;
if (totalItems < opts.visibleItems + numItems) {
$ul.find("li:lt(" + ((opts.visibleItems + numItems) - totalItems) + ")").clone(true).appendTo($ul);
}
var currentItems = $.fn.carouFredSel.getCurrentItems($ul, opts, numItems);
if (opts.direction == "right" ||
opts.direction == "left"
) {
var pos = 'left',
siz = itemWidth;
} else {
var pos = 'top',
siz = itemHeight;
}
var ani = {},
cal = {};
ani[pos] = $ul.offset()[pos] - currentItems[0].offset()[pos] || -(siz * numItems);
cal[pos] = 0;
if (sliderObj.onBefore) {
sliderObj.onBefore(currentItems[0], currentItems[1], "next");
}
$ul
.data("numItems", numItems)
.data("sliderObj", sliderObj)
.data("oldItems", currentItems[0])
.data("newItems", currentItems[1])
.animate(ani, {
duration: sliderObj.speed,
easing: sliderObj.effect,
complete: function () {
if ($ul.data("sliderObj").onAfter) {
$ul.data("sliderObj").onAfter($ul.data("oldItems"), $ul.data("newItems"), "next");
}
if (totalItems < opts.visibleItems + $ul.data("numItems")) {
$ul.find("li:gt(" + (totalItems - 1) + ")").remove();
}
$ul.css(cal).find("li:lt(" + $ul.data("numItems") + ")").appendTo($ul);
}
});
// auto-play
$ul.trigger("pause").trigger("play", "next");
})
.bind("prev", function (e, sliderObj) {
if ($ul.is(":animated")) return;
if (typeof (sliderObj) == 'undefined') sliderObj = opts.prev;
if (typeof (sliderObj) == 'object') numItems = sliderObj.items;
else if (typeof (sliderObj) == 'number') {
numItems = sliderObj;
sliderObj = opts.prev;
}
if (!numItems || typeof (numItems) != 'number') return;
$ul.find("li:gt(" + (totalItems - numItems - 1) + ")").prependTo($ul);
if (totalItems < opts.visibleItems + numItems) {
$ul.find("li:lt(" + ((opts.visibleItems + numItems) - totalItems) + ")").clone(true).appendTo($ul);
}
var currentItems = $.fn.carouFredSel.getCurrentItems($ul, opts, numItems);
if (opts.direction == "right" ||
opts.direction == "left"
) {
var pos = 'left',
siz = itemWidth;
} else {
var pos = 'top',
siz = itemHeight;
}
var css = {},
ani = {};
css[pos] = $ul.offset()[pos] - currentItems[1].offset()[pos] || -(siz * numItems);
ani[pos] = 0;
if (sliderObj.onBefore) {
sliderObj.onBefore(currentItems[1], currentItems[0], "prev");
}
$ul
.data("numItems", numItems)
.data("sliderObj", sliderObj)
.data("oldItems", currentItems[1])
.data("newItems", currentItems[0])
.css(css)
.animate(ani, {
duration: sliderObj.speed,
easing: sliderObj.effect,
complete: function () {
if (totalItems < opts.visibleItems + $ul.data("numItems")) {
$ul.find("li:gt(" + (totalItems - 1) + ")").remove();
}
if ($ul.data("sliderObj").onAfter) {
$ul.data("sliderObj").onAfter($ul.data("oldItems"), $ul.data("newItems"), "next");
}
}
});
// auto-play
$ul.trigger("pause").trigger("play", "prev");
})
.bind("slideTo", function (e, n, d) {
if ($ul.is(":animated")) return;
if (typeof (n) == 'object') n = $ul.find('li').index(n);
if (typeof (n) == 'string') n = parseInt(n);
if (typeof (d) == 'string') d = parseInt(d);
if (typeof (d) != 'number') d = 0;
if (typeof (n) != 'number') {
try { console.log('carouFredSel: Not a valid number.'); } catch (err) { }
return;
}
n += d;
if (n < 0) n += totalItems;
if (n >= totalItems) n -= totalItems;
if (n == 0) return;
if (n < totalItems / 2) $ul.trigger("next", n);
else $ul.trigger("prev", totalItems - n);
});
if (opts.auto.pauseOnHover && opts.autoPlay) {
$ul.hover(
function () { $ul.trigger("pause"); },
function () { $ul.trigger("play", direction); }
);
}
// via prev- en/of next-buttons
if (opts.next.button != null) {
opts.next.button.click(function () {
$ul.trigger("next");
return false;
});
if (opts.next.pauseOnHover && opts.autoPlay) {
opts.next.button.hover(
function () { $ul.trigger("pause"); },
function () { $ul.trigger("play", direction); }
);
}
}
if (opts.prev.button != null) {
opts.prev.button.click(function () {
$ul.trigger("prev");
return false;
});
if (opts.prev.pauseOnHover && opts.autoPlay) {
opts.prev.button.hover(
function () { $ul.trigger("pause"); },
function () { $ul.trigger("play", direction); }
);
}
}
// via keyboard
if (opts.next.key != null ||
opts.prev.key != null
) {
if (typeof (opts.next.key) == "string") opts.next.key = $.fn.carouFredSel.getKeyCode(opts.next.key);
if (typeof (opts.prev.key) == "string") opts.prev.key = $.fn.carouFredSel.getKeyCode(opts.prev.key);
$(window).keyup(function (event) {
if (event.keyCode == opts.next.key) $ul.trigger("next");
if (event.keyCode == opts.prev.key) $ul.trigger("prev");
});
}
// via auto-play
$ul.trigger("play", direction);
});
}
$.fn.carouFredSel.defaults = {
height: null,
width: null,
visibleItems: 3,
autoPlay: true,
direction: "right",
scroll: {
items: 0,
effect: 'swing',
speed: 500,
pauseOnHover: false,
onBefore: null,
onAfter: null
}
}
$.fn.carouFredSel.getKeyCode = function (string) {
if (string == "right") return 39;
if (string == "left") return 37;
if (string == "up") return 38;
if (string == "down") return 40;
return -1;
};
$.fn.carouFredSel.getCurrentItems = function ($u, o, n) {
var oi = $u.find("li:lt(" + o.visibleItems + ")"),
ni = $u.find("li:lt(" + (o.visibleItems + n) + "):gt(" + (n - 1) + ")");
return [oi, ni];
}
})(jQuery);
/*
Copyright (c) 2010 Zachary Gramana
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, without restriction.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
*/
/*
##############################################
##### THIS CODE IS ONLY INTENDED FOR #####
##### DEMONSTRATION PURPOSES, AND HAS #####
##### NOT BEEN EVALUATED FOR USE IN #####
##### PRODUCTION ENVIRONMENT. #####
##############################################
*/
$(document).ready(function () {
// Retrieve our album.
var $script = $("#hashAlbumScript");
var hashAlbum = $script[0].text.replace(/\s/g, "");
var feedUrl = 'http://hashalbum.com/@.json?callback=?'.replace(/\@/, hashAlbum);
$script.data("hashAlbumUrl", ("http://hashalbum.com/" + hashAlbum.toLowerCase()));
$.ajax({
url: feedUrl,
dataType: 'json',
context: $script.get(),
success: GetAlbum_Callback
});
// Add an image click handler that
// will open the HashAlbum site in
// a new window.
$("#hashAlbumList").click(function () {
});
});
function GetAlbum_Callback(album) {
// $(this) should be a ref to $("#hashAlbumScript")
// Create list of items for our carosel.
// The album will be a collection of host
// objects with just one property: image_url (string).
var $albumContainer = $('<div style="width:262px;padding-left:4px;padding-top:5px;padding-bottom:5px;padding-right:7px;border:3px solid #666666;background-image:url(\'http://hashalbum.com/images/background.jpg\');"><a href="" id="hashAlbum_prev" style="float: left;position:relative;left:2px;top:25px;font-weight:bold;text-decoration:none;color:White;">< prev</a><img src="http://hashalbum.com/images/logo.png" width="100px" style="position: relative; left: 0px;" /><a href="" id="hashAlbum_next" style="float: left;position: relative;top: 25px;left:178px;font-weight:bold;text-decoration:none;color:White;">next ></a></div>');
var $albumList = $('<ul id="hashAlbumList"></ul>');
$albumList.css({ "display": "block", "list-style": "none", "margin": "0", "padding": "0" });
for (var hashItem in album) {
var image = document.createElement("img");
var linkToAlbum = document.createElement("a");
var pic = album[hashItem];
for (source in pic) {
// This loop only executes once.
var imgUrl = pic[source];
image.src = imgUrl["image_url"];
// Get the source of the image.
var hashItemParts = source.split("_");
image.title = hashItemParts[0];
image.width = 85;
image.height = 85;
image.style.borderStyle = "none";
}
linkToAlbum.href = $(this).data("hashAlbumUrl");
linkToAlbum.target = "_blank";
linkToAlbum.appendChild(image);
linkToAlbum.style.borderStyle = "none";
linkToAlbum.style.borderWidth = "0";
$("<li></li>").css({ 'display': 'block', 'list-style': 'none', 'margin': '0', 'padding': '0', 'border': '1px solid black', 'float': 'left', 'width': '85px', 'height': '85px' }).append(linkToAlbum).appendTo($albumList);
}
$albumList.appendTo($albumContainer);
var callToAction = document.createElement("div");
callToAction.style.width = "100%";
callToAction.style.textAlign = "center";
callToAction.appendChild(document.createTextNode("View the entire hashalbum at:"));
callToAction.appendChild(document.createElement("br"));
var linkText = null;
if (linkToAlbum.href.length > 35) {
linkText = linkToAlbum.href.substr(0, 35) + "...";
} else {
linkText = linkToAlbum.href;
}
linkToAlbum.innerHTML = linkText;
linkToAlbum.title = "View this at " + linkText;
callToAction.appendChild(linkToAlbum);
$albumContainer.append(callToAction);
$albumContainer.insertAfter($(this));
// Now create our carosel.
$albumList.carouFredSel({
autoPlay: true,
visibleItems: 3,
width: 261,
next: {
button: $('#hashAlbum_next'),
key: 'right'
},
prev: {
button: $('#hashAlbum_prev'),
key: 'left'
},
scroll: {
items: 3,
effect: 'easeOutBack',
speed: 750,
pauseDuration: 5000,
pauseOnHover: true
}
});
var $parent = $albumList.parent();
$parent.css("margin-left", "2px");
$albumList.css("visibility", "visible");
// Hookup our buttons.
$('#hashAlbumList li').click(function () {
$('#hashAlbumList').trigger('slideTo', [$(this), -1]);
});
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment