(function (s) { var f = ["play", "start", "stop", "pause", "resume", "reverse", "reset"], t = ["param", "colorlist", "action", "alpha", "fps", "duration", "random", "strobe", "cycles", "queue", "classlist", "precallback", "postcallback", "cyclecallback", "apexcallback", "onqueuecallback"], w = [], g = [], D = [], p = { aliceblue: "F0F8FF", antiquewhite: "FAEBD7", aqua: "00FFFF", aquamarine: "7FFFD4", azure: "F0FFFF", beige: "F5F5DC", bisque: "FFE4C4", black: "000000", blanchedalmond: "FFEBCD", blue: "0000FF", blueviolet: "8A2BE2", brown: "A52A2A", burlywood: "DEB887", cadetblue: "5F9EA0", chartreuse: "7FFF00", chocolate: "D2691E", coral: "FF7F50", cornflowerblue: "6495ED", cornsilk: "FFF8DC", crimson: "DC143C", cyan: "00FFFF", darkblue: "00008B", darkcyan: "008B8B", darkgoldenrod: "B8860B", darkgray: "A9A9A9", darkgreen: "006400", darkkhaki: "BDB76B", darkmagenta: "8B008B", darkolivegreen: "556B2F", darkorange: "FF8C00", darkorchid: "9932CC", darkred: "8B0000", darksalmon: "E9967A", darkseagreen: "8FBC8F", darkslateblue: "483D8B", darkslategray: "2F4F4F", darkturquoise: "00CED1", darkviolet: "9400D3", deeppink: "FF1493", deepskyblue: "00BFFF", dimgray: "696969", dodgerblue: "1E90FF", firebrick: "B22222", floralwhite: "FFFAF0", forestgreen: "228B22", fuchsia: "FF00FF", gainsboro: "DCDCDC", ghostwhite: "F8F8FF", gold: "FFD700", goldenrod: "DAA520", gray: "808080", grey: "808080", green: "008000", greenyellow: "ADFF2F", honeydew: "F0FFF0", hotpink: "FF69B4", indianred: "CD5C5C", indigo: "4B0082", ivory: "FFFFF0", khaki: "F0E68C", lavender: "E6E6FA", lavenderblush: "FFF0F5", lawngreen: "7CFC00", lemonchiffon: "FFFACD", lightblue: "ADD8E6", lightcoral: "F08080", lightcyan: "E0FFFF", lightgoldenrodyellow: "FAFAD2", lightgreen: "90EE90", lightgrey: "D3D3D3", lightpink: "FFB6C1", lightsalmon: "FFA07A", lightseagreen: "20B2AA", lightskyblue: "87CEFA", lightslategray: "778899", lightsteelblue: "B0C4DE", lightyellow: "FFFFE0", lime: "00FF00", limegreen: "32CD32", linen: "FAF0E6", magenta: "FF00FF", maroon: "800000", mediumaquamarine: "66CDAA", mediumblue: "0000CD", mediumorchid: "BA55D3", mediumpurple: "9370DB", mediumseagreen: "3CB371", mediumslateblue: "7B68EE", mediumspringgreen: "00FA9A", mediumturquoise: "48D1CC", mediumvioletred: "C71585", midnightblue: "191970", mintcream: "F5FFFA", mistyrose: "FFE4E1", moccasin: "FFE4B5", navajowhite: "FFDEAD", navy: "000080", oldlace: "FDF5E6", olive: "808000", olivedrab: "6B8E23", orange: "FFA500", orangered: "FF4500", orchid: "DA70D6", palegoldenrod: "EEE8AA", palegreen: "98FB98", paleturquoise: "AFEEEE", palevioletred: "DB7093", papayawhip: "FFEFD5", peachpuff: "FFDAB9", peru: "CD853F", pink: "FFC0CB", plum: "DDA0DD", powderblue: "B0E0E6", purple: "800080", red: "FF0000", rosybrown: "BC8F8F", royalblue: "4169E1", saddlebrown: "8B4513", salmon: "FA8072", sandybrown: "F4A460", seagreen: "2E8B57", seashell: "FFF5EE", sienna: "A0522D", silver: "C0C0C0", skyblue: "87CEEB", slateblue: "6A5ACD", slategray: "708090", snow: "FFFAFA", springgreen: "00FF7F", steelblue: "4682B4", tan: "D2B48C", teal: "008080", thistle: "D8BFD8", tomato: "FF6347", turquoise: "40E0D0", violet: "EE82EE", wheat: "F5DEB3", white: "FFFFFF", whitesmoke: "F5F5F5", yellow: "FFFF00", yellowgreen: "9ACD32" }; function a(F, E) { return Math.floor(Math.random() * (E - F + 1)) + F } function k() { var G = [], E, F = 0; for (F = 0; F < 3; F++) { E = a(0, 255).toString(16); G[G.length] = (E.length === 1 ? "0" + E : E) } return "#" + G.join("") } function b(E) { return E.constructor === Array } function v(E) { return typeof (E) === "undefined" ? true : E === null ? true : false } function h() { var F = [], E = 0; for (E = 0; E < 7; E++) { F.push(a(0, 15).toString(16)) } return F.join("") } s.extend(s.expr[":"], { blendingParam: function (F, E, I, K) { var J = I[3], G = s(F), H = w[F.uniqueID]; return (G.is(":hasBlend('" + J + "')") && H[J].internals.animating) }, blendableParam: function (F, E, I, K) { var J = I[3], G = s(F), H = w[F.uniqueID]; return G.is(":blendingParam('" + J + "')") ? (H[J].isQueue && H[J].cycles > -1) : true }, paramMyBlend: function (G, I, H, L) { var J = H[3].split(","), M = s(G), K = J[0], E = J[1], F = w[G.uniqueID]; return (M.is(":hasBlend('" + E + "')") && F[E].blendId === K) }, hasBlend: function (F, E, H, J) { var I = H[3], G = w[F.uniqueID]; return !v(G) && !v(G[I]) }, blending: function (F, E, H, J) { var G = w[F.uniqueID], I; if (!v(G)) { for (I in G) { if (!v(G[I]) && !G[I].internals.animating) { continue } return true } } return false }, uniqueIDAssigned: function (F, E, H, J) { var G = F.uniqueID; if (v(G)) { var I = {}; I.uniqueID = h(); s.extend(F, I) } return true } }); function C(G, F, E) { return "#" + (1 << 24 | (G << 16) | (F << 8) | (E << 0)).toString(16).substring(1) } function o(G) { var F = [], E = 0; if (v(G)) { return "0, 0, 0" } G = G.split("#").join(""); for (E = 0; E < 3; E++) { F.push(parseInt(G.substr(E * 2, 2), 16)) } return F.join(", ") } function z(F) { var E; if (F && F.constructor === Array && F.length === 3) { return F } if (E = /rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(F)) { return [parseInt(E[1], 10), parseInt(E[2], 10), parseInt(E[3], 10)] } if (E = /rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(F)) { return [parseFloat(E[1]) * 2.55, parseFloat(E[2]) * 2.55, parseFloat(E[3]) * 2.55] } if (E = /#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(F)) { return [parseInt(E[1].toString(), 16), parseInt(E[2].toString(), 16), parseInt(E[3].toString(), 16)] } if (E = /#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(F)) { return [parseInt(E[1] + E[1], 16), parseInt(E[2] + E[2], 16), parseInt(E[3] + E[3], 16)] } return o(p[s.trim(F).toLowerCase()]).split(",") } function B(F) { var E = z(F); return C(parseInt(E[0], 10), parseInt(E[1], 10), parseInt(E[2], 10)) } function l(I) { I = B(I).split("#").join("").split(""); var H = "0123456789abcdef", G = H.split("").reverse().join(""), F, E = 0; for (E = 0; E < I.length; E++) { F = H.indexOf(I[E]); I[E] = G.substring(F, F + 1) } return "#" + I.join("") } function y(K, J) { var F = ((K.length - 1) * J), I = Math.floor(F), L = (F - I), G = 1 - L, H = K[I], E = J === 1 ? K[I] : K[I + 1]; return Math.min(100, Math.max(0, Math.floor(H * (G) + E * (L)))) * parseFloat(".01") } function j(L, N) { var G = ((L.length - 1) * N), E = Math.floor(G), K = (G - E), H = 1 - K, M = [0, 0, 0], F = z(L[E]), I = N === 1 ? z(L[E]) : z(L[E + 1]), J = 0; for (J = 0; J < 3; J++) { M[J] = Math.floor(parseInt(F[J], 10) * (H) + parseInt(I[J], 10) * (K)) } return C(M[0], M[1], M[2]) } function e(E) { return (E.param.toLowerCase() === "opacity") ? y(E.alpha, E.internals.pct()) : j(E.colorList, E.internals.pct()) } function n(G, E) { var F = E; s.each(G, function (I, H) { F = F.split(H).join("") }); return F } function q(H) { var G = /(?:([\w\-\.\s#]*)[^\}]*\})/gim, J, M = 0, N = []; while (J = G.exec(H)) { var E = /(?:[^:;{\w]*(?:([\w\-]*color):([^;]+)(?:;|\})))/gim, K = s.trim(J[1]), I, F = { selector: K, blendObj: [], index: M }; while (I = E.exec(J[0])) { var L = { param: I[1].toLowerCase(), color: s.trim(n(['"', "'"], I[2])) }; F.blendObj.push(L) } N.push(F); M++ } return N } function A() { var E = [], F = s("style[Blend]"); F.each(function (H, G) { var I = q(s(this).html()); s.each(I, function (K, J) { E.push(J) }) }); return E } function r() { var F = s("link[href$='.css'][Blend]"), E = []; F.each(function (I, H) { var J = s(this), G = J.attr("href"); s.ajax(G, { dataType: "text", async: false, success: function (L) { var K = q(L); s.each(K, function (N, M) { E.push(M) }) } }) }); return E } function c() { if (!v(D) && D.length <= 0) { D = r() } } function d() { if (!v(g) && g.length <= 0) { g = A() } } s.extend({ colorPercent: function () { if (b(arguments[0]) && !(!arguments[1]) && !isNaN(arguments[1])) { return j(arguments[0], arguments[1]) } }, colorBlendStyleLoad: function () { d() }, colorBlendCssLoad: function () { c() }, colorBlendLoad: function () { d(); c() } }); function u(E) { return typeof (E) === "boolean" ? true : typeof (E) === "string" ? E.match(/(true|false)/gi) ? true : false : false } function x(E) { return u(E) ? typeof (E) === "string" ? E.toLowerCase() === "true" : E ? true : false : false } function i(F, H, E) { var G = E; for (G = E; G <= H.length; G++) { if (typeof (H[G]) === "string") { if (s.inArray(H[G].toLowerCase(), t) > -1 && ((G + 1) <= H.length && (!(!H[G + 1]) || u(H[G + 1])))) { var I = H[G + 1]; switch (H[G].toLowerCase()) { case "alpha": F[0].alpha = I; break; case "classList": F[0].classList = I; break; case "colorlist": F[0].colorList = I; break; case "param": F[0].param = I; break; case "action": F[0].action = I; break; case "fps": F[0].fps = parseInt(I, 10); break; case "duration": F[0].duration = parseInt(I, 10); break; case "random": F[0].random = x(I); break; case "cycles": F[0].cycles = parseInt(I, 10); break; case "strobe": F[0].strobe = x(I); break; case "queue": F[0].isQueue = x(I); break; case "postcallback": if (typeof (I) === "function") { F[0].postCallBack = I } break; case "precallback": if (typeof (I) === "function") { F[0].preCallBack = I } break; case "cyclecallback": if (typeof (I) === "function") { F[0].cycleCallBack = I } break; case "onqueuecallback": if (typeof (I) === "function") { F[0].onQueueCallBack = I } break; case "apexcallback": if (typeof (I) === "function") { F[0].apexCallBack = I } break } } } } return F } function m(I, H, G) { if (I.toLowerCase() === "all" || H.is(":hasBlend('" + I + "')")) { var E = I.toLowerCase() === "all" ? ":blending" : ":hasBlend('" + I + "')", F = null; H.filter(E).each(function (L, J) { for (F in w[J.uniqueID]) { var K = w[J.uniqueID][F]; if (!v(K) && (F === I || I === "all")) { switch (s.trim(G.toLowerCase())) { case "pause": case "stop": K.internals.tId = clearTimeout(K.internals.tId); K.internals.isPOrS = true; if (G.toLowerCase() === "stop") { K.internals.animating = false } break; case "reverse": K.internals.step = -1 * K.internals.step; break; case "reset": K.internals.step = 1; K.internals.currentCycle = K.cycles > -1 ? K.cycles : 0; K.internals.pos = 0; break; case "start": case "play": case "resume": if (K.internals.isPOrS) { K.internals.isPOrS = false; K.internals.animating = true; K.internals.next() } break } } } }) } } s.fn.colorBlend = function (H) { if (arguments.length >= 2) { if (typeof (arguments[0]) === "string" && ((typeof (arguments[1]) === "string" && (arguments[1].indexOf(",") > -1) || b(arguments[1])))) { var G = b(arguments[1]) ? arguments[1] : arguments[1].toString().split(","); H = arguments[0].toLowerCase() === "classlist" ? [{ classList: G}] : arguments[0].toLowerCase() === "opacity" ? [{ param: arguments[0], alpha: G}] : [{ param: arguments[0], colorList: G}]; if (!(!arguments[2])) { if (!isNaN(parseInt(arguments[2], 10))) { H[0].duration = parseInt(arguments[2], 10) } H = s.extend(H, i(H, arguments, 2)) } } if (typeof (arguments[0]) === "string" && (arguments[0].indexOf(",") === -1 || !b(arguments[0])) && ((typeof (arguments[1]) === "string" && (arguments[1].indexOf(",") === -1) || !b(arguments[1])))) { var M = s.inArray(arguments[0].toLowerCase(), f); if (M > -1) { m(arguments[1], this, f[M]) } else { H = [{ param: arguments[0]}]; H = s.extend(H, i(H, arguments, 1)) } } } function O(Y) { Y.parent.filter(":paramMyBlend('" + Y.blendId + "," + Y.param + "')").each(function (ab, aa) { if (!v(w[aa.uniqueID])) { var ac = true, Z; w[aa.uniqueID][Y.param] = null; for (Z in w[aa.uniqueID]) { if (v(w[aa.uniqueID][Z])) { continue } ac = false } if (ac) { w[aa.uniqueID] = null } } }) } function V(Z) { Z.apexCallBack(); if (Z.cycles > -1 && Z.internals.pos <= 0) { Z.internals.currentCycle -= Z.internals.currentCycle !== 0 ? 1 : 0; if (Z.internals.currentCycle === 0) { Z.internals.tId = clearTimeout(Z.internals.tId); Z.cycleCallBack(); if (b(Z.queue) && Z.queue.length > 0) { var Y = Z.queue.concat(); Y.splice(0, 1); Z = s.extend(Z, Z.queue.shift()); Z.queue = Y.concat(); Z.internals.animating = true; Z.onQueueCallBack() } else { Z.internals.animating = false; Z.internals.isPOrS = false; Z.postCallBack(); O(Z) } } } } function U(Y) { var Z = !v(Y) ? Y : !v(this.opts) ? this.opts : null; if (Z !== null) { if (Z.internals.animating && !Z.internals.isPOrS) { Z.parent.css(Z.param, e(Z)); Z.internals.pos += Z.internals.step; if (Z.internals.pos > Z.internals.frames || Z.internals.pos < 0) { if (Z.random && Z.param.toLowerCase() !== "opacity") { Z.colorList = [Z.colorList[Z.colorList.length - 1], k()] } if (Z.strobe) { Z.internals.step = -1 * Z.internals.step; Z.internals.pos += Z.internals.step; V(Z) } else { if (Z.internals.pos > Z.internals.frames) { Z.internals.pos = 0; V(Z) } } } if (Z.internals.animating && !Z.internals.isPOrS) { Z.internals.tId = setTimeout(function () { U(Z) }, Z.internals.delay) } } } } function R(aa, Z) { var Y = null; s.each(aa, function (ac, ab) { if (ab.selector === Z) { Y = ab; return false } }); return Y } function Q(aa, Y) { var Z = -1; s.each(aa, function (ac, ab) { if (aa[ac].param === Y) { Z = ac; return false } }); return Z } function N(Y) { var Z = []; s.each(Y, function (ac, aa) { var ab = R(g, aa); if (ab === null) { ab = R(D, aa) } s.each(ab.blendObj, function (af, ad) { var ae = ab.blendObj[af]; if (ae !== null && !v(ae.color)) { var ag = Q(Z, ae.param); if (ag === -1 || Z.length === 0) { Z.push({ param: ae.param, colorList: [] }); Z[Z.length - 1].colorList.push(ae.color) } else { Z[ag].colorList.push(ae.color) } } }) }); return Z } if (!H) { H = [{}] } var S = { fps: 60, duration: 1000, param: "background-color", cycles: -1, colorList: ["current", "opposite"], alpha: [], action: "", random: false, strobe: true, isQueue: true, cycleCallBack: function () { }, preCallBack: function () { }, postCallBack: function () { }, apexCallBack: function () { }, onQueueCallBack: function () { } }, W = { currentCycle: 0, pos: 0, frames: 0, delay: 0, step: 1, tId: 0, animating: false, isPOrS: false, pct: function () { return (this.pos / this.frames) }, next: U }, T = { classList: [] }, X = []; function I(aa, Z) { var Y = "#ffffff"; s(aa).parents().each(function () { var ab = s(this).css(Z); if (ab !== "transparent" && ab !== "") { Y = ab; return false } }); return Y } function J(aa) { if (!aa.internals.animating) { if (s.trim(aa.param.toLowerCase()) !== "opacity") { if (aa.colorList.length === 1) { aa.colorList.push("opposite") } if (aa.random) { aa.strobe = false; aa.colorList = [k(), k()] } else { s.each(aa.colorList, function (ac, ab) { switch (s.trim(ab.toLowerCase())) { case "current": aa.colorList[ac] = aa.parent.css(aa.param) === "transparent" ? I(aa.parent, aa.param) : aa.parent.css(aa.param); break; case "parent": case "transparent": aa.colorList[ac] = I(aa.parent, aa.param); break; case "opposite": aa.colorList[ac] = l(B(I(aa.parent, aa.param))); break; case "random": aa.colorList[ac] = k(); break } }) } } var Z = Math.floor(1000 / aa.fps), Y = Math.ceil(aa.duration / Z); aa.internals.currentCycle = aa.cycles > -1 ? aa.cycles : 0; aa.internals.frames = aa.strobe ? Math.floor(Y / 2) : Y; aa.internals.delay = Z; return aa } } function P(Z, Y, aa) { if (v(w[Y])) { w[Y] = [] } w[Y][aa] = Z } function L(aa, Z) { var Y = s.extend(true, {}, Z); Y.parent = s(aa); Y.internals.opts = Y; return Y } function K(Z, Y) { s.each(X, function (ab, aa) { var ad = Z.filter(":not(:hasBlend('" + aa + "'))"); ad.each(function (af, ae) { P(L(ae, Y[aa]), ae.uniqueID, aa) }); if (ad.size() < Z.size()) { var ac = Z.not(ad).filter(":blendingParam('" + aa + "')"); ac.filter(":blendableParam('" + aa + "')").each(function (af, ae) { w[ae.uniqueID][aa].queue.push(L(ae, Y[aa])) }); Z.not(ad).not(ac).each(function (af, ae) { P(L(ae, Y[aa]), ae.uniqueID, aa) }) } }) } function F(Z, aa) { var ab = [], Y = h(); aa.blendId = Y; X = []; s.each(Z, function (ag, ad) { var af = s.extend({}, S, ad), ac = s.inArray(af.action.toLowerCase(), f), ai = af.param.toLowerCase(), ah = s.extend({}, S, T, ad); if (ai !== "all" && ah.classList.length <= 1) { X.push(ai) } if (ac > -1) { m(ai, aa, f[ac]); return true } if (ai === "opacity") { af.colorList = []; af.random = false } af.blendId = Y; af.parent = aa; af.queue = []; af.internals = s.extend({}, W); if (ah.classList.length > 1) { s.colorBlendLoad(); af.classList = af.colorList = []; var ae = N(ah.classList); s.each(ae, function (aj, ak) { if (s.inArray(ae[aj].param, ab) === -1) { X.push(ae[aj].param); ab[ae[aj].param] = J(s.extend({}, af, ae[aj])) } }) } else { if (s.inArray(ai, ab) === -1) { ab[ai] = J(af) } } }); K(aa, ab) } function E(Y) { if (Y.is(":uniqueIDAssigned") && s.inArray(H, f) === -1) { F(H, Y); if (!v(Y.blendId)) { s.each(X, function (aa, Z) { Y.filter(":paramMyBlend('" + Y.blendId + "," + Z + "')").each(function (ac, ab) { var ad = w[ab.uniqueID][Z]; ad.preCallBack(); ad.internals.animating = true; ad.internals.next() }) }) } } return Y } return E(this) } })(jQuery);
