﻿/*!
* jQuery JavaScript Library v1.5.2
* http://jquery.com/
*
* Copyright 2011, John Resig
* Dual licensed under the MIT or GPL Version 2 licenses.
* http://jquery.org/license
*
* Includes Sizzle.js
* http://sizzlejs.com/
* Copyright 2011, The Dojo Foundation
* Released under the MIT, BSD, and GPL Licenses.
*
* Date: Thu Mar 31 15:28:23 2011 -0400
*/
(function (a, b) { function ci(a) { return d.isWindow(a) ? a : a.nodeType === 9 ? a.defaultView || a.parentWindow : !1 } function cf(a) { if (!b_[a]) { var b = d("<" + a + ">").appendTo("body"), c = b.css("display"); b.remove(); if (c === "none" || c === "") c = "block"; b_[a] = c } return b_[a] } function ce(a, b) { var c = {}; d.each(cd.concat.apply([], cd.slice(0, b)), function () { c[this] = a }); return c } function b$() { try { return new a.ActiveXObject("Microsoft.XMLHTTP") } catch (b) { } } function bZ() { try { return new a.XMLHttpRequest } catch (b) { } } function bY() { d(a).unload(function () { for (var a in bW) bW[a](0, 1) }) } function bS(a, c) { a.dataFilter && (c = a.dataFilter(c, a.dataType)); var e = a.dataTypes, f = {}, g, h, i = e.length, j, k = e[0], l, m, n, o, p; for (g = 1; g < i; g++) { if (g === 1) for (h in a.converters) typeof h === "string" && (f[h.toLowerCase()] = a.converters[h]); l = k, k = e[g]; if (k === "*") k = l; else if (l !== "*" && l !== k) { m = l + " " + k, n = f[m] || f["* " + k]; if (!n) { p = b; for (o in f) { j = o.split(" "); if (j[0] === l || j[0] === "*") { p = f[j[1] + " " + k]; if (p) { o = f[o], o === !0 ? n = p : p === !0 && (n = o); break } } } } !n && !p && d.error("No conversion from " + m.replace(" ", " to ")), n !== !0 && (c = n ? n(c) : p(o(c))) } } return c } function bR(a, c, d) { var e = a.contents, f = a.dataTypes, g = a.responseFields, h, i, j, k; for (i in g) i in d && (c[g[i]] = d[i]); while (f[0] === "*") f.shift(), h === b && (h = a.mimeType || c.getResponseHeader("content-type")); if (h) for (i in e) if (e[i] && e[i].test(h)) { f.unshift(i); break } if (f[0] in d) j = f[0]; else { for (i in d) { if (!f[0] || a.converters[i + " " + f[0]]) { j = i; break } k || (k = i) } j = j || k } if (j) { j !== f[0] && f.unshift(j); return d[j] } } function bQ(a, b, c, e) { if (d.isArray(b) && b.length) d.each(b, function (b, f) { c || bs.test(a) ? e(a, f) : bQ(a + "[" + (typeof f === "object" || d.isArray(f) ? b : "") + "]", f, c, e) }); else if (c || b == null || typeof b !== "object") e(a, b); else if (d.isArray(b) || d.isEmptyObject(b)) e(a, ""); else for (var f in b) bQ(a + "[" + f + "]", b[f], c, e) } function bP(a, c, d, e, f, g) { f = f || c.dataTypes[0], g = g || {}, g[f] = !0; var h = a[f], i = 0, j = h ? h.length : 0, k = a === bJ, l; for (; i < j && (k || !l); i++) l = h[i](c, d, e), typeof l === "string" && (!k || g[l] ? l = b : (c.dataTypes.unshift(l), l = bP(a, c, d, e, l, g))); (k || !l) && !g["*"] && (l = bP(a, c, d, e, "*", g)); return l } function bO(a) { return function (b, c) { typeof b !== "string" && (c = b, b = "*"); if (d.isFunction(c)) { var e = b.toLowerCase().split(bD), f = 0, g = e.length, h, i, j; for (; f < g; f++) h = e[f], j = /^\+/.test(h), j && (h = h.substr(1) || "*"), i = a[h] = a[h] || [], i[j ? "unshift" : "push"](c) } } } function bq(a, b, c) { var e = b === "width" ? bk : bl, f = b === "width" ? a.offsetWidth : a.offsetHeight; if (c === "border") return f; d.each(e, function () { c || (f -= parseFloat(d.css(a, "padding" + this)) || 0), c === "margin" ? f += parseFloat(d.css(a, "margin" + this)) || 0 : f -= parseFloat(d.css(a, "border" + this + "Width")) || 0 }); return f } function bc(a, b) { b.src ? d.ajax({ url: b.src, async: !1, dataType: "script" }) : d.globalEval(b.text || b.textContent || b.innerHTML || ""), b.parentNode && b.parentNode.removeChild(b) } function bb(a) { return "getElementsByTagName" in a ? a.getElementsByTagName("*") : "querySelectorAll" in a ? a.querySelectorAll("*") : [] } function ba(a, b) { if (b.nodeType === 1) { var c = b.nodeName.toLowerCase(); b.clearAttributes(), b.mergeAttributes(a); if (c === "object") b.outerHTML = a.outerHTML; else if (c !== "input" || a.type !== "checkbox" && a.type !== "radio") { if (c === "option") b.selected = a.defaultSelected; else if (c === "input" || c === "textarea") b.defaultValue = a.defaultValue } else a.checked && (b.defaultChecked = b.checked = a.checked), b.value !== a.value && (b.value = a.value); b.removeAttribute(d.expando) } } function _(a, b) { if (b.nodeType === 1 && d.hasData(a)) { var c = d.expando, e = d.data(a), f = d.data(b, e); if (e = e[c]) { var g = e.events; f = f[c] = d.extend({}, e); if (g) { delete f.handle, f.events = {}; for (var h in g) for (var i = 0, j = g[h].length; i < j; i++) d.event.add(b, h + (g[h][i].namespace ? "." : "") + g[h][i].namespace, g[h][i], g[h][i].data) } } } } function $(a, b) { return d.nodeName(a, "table") ? a.getElementsByTagName("tbody")[0] || a.appendChild(a.ownerDocument.createElement("tbody")) : a } function Q(a, b, c) { if (d.isFunction(b)) return d.grep(a, function (a, d) { var e = !!b.call(a, d, a); return e === c }); if (b.nodeType) return d.grep(a, function (a, d) { return a === b === c }); if (typeof b === "string") { var e = d.grep(a, function (a) { return a.nodeType === 1 }); if (L.test(b)) return d.filter(b, e, !c); b = d.filter(b, e) } return d.grep(a, function (a, e) { return d.inArray(a, b) >= 0 === c }) } function P(a) { return !a || !a.parentNode || a.parentNode.nodeType === 11 } function H(a, b) { return (a && a !== "*" ? a + "." : "") + b.replace(t, "`").replace(u, "&") } function G(a) { var b, c, e, f, g, h, i, j, k, l, m, n, o, p = [], q = [], s = d._data(this, "events"); if (a.liveFired !== this && s && s.live && !a.target.disabled && (!a.button || a.type !== "click")) { a.namespace && (n = new RegExp("(^|\\.)" + a.namespace.split(".").join("\\.(?:.*\\.)?") + "(\\.|$)")), a.liveFired = this; var t = s.live.slice(0); for (i = 0; i < t.length; i++) g = t[i], g.origType.replace(r, "") === a.type ? q.push(g.selector) : t.splice(i--, 1); f = d(a.target).closest(q, a.currentTarget); for (j = 0, k = f.length; j < k; j++) { m = f[j]; for (i = 0; i < t.length; i++) { g = t[i]; if (m.selector === g.selector && (!n || n.test(g.namespace)) && !m.elem.disabled) { h = m.elem, e = null; if (g.preType === "mouseenter" || g.preType === "mouseleave") a.type = g.preType, e = d(a.relatedTarget).closest(g.selector)[0]; (!e || e !== h) && p.push({ elem: h, handleObj: g, level: m.level }) } } } for (j = 0, k = p.length; j < k; j++) { f = p[j]; if (c && f.level > c) break; a.currentTarget = f.elem, a.data = f.handleObj.data, a.handleObj = f.handleObj, o = f.handleObj.origHandler.apply(f.elem, arguments); if (o === !1 || a.isPropagationStopped()) { c = f.level, o === !1 && (b = !1); if (a.isImmediatePropagationStopped()) break } } return b } } function E(a, c, e) { var f = d.extend({}, e[0]); f.type = a, f.originalEvent = {}, f.liveFired = b, d.event.handle.call(c, f), f.isDefaultPrevented() && e[0].preventDefault() } function y() { return !0 } function x() { return !1 } function i(a) { for (var b in a) if (b !== "toJSON") return !1; return !0 } function h(a, c, e) { if (e === b && a.nodeType === 1) { e = a.getAttribute("data-" + c); if (typeof e === "string") { try { e = e === "true" ? !0 : e === "false" ? !1 : e === "null" ? null : d.isNaN(e) ? g.test(e) ? d.parseJSON(e) : e : parseFloat(e) } catch (f) { } d.data(a, c, e) } else e = b } return e } var c = a.document, d = function () { function G() { if (!d.isReady) { try { c.documentElement.doScroll("left") } catch (a) { setTimeout(G, 1); return } d.ready() } } var d = function (a, b) { return new d.fn.init(a, b, g) }, e = a.jQuery, f = a.$, g, h = /^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]+)$)/, i = /\S/, j = /^\s+/, k = /\s+$/, l = /\d/, m = /^<(\w+)\s*\/?>(?:<\/\1>)?$/, n = /^[\],:{}\s]*$/, o = /\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, p = /"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, q = /(?:^|:|,)(?:\s*\[)+/g, r = /(webkit)[ \/]([\w.]+)/, s = /(opera)(?:.*version)?[ \/]([\w.]+)/, t = /(msie) ([\w.]+)/, u = /(mozilla)(?:.*? rv:([\w.]+))?/, v = navigator.userAgent, w, x, y, z = Object.prototype.toString, A = Object.prototype.hasOwnProperty, B = Array.prototype.push, C = Array.prototype.slice, D = String.prototype.trim, E = Array.prototype.indexOf, F = {}; d.fn = d.prototype = { constructor: d, init: function (a, e, f) { var g, i, j, k; if (!a) return this; if (a.nodeType) { this.context = this[0] = a, this.length = 1; return this } if (a === "body" && !e && c.body) { this.context = c, this[0] = c.body, this.selector = "body", this.length = 1; return this } if (typeof a === "string") { g = h.exec(a); if (!g || !g[1] && e) return !e || e.jquery ? (e || f).find(a) : this.constructor(e).find(a); if (g[1]) { e = e instanceof d ? e[0] : e, k = e ? e.ownerDocument || e : c, j = m.exec(a), j ? d.isPlainObject(e) ? (a = [c.createElement(j[1])], d.fn.attr.call(a, e, !0)) : a = [k.createElement(j[1])] : (j = d.buildFragment([g[1]], [k]), a = (j.cacheable ? d.clone(j.fragment) : j.fragment).childNodes); return d.merge(this, a) } i = c.getElementById(g[2]); if (i && i.parentNode) { if (i.id !== g[2]) return f.find(a); this.length = 1, this[0] = i } this.context = c, this.selector = a; return this } if (d.isFunction(a)) return f.ready(a); a.selector !== b && (this.selector = a.selector, this.context = a.context); return d.makeArray(a, this) }, selector: "", jquery: "1.5.2", length: 0, size: function () { return this.length }, toArray: function () { return C.call(this, 0) }, get: function (a) { return a == null ? this.toArray() : a < 0 ? this[this.length + a] : this[a] }, pushStack: function (a, b, c) { var e = this.constructor(); d.isArray(a) ? B.apply(e, a) : d.merge(e, a), e.prevObject = this, e.context = this.context, b === "find" ? e.selector = this.selector + (this.selector ? " " : "") + c : b && (e.selector = this.selector + "." + b + "(" + c + ")"); return e }, each: function (a, b) { return d.each(this, a, b) }, ready: function (a) { d.bindReady(), x.done(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(C.apply(this, arguments), "slice", C.call(arguments).join(",")) }, map: function (a) { return this.pushStack(d.map(this, function (b, c) { return a.call(b, c, b) })) }, end: function () { return this.prevObject || this.constructor(null) }, push: B, sort: [].sort, splice: [].splice }, d.fn.init.prototype = d.fn, d.extend = d.fn.extend = function () { var a, c, e, f, g, h, i = arguments[0] || {}, j = 1, k = arguments.length, l = !1; typeof i === "boolean" && (l = i, i = arguments[1] || {}, j = 2), typeof i !== "object" && !d.isFunction(i) && (i = {}), k === j && (i = this, --j); for (; j < k; j++) if ((a = arguments[j]) != null) for (c in a) { e = i[c], f = a[c]; if (i === f) continue; l && f && (d.isPlainObject(f) || (g = d.isArray(f))) ? (g ? (g = !1, h = e && d.isArray(e) ? e : []) : h = e && d.isPlainObject(e) ? e : {}, i[c] = d.extend(l, h, f)) : f !== b && (i[c] = f) } return i }, d.extend({ noConflict: function (b) { a.$ = f, b && (a.jQuery = e); return d }, isReady: !1, readyWait: 1, ready: function (a) { a === !0 && d.readyWait--; if (!d.readyWait || a !== !0 && !d.isReady) { if (!c.body) return setTimeout(d.ready, 1); d.isReady = !0; if (a !== !0 && --d.readyWait > 0) return; x.resolveWith(c, [d]), d.fn.trigger && d(c).trigger("ready").unbind("ready") } }, bindReady: function () { if (!x) { x = d._Deferred(); if (c.readyState === "complete") return setTimeout(d.ready, 1); if (c.addEventListener) c.addEventListener("DOMContentLoaded", y, !1), a.addEventListener("load", d.ready, !1); else if (c.attachEvent) { c.attachEvent("onreadystatechange", y), a.attachEvent("onload", d.ready); var b = !1; try { b = a.frameElement == null } catch (e) { } c.documentElement.doScroll && b && G() } } }, isFunction: function (a) { return d.type(a) === "function" }, isArray: Array.isArray || function (a) { return d.type(a) === "array" }, isWindow: function (a) { return a && typeof a === "object" && "setInterval" in a }, isNaN: function (a) { return a == null || !l.test(a) || isNaN(a) }, type: function (a) { return a == null ? String(a) : F[z.call(a)] || "object" }, isPlainObject: function (a) { if (!a || d.type(a) !== "object" || a.nodeType || d.isWindow(a)) return !1; if (a.constructor && !A.call(a, "constructor") && !A.call(a.constructor.prototype, "isPrototypeOf")) return !1; var c; for (c in a) { } return c === b || A.call(a, c) }, isEmptyObject: function (a) { for (var b in a) return !1; return !0 }, error: function (a) { throw a }, parseJSON: function (b) { if (typeof b !== "string" || !b) return null; b = d.trim(b); if (n.test(b.replace(o, "@").replace(p, "]").replace(q, ""))) return a.JSON && a.JSON.parse ? a.JSON.parse(b) : (new Function("return " + b))(); d.error("Invalid JSON: " + b) }, parseXML: function (b, c, e) { a.DOMParser ? (e = new DOMParser, c = e.parseFromString(b, "text/xml")) : (c = new ActiveXObject("Microsoft.XMLDOM"), c.async = "false", c.loadXML(b)), e = c.documentElement, (!e || !e.nodeName || e.nodeName === "parsererror") && d.error("Invalid XML: " + b); return c }, noop: function () { }, globalEval: function (a) { if (a && i.test(a)) { var b = c.head || c.getElementsByTagName("head")[0] || c.documentElement, e = c.createElement("script"); d.support.scriptEval() ? e.appendChild(c.createTextNode(a)) : e.text = a, b.insertBefore(e, b.firstChild), b.removeChild(e) } }, nodeName: function (a, b) { return a.nodeName && a.nodeName.toUpperCase() === b.toUpperCase() }, each: function (a, c, e) { var f, g = 0, h = a.length, i = h === b || d.isFunction(a); if (e) { if (i) { for (f in a) if (c.apply(a[f], e) === !1) break } else for (; g < h; ) if (c.apply(a[g++], e) === !1) break } else if (i) { for (f in a) if (c.call(a[f], f, a[f]) === !1) break } else for (var j = a[0]; g < h && c.call(j, g, j) !== !1; j = a[++g]) { } return a }, trim: D ? function (a) { return a == null ? "" : D.call(a) } : function (a) { return a == null ? "" : (a + "").replace(j, "").replace(k, "") }, makeArray: function (a, b) { var c = b || []; if (a != null) { var e = d.type(a); a.length == null || e === "string" || e === "function" || e === "regexp" || d.isWindow(a) ? B.call(c, a) : d.merge(c, a) } return c }, inArray: function (a, b) { if (b.indexOf) return b.indexOf(a); for (var c = 0, d = b.length; c < d; c++) if (b[c] === a) return c; return -1 }, merge: function (a, c) { var d = a.length, e = 0; if (typeof c.length === "number") for (var f = c.length; e < f; e++) a[d++] = c[e]; else while (c[e] !== b) a[d++] = c[e++]; a.length = d; return a }, grep: function (a, b, c) { var d = [], e; c = !!c; for (var f = 0, g = a.length; f < g; f++) e = !!b(a[f], f), c !== e && d.push(a[f]); return d }, map: function (a, b, c) { var d = [], e; for (var f = 0, g = a.length; f < g; f++) e = b(a[f], f, c), e != null && (d[d.length] = e); return d.concat.apply([], d) }, guid: 1, proxy: function (a, c, e) { arguments.length === 2 && (typeof c === "string" ? (e = a, a = e[c], c = b) : c && !d.isFunction(c) && (e = c, c = b)), !c && a && (c = function () { return a.apply(e || this, arguments) }), a && (c.guid = a.guid = a.guid || c.guid || d.guid++); return c }, access: function (a, c, e, f, g, h) { var i = a.length; if (typeof c === "object") { for (var j in c) d.access(a, j, c[j], f, g, e); return a } if (e !== b) { f = !h && f && d.isFunction(e); for (var k = 0; k < i; k++) g(a[k], c, f ? e.call(a[k], k, g(a[k], c)) : e, h); return a } return i ? g(a[0], c) : b }, now: function () { return (new Date).getTime() }, uaMatch: function (a) { a = a.toLowerCase(); var b = r.exec(a) || s.exec(a) || t.exec(a) || a.indexOf("compatible") < 0 && u.exec(a) || []; return { browser: b[1] || "", version: b[2] || "0"} }, sub: function () { function a(b, c) { return new a.fn.init(b, c) } d.extend(!0, a, this), a.superclass = this, a.fn = a.prototype = this(), a.fn.constructor = a, a.subclass = this.subclass, a.fn.init = function b(b, c) { c && c instanceof d && !(c instanceof a) && (c = a(c)); return d.fn.init.call(this, b, c, e) }, a.fn.init.prototype = a.fn; var e = a(c); return a }, browser: {} }), d.each("Boolean Number String Function Array Date RegExp Object".split(" "), function (a, b) { F["[object " + b + "]"] = b.toLowerCase() }), w = d.uaMatch(v), w.browser && (d.browser[w.browser] = !0, d.browser.version = w.version), d.browser.webkit && (d.browser.safari = !0), E && (d.inArray = function (a, b) { return E.call(b, a) }), i.test(" ") && (j = /^[\s\xA0]+/, k = /[\s\xA0]+$/), g = d(c), c.addEventListener ? y = function () { c.removeEventListener("DOMContentLoaded", y, !1), d.ready() } : c.attachEvent && (y = function () { c.readyState === "complete" && (c.detachEvent("onreadystatechange", y), d.ready()) }); return d } (), e = "then done fail isResolved isRejected promise".split(" "), f = [].slice; d.extend({ _Deferred: function () { var a = [], b, c, e, f = { done: function () { if (!e) { var c = arguments, g, h, i, j, k; b && (k = b, b = 0); for (g = 0, h = c.length; g < h; g++) i = c[g], j = d.type(i), j === "array" ? f.done.apply(f, i) : j === "function" && a.push(i); k && f.resolveWith(k[0], k[1]) } return this }, resolveWith: function (d, f) { if (!e && !b && !c) { f = f || [], c = 1; try { while (a[0]) a.shift().apply(d, f) } finally { b = [d, f], c = 0 } } return this }, resolve: function () { f.resolveWith(this, arguments); return this }, isResolved: function () { return c || b }, cancel: function () { e = 1, a = []; return this } }; return f }, Deferred: function (a) { var b = d._Deferred(), c = d._Deferred(), f; d.extend(b, { then: function (a, c) { b.done(a).fail(c); return this }, fail: c.done, rejectWith: c.resolveWith, reject: c.resolve, isRejected: c.isResolved, promise: function (a) { if (a == null) { if (f) return f; f = a = {} } var c = e.length; while (c--) a[e[c]] = b[e[c]]; return a } }), b.done(c.cancel).fail(b.cancel), delete b.cancel, a && a.call(b, b); return b }, when: function (a) { function i(a) { return function (c) { b[a] = arguments.length > 1 ? f.call(arguments, 0) : c, --g || h.resolveWith(h, f.call(b, 0)) } } var b = arguments, c = 0, e = b.length, g = e, h = e <= 1 && a && d.isFunction(a.promise) ? a : d.Deferred(); if (e > 1) { for (; c < e; c++) b[c] && d.isFunction(b[c].promise) ? b[c].promise().then(i(c), h.reject) : --g; g || h.resolveWith(h, b) } else h !== a && h.resolveWith(h, e ? [a] : []); return h.promise() } }), function () { d.support = {}; var b = c.createElement("div"); b.style.display = "none", b.innerHTML = "   <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>"; var e = b.getElementsByTagName("*"), f = b.getElementsByTagName("a")[0], g = c.createElement("select"), h = g.appendChild(c.createElement("option")), i = b.getElementsByTagName("input")[0]; if (e && e.length && f) { d.support = { leadingWhitespace: b.firstChild.nodeType === 3, tbody: !b.getElementsByTagName("tbody").length, htmlSerialize: !!b.getElementsByTagName("link").length, style: /red/.test(f.getAttribute("style")), hrefNormalized: f.getAttribute("href") === "/a", opacity: /^0.55$/.test(f.style.opacity), cssFloat: !!f.style.cssFloat, checkOn: i.value === "on", optSelected: h.selected, deleteExpando: !0, optDisabled: !1, checkClone: !1, noCloneEvent: !0, noCloneChecked: !0, boxModel: null, inlineBlockNeedsLayout: !1, shrinkWrapBlocks: !1, reliableHiddenOffsets: !0, reliableMarginRight: !0 }, i.checked = !0, d.support.noCloneChecked = i.cloneNode(!0).checked, g.disabled = !0, d.support.optDisabled = !h.disabled; var j = null; d.support.scriptEval = function () { if (j === null) { var b = c.documentElement, e = c.createElement("script"), f = "script" + d.now(); try { e.appendChild(c.createTextNode("window." + f + "=1;")) } catch (g) { } b.insertBefore(e, b.firstChild), a[f] ? (j = !0, delete a[f]) : j = !1, b.removeChild(e) } return j }; try { delete b.test } catch (k) { d.support.deleteExpando = !1 } !b.addEventListener && b.attachEvent && b.fireEvent && (b.attachEvent("onclick", function l() { d.support.noCloneEvent = !1, b.detachEvent("onclick", l) }), b.cloneNode(!0).fireEvent("onclick")), b = c.createElement("div"), b.innerHTML = "<input type='radio' name='radiotest' checked='checked'/>"; var m = c.createDocumentFragment(); m.appendChild(b.firstChild), d.support.checkClone = m.cloneNode(!0).cloneNode(!0).lastChild.checked, d(function () { var a = c.createElement("div"), b = c.getElementsByTagName("body")[0]; if (b) { a.style.width = a.style.paddingLeft = "1px", b.appendChild(a), d.boxModel = d.support.boxModel = a.offsetWidth === 2, "zoom" in a.style && (a.style.display = "inline", a.style.zoom = 1, d.support.inlineBlockNeedsLayout = a.offsetWidth === 2, a.style.display = "", a.innerHTML = "<div style='width:4px;'></div>", d.support.shrinkWrapBlocks = a.offsetWidth !== 2), a.innerHTML = "<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>"; var e = a.getElementsByTagName("td"); d.support.reliableHiddenOffsets = e[0].offsetHeight === 0, e[0].style.display = "", e[1].style.display = "none", d.support.reliableHiddenOffsets = d.support.reliableHiddenOffsets && e[0].offsetHeight === 0, a.innerHTML = "", c.defaultView && c.defaultView.getComputedStyle && (a.style.width = "1px", a.style.marginRight = "0", d.support.reliableMarginRight = (parseInt(c.defaultView.getComputedStyle(a, null).marginRight, 10) || 0) === 0), b.removeChild(a).style.display = "none", a = e = null } }); var n = function (a) { var b = c.createElement("div"); a = "on" + a; if (!b.attachEvent) return !0; var d = a in b; d || (b.setAttribute(a, "return;"), d = typeof b[a] === "function"); return d }; d.support.submitBubbles = n("submit"), d.support.changeBubbles = n("change"), b = e = f = null } } (); var g = /^(?:\{.*\}|\[.*\])$/; d.extend({ cache: {}, uuid: 0, expando: "jQuery" + (d.fn.jquery + Math.random()).replace(/\D/g, ""), noData: { embed: !0, object: "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000", applet: !0 }, hasData: function (a) { a = a.nodeType ? d.cache[a[d.expando]] : a[d.expando]; return !!a && !i(a) }, data: function (a, c, e, f) { if (d.acceptData(a)) { var g = d.expando, h = typeof c === "string", i, j = a.nodeType, k = j ? d.cache : a, l = j ? a[d.expando] : a[d.expando] && d.expando; if ((!l || f && l && !k[l][g]) && h && e === b) return; l || (j ? a[d.expando] = l = ++d.uuid : l = d.expando), k[l] || (k[l] = {}, j || (k[l].toJSON = d.noop)); if (typeof c === "object" || typeof c === "function") f ? k[l][g] = d.extend(k[l][g], c) : k[l] = d.extend(k[l], c); i = k[l], f && (i[g] || (i[g] = {}), i = i[g]), e !== b && (i[c] = e); if (c === "events" && !i[c]) return i[g] && i[g].events; return h ? i[c] : i } }, removeData: function (b, c, e) { if (d.acceptData(b)) { var f = d.expando, g = b.nodeType, h = g ? d.cache : b, j = g ? b[d.expando] : d.expando; if (!h[j]) return; if (c) { var k = e ? h[j][f] : h[j]; if (k) { delete k[c]; if (!i(k)) return } } if (e) { delete h[j][f]; if (!i(h[j])) return } var l = h[j][f]; d.support.deleteExpando || h != a ? delete h[j] : h[j] = null, l ? (h[j] = {}, g || (h[j].toJSON = d.noop), h[j][f] = l) : g && (d.support.deleteExpando ? delete b[d.expando] : b.removeAttribute ? b.removeAttribute(d.expando) : b[d.expando] = null) } }, _data: function (a, b, c) { return d.data(a, b, c, !0) }, acceptData: function (a) { if (a.nodeName) { var b = d.noData[a.nodeName.toLowerCase()]; if (b) return b !== !0 && a.getAttribute("classid") === b } return !0 } }), d.fn.extend({ data: function (a, c) { var e = null; if (typeof a === "undefined") { if (this.length) { e = d.data(this[0]); if (this[0].nodeType === 1) { var f = this[0].attributes, g; for (var i = 0, j = f.length; i < j; i++) g = f[i].name, g.indexOf("data-") === 0 && (g = g.substr(5), h(this[0], g, e[g])) } } return e } if (typeof a === "object") return this.each(function () { d.data(this, a) }); var k = a.split("."); k[1] = k[1] ? "." + k[1] : ""; if (c === b) { e = this.triggerHandler("getData" + k[1] + "!", [k[0]]), e === b && this.length && (e = d.data(this[0], a), e = h(this[0], a, e)); return e === b && k[1] ? this.data(k[0]) : e } return this.each(function () { var b = d(this), e = [k[0], c]; b.triggerHandler("setData" + k[1] + "!", e), d.data(this, a, c), b.triggerHandler("changeData" + k[1] + "!", e) }) }, removeData: function (a) { return this.each(function () { d.removeData(this, a) }) } }), d.extend({ queue: function (a, b, c) { if (a) { b = (b || "fx") + "queue"; var e = d._data(a, b); if (!c) return e || []; !e || d.isArray(c) ? e = d._data(a, b, d.makeArray(c)) : e.push(c); return e } }, dequeue: function (a, b) { b = b || "fx"; var c = d.queue(a, b), e = c.shift(); e === "inprogress" && (e = c.shift()), e && (b === "fx" && c.unshift("inprogress"), e.call(a, function () { d.dequeue(a, b) })), c.length || d.removeData(a, b + "queue", !0) } }), d.fn.extend({ queue: function (a, c) { typeof a !== "string" && (c = a, a = "fx"); if (c === b) return d.queue(this[0], a); return this.each(function (b) { var e = d.queue(this, a, c); a === "fx" && e[0] !== "inprogress" && d.dequeue(this, a) }) }, dequeue: function (a) { return this.each(function () { d.dequeue(this, a) }) }, delay: function (a, b) { a = d.fx ? d.fx.speeds[a] || a : a, b = b || "fx"; return this.queue(b, function () { var c = this; setTimeout(function () { d.dequeue(c, b) }, a) }) }, clearQueue: function (a) { return this.queue(a || "fx", []) } }); var j = /[\n\t\r]/g, k = /\s+/, l = /\r/g, m = /^(?:href|src|style)$/, n = /^(?:button|input)$/i, o = /^(?:button|input|object|select|textarea)$/i, p = /^a(?:rea)?$/i, q = /^(?:radio|checkbox)$/i; d.props = { "for": "htmlFor", "class": "className", readonly: "readOnly", maxlength: "maxLength", cellspacing: "cellSpacing", rowspan: "rowSpan", colspan: "colSpan", tabindex: "tabIndex", usemap: "useMap", frameborder: "frameBorder" }, d.fn.extend({ attr: function (a, b) { return d.access(this, a, b, !0, d.attr) }, removeAttr: function (a, b) { return this.each(function () { d.attr(this, a, ""), this.nodeType === 1 && this.removeAttribute(a) }) }, addClass: function (a) { if (d.isFunction(a)) return this.each(function (b) { var c = d(this); c.addClass(a.call(this, b, c.attr("class"))) }); if (a && typeof a === "string") { var b = (a || "").split(k); for (var c = 0, e = this.length; c < e; c++) { var f = this[c]; if (f.nodeType === 1) if (f.className) { var g = " " + f.className + " ", h = f.className; for (var i = 0, j = b.length; i < j; i++) g.indexOf(" " + b[i] + " ") < 0 && (h += " " + b[i]); f.className = d.trim(h) } else f.className = a } } return this }, removeClass: function (a) { if (d.isFunction(a)) return this.each(function (b) { var c = d(this); c.removeClass(a.call(this, b, c.attr("class"))) }); if (a && typeof a === "string" || a === b) { var c = (a || "").split(k); for (var e = 0, f = this.length; e < f; e++) { var g = this[e]; if (g.nodeType === 1 && g.className) if (a) { var h = (" " + g.className + " ").replace(j, " "); for (var i = 0, l = c.length; i < l; i++) h = h.replace(" " + c[i] + " ", " "); g.className = d.trim(h) } else g.className = "" } } return this }, toggleClass: function (a, b) { var c = typeof a, e = typeof b === "boolean"; if (d.isFunction(a)) return this.each(function (c) { var e = d(this); e.toggleClass(a.call(this, c, e.attr("class"), b), b) }); return this.each(function () { if (c === "string") { var f, g = 0, h = d(this), i = b, j = a.split(k); while (f = j[g++]) i = e ? i : !h.hasClass(f), h[i ? "addClass" : "removeClass"](f) } else if (c === "undefined" || c === "boolean") this.className && d._data(this, "__className__", this.className), this.className = this.className || a === !1 ? "" : d._data(this, "__className__") || "" }) }, hasClass: function (a) { var b = " " + a + " "; for (var c = 0, d = this.length; c < d; c++) if ((" " + this[c].className + " ").replace(j, " ").indexOf(b) > -1) return !0; return !1 }, val: function (a) { if (!arguments.length) { var c = this[0]; if (c) { if (d.nodeName(c, "option")) { var e = c.attributes.value; return !e || e.specified ? c.value : c.text } if (d.nodeName(c, "select")) { var f = c.selectedIndex, g = [], h = c.options, i = c.type === "select-one"; if (f < 0) return null; for (var j = i ? f : 0, k = i ? f + 1 : h.length; j < k; j++) { var m = h[j]; if (m.selected && (d.support.optDisabled ? !m.disabled : m.getAttribute("disabled") === null) && (!m.parentNode.disabled || !d.nodeName(m.parentNode, "optgroup"))) { a = d(m).val(); if (i) return a; g.push(a) } } if (i && !g.length && h.length) return d(h[f]).val(); return g } if (q.test(c.type) && !d.support.checkOn) return c.getAttribute("value") === null ? "on" : c.value; return (c.value || "").replace(l, "") } return b } var n = d.isFunction(a); return this.each(function (b) { var c = d(this), e = a; if (this.nodeType === 1) { n && (e = a.call(this, b, c.val())), e == null ? e = "" : typeof e === "number" ? e += "" : d.isArray(e) && (e = d.map(e, function (a) { return a == null ? "" : a + "" })); if (d.isArray(e) && q.test(this.type)) this.checked = d.inArray(c.val(), e) >= 0; else if (d.nodeName(this, "select")) { var f = d.makeArray(e); d("option", this).each(function () { this.selected = d.inArray(d(this).val(), f) >= 0 }), f.length || (this.selectedIndex = -1) } else this.value = e } }) } }), d.extend({ attrFn: { val: !0, css: !0, html: !0, text: !0, data: !0, width: !0, height: !0, offset: !0 }, attr: function (a, c, e, f) { if (!a || a.nodeType === 3 || a.nodeType === 8 || a.nodeType === 2) return b; if (f && c in d.attrFn) return d(a)[c](e); var g = a.nodeType !== 1 || !d.isXMLDoc(a), h = e !== b; c = g && d.props[c] || c; if (a.nodeType === 1) { var i = m.test(c); if (c === "selected" && !d.support.optSelected) { var j = a.parentNode; j && (j.selectedIndex, j.parentNode && j.parentNode.selectedIndex) } if ((c in a || a[c] !== b) && g && !i) { h && (c === "type" && n.test(a.nodeName) && a.parentNode && d.error("type property can't be changed"), e === null ? a.nodeType === 1 && a.removeAttribute(c) : a[c] = e); if (d.nodeName(a, "form") && a.getAttributeNode(c)) return a.getAttributeNode(c).nodeValue; if (c === "tabIndex") { var k = a.getAttributeNode("tabIndex"); return k && k.specified ? k.value : o.test(a.nodeName) || p.test(a.nodeName) && a.href ? 0 : b } return a[c] } if (!d.support.style && g && c === "style") { h && (a.style.cssText = "" + e); return a.style.cssText } h && a.setAttribute(c, "" + e); if (!a.attributes[c] && (a.hasAttribute && !a.hasAttribute(c))) return b; var l = !d.support.hrefNormalized && g && i ? a.getAttribute(c, 2) : a.getAttribute(c); return l === null ? b : l } h && (a[c] = e); return a[c] } }); var r = /\.(.*)$/, s = /^(?:textarea|input|select)$/i, t = /\./g, u = / /g, v = /[^\w\s.|`]/g, w = function (a) { return a.replace(v, "\\$&") }; d.event = { add: function (c, e, f, g) { if (c.nodeType !== 3 && c.nodeType !== 8) { try { d.isWindow(c) && (c !== a && !c.frameElement) && (c = a) } catch (h) { } if (f === !1) f = x; else if (!f) return; var i, j; f.handler && (i = f, f = i.handler), f.guid || (f.guid = d.guid++); var k = d._data(c); if (!k) return; var l = k.events, m = k.handle; l || (k.events = l = {}), m || (k.handle = m = function (a) { return typeof d !== "undefined" && d.event.triggered !== a.type ? d.event.handle.apply(m.elem, arguments) : b }), m.elem = c, e = e.split(" "); var n, o = 0, p; while (n = e[o++]) { j = i ? d.extend({}, i) : { handler: f, data: g }, n.indexOf(".") > -1 ? (p = n.split("."), n = p.shift(), j.namespace = p.slice(0).sort().join(".")) : (p = [], j.namespace = ""), j.type = n, j.guid || (j.guid = f.guid); var q = l[n], r = d.event.special[n] || {}; if (!q) { q = l[n] = []; if (!r.setup || r.setup.call(c, g, p, m) === !1) c.addEventListener ? c.addEventListener(n, m, !1) : c.attachEvent && c.attachEvent("on" + n, m) } r.add && (r.add.call(c, j), j.handler.guid || (j.handler.guid = f.guid)), q.push(j), d.event.global[n] = !0 } c = null } }, global: {}, remove: function (a, c, e, f) { if (a.nodeType !== 3 && a.nodeType !== 8) { e === !1 && (e = x); var g, h, i, j, k = 0, l, m, n, o, p, q, r, s = d.hasData(a) && d._data(a), t = s && s.events; if (!s || !t) return; c && c.type && (e = c.handler, c = c.type); if (!c || typeof c === "string" && c.charAt(0) === ".") { c = c || ""; for (h in t) d.event.remove(a, h + c); return } c = c.split(" "); while (h = c[k++]) { r = h, q = null, l = h.indexOf(".") < 0, m = [], l || (m = h.split("."), h = m.shift(), n = new RegExp("(^|\\.)" + d.map(m.slice(0).sort(), w).join("\\.(?:.*\\.)?") + "(\\.|$)")), p = t[h]; if (!p) continue; if (!e) { for (j = 0; j < p.length; j++) { q = p[j]; if (l || n.test(q.namespace)) d.event.remove(a, r, q.handler, j), p.splice(j--, 1) } continue } o = d.event.special[h] || {}; for (j = f || 0; j < p.length; j++) { q = p[j]; if (e.guid === q.guid) { if (l || n.test(q.namespace)) f == null && p.splice(j--, 1), o.remove && o.remove.call(a, q); if (f != null) break } } if (p.length === 0 || f != null && p.length === 1) (!o.teardown || o.teardown.call(a, m) === !1) && d.removeEvent(a, h, s.handle), g = null, delete t[h] } if (d.isEmptyObject(t)) { var u = s.handle; u && (u.elem = null), delete s.events, delete s.handle, d.isEmptyObject(s) && d.removeData(a, b, !0) } } }, trigger: function (a, c, e) { var f = a.type || a, g = arguments[3]; if (!g) { a = typeof a === "object" ? a[d.expando] ? a : d.extend(d.Event(f), a) : d.Event(f), f.indexOf("!") >= 0 && (a.type = f = f.slice(0, -1), a.exclusive = !0), e || (a.stopPropagation(), d.event.global[f] && d.each(d.cache, function () { var b = d.expando, e = this[b]; e && e.events && e.events[f] && d.event.trigger(a, c, e.handle.elem) })); if (!e || e.nodeType === 3 || e.nodeType === 8) return b; a.result = b, a.target = e, c = d.makeArray(c), c.unshift(a) } a.currentTarget = e; var h = d._data(e, "handle"); h && h.apply(e, c); var i = e.parentNode || e.ownerDocument; try { e && e.nodeName && d.noData[e.nodeName.toLowerCase()] || e["on" + f] && e["on" + f].apply(e, c) === !1 && (a.result = !1, a.preventDefault()) } catch (j) { } if (!a.isPropagationStopped() && i) d.event.trigger(a, c, i, !0); else if (!a.isDefaultPrevented()) { var k, l = a.target, m = f.replace(r, ""), n = d.nodeName(l, "a") && m === "click", o = d.event.special[m] || {}; if ((!o._default || o._default.call(e, a) === !1) && !n && !(l && l.nodeName && d.noData[l.nodeName.toLowerCase()])) { try { l[m] && (k = l["on" + m], k && (l["on" + m] = null), d.event.triggered = a.type, l[m]()) } catch (p) { } k && (l["on" + m] = k), d.event.triggered = b } } }, handle: function (c) { var e, f, g, h, i, j = [], k = d.makeArray(arguments); c = k[0] = d.event.fix(c || a.event), c.currentTarget = this, e = c.type.indexOf(".") < 0 && !c.exclusive, e || (g = c.type.split("."), c.type = g.shift(), j = g.slice(0).sort(), h = new RegExp("(^|\\.)" + j.join("\\.(?:.*\\.)?") + "(\\.|$)")), c.namespace = c.namespace || j.join("."), i = d._data(this, "events"), f = (i || {})[c.type]; if (i && f) { f = f.slice(0); for (var l = 0, m = f.length; l < m; l++) { var n = f[l]; if (e || h.test(n.namespace)) { c.handler = n.handler, c.data = n.data, c.handleObj = n; var o = n.handler.apply(this, k); o !== b && (c.result = o, o === !1 && (c.preventDefault(), c.stopPropagation())); if (c.isImmediatePropagationStopped()) break } } } return c.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 pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "), fix: function (a) { if (a[d.expando]) return a; var e = a; a = d.Event(e); for (var f = this.props.length, g; f; ) g = this.props[--f], a[g] = e[g]; a.target || (a.target = a.srcElement || c), a.target.nodeType === 3 && (a.target = a.target.parentNode), !a.relatedTarget && a.fromElement && (a.relatedTarget = a.fromElement === a.target ? a.toElement : a.fromElement); if (a.pageX == null && a.clientX != null) { var h = c.documentElement, i = c.body; a.pageX = a.clientX + (h && h.scrollLeft || i && i.scrollLeft || 0) - (h && h.clientLeft || i && i.clientLeft || 0), a.pageY = a.clientY + (h && h.scrollTop || i && i.scrollTop || 0) - (h && h.clientTop || i && i.clientTop || 0) } a.which == null && (a.charCode != null || a.keyCode != null) && (a.which = a.charCode != null ? a.charCode : a.keyCode), !a.metaKey && a.ctrlKey && (a.metaKey = a.ctrlKey), !a.which && a.button !== b && (a.which = a.button & 1 ? 1 : a.button & 2 ? 3 : a.button & 4 ? 2 : 0); return a }, guid: 1e8, proxy: d.proxy, special: { ready: { setup: d.bindReady, teardown: d.noop }, live: { add: function (a) { d.event.add(this, H(a.origType, a.selector), d.extend({}, a, { handler: G, guid: a.handler.guid })) }, remove: function (a) { d.event.remove(this, H(a.origType, a.selector), a) } }, beforeunload: { setup: function (a, b, c) { d.isWindow(this) && (this.onbeforeunload = c) }, teardown: function (a, b) { this.onbeforeunload === b && (this.onbeforeunload = null) } }} }, d.removeEvent = c.removeEventListener ? function (a, b, c) { a.removeEventListener && a.removeEventListener(b, c, !1) } : function (a, b, c) { a.detachEvent && a.detachEvent("on" + b, c) }, d.Event = function (a) { if (!this.preventDefault) return new d.Event(a); a && a.type ? (this.originalEvent = a, this.type = a.type, this.isDefaultPrevented = a.defaultPrevented || a.returnValue === !1 || a.getPreventDefault && a.getPreventDefault() ? y : x) : this.type = a, this.timeStamp = d.now(), this[d.expando] = !0 }, d.Event.prototype = { preventDefault: function () { this.isDefaultPrevented = y; var a = this.originalEvent; a && (a.preventDefault ? a.preventDefault() : a.returnValue = !1) }, stopPropagation: function () { this.isPropagationStopped = y; var a = this.originalEvent; a && (a.stopPropagation && a.stopPropagation(), a.cancelBubble = !0) }, stopImmediatePropagation: function () { this.isImmediatePropagationStopped = y, this.stopPropagation() }, isDefaultPrevented: x, isPropagationStopped: x, isImmediatePropagationStopped: x }; var z = function (a) { var b = a.relatedTarget; try { if (b && b !== c && !b.parentNode) return; while (b && b !== this) b = b.parentNode; b !== this && (a.type = a.data, d.event.handle.apply(this, arguments)) } catch (e) { } }, A = function (a) { a.type = a.data, d.event.handle.apply(this, arguments) }; d.each({ mouseenter: "mouseover", mouseleave: "mouseout" }, function (a, b) { d.event.special[a] = { setup: function (c) { d.event.add(this, b, c && c.selector ? A : z, a) }, teardown: function (a) { d.event.remove(this, b, a && a.selector ? A : z) } } }), d.support.submitBubbles || (d.event.special.submit = { setup: function (a, b) { if (this.nodeName && this.nodeName.toLowerCase() !== "form") d.event.add(this, "click.specialSubmit", function (a) { var b = a.target, c = b.type; (c === "submit" || c === "image") && d(b).closest("form").length && E("submit", this, arguments) }), d.event.add(this, "keypress.specialSubmit", function (a) { var b = a.target, c = b.type; (c === "text" || c === "password") && d(b).closest("form").length && a.keyCode === 13 && E("submit", this, arguments) }); else return !1 }, teardown: function (a) { d.event.remove(this, ".specialSubmit") } }); if (!d.support.changeBubbles) { var B, C = function (a) { var b = a.type, c = a.value; b === "radio" || b === "checkbox" ? c = a.checked : b === "select-multiple" ? c = a.selectedIndex > -1 ? d.map(a.options, function (a) { return a.selected }).join("-") : "" : a.nodeName.toLowerCase() === "select" && (c = a.selectedIndex); return c }, D = function D(a) { var c = a.target, e, f; if (s.test(c.nodeName) && !c.readOnly) { e = d._data(c, "_change_data"), f = C(c), (a.type !== "focusout" || c.type !== "radio") && d._data(c, "_change_data", f); if (e === b || f === e) return; if (e != null || f) a.type = "change", a.liveFired = b, d.event.trigger(a, arguments[1], c) } }; d.event.special.change = { filters: { focusout: D, beforedeactivate: D, click: function (a) { var b = a.target, c = b.type; (c === "radio" || c === "checkbox" || b.nodeName.toLowerCase() === "select") && D.call(this, a) }, keydown: function (a) { var b = a.target, c = b.type; (a.keyCode === 13 && b.nodeName.toLowerCase() !== "textarea" || a.keyCode === 32 && (c === "checkbox" || c === "radio") || c === "select-multiple") && D.call(this, a) }, beforeactivate: function (a) { var b = a.target; d._data(b, "_change_data", C(b)) } }, setup: function (a, b) { if (this.type === "file") return !1; for (var c in B) d.event.add(this, c + ".specialChange", B[c]); return s.test(this.nodeName) }, teardown: function (a) { d.event.remove(this, ".specialChange"); return s.test(this.nodeName) } }, B = d.event.special.change.filters, B.focus = B.beforeactivate } c.addEventListener && d.each({ focus: "focusin", blur: "focusout" }, function (a, b) { function f(a) { var c = d.event.fix(a); c.type = b, c.originalEvent = {}, d.event.trigger(c, null, c.target), c.isDefaultPrevented() && a.preventDefault() } var e = 0; d.event.special[b] = { setup: function () { e++ === 0 && c.addEventListener(a, f, !0) }, teardown: function () { --e === 0 && c.removeEventListener(a, f, !0) } } }), d.each(["bind", "one"], function (a, c) { d.fn[c] = function (a, e, f) { if (typeof a === "object") { for (var g in a) this[c](g, e, a[g], f); return this } if (d.isFunction(e) || e === !1) f = e, e = b; var h = c === "one" ? d.proxy(f, function (a) { d(this).unbind(a, h); return f.apply(this, arguments) }) : f; if (a === "unload" && c !== "one") this.one(a, e, f); else for (var i = 0, j = this.length; i < j; i++) d.event.add(this[i], a, h, e); return this } }), d.fn.extend({ unbind: function (a, b) { if (typeof a !== "object" || a.preventDefault) for (var e = 0, f = this.length; e < f; e++) d.event.remove(this[e], a, b); else for (var c in a) this.unbind(c, a[c]); return this }, delegate: function (a, b, c, d) { return this.live(b, c, d, a) }, undelegate: function (a, b, c) { return arguments.length === 0 ? this.unbind("live") : this.die(b, null, c, a) }, trigger: function (a, b) { return this.each(function () { d.event.trigger(a, b, this) }) }, triggerHandler: function (a, b) { if (this[0]) { var c = d.Event(a); c.preventDefault(), c.stopPropagation(), d.event.trigger(c, b, this[0]); return c.result } }, toggle: function (a) { var b = arguments, c = 1; while (c < b.length) d.proxy(a, b[c++]); return this.click(d.proxy(a, function (e) { var f = (d._data(this, "lastToggle" + a.guid) || 0) % c; d._data(this, "lastToggle" + a.guid, f + 1), e.preventDefault(); return b[f].apply(this, arguments) || !1 })) }, hover: function (a, b) { return this.mouseenter(a).mouseleave(b || a) } }); var F = { focus: "focusin", blur: "focusout", mouseenter: "mouseover", mouseleave: "mouseout" }; d.each(["live", "die"], function (a, c) { d.fn[c] = function (a, e, f, g) { var h, i = 0, j, k, l, m = g || this.selector, n = g ? this : d(this.context); if (typeof a === "object" && !a.preventDefault) { for (var o in a) n[c](o, e, a[o], m); return this } d.isFunction(e) && (f = e, e = b), a = (a || "").split(" "); while ((h = a[i++]) != null) { j = r.exec(h), k = "", j && (k = j[0], h = h.replace(r, "")); if (h === "hover") { a.push("mouseenter" + k, "mouseleave" + k); continue } l = h, h === "focus" || h === "blur" ? (a.push(F[h] + k), h = h + k) : h = (F[h] || h) + k; if (c === "live") for (var p = 0, q = n.length; p < q; p++) d.event.add(n[p], "live." + H(h, m), { data: e, selector: m, handler: f, origType: h, origHandler: f, preType: l }); else n.unbind("live." + H(h, m), f) } return this } }), d.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) { d.fn[b] = function (a, c) { c == null && (c = a, a = null); return arguments.length > 0 ? this.bind(b, a, c) : this.trigger(b) }, d.attrFn && (d.attrFn[b] = !0) }), function () { function u(a, b, c, d, e, f) { for (var g = 0, h = d.length; g < h; g++) { var i = d[g]; if (i) { var j = !1; i = i[a]; while (i) { if (i.sizcache === c) { j = d[i.sizset]; break } if (i.nodeType === 1) { f || (i.sizcache = c, i.sizset = g); if (typeof b !== "string") { if (i === b) { j = !0; break } } else if (k.filter(b, [i]).length > 0) { j = i; break } } i = i[a] } d[g] = j } } } function t(a, b, c, d, e, f) { for (var g = 0, h = d.length; g < h; g++) { var i = d[g]; if (i) { var j = !1; i = i[a]; while (i) { if (i.sizcache === c) { j = d[i.sizset]; break } i.nodeType === 1 && !f && (i.sizcache = c, i.sizset = g); if (i.nodeName.toLowerCase() === b) { j = i; break } i = i[a] } d[g] = j } } } var a = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g, e = 0, f = Object.prototype.toString, g = !1, h = !0, i = /\\/g, j = /\W/; [0, 0].sort(function () { h = !1; return 0 }); var k = function (b, d, e, g) { e = e || [], d = d || c; var h = d; if (d.nodeType !== 1 && d.nodeType !== 9) return []; if (!b || typeof b !== "string") return e; var i, j, n, o, q, r, s, t, u = !0, w = k.isXML(d), x = [], y = b; do { a.exec(""), i = a.exec(y); if (i) { y = i[3], x.push(i[1]); if (i[2]) { o = i[3]; break } } } while (i); if (x.length > 1 && m.exec(b)) if (x.length === 2 && l.relative[x[0]]) j = v(x[0] + x[1], d); else { j = l.relative[x[0]] ? [d] : k(x.shift(), d); while (x.length) b = x.shift(), l.relative[b] && (b += x.shift()), j = v(b, j) } else { !g && x.length > 1 && d.nodeType === 9 && !w && l.match.ID.test(x[0]) && !l.match.ID.test(x[x.length - 1]) && (q = k.find(x.shift(), d, w), d = q.expr ? k.filter(q.expr, q.set)[0] : q.set[0]); if (d) { q = g ? { expr: x.pop(), set: p(g)} : k.find(x.pop(), x.length === 1 && (x[0] === "~" || x[0] === "+") && d.parentNode ? d.parentNode : d, w), j = q.expr ? k.filter(q.expr, q.set) : q.set, x.length > 0 ? n = p(j) : u = !1; while (x.length) r = x.pop(), s = r, l.relative[r] ? s = x.pop() : r = "", s == null && (s = d), l.relative[r](n, s, w) } else n = x = [] } n || (n = j), n || k.error(r || b); if (f.call(n) === "[object Array]") if (u) if (d && d.nodeType === 1) for (t = 0; n[t] != null; t++) n[t] && (n[t] === !0 || n[t].nodeType === 1 && k.contains(d, n[t])) && e.push(j[t]); else for (t = 0; n[t] != null; t++) n[t] && n[t].nodeType === 1 && e.push(j[t]); else e.push.apply(e, n); else p(n, e); o && (k(o, h, e, g), k.uniqueSort(e)); return e }; k.uniqueSort = function (a) { if (r) { g = h, a.sort(r); if (g) for (var b = 1; b < a.length; b++) a[b] === a[b - 1] && a.splice(b--, 1) } return a }, k.matches = function (a, b) { return k(a, null, null, b) }, k.matchesSelector = function (a, b) { return k(b, null, null, [a]).length > 0 }, k.find = function (a, b, c) { var d; if (!a) return []; for (var e = 0, f = l.order.length; e < f; e++) { var g, h = l.order[e]; if (g = l.leftMatch[h].exec(a)) { var j = g[1]; g.splice(1, 1); if (j.substr(j.length - 1) !== "\\") { g[1] = (g[1] || "").replace(i, ""), d = l.find[h](g, b, c); if (d != null) { a = a.replace(l.match[h], ""); break } } } } d || (d = typeof b.getElementsByTagName !== "undefined" ? b.getElementsByTagName("*") : []); return { set: d, expr: a} }, k.filter = function (a, c, d, e) { var f, g, h = a, i = [], j = c, m = c && c[0] && k.isXML(c[0]); while (a && c.length) { for (var n in l.filter) if ((f = l.leftMatch[n].exec(a)) != null && f[2]) { var o, p, q = l.filter[n], r = f[1]; g = !1, f.splice(1, 1); if (r.substr(r.length - 1) === "\\") continue; j === i && (i = []); if (l.preFilter[n]) { f = l.preFilter[n](f, j, d, i, e, m); if (f) { if (f === !0) continue } else g = o = !0 } if (f) for (var s = 0; (p = j[s]) != null; s++) if (p) { o = q(p, f, s, j); var t = e ^ !!o; d && o != null ? t ? g = !0 : j[s] = !1 : t && (i.push(p), g = !0) } if (o !== b) { d || (j = i), a = a.replace(l.match[n], ""); if (!g) return []; break } } if (a === h) if (g == null) k.error(a); else break; h = a } return j }, k.error = function (a) { throw "Syntax error, unrecognized expression: " + a }; var l = k.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|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/, TAG: /^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/, CHILD: /:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/, POS: /:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/, PSEUDO: /:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/ }, leftMatch: {}, attrMap: { "class": "className", "for": "htmlFor" }, attrHandle: { href: function (a) { return a.getAttribute("href") }, type: function (a) { return a.getAttribute("type") } }, relative: { "+": function (a, b) { var c = typeof b === "string", d = c && !j.test(b), e = c && !d; d && (b = b.toLowerCase()); for (var f = 0, g = a.length, h; f < g; f++) if (h = a[f]) { while ((h = h.previousSibling) && h.nodeType !== 1) { } a[f] = e || h && h.nodeName.toLowerCase() === b ? h || !1 : h === b } e && k.filter(b, a, !0) }, ">": function (a, b) { var c, d = typeof b === "string", e = 0, f = a.length; if (d && !j.test(b)) { b = b.toLowerCase(); for (; e < f; e++) { c = a[e]; if (c) { var g = c.parentNode; a[e] = g.nodeName.toLowerCase() === b ? g : !1 } } } else { for (; e < f; e++) c = a[e], c && (a[e] = d ? c.parentNode : c.parentNode === b); d && k.filter(b, a, !0) } }, "": function (a, b, c) { var d, f = e++, g = u; typeof b === "string" && !j.test(b) && (b = b.toLowerCase(), d = b, g = t), g("parentNode", b, f, a, d, c) }, "~": function (a, b, c) { var d, f = e++, g = u; typeof b === "string" && !j.test(b) && (b = b.toLowerCase(), d = b, g = t), g("previousSibling", b, f, a, d, c) } }, find: { ID: function (a, b, c) { if (typeof b.getElementById !== "undefined" && !c) { var d = b.getElementById(a[1]); return d && d.parentNode ? [d] : [] } }, NAME: function (a, b) { if (typeof b.getElementsByName !== "undefined") { var c = [], d = b.getElementsByName(a[1]); for (var e = 0, f = d.length; e < f; e++) d[e].getAttribute("name") === a[1] && c.push(d[e]); return c.length === 0 ? null : c } }, TAG: function (a, b) { if (typeof b.getElementsByTagName !== "undefined") return b.getElementsByTagName(a[1]) } }, preFilter: { CLASS: function (a, b, c, d, e, f) { a = " " + a[1].replace(i, "") + " "; if (f) return a; for (var g = 0, h; (h = b[g]) != null; g++) h && (e ^ (h.className && (" " + h.className + " ").replace(/[\t\n\r]/g, " ").indexOf(a) >= 0) ? c || d.push(h) : c && (b[g] = !1)); return !1 }, ID: function (a) { return a[1].replace(i, "") }, TAG: function (a, b) { return a[1].replace(i, "").toLowerCase() }, CHILD: function (a) { if (a[1] === "nth") { a[2] || k.error(a[0]), a[2] = a[2].replace(/^\+|\s*/g, ""); var b = /(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2] === "even" && "2n" || a[2] === "odd" && "2n+1" || !/\D/.test(a[2]) && "0n+" + a[2] || a[2]); a[2] = b[1] + (b[2] || 1) - 0, a[3] = b[3] - 0 } else a[2] && k.error(a[0]); a[0] = e++; return a }, ATTR: function (a, b, c, d, e, f) { var g = a[1] = a[1].replace(i, ""); !f && l.attrMap[g] && (a[1] = l.attrMap[g]), a[4] = (a[4] || a[5] || "").replace(i, ""), a[2] === "~=" && (a[4] = " " + a[4] + " "); return a }, PSEUDO: function (b, c, d, e, f) { if (b[1] === "not") if ((a.exec(b[3]) || "").length > 1 || /^\w/.test(b[3])) b[3] = k(b[3], null, null, c); else { var g = k.filter(b[3], c, d, !0 ^ f); d || e.push.apply(e, g); return !1 } else if (l.match.POS.test(b[0]) || l.match.CHILD.test(b[0])) return !0; return b }, POS: function (a) { a.unshift(!0); return a } }, filters: { enabled: function (a) { return a.disabled === !1 && a.type !== "hidden" }, disabled: function (a) { return a.disabled === !0 }, checked: function (a) { return a.checked === !0 }, selected: function (a) { a.parentNode && a.parentNode.selectedIndex; return a.selected === !0 }, parent: function (a) { return !!a.firstChild }, empty: function (a) { return !a.firstChild }, has: function (a, b, c) { return !!k(c[3], a).length }, header: function (a) { return /h\d/i.test(a.nodeName) }, text: function (a) { var b = a.getAttribute("type"), c = a.type; return "text" === c && (b === c || b === null) }, radio: function (a) { return "radio" === a.type }, checkbox: function (a) { return "checkbox" === a.type }, file: function (a) { return "file" === a.type }, password: function (a) { return "password" === a.type }, submit: function (a) { return "submit" === a.type }, image: function (a) { return "image" === a.type }, reset: function (a) { return "reset" === a.type }, button: function (a) { return "button" === a.type || a.nodeName.toLowerCase() === "button" }, input: function (a) { return /input|select|textarea|button/i.test(a.nodeName) } }, setFilters: { first: function (a, b) { return b === 0 }, last: function (a, b, c, d) { return b === d.length - 1 }, even: function (a, b) { return b % 2 === 0 }, odd: function (a, b) { return b % 2 === 1 }, lt: function (a, b, c) { return b < c[3] - 0 }, gt: function (a, b, c) { return b > c[3] - 0 }, nth: function (a, b, c) { return c[3] - 0 === b }, eq: function (a, b, c) { return c[3] - 0 === b } }, filter: { PSEUDO: function (a, b, c, d) { var e = b[1], f = l.filters[e]; if (f) return f(a, c, b, d); if (e === "contains") return (a.textContent || a.innerText || k.getText([a]) || "").indexOf(b[3]) >= 0; if (e === "not") { var g = b[3]; for (var h = 0, i = g.length; h < i; h++) if (g[h] === a) return !1; return !0 } k.error(e) }, CHILD: function (a, b) { var c = b[1], d = a; switch (c) { case "only": case "first": while (d = d.previousSibling) if (d.nodeType === 1) return !1; if (c === "first") return !0; d = a; case "last": while (d = d.nextSibling) if (d.nodeType === 1) return !1; return !0; case "nth": var e = b[2], f = b[3]; if (e === 1 && f === 0) return !0; var g = b[0], h = a.parentNode; if (h && (h.sizcache !== g || !a.nodeIndex)) { var i = 0; for (d = h.firstChild; d; d = d.nextSibling) d.nodeType === 1 && (d.nodeIndex = ++i); h.sizcache = g } var j = a.nodeIndex - f; return e === 0 ? j === 0 : j % e === 0 && j / e >= 0 } }, ID: function (a, b) { return a.nodeType === 1 && a.getAttribute("id") === b }, TAG: function (a, b) { return b === "*" && a.nodeType === 1 || a.nodeName.toLowerCase() === b }, CLASS: function (a, b) { return (" " + (a.className || a.getAttribute("class")) + " ").indexOf(b) > -1 }, ATTR: function (a, b) { var c = b[1], d = l.attrHandle[c] ? l.attrHandle[c](a) : a[c] != null ? a[c] : a.getAttribute(c), e = d + "", f = b[2], g = b[4]; return d == null ? f === "!=" : f === "=" ? e === g : f === "*=" ? e.indexOf(g) >= 0 : f === "~=" ? (" " + e + " ").indexOf(g) >= 0 : g ? f === "!=" ? e !== g : f === "^=" ? e.indexOf(g) === 0 : f === "$=" ? e.substr(e.length - g.length) === g : f === "|=" ? e === g || e.substr(0, g.length + 1) === g + "-" : !1 : e && d !== !1 }, POS: function (a, b, c, d) { var e = b[2], f = l.setFilters[e]; if (f) return f(a, c, b, d) } } }, m = l.match.POS, n = function (a, b) { return "\\" + (b - 0 + 1) }; for (var o in l.match) l.match[o] = new RegExp(l.match[o].source + /(?![^\[]*\])(?![^\(]*\))/.source), l.leftMatch[o] = new RegExp(/(^(?:.|\r|\n)*?)/.source + l.match[o].source.replace(/\\(\d+)/g, n)); var p = function (a, b) { a = Array.prototype.slice.call(a, 0); if (b) { b.push.apply(b, a); return b } return a }; try { Array.prototype.slice.call(c.documentElement.childNodes, 0)[0].nodeType } catch (q) { p = function (a, b) { var c = 0, d = b || []; if (f.call(a) === "[object Array]") Array.prototype.push.apply(d, a); else if (typeof a.length === "number") for (var e = a.length; c < e; c++) d.push(a[c]); else for (; a[c]; c++) d.push(a[c]); return d } } var r, s; c.documentElement.compareDocumentPosition ? r = function (a, b) { if (a === b) { g = !0; return 0 } if (!a.compareDocumentPosition || !b.compareDocumentPosition) return a.compareDocumentPosition ? -1 : 1; return a.compareDocumentPosition(b) & 4 ? -1 : 1 } : (r = function (a, b) { var c, d, e = [], f = [], h = a.parentNode, i = b.parentNode, j = h; if (a === b) { g = !0; return 0 } if (h === i) return s(a, b); if (!h) return -1; if (!i) return 1; while (j) e.unshift(j), j = j.parentNode; j = i; while (j) f.unshift(j), j = j.parentNode; c = e.length, d = f.length; for (var k = 0; k < c && k < d; k++) if (e[k] !== f[k]) return s(e[k], f[k]); return k === c ? s(a, f[k], -1) : s(e[k], b, 1) }, s = function (a, b, c) { if (a === b) return c; var d = a.nextSibling; while (d) { if (d === b) return -1; d = d.nextSibling } return 1 }), k.getText = function (a) { var b = "", c; for (var d = 0; a[d]; d++) c = a[d], c.nodeType === 3 || c.nodeType === 4 ? b += c.nodeValue : c.nodeType !== 8 && (b += k.getText(c.childNodes)); return b }, function () { var a = c.createElement("div"), d = "script" + (new Date).getTime(), e = c.documentElement; a.innerHTML = "<a name='" + d + "'/>", e.insertBefore(a, e.firstChild), c.getElementById(d) && (l.find.ID = function (a, c, d) { if (typeof c.getElementById !== "undefined" && !d) { var e = c.getElementById(a[1]); return e ? e.id === a[1] || typeof e.getAttributeNode !== "undefined" && e.getAttributeNode("id").nodeValue === a[1] ? [e] : b : [] } }, l.filter.ID = function (a, b) { var c = typeof a.getAttributeNode !== "undefined" && a.getAttributeNode("id"); return a.nodeType === 1 && c && c.nodeValue === b }), e.removeChild(a), e = a = null } (), function () { var a = c.createElement("div"); a.appendChild(c.createComment("")), a.getElementsByTagName("*").length > 0 && (l.find.TAG = function (a, b) { var c = b.getElementsByTagName(a[1]); if (a[1] === "*") { var d = []; for (var e = 0; c[e]; e++) c[e].nodeType === 1 && d.push(c[e]); c = d } return c }), a.innerHTML = "<a href='#'></a>", a.firstChild && typeof a.firstChild.getAttribute !== "undefined" && a.firstChild.getAttribute("href") !== "#" && (l.attrHandle.href = function (a) { return a.getAttribute("href", 2) }), a = null } (), c.querySelectorAll && function () { var a = k, b = c.createElement("div"), d = "__sizzle__"; b.innerHTML = "<p class='TEST'></p>"; if (!b.querySelectorAll || b.querySelectorAll(".TEST").length !== 0) { k = function (b, e, f, g) { e = e || c; if (!g && !k.isXML(e)) { var h = /^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b); if (h && (e.nodeType === 1 || e.nodeType === 9)) { if (h[1]) return p(e.getElementsByTagName(b), f); if (h[2] && l.find.CLASS && e.getElementsByClassName) return p(e.getElementsByClassName(h[2]), f) } if (e.nodeType === 9) { if (b === "body" && e.body) return p([e.body], f); if (h && h[3]) { var i = e.getElementById(h[3]); if (!i || !i.parentNode) return p([], f); if (i.id === h[3]) return p([i], f) } try { return p(e.querySelectorAll(b), f) } catch (j) { } } else if (e.nodeType === 1 && e.nodeName.toLowerCase() !== "object") { var m = e, n = e.getAttribute("id"), o = n || d, q = e.parentNode, r = /^\s*[+~]/.test(b); n ? o = o.replace(/'/g, "\\$&") : e.setAttribute("id", o), r && q && (e = e.parentNode); try { if (!r || q) return p(e.querySelectorAll("[id='" + o + "'] " + b), f) } catch (s) { } finally { n || m.removeAttribute("id") } } } return a(b, e, f, g) }; for (var e in a) k[e] = a[e]; b = null } } (), function () { var a = c.documentElement, b = a.matchesSelector || a.mozMatchesSelector || a.webkitMatchesSelector || a.msMatchesSelector; if (b) { var d = !b.call(c.createElement("div"), "div"), e = !1; try { b.call(c.documentElement, "[test!='']:sizzle") } catch (f) { e = !0 } k.matchesSelector = function (a, c) { c = c.replace(/\=\s*([^'"\]]*)\s*\]/g, "='$1']"); if (!k.isXML(a)) try { if (e || !l.match.PSEUDO.test(c) && !/!=/.test(c)) { var f = b.call(a, c); if (f || !d || a.document && a.document.nodeType !== 11) return f } } catch (g) { } return k(c, null, null, [a]).length > 0 } } } (), function () { var a = c.createElement("div"); a.innerHTML = "<div class='test e'></div><div class='test'></div>"; if (a.getElementsByClassName && a.getElementsByClassName("e").length !== 0) { a.lastChild.className = "e"; if (a.getElementsByClassName("e").length === 1) return; l.order.splice(1, 0, "CLASS"), l.find.CLASS = function (a, b, c) { if (typeof b.getElementsByClassName !== "undefined" && !c) return b.getElementsByClassName(a[1]) }, a = null } } (), c.documentElement.contains ? k.contains = function (a, b) { return a !== b && (a.contains ? a.contains(b) : !0) } : c.documentElement.compareDocumentPosition ? k.contains = function (a, b) { return !!(a.compareDocumentPosition(b) & 16) } : k.contains = function () { return !1 }, k.isXML = function (a) { var b = (a ? a.ownerDocument || a : 0).documentElement; return b ? b.nodeName !== "HTML" : !1 }; var v = function (a, b) { var c, d = [], e = "", f = b.nodeType ? [b] : b; while (c = l.match.PSEUDO.exec(a)) e += c[0], a = a.replace(l.match.PSEUDO, ""); a = l.relative[a] ? a + "*" : a; for (var g = 0, h = f.length; g < h; g++) k(a, f[g], d); return k.filter(e, d) }; d.find = k, d.expr = k.selectors, d.expr[":"] = d.expr.filters, d.unique = k.uniqueSort, d.text = k.getText, d.isXMLDoc = k.isXML, d.contains = k.contains } (); var I = /Until$/, J = /^(?:parents|prevUntil|prevAll)/, K = /,/, L = /^.[^:#\[\.,]*$/, M = Array.prototype.slice, N = d.expr.match.POS, O = { children: !0, contents: !0, next: !0, prev: !0 }; d.fn.extend({ find: function (a) { var b = this.pushStack("", "find", a), c = 0; for (var e = 0, f = this.length; e < f; e++) { c = b.length, d.find(a, this[e], b); if (e > 0) for (var g = c; g < b.length; g++) for (var h = 0; h < c; h++) if (b[h] === b[g]) { b.splice(g--, 1); break } } return b }, has: function (a) { var b = d(a); return this.filter(function () { for (var a = 0, c = b.length; a < c; a++) if (d.contains(this, b[a])) return !0 }) }, not: function (a) { return this.pushStack(Q(this, a, !1), "not", a) }, filter: function (a) { return this.pushStack(Q(this, a, !0), "filter", a) }, is: function (a) { return !!a && d.filter(a, this).length > 0 }, closest: function (a, b) { var c = [], e, f, g = this[0]; if (d.isArray(a)) { var h, i, j = {}, k = 1; if (g && a.length) { for (e = 0, f = a.length; e < f; e++) i = a[e], j[i] || (j[i] = d.expr.match.POS.test(i) ? d(i, b || this.context) : i); while (g && g.ownerDocument && g !== b) { for (i in j) h = j[i], (h.jquery ? h.index(g) > -1 : d(g).is(h)) && c.push({ selector: i, elem: g, level: k }); g = g.parentNode, k++ } } return c } var l = N.test(a) ? d(a, b || this.context) : null; for (e = 0, f = this.length; e < f; e++) { g = this[e]; while (g) { if (l ? l.index(g) > -1 : d.find.matchesSelector(g, a)) { c.push(g); break } g = g.parentNode; if (!g || !g.ownerDocument || g === b) break } } c = c.length > 1 ? d.unique(c) : c; return this.pushStack(c, "closest", a) }, index: function (a) { if (!a || typeof a === "string") return d.inArray(this[0], a ? d(a) : this.parent().children()); return d.inArray(a.jquery ? a[0] : a, this) }, add: function (a, b) { var c = typeof a === "string" ? d(a, b) : d.makeArray(a), e = d.merge(this.get(), c); return this.pushStack(P(c[0]) || P(e[0]) ? e : d.unique(e)) }, andSelf: function () { return this.add(this.prevObject) } }), d.each({ parent: function (a) { var b = a.parentNode; return b && b.nodeType !== 11 ? b : null }, parents: function (a) { return d.dir(a, "parentNode") }, parentsUntil: function (a, b, c) { return d.dir(a, "parentNode", c) }, next: function (a) { return d.nth(a, 2, "nextSibling") }, prev: function (a) { return d.nth(a, 2, "previousSibling") }, nextAll: function (a) { return d.dir(a, "nextSibling") }, prevAll: function (a) { return d.dir(a, "previousSibling") }, nextUntil: function (a, b, c) { return d.dir(a, "nextSibling", c) }, prevUntil: function (a, b, c) { return d.dir(a, "previousSibling", c) }, siblings: function (a) { return d.sibling(a.parentNode.firstChild, a) }, children: function (a) { return d.sibling(a.firstChild) }, contents: function (a) { return d.nodeName(a, "iframe") ? a.contentDocument || a.contentWindow.document : d.makeArray(a.childNodes) } }, function (a, b) { d.fn[a] = function (c, e) { var f = d.map(this, b, c), g = M.call(arguments); I.test(a) || (e = c), e && typeof e === "string" && (f = d.filter(e, f)), f = this.length > 1 && !O[a] ? d.unique(f) : f, (this.length > 1 || K.test(e)) && J.test(a) && (f = f.reverse()); return this.pushStack(f, a, g.join(",")) } }), d.extend({ filter: function (a, b, c) { c && (a = ":not(" + a + ")"); return b.length === 1 ? d.find.matchesSelector(b[0], a) ? [b[0]] : [] : d.find.matches(a, b) }, dir: function (a, c, e) { var f = [], g = a[c]; while (g && g.nodeType !== 9 && (e === b || g.nodeType !== 1 || !d(g).is(e))) g.nodeType === 1 && f.push(g), g = g[c]; return f }, nth: function (a, b, c, d) { b = b || 1; var e = 0; for (; a; a = a[c]) if (a.nodeType === 1 && ++e === b) break; return a }, sibling: function (a, b) { var c = []; for (; a; a = a.nextSibling) a.nodeType === 1 && a !== b && c.push(a); return c } }); var R = / jQuery\d+="(?:\d+|null)"/g, S = /^\s+/, T = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig, U = /<([\w:]+)/, V = /<tbody/i, W = /<|&#?\w+;/, X = /<(?:script|object|embed|option|style)/i, Y = /checked\s*(?:[^=]|=\s*.checked.)/i, Z = { 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, "", ""] }; Z.optgroup = Z.option, Z.tbody = Z.tfoot = Z.colgroup = Z.caption = Z.thead, Z.th = Z.td, d.support.htmlSerialize || (Z._default = [1, "div<div>", "</div>"]), d.fn.extend({ text: function (a) { if (d.isFunction(a)) return this.each(function (b) { var c = d(this); c.text(a.call(this, b, c.text())) }); if (typeof a !== "object" && a !== b) return this.empty().append((this[0] && this[0].ownerDocument || c).createTextNode(a)); return d.text(this) }, wrapAll: function (a) { if (d.isFunction(a)) return this.each(function (b) { d(this).wrapAll(a.call(this, b)) }); if (this[0]) { var b = d(a, this[0].ownerDocument).eq(0).clone(!0); this[0].parentNode && b.insertBefore(this[0]), b.map(function () { var a = this; while (a.firstChild && a.firstChild.nodeType === 1) a = a.firstChild; return a }).append(this) } return this }, wrapInner: function (a) { if (d.isFunction(a)) return this.each(function (b) { d(this).wrapInner(a.call(this, b)) }); return this.each(function () { var b = d(this), c = b.contents(); c.length ? c.wrapAll(a) : b.append(a) }) }, wrap: function (a) { return this.each(function () { d(this).wrapAll(a) }) }, unwrap: function () { return this.parent().each(function () { d.nodeName(this, "body") || d(this).replaceWith(this.childNodes) }).end() }, append: function () { return this.domManip(arguments, !0, function (a) { this.nodeType === 1 && this.appendChild(a) }) }, prepend: function () { return this.domManip(arguments, !0, function (a) { this.nodeType === 1 && this.insertBefore(a, this.firstChild) }) }, before: function () { if (this[0] && this[0].parentNode) return this.domManip(arguments, !1, function (a) { this.parentNode.insertBefore(a, this) }); if (arguments.length) { var a = d(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, !1, function (a) { this.parentNode.insertBefore(a, this.nextSibling) }); if (arguments.length) { var a = this.pushStack(this, "after", arguments); a.push.apply(a, d(arguments[0]).toArray()); return a } }, remove: function (a, b) { for (var c = 0, e; (e = this[c]) != null; c++) if (!a || d.filter(a, [e]).length) !b && e.nodeType === 1 && (d.cleanData(e.getElementsByTagName("*")), d.cleanData([e])), e.parentNode && e.parentNode.removeChild(e); return this }, empty: function () { for (var a = 0, b; (b = this[a]) != null; a++) { b.nodeType === 1 && d.cleanData(b.getElementsByTagName("*")); while (b.firstChild) b.removeChild(b.firstChild) } return this }, clone: function (a, b) { a = a == null ? !1 : a, b = b == null ? a : b; return this.map(function () { return d.clone(this, a, b) }) }, html: function (a) { if (a === b) return this[0] && this[0].nodeType === 1 ? this[0].innerHTML.replace(R, "") : null; if (typeof a !== "string" || X.test(a) || !d.support.leadingWhitespace && S.test(a) || Z[(U.exec(a) || ["", ""])[1].toLowerCase()]) d.isFunction(a) ? this.each(function (b) { var c = d(this); c.html(a.call(this, b, c.html())) }) : this.empty().append(a); else { a = a.replace(T, "<$1></$2>"); try { for (var c = 0, e = this.length; c < e; c++) this[c].nodeType === 1 && (d.cleanData(this[c].getElementsByTagName("*")), this[c].innerHTML = a) } catch (f) { this.empty().append(a) } } return this }, replaceWith: function (a) { if (this[0] && this[0].parentNode) { if (d.isFunction(a)) return this.each(function (b) { var c = d(this), e = c.html(); c.replaceWith(a.call(this, b, e)) }); typeof a !== "string" && (a = d(a).detach()); return this.each(function () { var b = this.nextSibling, c = this.parentNode; d(this).remove(), b ? d(b).before(a) : d(c).append(a) }) } return this.length ? this.pushStack(d(d.isFunction(a) ? a() : a), "replaceWith", a) : this }, detach: function (a) { return this.remove(a, !0) }, domManip: function (a, c, e) { var f, g, h, i, j = a[0], k = []; if (!d.support.checkClone && arguments.length === 3 && typeof j === "string" && Y.test(j)) return this.each(function () { d(this).domManip(a, c, e, !0) }); if (d.isFunction(j)) return this.each(function (f) { var g = d(this); a[0] = j.call(this, f, c ? g.html() : b), g.domManip(a, c, e) }); if (this[0]) { i = j && j.parentNode, d.support.parentNode && i && i.nodeType === 11 && i.childNodes.length === this.length ? f = { fragment: i} : f = d.buildFragment(a, this, k), h = f.fragment, h.childNodes.length === 1 ? g = h = h.firstChild : g = h.firstChild; if (g) { c = c && d.nodeName(g, "tr"); for (var l = 0, m = this.length, n = m - 1; l < m; l++) e.call(c ? $(this[l], g) : this[l], f.cacheable || m > 1 && l < n ? d.clone(h, !0, !0) : h) } k.length && d.each(k, bc) } return this } }), d.buildFragment = function (a, b, e) { var f, g, h, i = b && b[0] ? b[0].ownerDocument || b[0] : c; a.length === 1 && typeof a[0] === "string" && a[0].length < 512 && i === c && a[0].charAt(0) === "<" && !X.test(a[0]) && (d.support.checkClone || !Y.test(a[0])) && (g = !0, h = d.fragments[a[0]], h && (h !== 1 && (f = h))), f || (f = i.createDocumentFragment(), d.clean(a, i, f, e)), g && (d.fragments[a[0]] = h ? f : 1); return { fragment: f, cacheable: g} }, d.fragments = {}, d.each({ appendTo: "append", prependTo: "prepend", insertBefore: "before", insertAfter: "after", replaceAll: "replaceWith" }, function (a, b) { d.fn[a] = function (c) { var e = [], f = d(c), g = this.length === 1 && this[0].parentNode; if (g && g.nodeType === 11 && g.childNodes.length === 1 && f.length === 1) { f[b](this[0]); return this } for (var h = 0, i = f.length; h < i; h++) { var j = (h > 0 ? this.clone(!0) : this).get(); d(f[h])[b](j), e = e.concat(j) } return this.pushStack(e, a, f.selector) } }), d.extend({ clone: function (a, b, c) { var e = a.cloneNode(!0), f, g, h; if ((!d.support.noCloneEvent || !d.support.noCloneChecked) && (a.nodeType === 1 || a.nodeType === 11) && !d.isXMLDoc(a)) { ba(a, e), f = bb(a), g = bb(e); for (h = 0; f[h]; ++h) ba(f[h], g[h]) } if (b) { _(a, e); if (c) { f = bb(a), g = bb(e); for (h = 0; f[h]; ++h) _(f[h], g[h]) } } return e }, clean: function (a, b, e, f) { b = b || c, typeof b.createElement === "undefined" && (b = b.ownerDocument || b[0] && b[0].ownerDocument || c); var g = []; for (var h = 0, i; (i = a[h]) != null; h++) { typeof i === "number" && (i += ""); if (!i) continue; if (typeof i !== "string" || W.test(i)) { if (typeof i === "string") { i = i.replace(T, "<$1></$2>"); var j = (U.exec(i) || ["", ""])[1].toLowerCase(), k = Z[j] || Z._default, l = k[0], m = b.createElement("div"); m.innerHTML = k[1] + i + k[2]; while (l--) m = m.lastChild; if (!d.support.tbody) { var n = V.test(i), o = j === "table" && !n ? m.firstChild && m.firstChild.childNodes : k[1] === "<table>" && !n ? m.childNodes : []; for (var p = o.length - 1; p >= 0; --p) d.nodeName(o[p], "tbody") && !o[p].childNodes.length && o[p].parentNode.removeChild(o[p]) } !d.support.leadingWhitespace && S.test(i) && m.insertBefore(b.createTextNode(S.exec(i)[0]), m.firstChild), i = m.childNodes } } else i = b.createTextNode(i); i.nodeType ? g.push(i) : g = d.merge(g, i) } if (e) for (h = 0; g[h]; h++) !f || !d.nodeName(g[h], "script") || g[h].type && g[h].type.toLowerCase() !== "text/javascript" ? (g[h].nodeType === 1 && g.splice.apply(g, [h + 1, 0].concat(d.makeArray(g[h].getElementsByTagName("script")))), e.appendChild(g[h])) : f.push(g[h].parentNode ? g[h].parentNode.removeChild(g[h]) : g[h]); return g }, cleanData: function (a) { var b, c, e = d.cache, f = d.expando, g = d.event.special, h = d.support.deleteExpando; for (var i = 0, j; (j = a[i]) != null; i++) { if (j.nodeName && d.noData[j.nodeName.toLowerCase()]) continue; c = j[d.expando]; if (c) { b = e[c] && e[c][f]; if (b && b.events) { for (var k in b.events) g[k] ? d.event.remove(j, k) : d.removeEvent(j, k, b.handle); b.handle && (b.handle.elem = null) } h ? delete j[d.expando] : j.removeAttribute && j.removeAttribute(d.expando), delete e[c] } } } }); var bd = /alpha\([^)]*\)/i, be = /opacity=([^)]*)/, bf = /-([a-z])/ig, bg = /([A-Z]|^ms)/g, bh = /^-?\d+(?:px)?$/i, bi = /^-?\d/, bj = { position: "absolute", visibility: "hidden", display: "block" }, bk = ["Left", "Right"], bl = ["Top", "Bottom"], bm, bn, bo, bp = function (a, b) { return b.toUpperCase() }; d.fn.css = function (a, c) { if (arguments.length === 2 && c === b) return this; return d.access(this, a, c, !0, function (a, c, e) { return e !== b ? d.style(a, c, e) : d.css(a, c) }) }, d.extend({ cssHooks: { opacity: { get: function (a, b) { if (b) { var c = bm(a, "opacity", "opacity"); return c === "" ? "1" : c } return a.style.opacity } } }, cssNumber: { zIndex: !0, fontWeight: !0, opacity: !0, zoom: !0, lineHeight: !0 }, cssProps: { "float": d.support.cssFloat ? "cssFloat" : "styleFloat" }, style: function (a, c, e, f) { if (a && a.nodeType !== 3 && a.nodeType !== 8 && a.style) { var g, h = d.camelCase(c), i = a.style, j = d.cssHooks[h]; c = d.cssProps[h] || h; if (e === b) { if (j && "get" in j && (g = j.get(a, !1, f)) !== b) return g; return i[c] } if (typeof e === "number" && isNaN(e) || e == null) return; typeof e === "number" && !d.cssNumber[h] && (e += "px"); if (!j || !("set" in j) || (e = j.set(a, e)) !== b) try { i[c] = e } catch (k) { } } }, css: function (a, c, e) { var f, g = d.camelCase(c), h = d.cssHooks[g]; c = d.cssProps[g] || g; if (h && "get" in h && (f = h.get(a, !0, e)) !== b) return f; if (bm) return bm(a, c, g) }, swap: function (a, b, c) { var d = {}; for (var e in b) d[e] = a.style[e], a.style[e] = b[e]; c.call(a); for (e in b) a.style[e] = d[e] }, camelCase: function (a) { return a.replace(bf, bp) } }), d.curCSS = d.css, d.each(["height", "width"], function (a, b) { d.cssHooks[b] = { get: function (a, c, e) { var f; if (c) { a.offsetWidth !== 0 ? f = bq(a, b, e) : d.swap(a, bj, function () { f = bq(a, b, e) }); if (f <= 0) { f = bm(a, b, b), f === "0px" && bo && (f = bo(a, b, b)); if (f != null) return f === "" || f === "auto" ? "0px" : f } if (f < 0 || f == null) { f = a.style[b]; return f === "" || f === "auto" ? "0px" : f } return typeof f === "string" ? f : f + "px" } }, set: function (a, b) { if (!bh.test(b)) return b; b = parseFloat(b); if (b >= 0) return b + "px" } } }), d.support.opacity || (d.cssHooks.opacity = { get: function (a, b) { return be.test((b && a.currentStyle ? a.currentStyle.filter : a.style.filter) || "") ? parseFloat(RegExp.$1) / 100 + "" : b ? "1" : "" }, set: function (a, b) { var c = a.style; c.zoom = 1; var e = d.isNaN(b) ? "" : "alpha(opacity=" + b * 100 + ")", f = c.filter || ""; c.filter = bd.test(f) ? f.replace(bd, e) : c.filter + " " + e } }), d(function () { d.support.reliableMarginRight || (d.cssHooks.marginRight = { get: function (a, b) { var c; d.swap(a, { display: "inline-block" }, function () { b ? c = bm(a, "margin-right", "marginRight") : c = a.style.marginRight }); return c } }) }), c.defaultView && c.defaultView.getComputedStyle && (bn = function (a, c, e) { var f, g, h; e = e.replace(bg, "-$1").toLowerCase(); if (!(g = a.ownerDocument.defaultView)) return b; if (h = g.getComputedStyle(a, null)) f = h.getPropertyValue(e), f === "" && !d.contains(a.ownerDocument.documentElement, a) && (f = d.style(a, e)); return f }), c.documentElement.currentStyle && (bo = function (a, b) { var c, d = a.currentStyle && a.currentStyle[b], e = a.runtimeStyle && a.runtimeStyle[b], f = a.style; !bh.test(d) && bi.test(d) && (c = f.left, e && (a.runtimeStyle.left = a.currentStyle.left), f.left = b === "fontSize" ? "1em" : d || 0, d = f.pixelLeft + "px", f.left = c, e && (a.runtimeStyle.left = e)); return d === "" ? "auto" : d }), bm = bn || bo, d.expr && d.expr.filters && (d.expr.filters.hidden = function (a) { var b = a.offsetWidth, c = a.offsetHeight; return b === 0 && c === 0 || !d.support.reliableHiddenOffsets && (a.style.display || d.css(a, "display")) === "none" }, d.expr.filters.visible = function (a) { return !d.expr.filters.hidden(a) }); var br = /%20/g, bs = /\[\]$/, bt = /\r?\n/g, bu = /#.*$/, bv = /^(.*?):[ \t]*([^\r\n]*)\r?$/mg, bw = /^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i, bx = /^(?:about|app|app\-storage|.+\-extension|file|widget):$/, by = /^(?:GET|HEAD)$/, bz = /^\/\//, bA = /\?/, bB = /<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi, bC = /^(?:select|textarea)/i, bD = /\s+/, bE = /([?&])_=[^&]*/, bF = /(^|\-)([a-z])/g, bG = function (a, b, c) { return b + c.toUpperCase() }, bH = /^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/, bI = d.fn.load, bJ = {}, bK = {}, bL, bM; try { bL = c.location.href } catch (bN) { bL = c.createElement("a"), bL.href = "", bL = bL.href } bM = bH.exec(bL.toLowerCase()) || [], d.fn.extend({ load: function (a, c, e) { if (typeof a !== "string" && bI) return bI.apply(this, arguments); if (!this.length) return this; var f = a.indexOf(" "); if (f >= 0) { var g = a.slice(f, a.length); a = a.slice(0, f) } var h = "GET"; c && (d.isFunction(c) ? (e = c, c = b) : typeof c === "object" && (c = d.param(c, d.ajaxSettings.traditional), h = "POST")); var i = this; d.ajax({ url: a, type: h, dataType: "html", data: c, complete: function (a, b, c) { c = a.responseText, a.isResolved() && (a.done(function (a) { c = a }), i.html(g ? d("<div>").append(c.replace(bB, "")).find(g) : c)), e && i.each(e, [c, b, a]) } }); return this }, serialize: function () { return d.param(this.serializeArray()) }, serializeArray: function () { return this.map(function () { return this.elements ? d.makeArray(this.elements) : this }).filter(function () { return this.name && !this.disabled && (this.checked || bC.test(this.nodeName) || bw.test(this.type)) }).map(function (a, b) { var c = d(this).val(); return c == null ? null : d.isArray(c) ? d.map(c, function (a, c) { return { name: b.name, value: a.replace(bt, "\r\n")} }) : { name: b.name, value: c.replace(bt, "\r\n")} }).get() } }), d.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "), function (a, b) { d.fn[b] = function (a) { return this.bind(b, a) } }), d.each(["get", "post"], function (a, c) { d[c] = function (a, e, f, g) { d.isFunction(e) && (g = g || f, f = e, e = b); return d.ajax({ type: c, url: a, data: e, success: f, dataType: g }) } }), d.extend({ getScript: function (a, c) { return d.get(a, b, c, "script") }, getJSON: function (a, b, c) { return d.get(a, b, c, "json") }, ajaxSetup: function (a, b) { b ? d.extend(!0, a, d.ajaxSettings, b) : (b = a, a = d.extend(!0, d.ajaxSettings, b)); for (var c in { context: 1, url: 1 }) c in b ? a[c] = b[c] : c in d.ajaxSettings && (a[c] = d.ajaxSettings[c]); return a }, ajaxSettings: { url: bL, isLocal: bx.test(bM[1]), global: !0, type: "GET", contentType: "application/x-www-form-urlencoded", processData: !0, async: !0, accepts: { xml: "application/xml, text/xml", html: "text/html", text: "text/plain", json: "application/json, text/javascript", "*": "*/*" }, contents: { xml: /xml/, html: /html/, json: /json/ }, responseFields: { xml: "responseXML", text: "responseText" }, converters: { "* text": a.String, "text html": !0, "text json": d.parseJSON, "text xml": d.parseXML} }, ajaxPrefilter: bO(bJ), ajaxTransport: bO(bK), ajax: function (a, c) { function v(a, c, l, n) { if (r !== 2) { r = 2, p && clearTimeout(p), o = b, m = n || "", u.readyState = a ? 4 : 0; var q, t, v, w = l ? bR(e, u, l) : b, x, y; if (a >= 200 && a < 300 || a === 304) { if (e.ifModified) { if (x = u.getResponseHeader("Last-Modified")) d.lastModified[k] = x; if (y = u.getResponseHeader("Etag")) d.etag[k] = y } if (a === 304) c = "notmodified", q = !0; else try { t = bS(e, w), c = "success", q = !0 } catch (z) { c = "parsererror", v = z } } else { v = c; if (!c || a) c = "error", a < 0 && (a = 0) } u.status = a, u.statusText = c, q ? h.resolveWith(f, [t, c, u]) : h.rejectWith(f, [u, c, v]), u.statusCode(j), j = b, s && g.trigger("ajax" + (q ? "Success" : "Error"), [u, e, q ? t : v]), i.resolveWith(f, [u, c]), s && (g.trigger("ajaxComplete", [u, e]), --d.active || d.event.trigger("ajaxStop")) } } typeof a === "object" && (c = a, a = b), c = c || {}; var e = d.ajaxSetup({}, c), f = e.context || e, g = f !== e && (f.nodeType || f instanceof d) ? d(f) : d.event, h = d.Deferred(), i = d._Deferred(), j = e.statusCode || {}, k, l = {}, m, n, o, p, q, r = 0, s, t, u = { readyState: 0, setRequestHeader: function (a, b) { r || (l[a.toLowerCase().replace(bF, bG)] = b); return this }, getAllResponseHeaders: function () { return r === 2 ? m : null }, getResponseHeader: function (a) { var c; if (r === 2) { if (!n) { n = {}; while (c = bv.exec(m)) n[c[1].toLowerCase()] = c[2] } c = n[a.toLowerCase()] } return c === b ? null : c }, overrideMimeType: function (a) { r || (e.mimeType = a); return this }, abort: function (a) { a = a || "abort", o && o.abort(a), v(0, a); return this } }; h.promise(u), u.success = u.done, u.error = u.fail, u.complete = i.done, u.statusCode = function (a) { if (a) { var b; if (r < 2) for (b in a) j[b] = [j[b], a[b]]; else b = a[u.status], u.then(b, b) } return this }, e.url = ((a || e.url) + "").replace(bu, "").replace(bz, bM[1] + "//"), e.dataTypes = d.trim(e.dataType || "*").toLowerCase().split(bD), e.crossDomain == null && (q = bH.exec(e.url.toLowerCase()), e.crossDomain = q && (q[1] != bM[1] || q[2] != bM[2] || (q[3] || (q[1] === "http:" ? 80 : 443)) != (bM[3] || (bM[1] === "http:" ? 80 : 443)))), e.data && e.processData && typeof e.data !== "string" && (e.data = d.param(e.data, e.traditional)), bP(bJ, e, c, u); if (r === 2) return !1; s = e.global, e.type = e.type.toUpperCase(), e.hasContent = !by.test(e.type), s && d.active++ === 0 && d.event.trigger("ajaxStart"); if (!e.hasContent) { e.data && (e.url += (bA.test(e.url) ? "&" : "?") + e.data), k = e.url; if (e.cache === !1) { var w = d.now(), x = e.url.replace(bE, "$1_=" + w); e.url = x + (x === e.url ? (bA.test(e.url) ? "&" : "?") + "_=" + w : "") } } if (e.data && e.hasContent && e.contentType !== !1 || c.contentType) l["Content-Type"] = e.contentType; e.ifModified && (k = k || e.url, d.lastModified[k] && (l["If-Modified-Since"] = d.lastModified[k]), d.etag[k] && (l["If-None-Match"] = d.etag[k])), l.Accept = e.dataTypes[0] && e.accepts[e.dataTypes[0]] ? e.accepts[e.dataTypes[0]] + (e.dataTypes[0] !== "*" ? ", */*; q=0.01" : "") : e.accepts["*"]; for (t in e.headers) u.setRequestHeader(t, e.headers[t]); if (e.beforeSend && (e.beforeSend.call(f, u, e) === !1 || r === 2)) { u.abort(); return !1 } for (t in { success: 1, error: 1, complete: 1 }) u[t](e[t]); o = bP(bK, e, c, u); if (o) { u.readyState = 1, s && g.trigger("ajaxSend", [u, e]), e.async && e.timeout > 0 && (p = setTimeout(function () { u.abort("timeout") }, e.timeout)); try { r = 1, o.send(l, v) } catch (y) { status < 2 ? v(-1, y) : d.error(y) } } else v(-1, "No Transport"); return u }, param: function (a, c) { var e = [], f = function (a, b) { b = d.isFunction(b) ? b() : b, e[e.length] = encodeURIComponent(a) + "=" + encodeURIComponent(b) }; c === b && (c = d.ajaxSettings.traditional); if (d.isArray(a) || a.jquery && !d.isPlainObject(a)) d.each(a, function () { f(this.name, this.value) }); else for (var g in a) bQ(g, a[g], c, f); return e.join("&").replace(br, "+") } }), d.extend({ active: 0, lastModified: {}, etag: {} }); var bT = d.now(), bU = /(\=)\?(&|$)|\?\?/i; d.ajaxSetup({ jsonp: "callback", jsonpCallback: function () { return d.expando + "_" + bT++ } }), d.ajaxPrefilter("json jsonp", function (b, c, e) { var f = typeof b.data === "string"; if (b.dataTypes[0] === "jsonp" || c.jsonpCallback || c.jsonp != null || b.jsonp !== !1 && (bU.test(b.url) || f && bU.test(b.data))) { var g, h = b.jsonpCallback = d.isFunction(b.jsonpCallback) ? b.jsonpCallback() : b.jsonpCallback, i = a[h], j = b.url, k = b.data, l = "$1" + h + "$2", m = function () { a[h] = i, g && d.isFunction(i) && a[h](g[0]) }; b.jsonp !== !1 && (j = j.replace(bU, l), b.url === j && (f && (k = k.replace(bU, l)), b.data === k && (j += (/\?/.test(j) ? "&" : "?") + b.jsonp + "=" + h))), b.url = j, b.data = k, a[h] = function (a) { g = [a] }, e.then(m, m), b.converters["script json"] = function () { g || d.error(h + " was not called"); return g[0] }, b.dataTypes[0] = "json"; return "script" } }), d.ajaxSetup({ accepts: { script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript" }, contents: { script: /javascript|ecmascript/ }, converters: { "text script": function (a) { d.globalEval(a); return a } } }), d.ajaxPrefilter("script", function (a) { a.cache === b && (a.cache = !1), a.crossDomain && (a.type = "GET", a.global = !1) }), d.ajaxTransport("script", function (a) { if (a.crossDomain) { var d, e = c.head || c.getElementsByTagName("head")[0] || c.documentElement; return { send: function (f, g) { d = c.createElement("script"), d.async = "async", a.scriptCharset && (d.charset = a.scriptCharset), d.src = a.url, d.onload = d.onreadystatechange = function (a, c) { if (!d.readyState || /loaded|complete/.test(d.readyState)) d.onload = d.onreadystatechange = null, e && d.parentNode && e.removeChild(d), d = b, c || g(200, "success") }, e.insertBefore(d, e.firstChild) }, abort: function () { d && d.onload(0, 1) } } } }); var bV = d.now(), bW, bX; d.ajaxSettings.xhr = a.ActiveXObject ? function () { return !this.isLocal && bZ() || b$() } : bZ, bX = d.ajaxSettings.xhr(), d.support.ajax = !!bX, d.support.cors = bX && "withCredentials" in bX, bX = b, d.support.ajax && d.ajaxTransport(function (a) { if (!a.crossDomain || d.support.cors) { var c; return { send: function (e, f) { var g = a.xhr(), h, i; a.username ? g.open(a.type, a.url, a.async, a.username, a.password) : g.open(a.type, a.url, a.async); if (a.xhrFields) for (i in a.xhrFields) g[i] = a.xhrFields[i]; a.mimeType && g.overrideMimeType && g.overrideMimeType(a.mimeType), !a.crossDomain && !e["X-Requested-With"] && (e["X-Requested-With"] = "XMLHttpRequest"); try { for (i in e) g.setRequestHeader(i, e[i]) } catch (j) { } g.send(a.hasContent && a.data || null), c = function (e, i) { var j, k, l, m, n; try { if (c && (i || g.readyState === 4)) { c = b, h && (g.onreadystatechange = d.noop, delete bW[h]); if (i) g.readyState !== 4 && g.abort(); else { j = g.status, l = g.getAllResponseHeaders(), m = {}, n = g.responseXML, n && n.documentElement && (m.xml = n), m.text = g.responseText; try { k = g.statusText } catch (o) { k = "" } j || !a.isLocal || a.crossDomain ? j === 1223 && (j = 204) : j = m.text ? 200 : 404 } } } catch (p) { i || f(-1, p) } m && f(j, k, m, l) }, a.async && g.readyState !== 4 ? (bW || (bW = {}, bY()), h = bV++, g.onreadystatechange = bW[h] = c) : c() }, abort: function () { c && c(0, 1) } } } }); var b_ = {}, ca = /^(?:toggle|show|hide)$/, cb = /^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i, cc, cd = [["height", "marginTop", "marginBottom", "paddingTop", "paddingBottom"], ["width", "marginLeft", "marginRight", "paddingLeft", "paddingRight"], ["opacity"]]; d.fn.extend({ show: function (a, b, c) { var e, f; if (a || a === 0) return this.animate(ce("show", 3), a, b, c); for (var g = 0, h = this.length; g < h; g++) e = this[g], f = e.style.display, !d._data(e, "olddisplay") && f === "none" && (f = e.style.display = ""), f === "" && d.css(e, "display") === "none" && d._data(e, "olddisplay", cf(e.nodeName)); for (g = 0; g < h; g++) { e = this[g], f = e.style.display; if (f === "" || f === "none") e.style.display = d._data(e, "olddisplay") || "" } return this }, hide: function (a, b, c) { if (a || a === 0) return this.animate(ce("hide", 3), a, b, c); for (var e = 0, f = this.length; e < f; e++) { var g = d.css(this[e], "display"); g !== "none" && !d._data(this[e], "olddisplay") && d._data(this[e], "olddisplay", g) } for (e = 0; e < f; e++) this[e].style.display = "none"; return this }, _toggle: d.fn.toggle, toggle: function (a, b, c) { var e = typeof a === "boolean"; d.isFunction(a) && d.isFunction(b) ? this._toggle.apply(this, arguments) : a == null || e ? this.each(function () { var b = e ? a : d(this).is(":hidden"); d(this)[b ? "show" : "hide"]() }) : this.animate(ce("toggle", 3), a, b, c); return this }, fadeTo: function (a, b, c, d) { return this.filter(":hidden").css("opacity", 0).show().end().animate({ opacity: b }, a, c, d) }, animate: function (a, b, c, e) { var f = d.speed(b, c, e); if (d.isEmptyObject(a)) return this.each(f.complete); return this[f.queue === !1 ? "each" : "queue"](function () { var b = d.extend({}, f), c, e = this.nodeType === 1, g = e && d(this).is(":hidden"), h = this; for (c in a) { var i = d.camelCase(c); c !== i && (a[i] = a[c], delete a[c], c = i); if (a[c] === "hide" && g || a[c] === "show" && !g) return b.complete.call(this); if (e && (c === "height" || c === "width")) { b.overflow = [this.style.overflow, this.style.overflowX, this.style.overflowY]; if (d.css(this, "display") === "inline" && d.css(this, "float") === "none") if (d.support.inlineBlockNeedsLayout) { var j = cf(this.nodeName); j === "inline" ? this.style.display = "inline-block" : (this.style.display = "inline", this.style.zoom = 1) } else this.style.display = "inline-block" } d.isArray(a[c]) && ((b.specialEasing = b.specialEasing || {})[c] = a[c][1], a[c] = a[c][0]) } b.overflow != null && (this.style.overflow = "hidden"), b.curAnim = d.extend({}, a), d.each(a, function (c, e) { var f = new d.fx(h, b, c); if (ca.test(e)) f[e === "toggle" ? g ? "show" : "hide" : e](a); else { var i = cb.exec(e), j = f.cur(); if (i) { var k = parseFloat(i[2]), l = i[3] || (d.cssNumber[c] ? "" : "px"); l !== "px" && (d.style(h, c, (k || 1) + l), j = (k || 1) / f.cur() * j, d.style(h, c, j + l)), i[1] && (k = (i[1] === "-=" ? -1 : 1) * k + j), f.custom(j, k, l) } else f.custom(j, e, "") } }); return !0 }) }, stop: function (a, b) { var c = d.timers; a && this.queue([]), this.each(function () { for (var a = c.length - 1; a >= 0; a--) c[a].elem === this && (b && c[a](!0), c.splice(a, 1)) }), b || this.dequeue(); return this } }), d.each({ slideDown: ce("show", 1), slideUp: ce("hide", 1), slideToggle: ce("toggle", 1), fadeIn: { opacity: "show" }, fadeOut: { opacity: "hide" }, fadeToggle: { opacity: "toggle"} }, function (a, b) { d.fn[a] = function (a, c, d) { return this.animate(b, a, c, d) } }), d.extend({ speed: function (a, b, c) { var e = a && typeof a === "object" ? d.extend({}, a) : { complete: c || !c && b || d.isFunction(a) && a, duration: a, easing: c && b || b && !d.isFunction(b) && b }; e.duration = d.fx.off ? 0 : typeof e.duration === "number" ? e.duration : e.duration in d.fx.speeds ? d.fx.speeds[e.duration] : d.fx.speeds._default, e.old = e.complete, e.complete = function () { e.queue !== !1 && d(this).dequeue(), d.isFunction(e.old) && e.old.call(this) }; return e }, easing: { linear: function (a, b, c, d) { return c + d * a }, swing: function (a, b, c, d) { return (-Math.cos(a * Math.PI) / 2 + .5) * d + c } }, timers: [], fx: function (a, b, c) { this.options = b, this.elem = a, this.prop = c, b.orig || (b.orig = {}) } }), d.fx.prototype = { update: function () { this.options.step && this.options.step.call(this.elem, this.now, this), (d.fx.step[this.prop] || d.fx.step._default)(this) }, cur: function () { if (this.elem[this.prop] != null && (!this.elem.style || this.elem.style[this.prop] == null)) return this.elem[this.prop]; var a, b = d.css(this.elem, this.prop); return isNaN(a = parseFloat(b)) ? !b || b === "auto" ? 0 : b : a }, custom: function (a, b, c) { function g(a) { return e.step(a) } var e = this, f = d.fx; this.startTime = d.now(), this.start = a, this.end = b, this.unit = c || this.unit || (d.cssNumber[this.prop] ? "" : "px"), this.now = this.start, this.pos = this.state = 0, g.elem = this.elem, g() && d.timers.push(g) && !cc && (cc = setInterval(f.tick, f.interval)) }, show: function () { this.options.orig[this.prop] = d.style(this.elem, this.prop), this.options.show = !0, this.custom(this.prop === "width" || this.prop === "height" ? 1 : 0, this.cur()), d(this.elem).show() }, hide: function () { this.options.orig[this.prop] = d.style(this.elem, this.prop), this.options.hide = !0, this.custom(this.cur(), 0) }, step: function (a) { var b = d.now(), c = !0; if (a || b >= this.options.duration + this.startTime) { this.now = this.end, this.pos = this.state = 1, this.update(), this.options.curAnim[this.prop] = !0; for (var e in this.options.curAnim) this.options.curAnim[e] !== !0 && (c = !1); if (c) { if (this.options.overflow != null && !d.support.shrinkWrapBlocks) { var f = this.elem, g = this.options; d.each(["", "X", "Y"], function (a, b) { f.style["overflow" + b] = g.overflow[a] }) } this.options.hide && d(this.elem).hide(); if (this.options.hide || this.options.show) for (var h in this.options.curAnim) d.style(this.elem, h, this.options.orig[h]); this.options.complete.call(this.elem) } return !1 } var i = b - this.startTime; this.state = i / this.options.duration; var j = this.options.specialEasing && this.options.specialEasing[this.prop], k = this.options.easing || (d.easing.swing ? "swing" : "linear"); this.pos = d.easing[j || k](this.state, i, 0, 1, this.options.duration), this.now = this.start + (this.end - this.start) * this.pos, this.update(); return !0 } }, d.extend(d.fx, { tick: function () { var a = d.timers; for (var b = 0; b < a.length; b++) a[b]() || a.splice(b--, 1); a.length || d.fx.stop() }, interval: 13, stop: function () { clearInterval(cc), cc = null }, speeds: { slow: 600, fast: 200, _default: 400 }, step: { opacity: function (a) { d.style(a.elem, "opacity", a.now) }, _default: function (a) { 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 : a.elem[a.prop] = a.now } } }), d.expr && d.expr.filters && (d.expr.filters.animated = function (a) { return d.grep(d.timers, function (b) { return a === b.elem }).length }); var cg = /^t(?:able|d|h)$/i, ch = /^(?:body|html)$/i; "getBoundingClientRect" in c.documentElement ? d.fn.offset = function (a) { var b = this[0], c; if (a) return this.each(function (b) { d.offset.setOffset(this, a, b) }); if (!b || !b.ownerDocument) return null; if (b === b.ownerDocument.body) return d.offset.bodyOffset(b); try { c = b.getBoundingClientRect() } catch (e) { } var f = b.ownerDocument, g = f.documentElement; if (!c || !d.contains(g, b)) return c ? { top: c.top, left: c.left} : { top: 0, left: 0 }; var h = f.body, i = ci(f), j = g.clientTop || h.clientTop || 0, k = g.clientLeft || h.clientLeft || 0, l = i.pageYOffset || d.support.boxModel && g.scrollTop || h.scrollTop, m = i.pageXOffset || d.support.boxModel && g.scrollLeft || h.scrollLeft, n = c.top + l - j, o = c.left + m - k; return { top: n, left: o} } : d.fn.offset = function (a) { var b = this[0]; if (a) return this.each(function (b) { d.offset.setOffset(this, a, b) }); if (!b || !b.ownerDocument) return null; if (b === b.ownerDocument.body) return d.offset.bodyOffset(b); d.offset.initialize(); var c, e = b.offsetParent, f = b, g = b.ownerDocument, h = g.documentElement, i = g.body, j = g.defaultView, k = j ? j.getComputedStyle(b, null) : b.currentStyle, l = b.offsetTop, m = b.offsetLeft; while ((b = b.parentNode) && b !== i && b !== h) { if (d.offset.supportsFixedPosition && k.position === "fixed") break; c = j ? j.getComputedStyle(b, null) : b.currentStyle, l -= b.scrollTop, m -= b.scrollLeft, b === e && (l += b.offsetTop, m += b.offsetLeft, d.offset.doesNotAddBorder && (!d.offset.doesAddBorderForTableAndCells || !cg.test(b.nodeName)) && (l += parseFloat(c.borderTopWidth) || 0, m += parseFloat(c.borderLeftWidth) || 0), f = e, e = b.offsetParent), d.offset.subtractsBorderForOverflowNotVisible && c.overflow !== "visible" && (l += parseFloat(c.borderTopWidth) || 0, m += parseFloat(c.borderLeftWidth) || 0), k = c } if (k.position === "relative" || k.position === "static") l += i.offsetTop, m += i.offsetLeft; d.offset.supportsFixedPosition && k.position === "fixed" && (l += Math.max(h.scrollTop, i.scrollTop), m += Math.max(h.scrollLeft, i.scrollLeft)); return { top: l, left: m} }, d.offset = { initialize: function () { var a = c.body, b = c.createElement("div"), e, f, g, h, i = parseFloat(d.css(a, "marginTop")) || 0, j = "<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>"; d.extend(b.style, { position: "absolute", top: 0, left: 0, margin: 0, border: 0, width: "1px", height: "1px", visibility: "hidden" }), b.innerHTML = j, a.insertBefore(b, a.firstChild), e = b.firstChild, f = e.firstChild, h = e.nextSibling.firstChild.firstChild, this.doesNotAddBorder = f.offsetTop !== 5, this.doesAddBorderForTableAndCells = h.offsetTop === 5, f.style.position = "fixed", f.style.top = "20px", this.supportsFixedPosition = f.offsetTop === 20 || f.offsetTop === 15, f.style.position = f.style.top = "", e.style.overflow = "hidden", e.style.position = "relative", this.subtractsBorderForOverflowNotVisible = f.offsetTop === -5, this.doesNotIncludeMarginInBodyOffset = a.offsetTop !== i, a.removeChild(b), d.offset.initialize = d.noop }, bodyOffset: function (a) { var b = a.offsetTop, c = a.offsetLeft; d.offset.initialize(), d.offset.doesNotIncludeMarginInBodyOffset && (b += parseFloat(d.css(a, "marginTop")) || 0, c += parseFloat(d.css(a, "marginLeft")) || 0); return { top: b, left: c} }, setOffset: function (a, b, c) { var e = d.css(a, "position"); e === "static" && (a.style.position = "relative"); var f = d(a), g = f.offset(), h = d.css(a, "top"), i = d.css(a, "left"), j = (e === "absolute" || e === "fixed") && d.inArray("auto", [h, i]) > -1, k = {}, l = {}, m, n; j && (l = f.position()), m = j ? l.top : parseInt(h, 10) || 0, n = j ? l.left : parseInt(i, 10) || 0, d.isFunction(b) && (b = b.call(a, c, g)), b.top != null && (k.top = b.top - g.top + m), b.left != null && (k.left = b.left - g.left + n), "using" in b ? b.using.call(a, k) : f.css(k) } }, d.fn.extend({ position: function () { if (!this[0]) return null; var a = this[0], b = this.offsetParent(), c = this.offset(), e = ch.test(b[0].nodeName) ? { top: 0, left: 0} : b.offset(); c.top -= parseFloat(d.css(a, "marginTop")) || 0, c.left -= parseFloat(d.css(a, "marginLeft")) || 0, e.top += parseFloat(d.css(b[0], "borderTopWidth")) || 0, e.left += parseFloat(d.css(b[0], "borderLeftWidth")) || 0; return { top: c.top - e.top, left: c.left - e.left} }, offsetParent: function () { return this.map(function () { var a = this.offsetParent || c.body; while (a && (!ch.test(a.nodeName) && d.css(a, "position") === "static")) a = a.offsetParent; return a }) } }), d.each(["Left", "Top"], function (a, c) { var e = "scroll" + c; d.fn[e] = function (c) { var f = this[0], g; if (!f) return null; if (c !== b) return this.each(function () { g = ci(this), g ? g.scrollTo(a ? d(g).scrollLeft() : c, a ? c : d(g).scrollTop()) : this[e] = c }); g = ci(f); return g ? "pageXOffset" in g ? g[a ? "pageYOffset" : "pageXOffset"] : d.support.boxModel && g.document.documentElement[e] || g.document.body[e] : f[e] } }), d.each(["Height", "Width"], function (a, c) { var e = c.toLowerCase(); d.fn["inner" + c] = function () { return this[0] ? parseFloat(d.css(this[0], e, "padding")) : null }, d.fn["outer" + c] = function (a) { return this[0] ? parseFloat(d.css(this[0], e, a ? "margin" : "border")) : null }, d.fn[e] = function (a) { var f = this[0]; if (!f) return a == null ? null : this; if (d.isFunction(a)) return this.each(function (b) { var c = d(this); c[e](a.call(this, b, c[e]())) }); if (d.isWindow(f)) { var g = f.document.documentElement["client" + c]; return f.document.compatMode === "CSS1Compat" && g || f.document.body["client" + c] || g } if (f.nodeType === 9) return Math.max(f.documentElement["client" + c], f.body["scroll" + c], f.documentElement["scroll" + c], f.body["offset" + c], f.documentElement["offset" + c]); if (a === b) { var h = d.css(f, e), i = parseFloat(h); return d.isNaN(i) ? h : i } return this.css(e, typeof a === "string" ? a : a + "px") } }), a.jQuery = a.$ = d })(window);

/*======================================================================
PRODUCT:     Watermark v3.0.4 (January 14, 2010) plugin for jQuery
WEBSITE:     http://jquery-watermark.googlecode.com/
AUTEUR:      Todd Northrop
======================================================================*/
(function (a) { var k = "function", i = "password", c = "maxLength", e = "type", b = true, d = false, s = "watermark", t, m = s, h = "watermarkClass", p = "watermarkFocus", j = "watermarkSubmit", l = "watermarkMaxLength", g = "watermarkPassword", f = "watermarkText", r = ":data(" + m + ")", n = ":text,:password,:search,textarea", o = ["Page_ClientValidate"], q = d; a.extend(a.expr[":"], { search: function (a) { return "search" === a.type }, data: function (f, h, g) { var e, c = /^((?:[^=!^$*]|[!^$*](?!=))+)(?:([!^$*]?=)(.*))?$/.exec(g[3]); if (c) { e = a(f).data(c[1]); if (e !== t) { if (c[2]) { e = "" + e; switch (c[2]) { case "=": return e == c[3]; case "!=": return e != c[3]; case "^=": return e.slice(0, c[3].length) == c[3]; case "$=": return e.slice(-c[3].length) == c[3]; case "*=": return e.indexOf(c[3]) !== -1 } } return b } } return d } }); a.watermark = { version: "3.0.4", options: { className: s, useNative: b }, hide: function (b) { a(b).filter(r).each(function () { a.watermark._hide(a(this)) }) }, _hide: function (a, i) { if (a.val() == a.data(f)) { a.val(""); if (a.data(g)) if (a.attr(e) === "text") { var d = a.data(g), b = a.parent(); b[0].removeChild(a[0]); b[0].appendChild(d[0]); a = d } if (a.data(l)) { a.attr(c, a.data(l)); a.removeData(l) } if (i) { a.attr("autocomplete", "off"); window.setTimeout(function () { a.select() }, 0) } } a.removeClass(a.data(h)) }, show: function (b) { a(b).filter(r).each(function () { a.watermark._show(a(this)) }) }, _show: function (d) { var r = d.val(), j = d.data(f), m = d.attr(e); if ((r.length == 0 || r == j) && !d.data(p)) { q = b; if (d.data(g)) if (m === i) { var o = d.data(g), n = d.parent(); n[0].removeChild(d[0]); n[0].appendChild(o[0]); d = o; d.attr(c, j.length) } if (m === "text" || m === "search") { var k = d.attr(c); if (k > 0 && j.length > k) { d.data(l, k); d.attr(c, j.length) } } d.addClass(d.data(h)); d.val(j) } else a.watermark._hide(d) }, hideAll: function () { if (q) { a.watermark.hide(n); q = d } }, showAll: function () { a.watermark.show(n) } }; a.fn.watermark = function (q, l) { var o = "string", s = typeof q === o, r; if (typeof l === "object") { r = typeof l.className === o; l = a.extend({}, a.watermark.options, l) } else if (typeof l === o) { r = b; l = a.extend({}, a.watermark.options, { className: l }) } else l = a.watermark.options; if (typeof l.useNative !== k) l.useNative = l.useNative ? function () { return b } : function () { return d }; return this.each(function () { var u = "dragleave", t = "dragenter", w = this, d = a(w); if (!d.is(n)) return; if (d.data(m)) { if (s || r) { a.watermark._hide(d); s && d.data(f, q); r && d.data(h, l.className) } } else { if (l.useNative.call(w, d)) if (("" + d.css("-webkit-appearance")).replace("undefined", "") !== "" && d.attr("tagName") !== "TEXTAREA") { s && d.attr("placeholder", q); return } d.data(f, s ? q : ""); d.data(h, l.className); d.data(m, 1); if (d.attr(e) === i) { var x = d.wrap("<span>").parent(), k = a(x.html().replace(/type=["']?password["']?/i, 'type="text"')); k.data(f, d.data(f)); k.data(h, d.data(h)); k.data(m, 1); k.attr(c, q.length); k.focus(function () { a.watermark._hide(k, b) }).bind(t, function () { a.watermark._hide(k) }).bind("dragend", function () { window.setTimeout(function () { k.blur() }, 1) }); d.blur(function () { a.watermark._show(d) }).bind(u, function () { a.watermark._show(d) }); k.data(g, d); d.data(g, k) } else d.focus(function () { d.data(p, 1); a.watermark._hide(d, b) }).blur(function () { d.data(p, 0); a.watermark._show(d) }).bind(t, function () { a.watermark._hide(d) }).bind(u, function () { a.watermark._show(d) }).bind("dragend", function () { window.setTimeout(function () { a.watermark._show(d) }, 1) }).bind("drop", function (b) { var a = b.originalEvent.dataTransfer.getData("Text"); d.val().replace(a, "") === d.data(f) && d.val(a); d.focus() }); if (w.form) { var o = w.form, v = a(o); if (!v.data(j)) { v.submit(a.watermark.hideAll); if (o.submit) { v.data(j, o.submit); o.submit = function (c, b) { return function () { var d = b.data(j); a.watermark.hideAll(); if (d.apply) d.apply(c, Array.prototype.slice.call(arguments)); else d() } } (o, v) } else { v.data(j, 1); o.submit = function (b) { return function () { a.watermark.hideAll(); delete b.submit; b.submit() } } (o) } } } } a.watermark._show(d) }).end() }; o.length && a(function () { for (var b, c, d = o.length - 1; d >= 0; d--) { b = o[d]; c = window[b]; if (typeof c === k) window[b] = function (b) { return function () { a.watermark.hideAll(); b.apply(null, Array.prototype.slice.call(arguments)) } } (c) } }) })(jQuery);

/*
* 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
eval(function (p, a, c, k, e, r) { e = function (c) { return (c < a ? '' : e(parseInt(c / a))) + ((c = c % a) > 35 ? String.fromCharCode(c + 29) : c.toString(36)) }; if (!''.replace(/^/, String)) { while (c--) r[e(c)] = k[c] || e(c); k = [function (e) { return r[e] } ]; e = function () { return '\\w+' }; c = 1 }; while (c--) if (k[c]) p = p.replace(new RegExp('\\b' + e(c) + '\\b', 'g'), k[c]); return p } ('h.i[\'1a\']=h.i[\'z\'];h.O(h.i,{y:\'D\',z:9(x,t,b,c,d){6 h.i[h.i.y](x,t,b,c,d)},17:9(x,t,b,c,d){6 c*(t/=d)*t+b},D:9(x,t,b,c,d){6-c*(t/=d)*(t-2)+b},13:9(x,t,b,c,d){e((t/=d/2)<1)6 c/2*t*t+b;6-c/2*((--t)*(t-2)-1)+b},X:9(x,t,b,c,d){6 c*(t/=d)*t*t+b},U:9(x,t,b,c,d){6 c*((t=t/d-1)*t*t+1)+b},R:9(x,t,b,c,d){e((t/=d/2)<1)6 c/2*t*t*t+b;6 c/2*((t-=2)*t*t+2)+b},N:9(x,t,b,c,d){6 c*(t/=d)*t*t*t+b},M:9(x,t,b,c,d){6-c*((t=t/d-1)*t*t*t-1)+b},L:9(x,t,b,c,d){e((t/=d/2)<1)6 c/2*t*t*t*t+b;6-c/2*((t-=2)*t*t*t-2)+b},K:9(x,t,b,c,d){6 c*(t/=d)*t*t*t*t+b},J:9(x,t,b,c,d){6 c*((t=t/d-1)*t*t*t*t+1)+b},I:9(x,t,b,c,d){e((t/=d/2)<1)6 c/2*t*t*t*t*t+b;6 c/2*((t-=2)*t*t*t*t+2)+b},G:9(x,t,b,c,d){6-c*8.C(t/d*(8.g/2))+c+b},15:9(x,t,b,c,d){6 c*8.n(t/d*(8.g/2))+b},12:9(x,t,b,c,d){6-c/2*(8.C(8.g*t/d)-1)+b},Z:9(x,t,b,c,d){6(t==0)?b:c*8.j(2,10*(t/d-1))+b},Y:9(x,t,b,c,d){6(t==d)?b+c:c*(-8.j(2,-10*t/d)+1)+b},W:9(x,t,b,c,d){e(t==0)6 b;e(t==d)6 b+c;e((t/=d/2)<1)6 c/2*8.j(2,10*(t-1))+b;6 c/2*(-8.j(2,-10*--t)+2)+b},V:9(x,t,b,c,d){6-c*(8.o(1-(t/=d)*t)-1)+b},S:9(x,t,b,c,d){6 c*8.o(1-(t=t/d-1)*t)+b},Q:9(x,t,b,c,d){e((t/=d/2)<1)6-c/2*(8.o(1-t*t)-1)+b;6 c/2*(8.o(1-(t-=2)*t)+1)+b},P:9(x,t,b,c,d){f s=1.l;f p=0;f a=c;e(t==0)6 b;e((t/=d)==1)6 b+c;e(!p)p=d*.3;e(a<8.w(c)){a=c;f s=p/4}m f s=p/(2*8.g)*8.r(c/a);6-(a*8.j(2,10*(t-=1))*8.n((t*d-s)*(2*8.g)/p))+b},H:9(x,t,b,c,d){f s=1.l;f p=0;f a=c;e(t==0)6 b;e((t/=d)==1)6 b+c;e(!p)p=d*.3;e(a<8.w(c)){a=c;f s=p/4}m f s=p/(2*8.g)*8.r(c/a);6 a*8.j(2,-10*t)*8.n((t*d-s)*(2*8.g)/p)+c+b},T:9(x,t,b,c,d){f s=1.l;f p=0;f a=c;e(t==0)6 b;e((t/=d/2)==2)6 b+c;e(!p)p=d*(.3*1.5);e(a<8.w(c)){a=c;f s=p/4}m f s=p/(2*8.g)*8.r(c/a);e(t<1)6-.5*(a*8.j(2,10*(t-=1))*8.n((t*d-s)*(2*8.g)/p))+b;6 a*8.j(2,-10*(t-=1))*8.n((t*d-s)*(2*8.g)/p)*.5+c+b},F:9(x,t,b,c,d,s){e(s==u)s=1.l;6 c*(t/=d)*t*((s+1)*t-s)+b},E:9(x,t,b,c,d,s){e(s==u)s=1.l;6 c*((t=t/d-1)*t*((s+1)*t+s)+1)+b},16:9(x,t,b,c,d,s){e(s==u)s=1.l;e((t/=d/2)<1)6 c/2*(t*t*(((s*=(1.B))+1)*t-s))+b;6 c/2*((t-=2)*t*(((s*=(1.B))+1)*t+s)+2)+b},A:9(x,t,b,c,d){6 c-h.i.v(x,d-t,0,c,d)+b},v:9(x,t,b,c,d){e((t/=d)<(1/2.k)){6 c*(7.q*t*t)+b}m e(t<(2/2.k)){6 c*(7.q*(t-=(1.5/2.k))*t+.k)+b}m e(t<(2.5/2.k)){6 c*(7.q*(t-=(2.14/2.k))*t+.11)+b}m{6 c*(7.q*(t-=(2.18/2.k))*t+.19)+b}},1b:9(x,t,b,c,d){e(t<d/2)6 h.i.A(x,t*2,0,c,d)*.5+b;6 h.i.v(x,t*2-d,0,c,d)*.5+c*.5+b}});', 62, 74, '||||||return||Math|function|||||if|var|PI|jQuery|easing|pow|75|70158|else|sin|sqrt||5625|asin|||undefined|easeOutBounce|abs||def|swing|easeInBounce|525|cos|easeOutQuad|easeOutBack|easeInBack|easeInSine|easeOutElastic|easeInOutQuint|easeOutQuint|easeInQuint|easeInOutQuart|easeOutQuart|easeInQuart|extend|easeInElastic|easeInOutCirc|easeInOutCubic|easeOutCirc|easeInOutElastic|easeOutCubic|easeInCirc|easeInOutExpo|easeInCubic|easeOutExpo|easeInExpo||9375|easeInOutSine|easeInOutQuad|25|easeOutSine|easeInOutBack|easeInQuad|625|984375|jswing|easeInOutBounce'.split('|'), 0, {}))

/*
*
* 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 Cycle Plugin (with Transition Definitions)
* Examples and documentation at: http://jquery.malsup.com/cycle/
* Copyright (c) 2007-2009 M. Alsup
* Version: 2.72 (09-SEP-2009)
* Dual licensed under the MIT and GPL licenses:
* http://www.opensource.org/licenses/mit-license.php
* http://www.gnu.org/licenses/gpl.html
* Requires: jQuery v1.2.6 or later
*
* Originally based on the work of:
*	1) Matt Oakes
*	2) Torsten Baldes (http://medienfreunde.com/lab/innerfade/)
*	3) Benjamin Sterling (http://www.benjaminsterling.com/experiments/jqShuffle/)
*/
; (function ($) {

    var ver = '2.72';

    // if $.support is not defined (pre jQuery 1.3) add what I need
    if ($.support == undefined) {
        $.support = {
            opacity: !($.browser.msie)
        };
    }

    function debug(s) {
        if ($.fn.cycle.debug)
            log(s);
    }
    function log() {
        if (window.console && window.console.log)
            window.console.log('[cycle] ' + Array.prototype.join.call(arguments, ' '));
        //$('body').append('<div>'+Array.prototype.join.call(arguments,' ')+'</div>');
    };

    // the options arg can be...
    //   a number  - indicates an immediate transition should occur to the given slide index
    //   a string  - 'stop', 'pause', 'resume', or the name of a transition effect (ie, 'fade', 'zoom', etc)
    //   an object - properties to control the slideshow
    //
    // the arg2 arg can be...
    //   the name of an fx (only used in conjunction with a numeric value for 'options')
    //   the value true (only used in conjunction with a options == 'resume') and indicates
    //	 that the resume should occur immediately (not wait for next timeout)

    $.fn.cycle = function (options, arg2) {
        var o = { s: this.selector, c: this.context };

        // in 1.3+ we can fix mistakes with the ready state
        if (this.length === 0 && options != 'stop') {
            if (!$.isReady && o.s) {
                log('DOM not ready, queuing slideshow');
                $(function () {
                    $(o.s, o.c).cycle(options, arg2);
                });
                return this;
            }
            // is your DOM ready?  http://docs.jquery.com/Tutorials:Introducing_$(document).ready()
            log('terminating; zero elements found by selector' + ($.isReady ? '' : ' (DOM not ready)'));
            return this;
        }

        // iterate the matched nodeset
        return this.each(function () {
            var opts = handleArguments(this, options, arg2);
            if (opts === false)
                return;

            // stop existing slideshow for this container (if there is one)
            if (this.cycleTimeout)
                clearTimeout(this.cycleTimeout);
            this.cycleTimeout = this.cyclePause = 0;

            var $cont = $(this);
            var $slides = opts.slideExpr ? $(opts.slideExpr, this) : $cont.children();
            var els = $slides.get();
            if (els.length < 2) {
                log('terminating; too few slides: ' + els.length);
                return;
            }

            var opts2 = buildOptions($cont, $slides, els, opts, o);
            if (opts2 === false)
                return;

            var startTime = opts2.continuous ? 10 : getTimeout(opts2.currSlide, opts2.nextSlide, opts2, !opts2.rev);

            // if it's an auto slideshow, kick it off
            if (startTime) {
                startTime += (opts2.delay || 0);
                if (startTime < 10)
                    startTime = 10;
                debug('first timeout: ' + startTime);
                this.cycleTimeout = setTimeout(function () { go(els, opts2, 0, !opts2.rev) }, startTime);
            }
        });
    };

    // process the args that were passed to the plugin fn
    function handleArguments(cont, options, arg2) {
        if (cont.cycleStop == undefined)
            cont.cycleStop = 0;
        if (options === undefined || options === null)
            options = {};
        if (options.constructor == String) {
            switch (options) {
                case 'stop':
                    cont.cycleStop++; // callbacks look for change
                    if (cont.cycleTimeout)
                        clearTimeout(cont.cycleTimeout);
                    cont.cycleTimeout = 0;
                    $(cont).removeData('cycle.opts');
                    return false;
                case 'pause':
                    cont.cyclePause = 1;
                    return false;
                case 'resume':
                    cont.cyclePause = 0;
                    if (arg2 === true) { // resume now!
                        options = $(cont).data('cycle.opts');
                        if (!options) {
                            log('options not found, can not resume');
                            return false;
                        }
                        if (cont.cycleTimeout) {
                            clearTimeout(cont.cycleTimeout);
                            cont.cycleTimeout = 0;
                        }
                        go(options.elements, options, 1, 1);
                    }
                    return false;
                case 'prev':
                case 'next':
                    var opts = $(cont).data('cycle.opts');
                    if (!opts) {
                        log('options not found, "prev/next" ignored');
                        return false;
                    }
                    $.fn.cycle[options](opts);
                    return false;
                default:
                    options = { fx: options };
            };
            return options;
        }
        else if (options.constructor == Number) {
            // go to the requested slide
            var num = options;
            options = $(cont).data('cycle.opts');
            if (!options) {
                log('options not found, can not advance slide');
                return false;
            }
            if (num < 0 || num >= options.elements.length) {
                log('invalid slide index: ' + num);
                return false;
            }
            options.nextSlide = num;
            if (cont.cycleTimeout) {
                clearTimeout(cont.cycleTimeout);
                cont.cycleTimeout = 0;
            }
            if (typeof arg2 == 'string')
                options.oneTimeFx = arg2;
            go(options.elements, options, 1, num >= options.currSlide);
            return false;
        }
        return options;
    };

    function removeFilter(el, opts) {
        if (!$.support.opacity && opts.cleartype && el.style.filter) {
            try { el.style.removeAttribute('filter'); }
            catch (smother) { } // handle old opera versions
        }
    };

    // one-time initialization
    function buildOptions($cont, $slides, els, options, o) {
        // support metadata plugin (v1.0 and v2.0)
        var opts = $.extend({}, $.fn.cycle.defaults, options || {}, $.metadata ? $cont.metadata() : $.meta ? $cont.data() : {});
        if (opts.autostop)
            opts.countdown = opts.autostopCount || els.length;

        var cont = $cont[0];
        $cont.data('cycle.opts', opts);
        opts.$cont = $cont;
        opts.stopCount = cont.cycleStop;
        opts.elements = els;
        opts.before = opts.before ? [opts.before] : [];
        opts.after = opts.after ? [opts.after] : [];
        opts.after.unshift(function () { opts.busy = 0; });

        // push some after callbacks
        if (!$.support.opacity && opts.cleartype)
            opts.after.push(function () { removeFilter(this, opts); });
        if (opts.continuous)
            opts.after.push(function () { go(els, opts, 0, !opts.rev); });

        saveOriginalOpts(opts);

        // clearType corrections
        if (!$.support.opacity && opts.cleartype && !opts.cleartypeNoBg)
            clearTypeFix($slides);

        // container requires non-static position so that slides can be position within
        if ($cont.css('position') == 'static')
            $cont.css('position', 'relative');
        if (opts.width)
            $cont.width(opts.width);
        if (opts.height && opts.height != 'auto')
            $cont.height(opts.height);

        if (opts.startingSlide)
            opts.startingSlide = parseInt(opts.startingSlide);

        // if random, mix up the slide array
        if (opts.random) {
            opts.randomMap = [];
            for (var i = 0; i < els.length; i++)
                opts.randomMap.push(i);
            opts.randomMap.sort(function (a, b) { return Math.random() - 0.5; });
            opts.randomIndex = 0;
            opts.startingSlide = opts.randomMap[0];
        }
        else if (opts.startingSlide >= els.length)
            opts.startingSlide = 0; // catch bogus input
        opts.currSlide = opts.startingSlide = opts.startingSlide || 0;
        var first = opts.startingSlide;

        // set position and zIndex on all the slides
        $slides.css({ position: 'absolute', top: 0, left: 0 }).hide().each(function (i) {
            var z = first ? i >= first ? els.length - (i - first) : first - i : els.length - i;
            $(this).css('z-index', z)
        });

        // make sure first slide is visible
        $(els[first]).css('opacity', 1).show(); // opacity bit needed to handle restart use case
        removeFilter(els[first], opts);

        // stretch slides
        if (opts.fit && opts.width)
            $slides.width(opts.width);
        if (opts.fit && opts.height && opts.height != 'auto')
            $slides.height(opts.height);

        // stretch container
        var reshape = opts.containerResize && !$cont.innerHeight();
        if (reshape) { // do this only if container has no size http://tinyurl.com/da2oa9
            var maxw = 0, maxh = 0;
            for (var j = 0; j < els.length; j++) {
                var $e = $(els[j]), e = $e[0], w = $e.outerWidth(), h = $e.outerHeight();
                if (!w) w = e.offsetWidth;
                if (!h) h = e.offsetHeight;
                maxw = w > maxw ? w : maxw;
                maxh = h > maxh ? h : maxh;
            }
            if (maxw > 0 && maxh > 0)
                $cont.css({ width: maxw + 'px', height: maxh + 'px' });
        }

        if (opts.pause)
            $cont.hover(function () { this.cyclePause++; }, function () { this.cyclePause--; });

        if (supportMultiTransitions(opts) === false)
            return false;

        // apparently a lot of people use image slideshows without height/width attributes on the images.
        // Cycle 2.50+ requires the sizing info for every slide; this block tries to deal with that.
        var requeue = false;
        options.requeueAttempts = options.requeueAttempts || 0;
        $slides.each(function () {
            // try to get height/width of each slide
            var $el = $(this);
            this.cycleH = (opts.fit && opts.height) ? opts.height : $el.height();
            this.cycleW = (opts.fit && opts.width) ? opts.width : $el.width();

            if ($el.is('img')) {
                // sigh..  sniffing, hacking, shrugging...  this crappy hack tries to account for what browsers do when
                // an image is being downloaded and the markup did not include sizing info (height/width attributes);
                // there seems to be some "default" sizes used in this situation
                var loadingIE = ($.browser.msie && this.cycleW == 28 && this.cycleH == 30 && !this.complete);
                var loadingFF = ($.browser.mozilla && this.cycleW == 34 && this.cycleH == 19 && !this.complete);
                var loadingOp = ($.browser.opera && ((this.cycleW == 42 && this.cycleH == 19) || (this.cycleW == 37 && this.cycleH == 17)) && !this.complete);
                var loadingOther = (this.cycleH == 0 && this.cycleW == 0 && !this.complete);
                // don't requeue for images that are still loading but have a valid size
                if (loadingIE || loadingFF || loadingOp || loadingOther) {
                    if (o.s && opts.requeueOnImageNotLoaded && ++options.requeueAttempts < 100) { // track retry count so we don't loop forever
                        log(options.requeueAttempts, ' - img slide not loaded, requeuing slideshow: ', this.src, this.cycleW, this.cycleH);
                        setTimeout(function () { $(o.s, o.c).cycle(options) }, opts.requeueTimeout);
                        requeue = true;
                        return false; // break each loop
                    }
                    else {
                        log('could not determine size of image: ' + this.src, this.cycleW, this.cycleH);
                    }
                }
            }
            return true;
        });

        if (requeue)
            return false;

        opts.cssBefore = opts.cssBefore || {};
        opts.animIn = opts.animIn || {};
        opts.animOut = opts.animOut || {};

        $slides.not(':eq(' + first + ')').css(opts.cssBefore);
        if (opts.cssFirst)
            $($slides[first]).css(opts.cssFirst);

        if (opts.timeout) {
            opts.timeout = parseInt(opts.timeout);
            // ensure that timeout and speed settings are sane
            if (opts.speed.constructor == String)
                opts.speed = $.fx.speeds[opts.speed] || parseInt(opts.speed);
            if (!opts.sync)
                opts.speed = opts.speed / 2;
            while ((opts.timeout - opts.speed) < 250) // sanitize timeout
                opts.timeout += opts.speed;
        }
        if (opts.easing)
            opts.easeIn = opts.easeOut = opts.easing;
        if (!opts.speedIn)
            opts.speedIn = opts.speed;
        if (!opts.speedOut)
            opts.speedOut = opts.speed;

        opts.slideCount = els.length;
        opts.currSlide = opts.lastSlide = first;
        if (opts.random) {
            opts.nextSlide = opts.currSlide;
            if (++opts.randomIndex == els.length)
                opts.randomIndex = 0;
            opts.nextSlide = opts.randomMap[opts.randomIndex];
        }
        else
            opts.nextSlide = opts.startingSlide >= (els.length - 1) ? 0 : opts.startingSlide + 1;

        // run transition init fn
        if (!opts.multiFx) {
            var init = $.fn.cycle.transitions[opts.fx];
            if ($.isFunction(init))
                init($cont, $slides, opts);
            else if (opts.fx != 'custom' && !opts.multiFx) {
                log('unknown transition: ' + opts.fx, '; slideshow terminating');
                return false;
            }
        }

        // fire artificial events
        var e0 = $slides[first];
        if (opts.before.length)
            opts.before[0].apply(e0, [e0, e0, opts, true]);
        if (opts.after.length > 1)
            opts.after[1].apply(e0, [e0, e0, opts, true]);

        if (opts.next)
            $(opts.next).bind(opts.prevNextEvent, function () { return advance(opts, opts.rev ? -1 : 1) });
        if (opts.prev)
            $(opts.prev).bind(opts.prevNextEvent, function () { return advance(opts, opts.rev ? 1 : -1) });
        if (opts.pager)
            buildPager(els, opts);

        exposeAddSlide(opts, els);

        return opts;
    };

    // save off original opts so we can restore after clearing state
    function saveOriginalOpts(opts) {
        opts.original = { before: [], after: [] };
        opts.original.cssBefore = $.extend({}, opts.cssBefore);
        opts.original.cssAfter = $.extend({}, opts.cssAfter);
        opts.original.animIn = $.extend({}, opts.animIn);
        opts.original.animOut = $.extend({}, opts.animOut);
        $.each(opts.before, function () { opts.original.before.push(this); });
        $.each(opts.after, function () { opts.original.after.push(this); });
    };

    function supportMultiTransitions(opts) {
        var i, tx, txs = $.fn.cycle.transitions;
        // look for multiple effects
        if (opts.fx.indexOf(',') > 0) {
            opts.multiFx = true;
            opts.fxs = opts.fx.replace(/\s*/g, '').split(',');
            // discard any bogus effect names
            for (i = 0; i < opts.fxs.length; i++) {
                var fx = opts.fxs[i];
                tx = txs[fx];
                if (!tx || !txs.hasOwnProperty(fx) || !$.isFunction(tx)) {
                    log('discarding unknown transition: ', fx);
                    opts.fxs.splice(i, 1);
                    i--;
                }
            }
            // if we have an empty list then we threw everything away!
            if (!opts.fxs.length) {
                log('No valid transitions named; slideshow terminating.');
                return false;
            }
        }
        else if (opts.fx == 'all') {  // auto-gen the list of transitions
            opts.multiFx = true;
            opts.fxs = [];
            for (p in txs) {
                tx = txs[p];
                if (txs.hasOwnProperty(p) && $.isFunction(tx))
                    opts.fxs.push(p);
            }
        }
        if (opts.multiFx && opts.randomizeEffects) {
            // munge the fxs array to make effect selection random
            var r1 = Math.floor(Math.random() * 20) + 30;
            for (i = 0; i < r1; i++) {
                var r2 = Math.floor(Math.random() * opts.fxs.length);
                opts.fxs.push(opts.fxs.splice(r2, 1)[0]);
            }
            debug('randomized fx sequence: ', opts.fxs);
        }
        return true;
    };

    // provide a mechanism for adding slides after the slideshow has started
    function exposeAddSlide(opts, els) {
        opts.addSlide = function (newSlide, prepend) {
            var $s = $(newSlide), s = $s[0];
            if (!opts.autostopCount)
                opts.countdown++;
            els[prepend ? 'unshift' : 'push'](s);
            if (opts.els)
                opts.els[prepend ? 'unshift' : 'push'](s); // shuffle needs this
            opts.slideCount = els.length;

            $s.css('position', 'absolute');
            $s[prepend ? 'prependTo' : 'appendTo'](opts.$cont);

            if (prepend) {
                opts.currSlide++;
                opts.nextSlide++;
            }

            if (!$.support.opacity && opts.cleartype && !opts.cleartypeNoBg)
                clearTypeFix($s);

            if (opts.fit && opts.width)
                $s.width(opts.width);
            if (opts.fit && opts.height && opts.height != 'auto')
                $slides.height(opts.height);
            s.cycleH = (opts.fit && opts.height) ? opts.height : $s.height();
            s.cycleW = (opts.fit && opts.width) ? opts.width : $s.width();

            $s.css(opts.cssBefore);

            if (opts.pager)
                $.fn.cycle.createPagerAnchor(els.length - 1, s, $(opts.pager), els, opts);

            if ($.isFunction(opts.onAddSlide))
                opts.onAddSlide($s);
            else
                $s.hide(); // default behavior
        };
    }

    // reset internal state; we do this on every pass in order to support multiple effects
    $.fn.cycle.resetState = function (opts, fx) {
        fx = fx || opts.fx;
        opts.before = []; opts.after = [];
        opts.cssBefore = $.extend({}, opts.original.cssBefore);
        opts.cssAfter = $.extend({}, opts.original.cssAfter);
        opts.animIn = $.extend({}, opts.original.animIn);
        opts.animOut = $.extend({}, opts.original.animOut);
        opts.fxFn = null;
        $.each(opts.original.before, function () { opts.before.push(this); });
        $.each(opts.original.after, function () { opts.after.push(this); });

        // re-init
        var init = $.fn.cycle.transitions[fx];
        if ($.isFunction(init))
            init(opts.$cont, $(opts.elements), opts);
    };

    // this is the main engine fn, it handles the timeouts, callbacks and slide index mgmt
    function go(els, opts, manual, fwd) {
        // opts.busy is true if we're in the middle of an animation
        if (manual && opts.busy && opts.manualTrump) {
            // let manual transitions requests trump active ones
            $(els).stop(true, true);
            opts.busy = false;
        }
        // don't begin another timeout-based transition if there is one active
        if (opts.busy)
            return;

        var p = opts.$cont[0], curr = els[opts.currSlide], next = els[opts.nextSlide];

        // stop cycling if we have an outstanding stop request
        if (p.cycleStop != opts.stopCount || p.cycleTimeout === 0 && !manual)
            return;

        // check to see if we should stop cycling based on autostop options
        if (!manual && !p.cyclePause &&
		((opts.autostop && (--opts.countdown <= 0)) ||
		(opts.nowrap && !opts.random && opts.nextSlide < opts.currSlide))) {
            if (opts.end)
                opts.end(opts);
            return;
        }

        // if slideshow is paused, only transition on a manual trigger
        if (manual || !p.cyclePause) {
            var fx = opts.fx;
            // keep trying to get the slide size if we don't have it yet
            curr.cycleH = curr.cycleH || $(curr).height();
            curr.cycleW = curr.cycleW || $(curr).width();
            next.cycleH = next.cycleH || $(next).height();
            next.cycleW = next.cycleW || $(next).width();

            // support multiple transition types
            if (opts.multiFx) {
                if (opts.lastFx == undefined || ++opts.lastFx >= opts.fxs.length)
                    opts.lastFx = 0;
                fx = opts.fxs[opts.lastFx];
                opts.currFx = fx;
            }

            // one-time fx overrides apply to:  $('div').cycle(3,'zoom');
            if (opts.oneTimeFx) {
                fx = opts.oneTimeFx;
                opts.oneTimeFx = null;
            }

            $.fn.cycle.resetState(opts, fx);

            // run the before callbacks
            if (opts.before.length)
                $.each(opts.before, function (i, o) {
                    if (p.cycleStop != opts.stopCount) return;
                    o.apply(next, [curr, next, opts, fwd]);
                });

            // stage the after callacks
            var after = function () {
                $.each(opts.after, function (i, o) {
                    if (p.cycleStop != opts.stopCount) return;
                    o.apply(next, [curr, next, opts, fwd]);
                });
            };

            if (opts.nextSlide != opts.currSlide) {
                // get ready to perform the transition
                opts.busy = 1;
                if (opts.fxFn) // fx function provided?
                    opts.fxFn(curr, next, opts, after, fwd);
                else if ($.isFunction($.fn.cycle[opts.fx])) // fx plugin ?
                    $.fn.cycle[opts.fx](curr, next, opts, after);
                else
                    $.fn.cycle.custom(curr, next, opts, after, manual && opts.fastOnEvent);
            }

            // calculate the next slide
            opts.lastSlide = opts.currSlide;
            if (opts.random) {
                opts.currSlide = opts.nextSlide;
                if (++opts.randomIndex == els.length)
                    opts.randomIndex = 0;
                opts.nextSlide = opts.randomMap[opts.randomIndex];
            }
            else { // sequence
                var roll = (opts.nextSlide + 1) == els.length;
                opts.nextSlide = roll ? 0 : opts.nextSlide + 1;
                opts.currSlide = roll ? els.length - 1 : opts.nextSlide - 1;
            }

            if (opts.pager)
                $.fn.cycle.updateActivePagerLink(opts.pager, opts.currSlide);
        }

        // stage the next transtion
        var ms = 0;
        if (opts.timeout && !opts.continuous)
            ms = getTimeout(curr, next, opts, fwd);
        else if (opts.continuous && p.cyclePause) // continuous shows work off an after callback, not this timer logic
            ms = 10;
        if (ms > 0)
            p.cycleTimeout = setTimeout(function () { go(els, opts, 0, !opts.rev) }, ms);
    };

    // invoked after transition
    $.fn.cycle.updateActivePagerLink = function (pager, currSlide) {
        $(pager).find('a').removeClass('activeSlide').filter('a:eq(' + currSlide + ')').addClass('activeSlide');
    };

    // calculate timeout value for current transition
    function getTimeout(curr, next, opts, fwd) {
        if (opts.timeoutFn) {
            // call user provided calc fn
            var t = opts.timeoutFn(curr, next, opts, fwd);
            while ((t - opts.speed) < 250) // sanitize timeout
                t += opts.speed;
            debug('calculated timeout: ' + t + '; speed: ' + opts.speed);
            if (t !== false)
                return t;
        }
        return opts.timeout;
    };

    // expose next/prev function, caller must pass in state
    $.fn.cycle.next = function (opts) { advance(opts, opts.rev ? -1 : 1); };
    $.fn.cycle.prev = function (opts) { advance(opts, opts.rev ? 1 : -1); };

    // advance slide forward or back
    function advance(opts, val) {
        var els = opts.elements;
        var p = opts.$cont[0], timeout = p.cycleTimeout;
        if (timeout) {
            clearTimeout(timeout);
            p.cycleTimeout = 0;
        }
        if (opts.random && val < 0) {
            // move back to the previously display slide
            opts.randomIndex--;
            if (--opts.randomIndex == -2)
                opts.randomIndex = els.length - 2;
            else if (opts.randomIndex == -1)
                opts.randomIndex = els.length - 1;
            opts.nextSlide = opts.randomMap[opts.randomIndex];
        }
        else if (opts.random) {
            if (++opts.randomIndex == els.length)
                opts.randomIndex = 0;
            opts.nextSlide = opts.randomMap[opts.randomIndex];
        }
        else {
            opts.nextSlide = opts.currSlide + val;
            if (opts.nextSlide < 0) {
                if (opts.nowrap) return false;
                opts.nextSlide = els.length - 1;
            }
            else if (opts.nextSlide >= els.length) {
                if (opts.nowrap) return false;
                opts.nextSlide = 0;
            }
        }

        if ($.isFunction(opts.prevNextClick))
            opts.prevNextClick(val > 0, opts.nextSlide, els[opts.nextSlide]);
        go(els, opts, 1, val >= 0);
        return false;
    };

    function buildPager(els, opts) {
        var $p = $(opts.pager);
        $.each(els, function (i, o) {
            $.fn.cycle.createPagerAnchor(i, o, $p, els, opts);
        });
        $.fn.cycle.updateActivePagerLink(opts.pager, opts.startingSlide);
    };

    $.fn.cycle.createPagerAnchor = function (i, el, $p, els, opts) {
        var a;
        if ($.isFunction(opts.pagerAnchorBuilder))
            a = opts.pagerAnchorBuilder(i, el);
        else
            a = '<a href="#">' + (i + 1) + '</a>';

        if (!a)
            return;
        var $a = $(a);
        // don't reparent if anchor is in the dom
        if ($a.parents('body').length === 0) {
            var arr = [];
            if ($p.length > 1) {
                $p.each(function () {
                    var $clone = $a.clone(true);
                    $(this).append($clone);
                    arr.push($clone);
                });
                $a = $(arr);
            }
            else {
                $a.appendTo($p);
            }
        }

        $a.bind(opts.pagerEvent, function (e) {
            e.preventDefault();
            opts.nextSlide = i;
            var p = opts.$cont[0], timeout = p.cycleTimeout;
            if (timeout) {
                clearTimeout(timeout);
                p.cycleTimeout = 0;
            }
            if ($.isFunction(opts.pagerClick))
                opts.pagerClick(opts.nextSlide, els[opts.nextSlide]);
            go(els, opts, 1, opts.currSlide < i); // trigger the trans
            return false;
        });

        if (opts.pagerEvent != 'click')
            $a.click(function () { return false; }); // supress click

        if (opts.pauseOnPagerHover)
            $a.hover(function () { opts.$cont[0].cyclePause++; }, function () { opts.$cont[0].cyclePause--; });
    };

    // helper fn to calculate the number of slides between the current and the next
    $.fn.cycle.hopsFromLast = function (opts, fwd) {
        var hops, l = opts.lastSlide, c = opts.currSlide;
        if (fwd)
            hops = c > l ? c - l : opts.slideCount - l;
        else
            hops = c < l ? l - c : l + opts.slideCount - c;
        return hops;
    };

    // fix clearType problems in ie6 by setting an explicit bg color
    // (otherwise text slides look horrible during a fade transition)
    function clearTypeFix($slides) {
        function hex(s) {
            s = parseInt(s).toString(16);
            return s.length < 2 ? '0' + s : s;
        };
        function getBg(e) {
            for (; e && e.nodeName.toLowerCase() != 'html'; e = e.parentNode) {
                var v = $.css(e, 'background-color');
                if (v.indexOf('rgb') >= 0) {
                    var rgb = v.match(/\d+/g);
                    return '#' + hex(rgb[0]) + hex(rgb[1]) + hex(rgb[2]);
                }
                if (v && v != 'transparent')
                    return v;
            }
            return '#ffffff';
        };
        $slides.each(function () { $(this).css('background-color', getBg(this)); });
    };

    // reset common props before the next transition
    $.fn.cycle.commonReset = function (curr, next, opts, w, h, rev) {
        $(opts.elements).not(curr).hide();
        opts.cssBefore.opacity = 1;
        opts.cssBefore.display = 'block';
        if (w !== false && next.cycleW > 0)
            opts.cssBefore.width = next.cycleW;
        if (h !== false && next.cycleH > 0)
            opts.cssBefore.height = next.cycleH;
        opts.cssAfter = opts.cssAfter || {};
        opts.cssAfter.display = 'none';
        $(curr).css('zIndex', opts.slideCount + (rev === true ? 1 : 0));
        $(next).css('zIndex', opts.slideCount + (rev === true ? 0 : 1));
    };

    // the actual fn for effecting a transition
    $.fn.cycle.custom = function (curr, next, opts, cb, speedOverride) {
        var $l = $(curr), $n = $(next);
        var speedIn = opts.speedIn, speedOut = opts.speedOut, easeIn = opts.easeIn, easeOut = opts.easeOut;
        $n.css(opts.cssBefore);
        if (speedOverride) {
            if (typeof speedOverride == 'number')
                speedIn = speedOut = speedOverride;
            else
                speedIn = speedOut = 1;
            easeIn = easeOut = null;
        }
        var fn = function () { $n.animate(opts.animIn, speedIn, easeIn, cb) };
        $l.animate(opts.animOut, speedOut, easeOut, function () {
            if (opts.cssAfter) $l.css(opts.cssAfter);
            if (!opts.sync) fn();
        });
        if (opts.sync) fn();
    };

    // transition definitions - only fade is defined here, transition pack defines the rest
    $.fn.cycle.transitions = {
        fade: function ($cont, $slides, opts) {
            $slides.not(':eq(' + opts.currSlide + ')').css('opacity', 0);
            opts.before.push(function (curr, next, opts) {
                $.fn.cycle.commonReset(curr, next, opts);
                opts.cssBefore.opacity = 0;
            });
            opts.animIn = { opacity: 1 };
            opts.animOut = { opacity: 0 };
            opts.cssBefore = { top: 0, left: 0 };
        }
    };

    $.fn.cycle.ver = function () { return ver; };

    // override these globally if you like (they are all optional)
    $.fn.cycle.defaults = {
        fx: 'fade', // name of transition effect (or comma separated names, ex: fade,scrollUp,shuffle)
        timeout: 4000,  // milliseconds between slide transitions (0 to disable auto advance)
        timeoutFn: null,  // callback for determining per-slide timeout value:  function(currSlideElement, nextSlideElement, options, forwardFlag)
        continuous: 0,   // true to start next transition immediately after current one completes
        speed: 1000,  // speed of the transition (any valid fx speed value)
        speedIn: null,  // speed of the 'in' transition
        speedOut: null,  // speed of the 'out' transition
        next: null,  // selector for element to use as click trigger for next slide
        prev: null,  // selector for element to use as click trigger for previous slide
        prevNextClick: null,  // callback fn for prev/next clicks:	function(isNext, zeroBasedSlideIndex, slideElement)
        prevNextEvent: 'click', // event which drives the manual transition to the previous or next slide
        pager: null,  // selector for element to use as pager container
        pagerClick: null,  // callback fn for pager clicks:	function(zeroBasedSlideIndex, slideElement)
        pagerEvent: 'click', // name of event which drives the pager navigation
        pagerAnchorBuilder: null, // callback fn for building anchor links:  function(index, DOMelement)
        before: null,  // transition callback (scope set to element to be shown):	 function(currSlideElement, nextSlideElement, options, forwardFlag)
        after: null,  // transition callback (scope set to element that was shown):  function(currSlideElement, nextSlideElement, options, forwardFlag)
        end: null,  // callback invoked when the slideshow terminates (use with autostop or nowrap options): function(options)
        easing: null,  // easing method for both in and out transitions
        easeIn: null,  // easing for "in" transition
        easeOut: null,  // easing for "out" transition
        shuffle: null,  // coords for shuffle animation, ex: { top:15, left: 200 }
        animIn: null,  // properties that define how the slide animates in
        animOut: null,  // properties that define how the slide animates out
        cssBefore: null,  // properties that define the initial state of the slide before transitioning in
        cssAfter: null,  // properties that defined the state of the slide after transitioning out
        fxFn: null,  // function used to control the transition: function(currSlideElement, nextSlideElement, options, afterCalback, forwardFlag)
        height: 'auto', // container height
        startingSlide: 0,   // zero-based index of the first slide to be displayed
        sync: 1,   // true if in/out transitions should occur simultaneously
        random: 0,   // true for random, false for sequence (not applicable to shuffle fx)
        fit: 0,   // force slides to fit container
        containerResize: 1,   // resize container to fit largest slide
        pause: 0,   // true to enable "pause on hover"
        pauseOnPagerHover: 0, // true to pause when hovering over pager link
        autostop: 0,   // true to end slideshow after X transitions (where X == slide count)
        autostopCount: 0,   // number of transitions (optionally used with autostop to define X)
        delay: 0,   // additional delay (in ms) for first transition (hint: can be negative)
        slideExpr: null,  // expression for selecting slides (if something other than all children is required)
        cleartype: !$.support.opacity,  // true if clearType corrections should be applied (for IE)
        cleartypeNoBg: false, // set to true to disable extra cleartype fixing (leave false to force background color setting on slides)
        nowrap: 0,   // true to prevent slideshow from wrapping
        fastOnEvent: 0,   // force fast transitions when triggered manually (via pager or prev/next); value == time in ms
        randomizeEffects: 1,  // valid when multiple effects are used; true to make the effect sequence random
        rev: 0,  // causes animations to transition in reverse
        manualTrump: true,  // causes manual transition to stop an active transition instead of being ignored
        requeueOnImageNotLoaded: true, // requeue the slideshow if any image slides are not yet loaded
        requeueTimeout: 250   // ms delay for requeue
    };

})(jQuery);


/*!
* jQuery Cycle Plugin Transition Definitions
* This script is a plugin for the jQuery Cycle Plugin
* Examples and documentation at: http://malsup.com/jquery/cycle/
* Copyright (c) 2007-2008 M. Alsup
* Version:	 2.72
* Dual licensed under the MIT and GPL licenses:
* http://www.opensource.org/licenses/mit-license.php
* http://www.gnu.org/licenses/gpl.html
*/
(function ($) {

    //
    // These functions define one-time slide initialization for the named
    // transitions. To save file size feel free to remove any of these that you
    // don't need.
    //
    $.fn.cycle.transitions.none = function ($cont, $slides, opts) {
        opts.fxFn = function (curr, next, opts, after) {
            $(next).show();
            $(curr).hide();
            after();
        };
    }

    // scrollUp/Down/Left/Right
    $.fn.cycle.transitions.scrollUp = function ($cont, $slides, opts) {
        $cont.css('overflow', 'hidden');
        opts.before.push($.fn.cycle.commonReset);
        var h = $cont.height();
        opts.cssBefore = { top: h, left: 0 };
        opts.cssFirst = { top: 0 };
        opts.animIn = { top: 0 };
        opts.animOut = { top: -h };
    };
    $.fn.cycle.transitions.scrollDown = function ($cont, $slides, opts) {
        $cont.css('overflow', 'hidden');
        opts.before.push($.fn.cycle.commonReset);
        var h = $cont.height();
        opts.cssFirst = { top: 0 };
        opts.cssBefore = { top: -h, left: 0 };
        opts.animIn = { top: 0 };
        opts.animOut = { top: h };
    };
    $.fn.cycle.transitions.scrollLeft = function ($cont, $slides, opts) {
        $cont.css('overflow', 'hidden');
        opts.before.push($.fn.cycle.commonReset);
        var w = $cont.width();
        opts.cssFirst = { left: 0 };
        opts.cssBefore = { left: w, top: 0 };
        opts.animIn = { left: 0 };
        opts.animOut = { left: 0 - w };
    };
    $.fn.cycle.transitions.scrollRight = function ($cont, $slides, opts) {
        $cont.css('overflow', 'hidden');
        opts.before.push($.fn.cycle.commonReset);
        var w = $cont.width();
        opts.cssFirst = { left: 0 };
        opts.cssBefore = { left: -w, top: 0 };
        opts.animIn = { left: 0 };
        opts.animOut = { left: w };
    };
    $.fn.cycle.transitions.scrollHorz = function ($cont, $slides, opts) {
        $cont.css('overflow', 'hidden').width();
        opts.before.push(function (curr, next, opts, fwd) {
            $.fn.cycle.commonReset(curr, next, opts);
            opts.cssBefore.left = fwd ? (next.cycleW - 1) : (1 - next.cycleW);
            opts.animOut.left = fwd ? -curr.cycleW : curr.cycleW;
        });
        opts.cssFirst = { left: 0 };
        opts.cssBefore = { top: 0 };
        opts.animIn = { left: 0 };
        opts.animOut = { top: 0 };
    };
    $.fn.cycle.transitions.scrollVert = function ($cont, $slides, opts) {
        $cont.css('overflow', 'hidden');
        opts.before.push(function (curr, next, opts, fwd) {
            $.fn.cycle.commonReset(curr, next, opts);
            opts.cssBefore.top = fwd ? (1 - next.cycleH) : (next.cycleH - 1);
            opts.animOut.top = fwd ? curr.cycleH : -curr.cycleH;
        });
        opts.cssFirst = { top: 0 };
        opts.cssBefore = { left: 0 };
        opts.animIn = { top: 0 };
        opts.animOut = { left: 0 };
    };

    // slideX/slideY
    $.fn.cycle.transitions.slideX = function ($cont, $slides, opts) {
        opts.before.push(function (curr, next, opts) {
            $(opts.elements).not(curr).hide();
            $.fn.cycle.commonReset(curr, next, opts, false, true);
            opts.animIn.width = next.cycleW;
        });
        opts.cssBefore = { left: 0, top: 0, width: 0 };
        opts.animIn = { width: 'show' };
        opts.animOut = { width: 0 };
    };
    $.fn.cycle.transitions.slideY = function ($cont, $slides, opts) {
        opts.before.push(function (curr, next, opts) {
            $(opts.elements).not(curr).hide();
            $.fn.cycle.commonReset(curr, next, opts, true, false);
            opts.animIn.height = next.cycleH;
        });
        opts.cssBefore = { left: 0, top: 0, height: 0 };
        opts.animIn = { height: 'show' };
        opts.animOut = { height: 0 };
    };

    // shuffle
    $.fn.cycle.transitions.shuffle = function ($cont, $slides, opts) {
        var i, w = $cont.css('overflow', 'visible').width();
        $slides.css({ left: 0, top: 0 });
        opts.before.push(function (curr, next, opts) {
            $.fn.cycle.commonReset(curr, next, opts, true, true, true);
        });
        // only adjust speed once!
        if (!opts.speedAdjusted) {
            opts.speed = opts.speed / 2; // shuffle has 2 transitions
            opts.speedAdjusted = true;
        }
        opts.random = 0;
        opts.shuffle = opts.shuffle || { left: -w, top: 15 };
        opts.els = [];
        for (i = 0; i < $slides.length; i++)
            opts.els.push($slides[i]);

        for (i = 0; i < opts.currSlide; i++)
            opts.els.push(opts.els.shift());

        // custom transition fn (hat tip to Benjamin Sterling for this bit of sweetness!)
        opts.fxFn = function (curr, next, opts, cb, fwd) {
            var $el = fwd ? $(curr) : $(next);
            $(next).css(opts.cssBefore);
            var count = opts.slideCount;
            $el.animate(opts.shuffle, opts.speedIn, opts.easeIn, function () {
                var hops = $.fn.cycle.hopsFromLast(opts, fwd);
                for (var k = 0; k < hops; k++)
                    fwd ? opts.els.push(opts.els.shift()) : opts.els.unshift(opts.els.pop());
                if (fwd) {
                    for (var i = 0, len = opts.els.length; i < len; i++)
                        $(opts.els[i]).css('z-index', len - i + count);
                }
                else {
                    var z = $(curr).css('z-index');
                    $el.css('z-index', parseInt(z) + 1 + count);
                }
                $el.animate({ left: 0, top: 0 }, opts.speedOut, opts.easeOut, function () {
                    $(fwd ? this : curr).hide();
                    if (cb) cb();
                });
            });
        };
        opts.cssBefore = { display: 'block', opacity: 1, top: 0, left: 0 };
    };

    // turnUp/Down/Left/Right
    $.fn.cycle.transitions.turnUp = function ($cont, $slides, opts) {
        opts.before.push(function (curr, next, opts) {
            $.fn.cycle.commonReset(curr, next, opts, true, false);
            opts.cssBefore.top = next.cycleH;
            opts.animIn.height = next.cycleH;
        });
        opts.cssFirst = { top: 0 };
        opts.cssBefore = { left: 0, height: 0 };
        opts.animIn = { top: 0 };
        opts.animOut = { height: 0 };
    };
    $.fn.cycle.transitions.turnDown = function ($cont, $slides, opts) {
        opts.before.push(function (curr, next, opts) {
            $.fn.cycle.commonReset(curr, next, opts, true, false);
            opts.animIn.height = next.cycleH;
            opts.animOut.top = curr.cycleH;
        });
        opts.cssFirst = { top: 0 };
        opts.cssBefore = { left: 0, top: 0, height: 0 };
        opts.animOut = { height: 0 };
    };
    $.fn.cycle.transitions.turnLeft = function ($cont, $slides, opts) {
        opts.before.push(function (curr, next, opts) {
            $.fn.cycle.commonReset(curr, next, opts, false, true);
            opts.cssBefore.left = next.cycleW;
            opts.animIn.width = next.cycleW;
        });
        opts.cssBefore = { top: 0, width: 0 };
        opts.animIn = { left: 0 };
        opts.animOut = { width: 0 };
    };
    $.fn.cycle.transitions.turnRight = function ($cont, $slides, opts) {
        opts.before.push(function (curr, next, opts) {
            $.fn.cycle.commonReset(curr, next, opts, false, true);
            opts.animIn.width = next.cycleW;
            opts.animOut.left = curr.cycleW;
        });
        opts.cssBefore = { top: 0, left: 0, width: 0 };
        opts.animIn = { left: 0 };
        opts.animOut = { width: 0 };
    };

    // zoom
    $.fn.cycle.transitions.zoom = function ($cont, $slides, opts) {
        opts.before.push(function (curr, next, opts) {
            $.fn.cycle.commonReset(curr, next, opts, false, false, true);
            opts.cssBefore.top = next.cycleH / 2;
            opts.cssBefore.left = next.cycleW / 2;
            opts.animIn = { top: 0, left: 0, width: next.cycleW, height: next.cycleH };
            opts.animOut = { width: 0, height: 0, top: curr.cycleH / 2, left: curr.cycleW / 2 };
        });
        opts.cssFirst = { top: 0, left: 0 };
        opts.cssBefore = { width: 0, height: 0 };
    };

    // fadeZoom
    $.fn.cycle.transitions.fadeZoom = function ($cont, $slides, opts) {
        opts.before.push(function (curr, next, opts) {
            $.fn.cycle.commonReset(curr, next, opts, false, false);
            opts.cssBefore.left = next.cycleW / 2;
            opts.cssBefore.top = next.cycleH / 2;
            opts.animIn = { top: 0, left: 0, width: next.cycleW, height: next.cycleH };
        });
        opts.cssBefore = { width: 0, height: 0 };
        opts.animOut = { opacity: 0 };
    };

    // blindX
    $.fn.cycle.transitions.blindX = function ($cont, $slides, opts) {
        var w = $cont.css('overflow', 'hidden').width();
        opts.before.push(function (curr, next, opts) {
            $.fn.cycle.commonReset(curr, next, opts);
            opts.animIn.width = next.cycleW;
            opts.animOut.left = curr.cycleW;
        });
        opts.cssBefore = { left: w, top: 0 };
        opts.animIn = { left: 0 };
        opts.animOut = { left: w };
    };
    // blindY
    $.fn.cycle.transitions.blindY = function ($cont, $slides, opts) {
        var h = $cont.css('overflow', 'hidden').height();
        opts.before.push(function (curr, next, opts) {
            $.fn.cycle.commonReset(curr, next, opts);
            opts.animIn.height = next.cycleH;
            opts.animOut.top = curr.cycleH;
        });
        opts.cssBefore = { top: h, left: 0 };
        opts.animIn = { top: 0 };
        opts.animOut = { top: h };
    };
    // blindZ
    $.fn.cycle.transitions.blindZ = function ($cont, $slides, opts) {
        var h = $cont.css('overflow', 'hidden').height();
        var w = $cont.width();
        opts.before.push(function (curr, next, opts) {
            $.fn.cycle.commonReset(curr, next, opts);
            opts.animIn.height = next.cycleH;
            opts.animOut.top = curr.cycleH;
        });
        opts.cssBefore = { top: h, left: w };
        opts.animIn = { top: 0, left: 0 };
        opts.animOut = { top: h, left: w };
    };

    // growX - grow horizontally from centered 0 width
    $.fn.cycle.transitions.growX = function ($cont, $slides, opts) {
        opts.before.push(function (curr, next, opts) {
            $.fn.cycle.commonReset(curr, next, opts, false, true);
            opts.cssBefore.left = this.cycleW / 2;
            opts.animIn = { left: 0, width: this.cycleW };
            opts.animOut = { left: 0 };
        });
        opts.cssBefore = { width: 0, top: 0 };
    };
    // growY - grow vertically from centered 0 height
    $.fn.cycle.transitions.growY = function ($cont, $slides, opts) {
        opts.before.push(function (curr, next, opts) {
            $.fn.cycle.commonReset(curr, next, opts, true, false);
            opts.cssBefore.top = this.cycleH / 2;
            opts.animIn = { top: 0, height: this.cycleH };
            opts.animOut = { top: 0 };
        });
        opts.cssBefore = { height: 0, left: 0 };
    };

    // curtainX - squeeze in both edges horizontally
    $.fn.cycle.transitions.curtainX = function ($cont, $slides, opts) {
        opts.before.push(function (curr, next, opts) {
            $.fn.cycle.commonReset(curr, next, opts, false, true, true);
            opts.cssBefore.left = next.cycleW / 2;
            opts.animIn = { left: 0, width: this.cycleW };
            opts.animOut = { left: curr.cycleW / 2, width: 0 };
        });
        opts.cssBefore = { top: 0, width: 0 };
    };
    // curtainY - squeeze in both edges vertically
    $.fn.cycle.transitions.curtainY = function ($cont, $slides, opts) {
        opts.before.push(function (curr, next, opts) {
            $.fn.cycle.commonReset(curr, next, opts, true, false, true);
            opts.cssBefore.top = next.cycleH / 2;
            opts.animIn = { top: 0, height: next.cycleH };
            opts.animOut = { top: curr.cycleH / 2, height: 0 };
        });
        opts.cssBefore = { left: 0, height: 0 };
    };

    // cover - curr slide covered by next slide
    $.fn.cycle.transitions.cover = function ($cont, $slides, opts) {
        var d = opts.direction || 'left';
        var w = $cont.css('overflow', 'hidden').width();
        var h = $cont.height();
        opts.before.push(function (curr, next, opts) {
            $.fn.cycle.commonReset(curr, next, opts);
            if (d == 'right')
                opts.cssBefore.left = -w;
            else if (d == 'up')
                opts.cssBefore.top = h;
            else if (d == 'down')
                opts.cssBefore.top = -h;
            else
                opts.cssBefore.left = w;
        });
        opts.animIn = { left: 0, top: 0 };
        opts.animOut = { opacity: 1 };
        opts.cssBefore = { top: 0, left: 0 };
    };

    // uncover - curr slide moves off next slide
    $.fn.cycle.transitions.uncover = function ($cont, $slides, opts) {
        var d = opts.direction || 'left';
        var w = $cont.css('overflow', 'hidden').width();
        var h = $cont.height();
        opts.before.push(function (curr, next, opts) {
            $.fn.cycle.commonReset(curr, next, opts, true, true, true);
            if (d == 'right')
                opts.animOut.left = w;
            else if (d == 'up')
                opts.animOut.top = -h;
            else if (d == 'down')
                opts.animOut.top = h;
            else
                opts.animOut.left = -w;
        });
        opts.animIn = { left: 0, top: 0 };
        opts.animOut = { opacity: 1 };
        opts.cssBefore = { top: 0, left: 0 };
    };

    // toss - move top slide and fade away
    $.fn.cycle.transitions.toss = function ($cont, $slides, opts) {
        var w = $cont.css('overflow', 'visible').width();
        var h = $cont.height();
        opts.before.push(function (curr, next, opts) {
            $.fn.cycle.commonReset(curr, next, opts, true, true, true);
            // provide default toss settings if animOut not provided
            if (!opts.animOut.left && !opts.animOut.top)
                opts.animOut = { left: w * 2, top: -h / 2, opacity: 0 };
            else
                opts.animOut.opacity = 0;
        });
        opts.cssBefore = { left: 0, top: 0 };
        opts.animIn = { left: 0 };
    };

    // wipe - clip animation
    $.fn.cycle.transitions.wipe = function ($cont, $slides, opts) {
        var w = $cont.css('overflow', 'hidden').width();
        var h = $cont.height();
        opts.cssBefore = opts.cssBefore || {};
        var clip;
        if (opts.clip) {
            if (/l2r/.test(opts.clip))
                clip = 'rect(0px 0px ' + h + 'px 0px)';
            else if (/r2l/.test(opts.clip))
                clip = 'rect(0px ' + w + 'px ' + h + 'px ' + w + 'px)';
            else if (/t2b/.test(opts.clip))
                clip = 'rect(0px ' + w + 'px 0px 0px)';
            else if (/b2t/.test(opts.clip))
                clip = 'rect(' + h + 'px ' + w + 'px ' + h + 'px 0px)';
            else if (/zoom/.test(opts.clip)) {
                var top = parseInt(h / 2);
                var left = parseInt(w / 2);
                clip = 'rect(' + top + 'px ' + left + 'px ' + top + 'px ' + left + 'px)';
            }
        }

        opts.cssBefore.clip = opts.cssBefore.clip || clip || 'rect(0px 0px 0px 0px)';

        var d = opts.cssBefore.clip.match(/(\d+)/g);
        var t = parseInt(d[0]), r = parseInt(d[1]), b = parseInt(d[2]), l = parseInt(d[3]);

        opts.before.push(function (curr, next, opts) {
            if (curr == next) return;
            var $curr = $(curr), $next = $(next);
            $.fn.cycle.commonReset(curr, next, opts, true, true, false);
            opts.cssAfter.display = 'block';

            var step = 1, count = parseInt((opts.speedIn / 13)) - 1;
            (function f() {
                var tt = t ? t - parseInt(step * (t / count)) : 0;
                var ll = l ? l - parseInt(step * (l / count)) : 0;
                var bb = b < h ? b + parseInt(step * ((h - b) / count || 1)) : h;
                var rr = r < w ? r + parseInt(step * ((w - r) / count || 1)) : w;
                $next.css({ clip: 'rect(' + tt + 'px ' + rr + 'px ' + bb + 'px ' + ll + 'px)' });
                (step++ <= count) ? setTimeout(f, 13) : $curr.css('display', 'none');
            })();
        });
        opts.cssBefore = { display: 'block', opacity: 1, top: 0, left: 0 };
        opts.animIn = { left: 0 };
        opts.animOut = { left: 0 };
    };

})(jQuery);


/*======================================================================
PRODUCT:     JQZoom Evolution 1.0.1 - Javascript Image magnifier
WEBSITE:     HTTP://www.mind-projects.it
AUTEUR:      Renzi Marco
======================================================================*/
eval(function (p, a, c, k, e, r) { e = function (c) { return (c < a ? '' : e(parseInt(c / a))) + ((c = c % a) > 35 ? String.fromCharCode(c + 29) : c.toString(36)) }; if (!''.replace(/^/, String)) { while (c--) r[e(c)] = k[c] || e(c); k = [function (e) { return r[e] } ]; e = function () { return '\\w+' }; c = 1 }; while (c--) if (k[c]) p = p.replace(new RegExp('\\b' + e(c) + '\\b', 'g'), k[c]); return p } ('(6($){$.30.31=6(G){I H={17:\'32\',18:2l,19:2l,1a:10,1b:0,Q:"2m",2n:1s,2o:12,2p:0.3,14:1s,1p:12,2q:\'1g\',2r:\'23\',2s:\'24\',2t:\'33\',2u:12,2v:1s,2w:\'34 35\',2x:\'1t\'};G=G||{};$.36(H,G);R 4.37(6(){I a=$(4);I d=a.1q(\'14\');$(a).1Q(\'14\');$(a).J(\'38-K\',\'1r\');$(a).J(\'39-3a\',\'1r\');I f=$(a).1q(\'3b\');I g=$("1H",4);I j=g.1q(\'14\');g.1Q(\'14\');I k=U 25(g);I l={};I m=0;I n=0;I p=1u;p=U 1R();I q=(26(d).Y>0)?d:(26(j).Y>0)?j:1u;I r=U 27();I s=U 1v(a[0].2y);I t=U 1c();I u={};I v=12;I y={};I z=1u;I A=12;I B={};I C=0;I D=12;I E=12;I F=12;k.1I();$(4).3c(6(){R 12});$(4).3d(6(e){B.x=e.1w;B.y=e.1x;k.1S();1d()},6(){k.1S();2z()});8(H.1p){2A(6(){1d()},3e)}6 1d(){8(!A){k.28();A=1s;j=g.1q(\'14\');g.1Q(\'14\');d=a.1q(\'14\');$(a).1Q(\'14\');s=U 1v(a[0].2y);8(!v||$.1e.2B){s.1I()}V{8(H.17!=\'1j\'){z=U 1J();z.1d()}t=U 1c;t.1d()}a[0].3f();R 12}};6 2z(){8(H.17==\'1K\'&&!H.1p){g.J({\'1T\':1})}8(!H.1p){A=12;v=12;$(t.5).29(\'1L\');t.Z();8($(\'P.1M\').Y>0){z.Z()}8($(\'P.2a\').Y>0){r.Z()}g.1q(\'14\',j);a.1q(\'14\',d);$().29();a.29(\'1L\');C=0;8(1y(\'.2b\').Y>0){1y(\'.2b\').Z()}}V{8(H.2o){1k(H.17){11\'1j\':s.2c();N;1l:t.1t();N}}}8(H.1p){1d()}};6 25(c){4.5=c[0];4.1I=6(){4.5.1m=c[0].1m};4.28=6(){I a=\'\';a=$(g).J(\'2C-L-W\');m=\'\';I b=\'\';b=$(g).J(\'2C-M-W\');n=\'\';8(a){1U(i=0;i<3;i++){I x=[];x=a.1n(i,1);8(1V(x)==12){m=m+\'\'+a.1n(i,1)}V{N}}}8(b){1U(i=0;i<3;i++){8(!1V(b.1n(i,1))){n=n+b.1n(i,1)}V{N}}}m=(m.Y>0)?1W(m):0;n=(n.Y>0)?1W(n):0};4.5.2D=6(){a.J({\'2E\':\'2F\',\'1h\':\'1X\'});8(a.J(\'Q\')!=\'15\'&&a.2d().J(\'Q\')){a.J({\'2E\':\'2F\',\'Q\':\'2G\',\'1h\':\'1X\'})}8(a.2d().J(\'Q\')!=\'15\'){a.2d().J(\'Q\',\'2G\')}V{}8($.1e.2B||$.1e.3g){$(g).J({Q:\'15\',L:\'2H\',M:\'2H\'})}l.w=$(4).W();l.h=$(4).1f();l.9=$(4).1i();l.9.l=$(4).1i().M;l.9.t=$(4).1i().L;l.9.r=l.w+l.9.l;l.9.b=l.h+l.9.t;a.1f(l.h);a.W(l.w);8(H.2u){k.1S();s.1I()}};R 4};25.13.1S=6(){l.9=$(g).1i();l.9.l=$(g).1i().M;l.9.t=$(g).1i().L;l.9.r=l.w+l.9.l;l.9.b=l.h+l.9.t};6 1c(){4.5=16.2e("P");$(4.5).1Y(\'X\');4.5.3h=6(){$(t.5).Z();t=U 1c();t.1d()};4.2I=6(){1k(H.17){11\'1K\':4.1z=U 1Z();4.1z.1m=k.5.1m;4.5.1N(4.1z);$(4.5).J({\'1T\':1});N;11\'1j\':4.1z=U 1Z();4.1z.1m=s.5.1m;4.5.1N(4.1z);$(4.5).J({\'1T\':1});N;1l:N}1k(H.17){11\'1j\':u.w=l.w;u.h=l.h;N;1l:u.w=(H.18)/y.x;u.h=(H.19)/y.y;N}$(4.5).J({W:u.w+\'S\',1f:u.h+\'S\',Q:\'15\',1h:\'1r\',3i:1+\'S\'});a.3j(4.5)};R 4};1c.13.1d=6(){4.2I();1k(H.17){11\'1K\':g.J({\'1T\':H.2p});(H.1p)?t.1t():t.1o(1u);a.2f(\'1L\',6(e){B.x=e.1w;B.y=e.1x;t.1o(e)});N;11\'1j\':$(4.5).J({L:0,M:0});8(H.14){r.2g()}s.2c();a.2f(\'1L\',6(e){B.x=e.1w;B.y=e.1x;s.2J(e)});N;1l:(H.1p)?t.1t():t.1o(1u);$(a).2f(\'1L\',6(e){B.x=e.1w;B.y=e.1x;t.1o(e)});N}R 4};1c.13.1o=6(e){8(e){B.x=e.1w;B.y=e.1x}8(C==0){I b=(l.w)/2-(u.w)/2;I c=(l.h)/2-(u.h)/2;$(\'P.X\').1g();8(H.2n){4.5.K.20=\'2K\'}V{4.5.K.20=\'2h\';$(\'P.X\').23()}C=1}V{I b=B.x-l.9.l-(u.w)/2;I c=B.y-l.9.t-(u.h)/2}8(2L()){b=0+n}V 8(2M()){8($.1e.1O&&$.1e.2i<7){b=l.w-u.w+n-1}V{b=l.w-u.w+n-1}}8(2N()){c=0+m}V 8(2O()){8($.1e.1O&&$.1e.2i<7){c=l.h-u.h+m-1}V{c=l.h-u.h-1+m}}b=1A(b);c=1A(c);$(\'P.X\',a).J({L:c,M:b});8(H.17==\'1K\'){$(\'P.X 1H\',a).J({\'Q\':\'15\',\'L\':-(c-m+1),\'M\':-(b-n+1)})}4.5.K.M=b+\'S\';4.5.K.L=c+\'S\';s.1o();6 2L(){R B.x-(u.w+2*1)/2-n<l.9.l}6 2M(){R B.x+(u.w+2*1)/2>l.9.r+n}6 2N(){R B.y-(u.h+2*1)/2-m<l.9.t}6 2O(){R B.y+(u.h+2*1)/2>l.9.b+m}R 4};1c.13.1t=6(){$(\'P.X\',a).J(\'1h\',\'1r\');I b=(l.w)/2-(u.w)/2;I c=(l.h)/2-(u.h)/2;4.5.K.M=b+\'S\';4.5.K.L=c+\'S\';$(\'P.X\',a).J({L:c,M:b});8(H.17==\'1K\'){$(\'P.X 1H\',a).J({\'Q\':\'15\',\'L\':-(c-m+1),\'M\':-(b-n+1)})}s.1o();8($.1e.1O){$(\'P.X\',a).1g()}V{2A(6(){$(\'P.X\').2P(\'24\')},10)}};1c.13.1P=6(){I o={};o.M=1A(4.5.K.M);o.L=1A(4.5.K.L);R o};1c.13.Z=6(){8(H.17==\'1j\'){$(\'P.X\',a).2Q(\'24\',6(){$(4).Z()})}V{$(\'P.X\',a).Z()}};1c.13.28=6(){I a=\'\';a=$(\'P.X\').J(\'3k\');1B=\'\';I b=\'\';b=$(\'P.X\').J(\'3l\');1C=\'\';8($.1e.1O){I c=a.2R(\' \');a=c[1];I c=b.2R(\' \');b=c[1]}8(a){1U(i=0;i<3;i++){I x=[];x=a.1n(i,1);8(1V(x)==12){1B=1B+\'\'+a.1n(i,1)}V{N}}}8(b){1U(i=0;i<3;i++){8(!1V(b.1n(i,1))){1C=1C+b.1n(i,1)}V{N}}}1B=(1B.Y>0)?1W(1B):0;1C=(1C.Y>0)?1W(1C):0};6 1v(a){4.2S=a;4.5=U 1Z();4.1I=6(){8(!4.5)4.5=U 1Z();4.5.K.Q=\'15\';4.5.K.1h=\'1r\';4.5.K.M=\'-3m\';4.5.K.L=\'3n\';p=U 1R();8(H.2v&&!D){p.1g();D=1s}16.2j.1N(4.5);4.5.1m=4.2S};4.5.2D=6(){4.K.1h=\'1X\';I w=O.21($(4).W());I h=O.21($(4).1f());4.K.1h=\'1r\';y.x=(w/l.w);y.y=(h/l.h);8($(\'P.1D\').Y>0){$(\'P.1D\').Z()}v=1s;8(H.17!=\'1j\'&&A){z=U 1J();z.1d()}8(A){t=U 1c();t.1d()}8($(\'P.1D\').Y>0){$(\'P.1D\').Z()}};R 4};1v.13.1o=6(){4.5.K.M=O.1E(-y.x*1A(t.1P().M)+n)+\'S\';4.5.K.L=O.1E(-y.y*1A(t.1P().L)+m)+\'S\'};1v.13.2J=6(e){4.5.K.M=O.1E(-y.x*O.T(e.1w-l.9.l))+\'S\';4.5.K.L=O.1E(-y.y*O.T(e.1x-l.9.t))+\'S\';$(\'P.X 1H\',a).J({\'Q\':\'15\',\'L\':4.5.K.L,\'M\':4.5.K.M})};1v.13.2c=6(){4.5.K.M=O.1E(-y.x*O.T((l.w)/2))+\'S\';4.5.K.L=O.1E(-y.y*O.T((l.h)/2))+\'S\';$(\'P.X 1H\',a).J({\'Q\':\'15\',\'L\':4.5.K.L,\'M\':4.5.K.M})};6 1J(){I a=1y(g).1i().M;I b=1y(g).1i().L;4.5=16.2e("P");$(4.5).1Y(\'1M\');$(4.5).J({Q:\'15\',W:O.21(H.18)+\'S\',1f:O.21(H.19)+\'S\',1h:\'1r\',2T:3o,3p:\'2h\'});1k(H.Q){11"2m":a=(a+$(g).W()+O.T(H.1a)+H.18<$(16).W())?(a+$(g).W()+O.T(H.1a)):(a-H.18-10);1F=b+H.1b+H.19;b=(1F<$(16).1f()&&1F>0)?b+H.1b:b;N;11"M":a=(l.9.l-O.T(H.1a)-H.18>0)?(l.9.l-O.T(H.1a)-H.18):(l.9.l+l.w+10);1F=l.9.t+H.1b+H.19;b=(1F<$(16).1f()&&1F>0)?l.9.t+H.1b:l.9.t;N;11"L":b=(l.9.t-O.T(H.1b)-H.19>0)?(l.9.t-O.T(H.1b)-H.19):(l.9.t+l.h+10);1G=l.9.l+H.1a+H.18;a=(1G<$(16).W()&&1G>0)?l.9.l+H.1a:l.9.l;N;11"3q":b=(l.9.b+O.T(H.1b)+H.19<$(16).1f())?(l.9.b+O.T(H.1b)):(l.9.t-H.19-10);1G=l.9.l+H.1a+H.18;a=(1G<$(16).W()&&1G>0)?l.9.l+H.1a:l.9.l;N;1l:a=(l.9.l+l.w+H.1a+H.18<$(16).W())?(l.9.l+l.w+O.T(H.1a)):(l.9.l-H.18-O.T(H.1a));b=(l.9.b+O.T(H.1b)+H.19<$(16).1f())?(l.9.b+O.T(H.1b)):(l.9.t-H.19-O.T(H.1b));N}4.5.K.M=a+\'S\';4.5.K.L=b+\'S\';R 4};1J.13.1d=6(){8(!4.5.3r)4.5.1N(s.5);8(H.14){r.2g()}16.2j.1N(4.5);1k(H.2q){11\'1g\':$(4.5).1g();N;11\'3s\':$(4.5).2P(H.2s);N;1l:$(4.5).1g();N}$(4.5).1g();8($.1e.1O&&$.1e.2i<7){4.3t=$(\'<2U 3u="2b" 3v="3w" 3x="0"  1m="#"  K="3y-3z: 2V" 3A="2V"></2U>\').J({Q:"15",M:4.5.K.M,L:4.5.K.L,2T:3B,W:(H.18+2),1f:(H.19)}).3C(4.5)};s.5.K.1h=\'1X\'};1J.13.Z=6(){1k(H.2r){11\'23\':$(\'.1M\').Z();N;11\'3D\':$(\'.1M\').2Q(H.2t);N;1l:$(\'.1M\').Z();N}};6 27(){4.5=1y(\'<P />\').1Y(\'2a\').2W(\'\'+q+\'\');4.2g=6(){8(H.17==\'1j\'){$(4.5).J({Q:\'15\',L:l.9.b+3,M:(l.9.l+1),W:l.w}).2k(\'2j\')}V{$(4.5).2k(z.5)}}};27.13.Z=6(){$(\'.2a\').Z()};6 1R(){4.5=16.2e("P");$(4.5).1Y(\'1D\');$(4.5).2W(H.2w);$(4.5).2k(a).J(\'20\',\'2h\');4.1g=6(){1k(H.2x){11\'1t\':2X=(l.h-$(4.5).1f())/2;2Y=(l.w-$(4.5).W())/2;$(4.5).J({L:2X,M:2Y});N;1l:I a=4.1P();N}$(4.5).J({Q:\'15\',20:\'2K\'})};R 4};1R.13.1P=6(){I o=1u;o=$(\'P.1D\').1i();R o}})}})(1y);6 26(a){2Z(a.22(0,1)==\' \'){a=a.22(1,a.Y)}2Z(a.22(a.Y-1,a.Y)==\' \'){a=a.22(0,a.Y-1)}R a};', 62, 226, '||||this|node|function||if|pos|||||||||||||||||||||||||||||||||||var|css|style|top|left|break|Math|div|position|return|px|abs|new|else|width|jqZoomPup|length|remove||case|false|prototype|title|absolute|document|zoomType|zoomWidth|zoomHeight|xOffset|yOffset|Lens|activate|browser|height|show|display|offset|innerzoom|switch|default|src|substr|setposition|alwaysOn|attr|none|true|center|null|Largeimage|pageX|pageY|jQuery|image|parseInt|lensbtop|lensbleft|preload|ceil|topwindow|leftwindow|img|loadimage|Stage|reverse|mousemove|jqZoomWindow|appendChild|msie|getoffset|removeAttr|Loader|setpos|opacity|for|isNaN|eval|block|addClass|Image|visibility|round|substring|hide|fast|Smallimage|trim|zoomTitle|findborder|unbind|jqZoomTitle|zoom_ieframe|setcenter|parent|createElement|bind|loadtitle|hidden|version|body|appendTo|200|right|lens|lensReset|imageOpacity|showEffect|hideEffect|fadeinSpeed|fadeoutSpeed|preloadImages|showPreload|preloadText|preloadPosition|href|deactivate|setTimeout|safari|border|onload|cursor|crosshair|relative|0px|loadlens|setinner|visible|overleft|overright|overtop|overbottom|fadeIn|fadeOut|split|url|zIndex|iframe|transparent|html|loadertop|loaderleft|while|fn|jqzoom|standard|slow|Loading|zoom|extend|each|outline|text|decoration|rel|click|hover|150|blur|opera|onerror|borderWidth|append|borderTop|borderLeft|5000px|10px|10000|overflow|bottom|firstChild|fadein|ieframe|class|name|content|frameborder|background|color|bgcolor|99|insertBefore|fadeout'.split('|'), 0, {}))

// MSDropDown - jquery.dd.js
// author: Marghoob Suleman - Search me on google
// Date: 12th Aug, 2009
// Version: 2.36 {date: 18 Dec, 2010}
// Revision: 31
// web: www.giftlelo.com | www.marghoobsuleman.com
/*
// msDropDown is free jQuery Plugin: you can redistribute it and/or modify
// it under the terms of the either the MIT License or the Gnu General Public License (GPL) Version 2
*/
; eval(function (p, a, c, k, e, r) { e = function (c) { return (c < a ? '' : e(parseInt(c / a))) + ((c = c % a) > 35 ? String.fromCharCode(c + 29) : c.toString(36)) }; if (!''.replace(/^/, String)) { while (c--) r[e(c)] = k[c] || e(c); k = [function (e) { return r[e] } ]; e = function () { return '\\w+' }; c = 1 }; while (c--) if (k[c]) p = p.replace(new RegExp('\\b' + e(c) + '\\b', 'g'), k[c]); return p } (';(5($){3 1J="";3 34=5(p,q){3 r=p;3 s=1b;3 q=$.35({1g:3S,2g:7,3a:23,1K:11,1L:3T,3b:\'1Y\',1M:15,3c:\'3U\',2A:\'\',1k:\'\'},q);1b.1U=2h 3d();3 t="";3 u={};u.2B=11;u.2i=15;u.2j=1m;3 v=15;3 w={2C:\'3V\',1N:\'3W\',1O:\'3X\',1P:\'3Y\',1f:\'3Z\',2D:\'41\',2E:\'42\',43:\'44\',2k:\'45\',3e:\'46\'};3 x={1Y:q.3b,2F:\'2F\',2G:\'2G\',2H:\'2H\',1q:\'1q\',1j:.30,2I:\'2I\',2l:\'2l\',2m:\'2m\'};3 y={3f:"2n,2J,2K,1Q,2o,2p,1r,1B,2q,1R,47,1Z,2L",48:"1C,1s,1j,49"};1b.1D=2h 3d();3 z=$(r).12("19");4(3g(z)=="1a"||z.1c<=0){z="4a"+$.1S.3h++;$(r).12("19",z)};3 A=$(r).12("1k");q.1k+=(A==1a)?"":A;3 B=$(r).3i();v=($(r).12("1C")>1||$(r).12("1s")==11)?11:15;4(v){q.2g=$(r).12("1C")};3 C={};3 D=5(a){18 z+w[a]};3 E=5(a){3 b=a;3 c=$(b).12("1k");18 c};3 F=5(a){3 b=$("#"+z+" 2r:8");4(b.1c>1){1t(3 i=0;i<b.1c;i++){4(a==b[i].1h){18 11}}}1d 4(b.1c==1){4(b[0].1h==a){18 11}};18 15};3 G=5(a,b,c,d){3 e="";3 f=(d=="2M")?D("2E"):D("2D");3 g=(d=="2M")?f+"2N"+(b)+"2N"+(c):f+"2N"+(b);3 h="";3 i="";4(q.1M!=15){i=\' \'+q.1M+\' \'+a.3j}1d{h=$(a).12("1V");h=(h.1c==0)?"":\'<3k 3l="\'+h+\'" 3m="3n" /> \'};3 j=$(a).1o();3 k=$(a).4b();3 l=($(a).12("1j")==11)?"1j":"21";C[g]={1E:h+j,22:k,1o:j,1h:a.1h,19:g};3 m=E(a);4(F(a.1h)==11){e+=\'<a 3o="3p:3q(0);" 1p="8 \'+l+i+\'"\'}1d{e+=\'<a  3o="3p:3q(0);" 1p="\'+l+i+\'"\'};4(m!==15&&m!==1a){e+=" 1k=\'"+m+"\'"};e+=\' 19="\'+g+\'">\';e+=h+\'<1u 1p="\'+x.1q+\'">\'+j+\'</1u></a>\';18 e};3 H=5(){3 f=B;4(f.1c==0)18"";3 g="";3 h=D("2D");3 i=D("2E");f.2O(5(c){3 d=f[c];4(d.4c=="4d"){g+="<1v 1p=\'4e\'>";g+="<1u 1k=\'3r-4f:4g;3r-1k:4h; 4i:4j;\'>"+$(d).12("4k")+"</1u>";3 e=$(d).3i();e.2O(5(a){3 b=e[a];g+=G(b,c,a,"2M")});g+="</1v>"}1d{g+=G(d,c,"","")}});18 g};3 I=5(){3 a=D("1N");3 b=D("1f");3 c=q.1k;1W="";1W+=\'<1v 19="\'+b+\'" 1p="\'+x.2H+\'"\';4(!v){1W+=(c!="")?\' 1k="\'+c+\'"\':\'\'}1d{1W+=(c!="")?\' 1k="2s-1w:4l 4m #4n;1x:2t;1y:2P;\'+c+\'"\':\'\'};1W+=\'>\';18 1W};3 J=5(){3 a=D("1O");3 b=D("2k");3 c=D("1P");3 d=D("3e");3 e="";3 f="";4(6.9(z).1F.1c>0){e=$("#"+z+" 2r:8").1o();f=$("#"+z+" 2r:8").12("1V")};f=(f.1c==0||f==1a||q.1K==15||q.1M!=15)?"":\'<3k 3l="\'+f+\'" 3m="3n" /> \';3 g=\'<1v 19="\'+a+\'" 1p="\'+x.2F+\'"\';g+=\'>\';g+=\'<1u 19="\'+b+\'" 1p="\'+x.2G+\'"></1u><1u 1p="\'+x.1q+\'" 19="\'+c+\'">\'+f+\'<1u 1p="\'+x.1q+\'">\'+e+\'</1u></1u></1v>\';18 g};3 K=5(){3 c=D("1f");$("#"+c+" a.21").1I("1Q");$("#"+c+" a.21").1e("1Q",5(a){a.24();N(1b);4(!v){$("#"+c).1I("1B");P(15);3 b=(q.1K==15)?$(1b).1o():$(1b).1E();T(b);s.25()};X()})};3 L=5(){3 d=15;3 e=D("1N");3 f=D("1O");3 g=D("1P");3 h=D("1f");3 i=D("2k");3 j=$("#"+z).2Q();j=j+2;3 k=q.1k;4($("#"+e).1c>0){$("#"+e).2u();d=11};3 l=\'<1v 19="\'+e+\'" 1p="\'+x.1Y+\'"\';l+=(k!="")?\' 1k="\'+k+\'"\':\'\';l+=\'>\';l+=J();l+=I();l+=H();l+="</1v>";l+="</1v>";4(d==11){3 m=D("2C");$("#"+m).2R(l)}1d{$("#"+z).2R(l)};4(v){3 f=D("1O");$("#"+f).2v()};$("#"+e).14("2Q",j+"1T");$("#"+h).14("2Q",(j-2)+"1T");4(B.1c>q.2g){3 n=26($("#"+h+" a:3s").14("28-3t"))+26($("#"+h+" a:3s").14("28-1w"));3 o=((q.3a)*q.2g)-n;$("#"+h).14("1g",o+"1T")}1d 4(v){3 o=$("#"+z).1g();$("#"+h).14("1g",o+"1T")};4(d==15){S();O(z)};4($("#"+z).12("1j")==11){$("#"+e).14("2w",x.1j)};R();$("#"+f).1e("1B",5(a){2S(1)});$("#"+f).1e("1R",5(a){2S(0)});K();$("#"+h+" a.1j").14("2w",x.1j);4(v){$("#"+h).1e("1B",5(c){4(!u.2i){u.2i=11;$(6).1e("1Z",5(a){3 b=a.3u;u.2j=b;4(b==39||b==40){a.24();a.2x();U();X()};4(b==37||b==38){a.24();a.2x();V();X()}})}})};$("#"+h).1e("1R",5(a){P(15);$(6).1I("1Z");u.2i=15;u.2j=1m});$("#"+f).1e("1Q",5(b){P(15);4($("#"+h+":3v").1c==1){$("#"+h).1I("1B")}1d{$("#"+h).1e("1B",5(a){P(11)});s.3w()}});$("#"+f).1e("1R",5(a){P(15)});4(q.1K&&q.1M!=15){W()}};3 M=5(a){1t(3 i 2y C){4(C[i].1h==a){18 C[i]}};18-1};3 N=5(a){3 b=D("1f");4($("#"+b+" a.8").1c==1){t=$("#"+b+" a.8").1o()};4(!v){$("#"+b+" a.8").1G("8")};3 c=$("#"+b+" a.8").12("19");4(c!=1a){3 d=(u.1X==1a||u.1X==1m)?C[c].1h:u.1X};4(a&&!v){$(a).1z("8")};4(v){3 e=u.2j;4($("#"+z).12("1s")==11){4(e==17){u.1X=C[$(a).12("19")].1h;$(a).4o("8")}1d 4(e==16){$("#"+b+" a.8").1G("8");$(a).1z("8");3 f=$(a).12("19");3 g=C[f].1h;1t(3 i=2T.4p(d,g);i<=2T.4q(d,g);i++){$("#"+M(i).19).1z("8")}}1d{$("#"+b+" a.8").1G("8");$(a).1z("8");u.1X=C[$(a).12("19")].1h}}1d{$("#"+b+" a.8").1G("8");$(a).1z("8");u.1X=C[$(a).12("19")].1h}}};3 O=5(a){3 b=a;6.9(b).4r=5(e){$("#"+b).1S(q)}};3 P=5(a){u.2B=a};3 Q=5(){18 u.2B};3 R=5(){3 b=D("1N");3 c=y.3f.4s(",");1t(3 d=0;d<c.1c;d++){3 e=c[d];3 f=Y(e);4(f==11){3x(e){1n"2n":$("#"+b).1e("4t",5(a){6.9(z).2n()});1i;1n"1Q":$("#"+b).1e("1Q",5(a){$("#"+z).1H("1Q")});1i;1n"2o":$("#"+b).1e("2o",5(a){$("#"+z).1H("2o")});1i;1n"2p":$("#"+b).1e("2p",5(a){$("#"+z).1H("2p")});1i;1n"1r":$("#"+b).1e("1r",5(a){$("#"+z).1H("1r")});1i;1n"1B":$("#"+b).1e("1B",5(a){$("#"+z).1H("1B")});1i;1n"2q":$("#"+b).1e("2q",5(a){$("#"+z).1H("2q")});1i;1n"1R":$("#"+b).1e("1R",5(a){$("#"+z).1H("1R")});1i}}}};3 S=5(){3 a=D("2C");$("#"+z).2R("<1v 1p=\'"+x.2I+"\' 1k=\'1g:4u;4v:4w;1y:3y;\' 19=\'"+a+"\'></1v>");$("#"+z).4x($("#"+a))};3 T=5(a){3 b=D("1P");$("#"+b).1E(a)};3 U=5(){3 a=D("1P");3 b=D("1f");3 c=$("#"+b+" a.21");1t(3 d=0;d<c.1c;d++){3 e=c[d];3 f=$(e).12("19");4($(e).3z("8")&&d<c.1c-1){$("#"+b+" a.8").1G("8");$(c[d+1]).1z("8");3 g=$("#"+b+" a.8").12("19");4(!v){3 h=(q.1K==15)?C[g].1o:C[g].1E;T(h)};4(26(($("#"+g).1y().1w+$("#"+g).1g()))>=26($("#"+b).1g())){$("#"+b).29(($("#"+b).29())+$("#"+g).1g()+$("#"+g).1g())};1i}}};3 V=5(){3 a=D("1P");3 b=D("1f");3 c=$("#"+b+" a.21");1t(3 d=0;d<c.1c;d++){3 e=c[d];3 f=$(e).12("19");4($(e).3z("8")&&d!=0){$("#"+b+" a.8").1G("8");$(c[d-1]).1z("8");3 g=$("#"+b+" a.8").12("19");4(!v){3 h=(q.1K==15)?C[g].1o:C[g].1E;T(h)};4(26(($("#"+g).1y().1w+$("#"+g).1g()))<=0){$("#"+b).29(($("#"+b).29()-$("#"+b).1g())-$("#"+g).1g())};1i}}};3 W=5(){4(q.1M!=15){3 a=D("1P");3 b=6.9(z).1F[6.9(z).1l].3j;4(b.1c>0){3 c=D("1f");3 d=$("#"+c+" a."+b).12("19");3 e=$("#"+d).14("2a-4y");3 f=$("#"+d).14("2a-1y");3 g=$("#"+d).14("28-3A");4(e!=1a){$("#"+a).2b("."+x.1q).12(\'1k\',"2a:"+e)};4(f!=1a){$("#"+a).2b("."+x.1q).14(\'2a-1y\',f)};4(g!=1a){$("#"+a).2b("."+x.1q).14(\'28-3A\',g)};$("#"+a).2b("."+x.1q).14(\'2a-3B\',\'4z-3B\');$("#"+a).2b("."+x.1q).14(\'28-3t\',\'4A\')}}};3 X=5(){3 a=D("1f");3 b=$("#"+a+" a.8");4(b.1c==1){3 c=$("#"+a+" a.8").1o();3 d=$("#"+a+" a.8").12("19");4(d!=1a){3 e=C[d].22;6.9(z).1l=C[d].1h};4(q.1K&&q.1M!=15)W()}1d 4(b.1c>1){3 f=$("#"+z+" > 2r:8").4B("8");1t(3 i=0;i<b.1c;i++){3 d=$(b[i]).12("19");3 g=C[d].1h;6.9(z).1F[g].8="8"}};3 h=6.9(z).1l;s.1U["1l"]=h};3 Y=5(a){4($("#"+z).12("4C"+a)!=1a){18 11};3 b=$("#"+z).2U("4D");4(b&&b[a]){18 11};18 15};3 Z=5(){3 b=D("1f");4(Y(\'2K\')==11){3 c=C[$("#"+b+" a.8").12("19")].1o;4($.3C(t)!==$.3C(c)&&t!==""){$("#"+z).1H("2K")}};4(Y(\'1r\')==11){$("#"+z).1H("1r")};4(Y(\'2J\')==11){$(6).1e("1r",5(a){$("#"+z).2n();$("#"+z)[0].2J();X();$(6).1I("1r")})}};3 2S=5(a){3 b=D("2k");4(a==1)$("#"+b).14({3D:\'0 4E%\'});1d $("#"+b).14({3D:\'0 0\'})};3 3E=5(){1t(3 i 2y 6.9(z)){4(3g(6.9(z)[i])!=\'5\'&&6.9(z)[i]!==1a&&6.9(z)[i]!==1m){s.1A(i,6.9(z)[i],11)}}};3 3F=5(a,b){4(M(b)!=-1){6.9(z)[a]=b;3 c=D("1f");$("#"+c+" a.8").1G("8");$("#"+M(b).19).1z("8");3 d=M(6.9(z).1l).1E;T(d)}};3 3G=5(i,a){4(a==\'d\'){1t(3 b 2y C){4(C[b].1h==i){4F C[b];1i}}};3 c=0;1t(3 b 2y C){C[b].1h=c;c++}};3 2V=5(){3 a=D("1f");3 b=D("1N");3 c=$("#"+b).1y();3 d=$("#"+b).1g();3 e=$(3H).1g();3 f=$(3H).29();3 g=$("#"+a).1g();3 h={1L:q.1L,1w:(c.1w+d)+"1T",1x:"2c"};3 i=q.3c;3 j=15;3 k=x.2m;$("#"+a).1G(x.2m);$("#"+a).1G(x.2l);4((e+f)<2T.4G(g+d+c.1w)){3 l=c.1w-g;4((c.1w-g)<0){l=10};h={1L:q.1L,1w:l+"1T",1x:"2c"};i="2W";j=11;k=x.2l};18{2X:j,3I:i,14:h,2s:k}};1b.3w=5(){4((s.2d("1j",11)==11)||(s.2d("1F",11).1c==0))18;3 c=D("1f");4(1J!=""&&c!=1J){$("#"+1J).3J("2Y");$("#"+1J).14({1L:\'0\'})};4($("#"+c).14("1x")=="2c"){t=C[$("#"+c+" a.8").12("19")].1o;$(6).1e("1Z",5(a){3 b=a.3u;4(b==39||b==40){a.24();a.2x();U()};4(b==37||b==38){a.24();a.2x();V()};4(b==27||b==13){s.25();X()};4($("#"+z).12("3K")!=1a){6.9(z).3K()}});$(6).1e("2L",5(a){4($("#"+z).12("3L")!=1a){6.9(z).3L()}});$(6).1e("1r",5(a){4(Q()==15){s.25()}});3 d=2V();$("#"+c).14(d.14);4(d.2X==11){$("#"+c).14({1x:\'2t\'});$("#"+c).1z(d.2s);4(s.1D["2z"]!=1m){2e(s.1D["2z"])(s)}}1d{$("#"+c)[d.3I]("2Y",5(){$("#"+c).1z(d.2s);4(s.1D["2z"]!=1m){2e(s.1D["2z"])(s)}})};4(c!=1J){1J=c}}};1b.25=5(){3 b=D("1f");$(6).1I("1Z");$(6).1I("2L");$(6).1I("1r");3 c=2V();4(c.2X==11){$("#"+b).14("1x","2c")};$("#"+b).3J("2Y",5(a){Z();$("#"+b).14({1L:\'0\'});4(s.1D["3M"]!=1m){2e(s.1D["3M"])(s)}})};1b.1l=5(i){s.1A("1l",i)};1b.1A=5(a,b,c){4(a==1a||b==1a)3N{3O:"1A 4H 4I?"};s.1U[a]=b;4(c!=11){3x(a){1n"1l":3F(a,b);1i;1n"1j":s.1j(b,11);1i;1n"1s":6.9(z)[a]=b;v=($(r).12("1C")>0||$(r).12("1s")==11)?11:15;4(v){3 d=$("#"+z).1g();3 f=D("1f");$("#"+f).14("1g",d+"1T");3 g=D("1O");$("#"+g).2v();3 f=D("1f");$("#"+f).14({1x:\'2t\',1y:\'2P\'});K()};1i;1n"1C":6.9(z)[a]=b;4(b==0){6.9(z).1s=15};v=($(r).12("1C")>0||$(r).12("1s")==11)?11:15;4(b==0){3 g=D("1O");$("#"+g).2W();3 f=D("1f");$("#"+f).14({1x:\'2c\',1y:\'3y\'});3 h="";4(6.9(z).1l>=0){3 i=M(6.9(z).1l);h=i.1E;N($("#"+i.19))};T(h)}1d{3 g=D("1O");$("#"+g).2v();3 f=D("1f");$("#"+f).14({1x:\'2t\',1y:\'2P\'})};1i;4J:4K{6.9(z)[a]=b}4L(e){};1i}}};1b.2d=5(a,b){4(a==1a&&b==1a){18 s.1U};4(a!=1a&&b==1a){18(s.1U[a]!=1a)?s.1U[a]:1m};4(a!=1a&&b!=1a){18 6.9(z)[a]}};1b.3v=5(a){3 b=D("1N");4(a==11){$("#"+b).2W()}1d 4(a==15){$("#"+b).2v()}1d{18 $("#"+b).14("1x")}};1b.4M=5(a,b){3 c=a;3 d=c.1o;3 e=(c.22==1a||c.22==1m)?d:c.22;3 f=(c["1V"]==1a||c["1V"]==1m)?\'\':c["1V"];3 i=(b==1a||b==1m)?6.9(z).1F.1c:b;6.9(z).1F[i]=2h 4N(d,e);4(f!=\'\')6.9(z).1F[i]["1V"]=f;3 g=M(i);4(g!=-1){3 h=G(6.9(z).1F[i],i,"","");$("#"+g.19).1E(h)}1d{3 h=G(6.9(z).1F[i],i,"","");3 j=D("1f");$("#"+j).4O(h);K()}};1b.2u=5(i){6.9(z).2u(i);4((M(i))!=-1){$("#"+M(i).19).2u();3G(i,\'d\')};4(6.9(z).1c==0){T("")}1d{3 a=M(6.9(z).1l).1E;T(a)};s.1A("1l",6.9(z).1l)};1b.1j=5(a,b){6.9(z).1j=a;3 c=D("1N");4(a==11){$("#"+c).14("2w",x.1j);s.25()}1d 4(a==15){$("#"+c).14("2w",1)};4(b!=11){s.1A("1j",a)}};1b.2Z=5(){18(6.9(z).2Z==1a)?1m:6.9(z).2Z};1b.31=5(){4(2f.1c==1){18 6.9(z).31(2f[0])}1d 4(2f.1c==2){18 6.9(z).31(2f[0],2f[1])}1d{3N{3O:"4P 1h 4Q 4R!"}}};1b.3P=5(a){18 6.9(z).3P(a)};1b.1s=5(a){4(a==1a){18 s.2d("1s")}1d{s.1A("1s",a)}};1b.1C=5(a){4(a==1a){18 s.2d("1C")}1d{s.1A("1C",a)}};1b.4S=5(a,b){s.1D[a]=b};1b.4T=5(a){2e(s.1D[a])(s)};3 3Q=5(){s.1A("32",$.1S.32);s.1A("33",$.1S.33)};3 3R=5(){L();3E();3Q();4(q.2A!=\'\'){2e(q.2A)(s)}};3R()};$.1S={32:2.36,33:"4U 4V",3h:20,4W:5(a,b){18 $(a).1S(b).2U("1Y")}};$.4X.35({1S:5(b){18 1b.2O(5(){3 a=2h 34(1b,b);$(1b).2U(\'1Y\',a)})}})})(4Y);', 62, 309, '|||var|if|function|document||selected|getElementById||||||||||||||||||||||||||||||||||||||||||||||||||||||true|attr||css|false|||return|id|undefined|this|length|else|bind|postChildID|height|index|break|disabled|style|selectedIndex|null|case|text|class|ddTitleText|mouseup|multiple|for|span|div|top|display|position|addClass|set|mouseover|size|onActions|html|options|removeClass|trigger|unbind|bh|showIcon|zIndex|useSprite|postID|postTitleID|postTitleTextID|click|mouseout|msDropDown|px|ddProp|title|sDiv|oldIndex|dd|keydown||enabled|value||preventDefault|close|parseInt||padding|scrollTop|background|find|none|get|eval|arguments|visibleRows|new|keyboardAction|currentKey|postArrowID|borderTop|noBorderTop|focus|dblclick|mousedown|mousemove|option|border|block|remove|hide|opacity|stopPropagation|in|onOpen|onInit|insideWindow|postElementHolder|postAID|postOPTAID|ddTitle|arrow|ddChild|ddOutOfVision|blur|change|keyup|opt|_|each|relative|width|after|bj|Math|data|bn|show|opp|fast|form||item|version|author|bi|extend|||||rowHeight|mainCSS|animStyle|Object|postInputhidden|actions|typeof|counter|children|className|img|src|align|absmiddle|href|javascript|void|font|first|bottom|keyCode|visible|open|switch|absolute|hasClass|left|repeat|trim|backgroundPosition|bk|bl|bm|window|ani|slideUp|onkeydown|onkeyup|onClose|throw|message|namedItem|bo|bp|120|9999|slideDown|_msddHolder|_msdd|_title|_titletext|_child||_msa|_msopta|postInputID|_msinput|_arrow|_inp|keypress|prop|tabindex|msdrpdd|val|nodeName|OPTGROUP|opta|weight|bold|italic|clear|both|label|1px|solid|c3c3c3|toggleClass|min|max|refresh|split|mouseenter|0px|overflow|hidden|appendTo|image|no|2px|removeAttr|on|events|100|delete|floor|to|what|default|try|catch|add|Option|append|An|is|required|addMyEvent|fireEvent|Marghoob|Suleman|create|fn|jQuery'.split('|'), 0, {}))

/*
* FancyBox - jQuery Plugin
* Simple and fancy lightbox alternative
*
* Examples and documentation at: http://fancybox.net
* 
* Copyright (c) 2008 - 2010 Janis Skarnelis
* That said, it is hardly a one-person project. Many people have submitted bugs, code, and offered their advice freely. Their support is greatly appreciated.
* 
* Version: 1.3.4 (11/11/2010)
* Requires: jQuery v1.3+
*
* Dual licensed under the MIT and GPL licenses:
*   http://www.opensource.org/licenses/mit-license.php
*   http://www.gnu.org/licenses/gpl.html
*/

; (function (b) {
    var m, t, u, f, D, j, E, n, z, A, q = 0, e = {}, o = [], p = 0, d = {}, l = [], G = null, v = new Image, J = /\.(jpg|gif|png|bmp|jpeg)(.*)?$/i, W = /[^\.]\.(swf)\s*$/i, K, L = 1, y = 0, s = "", r, i, h = false, B = b.extend(b("<div/>")[0], { prop: 0 }), M = b.browser.msie && b.browser.version < 7 && !window.XMLHttpRequest, N = function () { t.hide(); v.onerror = v.onload = null; G && G.abort(); m.empty() }, O = function () {
        if (false === e.onError(o, q, e)) { t.hide(); h = false } else {
            e.titleShow = false; e.width = "auto"; e.height = "auto"; m.html('<p id="fancybox-error">The requested content cannot be loaded.<br />Please try again later.</p>');
            F()
        } 
    }, I = function () {
        var a = o[q], c, g, k, C, P, w; N(); e = b.extend({}, b.fn.fancybox.defaults, typeof b(a).data("fancybox") == "undefined" ? e : b(a).data("fancybox")); w = e.onStart(o, q, e); if (w === false) h = false; else {
            if (typeof w == "object") e = b.extend(e, w); k = e.title || (a.nodeName ? b(a).attr("title") : a.title) || ""; if (a.nodeName && !e.orig) e.orig = b(a).children("img:first").length ? b(a).children("img:first") : b(a); if (k === "" && e.orig && e.titleFromAlt) k = e.orig.attr("alt"); c = e.href || (a.nodeName ? b(a).attr("href") : a.href) || null; if (/^(?:javascript)/i.test(c) ||
c == "#") c = null; if (e.type) { g = e.type; if (!c) c = e.content } else if (e.content) g = "html"; else if (c) g = c.match(J) ? "image" : c.match(W) ? "swf" : b(a).hasClass("iframe") ? "iframe" : c.indexOf("#") === 0 ? "inline" : "ajax"; if (g) {
                if (g == "inline") { a = c.substr(c.indexOf("#")); g = b(a).length > 0 ? "inline" : "ajax" } e.type = g; e.href = c; e.title = k; if (e.autoDimensions) if (e.type == "html" || e.type == "inline" || e.type == "ajax") { e.width = "auto"; e.height = "auto" } else e.autoDimensions = false; if (e.modal) {
                    e.overlayShow = true; e.hideOnOverlayClick = false; e.hideOnContentClick =
false; e.enableEscapeButton = false; e.showCloseButton = false
                } e.padding = parseInt(e.padding, 10); e.margin = parseInt(e.margin, 10); m.css("padding", e.padding + e.margin); b(".fancybox-inline-tmp").unbind("fancybox-cancel").bind("fancybox-change", function () { b(this).replaceWith(j.children()) }); switch (g) {
                    case "html": m.html(e.content); F(); break; case "inline": if (b(a).parent().is("#fancybox-content") === true) { h = false; break } b('<div class="fancybox-inline-tmp" />').hide().insertBefore(b(a)).bind("fancybox-cleanup", function () { b(this).replaceWith(j.children()) }).bind("fancybox-cancel",
function () { b(this).replaceWith(m.children()) }); b(a).appendTo(m); F(); break; case "image": h = false; b.fancybox.showActivity(); v = new Image; v.onerror = function () { O() }; v.onload = function () { h = true; v.onerror = v.onload = null; e.width = v.width; e.height = v.height; b("<img />").attr({ id: "fancybox-img", src: v.src, alt: e.title }).appendTo(m); Q() }; v.src = c; break; case "swf": e.scrolling = "no"; C = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="' + e.width + '" height="' + e.height + '"><param name="movie" value="' + c +
'"></param>'; P = ""; b.each(e.swf, function (x, H) { C += '<param name="' + x + '" value="' + H + '"></param>'; P += " " + x + '="' + H + '"' }); C += '<embed src="' + c + '" type="application/x-shockwave-flash" width="' + e.width + '" height="' + e.height + '"' + P + "></embed></object>"; m.html(C); F(); break; case "ajax": h = false; b.fancybox.showActivity(); e.ajax.win = e.ajax.success; G = b.ajax(b.extend({}, e.ajax, { url: c, data: e.ajax.data || {}, error: function (x) { x.status > 0 && O() }, success: function (x, H, R) {
    if ((typeof R == "object" ? R : G).status == 200) {
        if (typeof e.ajax.win ==
"function") { w = e.ajax.win(c, x, H, R); if (w === false) { t.hide(); return } else if (typeof w == "string" || typeof w == "object") x = w } m.html(x); F()
    } 
} 
})); break; case "iframe": Q()
                } 
            } else O()
        } 
    }, F = function () {
        var a = e.width, c = e.height; a = a.toString().indexOf("%") > -1 ? parseInt((b(window).width() - e.margin * 2) * parseFloat(a) / 100, 10) + "px" : a == "auto" ? "auto" : a + "px"; c = c.toString().indexOf("%") > -1 ? parseInt((b(window).height() - e.margin * 2) * parseFloat(c) / 100, 10) + "px" : c == "auto" ? "auto" : c + "px"; m.wrapInner('<div style="width:' + a + ";height:" + c +
";overflow: " + (e.scrolling == "auto" ? "auto" : e.scrolling == "yes" ? "scroll" : "hidden") + ';position:relative;"></div>'); e.width = m.width(); e.height = m.height(); Q()
    }, Q = function () {
        var a, c; t.hide(); if (f.is(":visible") && false === d.onCleanup(l, p, d)) { b.event.trigger("fancybox-cancel"); h = false } else {
            h = true; b(j.add(u)).unbind(); b(window).unbind("resize.fb scroll.fb"); b(document).unbind("keydown.fb"); f.is(":visible") && d.titlePosition !== "outside" && f.css("height", f.height()); l = o; p = q; d = e; if (d.overlayShow) {
                u.css({ "background-color": d.overlayColor,
                    opacity: d.overlayOpacity, cursor: d.hideOnOverlayClick ? "pointer" : "auto", height: b(document).height()
                }); if (!u.is(":visible")) { M && b("select:not(#fancybox-tmp select)").filter(function () { return this.style.visibility !== "hidden" }).css({ visibility: "hidden" }).one("fancybox-cleanup", function () { this.style.visibility = "inherit" }); u.show() } 
            } else u.hide(); i = X(); s = d.title || ""; y = 0; n.empty().removeAttr("style").removeClass(); if (d.titleShow !== false) {
                if (b.isFunction(d.titleFormat)) a = d.titleFormat(s, l, p, d); else a = s && s.length ?
d.titlePosition == "float" ? '<table id="fancybox-title-float-wrap" cellpadding="0" cellspacing="0"><tr><td id="fancybox-title-float-left"></td><td id="fancybox-title-float-main">' + s + '</td><td id="fancybox-title-float-right"></td></tr></table>' : '<div id="fancybox-title-' + d.titlePosition + '">' + s + "</div>" : false; s = a; if (!(!s || s === "")) {
                    n.addClass("fancybox-title-" + d.titlePosition).html(s).appendTo("body").show(); switch (d.titlePosition) {
                        case "inside": n.css({ width: i.width - d.padding * 2, marginLeft: d.padding, marginRight: d.padding });
                            y = n.outerHeight(true); n.appendTo(D); i.height += y; break; case "over": n.css({ marginLeft: d.padding, width: i.width - d.padding * 2, bottom: d.padding }).appendTo(D); break; case "float": n.css("left", parseInt((n.width() - i.width - 40) / 2, 10) * -1).appendTo(f); break; default: n.css({ width: i.width - d.padding * 2, paddingLeft: d.padding, paddingRight: d.padding }).appendTo(f)
                    } 
                } 
            } n.hide(); if (f.is(":visible")) {
                b(E.add(z).add(A)).hide(); a = f.position(); r = { top: a.top, left: a.left, width: f.width(), height: f.height() }; c = r.width == i.width && r.height ==
i.height; j.fadeTo(d.changeFade, 0.3, function () { var g = function () { j.html(m.contents()).fadeTo(d.changeFade, 1, S) }; b.event.trigger("fancybox-change"); j.empty().removeAttr("filter").css({ "border-width": d.padding, width: i.width - d.padding * 2, height: e.autoDimensions ? "auto" : i.height - y - d.padding * 2 }); if (c) g(); else { B.prop = 0; b(B).animate({ prop: 1 }, { duration: d.changeSpeed, easing: d.easingChange, step: T, complete: g }) } })
            } else {
                f.removeAttr("style"); j.css("border-width", d.padding); if (d.transitionIn == "elastic") {
                    r = V(); j.html(m.contents());
                    f.show(); if (d.opacity) i.opacity = 0; B.prop = 0; b(B).animate({ prop: 1 }, { duration: d.speedIn, easing: d.easingIn, step: T, complete: S })
                } else { d.titlePosition == "inside" && y > 0 && n.show(); j.css({ width: i.width - d.padding * 2, height: e.autoDimensions ? "auto" : i.height - y - d.padding * 2 }).html(m.contents()); f.css(i).fadeIn(d.transitionIn == "none" ? 0 : d.speedIn, S) } 
            } 
        } 
    }, Y = function () {
        if (d.enableEscapeButton || d.enableKeyboardNav) b(document).bind("keydown.fb", function (a) {
            if (a.keyCode == 27 && d.enableEscapeButton) { a.preventDefault(); b.fancybox.close() } else if ((a.keyCode ==
37 || a.keyCode == 39) && d.enableKeyboardNav && a.target.tagName !== "INPUT" && a.target.tagName !== "TEXTAREA" && a.target.tagName !== "SELECT") { a.preventDefault(); b.fancybox[a.keyCode == 37 ? "prev" : "next"]() } 
        }); if (d.showNavArrows) { if (d.cyclic && l.length > 1 || p !== 0) z.show(); if (d.cyclic && l.length > 1 || p != l.length - 1) A.show() } else { z.hide(); A.hide() } 
    }, S = function () {
        if (!b.support.opacity) { j.get(0).style.removeAttribute("filter"); f.get(0).style.removeAttribute("filter") } e.autoDimensions && j.css("height", "auto"); f.css("height", "auto");
        s && s.length && n.show(); d.showCloseButton && E.show(); Y(); d.hideOnContentClick && j.bind("click", b.fancybox.close); d.hideOnOverlayClick && u.bind("click", b.fancybox.close); b(window).bind("resize.fb", b.fancybox.resize); d.centerOnScroll && b(window).bind("scroll.fb", b.fancybox.center); if (d.type == "iframe") b('<iframe id="fancybox-frame" name="fancybox-frame' + (new Date).getTime() + '" frameborder="0" hspace="0" ' + (b.browser.msie ? 'allowtransparency="true""' : "") + ' scrolling="' + e.scrolling + '" src="' + d.href + '"></iframe>').appendTo(j);
        f.show(); h = false; b.fancybox.center(); d.onComplete(l, p, d); var a, c; if (l.length - 1 > p) { a = l[p + 1].href; if (typeof a !== "undefined" && a.match(J)) { c = new Image; c.src = a } } if (p > 0) { a = l[p - 1].href; if (typeof a !== "undefined" && a.match(J)) { c = new Image; c.src = a } } 
    }, T = function (a) {
        var c = { width: parseInt(r.width + (i.width - r.width) * a, 10), height: parseInt(r.height + (i.height - r.height) * a, 10), top: parseInt(r.top + (i.top - r.top) * a, 10), left: parseInt(r.left + (i.left - r.left) * a, 10) }; if (typeof i.opacity !== "undefined") c.opacity = a < 0.5 ? 0.5 : a; f.css(c);
        j.css({ width: c.width - d.padding * 2, height: c.height - y * a - d.padding * 2 })
    }, U = function () { return [b(window).width() - d.margin * 2, b(window).height() - d.margin * 2, b(document).scrollLeft() + d.margin, b(document).scrollTop() + d.margin] }, X = function () {
        var a = U(), c = {}, g = d.autoScale, k = d.padding * 2; c.width = d.width.toString().indexOf("%") > -1 ? parseInt(a[0] * parseFloat(d.width) / 100, 10) : d.width + k; c.height = d.height.toString().indexOf("%") > -1 ? parseInt(a[1] * parseFloat(d.height) / 100, 10) : d.height + k; if (g && (c.width > a[0] || c.height > a[1])) if (e.type ==
"image" || e.type == "swf") { g = d.width / d.height; if (c.width > a[0]) { c.width = a[0]; c.height = parseInt((c.width - k) / g + k, 10) } if (c.height > a[1]) { c.height = a[1]; c.width = parseInt((c.height - k) * g + k, 10) } } else { c.width = Math.min(c.width, a[0]); c.height = Math.min(c.height, a[1]) } c.top = parseInt(Math.max(a[3] - 20, a[3] + (a[1] - c.height - 40) * 0.5), 10); c.left = parseInt(Math.max(a[2] - 20, a[2] + (a[0] - c.width - 40) * 0.5), 10); return c
    }, V = function () {
        var a = e.orig ? b(e.orig) : false, c = {}; if (a && a.length) {
            c = a.offset(); c.top += parseInt(a.css("paddingTop"),
10) || 0; c.left += parseInt(a.css("paddingLeft"), 10) || 0; c.top += parseInt(a.css("border-top-width"), 10) || 0; c.left += parseInt(a.css("border-left-width"), 10) || 0; c.width = a.width(); c.height = a.height(); c = { width: c.width + d.padding * 2, height: c.height + d.padding * 2, top: c.top - d.padding - 20, left: c.left - d.padding - 20}
        } else { a = U(); c = { width: d.padding * 2, height: d.padding * 2, top: parseInt(a[3] + a[1] * 0.5, 10), left: parseInt(a[2] + a[0] * 0.5, 10)} } return c
    }, Z = function () { if (t.is(":visible")) { b("div", t).css("top", L * -40 + "px"); L = (L + 1) % 12 } else clearInterval(K) };
    b.fn.fancybox = function (a) { if (!b(this).length) return this; b(this).data("fancybox", b.extend({}, a, b.metadata ? b(this).metadata() : {})).unbind("click.fb").bind("click.fb", function (c) { c.preventDefault(); if (!h) { h = true; b(this).blur(); o = []; q = 0; c = b(this).attr("rel") || ""; if (!c || c == "" || c === "nofollow") o.push(this); else { o = b("a[rel=" + c + "], area[rel=" + c + "]"); q = o.index(this) } I() } }); return this }; b.fancybox = function (a, c) {
        var g; if (!h) {
            h = true; g = typeof c !== "undefined" ? c : {}; o = []; q = parseInt(g.index, 10) || 0; if (b.isArray(a)) {
                for (var k =
0, C = a.length; k < C; k++) if (typeof a[k] == "object") b(a[k]).data("fancybox", b.extend({}, g, a[k])); else a[k] = b({}).data("fancybox", b.extend({ content: a[k] }, g)); o = jQuery.merge(o, a)
            } else { if (typeof a == "object") b(a).data("fancybox", b.extend({}, g, a)); else a = b({}).data("fancybox", b.extend({ content: a }, g)); o.push(a) } if (q > o.length || q < 0) q = 0; I()
        } 
    }; b.fancybox.showActivity = function () { clearInterval(K); t.show(); K = setInterval(Z, 66) }; b.fancybox.hideActivity = function () { t.hide() }; b.fancybox.next = function () {
        return b.fancybox.pos(p +
1)
    }; b.fancybox.prev = function () { return b.fancybox.pos(p - 1) }; b.fancybox.pos = function (a) { if (!h) { a = parseInt(a); o = l; if (a > -1 && a < l.length) { q = a; I() } else if (d.cyclic && l.length > 1) { q = a >= l.length ? 0 : l.length - 1; I() } } }; b.fancybox.cancel = function () { if (!h) { h = true; b.event.trigger("fancybox-cancel"); N(); e.onCancel(o, q, e); h = false } }; b.fancybox.close = function () {
        function a() { u.fadeOut("fast"); n.empty().hide(); f.hide(); b.event.trigger("fancybox-cleanup"); j.empty(); d.onClosed(l, p, d); l = e = []; p = q = 0; d = e = {}; h = false } if (!(h || f.is(":hidden"))) {
            h =
true; if (d && false === d.onCleanup(l, p, d)) h = false; else {
                N(); b(E.add(z).add(A)).hide(); b(j.add(u)).unbind(); b(window).unbind("resize.fb scroll.fb"); b(document).unbind("keydown.fb"); j.find("iframe").attr("src", M && /^https/i.test(window.location.href || "") ? "javascript:void(false)" : "about:blank"); d.titlePosition !== "inside" && n.empty(); f.stop(); if (d.transitionOut == "elastic") {
                    r = V(); var c = f.position(); i = { top: c.top, left: c.left, width: f.width(), height: f.height() }; if (d.opacity) i.opacity = 1; n.empty().hide(); B.prop = 1;
                    b(B).animate({ prop: 0 }, { duration: d.speedOut, easing: d.easingOut, step: T, complete: a })
                } else f.fadeOut(d.transitionOut == "none" ? 0 : d.speedOut, a)
            } 
        } 
    }; b.fancybox.resize = function () { u.is(":visible") && u.css("height", b(document).height()); b.fancybox.center(true) }; b.fancybox.center = function (a) {
        var c, g; if (!h) {
            g = a === true ? 1 : 0; c = U(); !g && (f.width() > c[0] || f.height() > c[1]) || f.stop().animate({ top: parseInt(Math.max(c[3] - 20, c[3] + (c[1] - j.height() - 40) * 0.5 - d.padding)), left: parseInt(Math.max(c[2] - 20, c[2] + (c[0] - j.width() - 40) * 0.5 -
d.padding))
            }, typeof a == "number" ? a : 200)
        } 
    }; b.fancybox.init = function () {
        if (!b("#fancybox-wrap").length) {
            b("body").append(m = b('<div id="fancybox-tmp"></div>'), t = b('<div id="fancybox-loading"><div></div></div>'), u = b('<div id="fancybox-overlay"></div>'), f = b('<div id="fancybox-wrap"></div>')); D = b('<div id="fancybox-outer"></div>').append('<div class="fancybox-bg" id="fancybox-bg-n"></div><div class="fancybox-bg" id="fancybox-bg-ne"></div><div class="fancybox-bg" id="fancybox-bg-e"></div><div class="fancybox-bg" id="fancybox-bg-se"></div><div class="fancybox-bg" id="fancybox-bg-s"></div><div class="fancybox-bg" id="fancybox-bg-sw"></div><div class="fancybox-bg" id="fancybox-bg-w"></div><div class="fancybox-bg" id="fancybox-bg-nw"></div>').appendTo(f);
            D.append(j = b('<div id="fancybox-content"></div>'), E = b('<a id="fancybox-close"></a>'), n = b('<div id="fancybox-title"></div>'), z = b('<a href="javascript:;" id="fancybox-left"><span class="fancy-ico" id="fancybox-left-ico"></span></a>'), A = b('<a href="javascript:;" id="fancybox-right"><span class="fancy-ico" id="fancybox-right-ico"></span></a>')); E.click(b.fancybox.close); t.click(b.fancybox.cancel); z.click(function (a) { a.preventDefault(); b.fancybox.prev() }); A.click(function (a) { a.preventDefault(); b.fancybox.next() });
            b.fn.mousewheel && f.bind("mousewheel.fb", function (a, c) { if (h) a.preventDefault(); else if (b(a.target).get(0).clientHeight == 0 || b(a.target).get(0).scrollHeight === b(a.target).get(0).clientHeight) { a.preventDefault(); b.fancybox[c > 0 ? "prev" : "next"]() } }); b.support.opacity || f.addClass("fancybox-ie"); if (M) { t.addClass("fancybox-ie6"); f.addClass("fancybox-ie6"); b('<iframe id="fancybox-hide-sel-frame" src="' + (/^https/i.test(window.location.href || "") ? "javascript:void(false)" : "about:blank") + '" scrolling="no" border="0" frameborder="0" tabindex="-1"></iframe>').prependTo(D) } 
        } 
    };
    b.fn.fancybox.defaults = { padding: 10, margin: 40, opacity: false, modal: false, cyclic: false, scrolling: "auto", width: 560, height: 340, autoScale: true, autoDimensions: true, centerOnScroll: false, ajax: {}, swf: { wmode: "transparent" }, hideOnOverlayClick: true, hideOnContentClick: false, overlayShow: true, overlayOpacity: 0.7, overlayColor: "#777", titleShow: true, titlePosition: "float", titleFormat: null, titleFromAlt: false, transitionIn: "fade", transitionOut: "fade", speedIn: 300, speedOut: 300, changeSpeed: 300, changeFade: "fast", easingIn: "swing",
        easingOut: "swing", showCloseButton: true, showNavArrows: true, enableEscapeButton: true, enableKeyboardNav: true, onStart: function () { }, onCancel: function () { }, onComplete: function () { }, onCleanup: function () { }, onClosed: function () { }, onError: function () { } 
    }; b(document).ready(function () { b.fancybox.init() })
})(jQuery);

/**
* hoverIntent r5 // 2007.03.27 // jQuery 1.1.2+
* <http://cherne.net/brian/resources/jquery.hoverIntent.html>
* 
* @param  f  onMouseOver function || An object with configuration options
* @param  g  onMouseOut function  || Nothing (use configuration options object)
* @author    Brian Cherne <brian@cherne.net>
*/
(function ($) { $.fn.hoverIntent = function (f, g) { var cfg = { sensitivity: 7, interval: 100, timeout: 0 }; cfg = $.extend(cfg, g ? { over: f, out: g} : f); var cX, cY, pX, pY; var track = function (ev) { cX = ev.pageX; cY = ev.pageY; }; var compare = function (ev, ob) { ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t); if ((Math.abs(pX - cX) + Math.abs(pY - cY)) < cfg.sensitivity) { $(ob).unbind("mousemove", track); ob.hoverIntent_s = 1; return cfg.over.apply(ob, [ev]); } else { pX = cX; pY = cY; ob.hoverIntent_t = setTimeout(function () { compare(ev, ob); }, cfg.interval); } }; var delay = function (ev, ob) { ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t); ob.hoverIntent_s = 0; return cfg.out.apply(ob, [ev]); }; var handleHover = function (e) { var p = (e.type == "mouseover" ? e.fromElement : e.toElement) || e.relatedTarget; while (p && p != this) { try { p = p.parentNode; } catch (e) { p = this; } } if (p == this) { return false; } var ev = jQuery.extend({}, e); var ob = this; if (ob.hoverIntent_t) { ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t); } if (e.type == "mouseover") { pX = ev.pageX; pY = ev.pageY; $(ob).bind("mousemove", track); if (ob.hoverIntent_s != 1) { ob.hoverIntent_t = setTimeout(function () { compare(ev, ob); }, cfg.interval); } } else { $(ob).unbind("mousemove", track); if (ob.hoverIntent_s == 1) { ob.hoverIntent_t = setTimeout(function () { delay(ev, ob); }, cfg.timeout); } } }; return this.mouseover(handleHover).mouseout(handleHover); }; })(jQuery);

/*======================================================================
PRODUCT:     HUMANIZED MESSAGES 1.0
WEBSITE:     http://humanmsg.googlecode.com
AUTEUR:      ?
======================================================================*/
var humanMsg = {
    setup: function (appendTo, logName, msgOpacity) {
        humanMsg.msgID = 'humanMsg';
        humanMsg.logID = 'humanMsgLog';

        // appendTo is the element the msg is appended to
        if (appendTo == undefined)
            appendTo = 'body';

        // The text on the Log tab
        if (logName == undefined)
            logName = 'Message Log';

        // Opacity of the message
        humanMsg.msgOpacity = .8;

        if (msgOpacity != undefined)
            humanMsg.msgOpacity = parseFloat(msgOpacity);

        // Inject the message structure
        $(appendTo).append('<div id="' + humanMsg.msgID + '" class="humanMsg"><div class="round"></div><p></p><div class="round"></div></div>')

    },

    displayMsg: function (msg) {
        if (msg == '')
            return;

        clearTimeout(humanMsg.t2);

        // Inject message
        $('#' + humanMsg.msgID + ' p').html(msg)

        // Show message
        $('#' + humanMsg.msgID + '').show() //.animate({ opacity: humanMsg.msgOpacity}, 200)

        // Watch for mouse & keyboard in .5s
        humanMsg.t1 = setTimeout("humanMsg.bindEvents()", 700)
        // Remove message after 5s
        //humanMsg.t2 = setTimeout("humanMsg.removeMsg()", 5000)
    },

    bindEvents: function () {
        // Remove message if mouse is moved or key is pressed
        $(window)
        //			.mousemove(humanMsg.removeMsg)
        //			.click(humanMsg.removeMsg)
        //			.keypress(humanMsg.removeMsg)
    },

    removeMsg: function () {
        // Unbind mouse & keyboard
        $(window)
        //.unbind('mousemove', humanMsg.removeMsg)
        //.unbind('click', humanMsg.removeMsg)
        //.unbind('keypress', humanMsg.removeMsg)

        // If message is fully transparent, fade it out
        if ($('#' + humanMsg.msgID).css('opacity') == humanMsg.msgOpacity)
            $('#' + humanMsg.msgID).animate({ opacity: 0 }, 400, function () { $(this).hide() })
    }
};

$(document).ready(function () {
    humanMsg.setup();
})

/*

CUSTOM FORM ELEMENTS

Created by Ryan Fait
www.ryanfait.com

The only things you may need to change in this file are the following
variables: checkboxHeight, radioHeight and selectWidth (lines 24, 25, 26)

The numbers you set for checkboxHeight and radioHeight should be one quarter
of the total height of the image want to use for checkboxes and radio
buttons. Both images should contain the four stages of both inputs stacked
on top of each other in this order: unchecked, unchecked-clicked, checked,
checked-clicked.

You may need to adjust your images a bit if there is a slight vertical
movement during the different stages of the button activation.

The value of selectWidth should be the width of your select list image.

Visit http://ryanfait.com/ for more information.

*/

var checkboxHeight = "25";
var radioHeight = "13";
var selectWidth = "190";


/* No need to change anything after this */

//input.styled { display: none; }
document.write('<style type="text/css">input.styled { display: none; } select.styled { position: relative; width: ' + selectWidth + 'px; opacity: 0; filter: alpha(opacity=0); z-index: 5; } .disabled { opacity: 0.5; filter: alpha(opacity=50); }</style>');

var Custom = {
    init: function () {
        var inputs = document.getElementsByTagName("input"), span = Array(), textnode, option, active;
        for (a = 0; a < inputs.length; a++) {
            if ((inputs[a].type == "checkbox" || inputs[a].type == "radio") && inputs[a].className == "styled") {
                span[a] = document.createElement("span");
                span[a].className = inputs[a].type;

                if (inputs[a].checked == true) {
                    if (inputs[a].type == "checkbox") {
                        position = "0 -" + (checkboxHeight * 2) + "px";
                        span[a].style.backgroundPosition = position;

                    } else {
                        position = "0 -" + (radioHeight * 2) + "px";
                        span[a].style.backgroundPosition = position;
                    }

                }
                inputs[a].parentNode.insertBefore(span[a], inputs[a]);
                inputs[a].onchange = Custom.clear;
                if (!inputs[a].getAttribute("disabled")) {
                    span[a].onmousedown = Custom.pushed;
                    span[a].onmouseup = Custom.check;
                } else {
                    span[a].className = span[a].className += " disabled";
                }
            }
        }
        inputs = document.getElementsByTagName("select");
        for (a = 0; a < inputs.length; a++) {
            if (inputs[a].className == "styled") {
                option = inputs[a].getElementsByTagName("option");
                active = option[0].childNodes[0].nodeValue;
                textnode = document.createTextNode(active);
                for (b = 0; b < option.length; b++) {
                    if (option[b].selected == true) {
                        textnode = document.createTextNode(option[b].childNodes[0].nodeValue);
                    }
                }
                span[a] = document.createElement("span");
                span[a].className = "select";
                span[a].id = "select" + inputs[a].name;
                span[a].appendChild(textnode);
                inputs[a].parentNode.insertBefore(span[a], inputs[a]);
                if (!inputs[a].getAttribute("disabled")) {
                    inputs[a].onchange = Custom.choose;
                } else {
                    inputs[a].previousSibling.className = inputs[a].previousSibling.className += " disabled";
                }
            }
        }
        document.onmouseup = Custom.clear;
    },
    pushed: function () {
        element = this.nextSibling;
        if (element.checked == true && element.type == "checkbox") {
            this.style.backgroundPosition = "0 -" + checkboxHeight * 3 + "px";
        } else if (element.checked == true && element.type == "radio") {
            this.style.backgroundPosition = "0 -" + radioHeight * 3 + "px";
        } else if (element.checked != true && element.type == "checkbox") {
            this.style.backgroundPosition = "0 -" + checkboxHeight + "px";
        } else {
            this.style.backgroundPosition = "0 -" + radioHeight + "px";
        }
    },
    check: function () {
        element = this.nextSibling;

        if (element.checked == true && element.type == "checkbox") {
            this.style.backgroundPosition = "0 0";
            element.checked = false;

            // ******************************************            
            //
            // LET OP: CUSTOM CODE
            // functie om filteraanpassing aan te roepen in productfilter
            //
            // ******************************************      

            if ((element.id.indexOf("VariantOption_") >= 0) || (element.id.indexOf("ManufacturerOption_") >= 0) || (element.id.indexOf("GroupOption_") >= 0)) {
                ChangeFilter()
            }

            // ******************************************            
            //
            // EINDE CUSTOM CODE
            //
            // ******************************************      

        } else {
            if (element.type == "checkbox") {
                this.style.backgroundPosition = "0 -" + checkboxHeight * 2 + "px";
            } else {
                this.style.backgroundPosition = "0 -" + radioHeight * 2 + "px";
                group = this.nextSibling.name;
                inputs = document.getElementsByTagName("input");
                for (a = 0; a < inputs.length; a++) {
                    if (inputs[a].name == group && inputs[a] != this.nextSibling) {
                        inputs[a].previousSibling.style.backgroundPosition = "0 0";
                    }
                }
            }
            element.checked = true;

            // ******************************************            
            //
            // LET OP: CUSTOM CODE
            // functie om filteraanpassing aan te roepen in productfilter
            //
            // ******************************************      

            if ((element.id.indexOf("VariantOption_") >= 0) || (element.id.indexOf("ManufacturerOption_") >= 0) || (element.id.indexOf("GroupOption_") >= 0)) {
                ChangeFilter()
            }

            // ******************************************            
            //
            // EINDE CUSTOM CODE
            //
            // ******************************************      

        }
    },
    clear: function () {
        inputs = document.getElementsByTagName("input");
        for (var b = 0; b < inputs.length; b++) {
            if (inputs[b].type == "checkbox" && inputs[b].checked == true && inputs[b].className == "styled") {
                inputs[b].previousSibling.style.backgroundPosition = "0 -" + checkboxHeight * 2 + "px";
            } else if (inputs[b].type == "checkbox" && inputs[b].className == "styled") {
                inputs[b].previousSibling.style.backgroundPosition = "0 0";
            } else if (inputs[b].type == "radio" && inputs[b].checked == true && inputs[b].className == "styled") {
                inputs[b].previousSibling.style.backgroundPosition = "0 -" + radioHeight * 2 + "px";
            } else if (inputs[b].type == "radio" && inputs[b].className == "styled") {
                inputs[b].previousSibling.style.backgroundPosition = "0 0";
            }
        }
    },
    choose: function () {
        option = this.getElementsByTagName("option");
        for (d = 0; d < option.length; d++) {
            if (option[d].selected == true) {
                document.getElementById("select" + this.name).childNodes[0].nodeValue = option[d].childNodes[0].nodeValue;
                var SelectedName = this.name
                //alert((SelectedName.indexOf("dlMaand") <= 0));
                if ((SelectedName.indexOf("dlMaand") <= 0) && (SelectedName.indexOf("dlJaar") <= 0)) {
                    PushProductVariants();
                }
                if ((SelectedName.indexOf("dlMaand") >= 0) || (SelectedName.indexOf("dlJaar") >= 0)) {
                    ChangeDeliveryDate();
                }
            }
        }

    }
}
window.onload = Custom.init;



(function ($) {
    $.fn.validationEngineLanguage = function () { };
    $.validationEngineLanguage = {
        newLang: function () {
            $.validationEngineLanguage.allRules = { "required": {    			// Add your regex rules here, you can take telephone as an example
                "regex": "none",
                "alertText": "* Dit veld is verplicht",
                "alertTextCheckboxMultiple": "* Maak een selectie",
                "alertTextCheckboxe": "* Deze optie is verplicht"
            },
                "length": {
                    "regex": "none",
                    "alertText": "*Tussen ",
                    "alertText2": " en ",
                    "alertText3": " karakters toegestaan"
                },
                "maxCheckbox": {
                    "regex": "none",
                    "alertText": "* Keuze opties overschreden"
                },
                "minCheckbox": {
                    "regex": "none",
                    "alertText": "* Selecteer ",
                    "alertText2": " keuzes"
                },
                "confirm": {
                    "regex": "none",
                    "alertText": "* De invoer matcht niet"
                },
                "telephone": {
                    "regex": "/^[0-9\-\(\)\ ]+$/",
                    "alertText": "* Incorrect telefoonnummer"
                },
                "email": {
                    "regex": "/^[a-zA-Z0-9_\.\-]+\@([a-zA-Z0-9\-]+\.)+[a-zA-Z0-9]{2,4}$/",
                    "alertText": "* Incorrect e-mailadres"
                },
                "date": {
                    "regex": "/^[0-9]{1,2}\-\[0-9]{1,2}\-\[0-9]{4}$/",
                    "alertText": "* Incorrecte datum, moet in  DD-MM-YYYY formaat zijn"
                },
                "onlyNumber": {
                    "regex": "/^[0-9\ ]+$/",
                    "alertText": "* Alleen cijfers"
                },
                "noSpecialCaracters": {
                    "regex": "/^[0-9a-zA-Z]+$/",
                    "alertText": "* Geen speciale tekens toegestaan"
                },
                "ajaxUser": {
                    "file": "validateUser.php",
                    "extraData": "name=eric",
                    "alertTextOk": "* Deze gebruiker is beschikbaar",
                    "alertTextLoad": "* Laadt, even geduld a.u.b.",
                    "alertText": "* Deze gebruiker bestaat al"
                },
                "ajaxName": {
                    "file": "validateUser.php",
                    "alertText": "* Deze naam is al in gebruik",
                    "alertTextOk": "* Deze naam is beschikbaar",
                    "alertTextLoad": "* Laadt, even geduld a.u.b."
                },
                "onlyLetter": {
                    "regex": "/^[a-zA-Z\ \']+$/",
                    "alertText": "* Alleen letters"
                },
                "validate2fields": {
                    "nname": "validate2fields",
                    "alertText": "* U moet een voor- en achternaam invoeren"
                },
                "zipcode": {
                    "regex": "/^[0-9]{4}[ ]{0,1}[a-z|A-Z]{2}$/",
                    "alertText": "Incorrecte postcode"
                }
            }
        }
    }
})(jQuery);

$(document).ready(function () {
    $.validationEngineLanguage.newLang()
});

/*
* Inline Form Validation Engine 1.7, jQuery plugin
* 
* Copyright(c) 2010, Cedric Dugas
* http://www.position-relative.net
*	http://www.position-absolute.com/articles/jquery-form-validator-because-form-validation-is-a-mess/
* Form validation engine allowing custom regex rules to be added.
* Thanks to Francois Duquette and Teddy Limousin 
* and everyone helping me find bugs on the forum
* Licenced under the MIT Licence
*/
var skipvalidation = false;
(function ($) {

    $.fn.validationEngine = function (settings) {

        if ($.validationEngineLanguage) {				// IS THERE A LANGUAGE LOCALISATION ?
            allRules = $.validationEngineLanguage.allRules;
        } else {
            $.validationEngine.debug("Validation engine rules are not loaded check your external file");
        }
        settings = jQuery.extend({
            allrules: allRules,
            validationEventTriggers: "focusout",
            inlineValidation: true,
            returnIsValid: false,
            liveEvent: true,
            unbindEngine: true,
            containerOverflow: false,
            containerOverflowDOM: "",
            ajaxSubmit: false,
            scroll: true,
            promptPosition: "topRight", // OPENNING BOX POSITION, IMPLEMENTED: topLeft, topRight, bottomLeft, centerRight, bottomRight
            success: false,
            beforeSuccess: function () { },
            failure: function () { }
        }, settings);
        $.validationEngine.settings = settings;
        $.validationEngine.ajaxValidArray = new Array(); // ARRAY FOR AJAX: VALIDATION MEMORY 

        if (settings.inlineValidation == true) { 		// Validating Inline ?
            if (!settings.returnIsValid) {					// NEEDED FOR THE SETTING returnIsValid
                allowReturnIsvalid = false;
                if (settings.liveEvent) {						// LIVE event, vast performance improvement over BIND
                    $(this).find("[class*=validate][type!=checkbox]").live(settings.validationEventTriggers, function (caller) { _inlinEvent(this); })
                    $(this).find("[class*=validate][type=checkbox]").live("click", function (caller) { _inlinEvent(this); })
                } else {
                    $(this).find("[class*=validate]").not("[type=checkbox]").bind(settings.validationEventTriggers, function (caller) { _inlinEvent(this); })
                    $(this).find("[class*=validate][type=checkbox]").bind("click", function (caller) { _inlinEvent(this); })
                }
                firstvalid = false;
            }
            function _inlinEvent(caller) {
                $.validationEngine.settings = settings;
                if ($.validationEngine.intercept == false || !$.validationEngine.intercept) {		// STOP INLINE VALIDATION THIS TIME ONLY
                    $.validationEngine.onSubmitValid = false;
                    $.validationEngine.loadValidation(caller);
                } else {
                    $.validationEngine.intercept = false;
                }
            }
        }
        if (settings.returnIsValid) {		// Do validation and return true or false, it bypass everything;
            if ($.validationEngine.submitValidation(this, settings)) {
                return false;
            } else {
                return true;
            }
        }
        $(this).bind("submit", function (caller) {   // ON FORM SUBMIT, CONTROL AJAX FUNCTION IF SPECIFIED ON DOCUMENT READY
            if (skipvalidation) return true;
            $.validationEngine.onSubmitValid = true;
            $.validationEngine.settings = settings;
            if ($.validationEngine.submitValidation(this, settings) == false) {
                if ($.validationEngine.submitForm(this, settings) == true) return false;
            } else {
                settings.failure && settings.failure();
                return false;
            }
        })
        $(".formError").live("click", function () {	 // REMOVE BOX ON CLICK
            $(this).fadeOut(150, function () { $(this).remove() })
        })
    };
    $.validationEngine = {
        defaultSetting: function (caller) {		// NOT GENERALLY USED, NEEDED FOR THE API, DO NOT TOUCH
            if ($.validationEngineLanguage) {
                allRules = $.validationEngineLanguage.allRules;
            } else {
                $.validationEngine.debug("Validation engine rules are not loaded check your external file");
            }
            settings = {
                allrules: allRules,
                validationEventTriggers: "blur",
                inlineValidation: true,
                containerOverflow: false,
                containerOverflowDOM: "",
                returnIsValid: false,
                scroll: true,
                unbindEngine: true,
                ajaxSubmit: false,
                promptPosition: "topRight", // OPENNING BOX POSITION, IMPLEMENTED: topLeft, topRight, bottomLeft, centerRight, bottomRight
                success: false,
                failure: function () { }
            }
            $.validationEngine.settings = settings;
        },
        loadValidation: function (caller) {		// GET VALIDATIONS TO BE EXECUTED
            if (!$.validationEngine.settings) $.validationEngine.defaultSetting()
            rulesParsing = $(caller).attr('class');
            rulesRegExp = /\[(.*)\]/;
            getRules = rulesRegExp.exec(rulesParsing);
            if (getRules == null) return false;
            str = getRules[1];
            pattern = /\[|,|\]/;
            result = str.split(pattern);
            var validateCalll = $.validationEngine.validateCall(caller, result)
            return validateCalll;
        },
        validateCall: function (caller, rules) {	// EXECUTE VALIDATION REQUIRED BY THE USER FOR THIS FIELD
            var promptText = ""

            if (!$(caller).attr("id")) $.validationEngine.debug("This field have no ID attribut( name & class displayed): " + $(caller).attr("name") + " " + $(caller).attr("class"))

            caller = caller;
            ajaxValidate = false;
            var callerName = $(caller).attr("name");
            $.validationEngine.isError = false;
            $.validationEngine.showTriangle = true;
            callerType = $(caller).attr("type");

            for (i = 0; i < rules.length; i++) {
                switch (rules[i]) {
                    case "optional":
                        if (!$(caller).val()) {
                            $.validationEngine.closePrompt(caller);
                            return $.validationEngine.isError;
                        }
                        break;
                    case "required":
                        _required(caller, rules);
                        break;
                    case "custom":
                        _customRegex(caller, rules, i);
                        break;
                    case "exemptString":
                        _exemptString(caller, rules, i);
                        break;
                    case "ajax":
                        if (!$.validationEngine.onSubmitValid) _ajax(caller, rules, i);
                        break;
                    case "length":
                        _length(caller, rules, i);
                        break;
                    case "maxCheckbox":
                        _maxCheckbox(caller, rules, i);
                        groupname = $(caller).attr("name");
                        caller = $("input[name='" + groupname + "']");
                        break;
                    case "minCheckbox":
                        _minCheckbox(caller, rules, i);
                        groupname = $(caller).attr("name");
                        caller = $("input[name='" + groupname + "']");
                        break;
                    case "confirm":
                        _confirm(caller, rules, i);
                        break;
                    case "funcCall":
                        _funcCall(caller, rules, i);
                        break;
                    default: ;
                };
            };
            radioHack();
            if ($.validationEngine.isError == true) {
                var linkTofieldText = "." + $.validationEngine.linkTofield(caller);
                if (linkTofieldText != ".") {
                    if (!$(linkTofieldText)[0]) {
                        $.validationEngine.buildPrompt(caller, promptText, "error")
                    } else {
                        $.validationEngine.updatePromptText(caller, promptText);
                    }
                } else {
                    $.validationEngine.updatePromptText(caller, promptText);
                }
            } else {
                $.validationEngine.closePrompt(caller);
            }
            /* UNFORTUNATE RADIO AND CHECKBOX GROUP HACKS */
            /* As my validation is looping input with id's we need a hack for my validation to understand to group these inputs */
            function radioHack() {
                if ($("input[name='" + callerName + "']").size() > 1 && (callerType == "radio" || callerType == "checkbox")) {        // Hack for radio/checkbox group button, the validation go the first radio/checkbox of the group
                    caller = $("input[name='" + callerName + "'][type!=hidden]:first");
                    $.validationEngine.showTriangle = false;
                }
            }
            /* VALIDATION FUNCTIONS */
            function _required(caller, rules) {   // VALIDATE BLANK FIELD
                callerType = $(caller).attr("type");
                if (callerType == "text" || callerType == "password" || callerType == "textarea") {

                    if (!$(caller).val()) {
                        $.validationEngine.isError = true;
                        promptText += $.validationEngine.settings.allrules[rules[i]].alertText + "<br />";
                    }
                }
                if (callerType == "radio" || callerType == "checkbox") {
                    callerName = $(caller).attr("name");

                    if ($("input[name='" + callerName + "']:checked").size() == 0) {
                        $.validationEngine.isError = true;
                        if ($("input[name='" + callerName + "']").size() == 1) {
                            promptText += $.validationEngine.settings.allrules[rules[i]].alertTextCheckboxe + "<br />";
                        } else {
                            promptText += $.validationEngine.settings.allrules[rules[i]].alertTextCheckboxMultiple + "<br />";
                        }
                    }
                }
                if (callerType == "select-one") { // added by paul@kinetek.net for select boxes, Thank you		
                    if (!$(caller).val()) {
                        $.validationEngine.isError = true;
                        promptText += $.validationEngine.settings.allrules[rules[i]].alertText + "<br />";
                    }
                }
                if (callerType == "select-multiple") { // added by paul@kinetek.net for select boxes, Thank you	
                    if (!$(caller).find("option:selected").val()) {
                        $.validationEngine.isError = true;
                        promptText += $.validationEngine.settings.allrules[rules[i]].alertText + "<br />";
                    }
                }
            }
            function _customRegex(caller, rules, position) {		 // VALIDATE REGEX RULES
                customRule = rules[position + 1];
                pattern = eval($.validationEngine.settings.allrules[customRule].regex);

                if (!pattern.test($(caller).attr('value'))) {
                    $.validationEngine.isError = true;
                    promptText += $.validationEngine.settings.allrules[customRule].alertText + "<br />";
                }
            }
            function _exemptString(caller, rules, position) {		 // VALIDATE REGEX RULES
                customString = rules[position + 1];
                if (customString == $(caller).attr('value')) {
                    $.validationEngine.isError = true;
                    promptText += $.validationEngine.settings.allrules['required'].alertText + "<br />";
                }
            }

            function _funcCall(caller, rules, position) {  		// VALIDATE CUSTOM FUNCTIONS OUTSIDE OF THE ENGINE SCOPE
                customRule = rules[position + 1];
                funce = $.validationEngine.settings.allrules[customRule].nname;

                var fn = window[funce];
                if (typeof (fn) === 'function') {
                    var fn_result = fn();
                    if (!fn_result) {
                        $.validationEngine.isError = true;
                    }

                    promptText += $.validationEngine.settings.allrules[customRule].alertText + "<br />";
                }
            }
            function _ajax(caller, rules, position) {				 // VALIDATE AJAX RULES

                customAjaxRule = rules[position + 1];
                postfile = $.validationEngine.settings.allrules[customAjaxRule].file;
                fieldValue = $(caller).val();
                ajaxCaller = caller;
                fieldId = $(caller).attr("id");
                ajaxValidate = true;
                ajaxisError = $.validationEngine.isError;

                if ($.validationEngine.settings.allrules[customAjaxRule].extraData) {
                    extraData = $.validationEngine.settings.allrules[customAjaxRule].extraData;
                } else {
                    extraData = "";
                }
                /* AJAX VALIDATION HAS ITS OWN UPDATE AND BUILD UNLIKE OTHER RULES */
                if (!ajaxisError) {
                    $.ajax({
                        type: "POST",
                        url: postfile,
                        async: true,
                        data: "validateValue=" + fieldValue + "&validateId=" + fieldId + "&validateError=" + customAjaxRule + "&extraData=" + extraData,
                        beforeSend: function () {		// BUILD A LOADING PROMPT IF LOAD TEXT EXIST		   			
                            if ($.validationEngine.settings.allrules[customAjaxRule].alertTextLoad) {

                                if (!$("div." + fieldId + "formError")[0]) {
                                    return $.validationEngine.buildPrompt(ajaxCaller, $.validationEngine.settings.allrules[customAjaxRule].alertTextLoad, "load");
                                } else {
                                    $.validationEngine.updatePromptText(ajaxCaller, $.validationEngine.settings.allrules[customAjaxRule].alertTextLoad, "load");
                                }
                            }
                        },
                        error: function (data, transport) { $.validationEngine.debug("error in the ajax: " + data.status + " " + transport) },
                        success: function (data) {					// GET SUCCESS DATA RETURN JSON
                            data = eval("(" + data + ")"); 			// GET JSON DATA FROM PHP AND PARSE IT
                            ajaxisError = data.jsonValidateReturn[2];
                            customAjaxRule = data.jsonValidateReturn[1];
                            ajaxCaller = $("#" + data.jsonValidateReturn[0])[0];
                            fieldId = ajaxCaller;
                            ajaxErrorLength = $.validationEngine.ajaxValidArray.length;
                            existInarray = false;

                            if (ajaxisError == "false") {			// DATA FALSE UPDATE PROMPT WITH ERROR;

                                _checkInArray(false)				// Check if ajax validation alreay used on this field

                                if (!existInarray) {		 			// Add ajax error to stop submit		 		
                                    $.validationEngine.ajaxValidArray[ajaxErrorLength] = new Array(2);
                                    $.validationEngine.ajaxValidArray[ajaxErrorLength][0] = fieldId;
                                    $.validationEngine.ajaxValidArray[ajaxErrorLength][1] = false;
                                    existInarray = false;
                                }

                                $.validationEngine.ajaxValid = false;
                                promptText += $.validationEngine.settings.allrules[customAjaxRule].alertText + "<br />";
                                $.validationEngine.updatePromptText(ajaxCaller, promptText, "", true);
                            } else {
                                _checkInArray(true);
                                $.validationEngine.ajaxValid = true;
                                if (!customAjaxRule) { $.validationEngine.debug("wrong ajax response, are you on a server or in xampp? if not delete de ajax[ajaxUser] validating rule from your form ") }
                                if ($.validationEngine.settings.allrules[customAjaxRule].alertTextOk) {	// NO OK TEXT MEAN CLOSE PROMPT	 			
                                    $.validationEngine.updatePromptText(ajaxCaller, $.validationEngine.settings.allrules[customAjaxRule].alertTextOk, "pass", true);
                                } else {
                                    ajaxValidate = false;
                                    $.validationEngine.closePrompt(ajaxCaller);
                                }
                            }
                            function _checkInArray(validate) {
                                for (x = 0; x < ajaxErrorLength; x++) {
                                    if ($.validationEngine.ajaxValidArray[x][0] == fieldId) {
                                        $.validationEngine.ajaxValidArray[x][1] = validate;
                                        existInarray = true;

                                    }
                                }
                            }
                        }
                    });
                }
            }
            function _confirm(caller, rules, position) {		 // VALIDATE FIELD MATCH
                confirmField = rules[position + 1];

                if ($(caller).attr('value') != $("#" + confirmField).attr('value')) {
                    $.validationEngine.isError = true;
                    promptText += $.validationEngine.settings.allrules["confirm"].alertText + "<br />";
                }
            }
            function _length(caller, rules, position) {    	  // VALIDATE LENGTH

                startLength = eval(rules[position + 1]);
                endLength = eval(rules[position + 2]);
                feildLength = $(caller).attr('value').length;

                if (feildLength < startLength || feildLength > endLength) {
                    $.validationEngine.isError = true;
                    promptText += $.validationEngine.settings.allrules["length"].alertText + startLength + $.validationEngine.settings.allrules["length"].alertText2 + endLength + $.validationEngine.settings.allrules["length"].alertText3 + "<br />"
                }
            }
            function _maxCheckbox(caller, rules, position) {  	  // VALIDATE CHECKBOX NUMBER

                nbCheck = eval(rules[position + 1]);
                groupname = $(caller).attr("name");
                groupSize = $("input[name='" + groupname + "']:checked").size();
                if (groupSize > nbCheck) {
                    $.validationEngine.showTriangle = false;
                    $.validationEngine.isError = true;
                    promptText += $.validationEngine.settings.allrules["maxCheckbox"].alertText + "<br />";
                }
            }
            function _minCheckbox(caller, rules, position) {  	  // VALIDATE CHECKBOX NUMBER

                nbCheck = eval(rules[position + 1]);
                groupname = $(caller).attr("name");
                groupSize = $("input[name='" + groupname + "']:checked").size();
                if (groupSize < nbCheck) {

                    $.validationEngine.isError = true;
                    $.validationEngine.showTriangle = false;
                    promptText += $.validationEngine.settings.allrules["minCheckbox"].alertText + " " + nbCheck + " " + $.validationEngine.settings.allrules["minCheckbox"].alertText2 + "<br />";
                }
            }
            return ($.validationEngine.isError) ? $.validationEngine.isError : false;
        },
        submitForm: function (caller) {
            if ($.validationEngine.settings.ajaxSubmit) {
                if ($.validationEngine.settings.ajaxSubmitExtraData) {
                    extraData = $.validationEngine.settings.ajaxSubmitExtraData;
                } else {
                    extraData = "";
                }
                $.ajax({
                    type: "POST",
                    url: $.validationEngine.settings.ajaxSubmitFile,
                    async: true,
                    data: $(caller).serialize() + "&" + extraData,
                    error: function (data, transport) { $.validationEngine.debug("error in the ajax: " + data.status + " " + transport) },
                    success: function (data) {
                        if (data == "true") {			// EVERYTING IS FINE, SHOW SUCCESS MESSAGE
                            $(caller).css("opacity", 1)
                            $(caller).animate({ opacity: 0, height: 0 }, function () {
                                $(caller).css("display", "none");
                                $(caller).before("<div class='ajaxSubmit'>" + $.validationEngine.settings.ajaxSubmitMessage + "</div>");
                                $.validationEngine.closePrompt(".formError", true);
                                $(".ajaxSubmit").show("slow");
                                if ($.validationEngine.settings.success) {	// AJAX SUCCESS, STOP THE LOCATION UPDATE
                                    $.validationEngine.settings.success && $.validationEngine.settings.success();
                                    return false;
                                }
                            })
                        } else {						// HOUSTON WE GOT A PROBLEM (SOMETING IS NOT VALIDATING)
                            data = eval("(" + data + ")");
                            if (!data.jsonValidateReturn) {
                                $.validationEngine.debug("you are not going into the success fonction and jsonValidateReturn return nothing");
                            }
                            errorNumber = data.jsonValidateReturn.length
                            for (index = 0; index < errorNumber; index++) {
                                fieldId = data.jsonValidateReturn[index][0];
                                promptError = data.jsonValidateReturn[index][1];
                                type = data.jsonValidateReturn[index][2];
                                $.validationEngine.buildPrompt(fieldId, promptError, type);
                            }
                        }
                    }
                })
                return true;
            }
            // LOOK FOR BEFORE SUCCESS METHOD		
            if (!$.validationEngine.settings.beforeSuccess()) {
                if ($.validationEngine.settings.success) {	// AJAX SUCCESS, STOP THE LOCATION UPDATE
                    if ($.validationEngine.settings.unbindEngine) { $(caller).unbind("submit") }
                    $.validationEngine.settings.success && $.validationEngine.settings.success();
                    return true;
                }
            } else {
                return true;
            }
            return false;
        },
        buildPrompt: function (caller, promptText, type, ajaxed) {			// ERROR PROMPT CREATION AND DISPLAY WHEN AN ERROR OCCUR
            if (!$.validationEngine.settings) {
                $.validationEngine.defaultSetting()
            }
            deleteItself = "." + $(caller).attr("id") + "formError"

            if ($(deleteItself)[0]) {
                $(deleteItself).stop();
                $(deleteItself).remove();
            }
            var divFormError = document.createElement('div');
            var formErrorContent = document.createElement('div');
            linkTofield = $.validationEngine.linkTofield(caller)
            $(divFormError).addClass("formError")

            if (type == "pass") $(divFormError).addClass("greenPopup")
            if (type == "load") $(divFormError).addClass("blackPopup")
            if (ajaxed) $(divFormError).addClass("ajaxed")

            $(divFormError).addClass(linkTofield);
            $(formErrorContent).addClass("formErrorContent");

            if ($.validationEngine.settings.containerOverflow) {		// Is the form contained in an overflown container?
                $(caller).before(divFormError);
            } else {
                $("body").append(divFormError);
            }

            $(divFormError).append(formErrorContent);

            if ($.validationEngine.showTriangle != false) {		// NO TRIANGLE ON MAX CHECKBOX AND RADIO
                var arrow = document.createElement('div');
                $(arrow).addClass("formErrorArrow");
                $(divFormError).append(arrow);
                if ($.validationEngine.settings.promptPosition == "bottomLeft" || $.validationEngine.settings.promptPosition == "bottomRight") {
                    $(arrow).addClass("formErrorArrowBottom")
                    $(arrow).html('<div class="line1"><!-- --></div><div class="line2"><!-- --></div><div class="line3"><!-- --></div><div class="line4"><!-- --></div><div class="line5"><!-- --></div><div class="line6"><!-- --></div><div class="line7"><!-- --></div><div class="line8"><!-- --></div><div class="line9"><!-- --></div><div class="line10"><!-- --></div>');
                }
                if ($.validationEngine.settings.promptPosition == "topLeft" || $.validationEngine.settings.promptPosition == "topRight") {
                    $(divFormError).append(arrow);
                    $(arrow).html('<div class="line10"><!-- --></div><div class="line9"><!-- --></div><div class="line8"><!-- --></div><div class="line7"><!-- --></div><div class="line6"><!-- --></div><div class="line5"><!-- --></div><div class="line4"><!-- --></div><div class="line3"><!-- --></div><div class="line2"><!-- --></div><div class="line1"><!-- --></div>');
                }
            }
            $(formErrorContent).html(promptText)

            var calculatedPosition = $.validationEngine.calculatePosition(caller, promptText, type, ajaxed, divFormError)

            calculatedPosition.callerTopPosition += "px";
            calculatedPosition.callerleftPosition += "px";
            calculatedPosition.marginTopSize += "px"
            $(divFormError).css({
                "top": calculatedPosition.callerTopPosition,
                "left": calculatedPosition.callerleftPosition,
                "marginTop": calculatedPosition.marginTopSize,
                "opacity": 0
            })
            return $(divFormError).animate({ "opacity": 0.87 }, function () { return true; });
        },
        updatePromptText: function (caller, promptText, type, ajaxed) {	// UPDATE TEXT ERROR IF AN ERROR IS ALREADY DISPLAYED

            linkTofield = $.validationEngine.linkTofield(caller);
            var updateThisPrompt = "." + linkTofield;

            if (type == "pass") { $(updateThisPrompt).addClass("greenPopup") } else { $(updateThisPrompt).removeClass("greenPopup") };
            if (type == "load") { $(updateThisPrompt).addClass("blackPopup") } else { $(updateThisPrompt).removeClass("blackPopup") };
            if (ajaxed) { $(updateThisPrompt).addClass("ajaxed") } else { $(updateThisPrompt).removeClass("ajaxed") };

            $(updateThisPrompt).find(".formErrorContent").html(promptText);

            var calculatedPosition = $.validationEngine.calculatePosition(caller, promptText, type, ajaxed, updateThisPrompt)

            calculatedPosition.callerTopPosition += "px";
            calculatedPosition.callerleftPosition += "px";
            calculatedPosition.marginTopSize += "px"
            $(updateThisPrompt).animate({ "top": calculatedPosition.callerTopPosition, "marginTop": calculatedPosition.marginTopSize });
        },
        calculatePosition: function (caller, promptText, type, ajaxed, divFormError) {

            if ($.validationEngine.settings.containerOverflow) {		// Is the form contained in an overflown container?
                callerTopPosition = 0;
                callerleftPosition = 0;
                callerWidth = $(caller).width();
                inputHeight = $(divFormError).height(); 				// compasation for the triangle
                var marginTopSize = "-" + inputHeight;
            } else {
                callerTopPosition = $(caller).offset().top;
                callerleftPosition = $(caller).offset().left;
                callerWidth = $(caller).width();
                inputHeight = $(divFormError).height();
                var marginTopSize = 0;
            }

            /* POSITIONNING */
            if ($.validationEngine.settings.promptPosition == "topRight") {
                if ($.validationEngine.settings.containerOverflow) {		// Is the form contained in an overflown container?
                    callerleftPosition += callerWidth - 30;
                } else {
                    callerleftPosition += callerWidth - 30;
                    callerTopPosition += -inputHeight;
                }
            }
            if ($.validationEngine.settings.promptPosition == "topLeft") { callerTopPosition += -inputHeight - 10; }

            if ($.validationEngine.settings.promptPosition == "centerRight") { callerleftPosition += callerWidth + 13; }

            if ($.validationEngine.settings.promptPosition == "bottomLeft") {
                callerHeight = $(caller).height();
                callerTopPosition = callerTopPosition + callerHeight + 15;
            }
            if ($.validationEngine.settings.promptPosition == "bottomRight") {
                callerHeight = $(caller).height();
                callerleftPosition += callerWidth - 30;
                callerTopPosition += callerHeight + 5;
            }
            return {
                "callerTopPosition": callerTopPosition,
                "callerleftPosition": callerleftPosition,
                "marginTopSize": marginTopSize
            }
        },
        linkTofield: function (caller) {
            var linkTofield = $(caller).attr("id") + "formError";
            linkTofield = linkTofield.replace(/\[/g, "");
            linkTofield = linkTofield.replace(/\]/g, "");
            return linkTofield;
        },
        closePrompt: function (caller, outside) {						// CLOSE PROMPT WHEN ERROR CORRECTED
            if (!$.validationEngine.settings) {
                $.validationEngine.defaultSetting()
            }
            if (outside) {
                $(caller).fadeTo("fast", 0, function () {
                    $(caller).remove();
                });
                return false;
            }
            if (typeof (ajaxValidate) == 'undefined') { ajaxValidate = false }
            if (!ajaxValidate) {
                linkTofield = $.validationEngine.linkTofield(caller);
                closingPrompt = "." + linkTofield;
                $(closingPrompt).fadeTo("fast", 0, function () {
                    $(closingPrompt).remove();
                });
            }
        },
        debug: function (error) {
            if (!$("#debugMode")[0]) {
                $("body").append("<div id='debugMode'><div class='debugError'><strong>This is a debug mode, you got a problem with your form, it will try to help you, refresh when you think you nailed down the problem</strong></div></div>");
            }
            $(".debugError").append("<div class='debugerror'>" + error + "</div>");
        },
        submitValidation: function (caller) {					// FORM SUBMIT VALIDATION LOOPING INLINE VALIDATION
            var stopForm = false;
            $.validationEngine.ajaxValid = true;
            var toValidateSize = $(caller).find("[class*=validate]").size();

            $(caller).find("[class*=validate]").each(function () {
                linkTofield = $.validationEngine.linkTofield(this);

                if (!$("." + linkTofield).hasClass("ajaxed")) {	// DO NOT UPDATE ALREADY AJAXED FIELDS (only happen if no normal errors, don't worry)
                    var validationPass = $.validationEngine.loadValidation(this);
                    return (validationPass) ? stopForm = true : "";
                };
            });
            ajaxErrorLength = $.validationEngine.ajaxValidArray.length; 	// LOOK IF SOME AJAX IS NOT VALIDATE
            for (x = 0; x < ajaxErrorLength; x++) {
                if ($.validationEngine.ajaxValidArray[x][1] == false) $.validationEngine.ajaxValid = false;
            }
            if (stopForm || !$.validationEngine.ajaxValid) {		// GET IF THERE IS AN ERROR OR NOT FROM THIS VALIDATION FUNCTIONS
                if ($.validationEngine.settings.scroll) {
                    if (!$.validationEngine.settings.containerOverflow) {
                        var destination = $(".formError:not('.greenPopup'):first").offset().top;
                        $(".formError:not('.greenPopup')").each(function () {
                            testDestination = $(this).offset().top;
                            if (destination > testDestination) destination = $(this).offset().top;
                        })
                        $("html:not(:animated),body:not(:animated)").animate({ scrollTop: destination }, 1100);
                    } else {
                        var destination = $(".formError:not('.greenPopup'):first").offset().top;
                        var scrollContainerScroll = $($.validationEngine.settings.containerOverflowDOM).scrollTop();
                        var scrollContainerPos = -parseInt($($.validationEngine.settings.containerOverflowDOM).offset().top);
                        var destination = scrollContainerScroll + destination + scrollContainerPos - 5
                        var scrollContainer = $.validationEngine.settings.containerOverflowDOM + ":not(:animated)"

                        $(scrollContainer).animate({ scrollTop: destination }, 1100);
                    }
                }
                return true;
            } else {
                return false;
            }
        }
    }
})(jQuery);

//-------------------------------------------------
//		Quick Pager jquery plugin
//		Created by dan@geckonm.com
//		www.geckonewmedia.com
// 
//-------------------------------------------------

(function ($) {

    $.fn.quickPager = function (options) {

        var defaults = {
            pageSize: 10,
            currentPage: 1,
            holder: ""
        };
        var options = $.extend(defaults, options);


        //leave this
        var selector = $(this);
        var totalRecords = $(this).children().length;
        var pageCounter = 1;

        selector.children().each(function (i) {
            if (i < pageCounter * options.pageSize && i >= (pageCounter - 1) * options.pageSize) {
                $(this).addClass("page" + pageCounter);
            }
            else {
                $(this).addClass("page" + (pageCounter + 1));
                pageCounter++;
            }
        });

        //show/hide the appropriate regions 
        selector.children().hide();
        $(".page" + options.currentPage).show();

        //first check if there is more than one page. If so, build nav
        if (pageCounter > 1) {

            //Build pager navigation
            var pageNav = "<ul class='pageNav'>";
            for (i = 1; i <= pageCounter; i++) {


                if (i == options.currentPage) {
                    pageNav += "<li class=currentPage pageNav" + i + "'><a rel='" + i + "' href='#'>" + i + "</a></li>";
                }
                else {
                    pageNav += "<li class='pageNav" + i + "'><a rel='" + i + "' href='#'>" + i + "</a></li>";
                }

            }

            pageNav += "</ul>";

            if (options.holder == "") {
                selector.after(pageNav);
            }
            else {
                $(options.holder).append(pageNav);
            }

            //pager navigation behaviour
            $(".pageNav a").live("click", function () {
                //grab the REL attribute 
                var clickedLink = $(this).attr("rel");
                options.currentPage = clickedLink;
                //remove current current (!) page
                $("li.currentPage").removeClass("currentPage");
                //Add current page highlighting
                $("ul.pageNav").find("a[rel='" + clickedLink + "']").parent("li").addClass("currentPage");
                //$(this).parent("li").addClass("currentPage");
                //hide and show relevant links				
                selector.children().hide();
                selector.find(".page" + clickedLink).show();
                return false;
            });

        }

    }


})(jQuery);


//////////////////////////////////////////////////////////////////////////////////
// Cloud Zoom V1.0.2
// (c) 2010 by R Cecco. <http://www.professorcloud.com>
// MIT License
//
// Please retain this copyright header in all versions of the software
//////////////////////////////////////////////////////////////////////////////////
(function ($) { $(document).ready(function () { $('.cloud-zoom, .cloud-zoom-gallery').CloudZoom() }); function format(str) { for (var i = 1; i < arguments.length; i++) { str = str.replace('%' + (i - 1), arguments[i]) } return str } function CloudZoom(jWin, opts) { var sImg = $('img', jWin); var img1; var img2; var zoomDiv = null; var $mouseTrap = null; var lens = null; var $tint = null; var softFocus = null; var $ie6Fix = null; var zoomImage; var controlTimer = 0; var cw, ch; var destU = 0; var destV = 0; var currV = 0; var currU = 0; var filesLoaded = 0; var mx, my; var ctx = this, zw; setTimeout(function () { if ($mouseTrap === null) { var w = jWin.width(); jWin.parent().append(format('<div style="width:%0px;position:absolute;top:75%;left:%1px;text-align:center" class="cloud-zoom-loading" >Loading...</div>', w / 3, (w / 2) - (w / 6))).find(':last').css('opacity', 0.5) } }, 200); var ie6FixRemove = function () { if ($ie6Fix !== null) { $ie6Fix.remove(); $ie6Fix = null } }; this.removeBits = function () { if (lens) { lens.remove(); lens = null } if ($tint) { $tint.remove(); $tint = null } if (softFocus) { softFocus.remove(); softFocus = null } ie6FixRemove(); $('.cloud-zoom-loading', jWin.parent()).remove() }; this.destroy = function () { jWin.data('zoom', null); if ($mouseTrap) { $mouseTrap.unbind(); $mouseTrap.remove(); $mouseTrap = null } if (zoomDiv) { zoomDiv.remove(); zoomDiv = null } this.removeBits() }; this.fadedOut = function () { if (zoomDiv) { zoomDiv.remove(); zoomDiv = null } this.removeBits() }; this.controlLoop = function () { if (lens) { var x = (mx - sImg.offset().left - (cw * 0.5)) >> 0; var y = (my - sImg.offset().top - (ch * 0.5)) >> 0; if (x < 0) { x = 0 } else if (x > (sImg.outerWidth() - cw)) { x = (sImg.outerWidth() - cw) } if (y < 0) { y = 0 } else if (y > (sImg.outerHeight() - ch)) { y = (sImg.outerHeight() - ch) } lens.css({ left: x, top: y }); lens.css('background-position', (-x) + 'px ' + (-y) + 'px'); destU = (((x) / sImg.outerWidth()) * zoomImage.width) >> 0; destV = (((y) / sImg.outerHeight()) * zoomImage.height) >> 0; currU += (destU - currU) / opts.smoothMove; currV += (destV - currV) / opts.smoothMove; zoomDiv.css('background-position', (-(currU >> 0) + 'px ') + (-(currV >> 0) + 'px')) } controlTimer = setTimeout(function () { ctx.controlLoop() }, 30) }; this.init2 = function (img, id) { filesLoaded++; if (id === 1) { zoomImage = img } if (filesLoaded === 2) { this.init() } }; this.init = function () { $('.cloud-zoom-loading', jWin.parent()).remove(); $mouseTrap = jWin.parent().append(format("<div class='mousetrap' style='background-image:url(\".\");z-index:999;position:absolute;width:%0px;height:%1px;left:%2px;top:%3px;\'></div>", sImg.outerWidth(), sImg.outerHeight(), 0, 0)).find(':last'); $mouseTrap.bind('mousemove', this, function (event) { mx = event.pageX; my = event.pageY }); $mouseTrap.bind('mouseleave', this, function (event) { clearTimeout(controlTimer); if (lens) { lens.fadeOut(299) } if ($tint) { $tint.fadeOut(299) } if (softFocus) { softFocus.fadeOut(299) } zoomDiv.fadeOut(300, function () { ctx.fadedOut() }); return false }); $mouseTrap.bind('mouseenter', this, function (event) { mx = event.pageX; my = event.pageY; zw = event.data; if (zoomDiv) { zoomDiv.stop(true, false); zoomDiv.remove() } var xPos = opts.adjustX, yPos = opts.adjustY; var siw = sImg.outerWidth(); var sih = sImg.outerHeight(); var w = opts.zoomWidth; var h = opts.zoomHeight; if (opts.zoomWidth == 'auto') { w = siw } if (opts.zoomHeight == 'auto') { h = sih } var appendTo = jWin.parent(); switch (opts.position) { case 'top': yPos -= h; break; case 'right': xPos += siw; break; case 'bottom': yPos += sih; break; case 'left': xPos -= w; break; case 'inside': w = siw; h = sih; break; default: appendTo = $('#' + opts.position); if (!appendTo.length) { appendTo = jWin; xPos += siw; yPos += sih } else { w = appendTo.innerWidth(); h = appendTo.innerHeight() } } zoomDiv = appendTo.append(format('<div id="cloud-zoom-big" class="cloud-zoom-big" style="display:none;position:absolute;left:%0px;top:%1px;width:%2px;height:%3px;background-image:url(\'%4\');z-index:99;"></div>', xPos, yPos, w, h, zoomImage.src)).find(':last'); if (sImg.attr('title') && opts.showTitle) { zoomDiv.append(format('<div class="cloud-zoom-title">%0</div>', sImg.attr('title'))).find(':last').css('opacity', opts.titleOpacity) } if ($.browser.msie && $.browser.version < 7) { $ie6Fix = $('<iframe frameborder="0" src="#"></iframe>').css({ position: "absolute", left: xPos, top: yPos, zIndex: 99, width: w, height: h }).insertBefore(zoomDiv) } zoomDiv.fadeIn(500); if (lens) { lens.remove(); lens = null } cw = (sImg.outerWidth() / zoomImage.width) * zoomDiv.width(); ch = (sImg.outerHeight() / zoomImage.height) * zoomDiv.height(); lens = jWin.append(format("<div class = 'cloud-zoom-lens' style='display:none;z-index:98;position:absolute;width:%0px;height:%1px;'></div>", cw, ch)).find(':last'); $mouseTrap.css('cursor', lens.css('cursor')); var noTrans = false; if (opts.tint) { lens.css('background', 'url("' + sImg.attr('src') + '")'); $tint = jWin.append(format('<div style="display:none;position:absolute; left:0px; top:0px; width:%0px; height:%1px; background-color:%2;" />', sImg.outerWidth(), sImg.outerHeight(), opts.tint)).find(':last'); $tint.css('opacity', opts.tintOpacity); noTrans = true; $tint.fadeIn(500) } if (opts.softFocus) { lens.css('background', 'url("' + sImg.attr('src') + '")'); softFocus = jWin.append(format('<div style="position:absolute;display:none;top:2px; left:2px; width:%0px; height:%1px;" />', sImg.outerWidth() - 2, sImg.outerHeight() - 2, opts.tint)).find(':last'); softFocus.css('background', 'url("' + sImg.attr('src') + '")'); softFocus.css('opacity', 0.5); noTrans = true; softFocus.fadeIn(500) } if (!noTrans) { lens.css('opacity', opts.lensOpacity) } if (opts.position !== 'inside') { lens.fadeIn(500) } zw.controlLoop(); return }) }; img1 = new Image(); $(img1).load(function () { ctx.init2(this, 0) }); img1.src = sImg.attr('src'); img2 = new Image(); $(img2).load(function () { ctx.init2(this, 1) }); img2.src = jWin.attr('href') } $.fn.CloudZoom = function (options) { try { document.execCommand("BackgroundImageCache", false, true) } catch (e) { } this.each(function () { var relOpts, opts; eval('var	a = {' + $(this).attr('rel') + '}'); relOpts = a; if ($(this).is('.cloud-zoom')) { $(this).css({ 'position': 'relative', 'display': 'block' }); $('img', $(this)).css({ 'display': 'block' }); if ($(this).parent().attr('id') != 'wrap') { $(this).wrap('<div id="wrap" style="top:0px;z-index:9999;position:relative;"></div>') } opts = $.extend({}, $.fn.CloudZoom.defaults, options); opts = $.extend({}, opts, relOpts); $(this).data('zoom', new CloudZoom($(this), opts)) } else if ($(this).is('.cloud-zoom-gallery')) { opts = $.extend({}, relOpts, options); $(this).data('relOpts', opts); $(this).bind('click', $(this), function (event) { var data = event.data.data('relOpts'); $('#' + data.useZoom).data('zoom').destroy(); $('#' + data.useZoom).attr('href', event.data.attr('href')); $('#' + data.useZoom + ' img').attr('src', event.data.data('relOpts').smallImage); $('#' + event.data.data('relOpts').useZoom).CloudZoom(); return false }) } }); return this }; $.fn.CloudZoom.defaults = { zoomWidth: 'auto', zoomHeight: 'auto', position: 'right', tint: false, tintOpacity: 0.5, lensOpacity: 0.5, softFocus: false, smoothMove: 3, showTitle: true, titleOpacity: 0.5, adjustX: 0, adjustY: 0} })(jQuery);

if (top.location != this.location) top.location = this.location;

function MM_findObj(n, d) { //v4.01
    var p, i, x; if (!d) d = document; if ((p = n.indexOf("?")) > 0 && parent.frames.length) {
        d = parent.frames[n.substring(p + 1)].document; n = n.substring(0, p);
    }
    if (!(x = d[n]) && d.all) x = d.all[n]; for (i = 0; !x && i < d.forms.length; i++) x = d.forms[i][n];
    for (i = 0; !x && d.layers && i < d.layers.length; i++) x = MM_findObj(n, d.layers[i].document);
    if (!x && d.getElementById) x = d.getElementById(n); return x;
}
function MM_swapImage() { //v3.0
    var i, j = 0, x, a = MM_swapImage.arguments; document.MM_sr = new Array; for (i = 0; i < (a.length - 2); i += 3)
        if ((x = MM_findObj(a[i])) != null) { document.MM_sr[j++] = x; if (!x.oSrc) x.oSrc = x.src; x.src = a[i + 2]; }
}
function MM_swapImgRestore() { //v3.0
    var i, x, a = document.MM_sr; for (i = 0; a && i < a.length && (x = a[i]) && x.oSrc; i++) x.src = x.oSrc;
}

function MM_preloadImages() { //v3.0
    var d = document; if (d.images) {
        if (!d.MM_p) d.MM_p = new Array();
        var i, j = d.MM_p.length, a = MM_preloadImages.arguments; for (i = 0; i < a.length; i++)
            if (a[i].indexOf("#") != 0) { d.MM_p[j] = new Image; d.MM_p[j++].src = a[i]; }
    }
}

var win = null;
function _NewWindow(mypage, myname, w, h, scroll) {

    LeftPosition = (screen.width) ? (screen.width - w) / 2 : 0;
    TopPosition = (screen.height) ? (screen.height - h) / 2 : 0;
    settings =
'height=' + h + ',width=' + w + ',top=' + TopPosition + ',left=' + LeftPosition + ',scrollbars=' + scroll + ',resizable'
    win = window.open(mypage, myname, settings)
}

function print_page() {
    self.focus();
    self.print()
}

function showStatus(sMsg) {
    window.status = sMsg;
    return true;
}

function hideDwLegend(page) {
    if (page == 1) {
        document.getElementById("Legend").style.display = 'none';
    }
}

function echeck(str) {

    var at = "@"
    var dot = "."
    var lat = str.indexOf(at)
    var lstr = str.length
    var ldot = str.indexOf(dot)
    if (str.indexOf(at) == -1) {
        alert("Ongeldig e-mailadres")
        return false
    }

    if (str.indexOf(at) == -1 || str.indexOf(at) == 0 || str.indexOf(at) == lstr) {
        alert("Ongeldig e-mailadres")
        return false
    }

    if (str.indexOf(dot) == -1 || str.indexOf(dot) == 0 || str.indexOf(dot) == lstr) {
        alert("Ongeldig e-mailadres")
        return false
    }

    if (str.indexOf(at, (lat + 1)) != -1) {
        alert("Ongeldig e-mailadres")
        return false
    }

    if (str.substring(lat - 1, lat) == dot || str.substring(lat + 1, lat + 2) == dot) {
        alert("Ongeldig e-mailadres")
        return false
    }

    if (str.indexOf(dot, (lat + 2)) == -1) {
        alert("Ongeldig e-mailadres")
        return false
    }

    if (str.indexOf(" ") != -1) {
        alert("Ongeldig e-mailadres")
        return false
    }

    return true
}


function RemoveText(oTextbox, filltext) {
    if (oTextbox.value == filltext) {
        oTextbox.value = ""
    }
}
function RefillBox(oTextbox, filltext) {
    if (oTextbox.value == "") {
        oTextbox.value = filltext
    }
}

function getUrlParam(name) {
    if (name == 'base') {
        var pathArray = String(window.location.href).split('/');
        var host = 'http://' + pathArray[2] + '/';
        return host;
    } else {
        name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
        var regexS = "[\\?&]" + name + "=([^&#]*)";
        var regex = new RegExp(regexS);
        var results = regex.exec(window.location.href);
        if (results == null) {
            return "";
        } else {
            return results[1];
        }
    }
}

function splitprijs(prijs) {
    var prijssplit
    if (prijs.lastIndexOf(",") > 0) {
        prijssplit = prijs.split(",");
    } else if (prijs.lastIndexOf(".") > 0) {
        prijssplit = prijs.split(".");
    } else {
        prijssplit = prijs;
    }
    return prijssplit
}

function PrijsFormat(prijs, discountprijs) {
    var niceprice = '<div class="prijsweergave">';
    var prijssplit = splitprijs(prijs);
    if (discountprijs != '') {
        var discountsplit = splitprijs(discountprijs);
        niceprice += '<div class="orgprijseuroteken">&euro;</div><div class="orgprijsint wowfont">' + prijssplit[0] + '</div><div class="orgprijsdec wowfont" style="margin-right:8px;">' + prijssplit[1] + '</div>';
        niceprice += '<div class="discountprijseuroteken">&euro;</div><div class="discountprijsint wowfont">' + discountsplit[0] + '</div><div class="discountprijsdec wowfont">' + discountsplit[1] + '</div>';
    } else {
        niceprice += '<div class="prijseuroteken">&euro;</div><div class="prijsint wowfont">' + prijssplit[0] + '</div><div class="prijsdec wowfont">' + prijssplit[1] + '</div>';
    }
    niceprice += '</div>'
    return niceprice
}

function setVariant(variantUrl) {
    window.location = variantUrl;
}

function ShowMoreInfo() {
    $('.productdetail_photo').hide();
    $('.productdetail_detailinfo').show();
    $('.btn_meerinfo').hide();
    $('.btn_verberginfo').show();
}
function HideMoreInfo() {
    $('.productdetail_photo').show();
    $('.productdetail_detailinfo').hide();
    $('.btn_meerinfo').show();
    $('.btn_verberginfo').hide();
}


/* GA tracking */
var trackPageviewPushed = false;
function TrackPageViewAction(trackPageview) {
    if (_gaq != undefined) {
        //alert('_trackPageview: ' + trackPageview);
        _gaq.push(['_trackPageview', trackPageview]);
        trackPageviewPushed = true;
    }
}

function Set_Cookie(name, value, expires, path, domain, secure) {
    // set time, it's in milliseconds
    var today = new Date();
    today.setTime(today.getTime());

    /*
    if the expires variable is set, make the correct
    expires time, the current script below will set
    it for x number of days, to make it for hours,
    delete * 24, for minutes, delete * 60 * 24
    */
    if (expires) {
        expires = expires * 1000 * 60 * 60 * 24;
    }
    var expires_date = new Date(today.getTime() + (expires));

    document.cookie = name + "=" + escape(value) +
        ((expires) ? ";expires=" + expires_date.toGMTString() : "") +
        ((path) ? ";path=" + path : "") +
        ((domain) ? ";domain=" + domain : "") +
        ((secure) ? ";secure" : "");
}

function Get_Cookie(check_name) {
    // first we'll split this cookie up into name/value pairs
    // note: document.cookie only returns name=value, not the other components
    var a_all_cookies = document.cookie.split(';');
    var a_temp_cookie = '';
    var cookie_name = '';
    var cookie_value = '';
    var b_cookie_found = false; // set boolean t/f default f

    for (i = 0; i < a_all_cookies.length; i++) {
        // now we'll split apart each name=value pair
        a_temp_cookie = a_all_cookies[i].split('=');

        // and trim left/right whitespace while we're at it
        cookie_name = a_temp_cookie[0].replace(/^\s+|\s+$/g, '');

        // if the extracted name matches passed check_name
        if (cookie_name == check_name) {
            b_cookie_found = true;
            // we need to handle case where cookie has no value but exists (no = sign, that is):
            if (a_temp_cookie.length > 1) {
                cookie_value = unescape(a_temp_cookie[1].replace(/^\s+|\s+$/g, ''));
            }
            // note that in cases where cookie is initialized but no value, null is returned
            return cookie_value;
            break;
        }
        a_temp_cookie = null;
        cookie_name = '';
    }
    if (!b_cookie_found) {
        return null;
    }
}

function extendpagingbutton(button) {
    var thebutton = $('.newslist_pagingwrapper .' + button + ' a');
    var currentnewsid = getUrlParam('NewsId');
    var TargetPID;
    var PID;

    /************* HARDCODED ***********************************************************************************/
    if ('<!--@Global:Area.Lang-->' == 'nl') {

        if (String(window.location.href).indexOf('daphne-deckers.aspx') != -1) {
            // DAPHNE DECKERS NEDERLANDS                                                                     
            PID = '186';
            TargetPID = '191';

        } else {
            // NIEUWS NEDERLANDS                                                                       
            PID = '53';
            TargetPID = '71';

        }

    } else {

        if (String(window.location.href).indexOf('daphne-deckers.aspx') != -1) {
            // DAPHNE DECKERS ENGELS                                                  
            PID = '699';
            TargetPID = '704';
            locationurl = 'daphne-deckers.aspx'
        } else {
            // NIEUWS ENGELS                                                       
            PID = '691';
            TargetPID = '696';

        }

    }
    if (thebutton != 'undefined') {
        if (currentnewsid != '') {
            var newurl = thebutton.attr('href') + '&NewsId=' + currentnewsid;
            newurl = newurl.replace("PID=" + TargetPID, "PID=" + PID);
            thebutton.attr('href', newurl);
        }
    }
}

$.extend({
    getUrlVars: function () {
        var vars = [], hash;
        var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
        for (var i = 0; i < hashes.length; i++) {
            hash = hashes[i].split('=');
            vars.push(hash[0]);
            vars[hash[0]] = hash[1];
        }
        return vars;
    },
    getUrlVar: function (name) {
        return $.getUrlVars()[name];
    }
});


/* GA tracking */
var trackPageviewPushed = false;
function TrackPageViewAction(trackPageview) {
    if (_gaq != undefined) {
        //alert('_trackPageview: ' + trackPageview);
        _gaq.push(['_trackPageview', trackPageview]);
        trackPageviewPushed = true;
    }
}

function print_page() {
    self.focus();
    self.print()
}

function RemoveText(oTextbox, filltext) {
    if (oTextbox.value == filltext) {
        oTextbox.value = ""
    }
}
function RefillBox(oTextbox, filltext) {
    if (oTextbox.value == "") {
        oTextbox.value = filltext
    }
}

// Functie voor weergave markers in FireFox 
function getMarkerNode(xmlMarker, strSearchTag) {
    var sResult;
    sResult = 'nog niks';

    if (navigator.appName != "Netscape")  // Geen FireFox
    {
        sResult = xmlMarker.getElementsByTagName(strSearchTag)(0).text;
    }
    else {
        var strTagName;
        var iCount;
        strTagName = '';
        iCount = 0;
        while ((strTagName != strSearchTag) & (iCount < xmlMarker.childNodes.length)) {
            iCount++;
            strTagName = xmlMarker.childNodes[iCount].nodeName;
        }
        if (strTagName == strSearchTag) {
            try {
                sResult = xmlMarker.childNodes[iCount].childNodes[0].textContent;
            }
            catch (err) {
                sResult = "";
            }
        }
    }
    return sResult;
}

$(document).ready(function () {
    if ($.browser.webkit) {
        $('body').addClass("webkit");
    } else if ($.browser.safari) {
        $('body').addClass("safari");
    } else if ($.browser.opera) {
        $('body').addClass("opera");
    } else if ($.browser.msie) {
        $('body').addClass("msie");

        if ($.browser.version < 7) {
            $('body').addClass("msie6");
        } else if ($.browser.version < 8) {
            $('body').addClass("msie7");
        } else if ($.browser.version < 9) {
            $('body').addClass("msie8");
        } else if ($.browser.version < 10) {
            $('body').addClass("msie9");
        }
    } else if ($.browser.mozilla) {
        $('body').addClass("mozilla");
    }

    $(function () {
        if ($.browser.msie && $.browser.version < 8) {
            $('div').each(function (i) {
                if ($(this).css('position') != 'absolute') $(this).css('zIndex', 1000 - (i * 10));
            });
        }
    })

    function megaHoverOver() {
        $(this).find(".M2").stop().animate({ "height": $(this).find(".M2").attr("open-height") }, 300);
    }

    function megaHoverOut() {
        $(this).find(".M2").stop().animate({ "height": "0px" }, 100);
    }

    var config = {
        sensitivity: 2, // number = sensitivity threshold (must be 1 or higher)    
        interval: 100, // number = milliseconds for onMouseOver polling interval    
        over: megaHoverOver, // function = onMouseOver callback (REQUIRED)    
        timeout: 200, // number = milliseconds delay before onMouseOut    
        out: megaHoverOut // function = onMouseOut callback (REQUIRED)    
    };

    $(".MenuContainer ul li .M2").css({ 'height': '0' });
    $(".MenuContainer ul li").hoverIntent(config);

    $("#ProdQuantity").ForceNumericOnly();

    $(".ShoppingCartUrl").attr("href", $("#ShoppingCartUrlContainer").html());

    $.watermark.options.className = 'watermarkholder';
    $(".watermark").each(function () { $(this).watermark($(this).attr("title")); });

    $("a.iframe").fancybox();
    $("a.fb_inline").fancybox({
        'hideOnContentClick': false,
        'href': '#review'
    });
    $("form").validationEngine();
    //    $('.zoom').jqzoom({
    //        zoomWidth: 610,
    //        zoomHeight: 450,
    //        xOffset: 23,
    //        yOffset: 0
    //    });

    //Varianten opschonen in filters
    $(".ProductFilterLabel").each(function () {
        var VariantName = ($(this).html());
        if (VariantName.indexOf('#') > 0) {
            $(this).html(VariantName.split('#')[0])
        }
    });

    var ShowAllProducts = getUrlParam('AllProducts');
    var CreatePaging = true

    if (ShowAllProducts != '') {
        if (ShowAllProducts == 'True') {
            $('#AllProducts').selected = true;
            $('#selectAllProducts').selected = true;
            $('.PaginaContainerTop').hide()
            $('.PaginaContainerBottom').hide()
            CreatePaging = false
        }
    }

    /* Pager voor de productcategorieen */
    if (CreatePaging == true) {
        $("#ProductList").quickPager({
            pageSize: 15,
            currentPage: 1,
            holder: ".ProductPagerTop"
        });
    }

    var iPagingCount = $(".ProductPagerTop li").length;
    if (iPagingCount >= 0) {
        $(".PaginaContainerTopLegenda").hide();
    }

    //$('.PaginaContainerTop').clone().appendTo($('.PaginaContainerBottom'));
    $(".PaginaContainerBottom").html($('.ProductPaging').html());


    $("#NewsList").quickPager({
        pageSize: 5,
        currentPage: 1,
        holder: ".newslist_pagingwrapper"
    });

    try {
        $("body select").msDropDown();
    } catch (e) { }

    $("form").validationEngine();
});

jQuery.fn.ForceNumericOnly = function () {
    return this.each(function () {
        $(this).keydown(function (e) {
            var key = e.charCode || e.keyCode || 0;             // allow backspace, tab, delete, arrows, numbers and keypad numbers ONLY             
            return (
                key == 8 ||
                key == 9 ||
                key == 46 ||
                (key >= 37 && key <= 40) ||
                (key >= 48 && key <= 57) ||
                (key >= 96 && key <= 105));
        })
    })
};


