Created
February 25, 2015 16:26
-
-
Save samueltc/13e62ae4ec48e35bc098 to your computer and use it in GitHub Desktop.
global-perf-minified.js
This file has been truncated, but you can view the full file.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| (function(a, b) { | |
| function d() { | |
| if (!n.isReady) { | |
| try { | |
| t.documentElement.doScroll("left") | |
| } catch (k) { | |
| setTimeout(d, 1); | |
| return | |
| } | |
| n.ready() | |
| } | |
| } | |
| function f(k, r) { | |
| r.src ? n.ajax({ | |
| url: r.src, | |
| async: false, | |
| dataType: "script" | |
| }) : n.globalEval(r.text || r.textContent || r.innerHTML || ""); | |
| r.parentNode && r.parentNode.removeChild(r) | |
| } | |
| function g(k, r, x, F, E, T) { | |
| var V = k.length; | |
| if (typeof r === "object") { | |
| for (var ca in r) g(k, ca, r[ca], F, E, x); | |
| return k | |
| } | |
| if (x !== b) { | |
| F = !T && F && n.isFunction(x); | |
| for (ca = 0; ca < V; ca++) E(k[ca], r, F ? x.call(k[ca], ca, E(k[ca], r)) : x, T); | |
| return k | |
| } | |
| return V ? | |
| E(k[0], r) : b | |
| } | |
| function j() { | |
| return (new Date).getTime() | |
| } | |
| function l() { | |
| return false | |
| } | |
| function o() { | |
| return true | |
| } | |
| function v(k, r, x) { | |
| x[0].type = k; | |
| return n.event.handle.apply(r, x) | |
| } | |
| function A(k) { | |
| var r, x = [], | |
| F = [], | |
| E = arguments, | |
| T, V, ca, aa, da, ha; | |
| V = n.data(this, "events"); | |
| if (!(k.liveFired === this || !V || !V.live || k.button && k.type === "click")) { | |
| k.liveFired = this; | |
| var qa = V.live.slice(0); | |
| for (aa = 0; aa < qa.length; aa++) { | |
| V = qa[aa]; | |
| V.origType.replace(ua, "") === k.type ? F.push(V.selector) : qa.splice(aa--, 1) | |
| } | |
| T = n(k.target).closest(F, k.currentTarget); | |
| da = 0; | |
| for (ha = T.length; da < ha; da++) | |
| for (aa = 0; aa < qa.length; aa++) { | |
| V = qa[aa]; | |
| if (T[da].selector === V.selector) { | |
| ca = T[da].elem; | |
| F = null; | |
| if (V.preType === "mouseenter" || V.preType === "mouseleave") F = n(k.relatedTarget).closest(V.selector)[0]; | |
| if (!F || F !== ca) x.push({ | |
| elem: ca, | |
| handleObj: V | |
| }) | |
| } | |
| } | |
| da = 0; | |
| for (ha = x.length; da < ha; da++) { | |
| T = x[da]; | |
| k.currentTarget = T.elem; | |
| k.data = T.handleObj.data; | |
| k.handleObj = T.handleObj; | |
| if (T.handleObj.origHandler.apply(T.elem, E) === false) { | |
| r = false; | |
| break | |
| } | |
| } | |
| return r | |
| } | |
| } | |
| function C(k, r) { | |
| return "live." + (k && k !== "*" ? k + "." : | |
| "") + r.replace(/\./g, "`").replace(/ /g, "&") | |
| } | |
| function q(k, r) { | |
| var x = 0; | |
| r.each(function() { | |
| if (this.nodeName === (k[x] && k[x].nodeName)) { | |
| var F = n.data(k[x++]), | |
| E = n.data(this, F); | |
| if (F = F && F.events) { | |
| delete E.handle; | |
| E.events = {}; | |
| for (var T in F) | |
| for (var V in F[T]) n.event.add(this, T, F[T][V], F[T][V].data) | |
| } | |
| } | |
| }) | |
| } | |
| function I(k, r, x) { | |
| var F, E, T; | |
| r = r && r[0] ? r[0].ownerDocument || r[0] : t; | |
| if (k.length === 1 && typeof k[0] === "string" && k[0].length < 512 && r === t && !Za.test(k[0]) && (n.support.checkClone || !$a.test(k[0]))) { | |
| E = true; | |
| if (T = n.fragments[k[0]]) | |
| if (T !== | |
| 1) F = T | |
| } | |
| if (!F) { | |
| F = r.createDocumentFragment(); | |
| n.clean(k, r, F, x) | |
| } | |
| if (E) n.fragments[k[0]] = T ? F : 1; | |
| return { | |
| fragment: F, | |
| cacheable: E | |
| } | |
| } | |
| function K(k, r) { | |
| var x = {}; | |
| n.each(ab.concat.apply([], ab.slice(0, r)), function() { | |
| x[this] = k | |
| }); | |
| return x | |
| } | |
| function Q(k) { | |
| return "scrollTo" in k && k.document ? k : k.nodeType === 9 ? k.defaultView || k.parentWindow : false | |
| } | |
| var n = function(k, r) { | |
| return new n.fn.init(k, r) | |
| }, | |
| G = a.jQuery, | |
| p = a.$, | |
| t = a.document, | |
| z, D = /^[^<]*(<[\w\W]+>)[^>]*$|^#([\w-]+)$/, | |
| M = /^.[^:#\[\.,]*$/, | |
| B = /\S/, | |
| m = /^(\s|\u00A0)+|(\s|\u00A0)+$/g, | |
| u = /^<(\w+)\s*\/?>(?:<\/\1>)?$/, | |
| y = navigator.userAgent, | |
| H = false, | |
| J = [], | |
| R, U = Object.prototype.toString, | |
| X = Object.prototype.hasOwnProperty, | |
| ga = Array.prototype.push, | |
| ja = Array.prototype.slice, | |
| la = Array.prototype.indexOf; | |
| n.fn = n.prototype = { | |
| init: function(k, r) { | |
| var x, F; | |
| if (!k) return this; | |
| if (k.nodeType) { | |
| this.context = this[0] = k; | |
| this.length = 1; | |
| return this | |
| } | |
| if (k === "body" && !r) { | |
| this.context = t; | |
| this[0] = t.body; | |
| this.selector = "body"; | |
| this.length = 1; | |
| return this | |
| } | |
| if (typeof k === "string") | |
| if ((x = D.exec(k)) && (x[1] || !r)) | |
| if (x[1]) { | |
| F = r ? r.ownerDocument || r : t; | |
| if (k = u.exec(k)) | |
| if (n.isPlainObject(r)) { | |
| k = [t.createElement(k[1])]; | |
| n.fn.attr.call(k, r, true) | |
| } else k = [F.createElement(k[1])]; | |
| else { | |
| k = I([x[1]], [F]); | |
| k = (k.cacheable ? k.fragment.cloneNode(true) : k.fragment).childNodes | |
| } | |
| return n.merge(this, k) | |
| } else { | |
| if (r = t.getElementById(x[2])) { | |
| if (r.id !== x[2]) return z.find(k); | |
| this.length = 1; | |
| this[0] = r | |
| } | |
| this.context = t; | |
| this.selector = k; | |
| return this | |
| } else if (!r && /^\w+$/.test(k)) { | |
| this.selector = k; | |
| this.context = t; | |
| k = t.getElementsByTagName(k); | |
| return n.merge(this, k) | |
| } else return !r || r.jquery ? (r || z).find(k) : n(r).find(k); | |
| else if (n.isFunction(k)) return z.ready(k); | |
| if (k.selector !== b) { | |
| this.selector = k.selector; | |
| this.context = k.context | |
| } | |
| return n.makeArray(k, this) | |
| }, | |
| selector: "", | |
| jquery: "1.4.2", | |
| length: 0, | |
| size: function() { | |
| return this.length | |
| }, | |
| toArray: function() { | |
| return ja.call(this, 0) | |
| }, | |
| get: function(k) { | |
| return k == null ? this.toArray() : k < 0 ? this.slice(k)[0] : this[k] | |
| }, | |
| pushStack: function(k, r, x) { | |
| var F = n(); | |
| n.isArray(k) ? ga.apply(F, k) : n.merge(F, k); | |
| F.prevObject = this; | |
| F.context = this.context; | |
| if (r === "find") F.selector = this.selector + (this.selector ? " " : "") + x; | |
| else if (r) F.selector = this.selector + | |
| "." + r + "(" + x + ")"; | |
| return F | |
| }, | |
| each: function(k, r) { | |
| return n.each(this, k, r) | |
| }, | |
| ready: function(k) { | |
| n.bindReady(); | |
| if (n.isReady) k.call(t, n); | |
| else J && J.push(k); | |
| return this | |
| }, | |
| eq: function(k) { | |
| return k === -1 ? this.slice(k) : this.slice(k, +k + 1) | |
| }, | |
| first: function() { | |
| return this.eq(0) | |
| }, | |
| last: function() { | |
| return this.eq(-1) | |
| }, | |
| slice: function() { | |
| return this.pushStack(ja.apply(this, arguments), "slice", ja.call(arguments).join(",")) | |
| }, | |
| map: function(k) { | |
| return this.pushStack(n.map(this, function(r, x) { | |
| return k.call(r, x, r) | |
| })) | |
| }, | |
| end: function() { | |
| return this.prevObject || | |
| n(null) | |
| }, | |
| push: ga, | |
| sort: [].sort, | |
| splice: [].splice | |
| }; | |
| n.fn.init.prototype = n.fn; | |
| n.extend = n.fn.extend = function() { | |
| var k = arguments[0] || {}, | |
| r = 1, | |
| x = arguments.length, | |
| F = false, | |
| E, T, V, ca; | |
| if (typeof k === "boolean") { | |
| F = k; | |
| k = arguments[1] || {}; | |
| r = 2 | |
| } | |
| if (typeof k !== "object" && !n.isFunction(k)) k = {}; | |
| if (x === r) { | |
| k = this; | |
| --r | |
| } | |
| for (; r < x; r++) | |
| if ((E = arguments[r]) != null) | |
| for (T in E) { | |
| V = k[T]; | |
| ca = E[T]; | |
| if (k !== ca) | |
| if (F && ca && (n.isPlainObject(ca) || n.isArray(ca))) { | |
| V = V && (n.isPlainObject(V) || n.isArray(V)) ? V : n.isArray(ca) ? [] : {}; | |
| k[T] = n.extend(F, V, ca) | |
| } else if (ca !== | |
| b) k[T] = ca | |
| } | |
| return k | |
| }; | |
| n.extend({ | |
| noConflict: function(k) { | |
| a.$ = p; | |
| if (k) a.jQuery = G; | |
| return n | |
| }, | |
| isReady: false, | |
| ready: function() { | |
| if (!n.isReady) { | |
| if (!t.body) return setTimeout(n.ready, 13); | |
| n.isReady = true; | |
| if (J) { | |
| for (var k, r = 0; k = J[r++];) k.call(t, n); | |
| J = null | |
| } | |
| n.fn.triggerHandler && n(t).triggerHandler("ready") | |
| } | |
| }, | |
| bindReady: function() { | |
| if (!H) { | |
| H = true; | |
| if (t.readyState === "complete") return n.ready(); | |
| if (t.addEventListener) { | |
| t.addEventListener("DOMContentLoaded", R, false); | |
| a.addEventListener("load", n.ready, false) | |
| } else if (t.attachEvent) { | |
| t.attachEvent("onreadystatechange", | |
| R); | |
| a.attachEvent("onload", n.ready); | |
| var k = false; | |
| try { | |
| k = a.frameElement == null | |
| } catch (r) {} | |
| t.documentElement.doScroll && k && d() | |
| } | |
| } | |
| }, | |
| isFunction: function(k) { | |
| return U.call(k) === "[object Function]" | |
| }, | |
| isArray: function(k) { | |
| return U.call(k) === "[object Array]" | |
| }, | |
| isPlainObject: function(k) { | |
| if (!k || U.call(k) !== "[object Object]" || k.nodeType || k.setInterval) return false; | |
| if (k.constructor && !X.call(k, "constructor") && !X.call(k.constructor.prototype, "isPrototypeOf")) return false; | |
| for (var r in k); | |
| return r === b || X.call(k, r) | |
| }, | |
| isEmptyObject: function(k) { | |
| for (var r in k) return false; | |
| return true | |
| }, | |
| error: function(k) { | |
| throw k; | |
| }, | |
| parseJSON: function(k) { | |
| if (typeof k !== "string" || !k) return null; | |
| k = n.trim(k); | |
| if (/^[\],:{}\s]*$/.test(k.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, "@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, "]").replace(/(?:^|:|,)(?:\s*\[)+/g, ""))) return a.JSON && a.JSON.parse ? a.JSON.parse(k) : (new Function("return " + k))(); | |
| else n.error("Invalid JSON: " + k) | |
| }, | |
| noop: function() {}, | |
| globalEval: function(k) { | |
| if (k && B.test(k)) { | |
| var r = t.getElementsByTagName("head")[0] || | |
| t.documentElement, | |
| x = t.createElement("script"); | |
| x.type = "text/javascript"; | |
| if (n.support.scriptEval) x.appendChild(t.createTextNode(k)); | |
| else x.text = k; | |
| r.insertBefore(x, r.firstChild); | |
| r.removeChild(x) | |
| } | |
| }, | |
| nodeName: function(k, r) { | |
| return k.nodeName && k.nodeName.toUpperCase() === r.toUpperCase() | |
| }, | |
| each: function(k, r, x) { | |
| var F, E = 0, | |
| T = k.length, | |
| V = T === b || n.isFunction(k); | |
| if (x) | |
| if (V) | |
| for (F in k) { | |
| if (r.apply(k[F], x) === false) break | |
| } else | |
| for (; E < T;) { | |
| if (r.apply(k[E++], x) === false) break | |
| } else if (V) | |
| for (F in k) { | |
| if (r.call(k[F], F, k[F]) === false) break | |
| } else | |
| for (x = | |
| k[0]; E < T && r.call(x, E, x) !== false; x = k[++E]); | |
| return k | |
| }, | |
| trim: function(k) { | |
| return (k || "").replace(m, "") | |
| }, | |
| makeArray: function(k, r) { | |
| r = r || []; | |
| if (k != null) k.length == null || typeof k === "string" || n.isFunction(k) || typeof k !== "function" && k.setInterval ? ga.call(r, k) : n.merge(r, k); | |
| return r | |
| }, | |
| inArray: function(k, r) { | |
| if (r.indexOf) return r.indexOf(k); | |
| for (var x = 0, F = r.length; x < F; x++) | |
| if (r[x] === k) return x; | |
| return -1 | |
| }, | |
| merge: function(k, r) { | |
| var x = k.length, | |
| F = 0; | |
| if (typeof r.length === "number") | |
| for (var E = r.length; F < E; F++) k[x++] = r[F]; | |
| else | |
| for (; r[F] !== | |
| b;) k[x++] = r[F++]; | |
| k.length = x; | |
| return k | |
| }, | |
| grep: function(k, r, x) { | |
| for (var F = [], E = 0, T = k.length; E < T; E++) !x !== !r(k[E], E) && F.push(k[E]); | |
| return F | |
| }, | |
| map: function(k, r, x) { | |
| for (var F = [], E, T = 0, V = k.length; T < V; T++) { | |
| E = r(k[T], T, x); | |
| if (E != null) F[F.length] = E | |
| } | |
| return F.concat.apply([], F) | |
| }, | |
| guid: 1, | |
| proxy: function(k, r, x) { | |
| if (arguments.length === 2) | |
| if (typeof r === "string") { | |
| x = k; | |
| k = x[r]; | |
| r = b | |
| } else if (r && !n.isFunction(r)) { | |
| x = r; | |
| r = b | |
| } | |
| if (!r && k) r = function() { | |
| return k.apply(x || this, arguments) | |
| }; | |
| if (k) r.guid = k.guid = k.guid || r.guid || n.guid++; | |
| return r | |
| }, | |
| uaMatch: function(k) { | |
| k = k.toLowerCase(); | |
| k = /(webkit)[ \/]([\w.]+)/.exec(k) || /(opera)(?:.*version)?[ \/]([\w.]+)/.exec(k) || /(msie) ([\w.]+)/.exec(k) || !/compatible/.test(k) && /(mozilla)(?:.*? rv:([\w.]+))?/.exec(k) || []; | |
| return { | |
| browser: k[1] || "", | |
| version: k[2] || "0" | |
| } | |
| }, | |
| browser: {} | |
| }); | |
| y = n.uaMatch(y); | |
| if (y.browser) { | |
| n.browser[y.browser] = true; | |
| n.browser.version = y.version | |
| } | |
| if (n.browser.webkit) n.browser.safari = true; | |
| if (la) n.inArray = function(k, r) { | |
| return la.call(r, k) | |
| }; | |
| z = n(t); | |
| if (t.addEventListener) R = function() { | |
| t.removeEventListener("DOMContentLoaded", | |
| R, false); | |
| n.ready() | |
| }; | |
| else if (t.attachEvent) R = function() { | |
| if (t.readyState === "complete") { | |
| t.detachEvent("onreadystatechange", R); | |
| n.ready() | |
| } | |
| }; | |
| (function() { | |
| n.support = {}; | |
| var k = t.documentElement, | |
| r = t.createElement("script"), | |
| x = t.createElement("div"), | |
| F = "script" + j(); | |
| x.style.display = "none"; | |
| x.innerHTML = " <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>"; | |
| var E = x.getElementsByTagName("*"), | |
| T = x.getElementsByTagName("a")[0]; | |
| if (!(!E || !E.length || !T)) { | |
| n.support = { | |
| leadingWhitespace: x.firstChild.nodeType === 3, | |
| tbody: !x.getElementsByTagName("tbody").length, | |
| htmlSerialize: !!x.getElementsByTagName("link").length, | |
| style: /red/.test(T.getAttribute("style")), | |
| hrefNormalized: T.getAttribute("href") === "/a", | |
| opacity: /^0.55$/.test(T.style.opacity), | |
| cssFloat: !!T.style.cssFloat, | |
| checkOn: x.getElementsByTagName("input")[0].value === "on", | |
| optSelected: t.createElement("select").appendChild(t.createElement("option")).selected, | |
| parentNode: x.removeChild(x.appendChild(t.createElement("div"))).parentNode === | |
| null, | |
| deleteExpando: true, | |
| checkClone: false, | |
| scriptEval: false, | |
| noCloneEvent: true, | |
| boxModel: null | |
| }; | |
| r.type = "text/javascript"; | |
| try { | |
| r.appendChild(t.createTextNode("window." + F + "=1;")) | |
| } catch (V) {} | |
| k.insertBefore(r, k.firstChild); | |
| if (a[F]) { | |
| n.support.scriptEval = true; | |
| delete a[F] | |
| } | |
| try { | |
| delete r.test | |
| } catch (ca) { | |
| n.support.deleteExpando = false | |
| } | |
| k.removeChild(r); | |
| if (x.attachEvent && x.fireEvent) { | |
| x.attachEvent("onclick", function aa() { | |
| n.support.noCloneEvent = false; | |
| x.detachEvent("onclick", aa) | |
| }); | |
| x.cloneNode(true).fireEvent("onclick") | |
| } | |
| x = | |
| t.createElement("div"); | |
| x.innerHTML = "<input type='radio' name='radiotest' checked='checked'/>"; | |
| k = t.createDocumentFragment(); | |
| k.appendChild(x.firstChild); | |
| n.support.checkClone = k.cloneNode(true).cloneNode(true).lastChild.checked; | |
| n(function() { | |
| var aa = t.createElement("div"); | |
| aa.style.width = aa.style.paddingLeft = "1px"; | |
| t.body.appendChild(aa); | |
| n.boxModel = n.support.boxModel = aa.offsetWidth === 2; | |
| t.body.removeChild(aa).style.display = "none" | |
| }); | |
| k = function(aa) { | |
| var da = t.createElement("div"); | |
| aa = "on" + aa; | |
| var ha = aa in da; | |
| if (!ha) { | |
| da.setAttribute(aa, | |
| "return;"); | |
| ha = typeof da[aa] === "function" | |
| } | |
| return ha | |
| }; | |
| n.support.submitBubbles = k("submit"); | |
| n.support.changeBubbles = k("change"); | |
| k = r = x = E = T = null | |
| } | |
| })(); | |
| n.props = { | |
| "for": "htmlFor", | |
| "class": "className", | |
| readonly: "readOnly", | |
| maxlength: "maxLength", | |
| cellspacing: "cellSpacing", | |
| rowspan: "rowSpan", | |
| colspan: "colSpan", | |
| tabindex: "tabIndex", | |
| usemap: "useMap", | |
| frameborder: "frameBorder" | |
| }; | |
| var ka = "jQuery" + j(), | |
| ra = 0, | |
| pa = {}; | |
| n.extend({ | |
| cache: {}, | |
| expando: ka, | |
| noData: { | |
| embed: true, | |
| object: true, | |
| applet: true | |
| }, | |
| data: function(k, r, x) { | |
| if (!(k.nodeName && n.noData[k.nodeName.toLowerCase()])) { | |
| k = | |
| k == a ? pa : k; | |
| var F = k[ka], | |
| E = n.cache; | |
| if (!F && typeof r === "string" && x === b) return null; | |
| F || (F = ++ra); | |
| if (typeof r === "object") { | |
| k[ka] = F; | |
| E[F] = n.extend(true, {}, r) | |
| } else if (!E[F]) { | |
| k[ka] = F; | |
| E[F] = {} | |
| } | |
| k = E[F]; | |
| if (x !== b) k[r] = x; | |
| return typeof r === "string" ? k[r] : k | |
| } | |
| }, | |
| removeData: function(k, r) { | |
| if (!(k.nodeName && n.noData[k.nodeName.toLowerCase()])) { | |
| k = k == a ? pa : k; | |
| var x = k[ka], | |
| F = n.cache, | |
| E = F[x]; | |
| if (r) { | |
| if (E) { | |
| delete E[r]; | |
| n.isEmptyObject(E) && n.removeData(k) | |
| } | |
| } else { | |
| if (n.support.deleteExpando) delete k[n.expando]; | |
| else k.removeAttribute && k.removeAttribute(n.expando); | |
| delete F[x] | |
| } | |
| } | |
| } | |
| }); | |
| n.fn.extend({ | |
| data: function(k, r) { | |
| if (typeof k === "undefined" && this.length) return n.data(this[0]); | |
| else if (typeof k === "object") return this.each(function() { | |
| n.data(this, k) | |
| }); | |
| var x = k.split("."); | |
| x[1] = x[1] ? "." + x[1] : ""; | |
| if (r === b) { | |
| var F = this.triggerHandler("getData" + x[1] + "!", [x[0]]); | |
| if (F === b && this.length) F = n.data(this[0], k); | |
| return F === b && x[1] ? this.data(x[0]) : F | |
| } else return this.trigger("setData" + x[1] + "!", [x[0], r]).each(function() { | |
| n.data(this, k, r) | |
| }) | |
| }, | |
| removeData: function(k) { | |
| return this.each(function() { | |
| n.removeData(this, | |
| k) | |
| }) | |
| } | |
| }); | |
| n.extend({ | |
| queue: function(k, r, x) { | |
| if (k) { | |
| r = (r || "fx") + "queue"; | |
| var F = n.data(k, r); | |
| if (!x) return F || []; | |
| if (!F || n.isArray(x)) F = n.data(k, r, n.makeArray(x)); | |
| else F.push(x); | |
| return F | |
| } | |
| }, | |
| dequeue: function(k, r) { | |
| r = r || "fx"; | |
| var x = n.queue(k, r), | |
| F = x.shift(); | |
| if (F === "inprogress") F = x.shift(); | |
| if (F) { | |
| r === "fx" && x.unshift("inprogress"); | |
| F.call(k, function() { | |
| n.dequeue(k, r) | |
| }) | |
| } | |
| } | |
| }); | |
| n.fn.extend({ | |
| queue: function(k, r) { | |
| if (typeof k !== "string") { | |
| r = k; | |
| k = "fx" | |
| } | |
| if (r === b) return n.queue(this[0], k); | |
| return this.each(function() { | |
| var x = n.queue(this, | |
| k, r); | |
| k === "fx" && x[0] !== "inprogress" && n.dequeue(this, k) | |
| }) | |
| }, | |
| dequeue: function(k) { | |
| return this.each(function() { | |
| n.dequeue(this, k) | |
| }) | |
| }, | |
| delay: function(k, r) { | |
| k = n.fx ? n.fx.speeds[k] || k : k; | |
| r = r || "fx"; | |
| return this.queue(r, function() { | |
| var x = this; | |
| setTimeout(function() { | |
| n.dequeue(x, r) | |
| }, k) | |
| }) | |
| }, | |
| clearQueue: function(k) { | |
| return this.queue(k || "fx", []) | |
| } | |
| }); | |
| var xa = /[\n\t]/g, | |
| P = /\s+/, | |
| O = /\r/g, | |
| L = /href|src|style/, | |
| W = /(button|input)/i, | |
| Z = /(button|input|object|select|textarea)/i, | |
| ia = /^(a|area)$/i, | |
| ma = /radio|checkbox/; | |
| n.fn.extend({ | |
| attr: function(k, | |
| r) { | |
| return g(this, k, r, true, n.attr) | |
| }, | |
| removeAttr: function(k) { | |
| return this.each(function() { | |
| n.attr(this, k, ""); | |
| this.nodeType === 1 && this.removeAttribute(k) | |
| }) | |
| }, | |
| addClass: function(k) { | |
| if (n.isFunction(k)) return this.each(function(da) { | |
| var ha = n(this); | |
| ha.addClass(k.call(this, da, ha.attr("class"))) | |
| }); | |
| if (k && typeof k === "string") | |
| for (var r = (k || "").split(P), x = 0, F = this.length; x < F; x++) { | |
| var E = this[x]; | |
| if (E.nodeType === 1) | |
| if (E.className) { | |
| for (var T = " " + E.className + " ", V = E.className, ca = 0, aa = r.length; ca < aa; ca++) | |
| if (T.indexOf(" " + r[ca] + | |
| " ") < 0) V += " " + r[ca]; | |
| E.className = n.trim(V) | |
| } else E.className = k | |
| } | |
| return this | |
| }, | |
| removeClass: function(k) { | |
| if (n.isFunction(k)) return this.each(function(aa) { | |
| var da = n(this); | |
| da.removeClass(k.call(this, aa, da.attr("class"))) | |
| }); | |
| if (k && typeof k === "string" || k === b) | |
| for (var r = (k || "").split(P), x = 0, F = this.length; x < F; x++) { | |
| var E = this[x]; | |
| if (E.nodeType === 1 && E.className) | |
| if (k) { | |
| for (var T = (" " + E.className + " ").replace(xa, " "), V = 0, ca = r.length; V < ca; V++) T = T.replace(" " + r[V] + " ", " "); | |
| E.className = n.trim(T) | |
| } else E.className = "" | |
| } | |
| return this | |
| }, | |
| toggleClass: function(k, r) { | |
| var x = typeof k, | |
| F = typeof r === "boolean"; | |
| if (n.isFunction(k)) return this.each(function(E) { | |
| var T = n(this); | |
| T.toggleClass(k.call(this, E, T.attr("class"), r), r) | |
| }); | |
| return this.each(function() { | |
| if (x === "string") | |
| for (var E, T = 0, V = n(this), ca = r, aa = k.split(P); E = aa[T++];) { | |
| ca = F ? ca : !V.hasClass(E); | |
| V[ca ? "addClass" : "removeClass"](E) | |
| } else if (x === "undefined" || x === "boolean") { | |
| this.className && n.data(this, "__className__", this.className); | |
| this.className = this.className || k === false ? "" : n.data(this, "__className__") || | |
| "" | |
| } | |
| }) | |
| }, | |
| hasClass: function(k) { | |
| k = " " + k + " "; | |
| for (var r = 0, x = this.length; r < x; r++) | |
| if ((" " + this[r].className + " ").replace(xa, " ").indexOf(k) > -1) return true; | |
| return false | |
| }, | |
| val: function(k) { | |
| if (k === b) { | |
| var r = this[0]; | |
| if (r) { | |
| if (n.nodeName(r, "option")) return (r.attributes.value || {}).specified ? r.value : r.text; | |
| if (n.nodeName(r, "select")) { | |
| var x = r.selectedIndex, | |
| F = [], | |
| E = r.options; | |
| r = r.type === "select-one"; | |
| if (x < 0) return null; | |
| var T = r ? x : 0; | |
| for (x = r ? x + 1 : E.length; T < x; T++) { | |
| var V = E[T]; | |
| if (V.selected) { | |
| k = n(V).val(); | |
| if (r) return k; | |
| F.push(k) | |
| } | |
| } | |
| return F | |
| } | |
| if (ma.test(r.type) && | |
| !n.support.checkOn) return r.getAttribute("value") === null ? "on" : r.value; | |
| return (r.value || "").replace(O, "") | |
| } | |
| return b | |
| } | |
| var ca = n.isFunction(k); | |
| return this.each(function(aa) { | |
| var da = n(this), | |
| ha = k; | |
| if (this.nodeType === 1) { | |
| if (ca) ha = k.call(this, aa, da.val()); | |
| if (typeof ha === "number") ha += ""; | |
| if (n.isArray(ha) && ma.test(this.type)) this.checked = n.inArray(da.val(), ha) >= 0; | |
| else if (n.nodeName(this, "select")) { | |
| var qa = n.makeArray(ha); | |
| n("option", this).each(function() { | |
| this.selected = n.inArray(n(this).val(), qa) >= 0 | |
| }); | |
| if (!qa.length) this.selectedIndex = -1 | |
| } else this.value = ha | |
| } | |
| }) | |
| } | |
| }); | |
| n.extend({ | |
| attrFn: { | |
| val: true, | |
| css: true, | |
| html: true, | |
| text: true, | |
| data: true, | |
| width: true, | |
| height: true, | |
| offset: true | |
| }, | |
| attr: function(k, r, x, F) { | |
| if (!k || k.nodeType === 3 || k.nodeType === 8) return b; | |
| if (F && r in n.attrFn) return n(k)[r](x); | |
| F = k.nodeType !== 1 || !n.isXMLDoc(k); | |
| var E = x !== b; | |
| r = F && n.props[r] || r; | |
| if (k.nodeType === 1) { | |
| var T = L.test(r); | |
| if (r in k && F && !T) { | |
| if (E) { | |
| r === "type" && W.test(k.nodeName) && k.parentNode && n.error("type property can't be changed"); | |
| k[r] = x | |
| } | |
| if (n.nodeName(k, "form") && k.getAttributeNode(r)) return k.getAttributeNode(r).nodeValue; | |
| if (r === "tabIndex") return (r = k.getAttributeNode("tabIndex")) && r.specified ? r.value : Z.test(k.nodeName) || ia.test(k.nodeName) && k.href ? 0 : b; | |
| return k[r] | |
| } | |
| if (!n.support.style && F && r === "style") { | |
| if (E) k.style.cssText = "" + x; | |
| return k.style.cssText | |
| } | |
| E && k.setAttribute(r, "" + x); | |
| k = !n.support.hrefNormalized && F && T ? k.getAttribute(r, 2) : k.getAttribute(r); | |
| return k === null ? b : k | |
| } | |
| return n.style(k, r, x) | |
| } | |
| }); | |
| var ua = /\.(.*)$/, | |
| ta = function(k) { | |
| return k.replace(/[^\w\s\.\|`]/g, function(r) { | |
| return "\\" + r | |
| }) | |
| }; | |
| n.event = { | |
| add: function(k, r, x, F) { | |
| if (!(k.nodeType === | |
| 3 || k.nodeType === 8)) { | |
| if (k.setInterval && k !== a && !k.frameElement) k = a; | |
| var E, T; | |
| if (x.handler) { | |
| E = x; | |
| x = E.handler | |
| } | |
| if (!x.guid) x.guid = n.guid++; | |
| if (T = n.data(k)) { | |
| var V = T.events = T.events || {}, | |
| ca = T.handle; | |
| if (!ca) T.handle = ca = function() { | |
| return typeof n !== "undefined" && !n.event.triggered ? n.event.handle.apply(ca.elem, arguments) : b | |
| }; | |
| ca.elem = k; | |
| r = r.split(" "); | |
| for (var aa, da = 0, ha; aa = r[da++];) { | |
| T = E ? n.extend({}, E) : { | |
| handler: x, | |
| data: F | |
| }; | |
| if (aa.indexOf(".") > -1) { | |
| ha = aa.split("."); | |
| aa = ha.shift(); | |
| T.namespace = ha.slice(0).sort().join(".") | |
| } else { | |
| ha = []; | |
| T.namespace = "" | |
| } | |
| T.type = aa; | |
| T.guid = x.guid; | |
| var qa = V[aa], | |
| wa = n.event.special[aa] || {}; | |
| if (!qa) { | |
| qa = V[aa] = []; | |
| if (!wa.setup || wa.setup.call(k, F, ha, ca) === false) | |
| if (k.addEventListener) k.addEventListener(aa, ca, false); | |
| else k.attachEvent && k.attachEvent("on" + aa, ca) | |
| } | |
| if (wa.add) { | |
| wa.add.call(k, T); | |
| if (!T.handler.guid) T.handler.guid = x.guid | |
| } | |
| qa.push(T); | |
| n.event.global[aa] = true | |
| } | |
| k = null | |
| } | |
| } | |
| }, | |
| global: {}, | |
| remove: function(k, r, x, F) { | |
| if (!(k.nodeType === 3 || k.nodeType === 8)) { | |
| var E, T = 0, | |
| V, ca, aa, da, ha, qa, wa = n.data(k), | |
| Ba = wa && wa.events; | |
| if (wa && Ba) { | |
| if (r && | |
| r.type) { | |
| x = r.handler; | |
| r = r.type | |
| } | |
| if (!r || typeof r === "string" && r.charAt(0) === ".") { | |
| r = r || ""; | |
| for (E in Ba) n.event.remove(k, E + r) | |
| } else { | |
| for (r = r.split(" "); E = r[T++];) { | |
| da = E; | |
| V = E.indexOf(".") < 0; | |
| ca = []; | |
| if (!V) { | |
| ca = E.split("."); | |
| E = ca.shift(); | |
| aa = RegExp("(^|\\.)" + n.map(ca.slice(0).sort(), ta).join("\\.(?:.*\\.)?") + "(\\.|$)") | |
| } | |
| if (ha = Ba[E]) | |
| if (x) { | |
| da = n.event.special[E] || {}; | |
| for (ya = F || 0; ya < ha.length; ya++) { | |
| qa = ha[ya]; | |
| if (x.guid === qa.guid) { | |
| if (V || aa.test(qa.namespace)) { | |
| F == null && ha.splice(ya--, 1); | |
| da.remove && da.remove.call(k, qa) | |
| } | |
| if (F != | |
| null) break | |
| } | |
| } | |
| if (ha.length === 0 || F != null && ha.length === 1) { | |
| if (!da.teardown || da.teardown.call(k, ca) === false) za(k, E, wa.handle); | |
| delete Ba[E] | |
| } | |
| } else | |
| for (var ya = 0; ya < ha.length; ya++) { | |
| qa = ha[ya]; | |
| if (V || aa.test(qa.namespace)) { | |
| n.event.remove(k, da, qa.handler, ya); | |
| ha.splice(ya--, 1) | |
| } | |
| } | |
| } | |
| if (n.isEmptyObject(Ba)) { | |
| if (r = wa.handle) r.elem = null; | |
| delete wa.events; | |
| delete wa.handle; | |
| n.isEmptyObject(wa) && n.removeData(k) | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| trigger: function(k, r, x, F) { | |
| var E = k.type || k; | |
| if (!F) { | |
| k = typeof k === "object" ? k[ka] ? k : n.extend(n.Event(E), k) : n.Event(E); | |
| if (E.indexOf("!") >= 0) { | |
| k.type = E = E.slice(0, -1); | |
| k.exclusive = true | |
| } | |
| if (!x) { | |
| k.stopPropagation(); | |
| n.event.global[E] && n.each(n.cache, function() { | |
| this.events && this.events[E] && n.event.trigger(k, r, this.handle.elem) | |
| }) | |
| } | |
| if (!x || x.nodeType === 3 || x.nodeType === 8) return b; | |
| k.result = b; | |
| k.target = x; | |
| r = n.makeArray(r); | |
| r.unshift(k) | |
| } | |
| k.currentTarget = x; | |
| (F = n.data(x, "handle")) && F.apply(x, r); | |
| F = x.parentNode || x.ownerDocument; | |
| try { | |
| if (!(x && x.nodeName && n.noData[x.nodeName.toLowerCase()])) | |
| if (x["on" + E] && x["on" + E].apply(x, r) === false) k.result = | |
| false | |
| } catch (T) {} | |
| if (!k.isPropagationStopped() && F) n.event.trigger(k, r, F, true); | |
| else if (!k.isDefaultPrevented()) { | |
| F = k.target; | |
| var V, ca = n.nodeName(F, "a") && E === "click", | |
| aa = n.event.special[E] || {}; | |
| if ((!aa._default || aa._default.call(x, k) === false) && !ca && !(F && F.nodeName && n.noData[F.nodeName.toLowerCase()])) { | |
| try { | |
| if (F[E]) { | |
| if (V = F["on" + E]) F["on" + E] = null; | |
| n.event.triggered = true; | |
| F[E]() | |
| } | |
| } catch (da) {} | |
| if (V) F["on" + E] = V; | |
| n.event.triggered = false | |
| } | |
| } | |
| }, | |
| handle: function(k) { | |
| var r, x, F, E; | |
| k = arguments[0] = n.event.fix(k || a.event); | |
| k.currentTarget = | |
| this; | |
| r = k.type.indexOf(".") < 0 && !k.exclusive; | |
| if (!r) { | |
| x = k.type.split("."); | |
| k.type = x.shift(); | |
| F = RegExp("(^|\\.)" + x.slice(0).sort().join("\\.(?:.*\\.)?") + "(\\.|$)") | |
| } | |
| E = n.data(this, "events"); | |
| x = E[k.type]; | |
| if (E && x) { | |
| x = x.slice(0); | |
| E = 0; | |
| for (var T = x.length; E < T; E++) { | |
| var V = x[E]; | |
| if (r || F.test(V.namespace)) { | |
| k.handler = V.handler; | |
| k.data = V.data; | |
| k.handleObj = V; | |
| V = V.handler.apply(this, arguments); | |
| if (V !== b) { | |
| k.result = V; | |
| if (V === false) { | |
| k.preventDefault(); | |
| k.stopPropagation() | |
| } | |
| } | |
| if (k.isImmediatePropagationStopped()) break | |
| } | |
| } | |
| } | |
| return k.result | |
| }, | |
| props: "altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "), | |
| fix: function(k) { | |
| if (k[ka]) return k; | |
| var r = k; | |
| k = n.Event(r); | |
| for (var x = this.props.length, F; x;) { | |
| F = this.props[--x]; | |
| k[F] = r[F] | |
| } | |
| if (!k.target) k.target = k.srcElement || | |
| t; | |
| if (k.target.nodeType === 3) k.target = k.target.parentNode; | |
| if (!k.relatedTarget && k.fromElement) k.relatedTarget = k.fromElement === k.target ? k.toElement : k.fromElement; | |
| if (k.pageX == null && k.clientX != null) { | |
| r = t.documentElement; | |
| x = t.body; | |
| k.pageX = k.clientX + (r && r.scrollLeft || x && x.scrollLeft || 0) - (r && r.clientLeft || x && x.clientLeft || 0); | |
| k.pageY = k.clientY + (r && r.scrollTop || x && x.scrollTop || 0) - (r && r.clientTop || x && x.clientTop || 0) | |
| } | |
| if (!k.which && (k.charCode || k.charCode === 0 ? k.charCode : k.keyCode)) k.which = k.charCode || k.keyCode; | |
| if (!k.metaKey && | |
| k.ctrlKey) k.metaKey = k.ctrlKey; | |
| if (!k.which && k.button !== b) k.which = k.button & 1 ? 1 : k.button & 2 ? 3 : k.button & 4 ? 2 : 0; | |
| return k | |
| }, | |
| guid: 1E8, | |
| proxy: n.proxy, | |
| special: { | |
| ready: { | |
| setup: n.bindReady, | |
| teardown: n.noop | |
| }, | |
| live: { | |
| add: function(k) { | |
| n.event.add(this, k.origType, n.extend({}, k, { | |
| handler: A | |
| })) | |
| }, | |
| remove: function(k) { | |
| var r = true, | |
| x = k.origType.replace(ua, ""); | |
| n.each(n.data(this, "events").live || [], function() { | |
| if (x === this.origType.replace(ua, "")) return r = false | |
| }); | |
| r && n.event.remove(this, k.origType, A) | |
| } | |
| }, | |
| beforeunload: { | |
| setup: function(k, r, x) { | |
| if (this.setInterval) this.onbeforeunload = | |
| x; | |
| return false | |
| }, | |
| teardown: function(k, r) { | |
| if (this.onbeforeunload === r) this.onbeforeunload = null | |
| } | |
| } | |
| } | |
| }; | |
| var za = t.removeEventListener ? function(k, r, x) { | |
| k.removeEventListener(r, x, false) | |
| } : function(k, r, x) { | |
| k.detachEvent("on" + r, x) | |
| }; | |
| n.Event = function(k) { | |
| if (!this.preventDefault) return new n.Event(k); | |
| if (k && k.type) { | |
| this.originalEvent = k; | |
| this.type = k.type | |
| } else this.type = k; | |
| this.timeStamp = j(); | |
| this[ka] = true | |
| }; | |
| n.Event.prototype = { | |
| preventDefault: function() { | |
| this.isDefaultPrevented = o; | |
| var k = this.originalEvent; | |
| if (k) { | |
| k.preventDefault && | |
| k.preventDefault(); | |
| k.returnValue = false | |
| } | |
| }, | |
| stopPropagation: function() { | |
| this.isPropagationStopped = o; | |
| var k = this.originalEvent; | |
| if (k) { | |
| k.stopPropagation && k.stopPropagation(); | |
| k.cancelBubble = true | |
| } | |
| }, | |
| stopImmediatePropagation: function() { | |
| this.isImmediatePropagationStopped = o; | |
| this.stopPropagation() | |
| }, | |
| isDefaultPrevented: l, | |
| isPropagationStopped: l, | |
| isImmediatePropagationStopped: l | |
| }; | |
| var Aa = function(k) { | |
| var r = k.relatedTarget; | |
| try { | |
| for (; r && r !== this;) r = r.parentNode; | |
| if (r !== this) { | |
| k.type = k.data; | |
| n.event.handle.apply(this, arguments) | |
| } | |
| } catch (x) {} | |
| }, | |
| Ha = function(k) { | |
| k.type = k.data; | |
| n.event.handle.apply(this, arguments) | |
| }; | |
| n.each({ | |
| mouseenter: "mouseover", | |
| mouseleave: "mouseout" | |
| }, function(k, r) { | |
| n.event.special[k] = { | |
| setup: function(x) { | |
| n.event.add(this, r, x && x.selector ? Ha : Aa, k) | |
| }, | |
| teardown: function(x) { | |
| n.event.remove(this, r, x && x.selector ? Ha : Aa) | |
| } | |
| } | |
| }); | |
| if (!n.support.submitBubbles) n.event.special.submit = { | |
| setup: function() { | |
| if (this.nodeName.toLowerCase() !== "form") { | |
| n.event.add(this, "click.specialSubmit", function(k) { | |
| var r = k.target, | |
| x = r.type; | |
| if ((x === "submit" || x === "image") && | |
| n(r).closest("form").length) return v("submit", this, arguments) | |
| }); | |
| n.event.add(this, "keypress.specialSubmit", function(k) { | |
| var r = k.target, | |
| x = r.type; | |
| if ((x === "text" || x === "password") && n(r).closest("form").length && k.keyCode === 13) return v("submit", this, arguments) | |
| }) | |
| } else return false | |
| }, | |
| teardown: function() { | |
| n.event.remove(this, ".specialSubmit") | |
| } | |
| }; | |
| if (!n.support.changeBubbles) { | |
| var Ia = /textarea|input|select/i, | |
| Fa, Ga = function(k) { | |
| var r = k.type, | |
| x = k.value; | |
| if (r === "radio" || r === "checkbox") x = k.checked; | |
| else if (r === "select-multiple") x = | |
| k.selectedIndex > -1 ? n.map(k.options, function(F) { | |
| return F.selected | |
| }).join("-") : ""; | |
| else if (k.nodeName.toLowerCase() === "select") x = k.selectedIndex; | |
| return x | |
| }, | |
| Ja = function(k, r) { | |
| var x = k.target, | |
| F, E; | |
| if (!(!Ia.test(x.nodeName) || x.readOnly)) { | |
| F = n.data(x, "_change_data"); | |
| E = Ga(x); | |
| if (k.type !== "focusout" || x.type !== "radio") n.data(x, "_change_data", E); | |
| if (!(F === b || E === F)) | |
| if (F != null || E) { | |
| k.type = "change"; | |
| return n.event.trigger(k, r, x) | |
| } | |
| } | |
| }; | |
| n.event.special.change = { | |
| filters: { | |
| focusout: Ja, | |
| click: function(k) { | |
| var r = k.target, | |
| x = r.type; | |
| if (x === "radio" || x === "checkbox" || r.nodeName.toLowerCase() === "select") return Ja.call(this, k) | |
| }, | |
| keydown: function(k) { | |
| var r = k.target, | |
| x = r.type; | |
| if (k.keyCode === 13 && r.nodeName.toLowerCase() !== "textarea" || k.keyCode === 32 && (x === "checkbox" || x === "radio") || x === "select-multiple") return Ja.call(this, k) | |
| }, | |
| beforeactivate: function(k) { | |
| k = k.target; | |
| n.data(k, "_change_data", Ga(k)) | |
| } | |
| }, | |
| setup: function() { | |
| if (this.type === "file") return false; | |
| for (var k in Fa) n.event.add(this, k + ".specialChange", Fa[k]); | |
| return Ia.test(this.nodeName) | |
| }, | |
| teardown: function() { | |
| n.event.remove(this, | |
| ".specialChange"); | |
| return Ia.test(this.nodeName) | |
| } | |
| }; | |
| Fa = n.event.special.change.filters | |
| } | |
| t.addEventListener && n.each({ | |
| focus: "focusin", | |
| blur: "focusout" | |
| }, function(k, r) { | |
| function x(F) { | |
| F = n.event.fix(F); | |
| F.type = r; | |
| return n.event.handle.call(this, F) | |
| } | |
| n.event.special[r] = { | |
| setup: function() { | |
| this.addEventListener(k, x, true) | |
| }, | |
| teardown: function() { | |
| this.removeEventListener(k, x, true) | |
| } | |
| } | |
| }); | |
| n.each(["bind", "one"], function(k, r) { | |
| n.fn[r] = function(x, F, E) { | |
| if (typeof x === "object") { | |
| for (var T in x) this[r](T, F, x[T], E); | |
| return this | |
| } | |
| if (n.isFunction(F)) { | |
| E = | |
| F; | |
| F = b | |
| } | |
| var V = r === "one" ? n.proxy(E, function(aa) { | |
| n(this).unbind(aa, V); | |
| return E.apply(this, arguments) | |
| }) : E; | |
| if (x === "unload" && r !== "one") this.one(x, F, E); | |
| else { | |
| T = 0; | |
| for (var ca = this.length; T < ca; T++) n.event.add(this[T], x, V, F) | |
| } | |
| return this | |
| } | |
| }); | |
| n.fn.extend({ | |
| unbind: function(k, r) { | |
| if (typeof k === "object" && !k.preventDefault) | |
| for (var x in k) this.unbind(x, k[x]); | |
| else { | |
| x = 0; | |
| for (var F = this.length; x < F; x++) n.event.remove(this[x], k, r) | |
| } | |
| return this | |
| }, | |
| delegate: function(k, r, x, F) { | |
| return this.live(r, x, F, k) | |
| }, | |
| undelegate: function(k, r, x) { | |
| return arguments.length === | |
| 0 ? this.unbind("live") : this.die(r, null, x, k) | |
| }, | |
| trigger: function(k, r) { | |
| return this.each(function() { | |
| n.event.trigger(k, r, this) | |
| }) | |
| }, | |
| triggerHandler: function(k, r) { | |
| if (this[0]) { | |
| k = n.Event(k); | |
| k.preventDefault(); | |
| k.stopPropagation(); | |
| n.event.trigger(k, r, this[0]); | |
| return k.result | |
| } | |
| }, | |
| toggle: function(k) { | |
| for (var r = arguments, x = 1; x < r.length;) n.proxy(k, r[x++]); | |
| return this.click(n.proxy(k, function(F) { | |
| var E = (n.data(this, "lastToggle" + k.guid) || 0) % x; | |
| n.data(this, "lastToggle" + k.guid, E + 1); | |
| F.preventDefault(); | |
| return r[E].apply(this, | |
| arguments) || false | |
| })) | |
| }, | |
| hover: function(k, r) { | |
| return this.mouseenter(k).mouseleave(r || k) | |
| } | |
| }); | |
| var Ma = { | |
| focus: "focusin", | |
| blur: "focusout", | |
| mouseenter: "mouseover", | |
| mouseleave: "mouseout" | |
| }; | |
| n.each(["live", "die"], function(k, r) { | |
| n.fn[r] = function(x, F, E, T) { | |
| var V, ca = 0, | |
| aa, da, ha = T || this.selector, | |
| qa = T ? this : n(this.context); | |
| if (n.isFunction(F)) { | |
| E = F; | |
| F = b | |
| } | |
| for (x = (x || "").split(" "); | |
| (V = x[ca++]) != null;) { | |
| T = ua.exec(V); | |
| aa = ""; | |
| if (T) { | |
| aa = T[0]; | |
| V = V.replace(ua, "") | |
| } | |
| if (V === "hover") x.push("mouseenter" + aa, "mouseleave" + aa); | |
| else { | |
| da = V; | |
| if (V === "focus" || | |
| V === "blur") { | |
| x.push(Ma[V] + aa); | |
| V += aa | |
| } else V = (Ma[V] || V) + aa; | |
| r === "live" ? qa.each(function() { | |
| n.event.add(this, C(V, ha), { | |
| data: F, | |
| selector: ha, | |
| handler: E, | |
| origType: V, | |
| origHandler: E, | |
| preType: da | |
| }) | |
| }) : qa.unbind(C(V, ha), E) | |
| } | |
| } | |
| return this | |
| } | |
| }); | |
| n.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(k, r) { | |
| n.fn[r] = function(x) { | |
| return x ? this.bind(r, x) : this.trigger(r) | |
| }; | |
| if (n.attrFn) n.attrFn[r] = true | |
| }); | |
| a.attachEvent && !a.addEventListener && a.attachEvent("onunload", function() { | |
| for (var k in n.cache) | |
| if (n.cache[k].handle) try { | |
| n.event.remove(n.cache[k].handle.elem) | |
| } catch (r) {} | |
| }); | |
| (function() { | |
| function k(N) { | |
| for (var S = "", Y, ba = 0; N[ba]; ba++) { | |
| Y = N[ba]; | |
| if (Y.nodeType === 3 || Y.nodeType === 4) S += Y.nodeValue; | |
| else if (Y.nodeType !== 8) S += k(Y.childNodes) | |
| } | |
| return S | |
| } | |
| function r(N, S, Y, ba, fa, ea) { | |
| fa = 0; | |
| for (var oa = ba.length; fa < oa; fa++) { | |
| var na = ba[fa]; | |
| if (na) { | |
| na = na[N]; | |
| for (var va = false; na;) { | |
| if (na.sizcache === | |
| Y) { | |
| va = ba[na.sizset]; | |
| break | |
| } | |
| if (na.nodeType === 1 && !ea) { | |
| na.sizcache = Y; | |
| na.sizset = fa | |
| } | |
| if (na.nodeName.toLowerCase() === S) { | |
| va = na; | |
| break | |
| } | |
| na = na[N] | |
| } | |
| ba[fa] = va | |
| } | |
| } | |
| } | |
| function x(N, S, Y, ba, fa, ea) { | |
| fa = 0; | |
| for (var oa = ba.length; fa < oa; fa++) { | |
| var na = ba[fa]; | |
| if (na) { | |
| na = na[N]; | |
| for (var va = false; na;) { | |
| if (na.sizcache === Y) { | |
| va = ba[na.sizset]; | |
| break | |
| } | |
| if (na.nodeType === 1) { | |
| if (!ea) { | |
| na.sizcache = Y; | |
| na.sizset = fa | |
| } | |
| if (typeof S !== "string") { | |
| if (na === S) { | |
| va = true; | |
| break | |
| } | |
| } else if (aa.filter(S, [na]).length > 0) { | |
| va = na; | |
| break | |
| } | |
| } | |
| na = na[N] | |
| } | |
| ba[fa] = va | |
| } | |
| } | |
| } | |
| var F = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g, | |
| E = 0, | |
| T = Object.prototype.toString, | |
| V = false, | |
| ca = true; | |
| [0, 0].sort(function() { | |
| ca = false; | |
| return 0 | |
| }); | |
| var aa = function(N, S, Y, ba) { | |
| Y = Y || []; | |
| var fa = S = S || t; | |
| if (S.nodeType !== 1 && S.nodeType !== 9) return []; | |
| if (!N || typeof N !== "string") return Y; | |
| for (var ea = [], oa, na, va, Pa, Ka = true, Na = sa(S), La = N; | |
| (F.exec(""), oa = F.exec(La)) !== null;) { | |
| La = oa[3]; | |
| ea.push(oa[1]); | |
| if (oa[2]) { | |
| Pa = oa[3]; | |
| break | |
| } | |
| } | |
| if (ea.length > 1 && ha.exec(N)) | |
| if (ea.length === 2 && da.relative[ea[0]]) na = Ta(ea[0] + ea[1], S); | |
| else | |
| for (na = da.relative[ea[0]] ? [S] : aa(ea.shift(), S); ea.length;) { | |
| N = | |
| ea.shift(); | |
| if (da.relative[N]) N += ea.shift(); | |
| na = Ta(N, na) | |
| } else { | |
| if (!ba && ea.length > 1 && S.nodeType === 9 && !Na && da.match.ID.test(ea[0]) && !da.match.ID.test(ea[ea.length - 1])) { | |
| oa = aa.find(ea.shift(), S, Na); | |
| S = oa.expr ? aa.filter(oa.expr, oa.set)[0] : oa.set[0] | |
| } | |
| if (S) { | |
| oa = ba ? { | |
| expr: ea.pop(), | |
| set: wa(ba) | |
| } : aa.find(ea.pop(), ea.length === 1 && (ea[0] === "~" || ea[0] === "+") && S.parentNode ? S.parentNode : S, Na); | |
| na = oa.expr ? aa.filter(oa.expr, oa.set) : oa.set; | |
| if (ea.length > 0) va = wa(na); | |
| else Ka = false; | |
| for (; ea.length;) { | |
| var Ca = ea.pop(); | |
| oa = Ca; | |
| if (da.relative[Ca]) oa = | |
| ea.pop(); | |
| else Ca = ""; | |
| if (oa == null) oa = S; | |
| da.relative[Ca](va, oa, Na) | |
| } | |
| } else va = [] | |
| } | |
| va || (va = na); | |
| va || aa.error(Ca || N); | |
| if (T.call(va) === "[object Array]") | |
| if (Ka) | |
| if (S && S.nodeType === 1) | |
| for (N = 0; va[N] != null; N++) { | |
| if (va[N] && (va[N] === true || va[N].nodeType === 1 && Da(S, va[N]))) Y.push(na[N]) | |
| } else | |
| for (N = 0; va[N] != null; N++) va[N] && va[N].nodeType === 1 && Y.push(na[N]); | |
| else Y.push.apply(Y, va); | |
| else wa(va, Y); | |
| if (Pa) { | |
| aa(Pa, fa, Y, ba); | |
| aa.uniqueSort(Y) | |
| } | |
| return Y | |
| }; | |
| aa.uniqueSort = function(N) { | |
| if (ya) { | |
| V = ca; | |
| N.sort(ya); | |
| if (V) | |
| for (var S = 1; S < N.length; S++) N[S] === | |
| N[S - 1] && N.splice(S--, 1) | |
| } | |
| return N | |
| }; | |
| aa.matches = function(N, S) { | |
| return aa(N, null, null, S) | |
| }; | |
| aa.find = function(N, S, Y) { | |
| var ba, fa; | |
| if (!N) return []; | |
| for (var ea = 0, oa = da.order.length; ea < oa; ea++) { | |
| var na = da.order[ea]; | |
| if (fa = da.leftMatch[na].exec(N)) { | |
| var va = fa[1]; | |
| fa.splice(1, 1); | |
| if (va.substr(va.length - 1) !== "\\") { | |
| fa[1] = (fa[1] || "").replace(/\\/g, ""); | |
| ba = da.find[na](fa, S, Y); | |
| if (ba != null) { | |
| N = N.replace(da.match[na], ""); | |
| break | |
| } | |
| } | |
| } | |
| } | |
| ba || (ba = S.getElementsByTagName("*")); | |
| return { | |
| set: ba, | |
| expr: N | |
| } | |
| }; | |
| aa.filter = function(N, S, Y, ba) { | |
| for (var fa = | |
| N, ea = [], oa = S, na, va, Pa = S && S[0] && sa(S[0]); N && S.length;) { | |
| for (var Ka in da.filter) | |
| if ((na = da.leftMatch[Ka].exec(N)) != null && na[2]) { | |
| var Na = da.filter[Ka], | |
| La, Ca; | |
| Ca = na[1]; | |
| va = false; | |
| na.splice(1, 1); | |
| if (Ca.substr(Ca.length - 1) !== "\\") { | |
| if (oa === ea) ea = []; | |
| if (da.preFilter[Ka]) | |
| if (na = da.preFilter[Ka](na, oa, Y, ea, ba, Pa)) { | |
| if (na === true) continue | |
| } else va = La = true; | |
| if (na) | |
| for (var Qa = 0; | |
| (Ca = oa[Qa]) != null; Qa++) | |
| if (Ca) { | |
| La = Na(Ca, na, Qa, oa); | |
| var bb = ba ^ !!La; | |
| if (Y && La != null) | |
| if (bb) va = true; | |
| else oa[Qa] = false; | |
| else if (bb) { | |
| ea.push(Ca); | |
| va = true | |
| } | |
| } | |
| if (La !== | |
| b) { | |
| Y || (oa = ea); | |
| N = N.replace(da.match[Ka], ""); | |
| if (!va) return []; | |
| break | |
| } | |
| } | |
| } | |
| if (N === fa) | |
| if (va == null) aa.error(N); | |
| else break; | |
| fa = N | |
| } | |
| return oa | |
| }; | |
| aa.error = function(N) { | |
| throw "Syntax error, unrecognized expression: " + N; | |
| }; | |
| var da = aa.selectors = { | |
| order: ["ID", "NAME", "TAG"], | |
| match: { | |
| ID: /#((?:[\w\u00c0-\uFFFF-]|\\.)+)/, | |
| CLASS: /\.((?:[\w\u00c0-\uFFFF-]|\\.)+)/, | |
| NAME: /\[name=['"]*((?:[\w\u00c0-\uFFFF-]|\\.)+)['"]*\]/, | |
| ATTR: /\[\s*((?:[\w\u00c0-\uFFFF-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/, | |
| TAG: /^((?:[\w\u00c0-\uFFFF\*-]|\\.)+)/, | |
| CHILD: /:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/, | |
| POS: /:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/, | |
| PSEUDO: /:((?:[\w\u00c0-\uFFFF-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/ | |
| }, | |
| leftMatch: {}, | |
| attrMap: { | |
| "class": "className", | |
| "for": "htmlFor" | |
| }, | |
| attrHandle: { | |
| href: function(N) { | |
| return N.getAttribute("href") | |
| } | |
| }, | |
| relative: { | |
| "+": function(N, S) { | |
| var Y = typeof S === "string", | |
| ba = Y && !/\W/.test(S); | |
| Y = Y && !ba; | |
| if (ba) S = S.toLowerCase(); | |
| ba = 0; | |
| for (var fa = N.length, ea; ba < fa; ba++) | |
| if (ea = N[ba]) { | |
| for (; | |
| (ea = | |
| ea.previousSibling) && ea.nodeType !== 1;); | |
| N[ba] = Y || ea && ea.nodeName.toLowerCase() === S ? ea || false : ea === S | |
| } | |
| Y && aa.filter(S, N, true) | |
| }, | |
| ">": function(N, S) { | |
| var Y = typeof S === "string"; | |
| if (Y && !/\W/.test(S)) { | |
| S = S.toLowerCase(); | |
| for (var ba = 0, fa = N.length; ba < fa; ba++) { | |
| var ea = N[ba]; | |
| if (ea) { | |
| Y = ea.parentNode; | |
| N[ba] = Y.nodeName.toLowerCase() === S ? Y : false | |
| } | |
| } | |
| } else { | |
| ba = 0; | |
| for (fa = N.length; ba < fa; ba++) | |
| if (ea = N[ba]) N[ba] = Y ? ea.parentNode : ea.parentNode === S; | |
| Y && aa.filter(S, N, true) | |
| } | |
| }, | |
| "": function(N, S, Y) { | |
| var ba = E++, | |
| fa = x; | |
| if (typeof S === "string" && !/\W/.test(S)) { | |
| var ea = | |
| S = S.toLowerCase(); | |
| fa = r | |
| } | |
| fa("parentNode", S, ba, N, ea, Y) | |
| }, | |
| "~": function(N, S, Y) { | |
| var ba = E++, | |
| fa = x; | |
| if (typeof S === "string" && !/\W/.test(S)) { | |
| var ea = S = S.toLowerCase(); | |
| fa = r | |
| } | |
| fa("previousSibling", S, ba, N, ea, Y) | |
| } | |
| }, | |
| find: { | |
| ID: function(N, S, Y) { | |
| if (typeof S.getElementById !== "undefined" && !Y) return (N = S.getElementById(N[1])) ? [N] : [] | |
| }, | |
| NAME: function(N, S) { | |
| if (typeof S.getElementsByName !== "undefined") { | |
| var Y = []; | |
| S = S.getElementsByName(N[1]); | |
| for (var ba = 0, fa = S.length; ba < fa; ba++) S[ba].getAttribute("name") === N[1] && Y.push(S[ba]); | |
| return Y.length === | |
| 0 ? null : Y | |
| } | |
| }, | |
| TAG: function(N, S) { | |
| return S.getElementsByTagName(N[1]) | |
| } | |
| }, | |
| preFilter: { | |
| CLASS: function(N, S, Y, ba, fa, ea) { | |
| N = " " + N[1].replace(/\\/g, "") + " "; | |
| if (ea) return N; | |
| ea = 0; | |
| for (var oa; | |
| (oa = S[ea]) != null; ea++) | |
| if (oa) | |
| if (fa ^ (oa.className && (" " + oa.className + " ").replace(/[\t\n]/g, " ").indexOf(N) >= 0)) Y || ba.push(oa); | |
| else if (Y) S[ea] = false; | |
| return false | |
| }, | |
| ID: function(N) { | |
| return N[1].replace(/\\/g, "") | |
| }, | |
| TAG: function(N) { | |
| return N[1].toLowerCase() | |
| }, | |
| CHILD: function(N) { | |
| if (N[1] === "nth") { | |
| var S = /(-?)(\d*)n((?:\+|-)?\d*)/.exec(N[2] === | |
| "even" && "2n" || N[2] === "odd" && "2n+1" || !/\D/.test(N[2]) && "0n+" + N[2] || N[2]); | |
| N[2] = S[1] + (S[2] || 1) - 0; | |
| N[3] = S[3] - 0 | |
| } | |
| N[0] = E++; | |
| return N | |
| }, | |
| ATTR: function(N, S, Y, ba, fa, ea) { | |
| S = N[1].replace(/\\/g, ""); | |
| if (!ea && da.attrMap[S]) N[1] = da.attrMap[S]; | |
| if (N[2] === "~=") N[4] = " " + N[4] + " "; | |
| return N | |
| }, | |
| PSEUDO: function(N, S, Y, ba, fa) { | |
| if (N[1] === "not") | |
| if ((F.exec(N[3]) || "").length > 1 || /^\w/.test(N[3])) N[3] = aa(N[3], null, null, S); | |
| else { | |
| N = aa.filter(N[3], S, Y, true ^ fa); | |
| Y || ba.push.apply(ba, N); | |
| return false | |
| } else if (da.match.POS.test(N[0]) || da.match.CHILD.test(N[0])) return true; | |
| return N | |
| }, | |
| POS: function(N) { | |
| N.unshift(true); | |
| return N | |
| } | |
| }, | |
| filters: { | |
| enabled: function(N) { | |
| return N.disabled === false && N.type !== "hidden" | |
| }, | |
| disabled: function(N) { | |
| return N.disabled === true | |
| }, | |
| checked: function(N) { | |
| return N.checked === true | |
| }, | |
| selected: function(N) { | |
| return N.selected === true | |
| }, | |
| parent: function(N) { | |
| return !!N.firstChild | |
| }, | |
| empty: function(N) { | |
| return !N.firstChild | |
| }, | |
| has: function(N, S, Y) { | |
| return !!aa(Y[3], N).length | |
| }, | |
| header: function(N) { | |
| return /h\d/i.test(N.nodeName) | |
| }, | |
| text: function(N) { | |
| return "text" === N.type | |
| }, | |
| radio: function(N) { | |
| return "radio" === | |
| N.type | |
| }, | |
| checkbox: function(N) { | |
| return "checkbox" === N.type | |
| }, | |
| file: function(N) { | |
| return "file" === N.type | |
| }, | |
| password: function(N) { | |
| return "password" === N.type | |
| }, | |
| submit: function(N) { | |
| return "submit" === N.type | |
| }, | |
| image: function(N) { | |
| return "image" === N.type | |
| }, | |
| reset: function(N) { | |
| return "reset" === N.type | |
| }, | |
| button: function(N) { | |
| return "button" === N.type || N.nodeName.toLowerCase() === "button" | |
| }, | |
| input: function(N) { | |
| return /input|select|textarea|button/i.test(N.nodeName) | |
| } | |
| }, | |
| setFilters: { | |
| first: function(N, S) { | |
| return S === 0 | |
| }, | |
| last: function(N, S, Y, ba) { | |
| return S === | |
| ba.length - 1 | |
| }, | |
| even: function(N, S) { | |
| return S % 2 === 0 | |
| }, | |
| odd: function(N, S) { | |
| return S % 2 === 1 | |
| }, | |
| lt: function(N, S, Y) { | |
| return S < Y[3] - 0 | |
| }, | |
| gt: function(N, S, Y) { | |
| return S > Y[3] - 0 | |
| }, | |
| nth: function(N, S, Y) { | |
| return Y[3] - 0 === S | |
| }, | |
| eq: function(N, S, Y) { | |
| return Y[3] - 0 === S | |
| } | |
| }, | |
| filter: { | |
| PSEUDO: function(N, S, Y, ba) { | |
| var fa = S[1], | |
| ea = da.filters[fa]; | |
| if (ea) return ea(N, Y, S, ba); | |
| else if (fa === "contains") return (N.textContent || N.innerText || k([N]) || "").indexOf(S[3]) >= 0; | |
| else if (fa === "not") { | |
| S = S[3]; | |
| Y = 0; | |
| for (ba = S.length; Y < ba; Y++) | |
| if (S[Y] === N) return false; | |
| return true | |
| } else aa.error("Syntax error, unrecognized expression: " + | |
| fa) | |
| }, | |
| CHILD: function(N, S) { | |
| var Y = S[1], | |
| ba = N; | |
| switch (Y) { | |
| case "only": | |
| case "first": | |
| for (; ba = ba.previousSibling;) | |
| if (ba.nodeType === 1) return false; | |
| if (Y === "first") return true; | |
| ba = N; | |
| case "last": | |
| for (; ba = ba.nextSibling;) | |
| if (ba.nodeType === 1) return false; | |
| return true; | |
| case "nth": | |
| Y = S[2]; | |
| var fa = S[3]; | |
| if (Y === 1 && fa === 0) return true; | |
| S = S[0]; | |
| var ea = N.parentNode; | |
| if (ea && (ea.sizcache !== S || !N.nodeIndex)) { | |
| var oa = 0; | |
| for (ba = ea.firstChild; ba; ba = ba.nextSibling) | |
| if (ba.nodeType === 1) ba.nodeIndex = ++oa; | |
| ea.sizcache = S | |
| } | |
| N = N.nodeIndex - fa; | |
| return Y === | |
| 0 ? N === 0 : N % Y === 0 && N / Y >= 0 | |
| } | |
| }, | |
| ID: function(N, S) { | |
| return N.nodeType === 1 && N.getAttribute("id") === S | |
| }, | |
| TAG: function(N, S) { | |
| return S === "*" && N.nodeType === 1 || N.nodeName.toLowerCase() === S | |
| }, | |
| CLASS: function(N, S) { | |
| return (" " + (N.className || N.getAttribute("class")) + " ").indexOf(S) > -1 | |
| }, | |
| ATTR: function(N, S) { | |
| var Y = S[1]; | |
| N = da.attrHandle[Y] ? da.attrHandle[Y](N) : N[Y] != null ? N[Y] : N.getAttribute(Y); | |
| Y = N + ""; | |
| var ba = S[2]; | |
| S = S[4]; | |
| return N == null ? ba === "!=" : ba === "=" ? Y === S : ba === "*=" ? Y.indexOf(S) >= 0 : ba === "~=" ? (" " + Y + " ").indexOf(S) >= 0 : !S ? Y && N !== | |
| false : ba === "!=" ? Y !== S : ba === "^=" ? Y.indexOf(S) === 0 : ba === "$=" ? Y.substr(Y.length - S.length) === S : ba === "|=" ? Y === S || Y.substr(0, S.length + 1) === S + "-" : false | |
| }, | |
| POS: function(N, S, Y, ba) { | |
| var fa = da.setFilters[S[2]]; | |
| if (fa) return fa(N, Y, S, ba) | |
| } | |
| } | |
| }, | |
| ha = da.match.POS, | |
| qa; | |
| for (qa in da.match) { | |
| da.match[qa] = RegExp(da.match[qa].source + /(?![^\[]*\])(?![^\(]*\))/.source); | |
| da.leftMatch[qa] = RegExp(/(^(?:.|\r|\n)*?)/.source + da.match[qa].source.replace(/\\(\d+)/g, function(N, S) { | |
| return "\\" + (S - 0 + 1) | |
| })) | |
| } | |
| var wa = function(N, S) { | |
| N = Array.prototype.slice.call(N, | |
| 0); | |
| if (S) { | |
| S.push.apply(S, N); | |
| return S | |
| } | |
| return N | |
| }; | |
| try { | |
| Array.prototype.slice.call(t.documentElement.childNodes, 0) | |
| } catch (Ba) { | |
| wa = function(N, S) { | |
| S = S || []; | |
| if (T.call(N) === "[object Array]") Array.prototype.push.apply(S, N); | |
| else if (typeof N.length === "number") | |
| for (var Y = 0, ba = N.length; Y < ba; Y++) S.push(N[Y]); | |
| else | |
| for (Y = 0; N[Y]; Y++) S.push(N[Y]); | |
| return S | |
| } | |
| } | |
| var ya; | |
| if (t.documentElement.compareDocumentPosition) ya = function(N, S) { | |
| if (!N.compareDocumentPosition || !S.compareDocumentPosition) { | |
| if (N == S) V = true; | |
| return N.compareDocumentPosition ? | |
| -1 : 1 | |
| } | |
| N = N.compareDocumentPosition(S) & 4 ? -1 : N === S ? 0 : 1; | |
| if (N === 0) V = true; | |
| return N | |
| }; | |
| else if ("sourceIndex" in t.documentElement) ya = function(N, S) { | |
| if (!N.sourceIndex || !S.sourceIndex) { | |
| if (N == S) V = true; | |
| return N.sourceIndex ? -1 : 1 | |
| } | |
| N = N.sourceIndex - S.sourceIndex; | |
| if (N === 0) V = true; | |
| return N | |
| }; | |
| else if (t.createRange) ya = function(N, S) { | |
| if (!N.ownerDocument || !S.ownerDocument) { | |
| if (N == S) V = true; | |
| return N.ownerDocument ? -1 : 1 | |
| } | |
| var Y = N.ownerDocument.createRange(), | |
| ba = S.ownerDocument.createRange(); | |
| Y.setStart(N, 0); | |
| Y.setEnd(N, 0); | |
| ba.setStart(S, | |
| 0); | |
| ba.setEnd(S, 0); | |
| N = Y.compareBoundaryPoints(Range.START_TO_END, ba); | |
| if (N === 0) V = true; | |
| return N | |
| }; | |
| (function() { | |
| var N = t.createElement("div"), | |
| S = "script" + (new Date).getTime(); | |
| N.innerHTML = "<a name='" + S + "'/>"; | |
| var Y = t.documentElement; | |
| Y.insertBefore(N, Y.firstChild); | |
| if (t.getElementById(S)) { | |
| da.find.ID = function(ba, fa, ea) { | |
| if (typeof fa.getElementById !== "undefined" && !ea) return (fa = fa.getElementById(ba[1])) ? fa.id === ba[1] || typeof fa.getAttributeNode !== "undefined" && fa.getAttributeNode("id").nodeValue === ba[1] ? [fa] : b : [] | |
| }; | |
| da.filter.ID = function(ba, fa) { | |
| var ea = typeof ba.getAttributeNode !== "undefined" && ba.getAttributeNode("id"); | |
| return ba.nodeType === 1 && ea && ea.nodeValue === fa | |
| } | |
| } | |
| Y.removeChild(N); | |
| Y = N = null | |
| })(); | |
| (function() { | |
| var N = t.createElement("div"); | |
| N.appendChild(t.createComment("")); | |
| if (N.getElementsByTagName("*").length > 0) da.find.TAG = function(S, Y) { | |
| Y = Y.getElementsByTagName(S[1]); | |
| if (S[1] === "*") { | |
| S = []; | |
| for (var ba = 0; Y[ba]; ba++) Y[ba].nodeType === 1 && S.push(Y[ba]); | |
| Y = S | |
| } | |
| return Y | |
| }; | |
| N.innerHTML = "<a href='#'></a>"; | |
| if (N.firstChild && typeof N.firstChild.getAttribute !== | |
| "undefined" && N.firstChild.getAttribute("href") !== "#") da.attrHandle.href = function(S) { | |
| return S.getAttribute("href", 2) | |
| }; | |
| N = null | |
| })(); | |
| t.querySelectorAll && function() { | |
| var N = aa, | |
| S = t.createElement("div"); | |
| S.innerHTML = "<p class='TEST'></p>"; | |
| if (!(S.querySelectorAll && S.querySelectorAll(".TEST").length === 0)) { | |
| aa = function(ba, fa, ea, oa) { | |
| fa = fa || t; | |
| if (!oa && fa.nodeType === 9 && !sa(fa)) try { | |
| return wa(fa.querySelectorAll(ba), ea) | |
| } catch (na) {} | |
| return N(ba, fa, ea, oa) | |
| }; | |
| for (var Y in N) aa[Y] = N[Y]; | |
| S = null | |
| } | |
| }(); | |
| (function() { | |
| var N = t.createElement("div"); | |
| N.innerHTML = "<div class='test e'></div><div class='test'></div>"; | |
| if (!(!N.getElementsByClassName || N.getElementsByClassName("e").length === 0)) { | |
| N.lastChild.className = "e"; | |
| if (N.getElementsByClassName("e").length !== 1) { | |
| da.order.splice(1, 0, "CLASS"); | |
| da.find.CLASS = function(S, Y, ba) { | |
| if (typeof Y.getElementsByClassName !== "undefined" && !ba) return Y.getElementsByClassName(S[1]) | |
| }; | |
| N = null | |
| } | |
| } | |
| })(); | |
| var Da = t.compareDocumentPosition ? function(N, S) { | |
| return !!(N.compareDocumentPosition(S) & 16) | |
| } : function(N, S) { | |
| return N !== S && (N.contains ? | |
| N.contains(S) : true) | |
| }, | |
| sa = function(N) { | |
| return (N = (N ? N.ownerDocument || N : 0).documentElement) ? N.nodeName !== "HTML" : false | |
| }, | |
| Ta = function(N, S) { | |
| var Y = [], | |
| ba = "", | |
| fa; | |
| for (S = S.nodeType ? [S] : S; fa = da.match.PSEUDO.exec(N);) { | |
| ba += fa[0]; | |
| N = N.replace(da.match.PSEUDO, "") | |
| } | |
| N = da.relative[N] ? N + "*" : N; | |
| fa = 0; | |
| for (var ea = S.length; fa < ea; fa++) aa(N, S[fa], Y); | |
| return aa.filter(ba, Y) | |
| }; | |
| n.find = aa; | |
| n.expr = aa.selectors; | |
| n.expr[":"] = n.expr.filters; | |
| n.unique = aa.uniqueSort; | |
| n.text = k; | |
| n.isXMLDoc = sa; | |
| n.contains = Da | |
| })(); | |
| var kb = /Until$/, | |
| lb = /^(?:parents|prevUntil|prevAll)/, | |
| mb = /,/; | |
| ja = Array.prototype.slice; | |
| var cb = function(k, r, x) { | |
| if (n.isFunction(r)) return n.grep(k, function(E, T) { | |
| return !!r.call(E, T, E) === x | |
| }); | |
| else if (r.nodeType) return n.grep(k, function(E) { | |
| return E === r === x | |
| }); | |
| else if (typeof r === "string") { | |
| var F = n.grep(k, function(E) { | |
| return E.nodeType === 1 | |
| }); | |
| if (M.test(r)) return n.filter(r, F, !x); | |
| else r = n.filter(r, F) | |
| } | |
| return n.grep(k, function(E) { | |
| return n.inArray(E, r) >= 0 === x | |
| }) | |
| }; | |
| n.fn.extend({ | |
| find: function(k) { | |
| for (var r = this.pushStack("", "find", k), x = 0, F = 0, E = this.length; F < E; F++) { | |
| x = r.length; | |
| n.find(k, this[F], r); | |
| if (F > 0) | |
| for (var T = x; T < r.length; T++) | |
| for (var V = 0; V < x; V++) | |
| if (r[V] === r[T]) { | |
| r.splice(T--, 1); | |
| break | |
| } | |
| } | |
| return r | |
| }, | |
| has: function(k) { | |
| var r = n(k); | |
| return this.filter(function() { | |
| for (var x = 0, F = r.length; x < F; x++) | |
| if (n.contains(this, r[x])) return true | |
| }) | |
| }, | |
| not: function(k) { | |
| return this.pushStack(cb(this, k, false), "not", k) | |
| }, | |
| filter: function(k) { | |
| return this.pushStack(cb(this, k, true), "filter", k) | |
| }, | |
| is: function(k) { | |
| return !!k && n.filter(k, this).length > 0 | |
| }, | |
| closest: function(k, r) { | |
| if (n.isArray(k)) { | |
| var x = [], | |
| F = this[0], | |
| E, T = {}, | |
| V; | |
| if (F && k.length) { | |
| E = 0; | |
| for (var ca = k.length; E < ca; E++) { | |
| V = k[E]; | |
| T[V] || (T[V] = n.expr.match.POS.test(V) ? n(V, r || this.context) : V) | |
| } | |
| for (; F && F.ownerDocument && F !== r;) { | |
| for (V in T) { | |
| E = T[V]; | |
| if (E.jquery ? E.index(F) > -1 : n(F).is(E)) { | |
| x.push({ | |
| selector: V, | |
| elem: F | |
| }); | |
| delete T[V] | |
| } | |
| } | |
| F = F.parentNode | |
| } | |
| } | |
| return x | |
| } | |
| var aa = n.expr.match.POS.test(k) ? n(k, r || this.context) : null; | |
| return this.map(function(da, ha) { | |
| for (; ha && ha.ownerDocument && ha !== r;) { | |
| if (aa ? aa.index(ha) > -1 : n(ha).is(k)) return ha; | |
| ha = ha.parentNode | |
| } | |
| return null | |
| }) | |
| }, | |
| index: function(k) { | |
| if (!k || | |
| typeof k === "string") return n.inArray(this[0], k ? n(k) : this.parent().children()); | |
| return n.inArray(k.jquery ? k[0] : k, this) | |
| }, | |
| add: function(k, r) { | |
| k = typeof k === "string" ? n(k, r || this.context) : n.makeArray(k); | |
| r = n.merge(this.get(), k); | |
| return this.pushStack(!k[0] || !k[0].parentNode || k[0].parentNode.nodeType === 11 || !r[0] || !r[0].parentNode || r[0].parentNode.nodeType === 11 ? r : n.unique(r)) | |
| }, | |
| andSelf: function() { | |
| return this.add(this.prevObject) | |
| } | |
| }); | |
| n.each({ | |
| parent: function(k) { | |
| return (k = k.parentNode) && k.nodeType !== 11 ? k : null | |
| }, | |
| parents: function(k) { | |
| return n.dir(k, | |
| "parentNode") | |
| }, | |
| parentsUntil: function(k, r, x) { | |
| return n.dir(k, "parentNode", x) | |
| }, | |
| next: function(k) { | |
| return n.nth(k, 2, "nextSibling") | |
| }, | |
| prev: function(k) { | |
| return n.nth(k, 2, "previousSibling") | |
| }, | |
| nextAll: function(k) { | |
| return n.dir(k, "nextSibling") | |
| }, | |
| prevAll: function(k) { | |
| return n.dir(k, "previousSibling") | |
| }, | |
| nextUntil: function(k, r, x) { | |
| return n.dir(k, "nextSibling", x) | |
| }, | |
| prevUntil: function(k, r, x) { | |
| return n.dir(k, "previousSibling", x) | |
| }, | |
| siblings: function(k) { | |
| return n.sibling(k.parentNode.firstChild, k) | |
| }, | |
| children: function(k) { | |
| return n.sibling(k.firstChild) | |
| }, | |
| contents: function(k) { | |
| return n.nodeName(k, "iframe") ? k.contentDocument || k.contentWindow.document : n.makeArray(k.childNodes) | |
| } | |
| }, function(k, r) { | |
| n.fn[k] = function(x, F) { | |
| var E = n.map(this, r, x); | |
| kb.test(k) || (F = x); | |
| if (F && typeof F === "string") E = n.filter(F, E); | |
| E = this.length > 1 ? n.unique(E) : E; | |
| if ((this.length > 1 || mb.test(F)) && lb.test(k)) E = E.reverse(); | |
| return this.pushStack(E, k, ja.call(arguments).join(",")) | |
| } | |
| }); | |
| n.extend({ | |
| filter: function(k, r, x) { | |
| if (x) k = ":not(" + k + ")"; | |
| return n.find.matches(k, r) | |
| }, | |
| dir: function(k, r, x) { | |
| var F = []; | |
| for (k = | |
| k[r]; k && k.nodeType !== 9 && (x === b || k.nodeType !== 1 || !n(k).is(x));) { | |
| k.nodeType === 1 && F.push(k); | |
| k = k[r] | |
| } | |
| return F | |
| }, | |
| nth: function(k, r, x) { | |
| r = r || 1; | |
| for (var F = 0; k; k = k[x]) | |
| if (k.nodeType === 1 && ++F === r) break; | |
| return k | |
| }, | |
| sibling: function(k, r) { | |
| for (var x = []; k; k = k.nextSibling) k.nodeType === 1 && k !== r && x.push(k); | |
| return x | |
| } | |
| }); | |
| var db = / jQuery\d+="(?:\d+|null)"/g, | |
| Ra = /^\s+/, | |
| eb = /(<([\w:]+)[^>]*?)\/>/g, | |
| nb = /^(?:area|br|col|embed|hr|img|input|link|meta|param)$/i, | |
| fb = /<([\w:]+)/, | |
| ob = /<tbody/i, | |
| pb = /<|&#?\w+;/, | |
| Za = /<script|<object|<embed|<option|<style/i, | |
| $a = /checked\s*(?:[^=]|=\s*.checked.)/i, | |
| gb = function(k, r, x) { | |
| return nb.test(x) ? k : r + "></" + x + ">" | |
| }, | |
| Ea = { | |
| 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, "", ""] | |
| }; | |
| Ea.optgroup = Ea.option; | |
| Ea.tbody = Ea.tfoot = Ea.colgroup = Ea.caption = Ea.thead; | |
| Ea.th = | |
| Ea.td; | |
| if (!n.support.htmlSerialize) Ea._default = [1, "div<div>", "</div>"]; | |
| n.fn.extend({ | |
| text: function(k) { | |
| if (n.isFunction(k)) return this.each(function(r) { | |
| var x = n(this); | |
| x.text(k.call(this, r, x.text())) | |
| }); | |
| if (typeof k !== "object" && k !== b) return this.empty().append((this[0] && this[0].ownerDocument || t).createTextNode(k)); | |
| return n.text(this) | |
| }, | |
| wrapAll: function(k) { | |
| if (n.isFunction(k)) return this.each(function(x) { | |
| n(this).wrapAll(k.call(this, x)) | |
| }); | |
| if (this[0]) { | |
| var r = n(k, this[0].ownerDocument).eq(0).clone(true); | |
| this[0].parentNode && | |
| r.insertBefore(this[0]); | |
| r.map(function() { | |
| for (var x = this; x.firstChild && x.firstChild.nodeType === 1;) x = x.firstChild; | |
| return x | |
| }).append(this) | |
| } | |
| return this | |
| }, | |
| wrapInner: function(k) { | |
| if (n.isFunction(k)) return this.each(function(r) { | |
| n(this).wrapInner(k.call(this, r)) | |
| }); | |
| return this.each(function() { | |
| var r = n(this), | |
| x = r.contents(); | |
| x.length ? x.wrapAll(k) : r.append(k) | |
| }) | |
| }, | |
| wrap: function(k) { | |
| return this.each(function() { | |
| n(this).wrapAll(k) | |
| }) | |
| }, | |
| unwrap: function() { | |
| return this.parent().each(function() { | |
| n.nodeName(this, "body") || n(this).replaceWith(this.childNodes) | |
| }).end() | |
| }, | |
| append: function() { | |
| return this.domManip(arguments, true, function(k) { | |
| this.nodeType === 1 && this.appendChild(k) | |
| }) | |
| }, | |
| prepend: function() { | |
| return this.domManip(arguments, true, function(k) { | |
| this.nodeType === 1 && this.insertBefore(k, this.firstChild) | |
| }) | |
| }, | |
| before: function() { | |
| if (this[0] && this[0].parentNode) return this.domManip(arguments, false, function(r) { | |
| this.parentNode.insertBefore(r, this) | |
| }); | |
| else if (arguments.length) { | |
| var k = n(arguments[0]); | |
| k.push.apply(k, this.toArray()); | |
| return this.pushStack(k, "before", arguments) | |
| } | |
| }, | |
| after: function() { | |
| if (this[0] && | |
| this[0].parentNode) return this.domManip(arguments, false, function(r) { | |
| this.parentNode.insertBefore(r, this.nextSibling) | |
| }); | |
| else if (arguments.length) { | |
| var k = this.pushStack(this, "after", arguments); | |
| k.push.apply(k, n(arguments[0]).toArray()); | |
| return k | |
| } | |
| }, | |
| remove: function(k, r) { | |
| for (var x = 0, F; | |
| (F = this[x]) != null; x++) | |
| if (!k || n.filter(k, [F]).length) { | |
| if (!r && F.nodeType === 1) { | |
| n.cleanData(F.getElementsByTagName("*")); | |
| n.cleanData([F]) | |
| } | |
| F.parentNode && F.parentNode.removeChild(F) | |
| } | |
| return this | |
| }, | |
| empty: function() { | |
| for (var k = 0, r; | |
| (r = | |
| this[k]) != null; k++) | |
| for (r.nodeType === 1 && n.cleanData(r.getElementsByTagName("*")); r.firstChild;) r.removeChild(r.firstChild); | |
| return this | |
| }, | |
| clone: function(k) { | |
| var r = this.map(function() { | |
| if (!n.support.noCloneEvent && !n.isXMLDoc(this)) { | |
| var x = this.outerHTML, | |
| F = this.ownerDocument; | |
| if (!x) { | |
| x = F.createElement("div"); | |
| x.appendChild(this.cloneNode(true)); | |
| x = x.innerHTML | |
| } | |
| return n.clean([x.replace(db, "").replace(/=([^="'>\s]+\/)>/g, '="$1">').replace(Ra, "")], F)[0] | |
| } else return this.cloneNode(true) | |
| }); | |
| if (k === true) { | |
| q(this, r); | |
| q(this.find("*"), r.find("*")) | |
| } | |
| return r | |
| }, | |
| html: function(k) { | |
| if (k === b) return this[0] && this[0].nodeType === 1 ? this[0].innerHTML.replace(db, "") : null; | |
| else if (typeof k === "string" && !Za.test(k) && (n.support.leadingWhitespace || !Ra.test(k)) && !Ea[(fb.exec(k) || ["", ""])[1].toLowerCase()]) { | |
| k = k.replace(eb, gb); | |
| try { | |
| for (var r = 0, x = this.length; r < x; r++) | |
| if (this[r].nodeType === 1) { | |
| n.cleanData(this[r].getElementsByTagName("*")); | |
| this[r].innerHTML = k | |
| } | |
| } catch (F) { | |
| this.empty().append(k) | |
| } | |
| } else n.isFunction(k) ? this.each(function(E) { | |
| var T = | |
| n(this), | |
| V = T.html(); | |
| T.empty().append(function() { | |
| return k.call(this, E, V) | |
| }) | |
| }) : this.empty().append(k); | |
| return this | |
| }, | |
| replaceWith: function(k) { | |
| if (this[0] && this[0].parentNode) { | |
| if (n.isFunction(k)) return this.each(function(r) { | |
| var x = n(this), | |
| F = x.html(); | |
| x.replaceWith(k.call(this, r, F)) | |
| }); | |
| if (typeof k !== "string") k = n(k).detach(); | |
| return this.each(function() { | |
| var r = this.nextSibling, | |
| x = this.parentNode; | |
| n(this).remove(); | |
| r ? n(r).before(k) : n(x).append(k) | |
| }) | |
| } else return this.pushStack(n(n.isFunction(k) ? k() : k), "replaceWith", k) | |
| }, | |
| detach: function(k) { | |
| return this.remove(k, true) | |
| }, | |
| domManip: function(k, r, x) { | |
| var F, E, T = k[0], | |
| V = [], | |
| ca; | |
| if (!n.support.checkClone && arguments.length === 3 && typeof T === "string" && $a.test(T)) return this.each(function() { | |
| n(this).domManip(k, r, x, true) | |
| }); | |
| if (n.isFunction(T)) return this.each(function(da) { | |
| var ha = n(this); | |
| k[0] = T.call(this, da, r ? ha.html() : b); | |
| ha.domManip(k, r, x) | |
| }); | |
| if (this[0]) { | |
| F = T && T.parentNode; | |
| F = n.support.parentNode && F && F.nodeType === 11 && F.childNodes.length === this.length ? { | |
| fragment: F | |
| } : I(k, this, V); | |
| ca = F.fragment; | |
| if (E = ca.childNodes.length === 1 ? ca = ca.firstChild : ca.firstChild) { | |
| r = r && n.nodeName(E, "tr"); | |
| E = 0; | |
| for (var aa = this.length; E < aa; E++) x.call(r ? n.nodeName(this[E], "table") ? this[E].getElementsByTagName("tbody")[0] || this[E].appendChild(this[E].ownerDocument.createElement("tbody")) : this[E] : this[E], E > 0 || F.cacheable || this.length > 1 ? ca.cloneNode(true) : ca) | |
| } | |
| V.length && n.each(V, f) | |
| } | |
| return this | |
| } | |
| }); | |
| n.fragments = {}; | |
| n.each({ | |
| appendTo: "append", | |
| prependTo: "prepend", | |
| insertBefore: "before", | |
| insertAfter: "after", | |
| replaceAll: "replaceWith" | |
| }, | |
| function(k, r) { | |
| n.fn[k] = function(x) { | |
| var F = []; | |
| x = n(x); | |
| var E = this.length === 1 && this[0].parentNode; | |
| if (E && E.nodeType === 11 && E.childNodes.length === 1 && x.length === 1) { | |
| x[r](this[0]); | |
| return this | |
| } else { | |
| E = 0; | |
| for (var T = x.length; E < T; E++) { | |
| var V = (E > 0 ? this.clone(true) : this).get(); | |
| n.fn[r].apply(n(x[E]), V); | |
| F = F.concat(V) | |
| } | |
| return this.pushStack(F, k, x.selector) | |
| } | |
| } | |
| }); | |
| n.extend({ | |
| clean: function(k, r, x, F) { | |
| r = r || t; | |
| if (typeof r.createElement === "undefined") r = r.ownerDocument || r[0] && r[0].ownerDocument || t; | |
| for (var E = [], T = 0, V; | |
| (V = k[T]) != null; T++) { | |
| if (typeof V === | |
| "number") V += ""; | |
| if (V) { | |
| if (typeof V === "string" && !pb.test(V)) V = r.createTextNode(V); | |
| else if (typeof V === "string") { | |
| V = V.replace(eb, gb); | |
| var ca = (fb.exec(V) || ["", ""])[1].toLowerCase(), | |
| aa = Ea[ca] || Ea._default, | |
| da = aa[0], | |
| ha = r.createElement("div"); | |
| for (ha.innerHTML = aa[1] + V + aa[2]; da--;) ha = ha.lastChild; | |
| if (!n.support.tbody) { | |
| da = ob.test(V); | |
| ca = ca === "table" && !da ? ha.firstChild && ha.firstChild.childNodes : aa[1] === "<table>" && !da ? ha.childNodes : []; | |
| for (aa = ca.length - 1; aa >= 0; --aa) n.nodeName(ca[aa], "tbody") && !ca[aa].childNodes.length && | |
| ca[aa].parentNode.removeChild(ca[aa]) | |
| }!n.support.leadingWhitespace && Ra.test(V) && ha.insertBefore(r.createTextNode(Ra.exec(V)[0]), ha.firstChild); | |
| V = ha.childNodes | |
| } | |
| if (V.nodeType) E.push(V); | |
| else E = n.merge(E, V) | |
| } | |
| } | |
| if (x) | |
| for (T = 0; E[T]; T++) | |
| if (F && n.nodeName(E[T], "script") && (!E[T].type || E[T].type.toLowerCase() === "text/javascript")) F.push(E[T].parentNode ? E[T].parentNode.removeChild(E[T]) : E[T]); | |
| else { | |
| E[T].nodeType === 1 && E.splice.apply(E, [T + 1, 0].concat(n.makeArray(E[T].getElementsByTagName("script")))); | |
| x.appendChild(E[T]) | |
| } | |
| return E | |
| }, | |
| cleanData: function(k) { | |
| for (var r, x, F = n.cache, E = n.event.special, T = n.support.deleteExpando, V = 0, ca; | |
| (ca = k[V]) != null; V++) | |
| if (x = ca[n.expando]) { | |
| r = F[x]; | |
| if (r.events) | |
| for (var aa in r.events) E[aa] ? n.event.remove(ca, aa) : za(ca, aa, r.handle); | |
| if (T) delete ca[n.expando]; | |
| else ca.removeAttribute && ca.removeAttribute(n.expando); | |
| delete F[x] | |
| } | |
| } | |
| }); | |
| var qb = /z-?index|font-?weight|opacity|zoom|line-?height/i, | |
| hb = /alpha\([^)]*\)/, | |
| ib = /opacity=([^)]*)/, | |
| Ua = /float/i, | |
| Va = /-([a-z])/ig, | |
| rb = /([A-Z])/g, | |
| sb = /^-?\d+(?:px)?$/i, | |
| tb = /^-?\d/, | |
| ub = { | |
| position: "absolute", | |
| visibility: "hidden", | |
| display: "block" | |
| }, | |
| vb = ["Left", "Right"], | |
| wb = ["Top", "Bottom"], | |
| xb = t.defaultView && t.defaultView.getComputedStyle, | |
| jb = n.support.cssFloat ? "cssFloat" : "styleFloat", | |
| Wa = function(k, r) { | |
| return r.toUpperCase() | |
| }; | |
| n.fn.css = function(k, r) { | |
| return g(this, k, r, true, function(x, F, E) { | |
| if (E === b) return n.curCSS(x, F); | |
| if (typeof E === "number" && !qb.test(F)) E += "px"; | |
| n.style(x, F, E) | |
| }) | |
| }; | |
| n.extend({ | |
| style: function(k, r, x) { | |
| if (!k || k.nodeType === 3 || k.nodeType === 8) return b; | |
| if ((r === "width" || r === "height") && parseFloat(x) < 0) x = b; | |
| var F = | |
| k.style || k, | |
| E = x !== b; | |
| if (!n.support.opacity && r === "opacity") { | |
| if (E) { | |
| F.zoom = 1; | |
| r = parseInt(x, 10) + "" === "NaN" ? "" : "alpha(opacity=" + x * 100 + ")"; | |
| k = F.filter || n.curCSS(k, "filter") || ""; | |
| F.filter = hb.test(k) ? k.replace(hb, r) : r | |
| } | |
| return F.filter && F.filter.indexOf("opacity=") >= 0 ? parseFloat(ib.exec(F.filter)[1]) / 100 + "" : "" | |
| } | |
| if (Ua.test(r)) r = jb; | |
| r = r.replace(Va, Wa); | |
| if (E) F[r] = x; | |
| return F[r] | |
| }, | |
| css: function(k, r, x, F) { | |
| if (r === "width" || r === "height") { | |
| var E, T = r === "width" ? vb : wb; | |
| x = function() { | |
| E = r === "width" ? k.offsetWidth : k.offsetHeight; | |
| F !== "border" && | |
| n.each(T, function() { | |
| F || (E -= parseFloat(n.curCSS(k, "padding" + this, true)) || 0); | |
| if (F === "margin") E += parseFloat(n.curCSS(k, "margin" + this, true)) || 0; | |
| else E -= parseFloat(n.curCSS(k, "border" + this + "Width", true)) || 0 | |
| }) | |
| }; | |
| k.offsetWidth !== 0 ? x() : n.swap(k, ub, x); | |
| return Math.max(0, Math.round(E)) | |
| } | |
| return n.curCSS(k, r, x) | |
| }, | |
| curCSS: function(k, r, x) { | |
| var F, E = k.style; | |
| if (!n.support.opacity && r === "opacity" && k.currentStyle) { | |
| F = ib.test(k.currentStyle.filter || "") ? parseFloat(RegExp.$1) / 100 + "" : ""; | |
| return F === "" ? "1" : F | |
| } | |
| if (Ua.test(r)) r = jb; | |
| if (!x && | |
| E && E[r]) F = E[r]; | |
| else if (xb) { | |
| if (Ua.test(r)) r = "float"; | |
| r = r.replace(rb, "-$1").toLowerCase(); | |
| E = k.ownerDocument.defaultView; | |
| if (!E) return null; | |
| if (k = E.getComputedStyle(k, null)) F = k.getPropertyValue(r); | |
| if (r === "opacity" && F === "") F = "1" | |
| } else if (k.currentStyle) { | |
| x = r.replace(Va, Wa); | |
| F = k.currentStyle[r] || k.currentStyle[x]; | |
| if (!sb.test(F) && tb.test(F)) { | |
| r = E.left; | |
| var T = k.runtimeStyle.left; | |
| k.runtimeStyle.left = k.currentStyle.left; | |
| E.left = x === "fontSize" ? "1em" : F || 0; | |
| F = E.pixelLeft + "px"; | |
| E.left = r; | |
| k.runtimeStyle.left = T | |
| } | |
| } | |
| return F | |
| }, | |
| swap: function(k, r, x) { | |
| var F = {}, | |
| E; | |
| for (E in r) { | |
| F[E] = k.style[E]; | |
| k.style[E] = r[E] | |
| } | |
| x.call(k); | |
| for (E in r) k.style[E] = F[E] | |
| } | |
| }); | |
| if (n.expr && n.expr.filters) { | |
| n.expr.filters.hidden = function(k) { | |
| var r = k.offsetWidth, | |
| x = k.offsetHeight, | |
| F = k.nodeName.toLowerCase() === "tr"; | |
| return r === 0 && x === 0 && !F ? true : r > 0 && x > 0 && !F ? false : n.curCSS(k, "display") === "none" | |
| }; | |
| n.expr.filters.visible = function(k) { | |
| return !n.expr.filters.hidden(k) | |
| } | |
| } | |
| var yb = j(), | |
| zb = /<script(.|\s)*?\/script>/gi, | |
| Ab = /select|textarea/i, | |
| Bb = /color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week/i, | |
| Oa = /=\?(&|$)/, | |
| Xa = /\?/, | |
| Cb = /(\?|&)_=.*?(&|$)/, | |
| Db = /^(\w+:)?\/\/([^\/?#]+)/, | |
| Eb = /%20/g, | |
| Fb = n.fn.load; | |
| n.fn.extend({ | |
| load: function(k, r, x) { | |
| if (typeof k !== "string") return Fb.call(this, k); | |
| else if (!this.length) return this; | |
| var F = k.indexOf(" "); | |
| if (F >= 0) { | |
| var E = k.slice(F, k.length); | |
| k = k.slice(0, F) | |
| } | |
| F = "GET"; | |
| if (r) | |
| if (n.isFunction(r)) { | |
| x = r; | |
| r = null | |
| } else if (typeof r === "object") { | |
| r = n.param(r, n.ajaxSettings.traditional); | |
| F = "POST" | |
| } | |
| var T = this; | |
| n.ajax({ | |
| url: k, | |
| type: F, | |
| dataType: "html", | |
| data: r, | |
| complete: function(V, ca) { | |
| if (ca === "success" || ca === | |
| "notmodified") T.html(E ? n("<div />").append(V.responseText.replace(zb, "")).find(E) : V.responseText); | |
| x && T.each(x, [V.responseText, ca, V]) | |
| } | |
| }); | |
| return this | |
| }, | |
| serialize: function() { | |
| return n.param(this.serializeArray()) | |
| }, | |
| serializeArray: function() { | |
| return this.map(function() { | |
| return this.elements ? n.makeArray(this.elements) : this | |
| }).filter(function() { | |
| return this.name && !this.disabled && (this.checked || Ab.test(this.nodeName) || Bb.test(this.type)) | |
| }).map(function(k, r) { | |
| k = n(this).val(); | |
| return k == null ? null : n.isArray(k) ? n.map(k, | |
| function(x) { | |
| return { | |
| name: r.name, | |
| value: x | |
| } | |
| }) : { | |
| name: r.name, | |
| value: k | |
| } | |
| }).get() | |
| } | |
| }); | |
| n.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "), function(k, r) { | |
| n.fn[r] = function(x) { | |
| return this.bind(r, x) | |
| } | |
| }); | |
| n.extend({ | |
| get: function(k, r, x, F) { | |
| if (n.isFunction(r)) { | |
| F = F || x; | |
| x = r; | |
| r = null | |
| } | |
| return n.ajax({ | |
| type: "GET", | |
| url: k, | |
| data: r, | |
| success: x, | |
| dataType: F | |
| }) | |
| }, | |
| getScript: function(k, r) { | |
| return n.get(k, null, r, "script") | |
| }, | |
| getJSON: function(k, r, x) { | |
| return n.get(k, r, x, "json") | |
| }, | |
| post: function(k, r, x, F) { | |
| if (n.isFunction(r)) { | |
| F = | |
| F || x; | |
| x = r; | |
| r = {} | |
| } | |
| return n.ajax({ | |
| type: "POST", | |
| url: k, | |
| data: r, | |
| success: x, | |
| dataType: F | |
| }) | |
| }, | |
| ajaxSetup: function(k) { | |
| n.extend(n.ajaxSettings, k) | |
| }, | |
| ajaxSettings: { | |
| url: location.href, | |
| global: true, | |
| type: "GET", | |
| contentType: "application/x-www-form-urlencoded", | |
| processData: true, | |
| async: true, | |
| xhr: a.XMLHttpRequest && (a.location.protocol !== "file:" || !a.ActiveXObject) ? function() { | |
| return new a.XMLHttpRequest | |
| } : function() { | |
| try { | |
| return new a.ActiveXObject("Microsoft.XMLHTTP") | |
| } catch (k) {} | |
| }, | |
| accepts: { | |
| xml: "application/xml, text/xml", | |
| html: "text/html", | |
| script: "text/javascript, application/javascript", | |
| json: "application/json, text/javascript", | |
| text: "text/plain", | |
| _default: "*/*" | |
| } | |
| }, | |
| lastModified: {}, | |
| etag: {}, | |
| ajax: function(k) { | |
| function r() { | |
| E.success && E.success.call(aa, ca, V, sa); | |
| E.global && F("ajaxSuccess", [sa, E]) | |
| } | |
| function x() { | |
| E.complete && E.complete.call(aa, sa, V); | |
| E.global && F("ajaxComplete", [sa, E]); | |
| E.global && !--n.active && n.event.trigger("ajaxStop") | |
| } | |
| function F(fa, ea) { | |
| (E.context ? n(E.context) : n.event).trigger(fa, ea) | |
| } | |
| var E = n.extend(true, {}, n.ajaxSettings, k), | |
| T, V, ca, | |
| aa = k && k.context || E, | |
| da = E.type.toUpperCase(); | |
| if (E.data && E.processData && typeof E.data !== "string") E.data = n.param(E.data, E.traditional); | |
| if (E.dataType === "jsonp") { | |
| if (da === "GET") Oa.test(E.url) || (E.url += (Xa.test(E.url) ? "&" : "?") + (E.jsonp || "callback") + "=?"); | |
| else if (!E.data || !Oa.test(E.data)) E.data = (E.data ? E.data + "&" : "") + (E.jsonp || "callback") + "=?"; | |
| E.dataType = "json" | |
| } | |
| if (E.dataType === "json" && (E.data && Oa.test(E.data) || Oa.test(E.url))) { | |
| T = E.jsonpCallback || "jsonp" + yb++; | |
| if (E.data) E.data = (E.data + "").replace(Oa, "=" + T + | |
| "$1"); | |
| E.url = E.url.replace(Oa, "=" + T + "$1"); | |
| E.dataType = "script"; | |
| a[T] = a[T] || function(fa) { | |
| ca = fa; | |
| r(); | |
| x(); | |
| a[T] = b; | |
| try { | |
| delete a[T] | |
| } catch (ea) {} | |
| wa && wa.removeChild(Ba) | |
| } | |
| } | |
| if (E.dataType === "script" && E.cache === null) E.cache = false; | |
| if (E.cache === false && da === "GET") { | |
| var ha = j(), | |
| qa = E.url.replace(Cb, "$1_=" + ha + "$2"); | |
| E.url = qa + (qa === E.url ? (Xa.test(E.url) ? "&" : "?") + "_=" + ha : "") | |
| } | |
| if (E.data && da === "GET") E.url += (Xa.test(E.url) ? "&" : "?") + E.data; | |
| E.global && !n.active++ && n.event.trigger("ajaxStart"); | |
| ha = (ha = Db.exec(E.url)) && (ha[1] && ha[1] !== | |
| location.protocol || ha[2] !== location.host); | |
| if (E.dataType === "script" && da === "GET" && ha) { | |
| var wa = t.getElementsByTagName("head")[0] || t.documentElement, | |
| Ba = t.createElement("script"); | |
| Ba.src = E.url; | |
| if (E.scriptCharset) Ba.charset = E.scriptCharset; | |
| if (!T) { | |
| var ya = false; | |
| Ba.onload = Ba.onreadystatechange = function() { | |
| if (!ya && (!this.readyState || this.readyState === "loaded" || this.readyState === "complete")) { | |
| ya = true; | |
| r(); | |
| x(); | |
| Ba.onload = Ba.onreadystatechange = null; | |
| wa && Ba.parentNode && wa.removeChild(Ba) | |
| } | |
| } | |
| } | |
| wa.insertBefore(Ba, wa.firstChild); | |
| return b | |
| } | |
| var Da = false, | |
| sa = E.xhr(); | |
| if (sa) { | |
| E.username ? sa.open(da, E.url, E.async, E.username, E.password) : sa.open(da, E.url, E.async); | |
| try { | |
| if (E.data || k && k.contentType) sa.setRequestHeader("Content-Type", E.contentType); | |
| if (E.ifModified) { | |
| n.lastModified[E.url] && sa.setRequestHeader("If-Modified-Since", n.lastModified[E.url]); | |
| n.etag[E.url] && sa.setRequestHeader("If-None-Match", n.etag[E.url]) | |
| } | |
| ha || sa.setRequestHeader("X-Requested-With", "XMLHttpRequest"); | |
| sa.setRequestHeader("Accept", E.dataType && E.accepts[E.dataType] ? E.accepts[E.dataType] + | |
| ", */*" : E.accepts._default) | |
| } catch (Ta) {} | |
| if (E.beforeSend && E.beforeSend.call(aa, sa, E) === false) { | |
| E.global && !--n.active && n.event.trigger("ajaxStop"); | |
| sa.abort(); | |
| return false | |
| } | |
| E.global && F("ajaxSend", [sa, E]); | |
| var N = sa.onreadystatechange = function(fa) { | |
| if (!sa || sa.readyState === 0 || fa === "abort") { | |
| Da || x(); | |
| Da = true; | |
| if (sa) sa.onreadystatechange = n.noop | |
| } else if (!Da && sa && (sa.readyState === 4 || fa === "timeout")) { | |
| Da = true; | |
| sa.onreadystatechange = n.noop; | |
| V = fa === "timeout" ? "timeout" : !n.httpSuccess(sa) ? "error" : E.ifModified && n.httpNotModified(sa, | |
| E.url) ? "notmodified" : "success"; | |
| var ea; | |
| if (V === "success") try { | |
| ca = n.httpData(sa, E.dataType, E) | |
| } catch (oa) { | |
| V = "parsererror"; | |
| ea = oa | |
| } | |
| if (V === "success" || V === "notmodified") T || r(); | |
| else n.handleError(E, sa, V, ea); | |
| x(); | |
| fa === "timeout" && sa.abort(); | |
| if (E.async) sa = null | |
| } | |
| }; | |
| try { | |
| var S = sa.abort; | |
| sa.abort = function() { | |
| sa && S.call(sa); | |
| N("abort") | |
| } | |
| } catch (Y) {} | |
| E.async && E.timeout > 0 && setTimeout(function() { | |
| sa && !Da && N("timeout") | |
| }, E.timeout); | |
| try { | |
| sa.send(da === "POST" || da === "PUT" || da === "DELETE" ? E.data : null) | |
| } catch (ba) { | |
| n.handleError(E, sa, null, ba); | |
| x() | |
| } | |
| E.async || N(); | |
| return sa | |
| } | |
| }, | |
| handleError: function(k, r, x, F) { | |
| if (k.error) k.error.call(k.context || k, r, x, F); | |
| if (k.global)(k.context ? n(k.context) : n.event).trigger("ajaxError", [r, k, F]) | |
| }, | |
| active: 0, | |
| httpSuccess: function(k) { | |
| try { | |
| return !k.status && location.protocol === "file:" || k.status >= 200 && k.status < 300 || k.status === 304 || k.status === 1223 || k.status === 0 | |
| } catch (r) {} | |
| return false | |
| }, | |
| httpNotModified: function(k, r) { | |
| var x = k.getResponseHeader("Last-Modified"), | |
| F = k.getResponseHeader("Etag"); | |
| if (x) n.lastModified[r] = x; | |
| if (F) n.etag[r] = | |
| F; | |
| return k.status === 304 || k.status === 0 | |
| }, | |
| httpData: function(k, r, x) { | |
| var F = k.getResponseHeader("content-type") || "", | |
| E = r === "xml" || !r && F.indexOf("xml") >= 0; | |
| k = E ? k.responseXML : k.responseText; | |
| E && k.documentElement.nodeName === "parsererror" && n.error("parsererror"); | |
| if (x && x.dataFilter) k = x.dataFilter(k, r); | |
| if (typeof k === "string") | |
| if (r === "json" || !r && F.indexOf("json") >= 0) k = n.parseJSON(k); | |
| else if (r === "script" || !r && F.indexOf("javascript") >= 0) n.globalEval(k); | |
| return k | |
| }, | |
| param: function(k, r) { | |
| function x(V, ca) { | |
| if (n.isArray(ca)) n.each(ca, | |
| function(aa, da) { | |
| r || /\[\]$/.test(V) ? F(V, da) : x(V + "[" + (typeof da === "object" || n.isArray(da) ? aa : "") + "]", da) | |
| }); | |
| else !r && ca != null && typeof ca === "object" ? n.each(ca, function(aa, da) { | |
| x(V + "[" + aa + "]", da) | |
| }) : F(V, ca) | |
| } | |
| function F(V, ca) { | |
| ca = n.isFunction(ca) ? ca() : ca; | |
| E[E.length] = encodeURIComponent(V) + "=" + encodeURIComponent(ca) | |
| } | |
| var E = []; | |
| if (r === b) r = n.ajaxSettings.traditional; | |
| if (n.isArray(k) || k.jquery) n.each(k, function() { | |
| F(this.name, this.value) | |
| }); | |
| else | |
| for (var T in k) x(T, k[T]); | |
| return E.join("&").replace(Eb, "+") | |
| } | |
| }); | |
| var Ya = {}, | |
| Gb = /toggle|show|hide/, | |
| Hb = /^([+-]=)?([\d+-.]+)(.*)$/, | |
| Sa, ab = [ | |
| ["height", "marginTop", "marginBottom", "paddingTop", "paddingBottom"], | |
| ["width", "marginLeft", "marginRight", "paddingLeft", "paddingRight"], | |
| ["opacity"] | |
| ]; | |
| n.fn.extend({ | |
| show: function(k, r) { | |
| if (k || k === 0) return this.animate(K("show", 3), k, r); | |
| else { | |
| k = 0; | |
| for (r = this.length; k < r; k++) { | |
| var x = n.data(this[k], "olddisplay"); | |
| this[k].style.display = x || ""; | |
| if (n.css(this[k], "display") === "none") { | |
| x = this[k].nodeName; | |
| var F; | |
| if (Ya[x]) F = Ya[x]; | |
| else { | |
| var E = n("<" + x + " />").appendTo("body"); | |
| F = E.css("display"); | |
| if (F === "none") F = "block"; | |
| E.remove(); | |
| Ya[x] = F | |
| } | |
| n.data(this[k], "olddisplay", F) | |
| } | |
| } | |
| k = 0; | |
| for (r = this.length; k < r; k++) this[k].style.display = n.data(this[k], "olddisplay") || ""; | |
| return this | |
| } | |
| }, | |
| hide: function(k, r) { | |
| if (k || k === 0) return this.animate(K("hide", 3), k, r); | |
| else { | |
| k = 0; | |
| for (r = this.length; k < r; k++) { | |
| var x = n.data(this[k], "olddisplay"); | |
| !x && x !== "none" && n.data(this[k], "olddisplay", n.css(this[k], "display")) | |
| } | |
| k = 0; | |
| for (r = this.length; k < r; k++) this[k].style.display = "none"; | |
| return this | |
| } | |
| }, | |
| _toggle: n.fn.toggle, | |
| toggle: function(k, | |
| r) { | |
| var x = typeof k === "boolean"; | |
| if (n.isFunction(k) && n.isFunction(r)) this._toggle.apply(this, arguments); | |
| else k == null || x ? this.each(function() { | |
| var F = x ? k : n(this).is(":hidden"); | |
| n(this)[F ? "show" : "hide"]() | |
| }) : this.animate(K("toggle", 3), k, r); | |
| return this | |
| }, | |
| fadeTo: function(k, r, x) { | |
| return this.filter(":hidden").css("opacity", 0).show().end().animate({ | |
| opacity: r | |
| }, k, x) | |
| }, | |
| animate: function(k, r, x, F) { | |
| var E = n.speed(r, x, F); | |
| if (n.isEmptyObject(k)) return this.each(E.complete); | |
| return this[E.queue === false ? "each" : "queue"](function() { | |
| var T = | |
| n.extend({}, E), | |
| V, ca = this.nodeType === 1 && n(this).is(":hidden"), | |
| aa = this; | |
| for (V in k) { | |
| var da = V.replace(Va, Wa); | |
| if (V !== da) { | |
| k[da] = k[V]; | |
| delete k[V]; | |
| V = da | |
| } | |
| if (k[V] === "hide" && ca || k[V] === "show" && !ca) return T.complete.call(this); | |
| if ((V === "height" || V === "width") && this.style) { | |
| T.display = n.css(this, "display"); | |
| T.overflow = this.style.overflow | |
| } | |
| if (n.isArray(k[V])) { | |
| (T.specialEasing = T.specialEasing || {})[V] = k[V][1]; | |
| k[V] = k[V][0] | |
| } | |
| } | |
| if (T.overflow != null) this.style.overflow = "hidden"; | |
| T.curAnim = n.extend({}, k); | |
| n.each(k, function(ha, qa) { | |
| var wa = | |
| new n.fx(aa, T, ha); | |
| if (Gb.test(qa)) wa[qa === "toggle" ? ca ? "show" : "hide" : qa](k); | |
| else { | |
| var Ba = Hb.exec(qa), | |
| ya = wa.cur(true) || 0; | |
| if (Ba) { | |
| qa = parseFloat(Ba[2]); | |
| var Da = Ba[3] || "px"; | |
| if (Da !== "px") { | |
| aa.style[ha] = (qa || 1) + Da; | |
| ya = (qa || 1) / wa.cur(true) * ya; | |
| aa.style[ha] = ya + Da | |
| } | |
| if (Ba[1]) qa = (Ba[1] === "-=" ? -1 : 1) * qa + ya; | |
| wa.custom(ya, qa, Da) | |
| } else wa.custom(ya, qa, "") | |
| } | |
| }); | |
| return true | |
| }) | |
| }, | |
| stop: function(k, r) { | |
| var x = n.timers; | |
| k && this.queue([]); | |
| this.each(function() { | |
| for (var F = x.length - 1; F >= 0; F--) | |
| if (x[F].elem === this) { | |
| r && x[F](true); | |
| x.splice(F, 1) | |
| } | |
| }); | |
| r || this.dequeue(); | |
| return this | |
| } | |
| }); | |
| n.each({ | |
| slideDown: K("show", 1), | |
| slideUp: K("hide", 1), | |
| slideToggle: K("toggle", 1), | |
| fadeIn: { | |
| opacity: "show" | |
| }, | |
| fadeOut: { | |
| opacity: "hide" | |
| } | |
| }, function(k, r) { | |
| n.fn[k] = function(x, F) { | |
| return this.animate(r, x, F) | |
| } | |
| }); | |
| n.extend({ | |
| speed: function(k, r, x) { | |
| var F = k && typeof k === "object" ? k : { | |
| complete: x || !x && r || n.isFunction(k) && k, | |
| duration: k, | |
| easing: x && r || r && !n.isFunction(r) && r | |
| }; | |
| F.duration = n.fx.off ? 0 : typeof F.duration === "number" ? F.duration : n.fx.speeds[F.duration] || n.fx.speeds._default; | |
| F.old = F.complete; | |
| F.complete = | |
| function() { | |
| F.queue !== false && n(this).dequeue(); | |
| n.isFunction(F.old) && F.old.call(this) | |
| }; | |
| return F | |
| }, | |
| easing: { | |
| linear: function(k, r, x, F) { | |
| return x + F * k | |
| }, | |
| swing: function(k, r, x, F) { | |
| return (-Math.cos(k * Math.PI) / 2 + 0.5) * F + x | |
| } | |
| }, | |
| timers: [], | |
| fx: function(k, r, x) { | |
| this.options = r; | |
| this.elem = k; | |
| this.prop = x; | |
| if (!r.orig) r.orig = {} | |
| } | |
| }); | |
| n.fx.prototype = { | |
| update: function() { | |
| this.options.step && this.options.step.call(this.elem, this.now, this); | |
| (n.fx.step[this.prop] || n.fx.step._default)(this); | |
| if ((this.prop === "height" || this.prop === "width") && this.elem.style) this.elem.style.display = | |
| "block" | |
| }, | |
| cur: function(k) { | |
| if (this.elem[this.prop] != null && (!this.elem.style || this.elem.style[this.prop] == null)) return this.elem[this.prop]; | |
| return (k = parseFloat(n.css(this.elem, this.prop, k))) && k > -1E4 ? k : parseFloat(n.curCSS(this.elem, this.prop)) || 0 | |
| }, | |
| custom: function(k, r, x) { | |
| function F(T) { | |
| return E.step(T) | |
| } | |
| this.startTime = j(); | |
| this.start = k; | |
| this.end = r; | |
| this.unit = x || this.unit || "px"; | |
| this.now = this.start; | |
| this.pos = this.state = 0; | |
| var E = this; | |
| F.elem = this.elem; | |
| if (F() && n.timers.push(F) && !Sa) Sa = setInterval(n.fx.tick, 13) | |
| }, | |
| show: function() { | |
| this.options.orig[this.prop] = | |
| n.style(this.elem, this.prop); | |
| this.options.show = true; | |
| this.custom(this.prop === "width" || this.prop === "height" ? 1 : 0, this.cur()); | |
| n(this.elem).show() | |
| }, | |
| hide: function() { | |
| this.options.orig[this.prop] = n.style(this.elem, this.prop); | |
| this.options.hide = true; | |
| this.custom(this.cur(), 0) | |
| }, | |
| step: function(k) { | |
| var r = j(), | |
| x = true; | |
| if (k || r >= this.options.duration + this.startTime) { | |
| this.now = this.end; | |
| this.pos = this.state = 1; | |
| this.update(); | |
| this.options.curAnim[this.prop] = true; | |
| for (var F in this.options.curAnim) | |
| if (this.options.curAnim[F] !== | |
| true) x = false; | |
| if (x) { | |
| if (this.options.display != null) { | |
| this.elem.style.overflow = this.options.overflow; | |
| k = n.data(this.elem, "olddisplay"); | |
| this.elem.style.display = k ? k : this.options.display; | |
| if (n.css(this.elem, "display") === "none") this.elem.style.display = "block" | |
| } | |
| this.options.hide && n(this.elem).hide(); | |
| if (this.options.hide || this.options.show) | |
| for (var E in this.options.curAnim) n.style(this.elem, E, this.options.orig[E]); | |
| this.options.complete.call(this.elem) | |
| } | |
| return false | |
| } else { | |
| E = r - this.startTime; | |
| this.state = E / this.options.duration; | |
| k = this.options.easing || (n.easing.swing ? "swing" : "linear"); | |
| this.pos = n.easing[this.options.specialEasing && this.options.specialEasing[this.prop] || k](this.state, E, 0, 1, this.options.duration); | |
| this.now = this.start + (this.end - this.start) * this.pos; | |
| this.update() | |
| } | |
| return true | |
| } | |
| }; | |
| n.extend(n.fx, { | |
| tick: function() { | |
| for (var k = n.timers, r = 0; r < k.length; r++) k[r]() || k.splice(r--, 1); | |
| k.length || n.fx.stop() | |
| }, | |
| stop: function() { | |
| clearInterval(Sa); | |
| Sa = null | |
| }, | |
| speeds: { | |
| slow: 600, | |
| fast: 200, | |
| _default: 400 | |
| }, | |
| step: { | |
| opacity: function(k) { | |
| n.style(k.elem, | |
| "opacity", k.now) | |
| }, | |
| _default: function(k) { | |
| if (k.elem.style && k.elem.style[k.prop] != null) k.elem.style[k.prop] = (k.prop === "width" || k.prop === "height" ? Math.max(0, k.now) : k.now) + k.unit; | |
| else k.elem[k.prop] = k.now | |
| } | |
| } | |
| }); | |
| if (n.expr && n.expr.filters) n.expr.filters.animated = function(k) { | |
| return n.grep(n.timers, function(r) { | |
| return k === r.elem | |
| }).length | |
| }; | |
| n.fn.offset = "getBoundingClientRect" in t.documentElement ? function(k) { | |
| var r = this[0]; | |
| if (k) return this.each(function(E) { | |
| n.offset.setOffset(this, k, E) | |
| }); | |
| if (!r || !r.ownerDocument) return null; | |
| if (r === r.ownerDocument.body) return n.offset.bodyOffset(r); | |
| var x = r.getBoundingClientRect(), | |
| F = r.ownerDocument; | |
| r = F.body; | |
| F = F.documentElement; | |
| return { | |
| top: x.top + (self.pageYOffset || n.support.boxModel && F.scrollTop || r.scrollTop) - (F.clientTop || r.clientTop || 0), | |
| left: x.left + (self.pageXOffset || n.support.boxModel && F.scrollLeft || r.scrollLeft) - (F.clientLeft || r.clientLeft || 0) | |
| } | |
| } : function(k) { | |
| var r = this[0]; | |
| if (k) return this.each(function(ha) { | |
| n.offset.setOffset(this, k, ha) | |
| }); | |
| if (!r || !r.ownerDocument) return null; | |
| if (r === r.ownerDocument.body) return n.offset.bodyOffset(r); | |
| n.offset.initialize(); | |
| var x = r.offsetParent, | |
| F = r, | |
| E = r.ownerDocument, | |
| T, V = E.documentElement, | |
| ca = E.body; | |
| F = (E = E.defaultView) ? E.getComputedStyle(r, null) : r.currentStyle; | |
| for (var aa = r.offsetTop, da = r.offsetLeft; | |
| (r = r.parentNode) && r !== ca && r !== V;) { | |
| if (n.offset.supportsFixedPosition && F.position === "fixed") break; | |
| T = E ? E.getComputedStyle(r, null) : r.currentStyle; | |
| aa -= r.scrollTop; | |
| da -= r.scrollLeft; | |
| if (r === x) { | |
| aa += r.offsetTop; | |
| da += r.offsetLeft; | |
| if (n.offset.doesNotAddBorder && !(n.offset.doesAddBorderForTableAndCells && /^t(able|d|h)$/i.test(r.nodeName))) { | |
| aa += | |
| parseFloat(T.borderTopWidth) || 0; | |
| da += parseFloat(T.borderLeftWidth) || 0 | |
| } | |
| F = x; | |
| x = r.offsetParent | |
| } | |
| if (n.offset.subtractsBorderForOverflowNotVisible && T.overflow !== "visible") { | |
| aa += parseFloat(T.borderTopWidth) || 0; | |
| da += parseFloat(T.borderLeftWidth) || 0 | |
| } | |
| F = T | |
| } | |
| if (F.position === "relative" || F.position === "static") { | |
| aa += ca.offsetTop; | |
| da += ca.offsetLeft | |
| } | |
| if (n.offset.supportsFixedPosition && F.position === "fixed") { | |
| aa += Math.max(V.scrollTop, ca.scrollTop); | |
| da += Math.max(V.scrollLeft, ca.scrollLeft) | |
| } | |
| return { | |
| top: aa, | |
| left: da | |
| } | |
| }; | |
| n.offset = { | |
| initialize: function() { | |
| var k = | |
| t.body, | |
| r = t.createElement("div"), | |
| x, F, E, T = parseFloat(n.curCSS(k, "marginTop", true)) || 0; | |
| n.extend(r.style, { | |
| position: "absolute", | |
| top: 0, | |
| left: 0, | |
| margin: 0, | |
| border: 0, | |
| width: "1px", | |
| height: "1px", | |
| visibility: "hidden" | |
| }); | |
| r.innerHTML = "<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>"; | |
| k.insertBefore(r, k.firstChild); | |
| x = r.firstChild; | |
| F = x.firstChild; | |
| E = x.nextSibling.firstChild.firstChild; | |
| this.doesNotAddBorder = F.offsetTop !== 5; | |
| this.doesAddBorderForTableAndCells = E.offsetTop === 5; | |
| F.style.position = "fixed"; | |
| F.style.top = "20px"; | |
| this.supportsFixedPosition = F.offsetTop === 20 || F.offsetTop === 15; | |
| F.style.position = F.style.top = ""; | |
| x.style.overflow = "hidden"; | |
| x.style.position = "relative"; | |
| this.subtractsBorderForOverflowNotVisible = F.offsetTop === -5; | |
| this.doesNotIncludeMarginInBodyOffset = k.offsetTop !== T; | |
| k.removeChild(r); | |
| n.offset.initialize = n.noop | |
| }, | |
| bodyOffset: function(k) { | |
| var r = k.offsetTop, | |
| x = k.offsetLeft; | |
| n.offset.initialize(); | |
| if (n.offset.doesNotIncludeMarginInBodyOffset) { | |
| r += parseFloat(n.curCSS(k, "marginTop", true)) || 0; | |
| x += parseFloat(n.curCSS(k, "marginLeft", true)) || 0 | |
| } | |
| return { | |
| top: r, | |
| left: x | |
| } | |
| }, | |
| setOffset: function(k, r, x) { | |
| if (/static/.test(n.curCSS(k, "position"))) k.style.position = "relative"; | |
| var F = n(k), | |
| E = F.offset(), | |
| T = parseInt(n.curCSS(k, "top", true), 10) || 0, | |
| V = parseInt(n.curCSS(k, "left", true), 10) || 0; | |
| if (n.isFunction(r)) r = r.call(k, | |
| x, E); | |
| x = { | |
| top: r.top - E.top + T, | |
| left: r.left - E.left + V | |
| }; | |
| "using" in r ? r.using.call(k, x) : F.css(x) | |
| } | |
| }; | |
| n.fn.extend({ | |
| position: function() { | |
| if (!this[0]) return null; | |
| var k = this[0], | |
| r = this.offsetParent(), | |
| x = this.offset(), | |
| F = /^body|html$/i.test(r[0].nodeName) ? { | |
| top: 0, | |
| left: 0 | |
| } : r.offset(); | |
| x.top -= parseFloat(n.curCSS(k, "marginTop", true)) || 0; | |
| x.left -= parseFloat(n.curCSS(k, "marginLeft", true)) || 0; | |
| F.top += parseFloat(n.curCSS(r[0], "borderTopWidth", true)) || 0; | |
| F.left += parseFloat(n.curCSS(r[0], "borderLeftWidth", true)) || 0; | |
| return { | |
| top: x.top - | |
| F.top, | |
| left: x.left - F.left | |
| } | |
| }, | |
| offsetParent: function() { | |
| return this.map(function() { | |
| for (var k = this.offsetParent || t.body; k && !/^body|html$/i.test(k.nodeName) && n.css(k, "position") === "static";) k = k.offsetParent; | |
| return k | |
| }) | |
| } | |
| }); | |
| n.each(["Left", "Top"], function(k, r) { | |
| var x = "scroll" + r; | |
| n.fn[x] = function(F) { | |
| var E = this[0], | |
| T; | |
| if (!E) return null; | |
| return F !== b ? this.each(function() { | |
| if (T = Q(this)) T.scrollTo(!k ? F : n(T).scrollLeft(), k ? F : n(T).scrollTop()); | |
| else this[x] = F | |
| }) : (T = Q(E)) ? "pageXOffset" in T ? T[k ? "pageYOffset" : "pageXOffset"] : | |
| n.support.boxModel && T.document.documentElement[x] || T.document.body[x] : E[x] | |
| } | |
| }); | |
| n.each(["Height", "Width"], function(k, r) { | |
| var x = r.toLowerCase(); | |
| n.fn["inner" + r] = function() { | |
| return this[0] ? n.css(this[0], x, false, "padding") : null | |
| }; | |
| n.fn["outer" + r] = function(F) { | |
| return this[0] ? n.css(this[0], x, false, F ? "margin" : "border") : null | |
| }; | |
| n.fn[x] = function(F) { | |
| var E = this[0]; | |
| if (!E) return F == null ? null : this; | |
| if (n.isFunction(F)) return this.each(function(T) { | |
| var V = n(this); | |
| V[x](F.call(this, T, V[x]())) | |
| }); | |
| return "scrollTo" in E && E.document ? | |
| E.document.compatMode === "CSS1Compat" && E.document.documentElement["client" + r] || E.document.body["client" + r] : E.nodeType === 9 ? Math.max(E.documentElement["client" + r], E.body["scroll" + r], E.documentElement["scroll" + r], E.body["offset" + r], E.documentElement["offset" + r]) : F === b ? n.css(E, x) : this.css(x, typeof F === "string" ? F : F + "px") | |
| } | |
| }); | |
| a.jQuery = a.$ = n | |
| })(window); | |
| jQuery.ui || function(a) { | |
| a.ui = { | |
| version: "1.8.1", | |
| plugin: { | |
| add: function(b, d, f) { | |
| b = a.ui[b].prototype; | |
| for (var g in f) { | |
| b.plugins[g] = b.plugins[g] || []; | |
| b.plugins[g].push([d, f[g]]) | |
| } | |
| }, | |
| call: function(b, d, f) { | |
| if ((d = b.plugins[d]) && b.element[0].parentNode) | |
| for (var g = 0; g < d.length; g++) b.options[d[g][0]] && d[g][1].apply(b.element, f) | |
| } | |
| }, | |
| contains: function(b, d) { | |
| return document.compareDocumentPosition ? b.compareDocumentPosition(d) & 16 : b !== d && b.contains(d) | |
| }, | |
| hasScroll: function(b, d) { | |
| if (a(b).css("overflow") == "hidden") return false; | |
| d = | |
| d && d == "left" ? "scrollLeft" : "scrollTop"; | |
| var f = false; | |
| if (b[d] > 0) return true; | |
| b[d] = 1; | |
| f = b[d] > 0; | |
| b[d] = 0; | |
| return f | |
| }, | |
| isOverAxis: function(b, d, f) { | |
| return b > d && b < d + f | |
| }, | |
| isOver: function(b, d, f, g, j, l) { | |
| return a.ui.isOverAxis(b, f, j) && a.ui.isOverAxis(d, g, l) | |
| }, | |
| keyCode: { | |
| ALT: 18, | |
| BACKSPACE: 8, | |
| CAPS_LOCK: 20, | |
| COMMA: 188, | |
| CONTROL: 17, | |
| DELETE: 46, | |
| DOWN: 40, | |
| END: 35, | |
| ENTER: 13, | |
| ESCAPE: 27, | |
| HOME: 36, | |
| INSERT: 45, | |
| LEFT: 37, | |
| NUMPAD_ADD: 107, | |
| NUMPAD_DECIMAL: 110, | |
| NUMPAD_DIVIDE: 111, | |
| NUMPAD_ENTER: 108, | |
| NUMPAD_MULTIPLY: 106, | |
| NUMPAD_SUBTRACT: 109, | |
| PAGE_DOWN: 34, | |
| PAGE_UP: 33, | |
| PERIOD: 190, | |
| RIGHT: 39, | |
| SHIFT: 16, | |
| SPACE: 32, | |
| TAB: 9, | |
| UP: 38 | |
| } | |
| }; | |
| a.fn.extend({ | |
| _focus: a.fn.focus, | |
| focus: function(b, d) { | |
| return typeof b === "number" ? this.each(function() { | |
| var f = this; | |
| setTimeout(function() { | |
| a(f).focus(); | |
| d && d.call(f) | |
| }, b) | |
| }) : this._focus.apply(this, arguments) | |
| }, | |
| enableSelection: function() { | |
| return this.attr("unselectable", "off").css("MozUserSelect", "") | |
| }, | |
| disableSelection: function() { | |
| return this.attr("unselectable", "on").css("MozUserSelect", "none") | |
| }, | |
| scrollParent: function() { | |
| var b; | |
| b = a.browser.msie && /(static|relative)/.test(this.css("position")) || | |
| /absolute/.test(this.css("position")) ? this.parents().filter(function() { | |
| return /(relative|absolute|fixed)/.test(a.curCSS(this, "position", 1)) && /(auto|scroll)/.test(a.curCSS(this, "overflow", 1) + a.curCSS(this, "overflow-y", 1) + a.curCSS(this, "overflow-x", 1)) | |
| }).eq(0) : this.parents().filter(function() { | |
| return /(auto|scroll)/.test(a.curCSS(this, "overflow", 1) + a.curCSS(this, "overflow-y", 1) + a.curCSS(this, "overflow-x", 1)) | |
| }).eq(0); | |
| return /fixed/.test(this.css("position")) || !b.length ? a(document) : b | |
| }, | |
| zIndex: function(b) { | |
| if (b !== | |
| undefined) return this.css("zIndex", b); | |
| if (this.length) { | |
| b = a(this[0]); | |
| for (var d; b.length && b[0] !== document;) { | |
| d = b.css("position"); | |
| if (d == "absolute" || d == "relative" || d == "fixed") { | |
| d = parseInt(b.css("zIndex")); | |
| if (!isNaN(d) && d != 0) return d | |
| } | |
| b = b.parent() | |
| } | |
| } | |
| return 0 | |
| } | |
| }); | |
| a.extend(a.expr[":"], { | |
| data: function(b, d, f) { | |
| return !!a.data(b, f[3]) | |
| }, | |
| focusable: function(b) { | |
| var d = b.nodeName.toLowerCase(), | |
| f = a.attr(b, "tabindex"); | |
| return (/input|select|textarea|button|object/.test(d) ? !b.disabled : "a" == d || "area" == d ? b.href || !isNaN(f) : !isNaN(f)) && | |
| !a(b)["area" == d ? "parents" : "closest"](":hidden").length | |
| }, | |
| tabbable: function(b) { | |
| var d = a.attr(b, "tabindex"); | |
| return (isNaN(d) || d >= 0) && a(b).is(":focusable") | |
| } | |
| }) | |
| }(jQuery); | |
| (function(a) { | |
| var b = a.fn.remove; | |
| a.fn.remove = function(d, f) { | |
| return this.each(function() { | |
| if (!f) | |
| if (!d || a.filter(d, [this]).length) a("*", this).add(this).each(function() { | |
| a(this).triggerHandler("remove") | |
| }); | |
| return b.call(a(this), d, f) | |
| }) | |
| }; | |
| a.widget = function(d, f, g) { | |
| var j = d.split(".")[0], | |
| l; | |
| d = d.split(".")[1]; | |
| l = j + "-" + d; | |
| if (!g) { | |
| g = f; | |
| f = a.Widget | |
| } | |
| a.expr[":"][l] = function(o) { | |
| return !!a.data(o, d) | |
| }; | |
| a[j] = a[j] || {}; | |
| a[j][d] = function(o, v) { | |
| arguments.length && this._createWidget(o, v) | |
| }; | |
| f = new f; | |
| f.options = a.extend({}, f.options); | |
| a[j][d].prototype = | |
| a.extend(true, f, { | |
| namespace: j, | |
| widgetName: d, | |
| widgetEventPrefix: a[j][d].prototype.widgetEventPrefix || d, | |
| widgetBaseClass: l | |
| }, g); | |
| a.widget.bridge(d, a[j][d]) | |
| }; | |
| a.widget.bridge = function(d, f) { | |
| a.fn[d] = function(g) { | |
| var j = typeof g === "string", | |
| l = Array.prototype.slice.call(arguments, 1), | |
| o = this; | |
| g = !j && l.length ? a.extend.apply(null, [true, g].concat(l)) : g; | |
| if (j && g.substring(0, 1) === "_") return o; | |
| j ? this.each(function() { | |
| var v = a.data(this, d), | |
| A = v && a.isFunction(v[g]) ? v[g].apply(v, l) : v; | |
| if (A !== v && A !== undefined) { | |
| o = A; | |
| return false | |
| } | |
| }) : this.each(function() { | |
| var v = | |
| a.data(this, d); | |
| if (v) { | |
| g && v.option(g); | |
| v._init() | |
| } else a.data(this, d, new f(g, this)) | |
| }); | |
| return o | |
| } | |
| }; | |
| a.Widget = function(d, f) { | |
| arguments.length && this._createWidget(d, f) | |
| }; | |
| a.Widget.prototype = { | |
| widgetName: "widget", | |
| widgetEventPrefix: "", | |
| options: { | |
| disabled: false | |
| }, | |
| _createWidget: function(d, f) { | |
| this.element = a(f).data(this.widgetName, this); | |
| this.options = a.extend(true, {}, this.options, a.metadata && a.metadata.get(f)[this.widgetName], d); | |
| var g = this; | |
| this.element.bind("remove." + this.widgetName, function() { | |
| g.destroy() | |
| }); | |
| this._create(); | |
| this._init() | |
| }, | |
| _create: function() {}, | |
| _init: function() {}, | |
| destroy: function() { | |
| this.element.unbind("." + this.widgetName).removeData(this.widgetName); | |
| this.widget().unbind("." + this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass + "-disabled ui-state-disabled") | |
| }, | |
| widget: function() { | |
| return this.element | |
| }, | |
| option: function(d, f) { | |
| var g = d, | |
| j = this; | |
| if (arguments.length === 0) return a.extend({}, j.options); | |
| if (typeof d === "string") { | |
| if (f === undefined) return this.options[d]; | |
| g = {}; | |
| g[d] = f | |
| } | |
| a.each(g, function(l, | |
| o) { | |
| j._setOption(l, o) | |
| }); | |
| return j | |
| }, | |
| _setOption: function(d, f) { | |
| this.options[d] = f; | |
| if (d === "disabled") this.widget()[f ? "addClass" : "removeClass"](this.widgetBaseClass + "-disabled ui-state-disabled").attr("aria-disabled", f); | |
| return this | |
| }, | |
| enable: function() { | |
| return this._setOption("disabled", false) | |
| }, | |
| disable: function() { | |
| return this._setOption("disabled", true) | |
| }, | |
| _trigger: function(d, f, g) { | |
| var j = this.options[d]; | |
| f = a.Event(f); | |
| f.type = (d === this.widgetEventPrefix ? d : this.widgetEventPrefix + d).toLowerCase(); | |
| g = g || {}; | |
| if (f.originalEvent) { | |
| d = | |
| a.event.props.length; | |
| for (var l; d;) { | |
| l = a.event.props[--d]; | |
| f[l] = f.originalEvent[l] | |
| } | |
| } | |
| this.element.trigger(f, g); | |
| return !(a.isFunction(j) && j.call(this.element[0], f, g) === false || f.isDefaultPrevented()) | |
| } | |
| } | |
| })(jQuery); | |
| (function(a) { | |
| a.widget("ui.mouse", { | |
| options: { | |
| cancel: ":input,option", | |
| distance: 1, | |
| delay: 0 | |
| }, | |
| _mouseInit: function() { | |
| var b = this; | |
| this.element.bind("mousedown." + this.widgetName, function(d) { | |
| return b._mouseDown(d) | |
| }).bind("click." + this.widgetName, function(d) { | |
| if (b._preventClickEvent) { | |
| b._preventClickEvent = false; | |
| d.stopImmediatePropagation(); | |
| return false | |
| } | |
| }); | |
| this.started = false | |
| }, | |
| _mouseDestroy: function() { | |
| this.element.unbind("." + this.widgetName) | |
| }, | |
| _mouseDown: function(b) { | |
| b.originalEvent = b.originalEvent || {}; | |
| if (!b.originalEvent.mouseHandled) { | |
| this._mouseStarted && | |
| this._mouseUp(b); | |
| this._mouseDownEvent = b; | |
| var d = this, | |
| f = b.which == 1, | |
| g = typeof this.options.cancel == "string" ? a(b.target).parents().add(b.target).filter(this.options.cancel).length : false; | |
| if (!f || g || !this._mouseCapture(b)) return true; | |
| this.mouseDelayMet = !this.options.delay; | |
| if (!this.mouseDelayMet) this._mouseDelayTimer = setTimeout(function() { | |
| d.mouseDelayMet = true | |
| }, this.options.delay); | |
| if (this._mouseDistanceMet(b) && this._mouseDelayMet(b)) { | |
| this._mouseStarted = this._mouseStart(b) !== false; | |
| if (!this._mouseStarted) { | |
| b.preventDefault(); | |
| return true | |
| } | |
| } | |
| this._mouseMoveDelegate = function(j) { | |
| return d._mouseMove(j) | |
| }; | |
| this._mouseUpDelegate = function(j) { | |
| return d._mouseUp(j) | |
| }; | |
| a(document).bind("mousemove." + this.widgetName, this._mouseMoveDelegate).bind("mouseup." + this.widgetName, this._mouseUpDelegate); | |
| a.browser.safari || b.preventDefault(); | |
| return b.originalEvent.mouseHandled = true | |
| } | |
| }, | |
| _mouseMove: function(b) { | |
| if (a.browser.msie && !b.button) return this._mouseUp(b); | |
| if (this._mouseStarted) { | |
| this._mouseDrag(b); | |
| return b.preventDefault() | |
| } | |
| if (this._mouseDistanceMet(b) && | |
| this._mouseDelayMet(b))(this._mouseStarted = this._mouseStart(this._mouseDownEvent, b) !== false) ? this._mouseDrag(b) : this._mouseUp(b); | |
| return !this._mouseStarted | |
| }, | |
| _mouseUp: function(b) { | |
| a(document).unbind("mousemove." + this.widgetName, this._mouseMoveDelegate).unbind("mouseup." + this.widgetName, this._mouseUpDelegate); | |
| if (this._mouseStarted) { | |
| this._mouseStarted = false; | |
| this._preventClickEvent = b.target == this._mouseDownEvent.target; | |
| this._mouseStop(b) | |
| } | |
| return false | |
| }, | |
| _mouseDistanceMet: function(b) { | |
| return Math.max(Math.abs(this._mouseDownEvent.pageX - | |
| b.pageX), Math.abs(this._mouseDownEvent.pageY - b.pageY)) >= this.options.distance | |
| }, | |
| _mouseDelayMet: function() { | |
| return this.mouseDelayMet | |
| }, | |
| _mouseStart: function() {}, | |
| _mouseDrag: function() {}, | |
| _mouseStop: function() {}, | |
| _mouseCapture: function() { | |
| return true | |
| } | |
| }) | |
| })(jQuery); | |
| (function(a) { | |
| a.widget("ui.draggable", a.ui.mouse, { | |
| widgetEventPrefix: "drag", | |
| options: { | |
| addClasses: true, | |
| appendTo: "parent", | |
| axis: false, | |
| connectToSortable: false, | |
| containment: false, | |
| cursor: "auto", | |
| cursorAt: false, | |
| grid: false, | |
| handle: false, | |
| helper: "original", | |
| iframeFix: false, | |
| opacity: false, | |
| refreshPositions: false, | |
| revert: false, | |
| revertDuration: 500, | |
| scope: "default", | |
| scroll: true, | |
| scrollSensitivity: 20, | |
| scrollSpeed: 20, | |
| snap: false, | |
| snapMode: "both", | |
| snapTolerance: 20, | |
| stack: false, | |
| zIndex: false | |
| }, | |
| _create: function() { | |
| if (this.options.helper == | |
| "original" && !/^(?:r|a|f)/.test(this.element.css("position"))) this.element[0].style.position = "relative"; | |
| this.options.addClasses && this.element.addClass("ui-draggable"); | |
| this.options.disabled && this.element.addClass("ui-draggable-disabled"); | |
| this._mouseInit() | |
| }, | |
| destroy: function() { | |
| if (this.element.data("draggable")) { | |
| this.element.removeData("draggable").unbind(".draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled"); | |
| this._mouseDestroy(); | |
| return this | |
| } | |
| }, | |
| _mouseCapture: function(b) { | |
| var d = | |
| this.options; | |
| if (this.helper || d.disabled || a(b.target).is(".ui-resizable-handle")) return false; | |
| this.handle = this._getHandle(b); | |
| if (!this.handle) return false; | |
| return true | |
| }, | |
| _mouseStart: function(b) { | |
| var d = this.options; | |
| this.helper = this._createHelper(b); | |
| this._cacheHelperProportions(); | |
| if (a.ui.ddmanager) a.ui.ddmanager.current = this; | |
| this._cacheMargins(); | |
| this.cssPosition = this.helper.css("position"); | |
| this.scrollParent = this.helper.scrollParent(); | |
| this.offset = this.positionAbs = this.element.offset(); | |
| this.offset = { | |
| top: this.offset.top - | |
| this.margins.top, | |
| left: this.offset.left - this.margins.left | |
| }; | |
| a.extend(this.offset, { | |
| click: { | |
| left: b.pageX - this.offset.left, | |
| top: b.pageY - this.offset.top | |
| }, | |
| parent: this._getParentOffset(), | |
| relative: this._getRelativeOffset() | |
| }); | |
| this.originalPosition = this.position = this._generatePosition(b); | |
| this.originalPageX = b.pageX; | |
| this.originalPageY = b.pageY; | |
| d.cursorAt && this._adjustOffsetFromHelper(d.cursorAt); | |
| d.containment && this._setContainment(); | |
| if (this._trigger("start", b) === false) { | |
| this._clear(); | |
| return false | |
| } | |
| this._cacheHelperProportions(); | |
| a.ui.ddmanager && !d.dropBehaviour && a.ui.ddmanager.prepareOffsets(this, b); | |
| this.helper.addClass("ui-draggable-dragging"); | |
| this._mouseDrag(b, true); | |
| return true | |
| }, | |
| _mouseDrag: function(b, d) { | |
| this.position = this._generatePosition(b); | |
| this.positionAbs = this._convertPositionTo("absolute"); | |
| if (!d) { | |
| d = this._uiHash(); | |
| if (this._trigger("drag", b, d) === false) { | |
| this._mouseUp({}); | |
| return false | |
| } | |
| this.position = d.position | |
| } | |
| if (!this.options.axis || this.options.axis != "y") this.helper[0].style.left = this.position.left + "px"; | |
| if (!this.options.axis || | |
| this.options.axis != "x") this.helper[0].style.top = this.position.top + "px"; | |
| a.ui.ddmanager && a.ui.ddmanager.drag(this, b); | |
| return false | |
| }, | |
| _mouseStop: function(b) { | |
| var d = false; | |
| if (a.ui.ddmanager && !this.options.dropBehaviour) d = a.ui.ddmanager.drop(this, b); | |
| if (this.dropped) { | |
| d = this.dropped; | |
| this.dropped = false | |
| } | |
| if (!this.element[0] || !this.element[0].parentNode) return false; | |
| if (this.options.revert == "invalid" && !d || this.options.revert == "valid" && d || this.options.revert === true || a.isFunction(this.options.revert) && this.options.revert.call(this.element, | |
| d)) { | |
| var f = this; | |
| a(this.helper).animate(this.originalPosition, parseInt(this.options.revertDuration, 10), function() { | |
| f._trigger("stop", b) !== false && f._clear() | |
| }) | |
| } else this._trigger("stop", b) !== false && this._clear(); | |
| return false | |
| }, | |
| cancel: function() { | |
| this.helper.is(".ui-draggable-dragging") ? this._mouseUp({}) : this._clear(); | |
| return this | |
| }, | |
| _getHandle: function(b) { | |
| var d = !this.options.handle || !a(this.options.handle, this.element).length ? true : false; | |
| a(this.options.handle, this.element).find("*").andSelf().each(function() { | |
| if (this == | |
| b.target) d = true | |
| }); | |
| return d | |
| }, | |
| _createHelper: function(b) { | |
| var d = this.options; | |
| b = a.isFunction(d.helper) ? a(d.helper.apply(this.element[0], [b])) : d.helper == "clone" ? this.element.clone() : this.element; | |
| b.parents("body").length || b.appendTo(d.appendTo == "parent" ? this.element[0].parentNode : d.appendTo); | |
| b[0] != this.element[0] && !/(fixed|absolute)/.test(b.css("position")) && b.css("position", "absolute"); | |
| return b | |
| }, | |
| _adjustOffsetFromHelper: function(b) { | |
| if (typeof b == "string") b = b.split(" "); | |
| if (a.isArray(b)) b = { | |
| left: +b[0], | |
| top: +b[1] || | |
| 0 | |
| }; | |
| if ("left" in b) this.offset.click.left = b.left + this.margins.left; | |
| if ("right" in b) this.offset.click.left = this.helperProportions.width - b.right + this.margins.left; | |
| if ("top" in b) this.offset.click.top = b.top + this.margins.top; | |
| if ("bottom" in b) this.offset.click.top = this.helperProportions.height - b.bottom + this.margins.top | |
| }, | |
| _getParentOffset: function() { | |
| this.offsetParent = this.helper.offsetParent(); | |
| var b = this.offsetParent.offset(); | |
| if (this.cssPosition == "absolute" && this.scrollParent[0] != document && a.ui.contains(this.scrollParent[0], | |
| this.offsetParent[0])) { | |
| b.left += this.scrollParent.scrollLeft(); | |
| b.top += this.scrollParent.scrollTop() | |
| } | |
| if (this.offsetParent[0] == document.body || this.offsetParent[0].tagName && this.offsetParent[0].tagName.toLowerCase() == "html" && a.browser.msie) b = { | |
| top: 0, | |
| left: 0 | |
| }; | |
| return { | |
| top: b.top + (parseInt(this.offsetParent.css("borderTopWidth"), 10) || 0), | |
| left: b.left + (parseInt(this.offsetParent.css("borderLeftWidth"), 10) || 0) | |
| } | |
| }, | |
| _getRelativeOffset: function() { | |
| if (this.cssPosition == "relative") { | |
| var b = this.element.position(); | |
| return { | |
| top: b.top - | |
| (parseInt(this.helper.css("top"), 10) || 0) + this.scrollParent.scrollTop(), | |
| left: b.left - (parseInt(this.helper.css("left"), 10) || 0) + this.scrollParent.scrollLeft() | |
| } | |
| } else return { | |
| top: 0, | |
| left: 0 | |
| } | |
| }, | |
| _cacheMargins: function() { | |
| this.margins = { | |
| left: parseInt(this.element.css("marginLeft"), 10) || 0, | |
| top: parseInt(this.element.css("marginTop"), 10) || 0 | |
| } | |
| }, | |
| _cacheHelperProportions: function() { | |
| this.helperProportions = { | |
| width: this.helper.outerWidth(), | |
| height: this.helper.outerHeight() | |
| } | |
| }, | |
| _setContainment: function() { | |
| var b = this.options; | |
| if (b.containment == | |
| "parent") b.containment = this.helper[0].parentNode; | |
| if (b.containment == "document" || b.containment == "window") this.containment = [0 - this.offset.relative.left - this.offset.parent.left, 0 - this.offset.relative.top - this.offset.parent.top, a(b.containment == "document" ? document : window).width() - this.helperProportions.width - this.margins.left, (a(b.containment == "document" ? document : window).height() || document.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top]; | |
| if (!/^(document|window|parent)$/.test(b.containment) && | |
| b.containment.constructor != Array) { | |
| var d = a(b.containment)[0]; | |
| if (d) { | |
| b = a(b.containment).offset(); | |
| var f = a(d).css("overflow") != "hidden"; | |
| this.containment = [b.left + (parseInt(a(d).css("borderLeftWidth"), 10) || 0) + (parseInt(a(d).css("paddingLeft"), 10) || 0) - this.margins.left, b.top + (parseInt(a(d).css("borderTopWidth"), 10) || 0) + (parseInt(a(d).css("paddingTop"), 10) || 0) - this.margins.top, b.left + (f ? Math.max(d.scrollWidth, d.offsetWidth) : d.offsetWidth) - (parseInt(a(d).css("borderLeftWidth"), 10) || 0) - (parseInt(a(d).css("paddingRight"), | |
| 10) || 0) - this.helperProportions.width - this.margins.left, b.top + (f ? Math.max(d.scrollHeight, d.offsetHeight) : d.offsetHeight) - (parseInt(a(d).css("borderTopWidth"), 10) || 0) - (parseInt(a(d).css("paddingBottom"), 10) || 0) - this.helperProportions.height - this.margins.top] | |
| } | |
| } else if (b.containment.constructor == Array) this.containment = b.containment | |
| }, | |
| _convertPositionTo: function(b, d) { | |
| if (!d) d = this.position; | |
| b = b == "absolute" ? 1 : -1; | |
| var f = this.cssPosition == "absolute" && !(this.scrollParent[0] != document && a.ui.contains(this.scrollParent[0], | |
| this.offsetParent[0])) ? this.offsetParent : this.scrollParent, | |
| g = /(html|body)/i.test(f[0].tagName); | |
| return { | |
| top: d.top + this.offset.relative.top * b + this.offset.parent.top * b - (a.browser.safari && a.browser.version < 526 && this.cssPosition == "fixed" ? 0 : (this.cssPosition == "fixed" ? -this.scrollParent.scrollTop() : g ? 0 : f.scrollTop()) * b), | |
| left: d.left + this.offset.relative.left * b + this.offset.parent.left * b - (a.browser.safari && a.browser.version < 526 && this.cssPosition == "fixed" ? 0 : (this.cssPosition == "fixed" ? -this.scrollParent.scrollLeft() : | |
| g ? 0 : f.scrollLeft()) * b) | |
| } | |
| }, | |
| _generatePosition: function(b) { | |
| var d = this.options, | |
| f = this.cssPosition == "absolute" && !(this.scrollParent[0] != document && a.ui.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, | |
| g = /(html|body)/i.test(f[0].tagName), | |
| j = b.pageX, | |
| l = b.pageY; | |
| if (this.originalPosition) { | |
| if (this.containment) { | |
| if (b.pageX - this.offset.click.left < this.containment[0]) j = this.containment[0] + this.offset.click.left; | |
| if (b.pageY - this.offset.click.top < this.containment[1]) l = this.containment[1] + | |
| this.offset.click.top; | |
| if (b.pageX - this.offset.click.left > this.containment[2]) j = this.containment[2] + this.offset.click.left; | |
| if (b.pageY - this.offset.click.top > this.containment[3]) l = this.containment[3] + this.offset.click.top | |
| } | |
| if (d.grid) { | |
| l = this.originalPageY + Math.round((l - this.originalPageY) / d.grid[1]) * d.grid[1]; | |
| l = this.containment ? !(l - this.offset.click.top < this.containment[1] || l - this.offset.click.top > this.containment[3]) ? l : !(l - this.offset.click.top < this.containment[1]) ? l - d.grid[1] : l + d.grid[1] : l; | |
| j = this.originalPageX + | |
| Math.round((j - this.originalPageX) / d.grid[0]) * d.grid[0]; | |
| j = this.containment ? !(j - this.offset.click.left < this.containment[0] || j - this.offset.click.left > this.containment[2]) ? j : !(j - this.offset.click.left < this.containment[0]) ? j - d.grid[0] : j + d.grid[0] : j | |
| } | |
| } | |
| return { | |
| top: l - this.offset.click.top - this.offset.relative.top - this.offset.parent.top + (a.browser.safari && a.browser.version < 526 && this.cssPosition == "fixed" ? 0 : this.cssPosition == "fixed" ? -this.scrollParent.scrollTop() : g ? 0 : f.scrollTop()), | |
| left: j - this.offset.click.left - | |
| this.offset.relative.left - this.offset.parent.left + (a.browser.safari && a.browser.version < 526 && this.cssPosition == "fixed" ? 0 : this.cssPosition == "fixed" ? -this.scrollParent.scrollLeft() : g ? 0 : f.scrollLeft()) | |
| } | |
| }, | |
| _clear: function() { | |
| this.helper.removeClass("ui-draggable-dragging"); | |
| this.helper[0] != this.element[0] && !this.cancelHelperRemoval && this.helper.remove(); | |
| this.helper = null; | |
| this.cancelHelperRemoval = false | |
| }, | |
| _trigger: function(b, d, f) { | |
| f = f || this._uiHash(); | |
| a.ui.plugin.call(this, b, [d, f]); | |
| if (b == "drag") this.positionAbs = | |
| this._convertPositionTo("absolute"); | |
| return a.Widget.prototype._trigger.call(this, b, d, f) | |
| }, | |
| plugins: {}, | |
| _uiHash: function() { | |
| return { | |
| helper: this.helper, | |
| position: this.position, | |
| originalPosition: this.originalPosition, | |
| offset: this.positionAbs | |
| } | |
| } | |
| }); | |
| a.extend(a.ui.draggable, { | |
| version: "1.8.1" | |
| }); | |
| a.ui.plugin.add("draggable", "connectToSortable", { | |
| start: function(b, d) { | |
| var f = a(this).data("draggable"), | |
| g = f.options, | |
| j = a.extend({}, d, { | |
| item: f.element | |
| }); | |
| f.sortables = []; | |
| a(g.connectToSortable).each(function() { | |
| var l = a.data(this, "sortable"); | |
| if (l && !l.options.disabled) { | |
| f.sortables.push({ | |
| instance: l, | |
| shouldRevert: l.options.revert | |
| }); | |
| l._refreshItems(); | |
| l._trigger("activate", b, j) | |
| } | |
| }) | |
| }, | |
| stop: function(b, d) { | |
| var f = a(this).data("draggable"), | |
| g = a.extend({}, d, { | |
| item: f.element | |
| }); | |
| a.each(f.sortables, function() { | |
| if (this.instance.isOver) { | |
| this.instance.isOver = 0; | |
| f.cancelHelperRemoval = true; | |
| this.instance.cancelHelperRemoval = false; | |
| if (this.shouldRevert) this.instance.options.revert = true; | |
| this.instance._mouseStop(b); | |
| this.instance.options.helper = this.instance.options._helper; | |
| f.options.helper == "original" && this.instance.currentItem.css({ | |
| top: "auto", | |
| left: "auto" | |
| }) | |
| } else { | |
| this.instance.cancelHelperRemoval = false; | |
| this.instance._trigger("deactivate", b, g) | |
| } | |
| }) | |
| }, | |
| drag: function(b, d) { | |
| var f = a(this).data("draggable"), | |
| g = this; | |
| a.each(f.sortables, function() { | |
| this.instance.positionAbs = f.positionAbs; | |
| this.instance.helperProportions = f.helperProportions; | |
| this.instance.offset.click = f.offset.click; | |
| if (this.instance._intersectsWith(this.instance.containerCache)) { | |
| if (!this.instance.isOver) { | |
| this.instance.isOver = | |
| 1; | |
| this.instance.currentItem = a(g).clone().appendTo(this.instance.element).data("sortable-item", true); | |
| this.instance.options._helper = this.instance.options.helper; | |
| this.instance.options.helper = function() { | |
| return d.helper[0] | |
| }; | |
| b.target = this.instance.currentItem[0]; | |
| this.instance._mouseCapture(b, true); | |
| this.instance._mouseStart(b, true, true); | |
| this.instance.offset.click.top = f.offset.click.top; | |
| this.instance.offset.click.left = f.offset.click.left; | |
| this.instance.offset.parent.left -= f.offset.parent.left - this.instance.offset.parent.left; | |
| this.instance.offset.parent.top -= f.offset.parent.top - this.instance.offset.parent.top; | |
| f._trigger("toSortable", b); | |
| f.dropped = this.instance.element; | |
| f.currentItem = f.element; | |
| this.instance.fromOutside = f | |
| } | |
| this.instance.currentItem && this.instance._mouseDrag(b) | |
| } else if (this.instance.isOver) { | |
| this.instance.isOver = 0; | |
| this.instance.cancelHelperRemoval = true; | |
| this.instance.options.revert = false; | |
| this.instance._trigger("out", b, this.instance._uiHash(this.instance)); | |
| this.instance._mouseStop(b, true); | |
| this.instance.options.helper = | |
| this.instance.options._helper; | |
| this.instance.currentItem.remove(); | |
| this.instance.placeholder && this.instance.placeholder.remove(); | |
| f._trigger("fromSortable", b); | |
| f.dropped = false | |
| } | |
| }) | |
| } | |
| }); | |
| a.ui.plugin.add("draggable", "cursor", { | |
| start: function() { | |
| var b = a("body"), | |
| d = a(this).data("draggable").options; | |
| if (b.css("cursor")) d._cursor = b.css("cursor"); | |
| b.css("cursor", d.cursor) | |
| }, | |
| stop: function() { | |
| var b = a(this).data("draggable").options; | |
| b._cursor && a("body").css("cursor", b._cursor) | |
| } | |
| }); | |
| a.ui.plugin.add("draggable", "iframeFix", { | |
| start: function() { | |
| var b = | |
| a(this).data("draggable").options; | |
| a(b.iframeFix === true ? "iframe" : b.iframeFix).each(function() { | |
| a('<div class="ui-draggable-iframeFix" style="background: #fff;"></div>').css({ | |
| width: this.offsetWidth + "px", | |
| height: this.offsetHeight + "px", | |
| position: "absolute", | |
| opacity: "0.001", | |
| zIndex: 1E3 | |
| }).css(a(this).offset()).appendTo("body") | |
| }) | |
| }, | |
| stop: function() { | |
| a("div.ui-draggable-iframeFix").each(function() { | |
| this.parentNode.removeChild(this) | |
| }) | |
| } | |
| }); | |
| a.ui.plugin.add("draggable", "opacity", { | |
| start: function(b, d) { | |
| b = a(d.helper); | |
| d = a(this).data("draggable").options; | |
| if (b.css("opacity")) d._opacity = b.css("opacity"); | |
| b.css("opacity", d.opacity) | |
| }, | |
| stop: function(b, d) { | |
| b = a(this).data("draggable").options; | |
| b._opacity && a(d.helper).css("opacity", b._opacity) | |
| } | |
| }); | |
| a.ui.plugin.add("draggable", "scroll", { | |
| start: function() { | |
| var b = a(this).data("draggable"); | |
| if (b.scrollParent[0] != document && b.scrollParent[0].tagName != "HTML") b.overflowOffset = b.scrollParent.offset() | |
| }, | |
| drag: function(b) { | |
| var d = a(this).data("draggable"), | |
| f = d.options, | |
| g = false; | |
| if (d.scrollParent[0] != document && d.scrollParent[0].tagName != | |
| "HTML") { | |
| if (!f.axis || f.axis != "x") | |
| if (d.overflowOffset.top + d.scrollParent[0].offsetHeight - b.pageY < f.scrollSensitivity) d.scrollParent[0].scrollTop = g = d.scrollParent[0].scrollTop + f.scrollSpeed; | |
| else if (b.pageY - d.overflowOffset.top < f.scrollSensitivity) d.scrollParent[0].scrollTop = g = d.scrollParent[0].scrollTop - f.scrollSpeed; | |
| if (!f.axis || f.axis != "y") | |
| if (d.overflowOffset.left + d.scrollParent[0].offsetWidth - b.pageX < f.scrollSensitivity) d.scrollParent[0].scrollLeft = g = d.scrollParent[0].scrollLeft + f.scrollSpeed; | |
| else if (b.pageX - | |
| d.overflowOffset.left < f.scrollSensitivity) d.scrollParent[0].scrollLeft = g = d.scrollParent[0].scrollLeft - f.scrollSpeed | |
| } else { | |
| if (!f.axis || f.axis != "x") | |
| if (b.pageY - a(document).scrollTop() < f.scrollSensitivity) g = a(document).scrollTop(a(document).scrollTop() - f.scrollSpeed); | |
| else if (a(window).height() - (b.pageY - a(document).scrollTop()) < f.scrollSensitivity) g = a(document).scrollTop(a(document).scrollTop() + f.scrollSpeed); | |
| if (!f.axis || f.axis != "y") | |
| if (b.pageX - a(document).scrollLeft() < f.scrollSensitivity) g = a(document).scrollLeft(a(document).scrollLeft() - | |
| f.scrollSpeed); | |
| else if (a(window).width() - (b.pageX - a(document).scrollLeft()) < f.scrollSensitivity) g = a(document).scrollLeft(a(document).scrollLeft() + f.scrollSpeed) | |
| } | |
| g !== false && a.ui.ddmanager && !f.dropBehaviour && a.ui.ddmanager.prepareOffsets(d, b) | |
| } | |
| }); | |
| a.ui.plugin.add("draggable", "snap", { | |
| start: function() { | |
| var b = a(this).data("draggable"), | |
| d = b.options; | |
| b.snapElements = []; | |
| a(d.snap.constructor != String ? d.snap.items || ":data(draggable)" : d.snap).each(function() { | |
| var f = a(this), | |
| g = f.offset(); | |
| this != b.element[0] && b.snapElements.push({ | |
| item: this, | |
| width: f.outerWidth(), | |
| height: f.outerHeight(), | |
| top: g.top, | |
| left: g.left | |
| }) | |
| }) | |
| }, | |
| drag: function(b, d) { | |
| for (var f = a(this).data("draggable"), g = f.options, j = g.snapTolerance, l = d.offset.left, o = l + f.helperProportions.width, v = d.offset.top, A = v + f.helperProportions.height, C = f.snapElements.length - 1; C >= 0; C--) { | |
| var q = f.snapElements[C].left, | |
| I = q + f.snapElements[C].width, | |
| K = f.snapElements[C].top, | |
| Q = K + f.snapElements[C].height; | |
| if (q - j < l && l < I + j && K - j < v && v < Q + j || q - j < l && l < I + j && K - j < A && A < Q + j || q - j < o && o < I + j && K - j < v && v < Q + j || q - j < o && o < I + j && K - j < A && | |
| A < Q + j) { | |
| if (g.snapMode != "inner") { | |
| var n = Math.abs(K - A) <= j, | |
| G = Math.abs(Q - v) <= j, | |
| p = Math.abs(q - o) <= j, | |
| t = Math.abs(I - l) <= j; | |
| if (n) d.position.top = f._convertPositionTo("relative", { | |
| top: K - f.helperProportions.height, | |
| left: 0 | |
| }).top - f.margins.top; | |
| if (G) d.position.top = f._convertPositionTo("relative", { | |
| top: Q, | |
| left: 0 | |
| }).top - f.margins.top; | |
| if (p) d.position.left = f._convertPositionTo("relative", { | |
| top: 0, | |
| left: q - f.helperProportions.width | |
| }).left - f.margins.left; | |
| if (t) d.position.left = f._convertPositionTo("relative", { | |
| top: 0, | |
| left: I | |
| }).left - f.margins.left | |
| } | |
| var z = | |
| n || G || p || t; | |
| if (g.snapMode != "outer") { | |
| n = Math.abs(K - v) <= j; | |
| G = Math.abs(Q - A) <= j; | |
| p = Math.abs(q - l) <= j; | |
| t = Math.abs(I - o) <= j; | |
| if (n) d.position.top = f._convertPositionTo("relative", { | |
| top: K, | |
| left: 0 | |
| }).top - f.margins.top; | |
| if (G) d.position.top = f._convertPositionTo("relative", { | |
| top: Q - f.helperProportions.height, | |
| left: 0 | |
| }).top - f.margins.top; | |
| if (p) d.position.left = f._convertPositionTo("relative", { | |
| top: 0, | |
| left: q | |
| }).left - f.margins.left; | |
| if (t) d.position.left = f._convertPositionTo("relative", { | |
| top: 0, | |
| left: I - f.helperProportions.width | |
| }).left - f.margins.left | |
| } | |
| if (!f.snapElements[C].snapping && | |
| (n || G || p || t || z)) f.options.snap.snap && f.options.snap.snap.call(f.element, b, a.extend(f._uiHash(), { | |
| snapItem: f.snapElements[C].item | |
| })); | |
| f.snapElements[C].snapping = n || G || p || t || z | |
| } else { | |
| f.snapElements[C].snapping && f.options.snap.release && f.options.snap.release.call(f.element, b, a.extend(f._uiHash(), { | |
| snapItem: f.snapElements[C].item | |
| })); | |
| f.snapElements[C].snapping = false | |
| } | |
| } | |
| } | |
| }); | |
| a.ui.plugin.add("draggable", "stack", { | |
| start: function() { | |
| var b = a(this).data("draggable").options; | |
| b = a.makeArray(a(b.stack)).sort(function(f, g) { | |
| return (parseInt(a(f).css("zIndex"), | |
| 10) || 0) - (parseInt(a(g).css("zIndex"), 10) || 0) | |
| }); | |
| if (b.length) { | |
| var d = parseInt(b[0].style.zIndex) || 0; | |
| a(b).each(function(f) { | |
| this.style.zIndex = d + f | |
| }); | |
| this[0].style.zIndex = d + b.length | |
| } | |
| } | |
| }); | |
| a.ui.plugin.add("draggable", "zIndex", { | |
| start: function(b, d) { | |
| b = a(d.helper); | |
| d = a(this).data("draggable").options; | |
| if (b.css("zIndex")) d._zIndex = b.css("zIndex"); | |
| b.css("zIndex", d.zIndex) | |
| }, | |
| stop: function(b, d) { | |
| b = a(this).data("draggable").options; | |
| b._zIndex && a(d.helper).css("zIndex", b._zIndex) | |
| } | |
| }) | |
| })(jQuery); | |
| (function(a) { | |
| a.widget("ui.slider", a.ui.mouse, { | |
| widgetEventPrefix: "slide", | |
| options: { | |
| animate: false, | |
| distance: 0, | |
| max: 100, | |
| min: 0, | |
| orientation: "horizontal", | |
| range: false, | |
| step: 1, | |
| value: 0, | |
| values: null | |
| }, | |
| _create: function() { | |
| var b = this, | |
| d = this.options; | |
| this._mouseSliding = this._keySliding = false; | |
| this._animateOff = true; | |
| this._handleIndex = null; | |
| this._detectOrientation(); | |
| this._mouseInit(); | |
| this.element.addClass("ui-slider ui-slider-" + this.orientation + " ui-widget ui-widget-content ui-corner-all"); | |
| d.disabled && this.element.addClass("ui-slider-disabled ui-disabled"); | |
| this.range = a([]); | |
| if (d.range) { | |
| if (d.range === true) { | |
| this.range = a("<div></div>"); | |
| if (!d.values) d.values = [this._valueMin(), this._valueMin()]; | |
| if (d.values.length && d.values.length !== 2) d.values = [d.values[0], d.values[0]] | |
| } else this.range = a("<div></div>"); | |
| this.range.appendTo(this.element).addClass("ui-slider-range"); | |
| if (d.range === "min" || d.range === "max") this.range.addClass("ui-slider-range-" + d.range); | |
| this.range.addClass("ui-widget-header") | |
| } | |
| a(".ui-slider-handle", this.element).length === 0 && a("<a href='#'></a>").appendTo(this.element).addClass("ui-slider-handle"); | |
| if (d.values && d.values.length) | |
| for (; a(".ui-slider-handle", this.element).length < d.values.length;) a("<a href='#'></a>").appendTo(this.element).addClass("ui-slider-handle"); | |
| this.handles = a(".ui-slider-handle", this.element).addClass("ui-state-default ui-corner-all"); | |
| this.handle = this.handles.eq(0); | |
| this.handles.add(this.range).filter("a").click(function(f) { | |
| f.preventDefault() | |
| }).hover(function() { | |
| d.disabled || a(this).addClass("ui-state-hover") | |
| }, function() { | |
| a(this).removeClass("ui-state-hover") | |
| }).focus(function() { | |
| if (d.disabled) a(this).blur(); | |
| else { | |
| a(".ui-slider .ui-state-focus").removeClass("ui-state-focus"); | |
| a(this).addClass("ui-state-focus") | |
| } | |
| }).blur(function() { | |
| a(this).removeClass("ui-state-focus") | |
| }); | |
| this.handles.each(function(f) { | |
| a(this).data("index.ui-slider-handle", f) | |
| }); | |
| this.handles.keydown(function(f) { | |
| var g = true, | |
| j = a(this).data("index.ui-slider-handle"), | |
| l, o, v; | |
| if (!b.options.disabled) { | |
| switch (f.keyCode) { | |
| case a.ui.keyCode.HOME: | |
| case a.ui.keyCode.END: | |
| case a.ui.keyCode.PAGE_UP: | |
| case a.ui.keyCode.PAGE_DOWN: | |
| case a.ui.keyCode.UP: | |
| case a.ui.keyCode.RIGHT: | |
| case a.ui.keyCode.DOWN: | |
| case a.ui.keyCode.LEFT: | |
| g = | |
| false; | |
| if (!b._keySliding) { | |
| b._keySliding = true; | |
| a(this).addClass("ui-state-active"); | |
| l = b._start(f, j); | |
| if (l === false) return | |
| } | |
| } | |
| v = b.options.step; | |
| l = b.options.values && b.options.values.length ? o = b.values(j) : o = b.value(); | |
| switch (f.keyCode) { | |
| case a.ui.keyCode.HOME: | |
| o = b._valueMin(); | |
| break; | |
| case a.ui.keyCode.END: | |
| o = b._valueMax(); | |
| break; | |
| case a.ui.keyCode.PAGE_UP: | |
| o = l + (b._valueMax() - b._valueMin()) / 5; | |
| break; | |
| case a.ui.keyCode.PAGE_DOWN: | |
| o = l - (b._valueMax() - b._valueMin()) / 5; | |
| break; | |
| case a.ui.keyCode.UP: | |
| case a.ui.keyCode.RIGHT: | |
| if (l === | |
| b._valueMax()) return; | |
| o = l + v; | |
| break; | |
| case a.ui.keyCode.DOWN: | |
| case a.ui.keyCode.LEFT: | |
| if (l === b._valueMin()) return; | |
| o = l - v | |
| } | |
| b._slide(f, j, o); | |
| return g | |
| } | |
| }).keyup(function(f) { | |
| var g = a(this).data("index.ui-slider-handle"); | |
| if (b._keySliding) { | |
| b._keySliding = false; | |
| b._stop(f, g); | |
| b._change(f, g); | |
| a(this).removeClass("ui-state-active") | |
| } | |
| }); | |
| this._refreshValue(); | |
| this._animateOff = false | |
| }, | |
| destroy: function() { | |
| this.handles.remove(); | |
| this.range.remove(); | |
| this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-slider-disabled ui-widget ui-widget-content ui-corner-all").removeData("slider").unbind(".slider"); | |
| this._mouseDestroy(); | |
| return this | |
| }, | |
| _mouseCapture: function(b) { | |
| var d = this.options, | |
| f, g, j, l, o, v; | |
| if (d.disabled) return false; | |
| this.elementSize = { | |
| width: this.element.outerWidth(), | |
| height: this.element.outerHeight() | |
| }; | |
| this.elementOffset = this.element.offset(); | |
| f = { | |
| x: b.pageX, | |
| y: b.pageY | |
| }; | |
| g = this._normValueFromMouse(f); | |
| j = this._valueMax() - this._valueMin() + 1; | |
| o = this; | |
| this.handles.each(function(A) { | |
| var C = Math.abs(g - o.values(A)); | |
| if (j > C) { | |
| j = C; | |
| l = a(this); | |
| v = A | |
| } | |
| }); | |
| if (d.range === true && this.values(1) === d.min) { | |
| v += 1; | |
| l = a(this.handles[v]) | |
| } | |
| if (this._start(b, | |
| v) === false) return false; | |
| this._mouseSliding = true; | |
| o._handleIndex = v; | |
| l.addClass("ui-state-active").focus(); | |
| d = l.offset(); | |
| this._clickOffset = !a(b.target).parents().andSelf().is(".ui-slider-handle") ? { | |
| left: 0, | |
| top: 0 | |
| } : { | |
| left: b.pageX - d.left - l.width() / 2, | |
| top: b.pageY - d.top - l.height() / 2 - (parseInt(l.css("borderTopWidth"), 10) || 0) - (parseInt(l.css("borderBottomWidth"), 10) || 0) + (parseInt(l.css("marginTop"), 10) || 0) | |
| }; | |
| g = this._normValueFromMouse(f); | |
| this._slide(b, v, g); | |
| return this._animateOff = true | |
| }, | |
| _mouseStart: function() { | |
| return true | |
| }, | |
| _mouseDrag: function(b) { | |
| var d = this._normValueFromMouse({ | |
| x: b.pageX, | |
| y: b.pageY | |
| }); | |
| this._slide(b, this._handleIndex, d); | |
| return false | |
| }, | |
| _mouseStop: function(b) { | |
| this.handles.removeClass("ui-state-active"); | |
| this._mouseSliding = false; | |
| this._stop(b, this._handleIndex); | |
| this._change(b, this._handleIndex); | |
| this._clickOffset = this._handleIndex = null; | |
| return this._animateOff = false | |
| }, | |
| _detectOrientation: function() { | |
| this.orientation = this.options.orientation === "vertical" ? "vertical" : "horizontal" | |
| }, | |
| _normValueFromMouse: function(b) { | |
| var d; | |
| if (this.orientation === "horizontal") { | |
| d = this.elementSize.width; | |
| b = b.x - this.elementOffset.left - (this._clickOffset ? this._clickOffset.left : 0) | |
| } else { | |
| d = this.elementSize.height; | |
| b = b.y - this.elementOffset.top - (this._clickOffset ? this._clickOffset.top : 0) | |
| } | |
| d = b / d; | |
| if (d > 1) d = 1; | |
| if (d < 0) d = 0; | |
| if (this.orientation === "vertical") d = 1 - d; | |
| b = this._valueMax() - this._valueMin(); | |
| return this._trimAlignValue(this._valueMin() + d * b) | |
| }, | |
| _start: function(b, d) { | |
| var f = { | |
| handle: this.handles[d], | |
| value: this.value() | |
| }; | |
| if (this.options.values && this.options.values.length) { | |
| f.value = | |
| this.values(d); | |
| f.values = this.values() | |
| } | |
| return this._trigger("start", b, f) | |
| }, | |
| _slide: function(b, d, f) { | |
| var g; | |
| if (this.options.values && this.options.values.length) { | |
| g = this.values(d ? 0 : 1); | |
| if (this.options.values.length === 2 && this.options.range === true && (d === 0 && f > g || d === 1 && f < g)) f = g; | |
| if (f !== this.values(d)) { | |
| g = this.values(); | |
| g[d] = f; | |
| b = this._trigger("slide", b, { | |
| handle: this.handles[d], | |
| value: f, | |
| values: g | |
| }); | |
| this.values(d ? 0 : 1); | |
| b !== false && this.values(d, f, true) | |
| } | |
| } else if (f !== this.value()) { | |
| b = this._trigger("slide", b, { | |
| handle: this.handles[d], | |
| value: f | |
| }); | |
| b !== false && this.value(f) | |
| } | |
| }, | |
| _stop: function(b, d) { | |
| var f = { | |
| handle: this.handles[d], | |
| value: this.value() | |
| }; | |
| if (this.options.values && this.options.values.length) { | |
| f.value = this.values(d); | |
| f.values = this.values() | |
| } | |
| this._trigger("stop", b, f) | |
| }, | |
| _change: function(b, d) { | |
| if (!this._keySliding && !this._mouseSliding) { | |
| var f = { | |
| handle: this.handles[d], | |
| value: this.value() | |
| }; | |
| if (this.options.values && this.options.values.length) { | |
| f.value = this.values(d); | |
| f.values = this.values() | |
| } | |
| this._trigger("change", b, f) | |
| } | |
| }, | |
| value: function(b) { | |
| if (arguments.length) { | |
| this.options.value = | |
| this._trimAlignValue(b); | |
| this._refreshValue(); | |
| this._change(null, 0) | |
| } | |
| return this._value() | |
| }, | |
| values: function(b, d) { | |
| var f, g, j; | |
| if (arguments.length > 1) { | |
| this.options.values[b] = this._trimAlignValue(d); | |
| this._refreshValue(); | |
| this._change(null, b) | |
| } | |
| if (arguments.length) | |
| if (a.isArray(arguments[0])) { | |
| f = this.options.values; | |
| g = arguments[0]; | |
| for (j = 0; j < f.length; j += 1) { | |
| f[j] = this._trimAlignValue(g[j]); | |
| this._change(null, j) | |
| } | |
| this._refreshValue() | |
| } else return this.options.values && this.options.values.length ? this._values(b) : this.value(); | |
| else return this._values() | |
| }, | |
| _setOption: function(b, d) { | |
| var f, g = 0; | |
| if (a.isArray(this.options.values)) g = this.options.values.length; | |
| a.Widget.prototype._setOption.apply(this, arguments); | |
| switch (b) { | |
| case "disabled": | |
| if (d) { | |
| this.handles.filter(".ui-state-focus").blur(); | |
| this.handles.removeClass("ui-state-hover"); | |
| this.handles.attr("disabled", "disabled"); | |
| this.element.addClass("ui-disabled") | |
| } else { | |
| this.handles.removeAttr("disabled"); | |
| this.element.removeClass("ui-disabled") | |
| } | |
| break; | |
| case "orientation": | |
| this._detectOrientation(); | |
| this.element.removeClass("ui-slider-horizontal ui-slider-vertical").addClass("ui-slider-" + this.orientation); | |
| this._refreshValue(); | |
| break; | |
| case "value": | |
| this._animateOff = true; | |
| this._refreshValue(); | |
| this._change(null, 0); | |
| this._animateOff = false; | |
| break; | |
| case "values": | |
| this._animateOff = true; | |
| this._refreshValue(); | |
| for (f = 0; f < g; f += 1) this._change(null, f); | |
| this._animateOff = false | |
| } | |
| }, | |
| _value: function() { | |
| return this._trimAlignValue(this.options.value) | |
| }, | |
| _values: function(b) { | |
| var d, f; | |
| if (arguments.length) { | |
| d = this.options.values[b]; | |
| return this._trimAlignValue(d) | |
| } else { | |
| d = this.options.values.slice(); | |
| for (f = 0; f < d.length; f += 1) d[f] = this._trimAlignValue(d[f]); | |
| return d | |
| } | |
| }, | |
| _trimAlignValue: function(b) { | |
| if (b < this._valueMin()) return this._valueMin(); | |
| if (b > this._valueMax()) return this._valueMax(); | |
| var d = this.options.step, | |
| f = b % d; | |
| b -= f; | |
| if (f >= d / 2) b += d; | |
| return parseFloat(b.toFixed(5)) | |
| }, | |
| _valueMin: function() { | |
| return this.options.min | |
| }, | |
| _valueMax: function() { | |
| return this.options.max | |
| }, | |
| _refreshValue: function() { | |
| var b = this.options.range, | |
| d = this.options, | |
| f = this, | |
| g = !this._animateOff ? d.animate : false, | |
| j, l = {}, | |
| o, v, A, C; | |
| if (this.options.values && this.options.values.length) this.handles.each(function(q) { | |
| j = (f.values(q) - f._valueMin()) / (f._valueMax() - f._valueMin()) * 100; | |
| l[f.orientation === "horizontal" ? "left" : "bottom"] = j + "%"; | |
| a(this).stop(1, 1)[g ? "animate" : "css"](l, d.animate); | |
| if (f.options.range === true) | |
| if (f.orientation === "horizontal") { | |
| if (q === 0) f.range.stop(1, 1)[g ? "animate" : "css"]({ | |
| left: j + "%" | |
| }, d.animate); | |
| if (q === 1) f.range[g ? "animate" : "css"]({ | |
| width: j - o + "%" | |
| }, { | |
| queue: false, | |
| duration: d.animate | |
| }) | |
| } else { | |
| if (q === | |
| 0) f.range.stop(1, 1)[g ? "animate" : "css"]({ | |
| bottom: j + "%" | |
| }, d.animate); | |
| if (q === 1) f.range[g ? "animate" : "css"]({ | |
| height: j - o + "%" | |
| }, { | |
| queue: false, | |
| duration: d.animate | |
| }) | |
| } | |
| o = j | |
| }); | |
| else { | |
| v = this.value(); | |
| A = this._valueMin(); | |
| C = this._valueMax(); | |
| j = C !== A ? (v - A) / (C - A) * 100 : 0; | |
| l[f.orientation === "horizontal" ? "left" : "bottom"] = j + "%"; | |
| this.handle.stop(1, 1)[g ? "animate" : "css"](l, d.animate); | |
| if (b === "min" && this.orientation === "horizontal") this.range.stop(1, 1)[g ? "animate" : "css"]({ | |
| width: j + "%" | |
| }, d.animate); | |
| if (b === "max" && this.orientation === "horizontal") this.range[g ? | |
| "animate" : "css"]({ | |
| width: 100 - j + "%" | |
| }, { | |
| queue: false, | |
| duration: d.animate | |
| }); | |
| if (b === "min" && this.orientation === "vertical") this.range.stop(1, 1)[g ? "animate" : "css"]({ | |
| height: j + "%" | |
| }, d.animate); | |
| if (b === "max" && this.orientation === "vertical") this.range[g ? "animate" : "css"]({ | |
| height: 100 - j + "%" | |
| }, { | |
| queue: false, | |
| duration: d.animate | |
| }) | |
| } | |
| } | |
| }); | |
| a.extend(a.ui.slider, { | |
| version: "1.8.1" | |
| }) | |
| })(jQuery); | |
| (function(a) { | |
| a.fn.extend({ | |
| lazy: function(b) { | |
| return this.each(function() { | |
| new a.lazy(this, b) | |
| }) | |
| } | |
| }); | |
| a.lazy = function(b, d) { | |
| var f = this; | |
| f.inc = 0; | |
| f.optionsArr = []; | |
| f.options = a.extend({}, { | |
| threshold: 0, | |
| eventDelay: 200, | |
| exclude: null, | |
| onComplete: false, | |
| placements: [], | |
| lazyRR: false, | |
| posCurtain: false, | |
| posCurtainFocus: true, | |
| type: "", | |
| onBeforeSend: null, | |
| isScrolled: false, | |
| onEarlyComplete: null, | |
| collectionCall: false, | |
| callback: null | |
| }, d || {}); | |
| f.window = a(window); | |
| f.wrapper = a(b); | |
| f.lazySelector = typeof f.options.lazyInsertBefore !== "undefined" ? "div.lazy-load" : | |
| "form.lazy-load"; | |
| f.lazyInsertBefore = f.options.lazyInsertBefore !== undefined ? f.options.lazyInsertBefore : false; | |
| f.hpgrid = f.options.hpgrid !== undefined ? f.options.hpgrid : false; | |
| f.ignoreAjax = f.options.ignoreAjax !== undefined ? true : false; | |
| f.callback = f.options.callback !== undefined ? f.options.callback : null; | |
| if (a.makeArray(d).length > 1) f.optionsArr = d; | |
| this.exclude = "#ajax-curtain, #Carousel, .carousel" + (f.options.exclude !== null) ? ", " + f.options.exclude : ""; | |
| f.images = f.wrapper.find("img").filter(function() { | |
| return !a(this).parents(f.exclude).length | |
| }); | |
| f.forms = f.wrapper.find(f.lazySelector).filter(function() { | |
| return !a(this).parents(f.exclude).length | |
| }); | |
| f.formsQueue = []; | |
| f.setup() | |
| }; | |
| a.lazy.registration = { | |
| info: { | |
| Author: "Ryan Fitzer", | |
| Revision: "$Revision: 76380 $", | |
| LastChangedBy: "$LastChangedBy: rfitze $", | |
| Date: "$Date: 2011-01-19 00:55:55 +0530 (Wed, 19 Jan 2011) $" | |
| } | |
| }; | |
| a.lazy.above = function(b, d) { | |
| var f = typeof b === "string" ? a(b) : b, | |
| g = d || {}; | |
| return (g.container === undefined || g.container === window ? a(window).scrollTop() : (typeof g.container === "string" ? a(g.container) : g.container).offset().top) >= | |
| f.offset().top + (g.threshold || 0) + f.height() | |
| }; | |
| a.lazy.left = function(b, d) { | |
| var f = typeof b === "string" ? a(b) : b, | |
| g = d || {}; | |
| return (g.container === undefined || g.container === window ? a(window).scrollLeft() : (typeof g.container === "string" ? a(g.container) : g.container).offset().left) >= f.offset().left + (g.threshold || 0) + f.width() | |
| }; | |
| a.lazy.below = function(b, d) { | |
| var f = typeof b === "string" ? a(b) : b, | |
| g = d || {}; | |
| if (g.container === undefined || g.container === window) { | |
| var j = a(window); | |
| j = j.height() + j.scrollTop() | |
| } else { | |
| j = typeof g.container === "string" ? | |
| a(g.container) : g.container; | |
| j = j.offset().top + j.height() | |
| } | |
| return j <= f.offset().top - (g.threshold || 0) | |
| }; | |
| a.lazy.right = function(b, d) { | |
| var f = typeof b === "string" ? a(b) : b, | |
| g = d || {}; | |
| if (g.container === undefined || g.container === window) { | |
| var j = a(window); | |
| j = j.width() + j.scrollLeft() | |
| } else { | |
| j = typeof g.container === "string" ? a(g.container) : g.container; | |
| j = j.offset().left + j.width() | |
| } | |
| return j <= f.offset().left - (g.threshold || 0) | |
| }; | |
| a.lazy.inView = function(b, d) { | |
| return !(a.lazy.above(b, d) || a.lazy.left(b, d) || a.lazy.below(b, d) || a.lazy.right(b, | |
| d)) | |
| }; | |
| a.extend(a.expr[":"], { | |
| "above-the-fold": function(b) { | |
| return a.lazy.above(a(b), { | |
| threshold: 0, | |
| container: window | |
| }) | |
| }, | |
| "left-of-fold": function(b) { | |
| return a.lazy.left(a(b), { | |
| threshold: 0, | |
| container: window | |
| }) | |
| }, | |
| "below-the-fold": function(b) { | |
| return a.lazy.below(a(b), { | |
| threshold: 0, | |
| container: window | |
| }) | |
| }, | |
| "right-of-fold": function(b) { | |
| return a.lazy.right(a(b), { | |
| threshold: 0, | |
| container: window | |
| }) | |
| }, | |
| "in-view": function(b) { | |
| return a.lazy.inView(a(b), { | |
| threshold: 0, | |
| container: window | |
| }) | |
| } | |
| }); | |
| a.extend(a.lazy.prototype, { | |
| setup: function() { | |
| var b = | |
| this, | |
| d = null, | |
| f = "appear submit"; | |
| b.wrapper.delegate("img", "appear", function(g) { | |
| b.loadImage(g) | |
| }); | |
| b.wrapper.undelegate(b.lazySelector, "appear submit"); | |
| if (parseInt(a.browser.version) == 8 && b.ignoreAjax) f = "appear"; | |
| b.wrapper.delegate(b.lazySelector, f, function(g) { | |
| b.formsQueue.push(g); | |
| b.loadForm(b.options.isScrolled) | |
| }); | |
| b.window.unbind("scroll.lazy resize.lazy").bind("scroll.lazy resize.lazy", function() { | |
| b.options.isScrolled = true; | |
| clearTimeout(d); | |
| d = setTimeout(function() { | |
| b.testImages(); | |
| b.testForms() | |
| }, b.options.eventDelay) | |
| }); | |
| typeof b.options.skipEvent !== "undefined" && b.options.type && b.options.type === "tab" && b.wrapper.delegate("ul.tabs-index li a.j-lazytab", "click", function(g) { | |
| g.preventDefault(); | |
| b.loadContent(g) | |
| }); | |
| b.configImages(); | |
| b.configForms() | |
| }, | |
| configImages: function() { | |
| var b; | |
| this.images.each(function() { | |
| b = a(this); | |
| b.data("lazy", {}); | |
| b.attr("original") === undefined && b.attr("original", b.attr("src")) | |
| }); | |
| this.testImages() | |
| }, | |
| configForms: function() { | |
| var b = this, | |
| d; | |
| b.forms.each(function() { | |
| d = a(this); | |
| d.data("lazy", {}); | |
| b.cachePosition(d) | |
| }); | |
| b.testForms() | |
| }, | |
| testImages: function() { | |
| var b = this, | |
| d; | |
| b.images = b.images.filter(function() { | |
| d = a(this); | |
| b.cachePosition(d); | |
| if (b.notInView(d)) return true; | |
| else { | |
| d.trigger("appear"); | |
| return false | |
| } | |
| }) | |
| }, | |
| testForms: function() { | |
| var b = this, | |
| d; | |
| b.forms = b.forms.filter(function() { | |
| d = a(this); | |
| if (b.notInView(d)) return true; | |
| else { | |
| d.trigger("appear"); | |
| return false | |
| } | |
| }) | |
| }, | |
| loadImage: function(b) { | |
| var d = a(b.target); | |
| a("<img/>").bind("load", function() { | |
| d.attr("src", d.attr("original")).show() | |
| }).attr("src", d.attr("original")) | |
| }, | |
| loadForm: function(b) { | |
| var d, | |
| f, g, j, l, o, v, A, C = "", | |
| q = this, | |
| I = "html"; | |
| if (!(!q.formsQueue.length || q.loadInProgress)) { | |
| q.loadInProgress = true; | |
| d = q.formsQueue.shift(); | |
| f = a(d.target); | |
| d = f.attr("action"); | |
| if (q.lazyInsertBefore) { | |
| I = "json"; | |
| g = a(q.lazySelector).find("input"); | |
| q.options.posCurtain = false; | |
| q.options.posCurtainFocus = false; | |
| C = a("body"); | |
| a("#trLastCol").removeClass("hidden"); | |
| a(".removeItem").addClass("overlay-open"); | |
| a("#see-more-reviews").hide() | |
| } else { | |
| g = f.serialize(); | |
| C = f | |
| } | |
| b = typeof b !== "undefined" ? b : true; | |
| if (q.optionsArr.length !== 0) { | |
| q.options = | |
| a.extend({}, q.options, q.optionsArr[q.inc] || {}); | |
| q.inc++ | |
| } | |
| j = q.options.placements !== undefined ? q.options.placements : []; | |
| l = q.options.lazyRR !== undefined ? true : false; | |
| o = q.options.posCurtain !== undefined ? q.options.posCurtain : false; | |
| v = q.options.posCurtainFocus !== undefined ? q.options.posCurtainFocus : true; | |
| q.options.onBeforeSend && q.options.onBeforeSend(f); | |
| if (d == "#" || q.ignoreAjax) return q.loadInProgress = false; | |
| a.ajax({ | |
| url: d, | |
| data: g, | |
| dataType: I, | |
| cache: false, | |
| type: "post", | |
| curtain: { | |
| selector: C, | |
| posCurtain: o, | |
| posCurtainFocus: v | |
| }, | |
| success: function(K) { | |
| if (j.length > 0) { | |
| var Q = a('[var="isHomePage"]'); | |
| Q = Q.length && Q.val() == "true" ? true : false; | |
| var n = a(K); | |
| n.filter("script").each(function() { | |
| this.src && this.src !== "" && Target.util.loadScript({ | |
| src: this.src, | |
| success: function() {} | |
| }) | |
| }); | |
| n.filter("script").each(function() { | |
| try { | |
| a.globalEval(this.src || this.text || this.textContent || this.innerHTML || "") | |
| } catch (G) {} | |
| }); | |
| a.each(j, function(G, p) { | |
| a(K).find(p).html() && a(p).html(a(K).find(p).html()) | |
| }) | |
| } else if (q.lazyInsertBefore || q.hpgrid) q.options.onEarlyComplete && | |
| q.options.onEarlyComplete(K, f); | |
| else if (q.options.collectionCall) { | |
| q.options.onEarlyComplete(K, f); | |
| q.callback && q.callback() | |
| } else { | |
| f.replaceWith(K); | |
| Q && a(".spotlight-container").hide() | |
| } | |
| if (o && b) { | |
| if (j.length > 0) { | |
| n = a(j[j.length - 1]); | |
| A = n.find("h2").eq(0); | |
| if (A.length === 0) A = n.find("a").eq(0) | |
| } else { | |
| A = q.wrapper.find("h2").eq(0); | |
| if (A.length === 0) A = q.wrapper.find("a").eq(0) | |
| } | |
| A.attr("tabIndex", "-1"); | |
| setTimeout(function() { | |
| A.focus() | |
| }, 1E3) | |
| } | |
| if (l) typeof rr_recs !== "undefined" ? q.rrCb() : setTimeout(function() { | |
| q.rrCb() | |
| }, 2E3); | |
| q.forms = | |
| q.wrapper.find(q.lazySelector).filter(function() { | |
| return !a(this).parents(q.exclude).length | |
| }); | |
| if (Q) { | |
| setTimeout(function() { | |
| q.loadForm() | |
| }, 1500); | |
| setTimeout(function() { | |
| a(".spotlight-container").show() | |
| }, 1E3) | |
| } else q.loadForm(); | |
| q.configForms(); | |
| q.loadInProgress = false; | |
| q.options.onComplete && q.options.onComplete() | |
| }, | |
| error: function() { | |
| a.overlay.currentOverlay.trigger("close.overlay"); | |
| console.log("Error in lazy load") | |
| } | |
| }) | |
| } | |
| }, | |
| loadContent: function(b, d) { | |
| var f, g, j, l, o, v, A, C; | |
| f = b.currentTarget ? a(b.currentTarget) : b; | |
| g = f.attr("tagName"); | |
| j = f.find("a.j-lazytab").attr("href"); | |
| a("#omniPartNumber").val() != undefined && a("#omniPartNumber").val() != "" && a("#omniPartNumber").val(); | |
| l = g === "LI" ? a(j) : a(f.attr("href")); | |
| f = l.find("form"); | |
| g = f.attr("action"); | |
| j = f.serialize(); | |
| if (d) { | |
| o = typeof d.catEntryId !== "undefined" ? d.catEntryId : ""; | |
| v = typeof d.parentId !== "undefined" ? d.parentId : ""; | |
| A = typeof d.enablePluckFeature !== "undefined" ? d.enablePluckFeature : ""; | |
| C = typeof d.action !== "undefined" ? d.action : ""; | |
| j = j + "&isSoftRefresh=true&catEntryId=" + o + "&parentId=" + v + "&enablePluckFeature=" + | |
| A | |
| } | |
| if (f.length == 0 || f.attr("action").indexOf(C) == -1) { | |
| a(l).focus(); | |
| return false | |
| } | |
| a.ajax({ | |
| url: g, | |
| data: d.method ? "" : j, | |
| dataType: d.dataType ? d.dataType : "html", | |
| cache: false, | |
| type: d.method ? d.method : "post", | |
| curtain: false, | |
| success: function(q) { | |
| if (l) { | |
| if (l.attr("id") == "item-sizechart") a(l).html(q); | |
| else l.attr("id") != "media-detail-common-sense" && a(l).replaceWith(q); | |
| var I = "#" + a(l).attr("id"), | |
| K = a("#ProductDetails .tabs-index li.selected").find("span a").attr("href"); | |
| if (typeof K !== "undefined") { | |
| a(K).show(); | |
| I == K ? a(I).show() : | |
| a(I).hide() | |
| } | |
| a(I).focus() | |
| } | |
| d.cb && d.cb(q) | |
| }, | |
| error: function() { | |
| console.log("Error in loading tab ajax call") | |
| } | |
| }) | |
| }, | |
| rrCb: function(b) { | |
| var d = ""; | |
| if (typeof rr_recs !== "undefined") { | |
| d = rr_recs.placements; | |
| d.length > 0 && a.each(d, function(f, g) { | |
| function j(A, C) { | |
| var q = ""; | |
| if (C.placementType) { | |
| q += "<div id='rr_placement_" + A + "'>"; | |
| q += C.html; | |
| q += "</div>" | |
| } | |
| return q | |
| } | |
| var l = g.placementType, | |
| o = l.replace(/\./, "-"), | |
| v = a('div[id^="' + o + '"]'); | |
| (function() { | |
| var A = 0; | |
| a.each(d, function(C, q) { | |
| if (q.placementType == l) { | |
| var I = a(v[A]); | |
| I && I.html(j(A, q)); | |
| A++ | |
| } | |
| }) | |
| })() | |
| }); | |
| setTimeout(function() { | |
| a('div[id^="rr_placement_"]').find("div.image-container").find("img").length === 0 && rr_call_after_flush(); | |
| rr_onload_called = false; | |
| RR.onloadCalled = true | |
| }, typeof b != "undefined" & b === "nodelay" ? a.browser.webkit ? 0 : 0 : a.browser.webkit ? 5E3 : 2E3); | |
| Target.controller.globalUtils.initRRCarousel() | |
| } | |
| }, | |
| cachePosition: function(b) { | |
| var d = b.offset(), | |
| f = b.width(), | |
| g = b.height(); | |
| g = d.top + this.options.threshold + g; | |
| f = d.left + this.options.threshold + f; | |
| var j = d.top - this.options.threshold; | |
| d = d.left - this.options.threshold; | |
| b = b.data("lazy"); | |
| if (b != null) { | |
| b.top = g; | |
| b.left = f; | |
| b.bottom = j; | |
| b.right = d | |
| } | |
| }, | |
| notInView: function(b) { | |
| var d, f, g = { | |
| above: null, | |
| left: null, | |
| below: null, | |
| right: null | |
| }; | |
| d = this.window.scrollTop(); | |
| f = this.window.scrollLeft(); | |
| g.above = d; | |
| g.left = f; | |
| g.below = this.window.height() + d; | |
| g.right = this.window.width() + f; | |
| this.eventElementPos = g; | |
| return this.checkPosition.above(b, g.above) || this.checkPosition.left(b, g.left) || this.checkPosition.below(b, g.below) || this.checkPosition.right(b, g.right) | |
| }, | |
| checkPosition: { | |
| above: function(b, d) { | |
| var f = b.data("lazy"); | |
| return f ? d >= f.top : true | |
| }, | |
| left: function(b, d) { | |
| var f = b.data("lazy"); | |
| return f ? d >= f.left : true | |
| }, | |
| below: function(b, d) { | |
| var f = b.data("lazy"); | |
| return f ? d <= f.bottom : true | |
| }, | |
| right: function(b, d) { | |
| var f = b.data("lazy"); | |
| return f ? d <= f.right : true | |
| } | |
| } | |
| }) | |
| })(jQuery); | |
| $(window).trigger("register.framework", ["plugin", "lazy", $.lazy.registration]); | |
| Target = { | |
| init: function() { | |
| this.support.js(); | |
| this.support.testie(); | |
| this.support.testMaciPad(); | |
| $(document).bind("session-start.framework", $.proxy(this.handleSessionTimer, this)); | |
| $(document).ready($.proxy(this.domReady, this)) | |
| }, | |
| support: { | |
| js: function() { | |
| var a = document.documentElement; | |
| a.className = a.className.replace("no-js", "js-enabled") | |
| }, | |
| testie: function() { | |
| return $.browser.msie && $.browser.version > 6 ? document.documentElement.className = " ie ie" + parseInt($.browser.version) : void 0 | |
| }, | |
| testMaciPad: function() { | |
| if (navigator.platform.indexOf("Mac") != | |
| -1 || navigator.platform.indexOf("iPad") != -1) | |
| if (typeof window.chrome === "object") $("html").addClass("mchrome"); | |
| else $.browser.safari && $("html").addClass("msafari") | |
| }, | |
| isTouch: "ontouchstart" in window || window.DocumentTouch && document instanceof DocumentTouch ? true : false | |
| }, | |
| domReady: function() { | |
| this.updateBuffer(); | |
| this.jqueryExtentions(); | |
| this.console(); | |
| this.touch() | |
| }, | |
| register: function(a, b, d, f) { | |
| var g = {}, | |
| j = typeof a != "string", | |
| l = j ? d : b, | |
| o = j ? f : d; | |
| if ((j ? b : a) === "controller") { | |
| if (o.utils && o.utils.length) { | |
| for (i = 0; i < o.utils.length; i++) | |
| if (o.utils[i] in | |
| this.util) g[o.utils[i]] = this.util[o.utils[i]]; | |
| o.utils = g | |
| } | |
| this.controller[l] = o; | |
| this.controller[l].init && $(document).ready(function() { | |
| o.init() | |
| }) | |
| } | |
| }, | |
| globals: {}, | |
| validation: {}, | |
| controller: {}, | |
| util: { | |
| showHide: function(a, b, d) { | |
| var f, g = a.text(), | |
| j = d.hideText || "see less", | |
| l = d.theClass || "hidden", | |
| o = d.focusContent || b; | |
| o.attr("tabindex", -1); | |
| a.click(function(v) { | |
| a.text(); | |
| v.preventDefault(); | |
| f = a.text() === g ? j : g; | |
| a.text(f); | |
| b.toggleClass(l); | |
| b.hasClass(l) ? o.get(0).focus() : a.get(0).focus() | |
| }) | |
| }, | |
| defaultFieldValue: function(a, b) { | |
| var d = | |
| a.val(); | |
| d !== b && d === "" && a.val(b).blur(); | |
| a.live("focusin focusout", function(f) { | |
| var g = a.val(); | |
| f.type === "focusin" && g === b && a.val("") && a.select(); | |
| f.type === "focusout" && g === "" && a.val(b) | |
| }) | |
| }, | |
| loadScript: function(a) { | |
| var b, d, f, g, j, l, o = 0, | |
| v = document, | |
| A = Math.random(), | |
| C = a.test; | |
| A = a.src + (a.cache ? "" : "?" + A); | |
| var q = a.context, | |
| I = a.interval && a.interval < 3E4 && a.interval || 1E3, | |
| K = a.runs && a.runs * I < 3E4 && a.runs || 10, | |
| Q = a.delayLoad && a.delayLoad === true && "load" || a.delayLoad && a.delayLoad || false, | |
| n = a.delayLoadTarget || window; | |
| if (A) { | |
| g = function() { | |
| if (a.success) { | |
| d = | |
| q === true && wnd[C] || q || window; | |
| a.success.call(d, window[C]) | |
| } | |
| }; | |
| f = function() { | |
| if (a.error) { | |
| q = q || window; | |
| a.error.call(d) | |
| } | |
| }; | |
| if (window[C]) return g(); | |
| l = v.getElementsByTagName("script")[0]; | |
| j = v.createElement("script"); | |
| j.src = A; | |
| j.async = true; | |
| if (typeof C === "undefined") | |
| if (j.readyState) j.onreadystatechange = function() { | |
| if (this.readyState == "complete" || this.readyState == "loaded") { | |
| j.onreadystatechange = null; | |
| g() | |
| } | |
| }; | |
| else j.onload = g; | |
| else b = setInterval(function() { | |
| if (o++ >= K) { | |
| clearInterval(b); | |
| f() | |
| } | |
| if (typeof window[C] !== "undefined") { | |
| clearInterval(b); | |
| g() | |
| } | |
| }, I); | |
| Q ? $(n).bind(Q, function() { | |
| l.parentNode ? l.parentNode.insertBefore(j, l) : $("script").first().before(j) | |
| }) : l.parentNode.insertBefore(j, l) | |
| } | |
| }, | |
| loadStyles: function(a) { | |
| var b, d = ""; | |
| for (b in a) d += '<link rel="stylesheet" type="text/css" href="' + a[b] + '" />'; | |
| $("head").append(d) | |
| }, | |
| loadIframe: function(a) { | |
| var b, d; | |
| this.body || $("body"); | |
| a = $.extend(true, {}, { | |
| target: null, | |
| when: "load", | |
| load: null, | |
| attr: { | |
| scrolling: "no", | |
| frameborder: "0", | |
| style: "display:none;visibility:hidden", | |
| allowTransparency: "true" | |
| } | |
| }, a || {}); | |
| if (a.attr.src) { | |
| b = | |
| $("<iframe/>", a.attr); | |
| b.bind("load", function(f) { | |
| d.trigger("iframe-loaded.framework"); | |
| a.load && $.isFunction(a.load) && a.load.call(d, f) | |
| }); | |
| d = a.target ? a.target : b; | |
| if (a.when === "load") $(window).bind("load", function() { | |
| d.append(b) | |
| }); | |
| else a.when === "ready" ? $(function() { | |
| d.append(b) | |
| }) : d.append(b) | |
| } | |
| }, | |
| checkKeyCode: function(a, b, d) { | |
| var f, g; | |
| if (b = typeof b === "string" ? RegExp(b.replace(",", "|").replace(" ", "")) : RegExp(b)) { | |
| f = $(a.target); | |
| g = a.keyCode || a.which || 0; | |
| b = b.exec(g); | |
| g = a.metaKey || a.altKey || a.ctrlKey || a.shiftKey ? true : | |
| false; | |
| if (f = !g && !f.is(":input") && !f.is("textarea") && b !== null) { | |
| a.theKey = parseInt(b[0]); | |
| d.call(a.currentTarget, a); | |
| return a.theKey | |
| } else return null | |
| } | |
| }, | |
| parseFragment: function(a) { | |
| var b = {}; | |
| a = /&/.test(a) ? a.split("&") : [a]; | |
| for (pair in a) { | |
| pairArray = a[pair].split("="); | |
| pairArray.length <= 1 || (b[pairArray[0]] = pairArray[1]) | |
| } | |
| return b | |
| }, | |
| normalizeColumnHeight: function(a) { | |
| var b = 0; | |
| a.each(function() { | |
| var d = $(this), | |
| f = d.height(); | |
| if (d.css("height").replace("px", "") > d.css("minHeight").replace("px", "")) b = f > b ? f : b | |
| }); | |
| typeof callback == | |
| "function" && callback(b); | |
| b && a.height(b); | |
| return b | |
| }, | |
| faceBookLikeButton: function() { | |
| var a = this, | |
| b = $(".fb-like-button"); | |
| if (b.length == 0) return false; | |
| b.each(function() { | |
| var d = $(this); | |
| a.loadIframe({ | |
| target: d, | |
| attr: { | |
| src: d.attr("data-iframe-src"), | |
| style: "border:none; overflow:hidden; width:90px; height:21px;" | |
| } | |
| }) | |
| }) | |
| }, | |
| tweetButton: function() { | |
| if ($(".twitter-share-button").length == 0) return false; | |
| this.loadScript({ | |
| src: "//platform.twitter.com/widgets.js", | |
| error: function() { | |
| console.log("error: http://platform.twitter.com/widgets.js failed to load.") | |
| }, | |
| delayLoad: false, | |
| cache: true | |
| }) | |
| } | |
| }, | |
| richRelevance: function(a) { | |
| var b = window, | |
| d = $(a.placement).eq(0), | |
| f = a.context || d; | |
| this.richRelevance.complete = function(g) { | |
| a.complete.call(f, g) | |
| }; | |
| b.R3_HOME = b.R3_CATEGORY = b.R3_SEARCH = b.R3_ITEM = b.R3_REGISTRY = b.R3_ADDTOCART = b.R3_CART = b.R3_PURCHASED = b.R3_ERROR = undefined; | |
| a.beforeSend && a.beforeSend.call(f); | |
| this.util.loadScript({ | |
| src: "//media.richrelevance.com/rrserver/js/1.0/p13n.js", | |
| test: "RR", | |
| context: this, | |
| success: function() { | |
| a.config.call(b); | |
| b.R3_COMMON.setJsonCallback("Target.richRelevance.complete"); | |
| b.r3() | |
| }, | |
| error: function() { | |
| if (a.error) return a.error.call(f, "Sorry, related products are not currently available."); | |
| d.removeClass("loading").append('<div class="info-msg"><p class="error-message">Sorry, related products are not currently available.</p></div>') | |
| } | |
| }) | |
| }, | |
| handleSessionTimer: function() { | |
| clearInterval(Target.controller.header.counterMinutes); | |
| clearInterval(Target.controller.header.counterSeconds); | |
| var a = Target.controller.header.cookie.read(Target.globals.JSESSIONID), | |
| b = "WC_USERACTIVITY_", | |
| d = "", | |
| f = | |
| "", | |
| g, j, l = $(".checkout").length, | |
| o = $(".regSettingsSec").length, | |
| v = $(".gamSession").length, | |
| A, C, q, I = this, | |
| K = true, | |
| Q = I.handleSessionTimer; | |
| o == 1 || v == 1 ? j = 1 : j = 0; | |
| d = Target.controller.header.cookie.readUserActivityfromCookieForRR(a); | |
| f = Target.controller.header.cookie.read("guestDisplayName"); | |
| b += d; | |
| Q.timeoutId && clearTimeout(Q.timeoutId); | |
| Q.extendSession = function(n, G) { | |
| Q.timeoutId = setTimeout(function() { | |
| if (n || G) Target.controller.header.alertHtml(j, 0, 0); | |
| if (f == null || f.length < 1) Target.controller.header.cookie.erase(b); | |
| return true | |
| }, | |
| 3E5) | |
| }; | |
| Q.timeoutId = setTimeout(function() { | |
| if ($(".noAlert").length != 1) { | |
| l == 1 || o == 1 || v == 1 ? g = 1 : g = 0; | |
| isSecure = location.protocol == "http:" ? false : true; | |
| q = new Date; | |
| C = q.getTime(); | |
| if (g || isSecure) K = Target.controller.header.alertHtml(j, 1, 0); | |
| q = new Date; | |
| A = q.getTime(); | |
| if (!K || A - C > 3E5) { | |
| if (A - C > 3E5) { | |
| if (g || isSecure) Target.controller.header.alertHtml(j, 0, 1); | |
| if (f == null || f.length < 1) Target.controller.header.cookie.erase(b); | |
| return true | |
| } | |
| clearTimeout(Q.timeoutId); | |
| return Q.extendSession(g, isSecure) | |
| } | |
| if (!g && !isSecure) return false; | |
| $.ajax({ | |
| url: "/webapp/wcs/stores/servlet/UserSessionExtensionView?isSoftRefresh=true", | |
| curtain: false, | |
| success: function() { | |
| I.handleSessionTimer() | |
| }, | |
| error: function() { | |
| if (g || isSecure) Target.controller.header.alertHtml(j, 0, 1); | |
| if (f == null || f.length < 1) Target.controller.header.cookie.erase(b); | |
| return true | |
| } | |
| }) | |
| } | |
| }, 15E5) | |
| }, | |
| updateBuffer: function() { | |
| var a = this.updateBuffer; | |
| if (a.inputAppended) a.input.val(a.input.val() === "0" ? "1" : "0"); | |
| else { | |
| a.input = $("<input/>", { | |
| id: "virtualBufferUpdate", | |
| type: "hidden", | |
| value: "0" | |
| }).appendTo("body"); | |
| a.inputAppended = true; | |
| $(document).bind("updateBuffer.framework", $.proxy(a, this)) | |
| } | |
| }, | |
| facebookConnect: function() { | |
| if ($(".fb-like-button").length == 0) return false; | |
| var a = this, | |
| b = document, | |
| d = document.createElement("div"), | |
| f = function() { | |
| FB.init({ | |
| appId: "181925621858687", | |
| status: true, | |
| cookie: true, | |
| xfbml: true | |
| }) | |
| }, | |
| g = function() { | |
| console.log("error: //connect.facebook.net/en_US/all.js failed to define `window.FB` due to an unknown error.") | |
| }; | |
| d.id = "fb-root"; | |
| b.body.appendChild(d); | |
| $(window).bind("load", function() { | |
| a.util.loadScript({ | |
| src: "//connect.facebook.net/en_US/all.js", | |
| test: "FB", | |
| success: f, | |
| error: g | |
| }) | |
| }) | |
| }, | |
| jqueryExtentions: function() { | |
| var a = this, | |
| b = $.fn.hide, | |
| d = $.fn.show; | |
| $.fn.hide = function(o, v) { | |
| return o ? b.call(this, o, function() { | |
| v && v(); | |
| $(this).css("visibility", "hidden") | |
| }) : b.call(this).css("visibility", "hidden") | |
| }; | |
| $.fn.show = function(o, v) { | |
| $(this).css("visibility", "visible"); | |
| return d.call(this, o, v) | |
| }; | |
| var f = null, | |
| g = $(window); | |
| g.bind("resize", function(o) { | |
| f !== null && clearTimeout(f); | |
| f = setTimeout(function() { | |
| g.trigger("resizeEnd", o) | |
| }, 250) | |
| }); | |
| var j = lastClick = lastClickedElement = lastMouseover = | |
| lastMousedElement = null, | |
| l = "#shoppingCart"; | |
| a.eventDelaySpan = 250; | |
| a.addMouseoverElement = function(o) { | |
| return l += "," + o | |
| }; | |
| $(document).bind("ajaxStart", function(o) { | |
| try { | |
| if (o.currentTarget.activeElement.tagName !== "BODY") j = o.currentTarget.activeElement | |
| } catch (v) {} | |
| }); | |
| $(document).bind("ajaxStop", function() { | |
| j = null | |
| }); | |
| $.event.special.click = { | |
| add: function(o) { | |
| var v = o.handler, | |
| A = $(this); | |
| o.handler = function(C) { | |
| var q = (new Date).getTime(); | |
| if (A === lastClickedElement && q - lastClick < a.eventDelaySpan) { | |
| C.preventDefault(); | |
| return false | |
| } else { | |
| lastClick = | |
| q; | |
| lastClickedElement = A; | |
| if (j && A.get(0) === j) C.preventDefault(); | |
| else return v.apply(this, arguments) | |
| } | |
| } | |
| } | |
| }; | |
| $.event.special.mouseover = { | |
| add: function(o) { | |
| var v = o.handler, | |
| A = $(this); | |
| o.handler = function(C) { | |
| var q = (new Date).getTime(), | |
| I = A.is(l); | |
| if (I && A == lastMousedElement && q - lastMouseover < a.eventDelaySpan) { | |
| C.preventDefault(); | |
| return false | |
| } else { | |
| if (I) { | |
| lastMouseover = q; | |
| lastMousedElement = A | |
| } | |
| if (j && A.get(0) === j) C.preventDefault(); | |
| else return v.apply(this, arguments) | |
| } | |
| } | |
| } | |
| }; | |
| $(document).bind("ajaxError", function(o, v, A, C) { | |
| console.log("AJAX Error."); | |
| try { | |
| if (v.status === 500) console.log("An Internal Server Error occured, it is possible a timeout was reached."); | |
| else v.status === 404 && console.log("The page you requested does not exist."); | |
| console.log(C.name, C.message); | |
| console.log("Line number " + C.lineNumber + " in " + C.fileName) | |
| } catch (q) {} | |
| }); | |
| $.fn.CEvent = function(o, v) { | |
| if (o.length <= 0) return false; | |
| $(this); | |
| var A = $(document), | |
| C = function() { | |
| console.log("Event Handler Plugin callback is missing") | |
| }; | |
| $.each(o, function(q, I) { | |
| if (I) { | |
| var K = I.selector ? I.selector : "", | |
| Q = I.data ? | |
| I.data : [], | |
| n = I.type ? I.type : "delegate", | |
| G = I.eventType ? I.eventType : "click", | |
| p = I.cb ? I.cb : C, | |
| t = I.skipevent ? I.skipevent : false, | |
| z = I.parent ? I.parent.attr ? I.parent : $(I.parent) : A; | |
| K = K !== "" ? K : ""; | |
| var D = function(M) { | |
| t || M.preventDefault(); | |
| return p.call(v, M, Q, this) | |
| }; | |
| if (n == "bind" || n == "live") { | |
| K = K.attr ? K : $(K); | |
| K.bind(G, D) | |
| } else n == "delegate" && z.delegate(K, G, D) | |
| } | |
| }) | |
| } | |
| }, | |
| console: function() { | |
| if (!window.console) { | |
| window.console = {}; | |
| var a = function() {}; | |
| $.each(["log", "debug", "info", "warn", "error", "time", "timeEnd", "group", "groupEnd"], function(b, | |
| d) { | |
| window.console[d] = a | |
| }) | |
| } | |
| }, | |
| touch: function() { | |
| Target.support.isTouch && $("body").addClass("ipad") | |
| } | |
| }; | |
| Target.init(); | |
| (function() { | |
| var a = this, | |
| b = a._, | |
| d = Array.prototype, | |
| f = Object.prototype, | |
| g = d.push, | |
| j = d.slice, | |
| l = d.concat, | |
| o = f.toString, | |
| v = f.hasOwnProperty; | |
| f = Array.isArray; | |
| var A = Object.keys, | |
| C = Function.prototype.bind, | |
| q = function(m) { | |
| if (m instanceof q) return m; | |
| if (!(this instanceof q)) return new q(m); | |
| this._wrapped = m | |
| }; | |
| if (typeof exports !== "undefined") { | |
| if (typeof module !== "undefined" && module.exports) exports = module.exports = q; | |
| exports._ = q | |
| } else a._ = q; | |
| q.VERSION = "1.7.0"; | |
| var I = function(m, u, y) { | |
| if (u === void 0) return m; | |
| switch (y == null ? 3 : y) { | |
| case 1: | |
| return function(H) { | |
| return m.call(u, | |
| H) | |
| }; | |
| case 2: | |
| return function(H, J) { | |
| return m.call(u, H, J) | |
| }; | |
| case 3: | |
| return function(H, J, R) { | |
| return m.call(u, H, J, R) | |
| }; | |
| case 4: | |
| return function(H, J, R, U) { | |
| return m.call(u, H, J, R, U) | |
| } | |
| } | |
| return function() { | |
| return m.apply(u, arguments) | |
| } | |
| }; | |
| q.iteratee = function(m, u, y) { | |
| if (m == null) return q.identity; | |
| if (q.isFunction(m)) return I(m, u, y); | |
| if (q.isObject(m)) return q.matches(m); | |
| return q.property(m) | |
| }; | |
| q.each = q.forEach = function(m, u, y) { | |
| if (m == null) return m; | |
| u = I(u, y); | |
| var H = m.length; | |
| if (H === +H) | |
| for (y = 0; y < H; y++) u(m[y], y, m); | |
| else { | |
| var J = q.keys(m); | |
| y = | |
| 0; | |
| for (H = J.length; y < H; y++) u(m[J[y]], J[y], m) | |
| } | |
| return m | |
| }; | |
| q.map = q.collect = function(m, u, y) { | |
| if (m == null) return []; | |
| u = q.iteratee(u, y); | |
| y = m.length !== +m.length && q.keys(m); | |
| for (var H = (y || m).length, J = Array(H), R, U = 0; U < H; U++) { | |
| R = y ? y[U] : U; | |
| J[U] = u(m[R], R, m) | |
| } | |
| return J | |
| }; | |
| q.reduce = q.foldl = q.inject = function(m, u, y, H) { | |
| if (m == null) m = []; | |
| u = I(u, H, 4); | |
| var J = m.length !== +m.length && q.keys(m), | |
| R = (J || m).length, | |
| U = 0, | |
| X; | |
| if (arguments.length < 3) { | |
| if (!R) throw new TypeError("Reduce of empty array with no initial value"); | |
| y = m[J ? J[U++] : U++] | |
| } | |
| for (; U < R; U++) { | |
| X = | |
| J ? J[U] : U; | |
| y = u(y, m[X], X, m) | |
| } | |
| return y | |
| }; | |
| q.reduceRight = q.foldr = function(m, u, y, H) { | |
| if (m == null) m = []; | |
| u = I(u, H, 4); | |
| var J = m.length !== +m.length && q.keys(m), | |
| R = (J || m).length, | |
| U; | |
| if (arguments.length < 3) { | |
| if (!R) throw new TypeError("Reduce of empty array with no initial value"); | |
| y = m[J ? J[--R] : --R] | |
| } | |
| for (; R--;) { | |
| U = J ? J[R] : R; | |
| y = u(y, m[U], U, m) | |
| } | |
| return y | |
| }; | |
| q.find = q.detect = function(m, u, y) { | |
| var H; | |
| u = q.iteratee(u, y); | |
| q.some(m, function(J, R, U) { | |
| if (u(J, R, U)) { | |
| H = J; | |
| return true | |
| } | |
| }); | |
| return H | |
| }; | |
| q.filter = q.select = function(m, u, y) { | |
| var H = []; | |
| if (m == null) return H; | |
| u = q.iteratee(u, y); | |
| q.each(m, function(J, R, U) { | |
| u(J, R, U) && H.push(J) | |
| }); | |
| return H | |
| }; | |
| q.reject = function(m, u, y) { | |
| return q.filter(m, q.negate(q.iteratee(u)), y) | |
| }; | |
| q.every = q.all = function(m, u, y) { | |
| if (m == null) return true; | |
| u = q.iteratee(u, y); | |
| y = m.length !== +m.length && q.keys(m); | |
| var H = (y || m).length, | |
| J, R; | |
| for (J = 0; J < H; J++) { | |
| R = y ? y[J] : J; | |
| if (!u(m[R], R, m)) return false | |
| } | |
| return true | |
| }; | |
| q.some = q.any = function(m, u, y) { | |
| if (m == null) return false; | |
| u = q.iteratee(u, y); | |
| y = m.length !== +m.length && q.keys(m); | |
| var H = (y || m).length, | |
| J, R; | |
| for (J = 0; J < H; J++) { | |
| R = y ? y[J] : J; | |
| if (u(m[R], R, m)) return true | |
| } | |
| return false | |
| }; | |
| q.contains = q.include = function(m, u) { | |
| if (m == null) return false; | |
| if (m.length !== +m.length) m = q.values(m); | |
| return q.indexOf(m, u) >= 0 | |
| }; | |
| q.invoke = function(m, u) { | |
| var y = j.call(arguments, 2), | |
| H = q.isFunction(u); | |
| return q.map(m, function(J) { | |
| return (H ? u : J[u]).apply(J, y) | |
| }) | |
| }; | |
| q.pluck = function(m, u) { | |
| return q.map(m, q.property(u)) | |
| }; | |
| q.where = function(m, u) { | |
| return q.filter(m, q.matches(u)) | |
| }; | |
| q.findWhere = function(m, u) { | |
| return q.find(m, q.matches(u)) | |
| }; | |
| q.max = function(m, u, y) { | |
| var H = -Infinity, | |
| J = -Infinity, | |
| R; | |
| if (u == null && m != null) { | |
| m = m.length === +m.length ? m : q.values(m); | |
| for (var U = 0, X = m.length; U < X; U++) { | |
| y = m[U]; | |
| if (y > H) H = y | |
| } | |
| } else { | |
| u = q.iteratee(u, y); | |
| q.each(m, function(ga, ja, la) { | |
| R = u(ga, ja, la); | |
| if (R > J || R === -Infinity && H === -Infinity) { | |
| H = ga; | |
| J = R | |
| } | |
| }) | |
| } | |
| return H | |
| }; | |
| q.min = function(m, u, y) { | |
| var H = Infinity, | |
| J = Infinity, | |
| R; | |
| if (u == null && m != null) { | |
| m = m.length === +m.length ? m : q.values(m); | |
| for (var U = 0, X = m.length; U < X; U++) { | |
| y = m[U]; | |
| if (y < H) H = y | |
| } | |
| } else { | |
| u = q.iteratee(u, y); | |
| q.each(m, function(ga, ja, la) { | |
| R = u(ga, ja, la); | |
| if (R < J || R === Infinity && H === Infinity) { | |
| H = ga; | |
| J = R | |
| } | |
| }) | |
| } | |
| return H | |
| }; | |
| q.shuffle = function(m) { | |
| m = m && m.length === +m.length ? m : q.values(m); | |
| for (var u = m.length, y = Array(u), H = 0, J; H < u; H++) { | |
| J = q.random(0, H); | |
| if (J !== H) y[H] = y[J]; | |
| y[J] = m[H] | |
| } | |
| return y | |
| }; | |
| q.sample = function(m, u, y) { | |
| if (u == null || y) { | |
| if (m.length !== +m.length) m = q.values(m); | |
| return m[q.random(m.length - 1)] | |
| } | |
| return q.shuffle(m).slice(0, Math.max(0, u)) | |
| }; | |
| q.sortBy = function(m, u, y) { | |
| u = q.iteratee(u, y); | |
| return q.pluck(q.map(m, function(H, J, R) { | |
| return { | |
| value: H, | |
| index: J, | |
| criteria: u(H, J, R) | |
| } | |
| }).sort(function(H, J) { | |
| var R = H.criteria, | |
| U = J.criteria; | |
| if (R !== U) { | |
| if (R > U || R === void 0) return 1; | |
| if (R < U || U === void 0) return -1 | |
| } | |
| return H.index - J.index | |
| }), "value") | |
| }; | |
| var K = function(m) { | |
| return function(u, y, H) { | |
| var J = {}; | |
| y = q.iteratee(y, H); | |
| q.each(u, function(R, U) { | |
| var X = y(R, U, u); | |
| m(J, R, X) | |
| }); | |
| return J | |
| } | |
| }; | |
| q.groupBy = K(function(m, u, y) { | |
| if (q.has(m, y)) m[y].push(u); | |
| else m[y] = [u] | |
| }); | |
| q.indexBy = K(function(m, u, y) { | |
| m[y] = u | |
| }); | |
| q.countBy = K(function(m, u, y) { | |
| if (q.has(m, y)) m[y] ++; | |
| else m[y] = 1 | |
| }); | |
| q.sortedIndex = function(m, u, y, H) { | |
| y = q.iteratee(y, H, 1); | |
| u = y(u); | |
| H = 0; | |
| for (var J = m.length; H < J;) { | |
| var R = H + J >>> 1; | |
| if (y(m[R]) < u) H = R + 1; | |
| else J = R | |
| } | |
| return H | |
| }; | |
| q.toArray = function(m) { | |
| if (!m) return []; | |
| if (q.isArray(m)) return j.call(m); | |
| if (m.length === +m.length) return q.map(m, q.identity); | |
| return q.values(m) | |
| }; | |
| q.size = function(m) { | |
| if (m == null) return 0; | |
| return m.length === +m.length ? m.length : q.keys(m).length | |
| }; | |
| q.partition = function(m, u, y) { | |
| u = q.iteratee(u, y); | |
| var H = [], | |
| J = []; | |
| q.each(m, function(R, U, X) { | |
| (u(R, U, X) ? H : J).push(R) | |
| }); | |
| return [H, J] | |
| }; | |
| q.first = q.head = q.take = function(m, u, y) { | |
| if (m != null) { | |
| if (u == null || y) return m[0]; | |
| if (u < 0) return []; | |
| return j.call(m, | |
| 0, u) | |
| } | |
| }; | |
| q.initial = function(m, u, y) { | |
| return j.call(m, 0, Math.max(0, m.length - (u == null || y ? 1 : u))) | |
| }; | |
| q.last = function(m, u, y) { | |
| if (m != null) { | |
| if (u == null || y) return m[m.length - 1]; | |
| return j.call(m, Math.max(m.length - u, 0)) | |
| } | |
| }; | |
| q.rest = q.tail = q.drop = function(m, u, y) { | |
| return j.call(m, u == null || y ? 1 : u) | |
| }; | |
| q.compact = function(m) { | |
| return q.filter(m, q.identity) | |
| }; | |
| var Q = function(m, u, y, H) { | |
| if (u && q.every(m, q.isArray)) return l.apply(H, m); | |
| for (var J = 0, R = m.length; J < R; J++) { | |
| var U = m[J]; | |
| if (!q.isArray(U) && !q.isArguments(U)) y || H.push(U); | |
| else u ? g.apply(H, | |
| U) : Q(U, u, y, H) | |
| } | |
| return H | |
| }; | |
| q.flatten = function(m, u) { | |
| return Q(m, u, false, []) | |
| }; | |
| q.without = function(m) { | |
| return q.difference(m, j.call(arguments, 1)) | |
| }; | |
| q.uniq = q.unique = function(m, u, y, H) { | |
| if (m == null) return []; | |
| if (!q.isBoolean(u)) { | |
| H = y; | |
| y = u; | |
| u = false | |
| } | |
| if (y != null) y = q.iteratee(y, H); | |
| H = []; | |
| for (var J = [], R = 0, U = m.length; R < U; R++) { | |
| var X = m[R]; | |
| if (u) { | |
| if (!R || J !== X) H.push(X); | |
| J = X | |
| } else if (y) { | |
| var ga = y(X, R, m); | |
| if (q.indexOf(J, ga) < 0) { | |
| J.push(ga); | |
| H.push(X) | |
| } | |
| } else q.indexOf(H, X) < 0 && H.push(X) | |
| } | |
| return H | |
| }; | |
| q.union = function() { | |
| return q.uniq(Q(arguments, | |
| true, true, [])) | |
| }; | |
| q.intersection = function(m) { | |
| if (m == null) return []; | |
| for (var u = [], y = arguments.length, H = 0, J = m.length; H < J; H++) { | |
| var R = m[H]; | |
| if (!q.contains(u, R)) { | |
| for (var U = 1; U < y; U++) | |
| if (!q.contains(arguments[U], R)) break; | |
| U === y && u.push(R) | |
| } | |
| } | |
| return u | |
| }; | |
| q.difference = function(m) { | |
| var u = Q(j.call(arguments, 1), true, true, []); | |
| return q.filter(m, function(y) { | |
| return !q.contains(u, y) | |
| }) | |
| }; | |
| q.zip = function(m) { | |
| if (m == null) return []; | |
| for (var u = q.max(arguments, "length").length, y = Array(u), H = 0; H < u; H++) y[H] = q.pluck(arguments, H); | |
| return y | |
| }; | |
| q.object = | |
| function(m, u) { | |
| if (m == null) return {}; | |
| for (var y = {}, H = 0, J = m.length; H < J; H++) | |
| if (u) y[m[H]] = u[H]; | |
| else y[m[H][0]] = m[H][1]; | |
| return y | |
| }; | |
| q.indexOf = function(m, u, y) { | |
| if (m == null) return -1; | |
| var H = 0, | |
| J = m.length; | |
| if (y) | |
| if (typeof y == "number") H = y < 0 ? Math.max(0, J + y) : y; | |
| else { | |
| H = q.sortedIndex(m, u); | |
| return m[H] === u ? H : -1 | |
| } | |
| for (; H < J; H++) | |
| if (m[H] === u) return H; | |
| return -1 | |
| }; | |
| q.lastIndexOf = function(m, u, y) { | |
| if (m == null) return -1; | |
| var H = m.length; | |
| if (typeof y == "number") H = y < 0 ? H + y + 1 : Math.min(H, y + 1); | |
| for (; --H >= 0;) | |
| if (m[H] === u) return H; | |
| return -1 | |
| }; | |
| q.range = function(m, | |
| u, y) { | |
| if (arguments.length <= 1) { | |
| u = m || 0; | |
| m = 0 | |
| } | |
| y = y || 1; | |
| for (var H = Math.max(Math.ceil((u - m) / y), 0), J = Array(H), R = 0; R < H; R++, m += y) J[R] = m; | |
| return J | |
| }; | |
| var n = function() {}; | |
| q.bind = function(m, u) { | |
| var y, H; | |
| if (C && m.bind === C) return C.apply(m, j.call(arguments, 1)); | |
| if (!q.isFunction(m)) throw new TypeError("Bind must be called on a function"); | |
| y = j.call(arguments, 2); | |
| return H = function() { | |
| if (!(this instanceof H)) return m.apply(u, y.concat(j.call(arguments))); | |
| n.prototype = m.prototype; | |
| var J = new n; | |
| n.prototype = null; | |
| var R = m.apply(J, y.concat(j.call(arguments))); | |
| if (q.isObject(R)) return R; | |
| return J | |
| } | |
| }; | |
| q.partial = function(m) { | |
| var u = j.call(arguments, 1); | |
| return function() { | |
| for (var y = 0, H = u.slice(), J = 0, R = H.length; J < R; J++) | |
| if (H[J] === q) H[J] = arguments[y++]; | |
| for (; y < arguments.length;) H.push(arguments[y++]); | |
| return m.apply(this, H) | |
| } | |
| }; | |
| q.bindAll = function(m) { | |
| var u, y = arguments.length, | |
| H; | |
| if (y <= 1) throw Error("bindAll must be passed function names"); | |
| for (u = 1; u < y; u++) { | |
| H = arguments[u]; | |
| m[H] = q.bind(m[H], m) | |
| } | |
| return m | |
| }; | |
| q.memoize = function(m, u) { | |
| var y = function(H) { | |
| var J = y.cache, | |
| R = u ? u.apply(this, arguments) : | |
| H; | |
| q.has(J, R) || (J[R] = m.apply(this, arguments)); | |
| return J[R] | |
| }; | |
| y.cache = {}; | |
| return y | |
| }; | |
| q.delay = function(m, u) { | |
| var y = j.call(arguments, 2); | |
| return setTimeout(function() { | |
| return m.apply(null, y) | |
| }, u) | |
| }; | |
| q.defer = function(m) { | |
| return q.delay.apply(q, [m, 1].concat(j.call(arguments, 1))) | |
| }; | |
| q.throttle = function(m, u, y) { | |
| var H, J, R, U = null, | |
| X = 0; | |
| y || (y = {}); | |
| var ga = function() { | |
| X = y.leading === false ? 0 : q.now(); | |
| U = null; | |
| R = m.apply(H, J); | |
| U || (H = J = null) | |
| }; | |
| return function() { | |
| var ja = q.now(); | |
| if (!X && y.leading === false) X = ja; | |
| var la = u - (ja - X); | |
| H = this; | |
| J = arguments; | |
| if (la <= 0 || la > u) { | |
| clearTimeout(U); | |
| U = null; | |
| X = ja; | |
| R = m.apply(H, J); | |
| U || (H = J = null) | |
| } else if (!U && y.trailing !== false) U = setTimeout(ga, la); | |
| return R | |
| } | |
| }; | |
| q.debounce = function(m, u, y) { | |
| var H, J, R, U, X, ga = function() { | |
| var ja = q.now() - U; | |
| if (ja < u && ja > 0) H = setTimeout(ga, u - ja); | |
| else { | |
| H = null; | |
| if (!y) { | |
| X = m.apply(R, J); | |
| H || (R = J = null) | |
| } | |
| } | |
| }; | |
| return function() { | |
| R = this; | |
| J = arguments; | |
| U = q.now(); | |
| var ja = y && !H; | |
| H || (H = setTimeout(ga, u)); | |
| if (ja) { | |
| X = m.apply(R, J); | |
| R = J = null | |
| } | |
| return X | |
| } | |
| }; | |
| q.wrap = function(m, u) { | |
| return q.partial(u, m) | |
| }; | |
| q.negate = function(m) { | |
| return function() { | |
| return !m.apply(this, | |
| arguments) | |
| } | |
| }; | |
| q.compose = function() { | |
| var m = arguments, | |
| u = m.length - 1; | |
| return function() { | |
| for (var y = u, H = m[u].apply(this, arguments); y--;) H = m[y].call(this, H); | |
| return H | |
| } | |
| }; | |
| q.after = function(m, u) { | |
| return function() { | |
| if (--m < 1) return u.apply(this, arguments) | |
| } | |
| }; | |
| q.before = function(m, u) { | |
| var y; | |
| return function() { | |
| if (--m > 0) y = u.apply(this, arguments); | |
| else u = null; | |
| return y | |
| } | |
| }; | |
| q.once = q.partial(q.before, 2); | |
| q.keys = function(m) { | |
| if (!q.isObject(m)) return []; | |
| if (A) return A(m); | |
| var u = [], | |
| y; | |
| for (y in m) q.has(m, y) && u.push(y); | |
| return u | |
| }; | |
| q.values = function(m) { | |
| for (var u = | |
| q.keys(m), y = u.length, H = Array(y), J = 0; J < y; J++) H[J] = m[u[J]]; | |
| return H | |
| }; | |
| q.pairs = function(m) { | |
| for (var u = q.keys(m), y = u.length, H = Array(y), J = 0; J < y; J++) H[J] = [u[J], m[u[J]]]; | |
| return H | |
| }; | |
| q.invert = function(m) { | |
| for (var u = {}, y = q.keys(m), H = 0, J = y.length; H < J; H++) u[m[y[H]]] = y[H]; | |
| return u | |
| }; | |
| q.functions = q.methods = function(m) { | |
| var u = [], | |
| y; | |
| for (y in m) q.isFunction(m[y]) && u.push(y); | |
| return u.sort() | |
| }; | |
| q.extend = function(m) { | |
| if (!q.isObject(m)) return m; | |
| for (var u, y, H = 1, J = arguments.length; H < J; H++) { | |
| u = arguments[H]; | |
| for (y in u) | |
| if (v.call(u, y)) m[y] = | |
| u[y] | |
| } | |
| return m | |
| }; | |
| q.pick = function(m, u, y) { | |
| var H = {}, | |
| J; | |
| if (m == null) return H; | |
| if (q.isFunction(u)) { | |
| u = I(u, y); | |
| for (J in m) { | |
| var R = m[J]; | |
| if (u(R, J, m)) H[J] = R | |
| } | |
| } else { | |
| R = l.apply([], j.call(arguments, 1)); | |
| m = Object(m); | |
| for (var U = 0, X = R.length; U < X; U++) { | |
| J = R[U]; | |
| if (J in m) H[J] = m[J] | |
| } | |
| } | |
| return H | |
| }; | |
| q.omit = function(m, u, y) { | |
| if (q.isFunction(u)) u = q.negate(u); | |
| else { | |
| var H = q.map(l.apply([], j.call(arguments, 1)), String); | |
| u = function(J, R) { | |
| return !q.contains(H, R) | |
| } | |
| } | |
| return q.pick(m, u, y) | |
| }; | |
| q.defaults = function(m) { | |
| if (!q.isObject(m)) return m; | |
| for (var u = 1, y = | |
| arguments.length; u < y; u++) { | |
| var H = arguments[u], | |
| J; | |
| for (J in H) | |
| if (m[J] === void 0) m[J] = H[J] | |
| } | |
| return m | |
| }; | |
| q.clone = function(m) { | |
| if (!q.isObject(m)) return m; | |
| return q.isArray(m) ? m.slice() : q.extend({}, m) | |
| }; | |
| q.tap = function(m, u) { | |
| u(m); | |
| return m | |
| }; | |
| var G = function(m, u, y, H) { | |
| if (m === u) return m !== 0 || 1 / m === 1 / u; | |
| if (m == null || u == null) return m === u; | |
| if (m instanceof q) m = m._wrapped; | |
| if (u instanceof q) u = u._wrapped; | |
| var J = o.call(m); | |
| if (J !== o.call(u)) return false; | |
| switch (J) { | |
| case "[object RegExp]": | |
| case "[object String]": | |
| return "" + m === "" + u; | |
| case "[object Number]": | |
| if (+m !== | |
| +m) return +u !== +u; | |
| return +m === 0 ? 1 / +m === 1 / u : +m === +u; | |
| case "[object Date]": | |
| case "[object Boolean]": | |
| return +m === +u | |
| } | |
| if (typeof m != "object" || typeof u != "object") return false; | |
| for (var R = y.length; R--;) | |
| if (y[R] === m) return H[R] === u; | |
| R = m.constructor; | |
| var U = u.constructor; | |
| if (R !== U && "constructor" in m && "constructor" in u && !(q.isFunction(R) && R instanceof R && q.isFunction(U) && U instanceof U)) return false; | |
| y.push(m); | |
| H.push(u); | |
| if (J === "[object Array]") { | |
| J = m.length; | |
| if (U = J === u.length) | |
| for (; J--;) | |
| if (!(U = G(m[J], u[J], y, H))) break | |
| } else { | |
| R = | |
| q.keys(m); | |
| J = R.length; | |
| if (U = q.keys(u).length === J) | |
| for (; J--;) { | |
| U = R[J]; | |
| if (!(U = q.has(u, U) && G(m[U], u[U], y, H))) break | |
| } | |
| } | |
| y.pop(); | |
| H.pop(); | |
| return U | |
| }; | |
| q.isEqual = function(m, u) { | |
| return G(m, u, [], []) | |
| }; | |
| q.isEmpty = function(m) { | |
| if (m == null) return true; | |
| if (q.isArray(m) || q.isString(m) || q.isArguments(m)) return m.length === 0; | |
| for (var u in m) | |
| if (q.has(m, u)) return false; | |
| return true | |
| }; | |
| q.isElement = function(m) { | |
| return !!(m && m.nodeType === 1) | |
| }; | |
| q.isArray = f || function(m) { | |
| return o.call(m) === "[object Array]" | |
| }; | |
| q.isObject = function(m) { | |
| var u = typeof m; | |
| return u === "function" || u === "object" && !!m | |
| }; | |
| q.each(["Arguments", "Function", "String", "Number", "Date", "RegExp"], function(m) { | |
| q["is" + m] = function(u) { | |
| return o.call(u) === "[object " + m + "]" | |
| } | |
| }); | |
| if (!q.isArguments(arguments)) q.isArguments = function(m) { | |
| return q.has(m, "callee") | |
| }; | |
| if (typeof /./ !== "function") q.isFunction = function(m) { | |
| return typeof m == "function" || false | |
| }; | |
| q.isFinite = function(m) { | |
| return isFinite(m) && !isNaN(parseFloat(m)) | |
| }; | |
| q.isNaN = function(m) { | |
| return q.isNumber(m) && m !== +m | |
| }; | |
| q.isBoolean = function(m) { | |
| return m === true || | |
| m === false || o.call(m) === "[object Boolean]" | |
| }; | |
| q.isNull = function(m) { | |
| return m === null | |
| }; | |
| q.isUndefined = function(m) { | |
| return m === void 0 | |
| }; | |
| q.has = function(m, u) { | |
| return m != null && v.call(m, u) | |
| }; | |
| q.noConflict = function() { | |
| a._ = b; | |
| return this | |
| }; | |
| q.identity = function(m) { | |
| return m | |
| }; | |
| q.constant = function(m) { | |
| return function() { | |
| return m | |
| } | |
| }; | |
| q.noop = function() {}; | |
| q.property = function(m) { | |
| return function(u) { | |
| return u[m] | |
| } | |
| }; | |
| q.matches = function(m) { | |
| var u = q.pairs(m), | |
| y = u.length; | |
| return function(H) { | |
| if (H == null) return !y; | |
| H = Object(H); | |
| for (var J = 0; J < y; J++) { | |
| var R = | |
| u[J], | |
| U = R[0]; | |
| if (R[1] !== H[U] || !(U in H)) return false | |
| } | |
| return true | |
| } | |
| }; | |
| q.times = function(m, u, y) { | |
| var H = Array(Math.max(0, m)); | |
| u = I(u, y, 1); | |
| for (y = 0; y < m; y++) H[y] = u(y); | |
| return H | |
| }; | |
| q.random = function(m, u) { | |
| if (u == null) { | |
| u = m; | |
| m = 0 | |
| } | |
| return m + Math.floor(Math.random() * (u - m + 1)) | |
| }; | |
| q.now = Date.now || function() { | |
| return (new Date).getTime() | |
| }; | |
| f = { | |
| "&": "&", | |
| "<": "<", | |
| ">": ">", | |
| '"': """, | |
| "'": "'", | |
| "`": "`" | |
| }; | |
| K = q.invert(f); | |
| var p = function(m) { | |
| var u = function(R) { | |
| return m[R] | |
| }, | |
| y = "(?:" + q.keys(m).join("|") + ")", | |
| H = RegExp(y), | |
| J = RegExp(y, "g"); | |
| return function(R) { | |
| R = R == null ? "" : "" + R; | |
| return H.test(R) ? R.replace(J, u) : R | |
| } | |
| }; | |
| q.escape = p(f); | |
| q.unescape = p(K); | |
| q.result = function(m, u) { | |
| if (m != null) { | |
| var y = m[u]; | |
| return q.isFunction(y) ? m[u]() : y | |
| } | |
| }; | |
| var t = 0; | |
| q.uniqueId = function(m) { | |
| var u = ++t + ""; | |
| return m ? m + u : u | |
| }; | |
| q.templateSettings = { | |
| evaluate: /<%([\s\S]+?)%>/g, | |
| interpolate: /<%=([\s\S]+?)%>/g, | |
| escape: /<%-([\s\S]+?)%>/g | |
| }; | |
| var z = /(.)^/, | |
| D = { | |
| "'": "'", | |
| "\\": "\\", | |
| "\r": "r", | |
| "\n": "n", | |
| "\u2028": "u2028", | |
| "\u2029": "u2029" | |
| }, | |
| M = /\\|'|\r|\n|\u2028|\u2029/g, | |
| B = function(m) { | |
| return "\\" + D[m] | |
| }; | |
| q.template = | |
| function(m, u, y) { | |
| if (!u && y) u = y; | |
| u = q.defaults({}, u, q.templateSettings); | |
| y = RegExp([(u.escape || z).source, (u.interpolate || z).source, (u.evaluate || z).source].join("|") + "|$", "g"); | |
| var H = 0, | |
| J = "__p+='"; | |
| m.replace(y, function(X, ga, ja, la, ka) { | |
| J += m.slice(H, ka).replace(M, B); | |
| H = ka + X.length; | |
| if (ga) J += "'+\n((__t=(" + ga + "))==null?'':_.escape(__t))+\n'"; | |
| else if (ja) J += "'+\n((__t=(" + ja + "))==null?'':__t)+\n'"; | |
| else if (la) J += "';\n" + la + "\n__p+='"; | |
| return X | |
| }); | |
| J += "';\n"; | |
| u.variable || (J = "with(obj||{}){\n" + J + "}\n"); | |
| J = "var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n" + | |
| J + "return __p;\n"; | |
| try { | |
| var R = new Function(u.variable || "obj", "_", J) | |
| } catch (U) { | |
| U.source = J; | |
| throw U; | |
| } | |
| y = function(X) { | |
| return R.call(this, X, q) | |
| }; | |
| y.source = "function(" + (u.variable || "obj") + "){\n" + J + "}"; | |
| return y | |
| }; | |
| q.chain = function(m) { | |
| m = q(m); | |
| m._chain = true; | |
| return m | |
| }; | |
| q.mixin = function(m) { | |
| q.each(q.functions(m), function(u) { | |
| var y = q[u] = m[u]; | |
| q.prototype[u] = function() { | |
| var H = [this._wrapped]; | |
| g.apply(H, arguments); | |
| H = y.apply(q, H); | |
| return this._chain ? q(H).chain() : H | |
| } | |
| }) | |
| }; | |
| q.mixin(q); | |
| q.each(["pop", "push", "reverse", "shift", "sort", "splice", | |
| "unshift" | |
| ], function(m) { | |
| var u = d[m]; | |
| q.prototype[m] = function() { | |
| var y = this._wrapped; | |
| u.apply(y, arguments); | |
| if ((m === "shift" || m === "splice") && y.length === 0) delete y[0]; | |
| return this._chain ? q(y).chain() : y | |
| } | |
| }); | |
| q.each(["concat", "join", "slice"], function(m) { | |
| var u = d[m]; | |
| q.prototype[m] = function() { | |
| var y = u.apply(this._wrapped, arguments); | |
| return this._chain ? q(y).chain() : y | |
| } | |
| }); | |
| q.prototype.value = function() { | |
| return this._wrapped | |
| }; | |
| typeof define === "function" && define.amd && define("underscore", [], function() { | |
| return q | |
| }) | |
| }).call(this); | |
| (function(a) { | |
| a.extend(a.fn, { | |
| validate: function(b) { | |
| if (this.length) { | |
| var d = a.data(this[0], "validator"); | |
| if (d) return d; | |
| d = new a.validator(b, this[0]); | |
| a.data(this[0], "validator", d); | |
| if (d.settings.onsubmit) { | |
| this.find("input, button").filter(".cancel").click(function() { | |
| d.cancelSubmit = true | |
| }); | |
| d.settings.submitHandler && this.find("input, button").filter(":submit").click(function() { | |
| d.submitButton = this | |
| }); | |
| this.submit(function(f) { | |
| function g() { | |
| a.browser.msie && parseInt(a.browser.version) == 7 && a(d.currentForm).find(".button").attr("disabled", | |
| "disabled").addClass("addtoCartDisabled"); | |
| if (d.settings.submitHandler) { | |
| if (d.submitButton) var j = a("<input type='hidden'/>").attr("name", d.submitButton.name).val(escape(d.submitButton.value)).appendTo(d.currentForm); | |
| d.settings.submitHandler.call(d, d.currentForm); | |
| d.submitButton && j.remove(); | |
| return false | |
| } | |
| return true | |
| } | |
| d.settings.debug && f.preventDefault(); | |
| if (d.cancelSubmit) { | |
| d.cancelSubmit = false; | |
| return g() | |
| } | |
| if (d.form()) { | |
| if (d.pendingRequest) { | |
| d.formSubmitted = true; | |
| return false | |
| } | |
| return g() | |
| } else return false | |
| }) | |
| } | |
| return d | |
| } else b && | |
| b.debug && window.console && console.warn("nothing selected, can't validate, returning nothing") | |
| }, | |
| valid: function() { | |
| if (this.length) | |
| if (a(this[0]).is("form")) return this.validate().form(); | |
| else { | |
| var b = true, | |
| d = a(this[0].form).validate(); | |
| this.each(function() { | |
| b &= d.element(this) | |
| }); | |
| return b | |
| } | |
| }, | |
| removeAttrs: function(b) { | |
| var d = {}, | |
| f = this; | |
| a.each(b.split(/\s/), function(g, j) { | |
| d[j] = f.attr(j); | |
| f.removeAttr(j) | |
| }); | |
| return d | |
| }, | |
| rules: function(b, d) { | |
| var f = this[0]; | |
| if (b) { | |
| var g = a.data(f.form, "validator").settings, | |
| j = g.rules, | |
| l = a.validator.staticRules(f); | |
| switch (b) { | |
| case "add": | |
| a.extend(l, a.validator.normalizeRule(d)); | |
| j[f.name] = l; | |
| if (d.messages) g.messages[f.name] = a.extend(g.messages[f.name], d.messages); | |
| break; | |
| case "remove": | |
| if (!d) { | |
| delete j[f.name]; | |
| return l | |
| } | |
| var o = {}; | |
| a.each(d.split(/\s/), function(v, A) { | |
| o[A] = l[A]; | |
| delete l[A] | |
| }); | |
| return o | |
| } | |
| } | |
| f = a.validator.normalizeRules(a.extend({}, a.validator.metadataRules(f), a.validator.classRules(f), a.validator.attributeRules(f), a.validator.staticRules(f)), f); | |
| if (f.required) { | |
| g = f.required; | |
| delete f.required; | |
| f = a.extend({ | |
| required: g | |
| }, | |
| f) | |
| } | |
| return f | |
| } | |
| }); | |
| a.extend(a.expr[":"], { | |
| blank: function(b) { | |
| return !a.trim("" + b.value) | |
| }, | |
| filled: function(b) { | |
| return !!a.trim("" + b.value) | |
| }, | |
| unchecked: function(b) { | |
| return !b.checked | |
| } | |
| }); | |
| a.validator = function(b, d) { | |
| this.settings = a.extend(true, {}, a.validator.defaults, b); | |
| this.currentForm = d; | |
| this.init() | |
| }; | |
| a.validator.format = function(b, d) { | |
| if (arguments.length == 1) return function() { | |
| var f = a.makeArray(arguments); | |
| f.unshift(b); | |
| return a.validator.format.apply(this, f) | |
| }; | |
| if (arguments.length > 2 && d.constructor != Array) d = a.makeArray(arguments).slice(1); | |
| if (d.constructor != Array) d = [d]; | |
| a.each(d, function(f, g) { | |
| b = b.replace(RegExp("\\{" + f + "\\}", "g"), g) | |
| }); | |
| return b | |
| }; | |
| a.extend(a.validator, { | |
| defaults: { | |
| messages: {}, | |
| groups: {}, | |
| rules: {}, | |
| errorClass: "error", | |
| validClass: "valid", | |
| errorElement: "label", | |
| focusInvalid: true, | |
| errorContainer: a([]), | |
| errorLabelContainer: a([]), | |
| onsubmit: true, | |
| ignore: [], | |
| ignoreTitle: false, | |
| onfocusin: function(b) { | |
| this.lastActive = b; | |
| if (this.settings.focusCleanup && !this.blockFocusCleanup) { | |
| this.settings.unhighlight && this.settings.unhighlight.call(this, b, this.settings.errorClass, | |
| this.settings.validClass); | |
| this.errorsFor(b).hide() | |
| } | |
| }, | |
| onfocusout: function(b) { | |
| if (!this.checkable(b) && (b.name in this.submitted || !this.optional(b))) this.element(b) | |
| }, | |
| onkeyup: function(b) { | |
| if (b.name in this.submitted || b == this.lastElement) this.element(b) | |
| }, | |
| onclick: function(b) { | |
| if (b.name in this.submitted) this.element(b); | |
| else b.parentNode.name in this.submitted && this.element(b.parentNode) | |
| }, | |
| highlight: function(b, d, f) { | |
| a(b).addClass(d).removeClass(f) | |
| }, | |
| unhighlight: function(b, d, f) { | |
| a(b).removeClass(d).addClass(f) | |
| } | |
| }, | |
| setDefaults: function(b) { | |
| a.extend(a.validator.defaults, b) | |
| }, | |
| messages: { | |
| required: "This field is required.", | |
| remote: "Please fix this field.", | |
| email: "Enter a valid email address.", | |
| url: "Please enter a valid URL.", | |
| date: "Please enter a valid date.", | |
| dateISO: "Please enter a valid date (ISO).", | |
| number: "Please enter a valid number.", | |
| digits: "Please enter only digits.", | |
| creditcard: "Please enter a valid credit card number.", | |
| equalTo: "Please enter the same value again.", | |
| accept: "Please enter a value with a valid extension.", | |
| maxlength: a.validator.format("Please enter no more than {0} characters."), | |
| minlength: a.validator.format("Please enter at least {0} characters."), | |
| rangelength: a.validator.format("Please enter a value between {0} and {1} characters long."), | |
| range: a.validator.format("Please enter a value between {0} and {1}."), | |
| max: a.validator.format("Please enter a value less than or equal to {0}."), | |
| min: a.validator.format("Please enter a value greater than or equal to {0}.") | |
| }, | |
| autoCreateRanges: false, | |
| prototype: { | |
| init: function() { | |
| function b(g) { | |
| var j = | |
| a.data(this[0].form, "validator"); | |
| g = "on" + g.type.replace(/^validate/, ""); | |
| j.settings[g] && j.settings[g].call(j, this[0]) | |
| } | |
| this.labelContainer = a(this.settings.errorLabelContainer); | |
| this.errorContext = this.labelContainer.length && this.labelContainer || a(this.currentForm); | |
| this.containers = a(this.settings.errorContainer).add(this.settings.errorLabelContainer); | |
| this.submitted = {}; | |
| this.valueCache = {}; | |
| this.pendingRequest = 0; | |
| this.pending = {}; | |
| this.invalid = {}; | |
| this.reset(); | |
| var d = this.groups = {}; | |
| a.each(this.settings.groups, function(g, | |
| j) { | |
| a.each(j.split(/\s/), function(l, o) { | |
| d[o] = g | |
| }) | |
| }); | |
| var f = this.settings.rules; | |
| a.each(f, function(g, j) { | |
| f[g] = a.validator.normalizeRule(j) | |
| }); | |
| a(this.currentForm).validateDelegate(":text, :password, select, textarea", "focusin focusout keyup", b).validateDelegate(":radio, :checkbox, :file, select, option", "click", b); | |
| this.settings.invalidHandler && a(this.currentForm).bind("invalid-form.validate", this.settings.invalidHandler) | |
| }, | |
| form: function() { | |
| this.checkForm(); | |
| a.extend(this.submitted, this.errorMap); | |
| this.invalid = | |
| a.extend({}, this.errorMap); | |
| this.valid() || a(this.currentForm).triggerHandler("invalid-form", [this]); | |
| this.showErrors(); | |
| return this.valid() | |
| }, | |
| checkForm: function() { | |
| this.prepareForm(); | |
| for (var b = 0, d = this.currentElements = this.elements(); d[b]; b++) this.check(d[b]); | |
| return this.valid() | |
| }, | |
| element: function(b) { | |
| this.lastElement = b = this.clean(b); | |
| this.prepareElement(b); | |
| this.currentElements = a(b); | |
| var d = this.check(b); | |
| if (d) delete this.invalid[b.name]; | |
| else this.invalid[b.name] = true; | |
| if (!this.numberOfInvalids()) this.toHide = | |
| this.toHide.add(this.containers); | |
| this.showErrors(); | |
| return d | |
| }, | |
| showErrors: function(b) { | |
| if (b) { | |
| a.extend(this.errorMap, b); | |
| this.errorList = []; | |
| for (var d in b) this.errorList.push({ | |
| message: b[d], | |
| element: this.findByName(d)[0] | |
| }); | |
| this.successList = a.grep(this.successList, function(f) { | |
| return !(f.name in b) | |
| }) | |
| } | |
| this.settings.showErrors ? this.settings.showErrors.call(this, this.errorMap, this.errorList) : this.defaultShowErrors() | |
| }, | |
| resetForm: function() { | |
| a.fn.resetForm && a(this.currentForm).resetForm(); | |
| this.submitted = {}; | |
| this.prepareForm(); | |
| this.hideErrors(); | |
| this.elements().removeClass(this.settings.errorClass) | |
| }, | |
| numberOfInvalids: function() { | |
| return this.objectLength(this.invalid) | |
| }, | |
| objectLength: function(b) { | |
| var d = 0, | |
| f; | |
| for (f in b) d++; | |
| return d | |
| }, | |
| hideErrors: function() { | |
| this.addWrapper(this.toHide).hide() | |
| }, | |
| valid: function() { | |
| return this.size() == 0 | |
| }, | |
| size: function() { | |
| return this.errorList.length | |
| }, | |
| focusInvalid: function() { | |
| if (this.settings.focusInvalid) try { | |
| a(this.findLastActive() || this.errorList.length && this.errorList[0].element || []).filter(":visible").focus().trigger("focusin") | |
| } catch (b) {} | |
| }, | |
| findLastActive: function() { | |
| var b = this.lastActive; | |
| return b && a.grep(this.errorList, function(d) { | |
| return d.element.name == b.name | |
| }).length == 1 && b | |
| }, | |
| elements: function() { | |
| var b = this, | |
| d = {}; | |
| return a([]).add(this.currentForm.elements).filter(":input").not(":submit, :reset, :image, [disabled]").not(this.settings.ignore).filter(function() { | |
| !this.name && b.settings.debug && window.console && console.error("%o has no name assigned", this); | |
| if (this.name in d || !b.objectLength(a(this).rules())) return false; | |
| return d[this.name] = true | |
| }) | |
| }, | |
| clean: function(b) { | |
| return a(b)[0] | |
| }, | |
| errors: function() { | |
| return a(this.settings.errorElement + "." + this.settings.errorClass, this.errorContext) | |
| }, | |
| reset: function() { | |
| this.successList = []; | |
| this.errorList = []; | |
| this.errorMap = {}; | |
| this.toShow = a([]); | |
| this.toHide = a([]); | |
| this.currentElements = a([]) | |
| }, | |
| prepareForm: function() { | |
| this.reset(); | |
| this.toHide = this.errors().add(this.containers) | |
| }, | |
| prepareElement: function(b) { | |
| this.reset(); | |
| this.toHide = this.errorsFor(b) | |
| }, | |
| check: function(b) { | |
| b = this.clean(b); | |
| if (this.checkable(b)) b = this.findByName(b.name)[0]; | |
| var d = a(b).rules(), | |
| f = false; | |
| for (method in d) { | |
| var g = { | |
| method: method, | |
| parameters: d[method] | |
| }; | |
| try { | |
| var j = a.validator.methods[method].call(this, b.value.replace(/\r/g, ""), b, g.parameters); | |
| if (j == "dependency-mismatch") f = true; | |
| else { | |
| f = false; | |
| if (j == "pending") { | |
| this.toHide = this.toHide.not(this.errorsFor(b)); | |
| return | |
| } | |
| if (!j) { | |
| this.formatAndAdd(b, g); | |
| return false | |
| } | |
| } | |
| } catch (l) { | |
| this.settings.debug && window.console && console.log("exception occured when checking element " + b.id + ", check the '" + g.method + "' method", l); | |
| throw l; | |
| } | |
| } | |
| if (!f) { | |
| this.objectLength(d) && | |
| this.successList.push(b); | |
| return true | |
| } | |
| }, | |
| customMetaMessage: function(b, d) { | |
| if (a.metadata) { | |
| var f = this.settings.meta ? a(b).metadata()[this.settings.meta] : a(b).metadata(); | |
| return f && f.messages && f.messages[d] | |
| } | |
| }, | |
| customMessage: function(b, d) { | |
| var f = this.settings.messages[b]; | |
| return f && (f.constructor == String ? f : f[d]) | |
| }, | |
| findDefined: function() { | |
| for (var b = 0; b < arguments.length; b++) | |
| if (arguments[b] !== undefined) return arguments[b] | |
| }, | |
| defaultMessage: function(b, d) { | |
| return this.findDefined(this.customMessage(b.name, d), this.customMetaMessage(b, | |
| d), !this.settings.ignoreTitle && b.title || undefined, a.validator.messages[d], "<strong>Warning: No message defined for " + b.name + "</strong>") | |
| }, | |
| formatAndAdd: function(b, d) { | |
| var f = this.defaultMessage(b, d.method), | |
| g = /\$?\{(\d+)\}/g; | |
| if (typeof f == "function") f = f.call(this, d.parameters, b); | |
| else if (g.test(f)) f = jQuery.format(f.replace(g, "{$1}"), d.parameters); | |
| this.errorList.push({ | |
| message: f, | |
| element: b | |
| }); | |
| this.errorMap[b.name] = f; | |
| this.submitted[b.name] = f | |
| }, | |
| addWrapper: function(b) { | |
| if (this.settings.wrapper) b = b.add(b.parent(this.settings.wrapper)); | |
| return b | |
| }, | |
| defaultShowErrors: function() { | |
| for (var b = 0; this.errorList[b]; b++) { | |
| var d = this.errorList[b]; | |
| this.settings.highlight && this.settings.highlight.call(this, d.element, this.settings.errorClass, this.settings.validClass); | |
| this.showLabel(d.element, d.message) | |
| } | |
| if (this.errorList.length) this.toShow = this.toShow.add(this.containers); | |
| if (this.settings.success) | |
| for (b = 0; this.successList[b]; b++) this.showLabel(this.successList[b]); | |
| if (this.settings.unhighlight) { | |
| b = 0; | |
| for (d = this.validElements(); d[b]; b++) this.settings.unhighlight.call(this, | |
| d[b], this.settings.errorClass, this.settings.validClass) | |
| } | |
| this.toHide = this.toHide.not(this.toShow); | |
| this.hideErrors(); | |
| this.addWrapper(this.toShow).show() | |
| }, | |
| validElements: function() { | |
| return this.currentElements.not(this.invalidElements()) | |
| }, | |
| invalidElements: function() { | |
| return a(this.errorList).map(function() { | |
| return this.element | |
| }) | |
| }, | |
| showLabel: function(b, d) { | |
| var f = this.errorsFor(b); | |
| if (f.length) { | |
| f.removeClass().addClass(this.settings.errorClass); | |
| f.attr("generated") && f.html(d) | |
| } else { | |
| f = a("<" + this.settings.errorElement + | |
| "/>").attr({ | |
| "for": this.idOrName(b), | |
| generated: true, | |
| id: a(b).attr("id") + self.settings.errorIdAddendum | |
| }).addClass(this.settings.errorClass).html(d || ""); | |
| if (this.settings.wrapper) f = f.hide().show().wrap("<" + this.settings.wrapper + "/>").parent(); | |
| this.labelContainer.append(f).length || (this.settings.errorPlacement ? this.settings.errorPlacement(f, a(b)) : f.insertAfter(b)) | |
| } | |
| if (!d && this.settings.success) { | |
| f.text(""); | |
| typeof this.settings.success == "string" ? f.addClass(this.settings.success) : this.settings.success(f) | |
| } | |
| this.toShow = | |
| this.toShow.add(f) | |
| }, | |
| errorsFor: function(b) { | |
| var d = this.idOrName(b); | |
| return this.errors().filter(function() { | |
| return a(this).attr("for") == d | |
| }) | |
| }, | |
| idOrName: function(b) { | |
| return this.groups[b.name] || (this.checkable(b) ? b.name : b.id || b.name) | |
| }, | |
| checkable: function(b) { | |
| return /radio|checkbox/i.test(b.type) | |
| }, | |
| findByName: function(b) { | |
| var d = this.currentForm; | |
| return a(document.getElementsByName(b)).map(function(f, g) { | |
| return g.form == d && g.name == b && g || null | |
| }) | |
| }, | |
| getLength: function(b, d) { | |
| switch (d.nodeName.toLowerCase()) { | |
| case "select": | |
| return a("option:selected", | |
| d).length; | |
| case "input": | |
| if (this.checkable(d)) return this.findByName(d.name).filter(":checked").length | |
| } | |
| return b.length | |
| }, | |
| depend: function(b, d) { | |
| return this.dependTypes[typeof b] ? this.dependTypes[typeof b](b, d) : true | |
| }, | |
| dependTypes: { | |
| "boolean": function(b) { | |
| return b | |
| }, | |
| string: function(b, d) { | |
| return !!a(b, d.form).length | |
| }, | |
| "function": function(b, d) { | |
| return b(d) | |
| } | |
| }, | |
| optional: function(b) { | |
| return !a.validator.methods.required.call(this, a.trim(b.value), b) && "dependency-mismatch" | |
| }, | |
| startRequest: function(b) { | |
| if (!this.pending[b.name]) { | |
| this.pendingRequest++; | |
| this.pending[b.name] = true | |
| } | |
| }, | |
| stopRequest: function(b, d) { | |
| this.pendingRequest--; | |
| if (this.pendingRequest < 0) this.pendingRequest = 0; | |
| delete this.pending[b.name]; | |
| if (d && this.pendingRequest == 0 && this.formSubmitted && this.form()) { | |
| a(this.currentForm).submit(); | |
| this.formSubmitted = false | |
| } else if (!d && this.pendingRequest == 0 && this.formSubmitted) { | |
| a(this.currentForm).triggerHandler("invalid-form", [this]); | |
| this.formSubmitted = false | |
| } | |
| }, | |
| previousValue: function(b) { | |
| return a.data(b, "previousValue") || a.data(b, "previousValue", { | |
| old: null, | |
| valid: true, | |
| message: this.defaultMessage(b, "remote") | |
| }) | |
| } | |
| }, | |
| classRuleSettings: { | |
| required: { | |
| required: true | |
| }, | |
| email: { | |
| email: true | |
| }, | |
| url: { | |
| url: true | |
| }, | |
| date: { | |
| date: true | |
| }, | |
| dateISO: { | |
| dateISO: true | |
| }, | |
| dateDE: { | |
| dateDE: true | |
| }, | |
| number: { | |
| number: true | |
| }, | |
| numberDE: { | |
| numberDE: true | |
| }, | |
| digits: { | |
| digits: true | |
| }, | |
| creditcard: { | |
| creditcard: true | |
| } | |
| }, | |
| addClassRules: function(b, d) { | |
| b.constructor == String ? this.classRuleSettings[b] = d : a.extend(this.classRuleSettings, b) | |
| }, | |
| classRules: function(b) { | |
| var d = {}; | |
| (b = a(b).attr("class")) && a.each(b.split(" "), function() { | |
| this in a.validator.classRuleSettings && | |
| a.extend(d, a.validator.classRuleSettings[this]) | |
| }); | |
| return d | |
| }, | |
| attributeRules: function(b) { | |
| var d = {}; | |
| b = a(b); | |
| for (method in a.validator.methods) { | |
| var f = b.attr(method); | |
| if (f) d[method] = f | |
| } | |
| d.maxlength && /-1|2147483647|524288/.test(d.maxlength) && delete d.maxlength; | |
| return d | |
| }, | |
| metadataRules: function(b) { | |
| if (!a.metadata) return {}; | |
| var d = a.data(b.form, "validator").settings.meta; | |
| return d ? a(b).metadata()[d] : a(b).metadata() | |
| }, | |
| staticRules: function(b) { | |
| var d = {}, | |
| f = a.data(b.form, "validator"); | |
| if (f.settings.rules) d = a.validator.normalizeRule(f.settings.rules[b.name]) || {}; | |
| return d | |
| }, | |
| normalizeRules: function(b, d) { | |
| a.each(b, function(f, g) { | |
| if (g === false) delete b[f]; | |
| else if (g.param || g.depends) { | |
| var j = true; | |
| switch (typeof g.depends) { | |
| case "string": | |
| j = !!a(g.depends, d.form).length; | |
| break; | |
| case "function": | |
| j = g.depends.call(d, d) | |
| } | |
| if (j) b[f] = g.param !== undefined ? g.param : true; | |
| else delete b[f] | |
| } | |
| }); | |
| a.each(b, function(f, g) { | |
| b[f] = a.isFunction(g) ? g(d) : g | |
| }); | |
| a.each(["minlength", "maxlength", "min", "max"], function() { | |
| if (b[this]) b[this] = Number(b[this]) | |
| }); | |
| a.each(["rangelength", "range"], function() { | |
| if (b[this]) b[this] = [Number(b[this][0]), Number(b[this][1])] | |
| }); | |
| if (a.validator.autoCreateRanges) { | |
| if (b.min && b.max) { | |
| b.range = [b.min, b.max]; | |
| delete b.min; | |
| delete b.max | |
| } | |
| if (b.minlength && b.maxlength) { | |
| b.rangelength = [b.minlength, b.maxlength]; | |
| delete b.minlength; | |
| delete b.maxlength | |
| } | |
| } | |
| b.messages && delete b.messages; | |
| return b | |
| }, | |
| normalizeRule: function(b) { | |
| if (typeof b == "string") { | |
| var d = {}; | |
| a.each(b.split(/\s/), function() { | |
| d[this] = true | |
| }); | |
| b = d | |
| } | |
| return b | |
| }, | |
| addMethod: function(b, d, f) { | |
| a.validator.methods[b] = d; | |
| a.validator.messages[b] = f != undefined ? f : a.validator.messages[b]; | |
| d.length < 3 && a.validator.addClassRules(b, a.validator.normalizeRule(b)) | |
| }, | |
| methods: { | |
| required: function(b, d, f) { | |
| if (!this.depend(f, d)) return "dependency-mismatch"; | |
| switch (d.nodeName.toLowerCase()) { | |
| case "select": | |
| return (b = a(d).val()) && b.length > 0; | |
| case "input": | |
| if (this.checkable(d)) return this.getLength(b, d) > 0; | |
| default: | |
| return a.trim(b).length > 0 | |
| } | |
| }, | |
| remote: function(b, d, f) { | |
| if (this.optional(d)) return "dependency-mismatch"; | |
| var g = this.previousValue(d); | |
| this.settings.messages[d.name] || (this.settings.messages[d.name] = {}); | |
| g.originalMessage = | |
| this.settings.messages[d.name].remote; | |
| this.settings.messages[d.name].remote = g.message; | |
| f = typeof f == "string" && { | |
| url: f | |
| } || f; | |
| if (g.old !== b) { | |
| g.old = b; | |
| var j = this; | |
| this.startRequest(d); | |
| var l = {}; | |
| l[d.name] = b; | |
| a.ajax(a.extend(true, { | |
| url: f, | |
| mode: "abort", | |
| port: "validate" + d.name, | |
| dataType: "json", | |
| data: l, | |
| success: function(o) { | |
| j.settings.messages[d.name].remote = g.originalMessage; | |
| var v = o === true; | |
| if (v) { | |
| var A = j.formSubmitted; | |
| j.prepareElement(d); | |
| j.formSubmitted = A; | |
| j.successList.push(d); | |
| j.showErrors() | |
| } else { | |
| A = {}; | |
| o = g.message = o || j.defaultMessage(d, | |
| "remote"); | |
| A[d.name] = a.isFunction(o) ? o(b) : o; | |
| j.showErrors(A) | |
| } | |
| g.valid = v; | |
| j.stopRequest(d, v) | |
| } | |
| }, f)); | |
| return "pending" | |
| } else if (this.pending[d.name]) return "pending"; | |
| return g.valid | |
| }, | |
| minlength: function(b, d, f) { | |
| return this.optional(d) || this.getLength(a.trim(b), d) >= f | |
| }, | |
| maxlength: function(b, d, f) { | |
| return this.optional(d) || this.getLength(a.trim(b), d) <= f | |
| }, | |
| rangelength: function(b, d, f) { | |
| b = this.getLength(a.trim(b), d); | |
| return this.optional(d) || b >= f[0] && b <= f[1] | |
| }, | |
| min: function(b, d, f) { | |
| return this.optional(d) || b >= f | |
| }, | |
| max: function(b, | |
| d, f) { | |
| return this.optional(d) || b <= f | |
| }, | |
| range: function(b, d, f) { | |
| return this.optional(d) || b >= f[0] && b <= f[1] | |
| }, | |
| email: function(b, d) { | |
| return this.optional(d) || /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i.test(a.trim(b)) | |
| }, | |
| url: function(b, d) { | |
| return this.optional(d) || /^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i.test(b) | |
| }, | |
| date: function(b, d) { | |
| return this.optional(d) || !/Invalid|NaN/.test(new Date(b)) | |
| }, | |
| dateISO: function(b, d) { | |
| return this.optional(d) || /^\d{4}[\/-]\d{1,2}[\/-]\d{1,2}$/.test(b) | |
| }, | |
| number: function(b, d) { | |
| return this.optional(d) || /^-?(?:\d+|\d{1,3}(?:,\d{3})+)(?:\.\d+)?$/.test(b) | |
| }, | |
| digits: function(b, d) { | |
| return this.optional(d) || /^\d+$/.test(b) | |
| }, | |
| creditcard: function(b, d) { | |
| if (this.optional(d)) return "dependency-mismatch"; | |
| if (b.indexOf(" ") != "-1") return false; | |
| if (b.match("^[-]+[0-9]{4}$")) return true; | |
| var f = a("#ccType").val() || | |
| a("#cardType").val(); | |
| if (typeof f == "undefined") return false; | |
| if (f != null || f != "") { | |
| var g = []; | |
| g.Visa = /^4\d{3}-?\d{4}-?\d{4}-?\d{4}$/; | |
| g.MasterCard = /^5[1-5]\d{2}-?\d{4}-?\d{4}-?\d{4}$/; | |
| g.Discover = /^(6|3)[0,2,4,5,6,8,9]\d{2}-?\d{4}-?\d{4}-?(\d{2}|\d{4})$/; | |
| g["American Express"] = /^3[4,7]\d{13}$/; | |
| g.Diners = /^3[0,6,8]\d{12}$/; | |
| g["Target Card"] = /^(?:)\d{10}$/; | |
| g["Target Debit Card"] = /^6(?:)\d{15}$/; | |
| g["Target Business Card"] = /^(?:)\d{10}$/; | |
| g["Target Visa Credit Card"] = /^4352-?37\d{2}-?\d{4}-?\d{4}$/; | |
| g["Target RBC MasterCard"] = | |
| /^529083\d{2}-?\d{4}-?\d{4}$/; | |
| b = b.replace(/\s+/g, "").replace(/\//g, "").replace(/\-+/g, "").replace(/^\s+|s+$/g, ""); | |
| if (/[^0-9]+/.test(b)) return false; | |
| f = g[f]; | |
| if (typeof f == "undefined") return false; | |
| return f.test(b) ? true : false | |
| } else { | |
| var j = f = 0; | |
| g = false; | |
| b = b.replace(/\D/g, ""); | |
| for (var l = b.length - 1; l >= 0; l--) { | |
| j = b.charAt(l); | |
| j = parseInt(j, 10); | |
| if (g) | |
| if ((j *= 2) > 9) j -= 9; | |
| f += j; | |
| g = !g | |
| } | |
| return f % 10 == 0 | |
| } | |
| }, | |
| accept: function(b, d, f) { | |
| f = typeof f == "string" ? f.replace(/,/g, "|") : "png|jpe?g|gif"; | |
| return this.optional(d) || b.match(RegExp(".(" + | |
| f + ")$", "i")) | |
| }, | |
| equalTo: function(b, d, f) { | |
| f = a(f).unbind(".validate-equalTo").bind("blur.validate-equalTo", function() { | |
| a(d).valid() | |
| }); | |
| return b == f.val() | |
| }, | |
| equalToCaseInsensitive: function(b, d, f) { | |
| f = a(f).unbind(".validate-equalTo").bind("blur.validate-equalTo", function() { | |
| a(d).valid() | |
| }); | |
| return b.toLowerCase() == f.val().toLowerCase() | |
| } | |
| } | |
| }); | |
| a.format = a.validator.format | |
| })(jQuery); | |
| (function(a) { | |
| var b = a.ajax, | |
| d = {}; | |
| a.ajax = function(f) { | |
| f = a.extend(f, a.extend({}, a.ajaxSettings, f)); | |
| var g = f.port; | |
| if (f.mode == "abort") { | |
| d[g] && d[g].abort(); | |
| return d[g] = b.apply(this, arguments) | |
| } | |
| return b.apply(this, arguments) | |
| } | |
| })(jQuery); | |
| (function(a) { | |
| !jQuery.event.special.focusin && !jQuery.event.special.focusout && document.addEventListener && a.each({ | |
| focus: "focusin", | |
| blur: "focusout" | |
| }, function(b, d) { | |
| function f(g) { | |
| g = a.event.fix(g); | |
| g.type = d; | |
| return a.event.handle.call(this, g) | |
| } | |
| a.event.special[d] = { | |
| setup: function() { | |
| this.addEventListener(b, f, true) | |
| }, | |
| teardown: function() { | |
| this.removeEventListener(b, f, true) | |
| }, | |
| handler: function(g) { | |
| arguments[0] = a.event.fix(g); | |
| arguments[0].type = d; | |
| return a.event.handle.apply(this, arguments) | |
| } | |
| } | |
| }); | |
| a.extend(a.fn, { | |
| validateDelegate: function(b, | |
| d, f) { | |
| return this.bind(d, function(g) { | |
| var j = a(g.target); | |
| if (j.is(b)) return f.apply(j, arguments) | |
| }) | |
| } | |
| }) | |
| })(jQuery); | |
| $.validator.addMethod("validFormatPhoneNumber", function(a, b) { | |
| a = a.replace(/\s+/g, ""); | |
| return this.optional(b) || a.length > 9 && a.match(/^(\([1-9]\d{2}\))[1-9]\d{2}-\d{4}$/) | |
| }); | |
| $.validator.addMethod("validPhoneNumber", function(a, b) { | |
| a = a.replace(/\s+/g, ""); | |
| return this.optional(b) || a.length > 9 && a.match(/^(1-?)?(\([2-9]\d{2}\)|[2-9]\d{2})-?[2-9]\d{2}-?\d{4}$/) | |
| }); | |
| $.validator.addMethod("validDate", function(a, b) { | |
| var d = /^(0[1-9]|1[012])\/(0[1-9]|[12][0-9]|3[01])\/(19|20)\d\d$/; | |
| if (a === "MM/DD/YYYY" && !this.submitAttempted) return true; | |
| d.test(a); | |
| return this.optional(b) || d.test(a) ? new Date(a) : false | |
| }); | |
| $.validator.addMethod("validDateAfterTodayuptoFive", function(a, b) { | |
| var d = false; | |
| if (/^\d{1,2}\/\d{1,2}\/\d{4}$/.test(a)) { | |
| var f = a.split("/"); | |
| d = parseInt(f[1], 10); | |
| var g = parseInt(f[0], 10); | |
| f = parseInt(f[2], 10); | |
| d = new Date(f, g - 1, d); | |
| g = new Date; | |
| currentMonth = g.getMonth(); | |
| currentYear = g.getFullYear() + 3; | |
| currentYear2 = g.getFullYear(); | |
| inputDay = g.getDate() / 1; | |
| g = new Date(currentYear, currentMonth, inputDay); | |
| e = new Date(currentYear2, currentMonth, inputDay); | |
| d = d > g || d < e ? false : true | |
| } else d = false; | |
| return this.optional(b) || d | |
| }); | |
| $.validator.addMethod("validPhone", function(a) { | |
| return a.match(/^\(\d{3}\)(\s?|\-)\d{3}\-\d{4}$/) || a.match(/^\d{3}\.\d{3}\.\d{4}$/) || a.match(/^\d{3}\-\d{3}\-\d{4}$/) || a.match(/^\d{3}\s\d{3}\s\d{4}$/) || a.match(/^\d{10}$/) | |
| }); | |
| $.validator.addMethod("extraPunctuation", function(a) { | |
| return a.match(/^[a-zA-Z0-9\,\#\-\'\.\s\/]*$/) | |
| }); | |
| $.validator.addMethod("validFirstName", function(a) { | |
| return a.match(/^[a-zA-Z0-9\-\'\.\s]*$/) | |
| }); | |
| $.validator.addMethod("validDateLotCode", function(a) { | |
| return a.match(/^[a-zA-Z0-9\-\s]*$/) | |
| }); | |
| $.validator.addMethod("validExpiryDateLotCode", function(a) { | |
| return a.match(/^[a-zA-Z0-9\-\:\s]*$/) | |
| }); | |
| $.validator.addMethod("validNetWeight", function(a) { | |
| return a.match(/^[a-zA-Z0-9\-\.\s]*$/) | |
| }); | |
| $.validator.addMethod("validLastName", function(a) { | |
| return a.match(/^[a-zA-Z0-9\s]*$/) | |
| }, "Make sure your name is typed correctly."); | |
| $.validator.addMethod("zipCode", function(a) { | |
| return a.match(/(^\d{5}(-\d{4})?$)/) | |
| }); | |
| $.validator.addMethod("internationalZipCode", function(a) { | |
| return a.match(/^[a-zA-Z0-9-\s]*$/) | |
| }); | |
| $.validator.addMethod("internationalNumericZipCode", function(a) { | |
| return a.match(/^(\d){1}[\d\-\s]+(\d){1}$/g) || a.match(/\//g) | |
| }); | |
| $.validator.addMethod("zipOrCity", function(a) { | |
| return /^[0-9]*[1-9]+$/.test(a) ? a.length == 5 ? true : false : /^[0]*$/.test(a) ? false : true | |
| }); | |
| $.validator.addMethod("validName", function(a) { | |
| return a.match(/^[a-zA-Z ]*$/) | |
| }); | |
| $.validator.addMethod("validMiddleName", function(a) { | |
| return a.match(/^[a-zA-Z ]*$/) | |
| }); | |
| $.validator.addMethod("validImageFile", function(a) { | |
| return a.match(/(^.+\.(([jJ][pP][eE]?[gG])|([gG][iI][fF])|([pP][nN][gG]))$)/) | |
| }); | |
| $.validator.addMethod("validTextArea", function(a) { | |
| return a.match(/^[^<>]*$/) | |
| }); | |
| $.validator.addMethod("poboxstring", function(a) { | |
| return a.match(/^((?!(?=.*?\b[P|p]\b)(?=.*?\b[O|o]\b)(?=.*?\b[B|b]ox\b).*$).)/) | |
| }, "Make sure your first name is typed correctly."); | |
| $.validator.addMethod("isCommentStarted", function() { | |
| var a = $("#createReview #title").val(), | |
| b = $("#createReview #review").val(); | |
| if (a !== "") return b === ""; | |
| else if (b !== "") return a === "" | |
| }); | |
| $.validator.addMethod("validPassword", function(a, b) { | |
| return this.optional(b) || a.length >= 8 && (/\d/.test(a) || /[A-Z]/.test(a) || /\W/.test(a)) | |
| }); | |
| $.validator.addMethod("loginRegex", function(a, b) { | |
| return this.optional(b) || /^[^ \xC0-\xFF\'\!\s]$/.test(a) | |
| }); | |
| $.validator.addMethod("iszipcodeStarted", function() { | |
| var a = $("#finditinaStore #Zip").val(), | |
| b = $("#finditinaStore #City").val(); | |
| if (a === "") return b === ""; | |
| else if (b === "") return a === "" | |
| }); | |
| $.validator.addMethod("iscityStarted", function() { | |
| var a = $("#finditinaStore #City").val(), | |
| b = $("#finditinaStore #State").val(); | |
| if (a === "") return b !== ""; | |
| else if (a !== "") return b === "" | |
| }); | |
| $.validator.addMethod("emails", function(a, b) { | |
| var d = true, | |
| f = false, | |
| g = a.split(RegExp("\\s*,\\s*", "gi")); | |
| if (g.length > 1) { | |
| for (var j = 0; j < g.length; j++) { | |
| a = g[j]; | |
| d = jQuery.validator.methods.email.call(this, a, b); | |
| if (parseInt(j) + 1 === g.length && d) f = true | |
| } | |
| d = f | |
| } else d = jQuery.validator.methods.email.call(this, a, b); | |
| return d | |
| }); | |
| $.validator.addMethod("quantity", function(a) { | |
| return /^[0]*[1-9]+[0-9]*$/.test(a) | |
| }, "invalid quantity"); | |
| $.validator.addClassRules("quantity", { | |
| quantity: true | |
| }); | |
| $.validator.addClassRules("note", { | |
| maxlength: 255, | |
| messages: { | |
| maxlength: "A note cannot be over 255 characters" | |
| } | |
| }); | |
| $.validator.addClassRules("customItemName", { | |
| required: true, | |
| minlength: 2, | |
| messages: { | |
| minlength: "more than one character please" | |
| } | |
| }); | |
| $.validator.addMethod("group", function(a, b) { | |
| var d = $(this.currentForm), | |
| f = $(b).attr("name"), | |
| g = this.groups, | |
| j = g[f], | |
| l = [], | |
| o = true; | |
| $.each(g, function(v) { | |
| g[v] === j && l.push(v) | |
| }); | |
| $.each(l, function(v, A) { | |
| if (d.find('*[name="' + A + '"]').val() === "") o = false | |
| }); | |
| return o | |
| }); | |
| $.validator.addMethod("requiredIfEmpty", function(a, b) { | |
| var d = $(this.currentForm), | |
| f = $(b).attr("name"), | |
| g = this.groups, | |
| j = g[f], | |
| l = [], | |
| o = false; | |
| $.each(g, function(v) { | |
| g[v] === j && l.push(v) | |
| }); | |
| $.each(l, function(v, A) { | |
| if (d.find('*[name="' + A + '"]').val() !== "") o = true | |
| }); | |
| return o | |
| }); | |
| $.validator.addMethod("validMonth", function() { | |
| var a = true, | |
| b = parseInt($("#BirthdayDay, #day").val()), | |
| d = parseInt($("#year").val()), | |
| f = $("#BirthdayMonth, #month").val(); | |
| if (b > 29 && f == "February") a = false; | |
| if (b > 30 && (f == "April" || f == "June" || f == "September" || f == "November")) a = false; | |
| if (!isNaN(b) && f == "" || isNaN(b) && f !== "") a = false; | |
| if (d != "" && (!isNaN(d) && f == "" || isNaN(d) && b == "")) a = false; | |
| return a | |
| }, "Invalid Date of Birth"); | |
| $.validator.addMethod("validDayForMonth", function() { | |
| var a = true, | |
| b = parseInt($("#BirthdayDay, #day").val()), | |
| d = parseInt($("#year").val()), | |
| f = $("#BirthdayMonth, #month").val(); | |
| if (b > 29 && f == "February") a = false; | |
| if (b > 30 && (f == "April" || f == "June" || f == "September" || f == "November")) a = false; | |
| if (isNaN(b) && f != "") a = false; | |
| if (d != "" && (!isNaN(d) && f == "" || isNaN(d) && b == "")) a = false; | |
| return a | |
| }, "Invalid Day"); | |
| $.validator.addMethod("validMonthForDay", function() { | |
| var a = true, | |
| b = parseInt($("#BirthdayDay, #day").val()), | |
| d = parseInt($("#year").val()), | |
| f = $("#BirthdayMonth, #month").val(); | |
| if (b > 29 && f == "February") a = false; | |
| if (b > 30 && (f == "April" || f == "June" || f == "September" || f == "November")) a = false; | |
| if (!isNaN(b) && f == "") a = false; | |
| if (d != "" && (!isNaN(d) && f == "" || isNaN(d) && b == "")) a = false; | |
| return a | |
| }, "Invalid Month"); | |
| $.validator.addMethod("validYear", function() { | |
| var a = true, | |
| b = parseInt($("#day").val()), | |
| d = $("#month").val(), | |
| f = $("#year").val(); | |
| if (d == "February" && b == 29) | |
| if (f % 4 != 0 || f % 100 == 0 && f % 400 != 0) a = false; | |
| if (!isNaN(b) && d == "" || isNaN(b) && d !== "") a = false; | |
| if (f != "" && (!isNaN(f) && d == "" || isNaN(f) && b == "")) a = false; | |
| if (f == "") a = false; | |
| return a | |
| }, "Invalid Date of Birth"); | |
| $.extend($.validator.prototype, { | |
| submitAttempted: false, | |
| form: function() { | |
| var a = $(this.currentForm), | |
| b = jQuery.Event("validated"); | |
| this.submitAttempted = true; | |
| this.checkForm(); | |
| $.extend(this.submitted, this.errorMap); | |
| this.invalid = $.extend({}, this.errorMap); | |
| if (this.valid()) b.valid = true; | |
| else { | |
| a.triggerHandler("invalid-form", [this]); | |
| b.valid = false | |
| } | |
| a.trigger(b); | |
| this.showErrors(); | |
| return this.valid() | |
| }, | |
| focusInvalid: function() { | |
| var a = $(this.currentForm); | |
| if (this.settings.focusInvalid) { | |
| if (!a.hasClass("no-summary")) return a.find(".error-heading").focus(); | |
| try { | |
| $(this.findLastActive() || this.errorList.length && this.errorList[0].element || []).filter(":visible").focus().trigger("focusin") | |
| } catch (b) {} | |
| } | |
| } | |
| }); | |
| $.validator.setDefaults({ | |
| errorElement: "p", | |
| errorClass: "error-message", | |
| invalidHandler: function(a, b) { | |
| var d = $(a.currentTarget); | |
| $.each(b.errorList, function(f, g) { | |
| var j = $(g.element); | |
| j.is("input[type=password]") && j.val(""); | |
| setTimeout(function() { | |
| $("p.error-message").attr("role", ""); | |
| $(document).trigger("updateBuffer.framework"); | |
| if ($("h3.error-heading").length > 0 && $("#Login-container").css("display") == "none") $("h3.error-heading").attr({ | |
| tabindex: -1 | |
| }).focus(); | |
| else if ($("p.error-message:first").prev().hasClass("swatchcolor")) $("ul.swatches li:first img:first").attr({ | |
| tabindex: -1 | |
| }).focus().next().attr({ | |
| role: "alert" | |
| }); | |
| else if ($("p.error-message:first").prev().prev().hasClass("sizeSelection")) $("select.sizeSelection").attr({ | |
| tabindex: -1 | |
| }).focus().next().next().attr({ | |
| role: "alert" | |
| }); | |
| else $("#month").length != 1 && $("p.error-message:first").prev().attr({ | |
| tabindex: -1 | |
| }).focus().next().attr({ | |
| role: "alert" | |
| }); | |
| if ($("#strengthRul").length == 1) { | |
| $(".PwdStrengthTxt").html("<strong>Strength: </strong>"); | |
| $(".passwordStrengthBar span").remove(); | |
| $("#strengthRul ul li span").remove() | |
| } | |
| }, 100) | |
| }); | |
| b.settings.invalidSubmit = true; | |
| d.find(".error-summary").remove(); | |
| $.hideCurtain() | |
| }, | |
| showErrors: function(a, b) { | |
| var d, f = this, | |
| g = $(this.currentForm), | |
| j = g.hasClass("no-summary") !== true, | |
| l = "", | |
| o = function(C) { | |
| C.preventDefault(); | |
| if ($.browser.msie && $.browser.version == 7) { | |
| C = $(C.target).attr("href").split("#"); | |
| typeof C[1] != "undefined" && $("#" + C[1]).focus() | |
| } else $($(C.target).attr("href")).focus() | |
| }; | |
| l = function(C) { | |
| var q, I = ""; | |
| $.each(C, function(K, Q) { | |
| var n = $(Q.element); | |
| q = n.attr("type") === "radio" || n.attr("type") === "checkbox" ? n.attr("id") : n.attr("name"); | |
| I += $(".ie").length != 0 ? '<li><a onclick=$("#' + | |
| q + '").focus() href="javascript:void(0)">' + Q.message + "</a></li>" : '<li><a href="#' + q + '">' + Q.message + "</a></li>" | |
| }); | |
| return I | |
| }; | |
| var v = function(C, q) { | |
| var I = f.errorsFor(C); | |
| I.text(); | |
| if (I.length) { | |
| I.removeClass().addClass(f.settings.errorClass); | |
| q !== undefined && I.data("valid", false); | |
| I.attr("generated") && I.html(q) | |
| } else { | |
| I = $("<" + f.settings.errorElement + "/>").addClass(f.settings.errorClass).html(q || "").attr({ | |
| "for": f.idOrName(C), | |
| generated: true, | |
| role: "alert", | |
| id: $(C).attr("id") + f.settings.errorIdAddendum | |
| }); | |
| if (f.settings.wrapper) I = | |
| I.hide().show().wrap("<" + f.settings.wrapper + "/>").parent(); | |
| f.labelContainer.append(I).length || (f.settings.errorPlacement ? f.settings.errorPlacement(I, $(C)) : I.insertAfter(C)) | |
| } | |
| if (!q && f.settings.success) { | |
| I.text(""); | |
| typeof f.settings.success == "string" ? I.addClass(f.settings.success) : f.settings.success(I) | |
| } | |
| f.toShow = f.toShow.add(I) | |
| }, | |
| A = function(C) { | |
| var q = j && g.attr("data-summary-rel"), | |
| I = q && g.find(q) || g; | |
| C = $(C); | |
| if (q) C.insertBefore(I); | |
| else if ($(".combinedError-Summary").length == 1) { | |
| I.prepend(C); | |
| C.hide() | |
| } else I.prepend(C) | |
| }; | |
| $.each(f.settings.groups, function(C, q) { | |
| var I = q.split(/\s/); | |
| $.each(I, function(K, Q) { | |
| g.find('*[name="' + Q + '"]').data("validator-group", C) | |
| }) | |
| }); | |
| g.trigger("errors-loaded", a); | |
| (function() { | |
| for (var C = 0; b[C]; C++) { | |
| var q = b[C]; | |
| f.settings.highlight && f.settings.highlight.call(f, q.element, f.settings.errorClass, f.settings.validClass); | |
| v(q.element, q.message) | |
| } | |
| if (b.length) f.toShow = f.toShow.add(f.containers); | |
| if (f.settings.success) | |
| for (C = 0; f.successList[C]; C++) v(f.successList[C]); | |
| if (f.settings.unhighlight) { | |
| C = 0; | |
| for (q = f.validElements(); q[C]; C++) f.settings.unhighlight.call(f, | |
| q[C], f.settings.errorClass, f.settings.validClass) | |
| } | |
| f.toHide = f.toHide.not(f.toShow); | |
| f.hideErrors(); | |
| f.addWrapper(f.toShow).show(); | |
| setTimeout(function() { | |
| $("input").removeAttr("tabindex") | |
| }, 1E3) | |
| })(); | |
| f.submitAttempted && $.each(b, function(C, q) { | |
| $(q.element).parents(".input-field").addClass("error-item") | |
| }); | |
| if (f.submitAttempted && j) { | |
| if (f.settings.errorLabelContainer.length && b.length > 0) { | |
| d = f.settings.errorLabelContainer; | |
| l = l(b); | |
| if (!g.find(d).length) { | |
| if (d.indexOf("#") === 0) A('<div id="' + d.split("#")[1] + '"/>'); | |
| else d.indexOf(".") === | |
| 0 && A('<div class="' + d.split(".")[1] + '"/>'); | |
| g.find(d).html('<h3 class="error-heading" tabindex="-1">Please address the following:</h3><div class="error-list"><ol>' + l + "</ol></div>") | |
| } | |
| } else if (!g.find(".error-summary").length && b.length > 0) { | |
| d = ".error-summary"; | |
| l = l(b); | |
| A('<div class="error-summary"/>'); | |
| g.find(d).html('<h3 class="error-heading" tabindex="-1">Please address the following:</h3><div class="error-list"><ol>' + l + "</ol></div>"); | |
| if ($("#photoUploadContainer .combinedError-Summary").length == 1) { | |
| $(".combinedError-Summary").hide(); | |
| $("#photoUploadContainer .combinedError-Summary").addClass("active").html('<h3 class="error-heading" tabindex="-1">Please address the following:</h3><div class="error-list"><ol>' + l + "</ol></div>") | |
| } else { | |
| $(".combinedError-Summary").addClass("active").html('<h3 class="error-heading" tabindex="-1">Please address the following:</h3><div class="error-list"><ol>' + l + "</ol></div>"); | |
| $(".combinedError-Summary").show(); | |
| $("h3.error-heading").focus() | |
| } | |
| setTimeout(function() { | |
| focuElem = g.find("h3.error-heading"); | |
| focuElem.focus() | |
| }, | |
| 100) | |
| } | |
| g.trigger("error-summary-loaded"); | |
| $("div.error-summary ol li").validateDelegate("a", "click", o) | |
| } else b[0] !== undefined && g.trigger("error-inline-loaded", b) | |
| }, | |
| errorPlacement: function(a, b) { | |
| if (a.text().length) { | |
| b.parents("#giftcard").length >= 1 && b.parents(".input-step").length >= 1 && b.parents(".input-step").find(".newerrorfield").html(a); | |
| if (b.hasClass("before-error-item")) b.parents(".input-step").before(a).prev().wrap('<div class="before-error-item"/>'); | |
| else if (b.hasClass("input-error-before")) a.attr("role", | |
| "alert").insertBefore(b); | |
| else if (b.parents().hasClass("input-group")) | |
| if (b.parents(".input-group").find(".input-group-title").length) b.parents(".tileInfo.narrow").length && b.parents(".input-group").find("p.error-message").length ? b.parents(".input-group").find("p.error-message:last").after(a) : b.parents(".input-group").find(".input-group-title").after(a); | |
| else b.parent().hasClass("input-step") ? b.parent().append(a) : b.parents(".input-group").prepend(a); | |
| else if (b.data("validator-group") || b.next().length) b.parents(".input-step").append(a); | |
| else if ((b.is('input[type="radio"]') || b.is('input[type="checkbox"]')) && b.next("label").length) b.next("label").after(a); | |
| else b.is("textarea") ? b.prev("label").after(a) : a.insertAfter(b); | |
| setTimeout(function() { | |
| $("p.error-message").length == 1 ? $("p.error-message").attr("role", "polite") : $("p.error-message").attr("role", ""); | |
| $(document).trigger("updateBuffer.framework"); | |
| if (!($("h3.error-heading").length > 0 && $("#Login-container").css("display") == "none")) | |
| if ($("p.error-message:first").prev().hasClass("swatchcolor")) $("ul.swatches li:first img:first").attr({ | |
| tabindex: -1 | |
| }).focus(); | |
| else if ($("p.error-message:first").prev().prev().hasClass("sizeSelection")) $("select.sizeSelection").attr({ | |
| tabindex: -1 | |
| }).focus(); | |
| else $("#month").length != 1 && $("p.error-message:first").prev().attr({ | |
| tabindex: -1 | |
| }).focus() | |
| }, 100) | |
| } | |
| }, | |
| success: function(a) { | |
| a.remove(); | |
| a.data("valid") || a.data("valid", true).attr({ | |
| role: "alert", | |
| "aria-live": "rude" | |
| }) | |
| } | |
| }); | |
| (function(a) { | |
| a.fn.extend({ | |
| accessibleCalendar: function(f) { | |
| return this.each(function() { | |
| new a.AccessibleCalendar(this, f) | |
| }) | |
| } | |
| }); | |
| a.AccessibleCalendar = function(f, g) { | |
| this.options = a.extend({}, { | |
| eventName: "", | |
| format: "m/d/Y", | |
| calendars: 2, | |
| starts: 7, | |
| position: "right", | |
| prevText: "Previous Month", | |
| nextText: "Next Month", | |
| onBeforeShow: "", | |
| onChange: "", | |
| onRender: "", | |
| dateFormat: "mm/dd/yyyy", | |
| defaultCalendarInputValue: "MM/DD/YYYY", | |
| accessibleLinkText: "i want to enter the date manually", | |
| max_years: 3, | |
| recurringPriceFlag: false | |
| }, g || {}); | |
| this.$element = a(f); | |
| this.InitializeCalendar(f) | |
| }; | |
| a.extend(a.AccessibleCalendar.prototype, { | |
| InitializeCalendar: function(f) { | |
| this.$element.DatePicker(this.GetCalendarConfig(f)).attr({ | |
| "aria-live": "polite", | |
| "aria-atomic": "false", | |
| "aria-relevant": "all", | |
| "aria-busy": "false" | |
| }).bind("click", function(g) { | |
| a(g.target).DatePickerHide() | |
| }) | |
| }, | |
| GetCalendarConfig: function() { | |
| var f = this, | |
| g = this.$element, | |
| j = g.val(); | |
| Date.format = f.options.dateFormat; | |
| var l = new Date, | |
| o = new Date, | |
| v = f.options.max_years; | |
| o.setFullYear(l.getFullYear() + v); | |
| if (g.hasClass("pastDate")) { | |
| var A = new Date; | |
| A.setFullYear(l.getFullYear() - v) | |
| } else { | |
| A = new Date; | |
| A = A.setDate(l.getDate()) | |
| } | |
| if (j == f.options.defaultCalendarInputValue || j == "" || isNaN(new Date(j))) j = l.asString(); | |
| l = function() { | |
| g.val() == f.options.defaultCalendarInputValue || isNaN(new Date(g.val())) ? g.DatePickerSetDate(j, true) : g.DatePickerSetDate(g.val(), true) | |
| }; | |
| v = function(I) { | |
| g.val(I).attr("aria-busy", "false").DatePickerHide().focus().siblings("a.calendarIcon").removeClass("selected") | |
| }; | |
| var C = function(I) { | |
| var K = A; | |
| return { | |
| disabled: I.valueOf() < | |
| K.valueOf() || I.valueOf() > o.valueOf(), | |
| className: false | |
| } | |
| }, | |
| q = function() { | |
| g.attr("aria-busy", "true") | |
| }; | |
| return { | |
| eventName: "", | |
| format: f.options.format, | |
| date: j, | |
| current: j, | |
| last: o, | |
| prevLast: A, | |
| calendars: f.options.calendars, | |
| starts: f.options.starts, | |
| position: f.options.position, | |
| prev: f.options.prevText, | |
| next: f.options.nextText, | |
| accessibleLinkText: f.options.accessibleLinkText, | |
| onBeforeShow: f.options.onBeforeShow != "" ? f.options.onBeforeShow : l, | |
| onChange: f.options.onChange != "" ? f.options.onChange : v, | |
| onRender: f.options.onRender != "" ? | |
| f.options.onRender : C, | |
| onShow: f.options.onShow != "" ? f.options.onShow : q, | |
| recurringPriceFlag: f.options.recurringPriceFlag | |
| } | |
| } | |
| }); | |
| (function() { | |
| Date.dayNames = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]; | |
| Date.abbrDayNames = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]; | |
| Date.monthNames = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]; | |
| Date.abbrMonthNames = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]; | |
| Date.firstDayOfWeek = 0; | |
| Date.format = "dd/mm/yyyy"; | |
| (function() { | |
| function f(j, l) { | |
| Date.prototype[j] || (Date.prototype[j] = l) | |
| } | |
| f("isLeapYear", function() { | |
| var j = this.getFullYear(); | |
| return j % 4 == 0 && j % 100 != 0 || j % 400 == 0 | |
| }); | |
| f("isWeekend", function() { | |
| return this.getDay() == 0 || this.getDay() == 6 | |
| }); | |
| f("isWeekDay", function() { | |
| return !this.isWeekend() | |
| }); | |
| f("getDaysInMonth", function() { | |
| return [31, this.isLeapYear() ? 29 : 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][this.getMonth()] | |
| }); | |
| f("getDayName", function(j) { | |
| return j ? Date.abbrDayNames[this.getDay()] : | |
| Date.dayNames[this.getDay()] | |
| }); | |
| f("getMonthName", function(j) { | |
| return j ? Date.abbrMonthNames[this.getMonth()] : Date.monthNames[this.getMonth()] | |
| }); | |
| f("getDayOfYear", function() { | |
| var j = new Date("1/1/" + this.getFullYear()); | |
| return Math.floor((this.getTime() - j.getTime()) / 864E5) | |
| }); | |
| f("getWeekOfYear", function() { | |
| return Math.ceil(this.getDayOfYear() / 7) | |
| }); | |
| f("setDayOfYear", function(j) { | |
| this.setMonth(0); | |
| this.setDate(j); | |
| return this | |
| }); | |
| f("addYears", function(j) { | |
| this.setFullYear(this.getFullYear() + j); | |
| return this | |
| }); | |
| f("addMonths", | |
| function(j) { | |
| var l = this.getDate(); | |
| this.setMonth(this.getMonth() + j); | |
| l > this.getDate() && this.addDays(-this.getDate()); | |
| return this | |
| }); | |
| f("addDays", function(j) { | |
| this.setTime(this.getTime() + j * 864E5); | |
| return this | |
| }); | |
| f("addHours", function(j) { | |
| this.setHours(this.getHours() + j); | |
| return this | |
| }); | |
| f("addMinutes", function(j) { | |
| this.setMinutes(this.getMinutes() + j); | |
| return this | |
| }); | |
| f("addSeconds", function(j) { | |
| this.setSeconds(this.getSeconds() + j); | |
| return this | |
| }); | |
| f("zeroTime", function() { | |
| this.setMilliseconds(0); | |
| this.setSeconds(0); | |
| this.setMinutes(0); | |
| this.setHours(0); | |
| return this | |
| }); | |
| f("asString", function(j) { | |
| j = j || Date.format; | |
| j = j.split("mm").length > 1 ? j.split("mmmm").join(this.getMonthName(false)).split("mmm").join(this.getMonthName(true)).split("mm").join(g(this.getMonth() + 1)) : j.split("m").join(this.getMonth() + 1); | |
| return j = j.split("yyyy").join(this.getFullYear()).split("yy").join((this.getFullYear() + "").substring(2)).split("dd").join(g(this.getDate())).split("d").join(this.getDate()) | |
| }); | |
| Date.fromString = function(j) { | |
| var l = Date.format, | |
| o = new Date("01/01/1970"); | |
| if (j == "") return o; | |
| j = j.toLowerCase(); | |
| for (var v = "", A = [], C = /(dd?d?|mm?m?|yy?yy?)+([^(m|d|y)])?/g, q; | |
| (q = C.exec(l)) != null;) { | |
| switch (q[1]) { | |
| case "d": | |
| case "dd": | |
| case "m": | |
| case "mm": | |
| case "yy": | |
| case "yyyy": | |
| v += "(\\d+\\d?\\d?\\d?)+"; | |
| A.push(q[1].substr(0, 1)); | |
| break; | |
| case "mmm": | |
| v += "([a-z]{3})"; | |
| A.push("M") | |
| } | |
| if (q[2]) v += q[2] | |
| } | |
| j = j.match(RegExp(v)); | |
| if (j == null) return o; | |
| else | |
| for (l = 0; l < A.length; l++) { | |
| v = j[l + 1]; | |
| switch (A[l]) { | |
| case "d": | |
| o.setDate(v); | |
| break; | |
| case "m": | |
| o.setMonth(Number(v) - 1); | |
| break; | |
| case "M": | |
| for (C = 0; C < Date.abbrMonthNames.length; C++) | |
| if (Date.abbrMonthNames[C].toLowerCase() == | |
| v) break; | |
| o.setMonth(C); | |
| break; | |
| case "y": | |
| o.setYear(v) | |
| } | |
| } | |
| return o | |
| }; | |
| var g = function(j) { | |
| j = "0" + j; | |
| return j.substring(j.length - 2) | |
| } | |
| })() | |
| })(); | |
| var b = function() { | |
| var f = { | |
| years: "datepickerViewYears", | |
| moths: "datepickerViewMonths", | |
| days: "datepickerViewDays" | |
| }, | |
| g = { | |
| wrapper: '<div class="datepicker"><div class="datepickerBorderT" /><div class="datepickerBorderB" /><div class="datepickerBorderL" /><div class="datepickerBorderR" /><div class="datepickerBorderTL" /><div class="datepickerBorderTR" /><div class="datepickerBorderBL" /><div class="datepickerBorderBR" /><div class="datepickerContainer"><table cellspacing="0" cellpadding="0"><tbody><tr></tr></tbody></table></div></div>', | |
| head: ["<td>", '<table cellspacing="0" cellpadding="0">', "<thead>", "<tr>", '<th class="datepickerGoPrev"><a href="#"><span class="screen-reader-only"><%=prev%></span><span><</span></a></th>', '<th colspan="5" class="datepickerMonth"><span></span></th>', '<th class="datepickerGoNext"><a href="#"><span class="screen-reader-only"><%=next%></span><span>></span></a></th>', "</tr>", '<tr class="datepickerDoW">', "<th><span><%=day1%></span></th>", "<th><span><%=day2%></span></th>", "<th><span><%=day3%></span></th>", | |
| "<th><span><%=day4%></span></th>", "<th><span><%=day5%></span></th>", "<th><span><%=day6%></span></th>", "<th><span><%=day7%></span></th>", "</tr>", "</thead>", "</table></td>" | |
| ], | |
| space: '<td class="datepickerSpace"><div></div></td>', | |
| days: ['<tbody class="datepickerDays">', "<tr>", '<td class="<%=weeks[0].days[0].classname%>"><a href="#"><%=weeks[0].days[0].accessibilityText%></a></td>', '<td class="<%=weeks[0].days[1].classname%>"><a href="#"><%=weeks[0].days[1].accessibilityText%></a></td>', '<td class="<%=weeks[0].days[2].classname%>"><a href="#"><%=weeks[0].days[2].accessibilityText%></a></td>', | |
| '<td class="<%=weeks[0].days[3].classname%>"><a href="#"><%=weeks[0].days[3].accessibilityText%></a></td>', '<td class="<%=weeks[0].days[4].classname%>"><a href="#"><%=weeks[0].days[4].accessibilityText%></a></td>', '<td class="<%=weeks[0].days[5].classname%>"><a href="#"><%=weeks[0].days[5].accessibilityText%></a></td>', '<td class="<%=weeks[0].days[6].classname%> last"><a href="#"><%=weeks[0].days[6].accessibilityText%></a></td>', "</tr>", "<tr>", '<td class="<%=weeks[1].days[0].classname%>"><a href="#"><%=weeks[1].days[0].accessibilityText%></a></td>', | |
| '<td class="<%=weeks[1].days[1].classname%>"><a href="#"><%=weeks[1].days[1].accessibilityText%></a></td>', '<td class="<%=weeks[1].days[2].classname%>"><a href="#"><%=weeks[1].days[2].accessibilityText%></a></td>', '<td class="<%=weeks[1].days[3].classname%>"><a href="#"><%=weeks[1].days[3].accessibilityText%></a></td>', '<td class="<%=weeks[1].days[4].classname%>"><a href="#"><%=weeks[1].days[4].accessibilityText%></a></td>', '<td class="<%=weeks[1].days[5].classname%>"><a href="#"><%=weeks[1].days[5].accessibilityText%></a></td>', | |
| '<td class="<%=weeks[1].days[6].classname%> last"><a href="#"><%=weeks[1].days[6].accessibilityText%></a></td>', "</tr>", "<tr>", '<td class="<%=weeks[2].days[0].classname%>"><a href="#"><%=weeks[2].days[0].accessibilityText%></a></td>', '<td class="<%=weeks[2].days[1].classname%>"><a href="#"><%=weeks[2].days[1].accessibilityText%></a></td>', '<td class="<%=weeks[2].days[2].classname%>"><a href="#"><%=weeks[2].days[2].accessibilityText%></a></td>', '<td class="<%=weeks[2].days[3].classname%>"><a href="#"><%=weeks[2].days[3].accessibilityText%></a></td>', | |
| '<td class="<%=weeks[2].days[4].classname%>"><a href="#"><%=weeks[2].days[4].accessibilityText%></a></td>', '<td class="<%=weeks[2].days[5].classname%>"><a href="#"><%=weeks[2].days[5].accessibilityText%></a></td>', '<td class="<%=weeks[2].days[6].classname%> last"><a href="#"><%=weeks[2].days[6].accessibilityText%></a></td>', "</tr>", "<tr>", '<td class="<%=weeks[3].days[0].classname%>"><a href="#"><%=weeks[3].days[0].accessibilityText%></a></td>', '<td class="<%=weeks[3].days[1].classname%>"><a href="#"><%=weeks[3].days[1].accessibilityText%></a></td>', | |
| '<td class="<%=weeks[3].days[2].classname%>"><a href="#"><%=weeks[3].days[2].accessibilityText%></a></td>', '<td class="<%=weeks[3].days[3].classname%>"><a href="#"><%=weeks[3].days[3].accessibilityText%></a></td>', '<td class="<%=weeks[3].days[4].classname%>"><a href="#"><%=weeks[3].days[4].accessibilityText%></a></td>', '<td class="<%=weeks[3].days[5].classname%>"><a href="#"><%=weeks[3].days[5].accessibilityText%></a></td>', '<td class="<%=weeks[3].days[6].classname%> last"><a href="#"><%=weeks[3].days[6].accessibilityText%></a></td>', | |
| "</tr>", "<tr>", '<td class="<%=weeks[4].days[0].classname%>"><a href="#"><%=weeks[4].days[0].accessibilityText%></a></td>', '<td class="<%=weeks[4].days[1].classname%>"><a href="#"><%=weeks[4].days[1].accessibilityText%></a></td>', '<td class="<%=weeks[4].days[2].classname%>"><a href="#"><%=weeks[4].days[2].accessibilityText%></a></td>', '<td class="<%=weeks[4].days[3].classname%>"><a href="#"><%=weeks[4].days[3].accessibilityText%></a></td>', '<td class="<%=weeks[4].days[4].classname%>"><a href="#"><%=weeks[4].days[4].accessibilityText%></a></td>', | |
| '<td class="<%=weeks[4].days[5].classname%>"><a href="#"><%=weeks[4].days[5].accessibilityText%></a></td>', '<td class="<%=weeks[4].days[6].classname%> last"><a href="#"><%=weeks[4].days[6].accessibilityText%></a></td>', "</tr>", "<tr>", '<td class="<%=weeks[5].days[0].classname%>"><a href="#"><%=weeks[5].days[0].accessibilityText%></a></td>', '<td class="<%=weeks[5].days[1].classname%>"><a href="#"><%=weeks[5].days[1].accessibilityText%></a></td>', '<td class="<%=weeks[5].days[2].classname%>"><a href="#"><%=weeks[5].days[2].accessibilityText%></a></td>', | |
| '<td class="<%=weeks[5].days[3].classname%>"><a href="#"><%=weeks[5].days[3].accessibilityText%></a></td>', '<td class="<%=weeks[5].days[4].classname%>"><a href="#"><%=weeks[5].days[4].accessibilityText%></a></td>', '<td class="<%=weeks[5].days[5].classname%>"><a href="#"><%=weeks[5].days[5].accessibilityText%></a></td>', '<td class="<%=weeks[5].days[6].classname%> last"><a href="#"><%=weeks[5].days[6].accessibilityText%></a></td>', "</tr>", "</tbody>" | |
| ], | |
| months: ['<tbody class="<%=className%>">', "<tr>", | |
| '<td colspan="1"><a href="#"><span><%=data[0]%></span></a></td>', '<td colspan="2"><a href="#"><span><%=data[1]%></span></a></td>', '<td colspan="2"><a href="#"><span><%=data[2]%></span></a></td>', '<td colspan="2"><a href="#"><span><%=data[3]%></span></a></td>', "</tr>", "<tr>", '<td colspan="1"><a href="#"><span><%=data[4]%></span></a></td>', '<td colspan="2"><a href="#"><span><%=data[5]%></span></a></td>', '<td colspan="2"><a href="#"><span><%=data[6]%></span></a></td>', '<td colspan="2"><a href="#"><span><%=data[7]%></span></a></td>', | |
| "</tr>", "<tr>", '<td colspan="1"><a href="#"><span><%=data[8]%></span></a></td>', '<td colspan="2"><a href="#"><span><%=data[9]%></span></a></td>', '<td colspan="2"><a href="#"><span><%=data[10]%></span></a></td>', '<td colspan="2"><a href="#"><span><%=data[11]%></span></a></td>', "</tr>", "</tbody>" | |
| ] | |
| }, | |
| j = { | |
| flat: false, | |
| starts: 1, | |
| prev: "◀", | |
| next: "▶", | |
| lastSel: false, | |
| mode: "single", | |
| view: "days", | |
| calendars: 1, | |
| format: "Y-m-d", | |
| position: "bottom", | |
| eventName: "click", | |
| onRender: function() { | |
| return {} | |
| }, | |
| onChange: function() { | |
| return true | |
| }, | |
| onShow: function() { | |
| return true | |
| }, | |
| onBeforeShow: function() { | |
| return true | |
| }, | |
| onHide: function() { | |
| return true | |
| }, | |
| locale: { | |
| days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"], | |
| daysShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"], | |
| daysMin: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa", "Su"], | |
| months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], | |
| monthsShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", | |
| "Dec" | |
| ], | |
| weekMin: "wk" | |
| }, | |
| accessibleLinkText: "i want to enter the date manually" | |
| }, | |
| l = function(p) { | |
| var t = a(p).data("datepicker"), | |
| z = a(p), | |
| D = Math.floor(t.calendars / 2), | |
| M, B, m, u, y = 0, | |
| H, J, R, U, X, ga = new Date(t.last); | |
| ga.setMonth(ga.getMonth() - t.calendars); | |
| var ja = new Date(t.prevLast); | |
| ja.setMonth(ja.getMonth()); | |
| z.find("td>table tbody").remove(); | |
| for (var la = 0; la < t.calendars; la++) { | |
| M = new Date(t.current); | |
| t.calendars > 1 ? M.addMonths(-D + la + 1) : M.addMonths(-D + la); | |
| X = z.find("table").eq(la + 1); | |
| switch (X[0].className) { | |
| case "datepickerViewDays": | |
| m = | |
| v(M, "B Y"); | |
| break; | |
| case "datepickerViewMonths": | |
| m = M.getFullYear(); | |
| break; | |
| case "datepickerViewYears": | |
| m = M.getFullYear() - 6 + " - " + (M.getFullYear() + 5) | |
| } | |
| X.find("thead tr:first th:eq(1) span").text(m); | |
| m = M.getFullYear() - 6; | |
| B = { | |
| data: [], | |
| className: "datepickerYears" | |
| }; | |
| for (U = 0; U < 12; U++) B.data.push(m + U); | |
| U = tmpl(g.months.join(""), B); | |
| M.setDate(1); | |
| B = { | |
| weeks: [], | |
| test: 10 | |
| }; | |
| u = M.getMonth(); | |
| m = (M.getDay() - t.starts) % 7; | |
| M.addDays(-(m + (m < 0 ? 7 : 0))); | |
| H = -1; | |
| for (y = 0; y < 42;) { | |
| J = parseInt(y / 7, 10); | |
| R = y % 7; | |
| if (!B.weeks[J]) { | |
| H = M.getWeekNumber(); | |
| B.weeks[J] = { | |
| week: H, | |
| days: [] | |
| } | |
| } | |
| B.weeks[J].days[R] = { | |
| text: M.getDate(), | |
| accessibilityText: v(M, "A B e Y", true), | |
| classname: [] | |
| }; | |
| u != M.getMonth() && B.weeks[J].days[R].classname.push("datepickerNotInMonth"); | |
| M.getDay() == 0 && B.weeks[J].days[R].classname.push("datepickerSunday"); | |
| M.getDay() == 6 && B.weeks[J].days[R].classname.push("datepickerSaturday"); | |
| H = t.onRender(M); | |
| var ka = M.valueOf(); | |
| if (H.selected || t.date == ka || a.inArray(ka, t.date) > -1 || t.mode == "range" && ka >= t.date[0] && ka <= t.date[1]) B.weeks[J].days[R].classname.push("datepickerSelected"); | |
| if (t.recurringPriceFlag) { | |
| var ra = a("#endDate").val(), | |
| pa = a("#startDate").val(); | |
| ra = new Date(ra); | |
| pa = (new Date(pa)).getTime(); | |
| ra = ra.getTime(); | |
| sdateVal = typeof a("#startDate").val() !== "undefined" && a("#startDate").val() != "" ? pa : t.date; | |
| if (ka < sdateVal || ka > ra) B.weeks[J].days[R].classname.push("datepickerDisabled") | |
| } | |
| if (H.disabled) | |
| if (t.recurringPriceFlag) { | |
| ka = (new Date).getDate(); | |
| M.getDate() != ka && B.weeks[J].days[R].classname.push("datepickerDisabled") | |
| } else B.weeks[J].days[R].classname.push("datepickerDisabled"); | |
| H.className && B.weeks[J].days[R].classname.push(H.className); | |
| B.weeks[J].days[R].classname = B.weeks[J].days[R].classname.join(" "); | |
| y++; | |
| M.addDays(1) | |
| } | |
| M = tmpl(g.days.join(""), B); | |
| M = a(M); | |
| M.find("td.datepickerDisabled a").each(function() { | |
| var xa = a(this).html(); | |
| a(this).after(xa).remove() | |
| }); | |
| M = '<tbody class="datepickerDays">' + M.html() + "</tbody>"; | |
| U = M + U; | |
| X.append(U); | |
| X.find("a.calendarAccessibility").bind("click", function() { | |
| a(a(p).data("inputEl")).focus().DatePickerHide(); | |
| return false | |
| }).bind("keydown", function(xa) { | |
| if (xa.which == | |
| 9 && !xa.shiftKey) { | |
| X.find("a:first").focus(); | |
| xa.preventDefault(); | |
| return false | |
| } | |
| }); | |
| if (t.calendars > 1) { | |
| if (la == 0 && t.current.valueOf() < ja.valueOf()) { | |
| X.find("th.datepickerGoNext a").addClass("hidden"); | |
| X.find("th.datepickerGoPrev a").addClass("disabled").text(t.prev + " disabled").bind("click", function() { | |
| return false | |
| }) | |
| } else if (la == 0) { | |
| X.find("th.datepickerGoNext a").addClass("hidden"); | |
| X.find("th.datepickerGoPrev a").removeClass("disabled").text(t.prev).unbind("click") | |
| } else X.find("th.datepickerGoPrev a").removeClass("disabled").text(t.prev); | |
| if (la == t.calendars - 1 && t.current.valueOf() > ga.valueOf()) { | |
| if (t.current.getMonth() !== ga.getMonth()) { | |
| X.find("th.datepickerGoPrev a").addClass("hidden"); | |
| X.find("th.datepickerGoNext a").addClass("disabled").text(t.next + " disabled").bind("click", function() { | |
| return false | |
| }) | |
| } | |
| } else if (la == t.calendars - 1) { | |
| X.find("th.datepickerGoPrev a").addClass("hidden"); | |
| X.find("th.datepickerGoNext a").removeClass("disabled").text(t.next).unbind("click") | |
| } else X.find("th.datepickerGoNext a").removeClass("disabled").text(t.next) | |
| } | |
| } | |
| }, | |
| o = function(p, t) { | |
| if (p.constructor == Date) return new Date(p); | |
| for (var z = p.split(/\W+/), D = t.split(/\W+/), M, B, m, u, y, H = new Date, J = 0; J < z.length; J++) switch (D[J]) { | |
| case "d": | |
| case "e": | |
| M = parseInt(z[J], 10); | |
| break; | |
| case "m": | |
| B = parseInt(z[J], 10) - 1; | |
| break; | |
| case "Y": | |
| case "y": | |
| m = parseInt(z[J], 10); | |
| m += m > 100 ? 0 : m < 29 ? 2E3 : 1900; | |
| break; | |
| case "H": | |
| case "I": | |
| case "k": | |
| case "l": | |
| u = parseInt(z[J], 10); | |
| break; | |
| case "P": | |
| case "p": | |
| if (/pm/i.test(z[J]) && u < 12) u += 12; | |
| else if (/am/i.test(z[J]) && u >= 12) u -= 12; | |
| break; | |
| case "M": | |
| y = parseInt(z[J], 10) | |
| } | |
| return new Date(m === | |
| undefined ? H.getFullYear() : m, B === undefined ? H.getMonth() : B, M === undefined ? H.getDate() : M, u === undefined ? H.getHours() : u, y === undefined ? H.getMinutes() : y, 0) | |
| }, | |
| v = function(p, t, z) { | |
| var D = p.getMonth(), | |
| M = p.getDate(), | |
| B = p.getFullYear(); | |
| p.getWeekNumber(); | |
| var m = p.getDay(), | |
| u = p.getHours(), | |
| y = u >= 12, | |
| H = y ? u - 12 : u, | |
| J = p.getDayOfYear(); | |
| if (H == 0) H = 12; | |
| var R = p.getMinutes(), | |
| U = p.getSeconds(); | |
| t = t.split(""); | |
| for (var X, ga = 0; ga < t.length; ga++) { | |
| X = t[ga]; | |
| switch (t[ga]) { | |
| case "a": | |
| X = p.getDayName(); | |
| break; | |
| case "A": | |
| X = z ? '<span class="screen-reader-only">' + | |
| p.getDayName(true) + ", </span>" : p.getDayName(true); | |
| break; | |
| case "b": | |
| X = p.getMonthName(); | |
| break; | |
| case "B": | |
| X = z ? '<span class="screen-reader-only">' + p.getMonthName(true) + ", </span>" : p.getMonthName(true); | |
| break; | |
| case "C": | |
| X = 1 + Math.floor(B / 100); | |
| break; | |
| case "d": | |
| X = M < 10 ? "0" + M : M; | |
| break; | |
| case "e": | |
| X = z ? "<span>" + M + "</span>" : M; | |
| break; | |
| case "H": | |
| X = u < 10 ? "0" + u : u; | |
| break; | |
| case "I": | |
| X = H < 10 ? "0" + H : H; | |
| break; | |
| case "j": | |
| X = J < 100 ? J < 10 ? "00" + J : "0" + J : J; | |
| break; | |
| case "k": | |
| X = u; | |
| break; | |
| case "l": | |
| X = H; | |
| break; | |
| case "m": | |
| X = D < 9 ? "0" + (1 + D) : 1 + D; | |
| break; | |
| case "M": | |
| X = R < 10 ? "0" + | |
| R : R; | |
| break; | |
| case "p": | |
| case "P": | |
| X = y ? "PM" : "AM"; | |
| break; | |
| case "s": | |
| X = Math.floor(p.getTime() / 1E3); | |
| break; | |
| case "S": | |
| X = U < 10 ? "0" + U : U; | |
| break; | |
| case "u": | |
| X = m + 1; | |
| break; | |
| case "w": | |
| X = m; | |
| break; | |
| case "y": | |
| X = ("" + B).substr(2, 2); | |
| break; | |
| case "Y": | |
| X = z ? '<span class="screen-reader-only">' + B + "</span>" : B | |
| } | |
| t[ga] = X | |
| } | |
| return t.join("") | |
| }, | |
| A = function(p) { | |
| if (!Date.prototype.tempDate) { | |
| Date.prototype.tempDate = null; | |
| Date.prototype.months = p.months; | |
| Date.prototype.monthsShort = p.monthsShort; | |
| Date.prototype.days = p.days; | |
| Date.prototype.daysShort = p.daysShort; | |
| Date.prototype.getMonthName = | |
| function(t) { | |
| return this[t ? "months" : "monthsShort"][this.getMonth()] | |
| }; | |
| Date.prototype.getDayName = function(t) { | |
| return this[t ? "days" : "daysShort"][this.getDay()] | |
| }; | |
| Date.prototype.addDays = function(t) { | |
| this.setDate(this.getDate() + t); | |
| this.tempDate = this.getDate() | |
| }; | |
| Date.prototype.addMonths = function(t) { | |
| if (this.tempDate == null) this.tempDate = this.getDate(); | |
| this.setDate(1); | |
| this.setMonth(this.getMonth() + t); | |
| this.setDate(Math.min(this.tempDate, this.getMaxDays())) | |
| }; | |
| Date.prototype.addYears = function(t) { | |
| if (this.tempDate == | |
| null) this.tempDate = this.getDate(); | |
| this.setDate(1); | |
| this.setFullYear(this.getFullYear() + t); | |
| this.setDate(Math.min(this.tempDate, this.getMaxDays())) | |
| }; | |
| Date.prototype.getMaxDays = function() { | |
| var t = new Date(Date.parse(this)), | |
| z = 28, | |
| D; | |
| D = t.getMonth(); | |
| for (z = 28; t.getMonth() == D;) { | |
| z++; | |
| t.setDate(z) | |
| } | |
| return z - 1 | |
| }; | |
| Date.prototype.getFirstDay = function() { | |
| var t = new Date(Date.parse(this)); | |
| t.setDate(1); | |
| return t.getDay() | |
| }; | |
| Date.prototype.getWeekNumber = function() { | |
| var t = new Date(this); | |
| t.setDate(t.getDate() - (t.getDay() + 6) % 7 + 3); | |
| var z = | |
| t.valueOf(); | |
| t.setMonth(0); | |
| t.setDate(4); | |
| return Math.round((z - t.valueOf()) / 6048E5) + 1 | |
| }; | |
| Date.prototype.getDayOfYear = function() { | |
| var t = new Date(this.getFullYear(), this.getMonth(), this.getDate(), 0, 0, 0), | |
| z = new Date(this.getFullYear(), 0, 0, 0, 0, 0); | |
| return Math.floor((t - z) / 24 * 60 * 60 * 1E3) | |
| } | |
| } | |
| }, | |
| C = function(p) { | |
| var t = a(p).data("datepicker"), | |
| z = a("#" + t.id); | |
| if (!t.extraHeight) { | |
| p = a(p).find("div"); | |
| t.extraHeight = p.get(0).offsetHeight + p.get(1).offsetHeight; | |
| t.extraWidth = p.get(2).offsetWidth + p.get(3).offsetWidth | |
| } | |
| var D = z.find("table:first").get(0); | |
| p = D.offsetWidth; | |
| D = D.offsetHeight; | |
| z.css({ | |
| width: p + t.extraWidth + "px", | |
| height: D + t.extraHeight + "px" | |
| }).find("div.datepickerContainer").css({ | |
| width: p + "px", | |
| height: D + "px" | |
| }) | |
| }, | |
| q = function(p) { | |
| if (a(p.target).is("span")) p.target = p.target.parentNode; | |
| var t = a(p.target); | |
| if (t.is("a")) { | |
| p.target.blur(); | |
| if (t.hasClass("datepickerDisabled")) return false; | |
| var z = a(this).data("datepicker"); | |
| p = t.parent(); | |
| var D = p.parent().parent().parent(), | |
| M = a("table", this).index(D.get(0)) - 1, | |
| B = new Date(z.current), | |
| m = false, | |
| u = false; | |
| if (p.is("th")) | |
| if (p.hasClass("datepickerWeek") && | |
| z.mode == "range" && !p.next().hasClass("datepickerDisabled")) { | |
| var y = parseInt(p.next().text(), 10); | |
| B.addMonths(M - Math.floor(z.calendars / 2)); | |
| if (p.next().hasClass("datepickerNotInMonth")) B.addMonths(y > 15 ? -1 : 1); | |
| B.setDate(y); | |
| z.date[0] = B.setHours(0, 0, 0, 0).valueOf(); | |
| B.setHours(23, 59, 59, 0); | |
| B.addDays(6); | |
| z.date[1] = B.valueOf(); | |
| m = u = true; | |
| z.lastSel = false | |
| } else if (p.hasClass("datepickerMonth")) return false; | |
| else { | |
| if (p.parent().parent().is("thead")) { | |
| switch (D.get(0).className) { | |
| case "datepickerViewDays": | |
| z.current.addMonths(p.hasClass("datepickerGoPrev") ? | |
| -1 : 1); | |
| break; | |
| case "datepickerViewMonths": | |
| z.current.addYears(p.hasClass("datepickerGoPrev") ? -1 : 1); | |
| break; | |
| case "datepickerViewYears": | |
| z.current.addYears(p.hasClass("datepickerGoPrev") ? -12 : 12) | |
| } | |
| u = true | |
| } | |
| } else if (p.is("td") && !p.hasClass("datepickerDisabled")) { | |
| switch (D.get(0).className) { | |
| case "datepickerViewMonths": | |
| z.current.setMonth(D.find("tbody.datepickerMonths td").index(p)); | |
| z.current.addMonths(Math.floor(z.calendars / 2) - M); | |
| D.get(0).className = "datepickerViewDays"; | |
| break; | |
| case "datepickerViewYears": | |
| z.current.setFullYear(parseInt(t.text(), | |
| 10)); | |
| D.get(0).className = "datepickerViewMonths"; | |
| break; | |
| default: | |
| y = parseInt(t.find("span:eq(2)").text(), 10); | |
| z.calendars > 1 ? B.addMonths(M - Math.floor(z.calendars / 2 - 1)) : B.addMonths(M - Math.floor(z.calendars / 2)); | |
| if (p.hasClass("datepickerNotInMonth")) B.addMonths(y > 15 ? -1 : 1); | |
| B.setDate(y); | |
| switch (z.mode) { | |
| case "multiple": | |
| y = B.setHours(0, 0, 0, 0).valueOf(); | |
| a.inArray(y, z.date) > -1 ? a.each(z.date, function(H, J) { | |
| if (J == y) { | |
| z.date.splice(H, 1); | |
| return false | |
| } | |
| }) : z.date.push(y); | |
| break; | |
| case "range": | |
| z.lastSel || (z.date[0] = B.setHours(0, | |
| 0, 0, 0).valueOf()); | |
| y = B.setHours(23, 59, 59, 0).valueOf(); | |
| if (y < z.date[0]) { | |
| z.date[1] = z.date[0] + 86399E3; | |
| z.date[0] = y - 86399E3 | |
| } else z.date[1] = y; | |
| z.lastSel = !z.lastSel; | |
| break; | |
| default: | |
| z.date = B.valueOf() | |
| } | |
| } | |
| m = u = true | |
| } | |
| u && l(this); | |
| m && z.onChange.apply(this, I(z)) | |
| } | |
| return false | |
| }, | |
| I = function(p) { | |
| var t; | |
| if (p.mode == "single") { | |
| t = new Date(p.date); | |
| return [v(t, p.format), t, p.el] | |
| } else { | |
| t = [ | |
| [], | |
| [], p.el | |
| ]; | |
| a.each(p.date, function(z, D) { | |
| var M = new Date(D); | |
| t[0].push(v(M, p.format)); | |
| t[1].push(M) | |
| }); | |
| return t | |
| } | |
| }, | |
| K = function() { | |
| var p = document.compatMode == "CSS1Compat"; | |
| return { | |
| l: window.pageXOffset || (p ? document.documentElement.scrollLeft : document.body.scrollLeft), | |
| t: window.pageYOffset || (p ? document.documentElement.scrollTop : document.body.scrollTop), | |
| w: window.innerWidth || (p ? document.documentElement.clientWidth : document.body.clientWidth), | |
| h: window.innerHeight || (p ? document.documentElement.clientHeight : document.body.clientHeight) | |
| } | |
| }, | |
| Q = function(p, t, z) { | |
| if (p == t) return true; | |
| if (p.contains) return p.contains(t); | |
| if (p.compareDocumentPosition) return !!(p.compareDocumentPosition(t) & 16); | |
| for (t = t.parentNode; t && t != z;) { | |
| if (t == p) return true; | |
| t = t.parentNode | |
| } | |
| return false | |
| }, | |
| n = function() { | |
| var p = a("#" + a(this).data("datepickerId")); | |
| if (!p.is(":visible")) { | |
| var t = p.get(0); | |
| l(t); | |
| var z = p.data("datepicker"); | |
| z.onBeforeShow.apply(this, [p.get(0)]); | |
| var D = a(this).offset(), | |
| M = K(), | |
| B = D.top, | |
| m = D.left; | |
| p.css("display", "none"); | |
| p.css({ | |
| visibility: "hidden", | |
| display: "block" | |
| }); | |
| C(t); | |
| switch (z.position) { | |
| case "top": | |
| B -= t.offsetHeight; | |
| break; | |
| case "left": | |
| m -= t.offsetWidth; | |
| break; | |
| case "right": | |
| m += this.offsetWidth + 37; | |
| break; | |
| case "bottom": | |
| B += | |
| this.offsetHeight | |
| } | |
| if (B + t.offsetHeight > M.t + M.h) B = D.top - t.offsetHeight; | |
| if (B < M.t) B = D.top + this.offsetHeight + t.offsetHeight; | |
| if (m + t.offsetWidth > M.l + M.w) m = D.left - t.offsetWidth; | |
| if (m < M.l) m = D.left + this.offsetWidth; | |
| p.css({ | |
| visibility: "visible", | |
| display: "block", | |
| top: B + "px", | |
| left: m + "px" | |
| }); | |
| z.onShow.apply(this, [p.get(0)]) != false && p.show(); | |
| var u = a(this); | |
| p.unbind("keyup").bind("keyup", function() { | |
| p.keyup(function(y) { | |
| console.log("indisde"); | |
| if (y.keyCode == 27) { | |
| p.hide(); | |
| u.parents("form").find("a.calendarIcon").focus() | |
| } | |
| }) | |
| }); | |
| a(document).bind("mousedown", { | |
| cal: p, | |
| trigger: this | |
| }, G) | |
| } | |
| return false | |
| }, | |
| G = function(p) { | |
| if (p.target != p.data.trigger && !Q(p.data.cal.get(0), p.target, p.data.cal.get(0))) { | |
| if (p.data.cal.data("datepicker").onHide.apply(this, [p.data.cal.get(0)]) != false) { | |
| p.data.cal.hide(); | |
| a("#" + p.data.cal.attr("id") + "_icon").removeClass("selectedCalendarIcon"); | |
| a(p.data.trigger).attr("aria-busy", "false") | |
| } | |
| a(document).unbind("mousedown", G) | |
| } | |
| }; | |
| return { | |
| init: function(p) { | |
| p = a.extend({}, j, p || {}); | |
| A(p.locale); | |
| p.calendars = Math.max(1, parseInt(p.calendars, | |
| 10) || 1); | |
| p.mode = /single|multiple|range/.test(p.mode) ? p.mode : "single"; | |
| return this.each(function() { | |
| if (!a(this).data("datepicker")) { | |
| p.el = this; | |
| if (p.date.constructor == String) { | |
| p.date = o(p.date, p.format); | |
| p.date.setHours(0, 0, 0, 0) | |
| } | |
| if (p.mode != "single") | |
| if (p.date.constructor != Array) { | |
| p.date = [p.date.valueOf()]; | |
| p.mode == "range" && p.date.push((new Date(p.date[0])).setHours(23, 59, 59, 0).valueOf()) | |
| } else { | |
| for (var t = 0; t < p.date.length; t++) p.date[t] = o(p.date[t], p.format).setHours(0, 0, 0, 0).valueOf(); | |
| if (p.mode == "range") p.date[1] = | |
| (new Date(p.date[1])).setHours(23, 59, 59, 0).valueOf() | |
| } else p.date = p.date.valueOf(); | |
| p.current = p.current ? o(p.current, p.format) : new Date; | |
| p.current.setDate(1); | |
| p.current.setHours(0, 0, 0, 0); | |
| t = "datepicker_" + parseInt(Math.random() * 1E3); | |
| var z; | |
| p.id = t; | |
| a(this).data("datepickerId", p.id); | |
| var D = a(g.wrapper).attr("id", t).bind("click", q).data("datepicker", p).data("inputEl", this); | |
| p.className && D.addClass(p.className); | |
| var M = ""; | |
| for (t = 0; t < p.calendars; t++) { | |
| z = p.starts; | |
| if (t > 0) M += g.space; | |
| M += tmpl(g.head.join(""), { | |
| week: p.locale.weekMin, | |
| prev: p.prev, | |
| next: p.next, | |
| day1: p.locale.daysMin[z++ % 7], | |
| day2: p.locale.daysMin[z++ % 7], | |
| day3: p.locale.daysMin[z++ % 7], | |
| day4: p.locale.daysMin[z++ % 7], | |
| day5: p.locale.daysMin[z++ % 7], | |
| day6: p.locale.daysMin[z++ % 7], | |
| day7: p.locale.daysMin[z++ % 7] | |
| }) | |
| } | |
| D.find("tr:first").append(M).find("table").addClass(f[p.view]); | |
| l(D.get(0)); | |
| if (p.flat) { | |
| D.appendTo(this.parentNode).show().css("position", "relative"); | |
| C(D.get(0)) | |
| } else { | |
| D.appendTo(document.body); | |
| a(this).bind(p.eventName, n) | |
| } | |
| $iconLink = a('<a href="#" id="' + D.attr("id") + '_icon" class="calendarIcon" title="pick a day from the calendar"></a>'); | |
| $iconLink.bind("click", { | |
| cal: D, | |
| trigger: this | |
| }, function(B) { | |
| a(B.data.trigger).DatePickerShow().attr("aria-busy", "true"); | |
| a(B.target).addClass("selectedCalendarIcon"); | |
| return false | |
| }); | |
| a(this).after($iconLink) | |
| } | |
| }) | |
| }, | |
| showPicker: function() { | |
| return this.each(function() { | |
| if (a(this).data("datepickerId")) { | |
| n.apply(this); | |
| a("#" + a(this).data("datepickerId")).find("a:first").focus() | |
| } | |
| }) | |
| }, | |
| hidePicker: function() { | |
| return this.each(function() { | |
| a(this).data("datepickerId") && a("#" + a(this).data("datepickerId")).hide() | |
| }) | |
| }, | |
| setDate: function(p, | |
| t) { | |
| return this.each(function() { | |
| if (a(this).data("datepickerId")) { | |
| var z = a("#" + a(this).data("datepickerId")), | |
| D = z.data("datepicker"); | |
| D.date = p; | |
| if (D.date.constructor == String) { | |
| D.date = o(D.date, D.format); | |
| D.date.setHours(0, 0, 0, 0) | |
| } | |
| if (D.mode != "single") | |
| if (D.date.constructor != Array) { | |
| D.date = [D.date.valueOf()]; | |
| D.mode == "range" && D.date.push((new Date(D.date[0])).setHours(23, 59, 59, 0).valueOf()) | |
| } else { | |
| for (var M = 0; M < D.date.length; M++) D.date[M] = o(D.date[M], D.format).setHours(0, 0, 0, 0).valueOf(); | |
| if (D.mode == "range") D.date[1] = | |
| (new Date(D.date[1])).setHours(23, 59, 59, 0).valueOf() | |
| } else D.date = D.date.valueOf(); | |
| if (t) D.current = new Date(D.mode != "single" ? D.date[0] : D.date); | |
| l(z.get(0)) | |
| } | |
| }) | |
| }, | |
| getDate: function(p) { | |
| if (this.size() > 0) return I(a("#" + a(this).data("datepickerId")).data("datepicker"))[p ? 0 : 1] | |
| }, | |
| clear: function() { | |
| return this.each(function() { | |
| if (a(this).data("datepickerId")) { | |
| var p = a("#" + a(this).data("datepickerId")), | |
| t = p.data("datepicker"); | |
| if (t.mode != "single") { | |
| t.date = []; | |
| l(p.get(0)) | |
| } | |
| } | |
| }) | |
| }, | |
| fixLayout: function() { | |
| return this.each(function() { | |
| if (a(this).data("datepickerId")) { | |
| var p = | |
| a("#" + a(this).data("datepickerId")); | |
| p.data("datepicker").flat && C(p.get(0)) | |
| } | |
| }) | |
| } | |
| } | |
| }(); | |
| a.fn.extend({ | |
| DatePicker: b.init, | |
| DatePickerHide: b.hidePicker, | |
| DatePickerShow: b.showPicker, | |
| DatePickerSetDate: b.setDate, | |
| DatePickerGetDate: b.getDate, | |
| DatePickerClear: b.clear, | |
| DatePickerLayout: b.fixLayout | |
| }); | |
| var d = {}; | |
| this.tmpl = function f(g, j) { | |
| var l = !/\W/.test(g) ? d[g] = d[g] || f(document.getElementById(g).innerHTML) : new Function("obj", "var p=[],print=function(){p.push.apply(p,arguments);};with(obj){p.push('" + g.replace(/[\r\t\n]/g, | |
| " ").split("<%").join("\t").replace(/((^|%>)[^\t]*)'/g, "$1\r").replace(/\t=(.*?)%>/g, "',$1,'").split("\t").join("');").split("%>").join("p.push('").split("\r").join("\\'") + "');}return p.join('');"); | |
| return j ? l(j) : l | |
| } | |
| })(jQuery); | |
| $(window).trigger("register.framework", ["plugin", "AccessibleCalendar", $.AccessibleCalendar.registration]); | |
| var swfobject = function() { | |
| function a() { | |
| if (!ka) { | |
| try { | |
| var L = m.getElementsByTagName("body")[0].appendChild(m.createElement("span")); | |
| L.parentNode.removeChild(L) | |
| } catch (W) { | |
| return | |
| } | |
| ka = true; | |
| L = H.length; | |
| for (var Z = 0; Z < L; Z++) H[Z]() | |
| } | |
| } | |
| function b(L) { | |
| if (ka) L(); | |
| else H[H.length] = L | |
| } | |
| function d(L) { | |
| if (typeof B.addEventListener != t) B.addEventListener("load", L, false); | |
| else if (typeof m.addEventListener != t) m.addEventListener("load", L, false); | |
| else if (typeof B.attachEvent != t) K(B, "onload", L); | |
| else if (typeof B.onload == "function") { | |
| var W = | |
| B.onload; | |
| B.onload = function() { | |
| W(); | |
| L() | |
| } | |
| } else B.onload = L | |
| } | |
| function f() { | |
| var L = m.getElementsByTagName("body")[0], | |
| W = m.createElement(z); | |
| W.setAttribute("type", D); | |
| var Z = L.appendChild(W); | |
| if (Z) { | |
| var ia = 0; | |
| (function() { | |
| if (typeof Z.GetVariable != t) { | |
| var ma = Z.GetVariable("$version"); | |
| if (ma) { | |
| ma = ma.split(" ")[1].split(","); | |
| O.pv = [parseInt(ma[0], 10), parseInt(ma[1], 10), parseInt(ma[2], 10)] | |
| } | |
| } else if (ia < 10) { | |
| ia++; | |
| setTimeout(arguments.callee, 10); | |
| return | |
| } | |
| L.removeChild(W); | |
| Z = null; | |
| g() | |
| })() | |
| } else g() | |
| } | |
| function g() { | |
| var L = J.length; | |
| if (L > 0) | |
| for (var W = | |
| 0; W < L; W++) { | |
| var Z = J[W].id, | |
| ia = J[W].callbackFn, | |
| ma = { | |
| success: false, | |
| id: Z | |
| }; | |
| if (O.pv[0] > 0) { | |
| var ua = I(Z); | |
| if (ua) | |
| if (Q(J[W].swfVersion) && !(O.wk && O.wk < 312)) { | |
| G(Z, true); | |
| if (ia) { | |
| ma.success = true; | |
| ma.ref = j(Z); | |
| ia(ma) | |
| } | |
| } else if (J[W].expressInstall && l()) { | |
| ma = {}; | |
| ma.data = J[W].expressInstall; | |
| ma.width = ua.getAttribute("width") || "0"; | |
| ma.height = ua.getAttribute("height") || "0"; | |
| if (ua.getAttribute("class")) ma.styleclass = ua.getAttribute("class"); | |
| if (ua.getAttribute("align")) ma.align = ua.getAttribute("align"); | |
| var ta = {}; | |
| ua = ua.getElementsByTagName("param"); | |
| for (var za = ua.length, Aa = 0; Aa < za; Aa++) | |
| if (ua[Aa].getAttribute("name").toLowerCase() != "movie") ta[ua[Aa].getAttribute("name")] = ua[Aa].getAttribute("value"); | |
| o(ma, ta, Z, ia) | |
| } else { | |
| v(ua); | |
| ia && ia(ma) | |
| } | |
| } else { | |
| G(Z, true); | |
| if (ia) { | |
| if ((Z = j(Z)) && typeof Z.SetVariable != t) { | |
| ma.success = true; | |
| ma.ref = Z | |
| } | |
| ia(ma) | |
| } | |
| } | |
| } | |
| } | |
| function j(L) { | |
| var W = null; | |
| if ((L = I(L)) && L.nodeName == "OBJECT") | |
| if (typeof L.SetVariable != t) W = L; | |
| else if (L = L.getElementsByTagName(z)[0]) W = L; | |
| return W | |
| } | |
| function l() { | |
| return !ra && Q("6.0.65") && (O.win || O.mac) && !(O.wk && O.wk < 312) | |
| } | |
| function o(L, | |
| W, Z, ia) { | |
| ra = true; | |
| ja = ia || null; | |
| la = { | |
| success: false, | |
| id: Z | |
| }; | |
| var ma = I(Z); | |
| if (ma) { | |
| if (ma.nodeName == "OBJECT") { | |
| X = A(ma); | |
| ga = null | |
| } else { | |
| X = ma; | |
| ga = Z | |
| } | |
| L.id = M; | |
| if (typeof L.width == t || !/%$/.test(L.width) && parseInt(L.width, 10) < 310) L.width = "310"; | |
| if (typeof L.height == t || !/%$/.test(L.height) && parseInt(L.height, 10) < 137) L.height = "137"; | |
| m.title = m.title.slice(0, 47) + " - Flash Player Installation"; | |
| ia = O.ie && O.win ? "ActiveX" : "PlugIn"; | |
| ia = "MMredirectURL=" + B.location.toString().replace(/&/g, "%26") + "&MMplayerType=" + ia + "&MMdoctitle=" + m.title; | |
| if (typeof W.flashvars != t) W.flashvars += "&" + ia; | |
| else W.flashvars = ia; | |
| if (O.ie && O.win && ma.readyState != 4) { | |
| ia = m.createElement("div"); | |
| Z += "SWFObjectNew"; | |
| ia.setAttribute("id", Z); | |
| ma.parentNode.insertBefore(ia, ma); | |
| ma.style.display = "none"; | |
| (function() { | |
| ma.readyState == 4 ? ma.parentNode.removeChild(ma) : setTimeout(arguments.callee, 10) | |
| })() | |
| } | |
| C(L, W, Z) | |
| } | |
| } | |
| function v(L) { | |
| if (O.ie && O.win && L.readyState != 4) { | |
| var W = m.createElement("div"); | |
| L.parentNode.insertBefore(W, L); | |
| W.parentNode.replaceChild(A(L), W); | |
| L.style.display = "none"; | |
| (function() { | |
| L.readyState == | |
| 4 ? L.parentNode.removeChild(L) : setTimeout(arguments.callee, 10) | |
| })() | |
| } else L.parentNode.replaceChild(A(L), L) | |
| } | |
| function A(L) { | |
| var W = m.createElement("div"); | |
| if (O.win && O.ie) W.innerHTML = L.innerHTML; | |
| else if (L = L.getElementsByTagName(z)[0]) | |
| if (L = L.childNodes) | |
| for (var Z = L.length, ia = 0; ia < Z; ia++) !(L[ia].nodeType == 1 && L[ia].nodeName == "PARAM") && L[ia].nodeType != 8 && W.appendChild(L[ia].cloneNode(true)); | |
| return W | |
| } | |
| function C(L, W, Z) { | |
| var ia, ma = I(Z); | |
| if (O.wk && O.wk < 312) return ia; | |
| if (ma) { | |
| if (typeof L.id == t) L.id = Z; | |
| if (O.ie && O.win) { | |
| var ua = | |
| "", | |
| ta; | |
| for (ta in L) | |
| if (L[ta] != Object.prototype[ta]) | |
| if (ta.toLowerCase() == "data") W.movie = L[ta]; | |
| else if (ta.toLowerCase() == "styleclass") ua += ' class="' + L[ta] + '"'; | |
| else if (ta.toLowerCase() != "classid") ua += " " + ta + '="' + L[ta] + '"'; | |
| ta = ""; | |
| for (var za in W) | |
| if (W[za] != Object.prototype[za]) ta += '<param name="' + za + '" value="' + W[za] + '" />'; | |
| ma.outerHTML = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"' + ua + ">" + ta + "</object>"; | |
| R[R.length] = L.id; | |
| ia = I(L.id) | |
| } else { | |
| za = m.createElement(z); | |
| za.setAttribute("type", D); | |
| for (var Aa in L) | |
| if (L[Aa] != | |
| Object.prototype[Aa]) | |
| if (Aa.toLowerCase() == "styleclass") za.setAttribute("class", L[Aa]); | |
| else Aa.toLowerCase() != "classid" && za.setAttribute(Aa, L[Aa]); | |
| for (ua in W) | |
| if (W[ua] != Object.prototype[ua] && ua.toLowerCase() != "movie") { | |
| L = za; | |
| ta = ua; | |
| Aa = W[ua]; | |
| Z = m.createElement("param"); | |
| Z.setAttribute("name", ta); | |
| Z.setAttribute("value", Aa); | |
| L.appendChild(Z) | |
| } | |
| ma.parentNode.replaceChild(za, ma); | |
| ia = za | |
| } | |
| } | |
| return ia | |
| } | |
| function q(L) { | |
| var W = I(L); | |
| if (W && W.nodeName == "OBJECT") | |
| if (O.ie && O.win) { | |
| W.style.display = "none"; | |
| (function() { | |
| if (W.readyState == | |
| 4) { | |
| var Z = I(L); | |
| if (Z) { | |
| for (var ia in Z) | |
| if (typeof Z[ia] == "function") Z[ia] = null; | |
| Z.parentNode.removeChild(Z) | |
| } | |
| } else setTimeout(arguments.callee, 10) | |
| })() | |
| } else W.parentNode.removeChild(W) | |
| } | |
| function I(L) { | |
| var W = null; | |
| try { | |
| W = m.getElementById(L) | |
| } catch (Z) {} | |
| return W | |
| } | |
| function K(L, W, Z) { | |
| L.attachEvent(W, Z); | |
| U[U.length] = [L, W, Z] | |
| } | |
| function Q(L) { | |
| var W = O.pv; | |
| L = L.split("."); | |
| L[0] = parseInt(L[0], 10); | |
| L[1] = parseInt(L[1], 10) || 0; | |
| L[2] = parseInt(L[2], 10) || 0; | |
| return W[0] > L[0] || W[0] == L[0] && W[1] > L[1] || W[0] == L[0] && W[1] == L[1] && W[2] >= L[2] ? true : | |
| false | |
| } | |
| function n(L, W, Z, ia) { | |
| if (!(O.ie && O.mac)) { | |
| var ma = m.getElementsByTagName("head")[0]; | |
| if (ma) { | |
| Z = Z && typeof Z == "string" ? Z : "screen"; | |
| if (ia) xa = pa = null; | |
| if (!pa || xa != Z) { | |
| ia = m.createElement("style"); | |
| ia.setAttribute("type", "text/css"); | |
| ia.setAttribute("media", Z); | |
| pa = ma.appendChild(ia); | |
| if (O.ie && O.win && typeof m.styleSheets != t && m.styleSheets.length > 0) pa = m.styleSheets[m.styleSheets.length - 1]; | |
| xa = Z | |
| } | |
| if (O.ie && O.win) pa && typeof pa.addRule == z && pa.addRule(L, W); | |
| else pa && typeof m.createTextNode != t && pa.appendChild(m.createTextNode(L + | |
| " {" + W + "}")) | |
| } | |
| } | |
| } | |
| function G(L, W) { | |
| if (P) { | |
| var Z = W ? "visible" : "hidden"; | |
| if (ka && I(L)) I(L).style.visibility = Z; | |
| else n("#" + L, "visibility:" + Z) | |
| } | |
| } | |
| function p(L) { | |
| return /[\\\"<>\.;]/.exec(L) != null && typeof encodeURIComponent != t ? encodeURIComponent(L) : L | |
| } | |
| var t = "undefined", | |
| z = "object", | |
| D = "application/x-shockwave-flash", | |
| M = "SWFObjectExprInst", | |
| B = window, | |
| m = document, | |
| u = navigator, | |
| y = false, | |
| H = [function() { | |
| y ? f() : g() | |
| }], | |
| J = [], | |
| R = [], | |
| U = [], | |
| X, ga, ja, la, ka = false, | |
| ra = false, | |
| pa, xa, P = true, | |
| O = function() { | |
| var L = typeof m.getElementById != t && typeof m.getElementsByTagName != | |
| t && typeof m.createElement != t, | |
| W = u.userAgent.toLowerCase(), | |
| Z = u.platform.toLowerCase(), | |
| ia = Z ? /win/.test(Z) : /win/.test(W); | |
| Z = Z ? /mac/.test(Z) : /mac/.test(W); | |
| W = /webkit/.test(W) ? parseFloat(W.replace(/^.*webkit\/(\d+(\.\d+)?).*$/, "$1")) : false; | |
| var ma = !+"\u000b1", | |
| ua = [0, 0, 0], | |
| ta = null; | |
| if (typeof u.plugins != t && typeof u.plugins["Shockwave Flash"] == z) { | |
| if ((ta = u.plugins["Shockwave Flash"].description) && !(typeof u.mimeTypes != t && u.mimeTypes[D] && !u.mimeTypes[D].enabledPlugin)) { | |
| y = true; | |
| ma = false; | |
| ta = ta.replace(/^.*\s+(\S+\s+\S+$)/, | |
| "$1"); | |
| ua[0] = parseInt(ta.replace(/^(.*)\..*$/, "$1"), 10); | |
| ua[1] = parseInt(ta.replace(/^.*\.(.*)\s.*$/, "$1"), 10); | |
| ua[2] = /[a-zA-Z]/.test(ta) ? parseInt(ta.replace(/^.*[a-zA-Z]+(.*)$/, "$1"), 10) : 0 | |
| } | |
| } else if (typeof B.ActiveXObject != t) try { | |
| var za = new ActiveXObject("ShockwaveFlash.ShockwaveFlash"); | |
| if (za) | |
| if (ta = za.GetVariable("$version")) { | |
| ma = true; | |
| ta = ta.split(" ")[1].split(","); | |
| ua = [parseInt(ta[0], 10), parseInt(ta[1], 10), parseInt(ta[2], 10)] | |
| } | |
| } catch (Aa) {} | |
| return { | |
| w3: L, | |
| pv: ua, | |
| wk: W, | |
| ie: ma, | |
| win: ia, | |
| mac: Z | |
| } | |
| }(); | |
| (function() { | |
| if (O.w3) { | |
| if (typeof m.readyState != | |
| t && m.readyState == "complete" || typeof m.readyState == t && (m.getElementsByTagName("body")[0] || m.body)) a(); | |
| if (!ka) { | |
| typeof m.addEventListener != t && m.addEventListener("DOMContentLoaded", a, false); | |
| if (O.ie && O.win) { | |
| m.attachEvent("onreadystatechange", function() { | |
| if (m.readyState == "complete") { | |
| m.detachEvent("onreadystatechange", arguments.callee); | |
| a() | |
| } | |
| }); | |
| B == top && function() { | |
| if (!ka) { | |
| try { | |
| m.documentElement.doScroll("left") | |
| } catch (L) { | |
| setTimeout(arguments.callee, 0); | |
| return | |
| } | |
| a() | |
| } | |
| }() | |
| } | |
| O.wk && function() { | |
| ka || (/loaded|complete/.test(m.readyState) ? | |
| a() : setTimeout(arguments.callee, 0)) | |
| }(); | |
| d(a) | |
| } | |
| } | |
| })(); | |
| (function() { | |
| O.ie && O.win && window.attachEvent("onunload", function() { | |
| for (var L = U.length, W = 0; W < L; W++) U[W][0].detachEvent(U[W][1], U[W][2]); | |
| L = R.length; | |
| for (W = 0; W < L; W++) q(R[W]); | |
| for (var Z in O) O[Z] = null; | |
| O = null; | |
| for (var ia in swfobject) swfobject[ia] = null; | |
| swfobject = null | |
| }) | |
| })(); | |
| return { | |
| registerObject: function(L, W, Z, ia) { | |
| if (O.w3 && L && W) { | |
| var ma = {}; | |
| ma.id = L; | |
| ma.swfVersion = W; | |
| ma.expressInstall = Z; | |
| ma.callbackFn = ia; | |
| J[J.length] = ma; | |
| G(L, false) | |
| } else ia && ia({ | |
| success: false, | |
| id: L | |
| }) | |
| }, | |
| getObjectById: function(L) { | |
| if (O.w3) return j(L) | |
| }, | |
| embedSWF: function(L, W, Z, ia, ma, ua, ta, za, Aa, Ha) { | |
| var Ia = { | |
| success: false, | |
| id: W | |
| }; | |
| if (O.w3 && !(O.wk && O.wk < 312) && L && W && Z && ia && ma) { | |
| G(W, false); | |
| b(function() { | |
| Z += ""; | |
| ia += ""; | |
| var Fa = {}; | |
| if (Aa && typeof Aa === z) | |
| for (var Ga in Aa) Fa[Ga] = Aa[Ga]; | |
| Fa.data = L; | |
| Fa.width = Z; | |
| Fa.height = ia; | |
| Ga = {}; | |
| if (za && typeof za === z) | |
| for (var Ja in za) Ga[Ja] = za[Ja]; | |
| if (ta && typeof ta === z) | |
| for (var Ma in ta) | |
| if (typeof Ga.flashvars != t) Ga.flashvars += "&" + Ma + "=" + ta[Ma]; | |
| else Ga.flashvars = Ma + "=" + ta[Ma]; | |
| if (Q(ma)) { | |
| Ja = C(Fa, | |
| Ga, W); | |
| Fa.id == W && G(W, true); | |
| Ia.success = true; | |
| Ia.ref = Ja | |
| } else if (ua && l()) { | |
| Fa.data = ua; | |
| o(Fa, Ga, W, Ha); | |
| return | |
| } else G(W, true); | |
| Ha && Ha(Ia) | |
| }) | |
| } else Ha && Ha(Ia) | |
| }, | |
| switchOffAutoHideShow: function() { | |
| P = false | |
| }, | |
| ua: O, | |
| getFlashPlayerVersion: function() { | |
| return { | |
| major: O.pv[0], | |
| minor: O.pv[1], | |
| release: O.pv[2] | |
| } | |
| }, | |
| hasFlashPlayerVersion: Q, | |
| createSWF: function(L, W, Z) { | |
| if (O.w3) return C(L, W, Z) | |
| }, | |
| showExpressInstall: function(L, W, Z, ia) { | |
| O.w3 && l() && o(L, W, Z, ia) | |
| }, | |
| removeSWF: function(L) { | |
| O.w3 && q(L) | |
| }, | |
| createCSS: function(L, W, Z, ia) { | |
| O.w3 && n(L, W, Z, ia) | |
| }, | |
| addDomLoadEvent: b, | |
| addLoadEvent: d, | |
| getQueryParamValue: function(L) { | |
| var W = m.location.search || m.location.hash; | |
| if (W) { | |
| if (/\?/.test(W)) W = W.split("?")[1]; | |
| if (L == null) return p(W); | |
| W = W.split("&"); | |
| for (var Z = 0; Z < W.length; Z++) | |
| if (W[Z].substring(0, W[Z].indexOf("=")) == L) return p(W[Z].substring(W[Z].indexOf("=") + 1)) | |
| } | |
| return "" | |
| }, | |
| expressInstallCallback: function() { | |
| if (ra) { | |
| var L = I(M); | |
| if (L && X) { | |
| L.parentNode.replaceChild(X, L); | |
| if (ga) { | |
| G(ga, true); | |
| if (O.ie && O.win) X.style.display = "block" | |
| } | |
| ja && ja(la) | |
| } | |
| ra = false | |
| } | |
| } | |
| } | |
| }(); | |
| if (typeof TARGET == "undefined") TARGET = {}; | |
| if (typeof log == "undefined") var log = function(a) { | |
| try { | |
| console.log(a) | |
| } catch (b) {} | |
| }; | |
| TARGET.EverestVideoPlayer = function(a, b, d, f, g, j) { | |
| if (typeof TARGET.EverestVideoPlayer.instances == "undefined") TARGET.EverestVideoPlayer.instances = []; | |
| this.videoPlayerId = TARGET.EverestVideoPlayer.instances.length; | |
| TARGET.EverestVideoPlayer.instances.push(this); | |
| this.containerId_ = a; | |
| this.flashId_ = "flashVideoPlayer" + this.videoPlayerId; | |
| this.flashPlayer_ = null; | |
| this.name = "TARGET.EverestVideoPlayer.instances[" + this.videoPlayerId + "]"; | |
| this.playerUrl_ = f || null; | |
| this.expressInstallUrl_ = null; | |
| this.flashParams_ = [{ | |
| name: "allowScriptAccess", | |
| value: "always" | |
| }, { | |
| name: "allowFullScreen", | |
| value: "true" | |
| }, { | |
| name: "wmode", | |
| value: "window" | |
| }]; | |
| this.flashVars_ = []; | |
| this.width_ = b || 558; | |
| this.height_ = d || 322; | |
| this.version_ = "9.0.115"; | |
| this.movieLoadTimeout_ = 2E3; | |
| this.retryInterval_ = 50; | |
| this.isSWFReady = this.flashHasLoaded_ = false; | |
| this.currentStream = null; | |
| if (typeof j == "object") | |
| for (var l in j) this.addFlashVar(l, j[l]); | |
| this.addFlashVar("objectName", this.name); | |
| this.addFlashVar("readyCallback", this.name + ".onSWFReady"); | |
| this.createFlashPlayer(); | |
| if (j && j.source) this.currentStream = | |
| j | |
| }; | |
| TARGET.EverestVideoPlayer.prototype.onSWFReady = function() { | |
| if (this.isSWFReady != true) { | |
| this.isSWFReady = true; | |
| if (this.currentStream) try { | |
| if (this.flashPlayer_ == null) this.flashPlayer_ = this.getFlashPlayer(); | |
| this.flashPlayer_.source(this.currentStream); | |
| log("success") | |
| } catch (a) { | |
| log("error " + a) | |
| } | |
| } | |
| }; | |
| TARGET.EverestVideoPlayer.prototype.setFlashId = function(a) { | |
| this.flashId_ = a | |
| }; | |
| TARGET.EverestVideoPlayer.prototype.setPlayerUrl = function(a) { | |
| this.playerUrl_ = a | |
| }; | |
| TARGET.EverestVideoPlayer.prototype.setVersion = function(a) { | |
| this.version_ = a | |
| }; | |
| TARGET.EverestVideoPlayer.prototype.setExpressInstallUrl = function(a) { | |
| this.expressInstallUrl_ = a | |
| }; | |
| TARGET.EverestVideoPlayer.prototype.addParameter = function(a, b) { | |
| for (var d = false, f = 0; !d && f < this.flashParams_.length; ++f) | |
| if (a == this.flashParams_[f].name) { | |
| this.flashParams_[f].value = b; | |
| d = true | |
| } | |
| d || this.flashParams_.push({ | |
| name: a, | |
| value: b | |
| }) | |
| }; | |
| TARGET.EverestVideoPlayer.prototype.addFlashVar = function(a, b) { | |
| this.flashVars_.push({ | |
| name: a, | |
| value: b | |
| }) | |
| }; | |
| TARGET.EverestVideoPlayer.prototype.movieIsLoaded = function() { | |
| log("movieIsLoaded :: " + this.flashHasLoaded_ + " : " + this.flashPlayer_ + " : " + this.flashPlayer_.PercentLoaded()); | |
| if (this.flashHasLoaded_) return true; | |
| try { | |
| if (this.flashPlayer_ && this.flashPlayer_.PercentLoaded()) | |
| if (this.flashPlayer_.PercentLoaded() == 100) return this.flashHasLoaded_ = true; | |
| else return false; | |
| else return false | |
| } catch (a) { | |
| log("movieIsLoaded: error" + a); | |
| return false | |
| } | |
| }; | |
| TARGET.EverestVideoPlayer.prototype.playVideo = function(a) { | |
| this.currentStream = a; | |
| this.flashPlayer_ = this.getFlashPlayer(); | |
| if (this.flashPlayer_ == null) { | |
| this.createFlashPlayer(); | |
| this.flashPlayer_ = this.getFlashPlayer(); | |
| log("success") | |
| } else if (this.isSWFReady) this.flashPlayer_.source(a); | |
| else this.currentStream = a | |
| }; | |
| TARGET.EverestVideoPlayer.prototype.pause = function() { | |
| this.flashPlayer_ = this.getFlashPlayer(); | |
| this.flashPlayer_ != null && this.flashPlayer_.pause() | |
| }; | |
| TARGET.EverestVideoPlayer.prototype.play = function() { | |
| this.flashPlayer_ = this.getFlashPlayer(); | |
| this.flashPlayer_ != null && this.flashPlayer_.playVideo() | |
| }; | |
| TARGET.EverestVideoPlayer.prototype.stop = function() { | |
| this.flashPlayer_ = this.getFlashPlayer(); | |
| this.flashPlayer_ != null && this.flashPlayer_.stopVideo() | |
| }; | |
| TARGET.EverestVideoPlayer.prototype.close = function() { | |
| this.flashPlayer_ = this.getFlashPlayer(); | |
| this.flashPlayer_ != null && this.flashPlayer_.close() | |
| }; | |
| TARGET.EverestVideoPlayer.prototype.getFlashPlayer = function() { | |
| var a = null, | |
| b = document.getElementById(this.flashId_); | |
| if (b) { | |
| var d = b.getElementsByTagName("object")[0]; | |
| if (!d || d && typeof b.SetVariable != "undefined") a = b; | |
| else if (typeof d.SetVariable != "undefined") a = d | |
| } | |
| return a | |
| }; | |
| TARGET.EverestVideoPlayer.prototype.createFlashPlayer = function(a) { | |
| if (typeof swfobject != "undefined") { | |
| for (var b = {}, d = {}, f = 0; f < this.flashVars_.length; ++f) b[this.flashVars_[f].name] = this.flashVars_[f].value; | |
| if (typeof a != "undefined") b.defaultVideo = escape(a); | |
| if (this.width_ >= 0) b.width = this.width_; | |
| if (this.height_ >= 0) b.height = this.height_; | |
| for (f = 0; f < this.flashParams_.length; ++f) d[this.flashParams_[f].name] = this.flashParams_[f].value; | |
| try { | |
| swfobject.embedSWF(this.playerUrl_, this.containerId_, this.width_, this.height_, | |
| this.version_, this.expressInstallUrl_, b, d, { | |
| id: this.flashId_, | |
| name: this.flashId_ | |
| }); | |
| log("player created"); | |
| return true | |
| } catch (g) { | |
| log("error " + g); | |
| return false | |
| } | |
| } else if (typeof SWFObject != "undefined") { | |
| b = new SWFObject(this.playerUrl_, this.flashId_, this.width_, this.height_, this.version_); | |
| for (f = 0; f < this.flashParams_.length; ++f) b.addParam(this.flashParams_[f].name, this.flashParams_[f].value); | |
| typeof a != "undefined" && b.addVariable("defaultVideo", escape(a)); | |
| for (f = 0; f < this.flashVars_.length; ++f) b.addVariable(this.flashVars_[f].name, | |
| this.flashVars_[f].value); | |
| this.width_ >= 0 && b.addVariable("width", this.width_); | |
| this.height_ >= 0 && b.addVariable("height", this.height_); | |
| try { | |
| if (b.write(this.containerId_)) { | |
| log("player created"); | |
| return true | |
| } else return false | |
| } catch (j) { | |
| log("error " + j); | |
| return false | |
| } | |
| } | |
| }; | |
| (function(a) { | |
| var b = a(window), | |
| d = a(document), | |
| f = { | |
| overlayId: "overlay", | |
| overlayType: "modal", | |
| mode: false, | |
| template: "default", | |
| content: false, | |
| image: false, | |
| data: null, | |
| closeLink: true, | |
| validate: true, | |
| position: "body", | |
| x: false, | |
| y: false, | |
| width: false, | |
| height: false, | |
| intercept: false, | |
| passForm: false, | |
| curtainClose: false, | |
| componentPop: false, | |
| gMap: { | |
| QuickView: "Quick Info", | |
| addtocart: "Add to Cart" | |
| }, | |
| gMapVal: null | |
| }, | |
| g = a.extend({ | |
| target: false, | |
| contentOverride: false | |
| }, f); | |
| a.fn.overlay = function(j) { | |
| d.delegate(this.selector, "click.overlay", { | |
| options: j | |
| }, | |
| function(l) { | |
| l.preventDefault(); | |
| new a.overlay(this, a.extend({}, f, l.data.options instanceof jQuery ? { | |
| contentOverride: l.data.options | |
| } : l.data.options || {}), false) | |
| }); | |
| return this | |
| }; | |
| a.overlay = function(j, l, o) { | |
| this.isLoad = o ? o : false; | |
| this.body = a("body"); | |
| this.options = l; | |
| this.element = j ? a(j) : this.options.target instanceof jQuery ? this.options.target.eq(0) : this.options.target && a(this.options.target).eq(0); | |
| this.options.target = this.element.length ? this.element : false; | |
| this.setup() | |
| }; | |
| a.overlay.load = function(j) { | |
| j = a.extend({}, | |
| g, j || {}); | |
| new a.overlay(false, j, true) | |
| }; | |
| a.overlay.exception = function(j, l, o) { | |
| o = typeof j === "boolean" ? j : typeof l === "boolean" ? l : typeof o === "boolean" ? o : true; | |
| l = a.isFunction(j) ? j : a.isFunction(l) ? l : a.isFunction(o) ? o : false; | |
| var v = j = typeof j === "string" ? j : "Stopped due to an undefined exception."; | |
| try { | |
| o && console.log("Overlay.js exception, " + j); | |
| l && l() | |
| } catch (A) { | |
| window.console && console.log(A) | |
| } | |
| window.onerror = function() { | |
| return true | |
| }; | |
| setTimeout(function() { | |
| window.onerror = null | |
| }, 100); | |
| throw v; | |
| }; | |
| a.overlay.preventDuplicate = | |
| function(j, l) { | |
| l = typeof l === "boolean" ? l : true; | |
| var o = j && j instanceof jQuery && j.length ? j.eq(0) : j && (j = a(j)) && j.length ? j : false, | |
| v = function() { | |
| a.overlay.currentOverlay.find(".module-title:first").length ? a.overlay.currentOverlay.find(".module-title:first").focus() : a.overlay.currentOverlay.find(".content").focus() | |
| }; | |
| o || a.overlay.exception('The "target" supplied to "$.overlay.preventDuplicate" was not valid.', l); | |
| o.hasClass("overlay-open") && a.overlay.exception('"$.overlay.preventDuplicate" found this overlay already open.', | |
| v, l) | |
| }; | |
| a.overlay.prototype = { | |
| inited: false, | |
| setup: function() { | |
| var j = this.body.find("#overlay-loader"), | |
| l = this.body.find("#overlay-curtain"); | |
| this.curtain = l.length ? l : a('<div id="overlay-curtain"></div>').appendTo(this.body); | |
| this.loadAnimation = j.length ? j : a('<div id="overlay-loader"></div>').appendTo(this.body); | |
| this.element && a.overlay.preventDuplicate(this.element, false); | |
| this.consolidateOptions(); | |
| this.init() | |
| }, | |
| init: function() { | |
| var j = this, | |
| l = "click.closeOverlay"; | |
| if (j.element) { | |
| j.element.data("overlay", {}); | |
| for (option in j.options) j.element.data("overlay")[option] = | |
| j.options[option]; | |
| if (j.element.hasClass("overlay-open")) return false; | |
| else a.overlay.originalTarget || j.element.addClass("overlay-open state-disabled") | |
| } | |
| j.body.bind("loading.overlay", function() { | |
| j.body.addClass("overlay-loading").unbind("loading.overlay") | |
| }).bind("loaded.overlay", function() { | |
| j.preloader("hide"); | |
| j.body.removeClass("overlay-loading").unbind("loaded.overlay") | |
| }); | |
| l = Target.support.isTouch ? "click.closeOverlay touchend" : l; | |
| j.body.bind(l, function(o) { | |
| if (a.overlay.activeOverlay) | |
| if (a.overlay.currentOverlay) | |
| if (!a(o.target).parents(".overlay, .modal, .datepicker").length) | |
| if (!a(o.target).is(".prevFrame, .nextFrame, #zoompicker")) { | |
| a.overlay.currentOverlay.trigger("close.overlay", [true]); | |
| return false | |
| } | |
| }); | |
| if (a.overlay.activeOverlay) { | |
| j.body.bind("overlay-removed", function() { | |
| j.getContent() | |
| }); | |
| a.overlay.overlayFlow = true; | |
| a.overlay.currentOverlay.trigger("close.overlay") | |
| } else { | |
| a.overlay.overlayFlow = false; | |
| a.overlay.originalTarget = j.element; | |
| j.preloader("show"); | |
| j.getContent() | |
| } | |
| }, | |
| getContent: function() { | |
| var j = this, | |
| l = arguments; | |
| l = l.length ? l[0] : j.options.content; | |
| var o = j.inited === false && a.isFunction(j.options.intercept); | |
| j.currentTemplate = a.overlay.activeOverlay && !j.options.contentOverride ? a.overlay.currentOverlay : | |
| a('<div class="overlay {templateClass}"><div class="content" tabindex="-1"></div><div id="overlay-loading-curtain"></div></div>'.replace("{templateClass}", j.options.template)); | |
| j.currentTemplate.find(".content"); | |
| var v = j.currentTemplate.find("form"); | |
| v = j.options.data !== null && !j.inited ? j.options.data : j.inited && v.length ? v.serialize() : null; | |
| try { | |
| if (typeof l != "undefined" && l != false && l.search(/^\/qi\//i) == 0) { | |
| j.options.overlayId = "QuickView"; | |
| j.options.backLog = "true" | |
| } | |
| } catch (A) {} | |
| j.inited || j.body.trigger("loading.overlay"); | |
| if (j.options.passForm) v = a(j.options.passForm).serialize(); | |
| if (j.options.overlayId) { | |
| if (j.options.overlayId === "QuickView") j.options.overlayType = "modal"; | |
| if (typeof gomez !== "undefined") { | |
| if (j.options.gMapVal) j.options.gMap[j.options.overlayId] = j.options.gMapVal; | |
| try { | |
| if (typeof j.options.gMap[j.options.overlayId] !== "undefined") { | |
| gomez.startInterval(j.options.gMap[j.options.overlayId]); | |
| gomez.pgId = j.options.gMap[j.options.overlayId] | |
| } | |
| } catch (C) {} | |
| } | |
| } | |
| if (j.options.contentOverride) { | |
| j.show(j.options.contentOverride); | |
| j.inited = true | |
| } else if (j.options.image) { | |
| l = j.options.image.split("|"); | |
| var q = l[0], | |
| I = l[1] ? "?" + l[1].replace("*", "&") : "", | |
| K = l[2] || "", | |
| Q = l[3] || ""; | |
| l = l[4] || ""; | |
| v = new Image; | |
| v.src = q + I; | |
| v.alt = K; | |
| v.width = Q; | |
| v.height = l; | |
| j.show(v); | |
| j.inited = true | |
| } else { | |
| try { | |
| if (l != "" && l.indexOf("QuickInfoView?") > -1) { | |
| l = l.replace("QuickInfoView?", "qi?"); | |
| q = l.split("?")[0]; | |
| I = l.split("?")[1].split("&"); | |
| K = l.split("?")[1]; | |
| for (var n = "", G = 0; G < I.length; G++) { | |
| Q = I[G].split("="); | |
| if (Q[0] == "partNumber") n = Q[1] | |
| } | |
| if (n != "" && n != "undefined") l = q + "/-/A-" + n + "?" + K | |
| } else if (a("body").hasClass("tsa") && | |
| l.indexOf("/p/")) l = l.replace("/p/", "/qi/") | |
| } catch (p) {} | |
| a.ajax({ | |
| url: l, | |
| data: v, | |
| dataType: o ? "json" : "html", | |
| cache: false, | |
| type: "POST", | |
| curtain: false, | |
| success: function(t, z, D) { | |
| z = t; | |
| if ((D = D.getResponseHeader("X-Redirect")) && D !== "") return window.location.replace(D); | |
| if (o) { | |
| if (z = j.options.intercept.call(j, t)) { | |
| if (z.overlayOptions) | |
| for (option in z.overlayOptions) j.options[option] && (j.options[option] = z.overlayOptions[option]); | |
| z.overlayOptions.html ? j.show(z.overlayOptions.html) : a.overlay.exception("No html was returned via the object's overlayOptions.html property") | |
| } | |
| } else j.show(t); | |
| j.inited = true | |
| }, | |
| error: function(t) { | |
| fromQi = false; | |
| if (t.status === 404) | |
| if (t.responseText) j.show(t.responseText); | |
| else { | |
| overlay.attr("aria-busy", "false"); | |
| overlay.removeClass("loading") | |
| } | |
| t = "Request failed: " + j.options.content; | |
| window.console && console.log(t) | |
| } | |
| }) | |
| } | |
| }, | |
| show: function(j) { | |
| var l = this, | |
| o; | |
| if (a.overlay.activeOverlay) { | |
| o = a.overlay.currentOverlay; | |
| if (a.overlay.currentOverlay.redirect) { | |
| l.body.bind("overlay-removed", function() { | |
| window.location.href = a.overlay.currentOverlay.redirect | |
| }); | |
| return o.trigger("close.overlay") | |
| } | |
| o.find(".content").html(j); | |
| o.trigger("overlay-before-show"); | |
| l.processContent(); | |
| o.trigger("reposition.overlay"); | |
| o.trigger("overlay-show") | |
| } else { | |
| var v = b.width(), | |
| A = b.height(), | |
| C = l.options.overlayType === "modal", | |
| q = {}; | |
| q.left = "-9999em"; | |
| l.options.width && (q.width = l.options.width + "px"); | |
| l.options.height && (q.height = l.options.height + "px"); | |
| var I = function() { | |
| var K = l.position(); | |
| if (C) { | |
| b.bind("resize.overlay", function() { | |
| l.curtain.width(b.width()); | |
| l.curtain.height(b.height()) | |
| }); | |
| if (Target.support.isTouch) { | |
| v = window.innerWidth; | |
| A = window.innerHeight | |
| } | |
| A = | |
| a.browser.msie && parseInt(a.browser.version) >= 8 ? A + 20 : A; | |
| l.curtain.css({ | |
| width: v, | |
| height: A, | |
| opacity: 0.3, | |
| background: "#000" | |
| }); | |
| l.curtain.stop().fadeIn("fast", function() { | |
| l.curtain.addClass("curtain-open"); | |
| o.css({ | |
| top: K.y, | |
| left: K.x | |
| }); | |
| o.addClass("modal"); | |
| o.fadeIn(500, function() { | |
| o.trigger("overlay-show"); | |
| l.body.trigger("loaded.overlay") | |
| }) | |
| }) | |
| } else { | |
| if (a.ui.draggable) { | |
| o.prepend('<div class="drag-handle"/>'); | |
| o.draggable({ | |
| handle: ".drag-handle", | |
| containment: "document", | |
| start: function() { | |
| o.data("reposition", false) | |
| } | |
| }) | |
| } | |
| o.css({ | |
| top: K.y, | |
| left: K.x | |
| }); | |
| o.addClass("layer"); | |
| o.fadeIn(500, function() { | |
| o.trigger("overlay-show"); | |
| l.body.trigger("loaded.overlay") | |
| }) | |
| } | |
| }; | |
| l.loadingCurtainMarkup = l.currentTemplate.find("#overlay-loading-curtain"); | |
| l.currentTemplate.attr("id", l.options.overlayId); | |
| l.currentTemplate.css(q); | |
| l.body.append(l.currentTemplate); | |
| o = a.overlay.currentOverlay = l.currentTemplate; | |
| delete l.currentTemplate; | |
| a.overlay.activeOverlay = true; | |
| o.data("options", l.options); | |
| contentArea = o.find(".content"); | |
| contentArea.html(j); | |
| o.bind("overlay-loading", | |
| function() { | |
| o.attr("aria-busy", "true"); | |
| o.addClass("loading"); | |
| l.loadingCurtainMarkup.css({ | |
| opacity: 0.6, | |
| "background-color": "#fff", | |
| width: o.width(), | |
| height: o.height() | |
| }) | |
| }); | |
| o.bind("overlay-show", function() { | |
| o.attr("aria-busy", "false"); | |
| o.removeClass("loading"); | |
| if (!o.isSecure) { | |
| o.unbind("keydown.overlay").bind("keydown.overlay", function(K) { | |
| l.options.mode === "force" || !l.options.closeLink || K.keyCode === 27 && o.trigger("close.overlay", [true]) | |
| }); | |
| o.find(".module-title").length ? l.shiftFocus(o.find(".module-title").get(0)) : | |
| l.shiftFocus(o.find(".content").get(0)) | |
| } | |
| }); | |
| o.bind("close.overlay", function(K, Q) { | |
| l.remove(Q) | |
| }); | |
| o.bind("reposition.overlay", function() { | |
| if (o.data("reposition") !== false) { | |
| var K = l.position(); | |
| o.css({ | |
| top: K.y, | |
| left: K.x | |
| }) | |
| } | |
| }); | |
| o.bind("retemplate.overlay", function(K, Q, n) { | |
| K = o.hasClass("layer") ? "overlay layer " : "overlay modal "; | |
| Q = Q ? Q : o.attr("id"); | |
| o.attr({ | |
| id: Q, | |
| "class": K + n | |
| }) | |
| }); | |
| if (o.isSecure) o.bind("loaded-ssl", function() { | |
| o.trigger("overlay-before-show"); | |
| I() | |
| }); | |
| else { | |
| o.trigger("overlay-before-show"); | |
| l.processContent(); | |
| I() | |
| } | |
| } | |
| }, | |
| shiftFocus: function(j) { | |
| var l = a(j); | |
| setTimeout(function() { | |
| l.attr("tabindex", -1); | |
| j.focus(); | |
| a(document).trigger("updateBuffer.framework"); | |
| if (j === a.overlay.originalTarget) a.overlay.originalTarget = false; | |
| l.removeAttr("tabindex") | |
| }, 0) | |
| }, | |
| remove: function(j) { | |
| a.overlay.overlayFlow = j ? false : true; | |
| if (a.overlay.activeOverlay) { | |
| var l, o, v; | |
| a.overlay.activeOverlay = false; | |
| l = this; | |
| o = l.body; | |
| v = a.overlay.currentOverlay.data("options").overlayId; | |
| a.overlay.currentOverlay.trigger("overlay-before-hide"); | |
| if (a.browser.msie && a.browser.version < | |
| 8) { | |
| l.curtain.css({ | |
| height: 0, | |
| width: 0, | |
| visibility: "visible", | |
| display: "block" | |
| }).removeClass("curtain-open"); | |
| try { | |
| a.hideCurtain(); | |
| if (v && typeof v !== "undefined") { | |
| v = a("#" + v); | |
| typeof v !== "undefined" && v.remove() | |
| } | |
| } catch (A) {} | |
| a.overlay.currentOverlay = false; | |
| o.trigger("overlay-hide", ["#" + l.options.overlayId]); | |
| o.trigger("overlay-removed").unbind("overlay-removed") | |
| } else a.overlay.currentOverlay.fadeOut("fast", function() { | |
| if (l.curtain.hasClass("curtain-open")) { | |
| l.curtain.fadeOut("fast", function() { | |
| l.curtain.css({ | |
| height: 0, | |
| width: 0, | |
| visibility: "visible", | |
| display: "block" | |
| }).removeClass("curtain-open") | |
| }); | |
| b.unbind("resize.overlay") | |
| } | |
| try { | |
| a.hideCurtain(); | |
| if (v && typeof v !== "undefined") { | |
| v = a("#" + v); | |
| typeof v !== "undefined" && v.remove() | |
| } | |
| } catch (C) {} | |
| a.overlay.currentOverlay = false; | |
| o.trigger("overlay-hide", ["#" + l.options.overlayId]); | |
| o.trigger("overlay-removed").unbind("overlay-removed") | |
| }); | |
| b.unbind("resize.overlay"); | |
| if (!a.overlay.overlayFlow) | |
| if (a.overlay.originalTarget) { | |
| a.overlay.originalTarget.removeClass("overlay-open state-disabled"); | |
| l.shiftFocus(a.overlay.originalTarget); | |
| a(document).trigger("updateBuffer.framework") | |
| } | |
| l.inited = false | |
| } | |
| }, | |
| processContent: function() { | |
| var j = this, | |
| l = a.overlay.currentOverlay, | |
| o = l.find("form"); | |
| if (!j.inited) { | |
| j.options.componentPop && l.append('<div id="arrow-icon"></div>'); | |
| j.options.mode !== "force" && j.options.closeLink && l.append('<a id="close" href="#close" class="icon-sprite close"><span class="screen-reader-only">Close</span></a>'); | |
| l.delegate("a.async", "click", function(v) { | |
| j.getContent(v.currentTarget.href); | |
| return false | |
| }); | |
| l.delegate("#close, .close, .cancel", "click", function() { | |
| l.trigger("close.overlay", [true]); | |
| return false | |
| }) | |
| } | |
| o.length && o.each(function(v, A) { | |
| A = a(this); | |
| A.data("overlay-form", true); | |
| A.data("overlay-form-index", v); | |
| A.delegate("input:submit, button", "click", function() { | |
| var C = a(this), | |
| q = C.attr("name"), | |
| I = C.attr("class").replace(/button/, ""), | |
| K = function() { | |
| var Q; | |
| if (a.browser.msie) { | |
| if (C.is("button")) { | |
| var n = C.html(); | |
| C.html(""); | |
| Q = C.attr("value"); | |
| C.html(n) | |
| } | |
| } else Q = C.attr("value"); | |
| return Q | |
| }(); | |
| I = a('<input type="hidden" name="' + | |
| q + '" class="' + I + '" value="' + K + '"/>'); | |
| C.parent().find('input[name="' + q + '"]').length || C.after(I) | |
| }); | |
| j.submitHandler(A) | |
| }) | |
| }, | |
| submitHandler: function(j) { | |
| var l = this, | |
| o = j.data("overlay-form-index"), | |
| v = j.data("events"), | |
| A = l.options.validate, | |
| C = Target.validation, | |
| q = C.length ? C[o] : C, | |
| I = j.find("input, button").hasClass("sync"), | |
| K, Q; | |
| a.overlay.currentOverlay.bind("overlay-show", function(n) { | |
| a.overlay.currentOverlay.unbind(n); | |
| if (A && q.submitHandler) { | |
| j.bind("pausesubmit.overlay", { | |
| submitHandler: q.submitHandler | |
| }, function(G) { | |
| G.data.submitHandler.call(j.data("validator"), | |
| j.get(0)) | |
| }); | |
| delete q.submitHandler | |
| } | |
| K = v && v.pausesubmit ? v.pausesubmit.length - 1 : 0; | |
| v && v.submit ? j.bind("resumesubmit.overlay", { | |
| submitHandler: v.submit[0].handler | |
| }, function(G) { | |
| !K-- && G.data.submitHandler.call(j.get(0), G) | |
| }) : j.bind("resumesubmit.overlay", function() { | |
| K-- || (I ? j.get(0).submit() : l.getContent(j.attr("action"))) | |
| }); | |
| j.unbind("submit").bind("submit.overlay", function(G) { | |
| G.preventDefault(); | |
| Q = v && v.pausesubmit ? "pausesubmit" : "resumesubmit"; | |
| A && j.validate(q).form() && a.overlay.currentOverlay.trigger("overlay-loading") && | |
| j.trigger(Q + ".overlay"); | |
| !A && a.overlay.currentOverlay.trigger("overlay-loading") && j.trigger(Q + ".overlay") | |
| }) | |
| }) | |
| }, | |
| position: function() { | |
| if (this.options.x || this.options.y) return { | |
| x: this.options.x ? this.options.x + "px" : 0, | |
| y: this.options.y ? this.options.y + "px" : 0 | |
| }; | |
| var j = a(window), | |
| l = j.width(), | |
| o = j.height(); | |
| a("#Core"); | |
| var v = j.scrollTop(), | |
| A = j.scrollLeft(), | |
| C = this.options.overlayType === "layer", | |
| q = this.options.overlayType === "modal", | |
| I = this.options.position === "targetAbove", | |
| K = this.options.position === "targetCenter", | |
| Q = this.options.position === | |
| "targetBelow"; | |
| j = this.options.position; | |
| var n = a.overlay.currentOverlay.width(), | |
| G = a.overlay.currentOverlay.height(), | |
| p = G > o ? v + 10 + "px" : false, | |
| t = { | |
| x: (l - n) / 2 + "px", | |
| y: p ? p : (o - G) / 2 + v + "px" | |
| }; | |
| if (C) { | |
| if (!this.element) | |
| if (this.options.position.jquery && !this.options.position.is("body") && this.options.position.length) { | |
| l = this.options.position; | |
| o = l.offset().top; | |
| v > o && a("html, body").animate({ | |
| scrollTop: o - 10 | |
| }, "fast"); | |
| return { | |
| x: l.offset().left + "px", | |
| y: l.offset().top + "px" | |
| } | |
| } else return t; | |
| q = this.element.width(); | |
| C = this.element.offset().top; | |
| var z = this.element.offset().left; | |
| q = q + z; | |
| z = this.getViewportOffset({ | |
| viewportWidth: l, | |
| viewportTop: v, | |
| positionRight: q + n, | |
| positionTop: C - G / 2 | |
| }); | |
| if (I) return { | |
| x: q - z.x + "px", | |
| y: p ? p : C + z.y - G + "px" | |
| }; | |
| else if (K) return { | |
| x: (l - n) / 2 + A + "px", | |
| y: (o - G) / 2 + v + "px" | |
| }; | |
| else if (Q) return { | |
| x: q - z.x + "px", | |
| y: C + z.y + "px" | |
| }; | |
| else if (this.options.position.jquery && !this.options.position.is("body") && j.length) { | |
| l = this.element.closest(j); | |
| l = l.length ? l : j; | |
| o = l.offset().top; | |
| v > o && a("html, body").animate({ | |
| scrollTop: o - 10 | |
| }, "fast"); | |
| return { | |
| x: l.offset().left + "px", | |
| y: l.offset().top + | |
| "px" | |
| } | |
| } else return t | |
| } | |
| if (q) return t | |
| }, | |
| preloader: function(j) { | |
| var l, o, v; | |
| if (j === "hide") this.loadAnimation.hide(); | |
| else { | |
| l = a(window); | |
| j = l.width(); | |
| o = l.height(); | |
| l.scrollTop(); | |
| l = this.loadAnimation.width(); | |
| v = this.loadAnimation.height(); | |
| wBody = this.body.width(); | |
| hBody = this.body.height(); | |
| this.loadAnimation.hide(); | |
| this.loadAnimation.css({ | |
| top: o / 2 - v / 2, | |
| left: j / 2 - l / 2 | |
| }); | |
| this.loadAnimation.fadeIn() | |
| } | |
| }, | |
| getViewportOffset: function(j) { | |
| var l = { | |
| x: 0, | |
| y: 0 | |
| }; | |
| if (j.positionRight > j.viewportWidth) l.x = j.positionRight - j.viewportWidth + 10; | |
| if (j.viewportTop > | |
| j.positionTop) l.y = j.viewportTop - j.positionTop + 10; | |
| return l | |
| }, | |
| consolidateOptions: function() { | |
| var j = this, | |
| l = j.options, | |
| o = {}; | |
| j.element && j.element.attr("href") !== undefined && (o = j.parseQueryString(j.element.attr("href"))); | |
| a.each(["x", "y", "mode", "data", "width", "height", "template", "overlayId", "image", "gMap", "gMapVal"], function(v, A) { | |
| j.options[A] = o[A] !== undefined ? o[A] : l[A] | |
| }); | |
| j.options.position = /^target/.test(o.position) ? o.position : a(o.position).eq(0).length && a(o.position).eq(0) || a(j.options.position); | |
| j.options.overlayType = | |
| o.overlayType !== undefined ? o.overlayType : j.element && j.element.hasClass("layer") ? "layer" : j.element && j.element.hasClass("modal") ? "modal" : j.options.overlayType; | |
| j.options.content = o.content !== undefined ? o.content : j.options.content ? j.options.content : j.element ? j.element.attr("href") : j.options.content; | |
| j.options.closeLink = o.closeLink !== undefined ? o.closeLink === "true" : j.options.closeLink; | |
| j.options.validate = a.validator ? o.validate !== undefined && o.validate === "true" || j.options.validate : false; | |
| j.options.passForm = o.passForm !== | |
| undefined ? a(o.passForm).eq(0).length && a(o.passForm).eq(0) || false : j.options.passForm; | |
| if ((j.options.content === "" || j.options.content === "#" || !j.options.content) && !j.options.contentOverride) a.overlay.exception("self.options.content and self.options.contentOverride are false.") | |
| }, | |
| parseQueryString: function(j) { | |
| var l = {}; | |
| j = j.split("?")[1]; | |
| if (!j) return false; | |
| j = decodeURI(j); | |
| j = j.split("&"); | |
| for (var o = 0; o < j.length; o++) | |
| if (j[o]) { | |
| var v = j[o].indexOf("="); | |
| if (v == -1) l[j[o]] = ""; | |
| else l[j[o].substring(0, v)] = j[o].substr(v + | |
| 1).replace(/#amp#/, "&") | |
| } | |
| return l | |
| } | |
| } | |
| })(jQuery); | |
| $(window).trigger("register.framework", ["plugin", "Overlay", $.overlay.registration]); | |
| $(".modal:not(.overlay), .layer:not(.overlay)").overlay(); | |
| (function(a) { | |
| function b(m, u, y, H) { | |
| H = { | |
| data: H || (u ? u.data : {}), | |
| _wrap: u ? u._wrap : null, | |
| tmpl: null, | |
| parent: u || null, | |
| nodes: [], | |
| calls: v, | |
| nest: A, | |
| wrap: C, | |
| html: q, | |
| update: I | |
| }; | |
| m && a.extend(H, m, { | |
| nodes: [], | |
| parent: u | |
| }); | |
| if (y) { | |
| H.tmpl = y; | |
| H._ctnt = H._ctnt || H.tmpl(a, H); | |
| H.key = ++D; | |
| (B.length ? p : G)[D] = H | |
| } | |
| return H | |
| } | |
| function d(m, u, y) { | |
| var H; | |
| y = y ? a.map(y, function(J) { | |
| return typeof J === "string" ? m.key ? J.replace(/(<\w+)(?=[\s>])(?![^>]*_tmplitem)([^>]*)/g, "$1 " + Q + '="' + m.key + '" $2') : J : d(J, m, J._ctnt) | |
| }) : m; | |
| if (u) return y; | |
| y = y.join(""); | |
| y.replace(/^\s*([^<\s][^<]*)?(<[\w\W]+>)([^>]*[^>\s])?\s*$/, | |
| function(J, R, U, X) { | |
| H = a(U).get(); | |
| o(H); | |
| if (R) H = f(R).concat(H); | |
| if (X) H = H.concat(f(X)) | |
| }); | |
| return H ? H : f(y) | |
| } | |
| function f(m) { | |
| var u = document.createElement("div"); | |
| u.innerHTML = m; | |
| return a.makeArray(u.childNodes) | |
| } | |
| function g(m) { | |
| return new Function("jQuery", "$item", "var $=jQuery,call,_=[],$data=$item.data;with($data){_.push('" + a.trim(m).replace(/([\\'])/g, "\\$1").replace(/[\r\t\n]/g, " ").replace(/\$\{([^\}]*)\}/g, "{{= $1}}").replace(/\{\{(\/?)(\w+|.)(?:\(((?:[^\}]|\}(?!\}))*?)?\))?(?:\s+(.*?)?)?(\(((?:[^\}]|\}(?!\}))*?)\))?\s*\}\}/g, | |
| function(u, y, H, J, R, U, X) { | |
| u = a.tmpl.tag[H]; | |
| if (!u) throw "Template command not found: " + H; | |
| H = u._default || []; | |
| if (U && !/\w$/.test(R)) { | |
| R += U; | |
| U = "" | |
| } | |
| if (R) { | |
| R = l(R); | |
| X = X ? "," + l(X) + ")" : U ? ")" : ""; | |
| X = U ? R.indexOf(".") > -1 ? R + l(U) : "(" + R + ").call($item" + X : R; | |
| U = U ? X : "(typeof(" + R + ")==='function'?(" + R + ").call($item):(" + R + "))" | |
| } else U = X = H.$1 || "null"; | |
| J = l(J); | |
| return "');" + u[y ? "close" : "open"].split("$notnull_1").join(R ? "typeof(" + R + ")!=='undefined' && (" + R + ")!=null" : "true").split("$1a").join(U).split("$1").join(X).split("$2").join(J ? J.replace(/\s*([^\(]+)\s*(\((.*?)\))?/g, | |
| function(ga, ja, la, ka) { | |
| return (ka = ka ? "," + ka + ")" : la ? ")" : "") ? "(" + ja + ").call($item" + ka : ga | |
| }) : H.$2 || "") + "_.push('" | |
| }) + "');}return _;") | |
| } | |
| function j(m, u) { | |
| m._wrap = d(m, true, a.isArray(u) ? u : [n.test(u) ? u : a(u).html()]).join("") | |
| } | |
| function l(m) { | |
| return m ? m.replace(/\\'/g, "'").replace(/\\\\/g, "\\") : null | |
| } | |
| function o(m) { | |
| function u(ja) { | |
| function la(P) { | |
| P += y; | |
| pa = R[P] = R[P] || b(pa, G[pa.parent.key + y] || pa.parent) | |
| } | |
| var ka, ra = ja, | |
| pa, xa; | |
| if (xa = ja.getAttribute(Q)) { | |
| for (; ra.parentNode && (ra = ra.parentNode).nodeType === 1 && !(ka = ra.getAttribute(Q));); | |
| if (ka !== xa) { | |
| ra = ra.parentNode ? ra.nodeType === 11 ? 0 : ra.getAttribute(Q) || 0 : 0; | |
| if (!(pa = G[xa])) { | |
| pa = p[xa]; | |
| pa = b(pa, G[ra] || p[ra]); | |
| pa.key = ++D; | |
| G[D] = pa | |
| } | |
| M && la(xa) | |
| } | |
| ja.removeAttribute(Q) | |
| } else if (M && (pa = a.data(ja, "tmplItem"))) { | |
| la(pa.key); | |
| G[pa.key] = pa; | |
| ra = (ra = a.data(ja.parentNode, "tmplItem")) ? ra.key : 0 | |
| } | |
| if (pa) { | |
| for (ka = pa; ka && ka.key != ra;) { | |
| ka.nodes.push(ja); | |
| ka = ka.parent | |
| } | |
| delete pa._ctnt; | |
| delete pa._wrap; | |
| a.data(ja, "tmplItem", pa) | |
| } | |
| } | |
| var y = "_" + M, | |
| H, J, R = {}, | |
| U, X, ga; | |
| U = 0; | |
| for (X = m.length; U < X; U++) | |
| if ((H = m[U]).nodeType === 1) { | |
| J = H.getElementsByTagName("*"); | |
| for (ga = J.length - 1; ga >= 0; ga--) u(J[ga]); | |
| u(H) | |
| } | |
| } | |
| function v(m, u, y, H) { | |
| if (!m) return B.pop(); | |
| B.push({ | |
| _: m, | |
| tmpl: u, | |
| item: this, | |
| data: y, | |
| options: H | |
| }) | |
| } | |
| function A(m, u, y) { | |
| return a.tmpl(a.template(m), u, y, this) | |
| } | |
| function C(m, u) { | |
| var y = m.options || {}; | |
| y.wrapped = u; | |
| return a.tmpl(a.template(m.tmpl), m.data, y, m.item) | |
| } | |
| function q(m, u) { | |
| var y = this._wrap; | |
| return a.map(a(a.isArray(y) ? y.join("") : y).filter(m || "*"), function(H) { | |
| if (u) H = H.innerText || H.textContent; | |
| else { | |
| var J; | |
| if (!(J = H.outerHTML)) { | |
| J = document.createElement("div"); | |
| J.appendChild(H.cloneNode(true)); | |
| J = J.innerHTML | |
| } | |
| H = J | |
| } | |
| return H | |
| }) | |
| } | |
| function I() { | |
| var m = this.nodes; | |
| a.tmpl(null, null, null, this).insertBefore(m[0]); | |
| a(m).remove() | |
| } | |
| var K = a.fn.domManip, | |
| Q = "_tmplitem", | |
| n = /^[^<]*(<[\w\W]+>)[^>]*$|\{\{\! /, | |
| G = {}, | |
| p = {}, | |
| t, z = { | |
| key: 0, | |
| data: {} | |
| }, | |
| D = 0, | |
| M = 0, | |
| B = []; | |
| a.each({ | |
| appendTo: "append", | |
| prependTo: "prepend", | |
| insertBefore: "before", | |
| insertAfter: "after", | |
| replaceAll: "replaceWith" | |
| }, function(m, u) { | |
| a.fn[m] = function(y) { | |
| var H = []; | |
| y = a(y); | |
| var J, R, U; | |
| J = this.length === 1 && this[0].parentNode; | |
| t = G || {}; | |
| if (J && J.nodeType === 11 && J.childNodes.length === 1 && | |
| y.length === 1) { | |
| y[u](this[0]); | |
| H = this | |
| } else { | |
| R = 0; | |
| for (U = y.length; R < U; R++) { | |
| M = R; | |
| J = (R > 0 ? this.clone(true) : this).get(); | |
| a(y[R])[u](J); | |
| H = H.concat(J) | |
| } | |
| M = 0; | |
| H = this.pushStack(H, m, y.selector) | |
| } | |
| y = t; | |
| t = null; | |
| a.tmpl.complete(y); | |
| return H | |
| } | |
| }); | |
| a.fn.extend({ | |
| tmpl: function(m, u, y) { | |
| return a.tmpl(this[0], m, u, y) | |
| }, | |
| tmplItem: function() { | |
| return a.tmplItem(this[0]) | |
| }, | |
| template: function(m) { | |
| return a.template(m, this[0]) | |
| }, | |
| domManip: function(m, u, y) { | |
| if (m[0] && a.isArray(m[0])) { | |
| for (var H = a.makeArray(arguments), J = m[0], R = J.length, U = 0, X; U < R && !(X = a.data(J[U++], | |
| "tmplItem"));); | |
| if (X && M) H[2] = function(ga) { | |
| a.tmpl.afterManip(this, ga, y) | |
| }; | |
| K.apply(this, H) | |
| } else K.apply(this, arguments); | |
| M = 0; | |
| t || a.tmpl.complete(G); | |
| return this | |
| } | |
| }); | |
| a.extend({ | |
| tmpl: function(m, u, y, H) { | |
| var J = !H; | |
| if (J) { | |
| H = z; | |
| m = a.template[m] || a.template(null, m); | |
| p = {} | |
| } else if (!m) { | |
| m = H.tmpl; | |
| G[H.key] = H; | |
| H.nodes = []; | |
| H.wrapped && j(H, H.wrapped); | |
| return a(d(H, null, H.tmpl(a, H))) | |
| } | |
| if (!m) return []; | |
| if (typeof u === "function") u = u.call(H || {}); | |
| y && y.wrapped && j(y, y.wrapped); | |
| u = a.isArray(u) ? a.map(u, function(R, U) { | |
| if (R) R.$index = U; | |
| return R ? b(y, | |
| H, m, R) : null | |
| }) : [b(y, H, m, u)]; | |
| return J ? a(d(H, null, u)) : u | |
| }, | |
| tmplItem: function(m) { | |
| var u; | |
| if (m instanceof a) m = m[0]; | |
| for (; m && m.nodeType === 1 && !(u = a.data(m, "tmplItem")) && (m = m.parentNode);); | |
| return u || z | |
| }, | |
| template: function(m, u) { | |
| if (u) { | |
| if (typeof u === "string") u = g(u); | |
| else if (u instanceof a) u = u[0] || {}; | |
| if (u.nodeType) u = a.data(u, "tmpl") || a.data(u, "tmpl", g(u.innerHTML)); | |
| return typeof m === "string" ? a.template[m] = u : u | |
| } | |
| return m ? typeof m !== "string" ? a.template(null, m) : a.template[m] || a.template(null, n.test(m) ? m : a(m)) : null | |
| }, | |
| encode: function(m) { | |
| return ("" + | |
| m).split("<").join("<").split(">").join(">").split('"').join(""").split("'").join("'") | |
| } | |
| }); | |
| a.extend(a.tmpl, { | |
| tag: { | |
| tmpl: { | |
| _default: { | |
| $2: "null" | |
| }, | |
| open: "if($notnull_1){_=_.concat($item.nest($1,$2));}" | |
| }, | |
| wrap: { | |
| _default: { | |
| $2: "null" | |
| }, | |
| open: "$item.calls(_,$1,$2);_=[];", | |
| close: "call=$item.calls();_=call._.concat($item.wrap(call,_));" | |
| }, | |
| each: { | |
| _default: { | |
| $2: "$index, $value" | |
| }, | |
| open: "if($notnull_1){$.each($1a,function($2){with(this){", | |
| close: "}});}" | |
| }, | |
| "if": { | |
| open: "if(($notnull_1) && $1a){", | |
| close: "}" | |
| }, | |
| "else": { | |
| _default: { | |
| $1: "true" | |
| }, | |
| open: "}else if(($notnull_1) && $1a){" | |
| }, | |
| html: { | |
| open: "if($notnull_1){_.push($1a);}" | |
| }, | |
| "=": { | |
| _default: { | |
| $1: "$data" | |
| }, | |
| open: "if($notnull_1){_.push($.encode($1a));}" | |
| }, | |
| "!": { | |
| open: "" | |
| } | |
| }, | |
| complete: function() { | |
| G = {} | |
| }, | |
| afterManip: function(m, u, y) { | |
| var H = u.nodeType === 11 ? a.makeArray(u.childNodes) : u.nodeType === 1 ? [u] : []; | |
| y.call(m, u); | |
| o(H); | |
| M++ | |
| } | |
| }) | |
| })(jQuery); | |
| Target.register("controller", "PDPCache", { | |
| _catid: null, | |
| priceItemsList: [], | |
| _merchandiseAssoc: [], | |
| _hashMap: {}, | |
| _merchandiseInfo: null, | |
| _jsonPrice: null, | |
| _promoCb: null, | |
| _priceCb: null, | |
| _imageCb: null, | |
| _restoreJSON: null, | |
| _restoreCb: {}, | |
| _cacheURL: null, | |
| _urlCb: null, | |
| _customCb: null, | |
| urlContainer: null, | |
| _view: null, | |
| _isPortable: null, | |
| _skipAjax: null, | |
| init: function() { | |
| this.loadInterface() | |
| }, | |
| loadInterface: function() { | |
| this.jsonPrice = this._restoreJSON = Target.globals.refreshItems; | |
| this.priceItemsList = ["display", "offer", "list", "offer_range", | |
| "list_range", "map_price" | |
| ]; | |
| this.jsonPrice && this._hashMapObj() | |
| }, | |
| load: function(a) { | |
| if (a) { | |
| this._catid = a.catid ? a.catid : ""; | |
| this.preserveCb(a); | |
| this._context = a.context ? a.context : null; | |
| this._promoCb = a.promoCb ? a.promoCb : null; | |
| this._priceCb = a.priceCb ? a.priceCb : null; | |
| this._imageCb = a.pimage ? a.pimage : null; | |
| this._buttonCb = a.buttonCb ? a.buttonCb : null; | |
| this._relatedProdCb = a.relatedProdCb ? a.relatedProdCb : null; | |
| this._zoomParamCb = a.zoomParamCb ? a.zoomParamCb : null; | |
| this._urlCb = a.urlCb ? a.urlCb : null; | |
| this._customCb = a.customCb ? a.customCb : | |
| null; | |
| this.urlContainer = a.elem !== undefined ? $(a.elem) : $("#fetchRefreshContent"); | |
| this._view = a.view !== undefined ? true : false; | |
| this._isPortable = a.isPortable !== undefined ? true : false; | |
| this._skipAjax = a.skipAjax !== undefined && (a.skipAjax == "true" || a.skipAjax == "PDP_SKIP_AJAX") ? true : false; | |
| if (this.urlContainer !== undefined) this._cacheURL = this.urlContainer.attr("href"); | |
| if (this._skipAjax) return false; | |
| else this._isPortable ? this._handleCallback() : this._loadPriceCache() | |
| } | |
| }, | |
| _loadPriceCache: function() { | |
| var a = this, | |
| b = urlObj = {}, | |
| d = Target.controller.header, | |
| f = a._cacheURL; | |
| if (d !== undefined && f && f !== "") { | |
| urlObj = d.unSerialize(f); | |
| $.trim(urlObj.catentryId) !== "" ? $.ajax({ | |
| url: f, | |
| dataType: "json", | |
| type: "POST", | |
| data: b, | |
| curtain: false, | |
| success: function(g) { | |
| if (g) { | |
| if (!(g.error && $.trim(g.error) !== "")) | |
| if (g) { | |
| a.jsonPrice = g; | |
| if (!a._view) a._restoreJSON = g; | |
| if (Target.globals.refreshItems) Target.globals.refreshItems = g; | |
| if (Target.globals.refreshQIItems !== undefined) Target.globals.refreshQIItems = g; | |
| a._handleCallback() | |
| } | |
| } else console.log("AJAX call to fetch updated ProductDetails failed") | |
| }, | |
| error: function() { | |
| console.log("There was some error in fetching the details."); | |
| a._handleCallback() | |
| } | |
| }) : a._handleCallback() | |
| } | |
| }, | |
| _handleCallback: function() { | |
| this._hashMapObj(); | |
| this._handleRelatedProducts(); | |
| this._catid && this.handlePriceCache(this._catid, true) | |
| }, | |
| _handleCollectionObj: function(a) { | |
| a && this._getItemAttributeById(a) | |
| }, | |
| handlePriceCache: function(a, b) { | |
| if (a) { | |
| var d = this._getItemAttributeById(a), | |
| f = this.urlContainer.attr("rel"), | |
| g = this._getCatType(a), | |
| j = $("#fetchQIRefreshContent") ? $("#fetchQIRefreshContent") : | |
| null; | |
| this._priceCb && this._priceCb.call(this._context, d, a); | |
| j != null && j.attr("frmCheckout") && this._customCb && this._customCb.call(this._context, d); | |
| this._urlCb && this._urlCb.call(this._context, d, a); | |
| this._promoCb && this._promoCb.call(this._context, d, b, a); | |
| this._buttonCb && this._buttonCb.call(this._context, d, a, g); | |
| if (b) { | |
| this._relatedProdCb && this._relatedProdCb.call(this._context, this.getMerchandiseAssocCategory()); | |
| if (typeof f != "undefined" && f && f != "") | |
| if (this._catid != f) { | |
| d = this._getItemAttributeById(f); | |
| if (Target.controller.header.getObjSize(d) > | |
| 0) { | |
| this._imageCb && this._imageCb.call(this._context, d.primary_image, d); | |
| this._zoomParamCb && this._zoomParamCb.call(this._context, d.partNumber) | |
| } | |
| } else { | |
| this._imageCb && this._imageCb.call(this._context, d.primary_image, d); | |
| this._zoomParamCb && this._zoomParamCb.call(this._context, d.partNumber) | |
| } else { | |
| this._imageCb && this._imageCb.call(this._context, d.primary_image, d); | |
| this._zoomParamCb && this._zoomParamCb.call(this._context, d.partNumber) | |
| } | |
| } else { | |
| this._imageCb && this._imageCb.call(this._context, d.primary_image, d); | |
| this._zoomParamCb && | |
| this._zoomParamCb.call(this._context, d.partNumber) | |
| } | |
| } | |
| }, | |
| _hashMapObj: function() { | |
| var a = this, | |
| b = ""; | |
| if (a.jsonPrice) { | |
| b = a.jsonPrice.length > 0 ? a.jsonPrice : []; | |
| $.each(b, function(d, f) { | |
| a._hashMap[f.catentry_id] = f | |
| }) | |
| } | |
| }, | |
| _getItemAttributeById: function(a) { | |
| var b = "", | |
| d = ""; | |
| if (this._hashMap && a) { | |
| b = this._hashMap[a]; | |
| if (typeof b != "undefined") d = b.Attributes | |
| } | |
| return d | |
| }, | |
| _handleRelatedProducts: function() { | |
| var a = this, | |
| b = ""; | |
| if (!a.jsonPrice) return false; | |
| b = a.jsonPrice.length > 0 ? a.jsonPrice : []; | |
| $.each(b, function(d, f) { | |
| typeof f.isRelatedProd != | |
| "undefined" && f.isRelatedProd == "true" && a._merchandiseAssoc.push(f.catentry_id) | |
| }) | |
| }, | |
| getMerchandiseAssocCategory: function() { | |
| return this._merchandiseAssoc | |
| }, | |
| _getCatType: function(a) { | |
| return (a = this._hashMap[a]) ? a.catent_type : "" | |
| }, | |
| getObjByPartNumber: function(a) { | |
| var b = {}; | |
| a !== undefined && a !== "" && $.each(this._hashMap, function(d, f) { | |
| if (f) | |
| if (a === f.Attributes.partNumber) { | |
| b = f; | |
| return false | |
| } | |
| }); | |
| return b | |
| }, | |
| _setPriceJSON: function(a) { | |
| if (a) { | |
| this.jsonPrice = a; | |
| this._hashMapObj() | |
| } | |
| }, | |
| restoreJSON: function() { | |
| return this._restoreJSON | |
| }, | |
| preserveCb: function(a) { | |
| var b = this; | |
| if (b._context) return false; | |
| if (typeof a.elem === "undefined") b._restoreCb._urlContainer = $("#fetchRefreshContent"); | |
| if (typeof a === "object") { | |
| a = jQuery.extend(true, {}, a); | |
| $.each(a, function(d, f) { | |
| var g = f ? f : null; | |
| if (d === "pimage") b._restoreCb._imageCb = g; | |
| else if (d === "elem") b._restoreCb._urlContainer = $(g); | |
| else b._restoreCb["_" + d] = g | |
| }) | |
| } | |
| }, | |
| restoreCb: function() { | |
| if (this._restoreCb) { | |
| this._catid = this._restoreCb._catid ? this._restoreCb._catid : null; | |
| this._context = this._restoreCb._context ? this._restoreCb._context : | |
| null; | |
| this._promoCb = this._restoreCb._promoCb ? this._restoreCb._promoCb : null; | |
| this._priceCb = this._restoreCb._priceCb ? this._restoreCb._priceCb : null; | |
| this._imageCb = this._restoreCb._imageCb ? this._restoreCb._imageCb : null; | |
| this._buttonCb = this._restoreCb._buttonCb ? this._restoreCb._buttonCb : null; | |
| this._relatedProdCb = this._restoreCb._relatedProdCb ? this._restoreCb._relatedProdCb : null; | |
| this._zoomParamCb = this._restoreCb._zoomParamCb ? this._restoreCb._zoomParamCb : null; | |
| this._urlCb = this._restoreCb._urlCb ? this._restoreCb._urlCb : | |
| null; | |
| this.urlContainer = this._restoreCb._urlContainer ? this._restoreCb._urlContainer : null; | |
| this._view = this._restoreCb._view ? this._restoreCb._view : null | |
| } | |
| } | |
| }); | |
| (function() { | |
| function a() { | |
| var m = "{}"; | |
| if (n == "userDataBehavior") { | |
| K.load("jStorage"); | |
| try { | |
| m = K.getAttribute("jStorage") | |
| } catch (u) {} | |
| try { | |
| t = K.getAttribute("jStorage_update") | |
| } catch (y) {} | |
| I.jStorage = m | |
| } | |
| g(); | |
| o(); | |
| v() | |
| } | |
| function b() { | |
| var m; | |
| clearTimeout(p); | |
| p = setTimeout(function() { | |
| if (n == "localStorage" || n == "globalStorage") m = I.jStorage_update; | |
| else if (n == "userDataBehavior") { | |
| K.load("jStorage"); | |
| try { | |
| m = K.getAttribute("jStorage_update") | |
| } catch (u) {} | |
| } | |
| if (m && m != t) { | |
| t = m; | |
| var y = C.parse(C.stringify(q.__jstorage_meta.CRC32)), | |
| H; | |
| a(); | |
| H = C.parse(C.stringify(q.__jstorage_meta.CRC32)); | |
| var J, R = [], | |
| U = []; | |
| for (J in y) | |
| if (y.hasOwnProperty(J)) | |
| if (H[J]) y[J] != H[J] && String(y[J]).substr(0, 2) == "2." && R.push(J); | |
| else U.push(J); | |
| for (J in H) | |
| if (H.hasOwnProperty(J)) y[J] || R.push(J); | |
| d(R, "updated"); | |
| d(U, "deleted") | |
| } | |
| }, 25) | |
| } | |
| function d(m, u) { | |
| m = [].concat(m || []); | |
| if (u == "flushed") { | |
| m = []; | |
| for (var y in G) G.hasOwnProperty(y) && m.push(y); | |
| u = "deleted" | |
| } | |
| y = 0; | |
| for (var H = m.length; y < H; y++) { | |
| if (G[m[y]]) | |
| for (var J = 0, R = G[m[y]].length; J < R; J++) G[m[y]][J](m[y], u); | |
| if (G["*"]) { | |
| J = 0; | |
| for (R = G["*"].length; J < R; J++) G["*"][J](m[y], u) | |
| } | |
| } | |
| } | |
| function f() { | |
| var m = | |
| (+new Date).toString(); | |
| if (n == "localStorage" || n == "globalStorage") I.jStorage_update = m; | |
| else if (n == "userDataBehavior") { | |
| K.setAttribute("jStorage_update", m); | |
| K.save("jStorage") | |
| } | |
| b() | |
| } | |
| function g() { | |
| if (I.jStorage) try { | |
| q = C.parse(String(I.jStorage)) | |
| } catch (m) { | |
| I.jStorage = "{}" | |
| } else I.jStorage = "{}"; | |
| Q = I.jStorage ? String(I.jStorage).length : 0; | |
| if (!q.__jstorage_meta) q.__jstorage_meta = {}; | |
| if (!q.__jstorage_meta.CRC32) q.__jstorage_meta.CRC32 = {} | |
| } | |
| function j() { | |
| if (q.__jstorage_meta.PubSub) { | |
| for (var m = +new Date - 2E3, u = 0, y = q.__jstorage_meta.PubSub.length; u < | |
| y; u++) | |
| if (q.__jstorage_meta.PubSub[u][0] <= m) { | |
| q.__jstorage_meta.PubSub.splice(u, q.__jstorage_meta.PubSub.length - u); | |
| break | |
| } | |
| q.__jstorage_meta.PubSub.length || delete q.__jstorage_meta.PubSub | |
| } | |
| try { | |
| I.jStorage = C.stringify(q); | |
| if (K) { | |
| K.setAttribute("jStorage", I.jStorage); | |
| K.save("jStorage") | |
| } | |
| Q = I.jStorage ? String(I.jStorage).length : 0 | |
| } catch (H) {} | |
| } | |
| function l(m) { | |
| if (!m || typeof m != "string" && typeof m != "number") throw new TypeError("Key name must be string or numeric"); | |
| if (m == "__jstorage_meta") throw new TypeError("Reserved key name"); | |
| return true | |
| } | |
| function o() { | |
| var m, u, y, H, J = Infinity, | |
| R = false, | |
| U = []; | |
| clearTimeout(M); | |
| if (!(!q.__jstorage_meta || typeof q.__jstorage_meta.TTL != "object")) { | |
| m = +new Date; | |
| y = q.__jstorage_meta.TTL; | |
| H = q.__jstorage_meta.CRC32; | |
| for (u in y) | |
| if (y.hasOwnProperty(u)) | |
| if (y[u] <= m) { | |
| delete y[u]; | |
| delete H[u]; | |
| delete q[u]; | |
| R = true; | |
| U.push(u) | |
| } else if (y[u] < J) J = y[u]; | |
| if (J != Infinity) M = setTimeout(o, J - m); | |
| if (R) { | |
| j(); | |
| f(); | |
| d(U, "deleted") | |
| } | |
| } | |
| } | |
| function v() { | |
| var m; | |
| if (q.__jstorage_meta.PubSub) { | |
| var u, y = D; | |
| for (m = q.__jstorage_meta.PubSub.length - 1; m >= 0; m--) { | |
| u = | |
| q.__jstorage_meta.PubSub[m]; | |
| if (u[0] > D) { | |
| y = u[0]; | |
| var H = u[1]; | |
| u = u[2]; | |
| if (z[H]) | |
| for (var J = 0, R = z[H].length; J < R; J++) z[H][J](H, C.parse(C.stringify(u))) | |
| } | |
| } | |
| D = y | |
| } | |
| } | |
| var A = window.jQuery || window.$ || (window.$ = {}), | |
| C = { | |
| parse: window.JSON && (window.JSON.parse || window.JSON.decode) || String.prototype.evalJSON && function(m) { | |
| return String(m).evalJSON() | |
| } || A.parseJSON || A.evalJSON, | |
| stringify: Object.toJSON || window.JSON && (window.JSON.stringify || window.JSON.encode) || A.toJSON | |
| }; | |
| if (!C.parse || !C.stringify) throw Error("No JSON support found, include //cdnjs.cloudflare.com/ajax/libs/json2/20110223/json2.js to page"); | |
| var q = { | |
| __jstorage_meta: { | |
| CRC32: {} | |
| } | |
| }, | |
| I = { | |
| jStorage: "{}" | |
| }, | |
| K = null, | |
| Q = 0, | |
| n = false, | |
| G = {}, | |
| p = false, | |
| t = 0, | |
| z = {}, | |
| D = +new Date, | |
| M, B = { | |
| isXML: function(m) { | |
| return (m = (m ? m.ownerDocument || m : 0).documentElement) ? m.nodeName !== "HTML" : false | |
| }, | |
| encode: function(m) { | |
| if (!this.isXML(m)) return false; | |
| try { | |
| return (new XMLSerializer).serializeToString(m) | |
| } catch (u) { | |
| try { | |
| return m.xml | |
| } catch (y) {} | |
| } | |
| return false | |
| }, | |
| decode: function(m) { | |
| var u = "DOMParser" in window && (new DOMParser).parseFromString || window.ActiveXObject && function(y) { | |
| var H = new ActiveXObject("Microsoft.XMLDOM"); | |
| H.async = "false"; | |
| H.loadXML(y); | |
| return H | |
| }; | |
| if (!u) return false; | |
| m = u.call("DOMParser" in window && new DOMParser || window, m, "text/xml"); | |
| return this.isXML(m) ? m : false | |
| } | |
| }; | |
| A.jStorage = { | |
| version: "0.4.3", | |
| set: function(m, u, y) { | |
| l(m); | |
| y = y || {}; | |
| if (typeof u == "undefined") { | |
| this.deleteKey(m); | |
| return u | |
| } | |
| if (B.isXML(u)) u = { | |
| _is_xml: true, | |
| xml: B.encode(u) | |
| }; | |
| else if (typeof u == "function") return; | |
| else if (u && typeof u == "object") u = C.parse(C.stringify(u)); | |
| q[m] = u; | |
| for (var H = q.__jstorage_meta.CRC32, J = C.stringify(u), R = J.length, U = 2538058380 ^ R, X = 0, ga; R >= | |
| 4;) { | |
| ga = J.charCodeAt(X) & 255 | (J.charCodeAt(++X) & 255) << 8 | (J.charCodeAt(++X) & 255) << 16 | (J.charCodeAt(++X) & 255) << 24; | |
| ga = (ga & 65535) * 1540483477 + (((ga >>> 16) * 1540483477 & 65535) << 16); | |
| ga ^= ga >>> 24; | |
| ga = (ga & 65535) * 1540483477 + (((ga >>> 16) * 1540483477 & 65535) << 16); | |
| U = (U & 65535) * 1540483477 + (((U >>> 16) * 1540483477 & 65535) << 16) ^ ga; | |
| R -= 4; | |
| ++X | |
| } | |
| switch (R) { | |
| case 3: | |
| U ^= (J.charCodeAt(X + 2) & 255) << 16; | |
| case 2: | |
| U ^= (J.charCodeAt(X + 1) & 255) << 8; | |
| case 1: | |
| U ^= J.charCodeAt(X) & 255; | |
| U = (U & 65535) * 1540483477 + (((U >>> 16) * 1540483477 & 65535) << 16) | |
| } | |
| U ^= U >>> 13; | |
| U = (U & 65535) * | |
| 1540483477 + (((U >>> 16) * 1540483477 & 65535) << 16); | |
| U ^= U >>> 15; | |
| H[m] = "2." + (U >>> 0); | |
| this.setTTL(m, y.TTL || 0); | |
| d(m, "updated"); | |
| return u | |
| }, | |
| get: function(m, u) { | |
| l(m); | |
| if (m in q) return q[m] && typeof q[m] == "object" && q[m]._is_xml ? B.decode(q[m].xml) : q[m]; | |
| return typeof u == "undefined" ? null : u | |
| }, | |
| deleteKey: function(m) { | |
| l(m); | |
| if (m in q) { | |
| delete q[m]; | |
| typeof q.__jstorage_meta.TTL == "object" && m in q.__jstorage_meta.TTL && delete q.__jstorage_meta.TTL[m]; | |
| delete q.__jstorage_meta.CRC32[m]; | |
| j(); | |
| f(); | |
| d(m, "deleted"); | |
| return true | |
| } | |
| return false | |
| }, | |
| setTTL: function(m, | |
| u) { | |
| var y = +new Date; | |
| l(m); | |
| u = Number(u) || 0; | |
| if (m in q) { | |
| if (!q.__jstorage_meta.TTL) q.__jstorage_meta.TTL = {}; | |
| if (u > 0) q.__jstorage_meta.TTL[m] = y + u; | |
| else delete q.__jstorage_meta.TTL[m]; | |
| j(); | |
| o(); | |
| f(); | |
| return true | |
| } | |
| return false | |
| }, | |
| getTTL: function(m) { | |
| var u = +new Date; | |
| l(m); | |
| if (m in q && q.__jstorage_meta.TTL && q.__jstorage_meta.TTL[m]) return (m = q.__jstorage_meta.TTL[m] - u) || 0; | |
| return 0 | |
| }, | |
| flush: function() { | |
| q = { | |
| __jstorage_meta: { | |
| CRC32: {} | |
| } | |
| }; | |
| j(); | |
| f(); | |
| d(null, "flushed"); | |
| return true | |
| }, | |
| storageObj: function() { | |
| function m() {} | |
| m.prototype = q; | |
| return new m | |
| }, | |
| index: function() { | |
| var m = [], | |
| u; | |
| for (u in q) q.hasOwnProperty(u) && u != "__jstorage_meta" && m.push(u); | |
| return m | |
| }, | |
| storageSize: function() { | |
| return Q | |
| }, | |
| currentBackend: function() { | |
| return n | |
| }, | |
| storageAvailable: function() { | |
| return !!n | |
| }, | |
| listenKeyChange: function(m, u) { | |
| l(m); | |
| G[m] || (G[m] = []); | |
| G[m].push(u) | |
| }, | |
| stopListening: function(m, u) { | |
| l(m); | |
| if (G[m]) | |
| if (u) | |
| for (var y = G[m].length - 1; y >= 0; y--) G[m][y] == u && G[m].splice(y, 1); | |
| else delete G[m] | |
| }, | |
| subscribe: function(m, u) { | |
| m = (m || "").toString(); | |
| if (!m) throw new TypeError("Channel not defined"); | |
| z[m] || | |
| (z[m] = []); | |
| z[m].push(u) | |
| }, | |
| publish: function(m, u) { | |
| m = (m || "").toString(); | |
| if (!m) throw new TypeError("Channel not defined"); | |
| var y = m; | |
| if (!q.__jstorage_meta) q.__jstorage_meta = {}; | |
| if (!q.__jstorage_meta.PubSub) q.__jstorage_meta.PubSub = []; | |
| q.__jstorage_meta.PubSub.unshift([+new Date, y, u]); | |
| j(); | |
| f() | |
| }, | |
| reInit: function() { | |
| a() | |
| } | |
| }; | |
| (function() { | |
| var m = false; | |
| if ("localStorage" in window) try { | |
| window.localStorage.setItem("_tmptest", "tmpval"); | |
| m = true; | |
| window.localStorage.removeItem("_tmptest") | |
| } catch (u) {} | |
| if (m) try { | |
| if (window.localStorage) { | |
| I = | |
| window.localStorage; | |
| n = "localStorage"; | |
| t = I.jStorage_update | |
| } | |
| } catch (y) {} else if ("globalStorage" in window) try { | |
| if (window.globalStorage) { | |
| I = window.location.hostname == "localhost" ? window.globalStorage["localhost.localdomain"] : window.globalStorage[window.location.hostname]; | |
| n = "globalStorage"; | |
| t = I.jStorage_update | |
| } | |
| } catch (H) {} else { | |
| K = document.createElement("link"); | |
| if (K.addBehavior) { | |
| K.style.behavior = "url(#default#userData)"; | |
| document.getElementsByTagName("head")[0].appendChild(K); | |
| try { | |
| K.load("jStorage") | |
| } catch (J) { | |
| K.setAttribute("jStorage", | |
| "{}"); | |
| K.save("jStorage"); | |
| K.load("jStorage") | |
| } | |
| m = "{}"; | |
| try { | |
| m = K.getAttribute("jStorage") | |
| } catch (R) {} | |
| try { | |
| t = K.getAttribute("jStorage_update") | |
| } catch (U) {} | |
| I.jStorage = m; | |
| n = "userDataBehavior" | |
| } else { | |
| K = null; | |
| return | |
| } | |
| } | |
| g(); | |
| o(); | |
| if (n == "localStorage" || n == "globalStorage") "addEventListener" in window ? window.addEventListener("storage", b, false) : document.attachEvent("onstorage", b); | |
| else n == "userDataBehavior" && setInterval(b, 1E3); | |
| v(); | |
| "addEventListener" in window && window.addEventListener("pageshow", function(X) { | |
| X.persisted && b() | |
| }, false) | |
| })() | |
| })(); | |
| Target.register("controller", "header", { | |
| _photoUploadObj: [], | |
| _grdaElems: null, | |
| json: [], | |
| _moreLikeThis: null, | |
| skipCTA: false, | |
| $body: "", | |
| counterMinutes: "", | |
| counterSeconds: "", | |
| init: function() { | |
| this.loadInterface() | |
| }, | |
| loadInterface: function() { | |
| var a = this; | |
| a._grdaElems = $("a[grda]"); | |
| a.$body = $("body"); | |
| a.json = Target.globals.giftcarditems; | |
| a._handleReviews(); | |
| a._removeCookie(); | |
| a.readPerf(); | |
| (a.$body.find("div#facetedNav").hasClass("leftNav") ? true : false) || a.$body.find("#Main, #registry-portal").prepend('<a name="mainBody"></a>'); | |
| var b = Target.controller.header.cookie.read("axbFocusCookie"); | |
| if (b) { | |
| b = $("#inCartList").find(".j_reward#" + b).next("p"); | |
| $(document).trigger("updateBuffer.framework"); | |
| b.attr("tabindex", -1).focus(); | |
| Target.controller.header.cookie.erase("axbFocusCookie") | |
| } | |
| try { | |
| $(".tipnoteTrigger").tipNote() | |
| } catch (d) { | |
| console.log(d.message) | |
| } | |
| var f = { | |
| ".c .w4>div": "parent" | |
| }, | |
| g; | |
| for (g in f) $(g).each(function() { | |
| var j = $(this), | |
| l = j.children(), | |
| o = j.children(":hidden").size(); | |
| j = f[g] == "self" ? j : j.parent(".w4"); | |
| l.length == o && j.hide() | |
| }); | |
| $("#addToCart").attr("disabled", | |
| ""); | |
| window.onbeforeunload = function() { | |
| $("#rr-slider").is(":visible") || $("#addToCart, .addToCart").attr("disabled", "disabled"); | |
| $("#checkoutitemLevelService--input .startSending .calendar").length > 0 && Target.controller.checkoutUtils.updateSubscriptionValue() | |
| }; | |
| $.fn.CEvent([{ | |
| selector: "#privacy-step input[name='registryPublic']", | |
| skipevent: true, | |
| cb: function() { | |
| if ($("input[name='registryPublic']:checked").val() == "true") { | |
| $("#public-settings").show(); | |
| $("#screen-name").val($("#screenName").val()); | |
| try { | |
| $("#featured_list_hidden").attr("checked") !== | |
| false && $("#featured_list_hidden").attr("checked") !== "" ? $("#featured_list").attr("checked", true) : $("#featured_list").attr("checked", false) | |
| } catch (j) {} | |
| } else $("#public-settings").hide() | |
| } | |
| }, { | |
| selector: "#list-is-for", | |
| eventType: "change", | |
| skipevent: true, | |
| cb: function() { | |
| var j = $("#list-is-for").val(); | |
| if (j === "OR") { | |
| $("#organization-step").show(); | |
| $("#friend-step").hide() | |
| } else if (j === "OT") { | |
| $("#friend-step").show(); | |
| $("#organization-step").hide() | |
| } else if (j === "LO") { | |
| $("#friend-step").hide(); | |
| $("#organization-step").hide() | |
| } | |
| } | |
| }, { | |
| selector: "div#ProductCollection .tileImage, .content .quick-info>a>img, .quickInfo-container,div.content div.image-container img", | |
| eventType: "mouseover mouseout focusin focusout", | |
| skipevent: true, | |
| cb: function(j, l, o) { | |
| tileImage = $(o); | |
| button = parentElm = null; | |
| if (tileImage.closest(".collection-product")[0]) parentElm = tileImage.closest(".collection-product"); | |
| else if (tileImage.closest(".tile")[0]) parentElm = tileImage.closest(".tile"); | |
| else if (tileImage.closest(".quick-info")[0]) parentElm = tileImage.closest(".quick-info") | |
| } | |
| }, { | |
| selector: ".j_tmCokie", | |
| skipevent: true, | |
| cb: function() { | |
| Target.controller.header.cookie.erase("TMN") | |
| } | |
| }, { | |
| selector: "div.error-summary ol li", | |
| cb: function(j) { | |
| $($(j.target).attr("href")).focus() | |
| } | |
| }, { | |
| selector: "#CreateTargetList", | |
| eventType: "overlay-show", | |
| skipevent: true, | |
| cb: function() { | |
| $("#list-is-for-create").change(function() { | |
| a.handleCreateListOverlay(this.value) | |
| }) | |
| } | |
| }, { | |
| selector: "#privacy-step-create input[name='privacy']", | |
| skipevent: true, | |
| cb: function() { | |
| $("input[name='privacy']:checked").val() == "public" ? $("#public-settings-create").show() : | |
| $("#public-settings-create").hide() | |
| } | |
| }, { | |
| selector: "#ieSix", | |
| skipevent: true, | |
| cb: function() { | |
| Target.controller.header.cookie.create("browserVer", "ie6"); | |
| $.overlay.currentOverlay.trigger("close.overlay", [true]) | |
| } | |
| }, { | |
| selector: ".overlay", | |
| skipevent: true, | |
| eventType: "overlay-before-show", | |
| cb: function() { | |
| $("#Login-container").hide() | |
| } | |
| }], a); | |
| $.validator.addMethod("validEmailSubject", function(j, l) { | |
| var o = /^((?!<|>).)*$/i; | |
| return this.optional(l) || o.test(j) | |
| }); | |
| $.validator.addMethod("validListTitle", function(j, l) { | |
| var o = /^[a-zA-Z0-9&.,'!\-\s\"]+$/i; | |
| return this.optional(l) || o.test(j) | |
| }); | |
| $.validator.addMethod("validFullName", function(j) { | |
| return j.match(/^[a-zA-Z0-9\-]*\s[a-zA-Z0-9\-\s]+$/) | |
| }); | |
| $.validator.addMethod("filterChars", function(j, l, o) { | |
| l = o.illegalChars ? o.illegalChars : "<>"; | |
| o = []; | |
| for (var v = 0; v < j.length; v++) { | |
| charA = j.charAt(v); | |
| l.indexOf(charA) != -1 && $.inArray(charA, o) == -1 && o.push(charA) | |
| } | |
| if (o.length) { | |
| o.join(" ").replace("<", "<").replace(">", ">"); | |
| $.validator.messages.filterChars = "Enter a valid password using the rules listed below."; | |
| return false | |
| } | |
| return true | |
| }); | |
| setTimeout(function() { | |
| $("iframe[src*='fls.doubleclick.net']").hide() | |
| }, 5E3); | |
| $.browser.msie && parseInt($.browser.version) < 7 && Target.controller.header.cookie.read("browserVer") == null && $.overlay.load({ | |
| content: "Iesixpopup", | |
| mode: "force", | |
| overlayId: "ieErroroverlay" | |
| }); | |
| a.cookie.create("isCokkie", "true", 1); | |
| if (a.cookie.read("s_sess") == null) { | |
| b = $("#noscript").text(); | |
| b = b.replace(/javascript/, "cookie"); | |
| $("#noscript").html(b); | |
| a.cookie.read("erase") | |
| } | |
| $("#MainMenu>li").each(function() { | |
| $(this).find("div.hover").prepend('<div class="menuLiBase" style="width:' + | |
| ($(this).width() + 20) + 'px;"></div>') | |
| }); | |
| a.InitializeAjaxRequest(a.navRequestComponents); | |
| a.$body.delegate("#list-is-for-create", "change", function() { | |
| var j = $(this).val(), | |
| l = $("#organization-step-create, #friend-step-create"); | |
| if (j === "friend") { | |
| $("#friend-step-create").show(); | |
| $("#organization-step-create").hide() | |
| } | |
| j === "organization" ? l.show() : l.hide() | |
| }); | |
| a.$body.delegate("#heroZoomImage, li a.scene7,dd a.scene7", "click", function() { | |
| var j = $(this).attr("id"), | |
| l, o = null; | |
| l = $.trim($("#omniItemPartNumber").val()) != null && | |
| $.trim($("#omniItemPartNumber").val()).length > 0 ? $("#omniItemPartNumber").val() : $("#omniPartNumber").val(); | |
| o = j == "heroZoomImage" ? "hero image" : $(this).attr("rel"); | |
| try { | |
| s_clickInteraction(o, l) | |
| } catch (v) { | |
| console.log(v.message) | |
| } | |
| }); | |
| a.$body.delegate("#sizeChart", "click", function() { | |
| var j = null; | |
| j = $.trim($("#omniItemPartNumber").val()) != null && $.trim($("#omniItemPartNumber").val()).length > 0 ? $("#omniItemPartNumber").val() : $("#omniPartNumber").val(); | |
| try { | |
| s_clickInteraction("size chart", j) | |
| } catch (l) { | |
| console.log(l.message) | |
| } | |
| }); | |
| a.$body.delegate("#heroImageBundle", "click", function() { | |
| var j = null; | |
| j = $("#omniPartNumber").val(); | |
| try { | |
| s_clickInteraction("hero image", j) | |
| } catch (l) { | |
| console.log(l.message) | |
| } | |
| }); | |
| a.$body.delegate("a.submitmapform, .submitMAPform", "click", function(j) { | |
| j.preventDefault(); | |
| j = ""; | |
| j = $(this); | |
| j = j.hasClass("submitMAPform") ? j.attr("catalog") : j.attr("rel"); | |
| if (j !== "") { | |
| j = $("#OrderItemAddForm_" + j); | |
| typeof j !== "undefined" && Cart.link(j) | |
| } | |
| }) | |
| }, | |
| handleCreateListOverlay: function(a) { | |
| var b = $("#organization-step-create"), | |
| d = $("#friend-step-create"), | |
| f = $("#public-settings-create"), | |
| g = $("input[name='privacy']:checked").val(); | |
| d.hide(); | |
| b.hide(); | |
| switch (a) { | |
| case "OT": | |
| d.show(); | |
| $("#CreateTargetList #public").attr("checked", "checked"); | |
| g = $("input[name='privacy']:checked").val(); | |
| g == "public" ? f.show() : f.hide(); | |
| $("#organization", "#friendsFirstName", "#friendsLastName").val(""); | |
| break; | |
| case "OR": | |
| b.show(); | |
| $("#CreateTargetList #public").attr("checked", "checked"); | |
| g = $("input[name='privacy']:checked").val(); | |
| g == "public" ? f.show() : f.hide(); | |
| $("#organization", "#friendsFirstName", | |
| "#friendsLastName").val(""); | |
| break; | |
| case "LO": | |
| $("#CreateTargetList #private").attr("checked", "checked"); | |
| f.hide(); | |
| $("#organization", "#friendsFirstName", "#friendsLastName").val(""); | |
| break; | |
| default: | |
| $("#CreateTargetList #private").attr("checked", "checked"); | |
| f.hide() | |
| } | |
| }, | |
| timer: function(a, b, d) { | |
| a = { | |
| timer: setTimeout(b, a), | |
| callback: null | |
| }; | |
| if (typeof d == "function") a.callback = d; | |
| return a | |
| }, | |
| clearTimer: function(a) { | |
| clearTimeout(a.timer); | |
| typeof a.callback == "function" && a.callback(); | |
| return this | |
| }, | |
| getClass: function(a) { | |
| var b = $(a).attr("class"); | |
| return b = $(a).hasClass("more") ? b.replace("more", "") : b | |
| }, | |
| cookie: { | |
| areCookiesEnabled: function() { | |
| var a = navigator.cookieEnabled ? true : false; | |
| if (typeof navigator.cookieEnabled == "undefined" && !a) { | |
| document.cookie = "testcookie"; | |
| a = document.cookie.indexOf("testcookie") != -1 ? true : false | |
| } | |
| return a | |
| }, | |
| create: function(a, b, d, f) { | |
| f = f ? f : Target.globals.cookieDomain; | |
| if (d) { | |
| var g = new Date; | |
| g.setTime(g.getTime() + d * 24 * 60 * 60 * 1E3); | |
| d = "; expires=" + g.toGMTString() | |
| } else d = ""; | |
| document.cookie = a + "=" + b + d + "; path=/;" + (f === undefined ? "domain=.target.com" : | |
| "domain=" + f) | |
| }, | |
| read: function(a) { | |
| if (Target.controller.header.cookie.areCookiesEnabled()) { | |
| a = a + "="; | |
| for (var b = document.cookie.split(";"), d = 0; d < b.length; d++) { | |
| for (var f = b[d]; f.charAt(0) == " ";) f = f.substring(1, f.length); | |
| if (f.indexOf(a) == 0) return f.substring(a.length, f.length) | |
| } | |
| } | |
| return null | |
| }, | |
| erase: function(a) { | |
| this.create(a, "", -1) | |
| }, | |
| readUserActivityfromCookieForRR: function(a) { | |
| var b = ""; | |
| a = a !== undefined && a ? a : ""; | |
| for (var d = document.cookie.split(";"), f = 0; f < d.length; f++) { | |
| for (var g = d[f]; g.charAt(0) == " ";) g = g.substring(1, | |
| g.length); | |
| if (g.indexOf("WC_USERACTIVITY_") == 0) b = g.substring(16, g.indexOf("=")) | |
| } | |
| if (b == "" || b == null) b = a; | |
| return b | |
| }, | |
| getUserID: function() { | |
| var a = ""; | |
| a = []; | |
| var b = Target.controller.header.cookie.readUserActivityfromCookieForRR(); | |
| if (b === "") { | |
| a = unescape(Target.controller.header.cookie.read("WC_PERSISTENT")); | |
| a = a.split(","); | |
| if (a.length > 1) { | |
| a = a[0].split("_"); | |
| if (a.length > 0) b = a[a.length - 1] | |
| } | |
| } | |
| return b | |
| } | |
| }, | |
| s_dblclick: function(a, b, d) { | |
| b = b + ":" + d; | |
| d = $('<iframe width="0" height="0" frameborder="0"></iframe>'); | |
| var f = $("body"); | |
| d.attr("src", | |
| "http://fls.doubleclick.net/activityi;src=2906542;type=searc320;cat=refin681;u6=" + a + ";u12=" + b + ";ord=1;num=1"); | |
| f.append(d) | |
| }, | |
| InitializeAjaxRequest: function() { | |
| var a = $("#dynamicAjaxURL").val(); | |
| if ($("#dynamicAjaxFrm1").get(0) != undefined) { | |
| a = $("#dynamicAjaxFrm1").attr("action"); | |
| $.ajax({ | |
| url: Target.controller.headerNew.getProtocol(a), | |
| type: "POST", | |
| data: $("form#dynamicAjaxFrm1").serialize(), | |
| dataType: "json", | |
| curtain: false, | |
| success: function(b) { | |
| $("#PLP_For_Grid").html(b.PLP_For_Grid); | |
| $("#facetedNav").resultListController(); | |
| $("#productListing").lazy({ | |
| threshold: 800 | |
| }); | |
| searchInlineScript(); | |
| Target.controller.globalUtils.imgMap() | |
| }, | |
| error: function() { | |
| this.errorMethod && this.errorMethod() | |
| } | |
| }) | |
| } | |
| return false | |
| }, | |
| updateSourceComponents: function(a, b) { | |
| try { | |
| $(b).each(function(f, g) { | |
| $("div#" + g).html(a[g]); | |
| if (g == "PLP_For_Grid") { | |
| $("#facetedNav").resultListController(); | |
| $("#productListForm").productListingController() | |
| } | |
| }) | |
| } catch (d) {} | |
| }, | |
| _handleReviews: function() { | |
| var a = this, | |
| b = ""; | |
| $("a[review]").length != 0 && a.$body.delegate("a[review]", "click", function(d) { | |
| d.preventDefault(); | |
| b = $(this).attr("review"); | |
| if ($.trim(b) != "") { | |
| d = a.unSerialize(b); | |
| a.getObjSize(d) != 0 && $.overlay.load({ | |
| content: b, | |
| target: $(this), | |
| overlayId: d.overlayId, | |
| overlayType: d.overlayType, | |
| template: d.template | |
| }) | |
| } | |
| }) | |
| }, | |
| _removeCookie: function() { | |
| $("a[removecookie]").length !== 0 && this.$body.delegate("a[removecookie]", "click", function() { | |
| Target.controller.header.cookie.erase("isFullPageVisited") | |
| }) | |
| }, | |
| setColorAttributes: function(a, b) { | |
| var d = $("#" + a).find("select[name=cardValue]"), | |
| f = ""; | |
| f = this.getItemsByName(this.toTitleCase(b)); | |
| d.children().remove(); | |
| var g = this.toTitleCase(b), | |
| j = ""; | |
| j = g == "MAIL" ? "P" : g == "E-MAIL" ? "E" : "M"; | |
| $("#attr-send-type").val(j); | |
| $.each(f.items, function(l, o) { | |
| d.append("<option catid='" + o[1] + "' value='" + f.catid[l] + "'>" + o[1] + "</option>"); | |
| $("#catEntryId").val(f.catid[l]); | |
| $("#productId").val(f.catid[l]); | |
| $(".error.giftCardsError").attr("id", "FormErrors_" + f.catid[l]) | |
| }); | |
| g = $("#cardValue :selected").val(); | |
| $("#catEntryId").val(g); | |
| $("#productId").val(g); | |
| $(".error.giftCardsError").attr("id", "FormErrors_" + g); | |
| $("body").delegate("#cardValue", | |
| "change keypress", | |
| function() { | |
| var l = $("#cardValue :selected").val(); | |
| $("#catEntryId").val(l); | |
| $("#productId").val(l); | |
| $(".error.giftCardsError").attr("id", "FormErrors_" + l) | |
| }); | |
| this.sortItem("cardValue") | |
| }, | |
| sortItem: function(a) { | |
| var b = []; | |
| $("#" + a).children().each(function() { | |
| $(this).html() && b.push(parseInt($(this).html().toString().replace("$", ""))) | |
| }); | |
| b.sort(function(d, f) { | |
| return d - f | |
| }); | |
| $("#" + a).children().each(function(d) { | |
| $("#" + a + " option:contains(" + b[d] + ")").appendTo("#" + a) | |
| }); | |
| $("#" + a + " option").removeAttr("selected"); | |
| $("#" + a + " option:first").attr("selected", "selected").trigger("change") | |
| }, | |
| uniqueArray: function(a) { | |
| var b = [], | |
| d = ""; | |
| $.each(a, function(f, g) { | |
| d = "" + g.itemname; | |
| d = d.replace(/-quot-/g, '"'); | |
| d = d.split(",")[1]; | |
| $.inArray(d, b) === -1 && b.push(d) | |
| }); | |
| return b | |
| }, | |
| getItemsByName: function(a, b) { | |
| var d = this, | |
| f = "", | |
| g = "", | |
| j = "", | |
| l = {}, | |
| o = "", | |
| v = [], | |
| A = ""; | |
| l.items = []; | |
| l.catid = []; | |
| if (typeof b != "undefined" && b != "") { | |
| var C = eval("Target.globals.entitledItem1_" + b); | |
| if (typeof C != "undefined") A = C.itemdetails | |
| } else { | |
| if (!d.json) return; | |
| A = d.json.itemdetails | |
| } | |
| A.length > | |
| 0 && $.each(A, function(q, I) { | |
| $.each(I.Attributes, function(K, Q) { | |
| j = K; | |
| f = K.split(":"); | |
| g = f[f.length - 1]; | |
| if (Q == 1) | |
| if (typeof a != "undefined" && a == g) | |
| if (d.getObjSize(I.Attributes) > 1) { | |
| o = d.getItem(I.Attributes, j); | |
| typeof o === "object" && l.catid.push(I.catentry_id); | |
| l.items.push(o) | |
| } else { | |
| if (d.getObjSize(I.Attributes) == 1) { | |
| o = d.getItem(I.Attributes, j); | |
| typeof o === "object" && l.catid.push(I.catentry_id); | |
| l.items.push(o); | |
| return false | |
| } | |
| } else { | |
| o = d.getItem(I.Attributes); | |
| var n = {}; | |
| n.catid = I.catentry_id; | |
| n.itemname = o; | |
| v.push(n) | |
| } | |
| }) | |
| }); | |
| return typeof a != | |
| "undefined" && a ? l : v | |
| }, | |
| _getCatEntryId: function(a, b) { | |
| var d = "", | |
| f = "", | |
| g = ""; | |
| g = typeof b != "undefined" ? this.getItemsByName(a, b) : this.getItemsByName(); | |
| if (a && typeof g === "object") | |
| if (typeof b != "undefined") d = g.catid; | |
| else $.each(g, function(j, l) { | |
| f = "" + l.itemname; | |
| f = f.replace(/-quot-/g, '"'); | |
| a = a.replace(/-quot-/g, '"'); | |
| f = f.indexOf(",") != -1 ? f.split(",")[1] : f; | |
| if (a === f) { | |
| d = l.catid; | |
| return false | |
| } | |
| }); | |
| return d | |
| }, | |
| _setJSON: function(a) { | |
| this.json = null; | |
| if (typeof a != "undefined") this.json = a | |
| }, | |
| getObjSize: function(a) { | |
| var b = 0, | |
| d; | |
| for (d in a) a.hasOwnProperty(d) && | |
| b++; | |
| return b | |
| }, | |
| getItem: function(a) { | |
| var b = [], | |
| d = ""; | |
| d = ""; | |
| if (typeof a == "object") | |
| for (var f in a) { | |
| d = f.split(":"); | |
| d = d[d.length - 1]; | |
| b.push(d) | |
| } | |
| return b | |
| }, | |
| toTitleCase: function(a) { | |
| var b = ""; | |
| if (a && typeof a != "undefined") b = a.substr(0, 1).toUpperCase() + a.substr(1, a.length); | |
| return b | |
| }, | |
| _constructDropDownList: function(a) { | |
| var b = "", | |
| d = typeof a != "undefined" ? a : $("#attributeType_2"); | |
| b = this.getItemsByName(); | |
| var f = []; | |
| $.each(b, function(g, j) { | |
| var l = "" + j.itemname; | |
| l = l.replace(/-quot-/g, '"'); | |
| l = l.split(",")[1]; | |
| $.inArray(l, f) === -1 && f.push(l) | |
| }); | |
| if (b.length > 0 && typeof b != "undefined") { | |
| d.html('<option value="">Please make a selection</option>'); | |
| $.each(f, function(g, j) { | |
| d.append("<option value='" + j + "'>" + j + "</option>") | |
| }) | |
| } | |
| }, | |
| _UpdateSizeDropDown: function(a, b, d) { | |
| var f = "", | |
| g = typeof a != "undefined" ? a : $("#attributeType_2"); | |
| f = this.getItemsByName(b, d); | |
| var j = $.parseJSON($("#itemPrice").html()), | |
| l = [], | |
| o = [], | |
| v = true; | |
| if (f.items.length > 0 && typeof f != "undefined") { | |
| $.each(f.items, function(q, I) { | |
| I = "" + I; | |
| I = I.replace(/-quot-/g, '"'); | |
| I = I.split(",")[1]; | |
| l.push(I) | |
| }); | |
| $.each(f.catid, | |
| function(q, I) { | |
| o.push(I) | |
| }) | |
| } | |
| if (l.length > 0 && o.length > 0) { | |
| var A = $.trim($("input[name='productId']").val()), | |
| C = $.trim($("#attributeType_2").find("option:selected").val()); | |
| g.html('<option value="">' + $("#attributeType_2 option").first().text() + "</option>"); | |
| $("#OrderItemAddForm_catEntryId_" + A).val(o[0]); | |
| $.each(l, function(q, I) { | |
| if (v == true) { | |
| var K = "", | |
| Q = "", | |
| n = $("#isSubscriptionPrice").val(), | |
| G = $(".product-info-block .priceSection"); | |
| $.each(j, function(t) { | |
| if (typeof o[q] !== "undefined" && o[q] == j[t].catentry_id) { | |
| K = j[t].Attributes.price.offer; | |
| Q = j[t].Attributes.price.subsPrice; | |
| if (n != undefined && n == "true") { | |
| G.find(".discountedprice").text(Q); | |
| G.find(".currentprice").html("<del>" + K + "</del>"); | |
| G.find(".currentprice").show() | |
| } else { | |
| G.find(".discountedprice").text(K); | |
| G.find(".currentprice").html("") | |
| } | |
| } | |
| }) | |
| } | |
| var p = C == I ? "selected =selected" : ""; | |
| typeof I !== "undefined" && g.append("<option id = '" + I + "' catid='" + o[q] + "' value='" + I + "' " + p + ">" + I + "</option>"); | |
| p != "" && $("#OrderItemAddForm_catEntryId_" + A).val(o[q]); | |
| v = false | |
| }) | |
| } | |
| }, | |
| _fiatSetAttributes: function(a, b, d) { | |
| var f = | |
| $("#" + a).find("select[name=attr-sizeSelection]"), | |
| g = ""; | |
| d = typeof d != "undefined" ? true : false; | |
| var j = f.find("option:selected").val(), | |
| l = "", | |
| o = "", | |
| v = "", | |
| A = false; | |
| g = this.getItemsByName(b); | |
| f.html('<option value="">Please make a selection</option>'); | |
| $.each(g.items, function(q, I) { | |
| o = "" + I[1]; | |
| o = o.replace(/-quot-/g, '"'); | |
| l = ""; | |
| if (typeof j !== "undefined" && j === I[1]) { | |
| l = "selected = selected"; | |
| A = true; | |
| v = g.catid[q] | |
| } | |
| f.append("<option catid='" + g.catid[q] + "' value='" + I[1] + "' " + l + ">" + o + "</option>") | |
| }); | |
| if (A) typeof v != "undefined" && v !== | |
| "" && f.trigger("change"); | |
| else { | |
| f.find("option:first").trigger("change"); | |
| $("#" + a).find("#catentryNO,#dpciNO").text(" ") | |
| } | |
| if (g.items.length == 0 && !d) { | |
| $(".sizeContainer").addClass("hidden"); | |
| this.refreshTabs(g.catid); | |
| try { | |
| Target.controller.PDPCache.handlePriceCache(g.catid, false) | |
| } catch (C) {} | |
| } else $(".sizeContainer").removeClass("hidden") | |
| }, | |
| _getFIATSObj: function(a) { | |
| var b = typeof Target.globals.dpciJSON != "undefined" ? Target.globals.dpciJSON : [], | |
| d = {}; | |
| a && $.each(b, function(f, g) { | |
| if (a === g.catentry_id) { | |
| d = g.Attributes; | |
| return false | |
| } | |
| }); | |
| return d | |
| }, | |
| _handleUpdateFIATS: function(a) { | |
| var b = $("#FindinStore"), | |
| d = b.find(".fiats-product"), | |
| f = b.find("#dpciNO"), | |
| g = b.find("#catentryNO"), | |
| j = b.find("#pickUpInStoreQty"), | |
| l = $("#partNum_fiats"); | |
| b = b.find("#ValidDpci"); | |
| var o = $("#catEntID_fiats"), | |
| v = $("#attributeList"), | |
| A = $("#ffFlowIdentifier"); | |
| A = typeof A !== "undefined" ? A.val() : ""; | |
| if (typeof a != "undefined" && this.getObjSize(a) > 0) { | |
| d.attr("src", a.ThumbnailImage); | |
| f.html(a.dpci); | |
| g.html(a.onlineItem); | |
| j.html(a.PickUpInStore); | |
| l.val(a.onlineItem); | |
| o.val(a.catentryId); | |
| b.val(a.dpci); | |
| if (A == "PRIMARY") { | |
| entitledItemJSON = eval("(" + $(".content #entitledItem").html() + ")"); | |
| catid = a.catentryId; | |
| var C = []; | |
| $.each(entitledItemJSON, function(q, I) { | |
| if (catid === I.catentry_id) { | |
| fiatsObj = I.Attributes; | |
| count = 0; | |
| $.each(fiatsObj, function(K) { | |
| C[count] = K; | |
| count++ | |
| }); | |
| return false | |
| } | |
| }); | |
| v.val(C) | |
| } | |
| } | |
| }, | |
| _prePopulateVariatons: function(a, b) { | |
| if (b.length > 0) { | |
| var d = $("#input-field-FIATS-swatchColor ul.swatches").find("input:checked"), | |
| f = d.val(); | |
| d = d.attr("catid"); | |
| var g = ""; | |
| a.find("span.clrValHolderFIATS").html(f); | |
| if (b.hasClass("fiatsSingleVar")) { | |
| if (d) { | |
| g = | |
| this._getFIATSObj(d); | |
| this.getObjSize(g) > 0 && this._handleUpdateFIATS(g) | |
| } | |
| } else this._fiatsFilteredList(f) | |
| } else { | |
| f = $("select#fiatsAttrType_1"); | |
| d = $("select#fiatsAttrType_1 option:selected").val(); | |
| if (f.hasClass("fiatsWithDropDown")) this._fiatsFilteredList(d); | |
| else if (d) { | |
| g = this._getFIATSObj(d); | |
| this.getObjSize(g) > 0 && this._handleUpdateFIATS(g) | |
| } | |
| } | |
| }, | |
| _fiatsFilteredList: function(a) { | |
| var b = $("select#fiatsAttrType_2"), | |
| d = $("select#fiatsAttrType_2 option:selected").val(), | |
| f = "", | |
| g = ""; | |
| g = ""; | |
| if (a) { | |
| f = this.getItemsByName(a); | |
| b.html('<option value="">Please make a selection</option>'); | |
| $.each(f.items, function(j, l) { | |
| var o = "" + l[1]; | |
| o = o.replace(/-quot-/g, '"'); | |
| d === o ? b.append("<option catid='" + f.catid[j] + "' value=" + l[1] + " selected>" + o + "</option>") : b.append("<option catid='" + f.catid[j] + "' value=" + l[1] + ">" + o + "</option>") | |
| }); | |
| if (g = $("select#fiatsAttrType_2 option:selected").attr("catid")) { | |
| g = this._getFIATSObj(g); | |
| this.getObjSize(g) > 0 && this._handleUpdateFIATS(g) | |
| } | |
| } | |
| }, | |
| unSerialize: function(a) { | |
| var b = {}; | |
| a = a.replace(/^.*\?/, "").split("&"); | |
| for (var d = | |
| a.length, f = 0, g; f < d; f++) | |
| if (a[f]) { | |
| g = a[f].split("="); | |
| b[g[0]] = g[1] | |
| } | |
| return b | |
| }, | |
| getLocationObj: function() { | |
| var a = {}; | |
| return a = this.unSerialize(window.location.href) | |
| }, | |
| setMoreLikeThis: function() { | |
| this._moreLikeThis = true | |
| }, | |
| constructCategoryCookie: function(a) { | |
| var b = Target.controller.reviewed.cookie, | |
| d = a.length; | |
| if (d == 0) return false; | |
| var f = ""; | |
| $.each(a, function(g, j) { | |
| f += j; | |
| if (g !== d - 1) f += "|" | |
| }); | |
| b.create("RecentlyViewedCategory", f) | |
| }, | |
| setCategoryCookie: function(a) { | |
| var b = Target.controller.reviewed.cookie, | |
| d = categoryCookieArr = []; | |
| d = 0; | |
| var f = false; | |
| if (typeof b != "undefined") { | |
| d = b.read("RecentlyViewedCategory"); | |
| if ($.trim(a) !== "") { | |
| if (d !== null) { | |
| categoryCookieArr = d.split("|"); | |
| $.each(categoryCookieArr, function(g, j) { | |
| if (j == $.trim(a)) f = true | |
| }); | |
| d = d.split("|").length; | |
| d === 5 && !f && this.removeByIndex(categoryCookieArr, 0) | |
| } | |
| if (!f) { | |
| categoryCookieArr.push(a); | |
| this.constructCategoryCookie(categoryCookieArr) | |
| } | |
| } | |
| } | |
| }, | |
| removeByIndex: function(a, b) { | |
| a.splice(b, 1) | |
| }, | |
| setSkipCTA: function(a) { | |
| this.skipCTA = a | |
| }, | |
| readPerf: function() { | |
| var a = Target.controller.header.cookie.read("Pref"), | |
| b = "N"; | |
| if (a == null) a = "F=N|Sub=N"; | |
| else b = "Y"; | |
| if (Target.globals.bopisFlag == "ENABLE_ALL") { | |
| if (a.indexOf("F=N") !== -1) { | |
| a = a.replace("F=N", "F=Y"); | |
| Target.controller.header.cookie.erase("Pref") | |
| } | |
| } else if (Target.globals.bopisFlag == "ENABLE_FOR_SELECT_GUESTS") { | |
| if (b == "N" && a.indexOf("F=Y") !== -1) { | |
| console.log("in select guest and F= Y"); | |
| a = a.replace("F=Y", "F=N"); | |
| Target.controller.header.cookie.erase("Pref") | |
| } | |
| } else { | |
| a = a.replace("F=Y", "F=N"); | |
| Target.controller.header.cookie.erase("Pref") | |
| } | |
| Target.controller.header.cookie.create("Pref", | |
| a, 14); | |
| try { | |
| var d = $("#productListing"); | |
| if (d.length == 1 && $("#isDLP").val() != "true") | |
| if (a = Target.controller.reviewed.cookie.read("Pref")) a.indexOf("F=Y") !== -1 ? d.addClass("FFTrue") : d.addClass("FFFalse"); | |
| if (!$("body").hasClass("checkout")) { | |
| var f = Target.controller.reviewed.cookie.read("Pref").split("|"); | |
| f[1] == "Sub=Y" && typeof f[1] != "undefined" && $("body").addClass("teamMember") | |
| } | |
| } catch (g) {} | |
| }, | |
| getSkipCTA: function() { | |
| return this.skipCTA | |
| }, | |
| alertHtml: function(a) { | |
| if (a == 1) { | |
| $(".sessionTimeOut").show(); | |
| $(".sessionTimeOut").attr("tabindex", | |
| "-1").focus(); | |
| Target.controller.header.sessionMinsSecs() | |
| } | |
| }, | |
| sessionMinsSecs: function() { | |
| var a = Target.controller.header, | |
| b = a.cookie.read(Target.globals.JSESSIONID), | |
| d = "WC_USERACTIVITY_"; | |
| b = a.cookie.readUserActivityfromCookieForRR(b); | |
| d += b; | |
| var f = a.cookie.read("guestDisplayName"); | |
| $(".checkout"); | |
| $(".regSettingsSec"); | |
| $(".gamSession"); | |
| isSecure = location.protocol == "http:" ? false : true; | |
| var g = 60, | |
| j, l = 5; | |
| $(".timer").text("Your session will expire in 5 minutes due to inactivity."); | |
| if (a.counterMinutes != "") { | |
| clearInterval(a.counterMinutes); | |
| clearInterval(a.counterSeconds) | |
| } | |
| setTimeout(function() { | |
| $(document).trigger("updateBuffer.framework"); | |
| $(".sessionTimeOut").removeAttr("tabindex") | |
| }, 500); | |
| a.counterMinutes = setInterval(function() { | |
| l--; | |
| j = "Your session will expire in " + l + " minutes due to inactivity."; | |
| $(".timer").text(j); | |
| if (l == 1) { | |
| clearInterval(a.counterMinutes); | |
| o() | |
| } | |
| }, 59E3); | |
| var o = function() { | |
| a.counterSeconds = setInterval(function() { | |
| g--; | |
| if (g > 0) { | |
| j = "Your session will expire in " + g + " seconds due to inactivity."; | |
| $(".timer").text(j) | |
| } else { | |
| clearInterval(a.counterSeconds); | |
| clearInterval(a.counterMinutes); | |
| if (f == null || f.length > 0) a.cookie.erase(d); | |
| location.href = Target.globals.sessionEnd | |
| } | |
| }, 1E3) | |
| } | |
| }, | |
| strengthMeter: function() { | |
| var a = { | |
| weak: { | |
| text: "weak", | |
| more: "This password is valid, but it could be stronger. Make it atleast 9 characters long, or add a mix of special characters, numbers or capital letters." | |
| }, | |
| good: { | |
| text: "good", | |
| more: "To make this password even more secure, add a few more characters, especially special characters, numbers, or capital letters." | |
| }, | |
| strong: { | |
| text: "strong", | |
| more: "Congratulations! Your password is strong and secure." | |
| }, | |
| xstrong: { | |
| text: "extra strong", | |
| more: "Wow, this password is really secure! You have done a great job protecting your Target.com account." | |
| } | |
| }, | |
| b = $(".passwordStrengthBar"), | |
| d = $(".PwdStrengthTxt"); | |
| return { | |
| _html: function(f) { | |
| return '<strong>Strength: </strong><span class="tooltipIconInfo">' + f.text + '</span><div class="tipnoteTrigger strengthInfo tipType-info"><a class="tipnoteRef" href="#" rel="nofollow">more information about strength: ' + f.text + '</a><span style="visibility: hidden; display: none;" class="tooltipBox"><span tabindex="-1" class="tipnoteText"><h2 tabindex="-1" class="screen-reader-only">password strength</h2><p>' + | |
| f.more + '</p><a href="#tipnoteClose" class="tipnoteClose screen-reader-only">close</a></span></span></div>' | |
| }, | |
| _weak: function() { | |
| b.html("<span class='strengthWeak'></span>"); | |
| d.html(this._html(a.weak)) | |
| }, | |
| _good: function() { | |
| b.html("<span class='strengthGood'></span>"); | |
| d.html(this._html(a.good)) | |
| }, | |
| _strong: function() { | |
| b.html("<span class='strengthStrong'></span>"); | |
| d.html(this._html(a.strong)) | |
| }, | |
| _xstrong: function() { | |
| b.html("<span class='strengthStrong'></span>"); | |
| d.html(this._html(a.xstrong)) | |
| } | |
| } | |
| }, | |
| passwordValidator: function(a) { | |
| if (typeof a === | |
| "undefined") throw Error("selector is undefined"); | |
| var b = this, | |
| d = $("ul.pass-requirements li, #strengthRul ul li"), | |
| f = { | |
| isvalidLength: function(g) { | |
| return g.length >= 8 && g.length <= 20 | |
| }, | |
| isValidPass: function(g) { | |
| var j = /^\d*$/.test(g), | |
| l = /^\W*$/.test(g), | |
| o = /^[a-z]*$/.test(g); | |
| g = /^[A-Z]*$/.test(g); | |
| return j || l || o || g ? false : true | |
| }, | |
| isValidChars: function(g) { | |
| return $.validator.methods.filterChars(g, "", { | |
| illegalChars: "<>" | |
| }) | |
| }, | |
| passType: function(g) { | |
| this.digit = /[0-9]/.test(g); | |
| this.alpha = /[a-z]/.test(g); | |
| this.upper = /[A-Z]/.test(g); | |
| return this | |
| }, | |
| isWeek: function(g) { | |
| return g != "" | |
| }, | |
| isGood: function(g) { | |
| if (typeof g === "undefined") throw Error("password is not defined!"); | |
| return g.length >= 9 && this.passType(g).alpha && this.passType(g).upper | |
| }, | |
| isStrong: function(g) { | |
| if (typeof g === "undefined") throw Error("password is not defined!"); | |
| return g.length >= 11 && this.passType(g).alpha && this.passType(g).upper && this.passType(g).digit | |
| }, | |
| isxStrong: function(g) { | |
| if (typeof g === "undefined") throw Error("password is not defined!"); | |
| return g.length >= 15 && this.passType(g).alpha && | |
| this.passType(g).upper && this.passType(g).digit | |
| } | |
| }; | |
| $("body").delegate(a, "keyup blur", function() { | |
| var g = $.trim($(this).val()), | |
| j = b.showHideError(), | |
| l = b.strengthMeter(), | |
| o = false, | |
| v = false; | |
| if (g == "") { | |
| $(".PwdStrengthTxt").html("<strong>Strength: </strong>"); | |
| $(".passwordStrengthBar span").remove() | |
| } | |
| f.isWeek(g) && l._weak(); | |
| f.isGood(g) && l._good(); | |
| f.isStrong(g) && l._strong(); | |
| f.isxStrong(g) && l._xstrong(); | |
| $(".strengthInfo").tipNote(); | |
| if (g == "") j._onRemove(d); | |
| else { | |
| if (f.isvalidLength(g)) { | |
| j._onRemove(d.eq(0)); | |
| d.eq(0).append(j._onSuccess()); | |
| o = true | |
| } else { | |
| j._onRemove(d.eq(0)); | |
| d.eq(0).append(j._onError()); | |
| o = false | |
| } | |
| if (o && f.isValidPass(g)) { | |
| j._onRemove(d.eq(1)); | |
| d.eq(1).append(j._onSuccess()); | |
| v = true | |
| } | |
| if (o && !f.isValidPass(g)) { | |
| j._onRemove(d.eq(1)); | |
| d.eq(1).append(j._onError()); | |
| v = false | |
| } | |
| if (o && v && f.isValidChars(g)) { | |
| j._onRemove(d.eq(2)); | |
| d.eq(2).append(j._onSuccess()) | |
| } | |
| if (!f.isValidChars(g)) { | |
| j._onRemove(d.eq(2)); | |
| d.eq(2).append(j._onError()) | |
| } | |
| } | |
| }) | |
| }, | |
| showHideError: function() { | |
| return { | |
| element: '<span class="sprite"></span>', | |
| _onError: function() { | |
| return $(this.element).html('<span class="screen-reader-only"> failed</span>').addClass("error") | |
| }, | |
| _onSuccess: function() { | |
| return $(this.element).html('<span class="screen-reader-only"> passed</span>').addClass("success") | |
| }, | |
| _onRemove: function(a) { | |
| typeof a !== "undefined" && $(".sprite", a).remove() | |
| } | |
| } | |
| }, | |
| openLoginPopUpWindow: function() { | |
| window.open("https://" + location.host + "/PopUpLoginWindow", "signWindow", "scrollbars=yes, resizable=yes, location=yes, top=" + (window.innerHeight / 2 - 175) + ", left=" + (window.innerWidth / 2 - 350) + ", width=760, height=400") | |
| }, | |
| checkoutSignInPopUpWindow: function(a) { | |
| if (typeof a === "undefined") a = | |
| null; | |
| window.open("CheckoutSignInWindow?" + a, "signWindow", "scrollbars=yes, resizable=yes, location=yes, top=" + (window.innerHeight / 2 - 175) + ", left=" + (window.innerWidth / 2 - 350) + ", width=760, height=400") | |
| } | |
| }); | |
| Target.register("controller", "globalUtils", { | |
| init: function() { | |
| this.loadInterface() | |
| }, | |
| loadInterface: function() { | |
| var a = this, | |
| b = function() { | |
| var f = new Date, | |
| g = f.getMonth() + 1; | |
| f = f.getDate(); | |
| var j = []; | |
| months = ["JAN", "FEB", "MAR", "APR", "MAY", "JUN", "JUL", "AUG", "SEP", "OCT", "NOV", "DEC"]; | |
| return j = { | |
| month: months[g - 1], | |
| day: f | |
| } | |
| }(); | |
| $(".getDay").html(b.day); | |
| $(".getMonth").html(b.month); | |
| b = $("#QuickView #isPortableQIFlag"); | |
| var d = typeof b !== "undefined" ? b.attr("rel") : "false"; | |
| $("body").delegate("#QuickView", "overlay-before-show", function() { | |
| if (d !== | |
| "true") | |
| if ($(this).find(".component-carousel-3").length > 0) a.checkIfCarousal(".component-carousel-3"); | |
| else $(this).find(".component-carousel-4").length > 0 && a.checkIfCarousal(".component-carousel-4") | |
| }); | |
| $("body").delegate(".WATAgging", "click", function() { | |
| console.log("lnk", $(this).parent().siblings("input.lnk").val()); | |
| var f = $(this).parent().siblings("input.lnk").val(); | |
| try { | |
| s_clickInteraction("Page Name: promotion link", f) | |
| } catch (g) { | |
| console.log(g.message) | |
| } | |
| }); | |
| a.checkIfCarousal(".component-carousel-1"); | |
| d !== "true" && | |
| a.checkIfCarousal(".component-carousel-3"); | |
| a.checkIfCarousal(".component-carousel-4"); | |
| a.checkIfCarousal(".component-carousel-5"); | |
| a.checkIfCarousal(".component-carousel-6"); | |
| a.checkIfCarousal(".component-carousel-recmm-4"); | |
| a.expandDescComponent(); | |
| a.imgMap(); | |
| a.recurringMethod(); | |
| a.updateESRBCookieValue(); | |
| $("#blockDVMCall").length == 0 && a.DvmAdInit(); | |
| $(".CMS-t1 .category-link").delegate("li a.offer-overlay", "click", function(f) { | |
| f.preventDefault(); | |
| var g = $(this).offset(); | |
| f = parseInt(g.left) - 128; | |
| g = parseInt(g.top) + | |
| 20; | |
| var j = this.href; | |
| $(this); | |
| $.overlay.load({ | |
| content: j, | |
| overlayType: "layer", | |
| x: f, | |
| y: g, | |
| width: 350, | |
| overlayId: "offerOverlayView", | |
| closeLink: true, | |
| componentPop: true | |
| }) | |
| }); | |
| $("body").bind("overlay-hide", function(f, g) { | |
| g === "#offerOverlayView" && $(void 0).focus() | |
| }); | |
| $("body").delegate(".wide-ft-category-images.three-category-images > ul li, .wide-ft-category-images.four-category-images > ul li", "focusout mouseenter mouseleave click", function(f) { | |
| var g = f.type, | |
| j = $(f.target), | |
| l = $(this), | |
| o = l.find(".productContainer"), | |
| v = l.find(".productOverDetails"); | |
| l = function() { | |
| o.show(); | |
| v.hide(); | |
| o.parent("li").removeClass("selected") | |
| }; | |
| try { | |
| var A = j.closest(".productOverDetails").find("ul.bottom-category-links li").length, | |
| C = j.closest(".productOverDetails").find("ul.category-links li").length, | |
| q = j.parent("li").is(":last-child"), | |
| I = j.parent("li").parent().is("ul.bottom-category-links"), | |
| K = j.parent("li").parent().is("ul.category-links"); | |
| if (A && q && I || C && !A && q && K) l() | |
| } catch (Q) {} | |
| if (g == "click" && j.is(".product-title a.npcatTitle")) { | |
| f.preventDefault(); | |
| $(".productContainer").show(); | |
| $(".productOverDetails").hide(); | |
| j.closest("div").next("div.productOverDetails").show(); | |
| j.closest("div.productContainer").hide(); | |
| j.closest("li").find("div.productOverDetails p.product-title a").focus(); | |
| j.closest("li").addClass("selected") | |
| } | |
| if (g == "mouseover") { | |
| o.hide(); | |
| v.show(); | |
| o.parent("li").addClass("selected") | |
| } else g == "mouseout" && l() | |
| }); | |
| $("body").delegate("#addtocart.overlay a", "click", function() { | |
| var f = $(this).attr("title"), | |
| g = $(this).parent().attr("class").indexOf("legalnote"); | |
| if (f !== "undefined" && g !== | |
| "undefined") | |
| if (f == "view cart") try { | |
| s_cartOverlayInteraction("lnk_crt_editcart") | |
| } catch (j) { | |
| console.log(j.message) | |
| } else if (f == "Continue Shopping") { | |
| $.overlay.currentOverlay.trigger("close.overlay", [true]); | |
| try { | |
| s_clickInteraction("ATC Layer: Continue Shopping") | |
| } catch (l) { | |
| console.log(l.message) | |
| } | |
| } else if (g != -1) try { | |
| s_clickInteraction("ATC Layer: View our return policy") | |
| } catch (o) { | |
| console.log(o.message) | |
| } | |
| }); | |
| $("body").delegate("#addtocart", "overlay-before-hide", function() { | |
| document.activeElement.id == "close" && typeof s_clickInteraction != | |
| "undefined" && s_clickInteraction("ATC Layer: Close Overlay") | |
| }) | |
| }, | |
| showProgress: function(a) { | |
| animationstart = function() { | |
| a.find(".progressbar").animate({ | |
| width: "100%" | |
| }, 1500, function() { | |
| animationstop() | |
| }) | |
| }; | |
| animationstop = function() { | |
| a.find(".progressbar").animate({ | |
| width: "0" | |
| }, 0); | |
| animationstart() | |
| }; | |
| animationstart() | |
| }, | |
| addlistModError: function(a) { | |
| a.prepend('<p style="position: absolute;top: -13px;width: 100%;color:#c00;" class="itemnotaddedlist">item not added to list</p>'); | |
| a.find("#addToListPDP").html("please try again") | |
| }, | |
| clearAddtoList: function(a) { | |
| a = !a ? $(".addtolistbutton") : a; | |
| a.html(Target.controller.header.listModHTML) | |
| }, | |
| addtolistMOD: function(a, b) { | |
| Target.controller.header.unSerialize(a); | |
| currentTarget = b.parents("li.addtolistbutton"); | |
| if (!Target.controller.header.listModHTML) Target.controller.header.listModHTML = currentTarget.html(); | |
| currentTarget.find(".itemnotaddedlist").remove(); | |
| currentTarget.find("#addToListPDP").html("add to list"); | |
| currentTarget.addClass("progressing").find("#addToListPDP").append('<div class="progressbar" style="z-index:2;position:absolute;left:2px;bottom:1px;background:#c00;height:2px;border-radius:4px"></div>').focus(); | |
| Target.controller.header.cookie.erase("listcallbackUrl"); | |
| this.showProgress(currentTarget); | |
| $.ajax({ | |
| type: "POST", | |
| url: a, | |
| datatype: "JSON", | |
| curtain: false, | |
| success: function(d) { | |
| currentTarget.find(".progressbar").remove(); | |
| if (d != "") | |
| if (typeof d == "object" && typeof d.ListModJSON != "undefined") { | |
| _isSuccess = !!d.ListModJSON.Success; | |
| _isFailure = !!d.ListModJSON.Failure; | |
| if (_isSuccess) { | |
| currentTarget.find(".listmainblock").addClass("added").focus(); | |
| setTimeout(function() { | |
| currentTarget.addClass("viewinglist").focus() | |
| }, 1200) | |
| } else if (_isFailure) { | |
| currentTarget.prepend('<p style="position: absolute;top: -15px;width: 100%;color:#c00;">' + | |
| d.ListModJSON.FailureMessage + "</p>"); | |
| d.ListModJSON.ErrorCode == "5001" ? currentTarget.find("#addToListPDP").html("edit your list").attr("href", currentTarget.find(".viewlist a").attr("href")) : currentTarget.find("#addToListPDP").html("please try again") | |
| } | |
| } else if (eval("(" + d + ")").overLayId == "registrySignin") { | |
| Target.controller.header.cookie.create("listcallbackUrl", a); | |
| Target.controller.globalUtils.openLoginPopUp() | |
| } else Target.controller.globalUtils.addlistModError(currentTarget); | |
| else Target.controller.globalUtils.addlistModError(currentTarget) | |
| }, | |
| error: function() { | |
| currentTarget.find(".progressbar").remove(); | |
| Target.controller.globalUtils.addlistModError(currentTarget) | |
| } | |
| }) | |
| }, | |
| addToListColCallback: function(a, b) { | |
| var d = $(b), | |
| f = d.closest("li.CollectionItem").attr("parentid"), | |
| g = $("#OrderItemAddForm_catEntryId_" + f).val(), | |
| j = $("#quantity_" + f).val(), | |
| l = $("#listModeFlag").length > 0 && $("#listModeFlag").val() == "Y" ? "Y" : "N"; | |
| f = a == null && $("#OrderItemAddForm_" + f).valid() ? true : a != null && a != "" ? true : false; | |
| Target.controller.header.cookie.erase("listcallbackUrl"); | |
| var o = | |
| d.closest("li.addtolistbutton"), | |
| v = d.children("span").first(), | |
| A = d.find("span.progressAnnounce"); | |
| if (a == null) { | |
| a = $(b).attr("rev"); | |
| a += "&catEntryId_0=" + g + "&quantity_0=" + j; | |
| if (l == "Y") a += "&colItem=" + $(b).attr("id") | |
| } | |
| o.find("p.error").remove(); | |
| if (f) { | |
| Target.controller.globalOverlay.setAxbFocusElem(d); | |
| if (l == "Y") { | |
| $(".itemnotaddedlist").remove(); | |
| d.find(".progressAnnounce").text("Adding to list is in progress"); | |
| d.append('<div class="progressbar"></div>'); | |
| var C = function() { | |
| $(".progressbar").animate({ | |
| width: "100%" | |
| }, | |
| 1500, | |
| function() { | |
| $(".progressbar").animate({ | |
| width: "0" | |
| }, 0); | |
| C() | |
| }) | |
| }, | |
| q = function(I, K) { | |
| var Q = $("<p>").addClass("error").html(I); | |
| o.prepend(Q); | |
| A.text(K) | |
| }; | |
| C(); | |
| o.find("p.error").remove(); | |
| $.ajax({ | |
| type: "POST", | |
| url: a, | |
| datatype: "JSON", | |
| curtain: false, | |
| success: function(I) { | |
| d.find(".progressbar").remove(); | |
| if (typeof I == "object" && typeof I.ListModJSON != "undefined" && typeof I.ListModJSON.Success != "undefined") { | |
| A.empty(); | |
| d.addClass("positive"); | |
| v.text("added to list"); | |
| d.attr("href", "/targetlists"); | |
| d.removeClass("addToListCol"); | |
| d.attr("tabindex", 0).focus(); | |
| setTimeout(function() { | |
| v.text("view your list"); | |
| d.removeClass("positive").attr("tabindex", 0).focus() | |
| }, 2E3) | |
| } else if (typeof I == "object" && typeof I.ListModJSON != "undefined" && typeof I.ListModJSON.Failure != "undefined") { | |
| if (I.ListModJSON.ErrorCode == "5001") { | |
| q(I.ListModJSON.FailureMessage, "there are too many items on the your list, please edit your list before adding more items."); | |
| v.text("edit your list"); | |
| d.attr("href", "/targetlists"); | |
| d.removeClass("addToListCol") | |
| } else { | |
| q(I.ListModJSON.FailureMessage, | |
| "an error occurred, please try again"); | |
| v.text("please try again") | |
| } | |
| d.attr("tabindex", 0).focus() | |
| } else { | |
| Target.controller.header.cookie.create("listcallbackUrl", a); | |
| Target.controller.globalUtils.openLoginPopUp() | |
| } | |
| }, | |
| error: function() { | |
| d.find(".progressbar").remove(); | |
| q("system error occurred"); | |
| v.text("please try again"); | |
| A.text("an error occured, please try again"); | |
| d.attr("tabindex", 0).focus() | |
| } | |
| }) | |
| } else Target.controller.grda.HandleGRDAResponse(a, function() {}, false) | |
| } | |
| }, | |
| openLoginPopUp: function() { | |
| var a = window.location.pathname.substring(1); | |
| Target.controller.header.cookie.create("basePageURLForPOPup", a); | |
| typeof Target.globals.loginPopupURL != "undefined" && window.open(Target.globals.loginPopupURL, "signWindow", "scrollbars=yes, resizable=yes, location=yes, top=" + (window.innerHeight / 2 - 175) + ", left=" + (window.innerWidth / 2 - 350) + ", width=760, height=400") | |
| }, | |
| updateESRBCookieValue: function() { | |
| var a = Target.controller.reviewed.cookie.read("esrbResponse"); | |
| typeof a != "undefined" && a != "" && $("#esrbResponse").val(a) | |
| }, | |
| checkIfCarousal: function(a) { | |
| var b = $(a); | |
| b.length > 0 && b.each(function() { | |
| if (!($(this).data("checked-carousal") != null || $(this).find("li:first").hasClass("carousel-panel"))) { | |
| $(this).data("checked-carousal", true); | |
| $(this).parents("div.section").show(); | |
| var d = $(this).find(">li").length, | |
| f = parseInt(a.replace(/[.a-zA-Z-]+/i, "")), | |
| g = $(this).hasClass("loop") ? true : false, | |
| j = $(this).hasClass("pagination") ? true : false, | |
| l = $(this).hasClass("autoRotate") ? true : false; | |
| g = l ? true : false; | |
| var o = $(this).hasClass("encapsulated") ? true : false, | |
| v = $(this).hasClass("displayCount") ? | |
| true : false, | |
| A = $(this).hasClass("paginationCount") ? true : false; | |
| if (d) | |
| if (f < d) { | |
| d = { | |
| increment: f, | |
| pagination: j, | |
| centerPagination: false, | |
| encapsulateControls: o, | |
| displayCount: v, | |
| paginationCount: A, | |
| autoRotate: l, | |
| pingPong: false, | |
| loop: g | |
| }; | |
| if ($.browser.msie && $(".primaryImgContainer").length) d = $.extend(true, d, { | |
| postFrameChange: function() { | |
| var C = $(".primaryImgContainer a.nextFrame"), | |
| q = $(".primaryImgContainer a.prevFrame"); | |
| if (C.length) { | |
| C.css({ | |
| backgroundPosition: "-396px -1426px" | |
| }); | |
| C.live("hover", function() { | |
| C.attr("style", "backgroundPosition:-385px -1426px;") | |
| }) | |
| } | |
| if (q.length) { | |
| q.css({ | |
| backgroundPosition: "-374px -1426px" | |
| }); | |
| q.live("hover", function() { | |
| q.attr("style", "backgroundPosition:-363px -1426px;") | |
| }) | |
| } | |
| } | |
| }); | |
| if ($("#media-player.vms").length > 0) d = $.extend(true, d, { | |
| stateChange: function() { | |
| $("#media-player ul li.component-container.carousel-panel").removeAttr("aria-hidden"); | |
| $("#media-player ul li.component-container.carousel-panel.state-visible").attr("aria-hidden", "false"); | |
| $("#media-player ul li.component-container.carousel-panel.state-hidden").attr("aria-hidden", "true") | |
| } | |
| }); | |
| $(this).tileCarousel(d) | |
| } else $(this).tileCarousel({ | |
| increment: d, | |
| skipNav: true | |
| }) | |
| } | |
| }) | |
| }, | |
| expandDescComponent: function() { | |
| $("a.waRRtag, a.expandDesc").each(function() { | |
| if ($(this).children().length == 0) { | |
| var a = $(this), | |
| b = a.text(), | |
| d = a.attr("title"); | |
| a.bind("mouseover focus", function() { | |
| $(this).html("").append(d) | |
| }); | |
| a.bind("mouseout blur", function() { | |
| $(this).html("").append(b) | |
| }); | |
| a.bind("mousedown", function() { | |
| $(this).unbind("focus") | |
| }) | |
| } | |
| }) | |
| }, | |
| PDPRRexpandDescComponent: function() { | |
| $("a.waRRtag, a.expandDesc").each(function() { | |
| var a = $(this), | |
| b = a[0].firstChild.textContent; | |
| title = a.attr("title"); | |
| a.bind("mouseover focus", function() { | |
| a.text(title) | |
| }); | |
| a.bind("mouseout blur", function() { | |
| a.text(b) | |
| }); | |
| a.bind("mousedown", function() { | |
| a.unbind("focus") | |
| }) | |
| }) | |
| }, | |
| renderRRfromJson: function(a, b, d) { | |
| var f = 0; | |
| templateToUse = ""; | |
| templateToUse = typeof renderRRfromJsonVarstemp != "undefined" ? a + "_temp" in renderRRfromJsonVarstemp ? renderRRfromJsonVarstemp[a + "_temp"] : renderRRfromJsonVars[a] : renderRRfromJsonVars[a]; | |
| for (var g in RR.data.JSON.placements) | |
| if (RR.data.JSON.placements[g].placement_name == b) { | |
| responseobj = RR.data.JSON.placements[g]; | |
| f = 1; | |
| if ("collapse" in templateToUse.placementvalues) | |
| if ("minresponsedata" in templateToUse.placementvalues.collapse) | |
| if (responseobj.items.length <= templateToUse.placementvalues.collapse.minresponsedata) f = 2; | |
| break | |
| } | |
| if (!(f == 0 || f == 2)) { | |
| a = {}; | |
| for (var j in templateToUse) a[j] = templateToUse[j]; | |
| j = ""; | |
| f = responseobj.items; | |
| g = ""; | |
| var l = /\<[a-zA-Z0-9\"\'\=\s\#]*(type=['"]checkbox['"])[a-zA-Z0-9\"\'\s\=\#]*\/\>/gi, | |
| o = /(<!--startscreenreaderonly--\>)[\'\<a-zA-Z0-9\-\>\\\#\s\=\-\/]+(<!--endscreenreaderonly--\>)/gi, | |
| v; | |
| for (v in templateToUse) { | |
| if (v.indexOf("placementvalues") == | |
| -1) { | |
| if (v.indexOf("loop") > -1) { | |
| j = ""; | |
| if (v.indexOf("loopfirstitem") > -1) f = [f[0]]; | |
| for (var A in f) { | |
| var C = templateToUse[v], | |
| q = 0, | |
| I = ""; | |
| if ("collapse" in templateToUse.placementvalues) | |
| if ("maxresponsedata" in templateToUse.placementvalues.collapse) | |
| if (A == templateToUse.placementvalues.collapse.maxresponsedata) break; | |
| var K = f[A].channel; | |
| if (K.indexOf(" ") > -1) K = K.replace(/\s/gi, ""); | |
| if (K == "storeonly") { | |
| if (f[A].soipricedisplay == "N") I += templateToUse.placementvalues.pricevarybystore + templateToUse.placementvalues.storemessages; | |
| else if (f[A].soipricedisplay == "Y") { | |
| q = 1; | |
| K = ""; | |
| K = f[A].salePriceMax == f[A].salePriceMin ? templateToUse.placementvalues.isStandaloneSalesPrice : templateToUse.placementvalues.isRangeSalesPrice; | |
| K = K.replace(o, ""); | |
| I += K + templateToUse.placementvalues.storepricemsg | |
| } | |
| if (C.match(l)) C = C.replace(l, "") | |
| } else I += f[A].mapflag == "Y" && (K == "online" || K == "webonly" || K == "crossover") ? templateToUse.placementvalues.seelowprice : f[A].salePriceMax != "" && f[A].salePriceMin != "" ? f[A].salePriceMax == f[A].salePriceMin ? templateToUse.placementvalues.isStandaloneSalesPrice : | |
| templateToUse.placementvalues.isRangeSalesPrice : templateToUse.placementvalues.isStandaloneSalesPrice; | |
| if (f[A].priceMax != "" && f[A].priceMin != "") | |
| if (f[A].priceMax != f[A].salePriceMax || f[A].priceMin != f[A].salePriceMin) I += f[A].priceMax != f[A].priceMin ? templateToUse.placementvalues.isRangeOriginalPrice : templateToUse.placementvalues.isStandaloneOriginalPrice; | |
| if (q == 1) I += templateToUse.placementvalues.storemessages; | |
| if (f[A].primaryPromoDescription == "") C = C.replace(globalhtmlreplace.promoText, ""); | |
| if (f[A].relationItemType == | |
| "VAP") C = C.replace("<li", "<li variation='true'"); | |
| C = C.replace(/#pricedisplay#/, I); | |
| if (f[A].productReviews == "") C = C.replace(/((<!-- start product rating --\>)[\'\<a-zA-Z0-9\-\>\#\!\s*\/\=\.\%\_\&\*\@\;\?\:\)\(\|]+(<!-- end product rating --\>))/gi, ""); | |
| j += d == "#dlpRightRail_2" || d == ".perso-pdpvertical-3" ? this.multipleMatchFunction(C, templateToUse.placementvalues.placementdata, f[A], d) : this.multipleMatchFunction(C, templateToUse.placementvalues.placementdata, f[A], f[A], A == 0 ? "" : d) | |
| } | |
| templateToUse[v] = v.indexOf("loopfirstitem") > | |
| -1 ? j : "<ul>" + j + "</ul>" | |
| } else if (templateToUse.placementvalues.placementdata.length > 1) templateToUse[v] = this.multipleMatchFunction(templateToUse[v], templateToUse.placementvalues.placementdata, responseobj, d, A == 0 ? "" : d); | |
| g += templateToUse[v] | |
| } | |
| templateToUse[v] = a[v] | |
| } | |
| $(d).html(g); | |
| d = templateToUse.placementvalues; | |
| if ("componentseperator" in d) | |
| if (b in d.componentseperator) | |
| if ("lineseperator" in d.componentseperator[b]) { | |
| b = d.componentseperator[b]; | |
| d = b.lineseperator; | |
| if (d != "") { | |
| $(b.lineplaceholer + d).addClass(b.classname); | |
| "checkboxcheck" in b && $(b.lineplaceholer + d).find(b.checkboxcheck) && $(b.lineplaceholer + d + b.checkboxcheck).attr("checked", "checked"); | |
| "addhtmlcontent" in b && $(b.addhtmlcontent).insertAfter(b.lineplaceholer + d) | |
| } | |
| } | |
| Target.controller.globalUtils.expandDescComponent(); | |
| Target.controller.globalUtils.checkIfCarousal(".component-carousel-1"); | |
| Target.controller.globalUtils.checkIfCarousal(".component-carousel-3"); | |
| Target.controller.globalUtils.checkIfCarousal(".component-carousel-4"); | |
| Target.controller.globalUtils.checkIfCarousal(".component-carousel-5"); | |
| Target.controller.globalUtils.checkIfCarousal(".component-carousel-6") | |
| } | |
| }, | |
| setrrImgServer: function(a, b) { | |
| return window.location.protocol === "https:" ? "https://" + b : "http://" + a | |
| }, | |
| setrrImgSrc: function(a, b, d, f) { | |
| a = this.setrrImgServer(a, b) + d; | |
| b = a.lastIndexOf("."); | |
| return a.slice(0, b) + "_" + f + "x" + f + a.slice(b, a.length) | |
| }, | |
| multipleMatchFunction: function(a, b, d, f) { | |
| var g = ""; | |
| f = f == ".perso-pdpvertical-3" || f == "#dlpRightRail_2" ? 24 : 36; | |
| for (var j in b) { | |
| var l = b[j].match(/[a-z0-9A-Z\.\-\_]+/); | |
| if (l in d) | |
| if (d[l] != "") { | |
| if (d[l].indexOf("'") > | |
| -1) d[l] = d[l].replace(/\'/gi, "'"); | |
| pattern = RegExp(b[j], "gi"); | |
| if (l == "rating") { | |
| a = a.replace(pattern, ratingsclass[d[l]]); | |
| var o = ""; | |
| d[l].indexOf(".0") > -1 ? o = parseInt(d[l]) : o = d[l]; | |
| a = a.replace(/#screenRating#/gi, o) | |
| } else if (l == "productlinktitle") { | |
| if (d[l].length >= f) { | |
| o = d[l].substring(0, f - 3); | |
| o += "..." | |
| } else o = d[l]; | |
| a = a.replace(pattern, d[l]); | |
| a = a.replace(/#producttitledisplay#/gi, o) | |
| } else if (l.toString().indexOf("PromoDescription") > -1 && a.indexOf("#promotext#") > -1) g += templateToUse.placementvalues.isPromo.replace(/#promoTextDisplay#/gi, | |
| d[l]); | |
| else a = a.replace(pattern, d[l]) | |
| } else { | |
| pattern = l != "productReviews" ? l == "category" ? /((<!-- startcategory --\>)[\'\<a-zA-Z0-9\-\>\#\!\s*\/\=\.\%\_\&\*\@\;\?\:\)\(\|]+(<!-- endcategory --\>))/gi : RegExp(globalhtmlreplace[l], "gi") : /((<!-- start product rating --\>)[\'\<a-zA-Z0-9\-\>\#\!\s*\/\=\.\%\_\&\*\@\;\?\:\)\(\|]+(<!-- end product rating --\>))/gi; | |
| a = a.replace(pattern, d[l]) | |
| } else if (l.toString().indexOf("custimg_") > -1) { | |
| l = l.toString().split("_")[1]; | |
| l = this.setrrImgSrc(d.imageServer, d.imageServerSSL, | |
| d.image, l); | |
| a = a.replace(/#custimg#/gi, l) | |
| } else { | |
| pattern = l != "productReviews" ? RegExp(globalhtmlreplace[l], "gi") : /((<!-- start product rating --\>)[\'\<a-zA-Z0-9\-\>\#\!\s*\/\=\.\%\_\&\*\@\;\?\:\)\(\|]+(<!-- end product rating --\>))/gi; | |
| a = a.replace(pattern, "") | |
| } | |
| } | |
| if (g != "") a = a.replace(/#promotext#/, g); | |
| return a | |
| }, | |
| imgMap: function() { | |
| $.each($(".imagemp"), function() { | |
| var a = $(this).attr("cords"); | |
| if (typeof a != "undefined" && a != "null" && $.trim(a) != "") | |
| if (a.split(",").length == 4) { | |
| if (typeof $(this).parents(".component")[0] != | |
| "undefined" && typeof $(this).parents(".component").find(".image-container")[0] != "undefined") { | |
| $(this).parents(".component").find(".image-container").attr("offsetLeft"); | |
| $(this).parents(".component").find(".image-container").attr("offsetTop") | |
| } else if (typeof $(this).siblings(".image-container")[0] != "undefined") { | |
| $(this).siblings(".image-container").attr("offsetLeft"); | |
| $(this).siblings(".image-container").attr("offsetTop") | |
| } | |
| var b = parseInt(a.split(",")[2]) - parseInt(a.split(",")[0]) + "px", | |
| d = parseInt(a.split(",")[3]) - | |
| parseInt(a.split(",")[1]) + "px", | |
| f = parseInt(a.split(",")[0]) + "px"; | |
| a = parseInt(a.split(",")[1]) + "px"; | |
| $(this).css({ | |
| left: f, | |
| top: a, | |
| width: b, | |
| height: d | |
| }) | |
| } | |
| }) | |
| }, | |
| initRRCarousel: function() { | |
| this.checkIfCarousal(".component-carousel-1"); | |
| this.checkIfCarousal(".component-carousel-3"); | |
| this.checkIfCarousal(".component-carousel-4"); | |
| this.checkIfCarousal(".component-carousel-5"); | |
| this.checkIfCarousal(".component-carousel-recmm-4"); | |
| $(".component-carousel-4coloumns").tileCarousel({ | |
| increment: 4, | |
| pagination: true, | |
| centerPagination: false, | |
| encapsulateControls: true | |
| }); | |
| this.expandDescComponent() | |
| }, | |
| calculateAge: function(a, b, d) { | |
| b = (d + (a <= 9 ? "0" + a : a) + b).match(/(\d{4})(\d{2})(\d{2})/); | |
| var f = new Date(b[1], b[2] - 1, b[3]); | |
| b = new Date; | |
| d = Math.floor((b.getTime() - f.getTime()) / 1E3 / 60 / 60 / 24); | |
| for (var g = 0, j = f.getFullYear(); j <= b.getFullYear(); j++) { | |
| f = j % 4 == 0 && (j % 100 != 0 || j % 400 == 0) ? 366 : 365; | |
| if (!(parseInt(a) >= b.getMonth() + 1 && parseInt(a) >= b.getMonth() + 1 && b.getFullYear() == j)) | |
| if (d >= f) { | |
| d -= f; | |
| g++ | |
| } | |
| } | |
| return g | |
| }, | |
| getDemoLinkURL: function(a) { | |
| var b = Target.controller.reviewed.cookie.read("esrbResponse"); | |
| if (b != null && b != "") { | |
| b = b.split("_"); | |
| var d = $("input[name=ageLimitVer]").val(), | |
| f = b[1]; | |
| if (b[0] == "YES") | |
| if (f >= d) { | |
| b = $("#demoOnClick"); | |
| d = b.attr("rel"); | |
| b.attr({ | |
| href: d, | |
| target: "_blank" | |
| }); | |
| b.removeClass("layer"); | |
| a && $("#demoOnClick").trigger("click", ["fromDemoLink"]) | |
| } | |
| } | |
| }, | |
| recurringMethod: function() { | |
| $(".subscribeme").live("click", function() { | |
| var a = $(this), | |
| b = a.parents("form.no-summary, #modal-check-low-price").find(".button.addtoCart .buttonText, .addtoCart.state-shaded .buttonText"), | |
| d = a.parents("form.no-summary, #modal-check-low-price").find(".button.addtoCart, .addtoCart.state-shaded"), | |
| f = new Date, | |
| g = f.getDate(), | |
| j = f.getMonth() + 1; | |
| f = f.getFullYear(); | |
| var l = a.parents("form.no-summary, #modal-check-low-price").find(".itemLevelService--input"); | |
| a.parents("form.no-summary, #modal-check-low-price").find(".babyalertmsg").remove(); | |
| if (typeof $(this).parents("#ProductDetailsTop")[0] == "undefined") { | |
| a.is(":checked") ? l.show() : l.hide(); | |
| a.is(":checked") && l.css("display", "table") | |
| } else if (a.is(":checked")) { | |
| a.parents("#itemLevelService").animate({ | |
| width: "100%" | |
| }, 370, function() { | |
| l.show(); | |
| $("#addToCart").html("subscribe") | |
| }); | |
| l.css("display", "table") | |
| } else { | |
| a.parents("#itemLevelService").animate({ | |
| width: "228" | |
| }, 370, function() { | |
| l.hide(); | |
| $("#addToCart").html("add to cart") | |
| }); | |
| a.parents("#itemLevelService").removeClass("expand") | |
| } | |
| if (a.closest(".j_primaryInfo").length || a.closest("#qinfo").length) { | |
| b = a.closest("form.order-item"); | |
| b = b.find("#addToCart").length ? b.find("#addToCart") : b.find("#qiAddToCart"); | |
| d = b.find(".buttonText"); | |
| if (a.is(":checked")) { | |
| b.hasClass("state-shaded") ? b.removeClass("addtoCart").removeClass("state-shaded").addClass("subscribe-faded button") : | |
| b.removeClass("addtoCart").addClass("subscribe"); | |
| b.attr("title", "subscribe"); | |
| d.find(".cart-icon").hide(); | |
| d.html("subscribe").attr("title", "subscribe"); | |
| b = $("#staticTextData"); | |
| b = typeof b !== "undefined" ? b.attr("data-json") : null; | |
| b = (b ? $.parseJSON(b) : null).subscribeShipMsg; | |
| typeof $(this).parents("#ProductDetailsTop") == "undefined" && $("#.shippingPrmLi .shpPrmMsg").html(b) | |
| } else { | |
| b.hasClass("subscribe-faded") ? b.removeClass("subscribe-faded").removeClass("button").addClass("state-shaded").addClass("addtoCart") : | |
| b.removeClass("subscribe").addClass("addtoCart"); | |
| b.attr("title", "add to Cart"); | |
| d.find(".cart-icon").show(); | |
| d.html("add to cart").attr("title", "add to cart"); | |
| a.closest(".j_primaryInfo").length ? $(".shippingPrmLi .shpPrmMsg").html(Target.controller.productDetails._pdpShipPromoMsg) : $(".shippingPrmLi .shpPrmMsg").html(Target.controller.globalOverlay._quickInfoShipPromoMsg) | |
| } | |
| } else { | |
| a.is(":checked") ? b.html("subscribe") : b.html("add to cart"); | |
| a.is(":checked") ? d.find(".cart-icon").hide() : d.find(".cart-icon").show(); | |
| a.is(":checked") ? d.attr("title", "subscribe") : d.attr("title", "add to cart") | |
| } | |
| babySubscribe = a.parents("form.no-summary, #modal-check-low-price").find(".calendar"); | |
| if (g < 10) g = "0" + g; | |
| if (j < 10) j = "0" + j; | |
| curDate = j + "/" + g + "/" + f; | |
| a = $("#startDate").val(); | |
| $("#endDate").val(); | |
| if (typeof a !== "undefined" && a != "") curDate = a; | |
| babySubscribe.attr("value", curDate) | |
| }) | |
| }, | |
| recurringOrderValidate: function(a, b) { | |
| var d = b.parents("form.no-summary").find(".babyalertmsg"), | |
| f = b.parents("form.no-summary").find(".itemLevelService"); | |
| d.remove(); | |
| f.before('<p style="clear: both;" class="error-message babyalertmsg" id="babyalertmsg">please uncheck subscribe to add this item to your ' + a + "</p>"); | |
| setTimeout(function() { | |
| $(document).trigger("updateBuffer.framework"); | |
| $("#babyalertmsg.babyalertmsg").attr({ | |
| role: "alert", | |
| tabindex: "-1" | |
| }).focus() | |
| }, 1E3) | |
| }, | |
| RRAddToCart: function() { | |
| var a = ""; | |
| $("#rr_addtocart, #addToCartOverlay").click(function() { | |
| function b(o, v) { | |
| var A = 0; | |
| o.find(" > li").each(function() { | |
| var C = $(this).find("input[type='checkbox']:checked"); | |
| $.inArray(C.val(), | |
| v) >= 0 && A++ | |
| }); | |
| return A | |
| } | |
| var d = 0, | |
| f = ""; | |
| a = ""; | |
| if ($(this).hasClass("state-disabled") !== true) { | |
| $("#item_page-pdp_horizontal_2 li").find("input:checked").each(function(o) { | |
| if (o > 0) a += "&"; | |
| a = a + "partNumber_" + o + "=" + $(this).val() + "&quantity_" + o + "=1" | |
| }); | |
| $.ajaxSetup({ | |
| traditional: true, | |
| cache: false | |
| }); | |
| var g = Target.controller.reviewed.cookie.read("esrbResponse"); | |
| if (g != null && g != "") a = a + "&esrbResponse=" + g; | |
| $.ajax({ | |
| url: "/checkout_itemadd?" + a + "&fromScript=true&overlay=true&fromRR=Y&errorViewName=ErrorResponse", | |
| dataType: "json", | |
| type: "POST", | |
| success: function(o) { | |
| if (typeof o.errorMessage != "undefined" && o.errorMessage != "" && o.errorMessage != null) | |
| if (o.errorMessageKey == "ESRBRATING_MATURE_TEXT" || o.errorMessageKey == "ESRBRATING_FAILURE") j(o); | |
| else { | |
| o = "<div class='errorBlock' style='float:right;margin-top:0px;clear:both;'>" + o.errorMessage + "</div>"; | |
| $(".errorBlock").remove(); | |
| $("#item_page-pdp_horizontal_2").children().length > 0 && $("#item_page-pdp_horizontal_2").after(o) | |
| } else o.partNumWithOOS != null && typeof o.partNumWithOOS != "undefined" && o.partNumWithOOS != | |
| "" ? l(o) : j(o) | |
| } | |
| }); | |
| var j = function(o) { | |
| $.overlay.load({ | |
| contentOverride: o.responseHtml, | |
| overlayId: o.overlayId, | |
| template: o.template, | |
| mode: false, | |
| target: "#rr_addtocart" | |
| }); | |
| formerrordisplay("", o.productId) | |
| }, | |
| l = function(o) { | |
| var v = 0; | |
| partNumberOutOfStockList = o.partNumWithOOS; | |
| var A = $("#rr_addtocart").parent().prev(), | |
| C = "<img class='img-soldout' src='" + $("#oosImagePath").val() + "' alt='sold out' />", | |
| q = 0; | |
| o = ""; | |
| var I = b(A, partNumberOutOfStockList); | |
| A.find(" > li").each(function() { | |
| var p = $(this).find("input[type='checkbox']:checked"); | |
| if (typeof p.val() != "undefined") | |
| if ($.inArray(p.val(), partNumberOutOfStockList) >= 0) { | |
| if (d == 0) { | |
| $(this).find("input[type='checkbox']:checked").replaceWith(""); | |
| $(this).find("a.layer:first").after(C); | |
| p = ""; | |
| p = $(this).find("a.layer:first > img").attr("alt"); | |
| if (p.indexOf("quick info") > -1) p = p.replace("quick info", ""); | |
| $(this).find("a.layer:first > img").attr("alt", p); | |
| $(this).find("label").remove(); | |
| $(this).find("a.layer:first > img").unwrap().wrap("<p class='pImage' style='display:inline'></p>"); | |
| $(this).find("a").click(function(t) { | |
| t.preventDefault() | |
| }); | |
| $(this).find("a").attr("href", ""); | |
| cloneli = $(this).clone(); | |
| $(this).find(".small-product-image").length > 0 ? productimage = cloneli.find(".small-product-image,.product-image")[0].outerHTML : productimage = cloneli.find(".product-image")[0].outerHTML; | |
| $(this).find(".small-product-price").length > 0 ? productprice = cloneli.find(".small-product-price,.product-price")[0].outerHTML : productprice = cloneli.find(".product-price")[0].outerHTML; | |
| $(this).find(".small-product-name").length > 0 ? productname = cloneli.find(".small-product-name,.product-name")[0].outerHTML : | |
| productname = cloneli.find(".product-name")[0].outerHTML; | |
| v += 1; | |
| p = v; | |
| p = "<div class='RRaddtoCartOverlay'><span class='spandottedImg'>............</span>" + p + " of " + I + "<span class='spandottedImgRight'>............</span></div>"; | |
| f += I > 1 ? "<li>" + p + productimage + productprice + productname + "</li>" : productimage + productprice + productname | |
| } | |
| } else typeof p.val() != "undefined" && q++ | |
| }); | |
| if (I > 1) f = "<div id='ModalCarousel' class='modelCarouselDisp'><ul class='component-carousel-1'>" + f + "</ul></div>"; | |
| A = f; | |
| if (q > 0) o = "<div class='addinstockitems'><p class='reviewerrorweight'>Add in-stock items to my cart.</p> <a id='addToCartOverlay' class='button rraddtocart layer' title='add items to cart' name='addToCartOverlay' href='#'><span class='buttonText'>add to cart</span></a></div>"; | |
| else $(".rraddtocart").addClass("state-disabled"); | |
| var K = $("#reviewSelectionError").val(), | |
| Q = $("#reviewError").val(), | |
| n = $("#oosError").val(), | |
| G = $("#oosMsg").val(); | |
| $.overlay.load({ | |
| contentOverride: "<div class='main-content'><h2>" + G + "</h2>" + ("<div class='add2cartnew-leftside add2cartnew-leftside-width'>" + A + ("<div class='quantityOOSMessage'><div class='dispQuantity'>Quantity : <span>1</span></div><div class='OOSError'>" + n + "</div></div>") + "</div>") + ("<div class='add2cartnew-rightside add2cartnew-rightsidealignment'><p>" + | |
| K + "</p>" + o + "<div class='addinstockitems'><p class='reviewerrorweight'>" + Q + "</p><button title='review items' class='button addtoCart' id='reviewitems' value='1' name='reviewitems' type='submit'><span class='buttonText'>Review Items</span></button></div></div>") + "</div>", | |
| target: "#rr_addtocart" | |
| }); | |
| $("#overlay").addClass("OOS-Overlay"); | |
| $("#addToCartOverlay").click(function() { | |
| $(".checkBoxTree").trigger("click"); | |
| $("#rr_addtocart").trigger("click") | |
| }); | |
| $("#reviewitems").click(function() { | |
| $.overlay.currentOverlay.trigger("close.overlay", | |
| true); | |
| $(".checkBoxTree").find(":checked").length == 0 ? $(".rraddtocart").addClass("state-disabled") : $(".rraddtocart").removeClass("state-disabled") | |
| }); | |
| Target.controller.globalUtils.checkIfCarousal(".component-carousel-1"); | |
| d = 1 | |
| } | |
| } | |
| }) | |
| }, | |
| PersoAddToCart: function() { | |
| var a = "", | |
| b = $(".perso-horizantol-2 .rraddtocart"), | |
| d = $(".perso-horizantol-3 .rraddtocart"), | |
| f = $(".perso-horizantol-2 .checkBoxTree"), | |
| g = $(".perso-horizantol-3 .checkBoxTree"), | |
| j = $(".perso-pdpvertical-3 .checkBoxTree"), | |
| l = $(".perso-pdpvertical-3 .rraddtocart"); | |
| f.find(":checked").length == 0 ? b.addClass("state-disabled").append("<span class='screen-reader-only'> disabled</span>") : b.removeClass("state-disabled"); | |
| g.find(":checked").length == 0 ? d.addClass("state-disabled").append("<span class='screen-reader-only'> disabled</span>") : d.removeClass("state-disabled"); | |
| j.find(":checked").length == 0 ? l.addClass("state-disabled").append("<span class='screen-reader-only'> disabled</span>") : l.removeClass("state-disabled"); | |
| $(".checkBoxTree").click(function() { | |
| $(".rraddtocart").find("span.screen-reader-only").remove(); | |
| a = ""; | |
| f.find(":checked").length == 0 ? b.addClass("state-disabled").append("<span class='screen-reader-only'> disabled</span>") : b.removeClass("state-disabled"); | |
| g.find(":checked").length == 0 ? d.addClass("state-disabled").append("<span class='screen-reader-only'> disabled</span>") : d.removeClass("state-disabled"); | |
| j.find(":checked").length == 0 ? l.addClass("state-disabled").append("<span class='screen-reader-only'> disabled</span>") : l.removeClass("state-disabled") | |
| }); | |
| $("#rr_addtocart, #addToCartOverlay").click(function() { | |
| function o(Q, | |
| n) { | |
| var G = 0; | |
| Q.find(" > li").each(function() { | |
| var p = $(this).find("input[type='checkbox']:checked"); | |
| $.inArray(p.val(), n) >= 0 && G++ | |
| }); | |
| return G | |
| } | |
| var v = 0, | |
| A = ""; | |
| a = ""; | |
| if ($(this).hasClass("state-disabled") !== true) { | |
| $(".checkBoxTree").find(":checked").each(function(Q) { | |
| if (Q > 0) a += "&"; | |
| a = a + "partNumber_" + Q + "=" + $(this).val() + "&quantity_" + Q + "=1" | |
| }); | |
| $.ajaxSetup({ | |
| traditional: true, | |
| cache: false | |
| }); | |
| var C = Target.controller.reviewed.cookie.read("esrbResponse"); | |
| if (C != null && C != "") a = a + "&esrbResponse=" + C; | |
| $.ajax({ | |
| url: "/checkout_itemadd?" + | |
| a + "&fromScript=true&overlay=true&fromRR=Y&errorViewName=ErrorResponse", | |
| dataType: "json", | |
| type: "POST", | |
| success: function(Q) { | |
| if (typeof Q.errorMessage != "undefined" && Q.errorMessage != "" && Q.errorMessage != null) | |
| if (Q.errorMessageKey == "ESRBRATING_MATURE_TEXT" || Q.errorMessageKey == "ESRBRATING_FAILURE") q(Q); | |
| else { | |
| Q = "<div class='errorBlock' style='float:right;margin-top:0px;clear:both;'>" + Q.errorMessage + "</div>"; | |
| $(".errorBlock").remove(); | |
| if ($(".perso-horizantol-2").children().length > 0) $(".perso-horizantol-2").after(Q); | |
| else if ($(".perso-horizantol-3").children().length > 0) $(".perso-horizantol-3").after(Q); | |
| else $(".perso-pdpvertical-3").children().length > 0 && $(".perso-pdpvertical-3").after(Q) | |
| } else Q.partNumWithOOS != null && typeof Q.partNumWithOOS != "undefined" && Q.partNumWithOOS != "" ? I(Q) : q(Q) | |
| } | |
| }); | |
| var q = function(Q) { | |
| $.overlay.load({ | |
| contentOverride: Q.responseHtml, | |
| overlayId: Q.overlayId, | |
| template: Q.template, | |
| mode: false, | |
| target: "#rr_addtocart" | |
| }); | |
| K("", Q.productId) | |
| }, | |
| I = function(Q) { | |
| var n = 0; | |
| partNumberOutOfStockList = Q.partNumWithOOS; | |
| var G = $("#rr_addtocart").parent().prev(), | |
| p = "<img class='img-soldout' src='" + $("#oosImagePath").val() + "' alt='sold out' />", | |
| t = 0; | |
| Q = ""; | |
| var z = o(G, partNumberOutOfStockList); | |
| G.find(" > li").each(function() { | |
| var u = $(this).find("input[type='checkbox']:checked"); | |
| if (typeof u.val() != "undefined") | |
| if ($.inArray(u.val(), partNumberOutOfStockList) >= 0) { | |
| if (v == 0) { | |
| $(this).find("input[type='checkbox']:checked").replaceWith(""); | |
| $(this).find("a.layer:first").after(p); | |
| u = ""; | |
| u = $(this).find("a.layer:first > img").attr("alt"); | |
| if (u.indexOf("quick info") > -1) u = u.replace("quick info", ""); | |
| $(this).find("a.layer:first > img").attr("alt", u); | |
| $(this).find("label").remove(); | |
| $(this).find("a.layer:first > img").unwrap().wrap("<p class='pImage' style='display:inline'></p>"); | |
| $(this).find("a").click(function(y) { | |
| y.preventDefault() | |
| }); | |
| $(this).find("a").attr("href", ""); | |
| cloneli = $(this).clone(); | |
| $(this).find(".small-product-image").length > 0 ? productimage = cloneli.find(".small-product-image,.product-image")[0].outerHTML : productimage = cloneli.find(".product-image")[0].outerHTML; | |
| $(this).find(".small-product-price").length > 0 ? productprice = cloneli.find(".small-product-price,.product-price")[0].outerHTML : productprice = cloneli.find(".product-price")[0].outerHTML; | |
| $(this).find(".small-product-name").length > 0 ? productname = cloneli.find(".small-product-name,.product-name")[0].outerHTML : productname = cloneli.find(".product-name")[0].outerHTML; | |
| n += 1; | |
| u = n; | |
| u = "<div class='RRaddtoCartOverlay'><span class='spandottedImg'>............</span>" + u + " of " + z + "<span class='spandottedImgRight'>............</span></div>"; | |
| A += z > 1 ? "<li>" + u + productimage + productprice + productname + "</li>" : productimage + productprice + productname | |
| } | |
| } else typeof u.val() != "undefined" && t++ | |
| }); | |
| if (z > 1) A = "<div id='ModalCarousel' class='modelCarouselDisp'><ul class='component-carousel-1'>" + A + "</ul></div>"; | |
| G = A; | |
| if (t > 0) Q = "<div class='addinstockitems'><p class='reviewerrorweight'>Add in-stock items to my cart.</p> <a id='addToCartOverlay' class='button rraddtocart layer' title='add items to cart' name='addToCartOverlay' href='#'><span class='buttonText'>add to cart</span></a></div>"; | |
| else $(".rraddtocart").addClass("state-disabled"); | |
| var D = $("#reviewSelectionError").val(), | |
| M = $("#reviewError").val(), | |
| B = $("#oosError").val(), | |
| m = $("#oosMsg").val(); | |
| $.overlay.load({ | |
| contentOverride: "<div class='main-content'><h2>" + m + "</h2>" + ("<div class='add2cartnew-leftside add2cartnew-leftside-width'>" + G + ("<div class='quantityOOSMessage'><div class='dispQuantity'>Quantity : <span>1</span></div><div class='OOSError'>" + B + "</div></div>") + "</div>") + ("<div class='add2cartnew-rightside add2cartnew-rightsidealignment'><p>" + | |
| D + "</p>" + Q + "<div class='addinstockitems'><p class='reviewerrorweight'>" + M + "</p><button title='review items' class='button addtoCart' id='reviewitems' value='1' name='reviewitems' type='submit'><span class='buttonText'>Review Items</span></button></div></div>") + "</div>", | |
| target: "#rr_addtocart" | |
| }); | |
| $("#overlay").addClass("OOS-Overlay"); | |
| $("#addToCartOverlay").click(function() { | |
| $(".checkBoxTree").trigger("click"); | |
| $("#rr_addtocart").trigger("click") | |
| }); | |
| $("#reviewitems").click(function() { | |
| $.overlay.currentOverlay.trigger("close.overlay", | |
| true); | |
| $(".checkBoxTree").find(":checked").length == 0 ? $(".rraddtocart").addClass("state-disabled") : $(".rraddtocart").removeClass("state-disabled") | |
| }); | |
| Target.controller.globalUtils.checkIfCarousal(".component-carousel-1"); | |
| v = 1 | |
| }, | |
| K = function(Q, n, G, p, t, z) { | |
| var D = "", | |
| M = $("#FormErrors_" + n); | |
| D = M.html(); | |
| D = Q !== "" ? "<div class='errorBlock'>" + Q + "</div>" : ""; | |
| $(".addtoCartDisabled").removeAttr("disabled"); | |
| M.html(D); | |
| Q = $("#FormErrors_AddToCart"); | |
| if (typeof Q !== "undefined" && !Q.hasClass("giftCardsError")) | |
| if (p == "TRUE") $("#FormErrors_SpecialItemPrice").append(D); | |
| else if (t) $("#FormErrors_QuickInfoAddToCart").append(D); | |
| else if (isStorePickUp) { | |
| $(".searchFiat").append(D); | |
| $(".qtyEdit").val(z); | |
| $(".findStoreResult").addClass("fiatHide"); | |
| $(".fiatSearch").removeClass("fiatHide"); | |
| $(".fiatSearch").addClass("fiatShow"); | |
| $("ul.findStore").removeClass("fiatHide"); | |
| $("ul.findStore").addClass("fiatShow"); | |
| $(".storesTabularData").removeClass("fiatShow"); | |
| $(".storesTabularData").addClass("fiatHide"); | |
| $("#replaceEdit").addClass("hidden"); | |
| $("#pickUpInStoreQty").removeClass("hidden"); | |
| $("body").delegate(".qtyEdit ", "keyup", function() { | |
| $(".qtyhidden").val($(this).val()) | |
| }) | |
| } else { | |
| var B = $("#FormErrors_AddToCart"); | |
| B.append(D); | |
| B.html() && B.html().length !== 0 && setTimeout(function() { | |
| $(document).trigger("updateBuffer.framework"); | |
| B.focus().attr({ | |
| role: "alert", | |
| tabindex: "-1" | |
| }) | |
| }, 1E3) | |
| } | |
| if (n != G && !isStorePickUp) { | |
| $("#FormErrors_" + G).append(D); | |
| if (M !== undefined) { | |
| z = M.siblings('input[name^="quantity_"]'); | |
| if (z !== undefined && z.length) { | |
| n = z.attr("name").split("_")[1]; | |
| $("#collection").length && z.val() === "0" && $("#catEntryId_" + | |
| n).remove() | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }); | |
| $(".perso_vertical_6_1").ready(function() { | |
| var o = $(".perso_vertical_6_1 ul li"); | |
| o.eq(0).addClass("lastRowItem"); | |
| o.eq(1).addClass("lastRowItem"); | |
| o.filter(":odd").addClass("lastlistItem") | |
| }) | |
| }, | |
| DvmAdInit: function() { | |
| var a = document.createElement("script"); | |
| a.async = true; | |
| a.type = "text/javascript"; | |
| a.src = ("https:" == document.location.protocol ? "https:" : "http:") + "//www.googletagservices.com/tag/js/gpt.js"; | |
| var b = document.getElementsByTagName("script")[0]; | |
| b.parentNode.insertBefore(a, b); | |
| console.log("Dvm Ad Init ::", | |
| a.src) | |
| }, | |
| getObjSize: function(a) { | |
| var b = 0, | |
| d; | |
| if (typeof a == "string") b = a.length; | |
| else | |
| for (d in a) a.hasOwnProperty(d) && b++; | |
| return b | |
| }, | |
| DvmAdDisplay: function(a) { | |
| var b = this, | |
| d, f, g, j, l; | |
| try { | |
| b.getObjSize(a) != 0 && googletag.cmd.push(function() { | |
| $.each(dfp_placements.dfp_adUnit, function(v, A) { | |
| d = $.trim(A.dfp_placementID); | |
| f = $.trim(A.dfp_category); | |
| g = A.dfp_dimension; | |
| if (b.getObjSize(d) != 0 && b.getObjSize(f) != 0 && b.getObjSize(g) != 0) { | |
| j = googletag.defineSlot(f, g, d); | |
| j.addService(googletag.pubads()); | |
| b.getObjSize(A.dfp_adLevelTargetVal) != | |
| 0 && $.each(A.dfp_adLevelTargetVal, function(C, q) { | |
| $.each(q, function(I, K) { | |
| b.getObjSize(I) != 0 && j.setTargeting(I, K) | |
| }) | |
| }); | |
| j.setCollapseEmptyDiv(true) | |
| } | |
| }); | |
| googletag.pubads().addEventListener("slotRenderEnded", function() { | |
| $("iframe").attr("title", "3rd party advertisement"); | |
| $("#dvm_gpt-category_page-site_merch_promo_global_slot iframe").attr("title", "Target Promotions"); | |
| $("#dvm_gpt-category_page-site_merch_promo_banner iframe").attr("title", "Target Promotions"); | |
| $("iframe").attr("role", "presentation") | |
| }); | |
| googletag.pubads().enableSingleRequest(); | |
| googletag.pubads().enableAsyncRendering(); | |
| l = dfp_placements.dfp_ppid; | |
| l != "-1002" && b.getObjSize(l) != 0 && googletag.pubads().setPublisherProvidedId(l); | |
| googletag.enableServices(); | |
| b.getObjSize(a.dfp_pageLevelTargetVal) != 0 && $.each(a.dfp_pageLevelTargetVal, function(v, A) { | |
| $.each(A, function(C, q) { | |
| if (typeof q.s_vi === "undefined" || q.s_vi == "") q.s_vi = gpt_siteCatalystId != "" ? gpt_siteCatalystId : ""; | |
| b.getObjSize(C) != 0 && googletag.pubads().setTargeting(C, q) | |
| }) | |
| }); | |
| $.each(dfp_placements.dfp_adUnit, function(v, A) { | |
| d = $.trim(A.dfp_placementID); | |
| googletag.display(d) | |
| }) | |
| }) | |
| } catch (o) { | |
| console.log(o.message) | |
| } | |
| }, | |
| validateReferrer: function() { | |
| if (document.referrer && document.referrer != "") { | |
| ref = document.referrer; | |
| ref_hostname = ref.match(/:\/\/(.[^/]+)/)[1]; | |
| ostVal = ref_hostname.indexOf("target.com") > -1 ? false : true | |
| } else ostVal = false; | |
| return ostVal | |
| }, | |
| DVMAdDisplayAfterLazy: function(a) { | |
| setTimeout(function() { | |
| $.each(a.dfp_adUnit, function(b, d) { | |
| dfpPlacementId = $.trim(d.dfp_placementID); | |
| contentLength = $("#" + dfpPlacementId).html().trim().length; | |
| !contentLength > 0 && googletag.display(dfpPlacementId) | |
| }) | |
| }, | |
| 300); | |
| msnryFunction(3) | |
| } | |
| }); | |
| var imageMaxWidth = 0; | |
| function s7jsonResponse(a) { | |
| $.each(a, function(b, d) { | |
| if (b == "image.width") imageMaxWidth = d | |
| }) | |
| } | |
| function s7jsonError() { | |
| imageMaxWidth = 0 | |
| } | |
| $(".pdp-rightrail").undelegate(); | |
| function miniOverlay(a) { | |
| this._defaultConfig = $.extend({ | |
| zIndex: 100, | |
| x: 0, | |
| y: 0, | |
| contentID: "miniOverlay", | |
| parentContainer: "body", | |
| content: "", | |
| wraperClass: "miniOverlay", | |
| prefetch: function() {}, | |
| postfetch: function() {}, | |
| preClose: function() {}, | |
| postClose: function() {}, | |
| origin: $(document), | |
| closeOtherMiniOverlays: false | |
| }, a); | |
| _mo = this; | |
| this._construct = function(b) { | |
| b.closeOtherMiniOverlays && $(".overlay-content-wrap").parent().remove(); | |
| b.prefetch(); | |
| var d = "<div " + (b.wraperClass != "" ? 'class="' + b.wraperClass + '"' : "") + (b.contentID != "" ? | |
| ' id="' + b.contentID + '"' : "") + "><div class='esrb-curtain'></div><div class='overlay-content-wrap'>" + (b.content != "" ? b.content : "") + "</div>" + (b.close ? "<div id='close-button'><a title='Close overlay' class='overlay-close' href='#'>Close overlay</a></div>" : "") + "</div>"; | |
| $(b.parentContainer).append(d); | |
| $(b.parentContainer).find(".overlay-close").bind("click", function(f) { | |
| f.preventDefault(); | |
| f.stopPropagation(); | |
| _mo.closeOverlay(null) | |
| }); | |
| b.postfetch() | |
| }(this._defaultConfig); | |
| this.closeOverlay = function() { | |
| _mo._defaultConfig.preClose(); | |
| $("." + _mo._defaultConfig.wraperClass).hide().remove(); | |
| _mo._defaultConfig.origin.attr("tabindex", -1).focus(); | |
| _mo._defaultConfig.postClose() | |
| } | |
| } | |
| shopLook = function(a, b) { | |
| this._cfg = { | |
| preAjax: function() {}, | |
| postAjax: function() {}, | |
| productTemplate: "", | |
| _container: $(document), | |
| postFetching: function() {}, | |
| postSwatchChange: function() {}, | |
| preFetching: function() {}, | |
| postAddToCart: function() {}, | |
| isVariationItem: false, | |
| isSecondVAriation: false, | |
| not_online: '<span class="store-only"><span class="x-grey">currently unavailable online</span> </span>', | |
| out_of_stock: '<span class="out-of-stock" role="alert" aria-hidden="true">out of stock</span>', | |
| store_only: '<span class="store-only"><span class="x-grey">available</span> only in stores</span>', | |
| add_to_cart_button: '<a title="add" class="button new-small-button perso-addtocart" href="#add-to-cart"><span class="buttonText">add</span></a>', | |
| currentSwatch: "", | |
| preorder_button: '<a class="button new-preorder-button perso-addtocart" title="pre-order now"><span class="buttonText">pre-order now</span></a>', | |
| addToCartURL: "/checkout_itemadd?", | |
| added_to_cart_button: '<span title="added" class="button new-small-button button-added"><span class="buttonText" role="alert">added</span></span>', | |
| initiated: false, | |
| ESRBTemplate: "<p>Please certify that you are old enough to buy this item. You must be age ##age## or older.</p><span class='esrb-buttons'><button class='button esrb-yes'><span class='buttonText '>yes. <span class='age-statement'> I am age ##age## or older.</span></span></button></span><span class='esrb-buttons'><button class='button esrb-no'><span class='buttonText'>no <span class='age-statement'> I am under ##age##.</span></span></button></span>" | |
| }; | |
| var d = this; | |
| this.addedTCIN = false; | |
| for (var f in b) this._cfg[f] = | |
| b[f]; | |
| for (f in this._cfg) this[f] = this._cfg[f]; | |
| d.partObj = a; | |
| this.changeSwatch = function(g, j, l) { | |
| this.nullSize = true; | |
| this.currentVariation = ""; | |
| this.currentSwatch = g; | |
| this.currentVariation = d.sizeSelection; | |
| try { | |
| j = 0; | |
| if (typeof this.currentVariation != "undefined") { | |
| j = this.findIndex(this.swatchObject['"' + this.currentSwatch + '"'].sizes, this.currentVariation); | |
| if (!j > 0) { | |
| this.nullSize = true; | |
| j = 0; | |
| this.sizeSelection = "" | |
| } else this.nullSize = false | |
| } | |
| currentCatID = this.swatchObject['"' + g + '"'].catID[j]; | |
| this.paintResponse(this.prepareProductContent(this.partObj.products[this.partObj.map[currentCatID]]), | |
| l); | |
| this._container.find(".product-wrap").replaceWith(this._html); | |
| this.postSwatchChange(this) | |
| } catch (o) { | |
| console.log("null selection of swatch"); | |
| this._container.find(".swatch-wrap .swatchcolor").removeClass("selected").text("").append('<span class="default-selection">Please make a selection</span>'); | |
| return false | |
| } | |
| }; | |
| this.createSlider = function(g, j) { | |
| if (typeof g.swatches != "undefined" && g.swatches.length > 0) { | |
| d.isVariationItem = true; | |
| try { | |
| if (typeof eval(g.variations) != "undefined") { | |
| var l = {}; | |
| d.colors = []; | |
| var o = g.swatches, | |
| v; | |
| for (v in o) | |
| for (jj in o[v].Attributes) | |
| if (o[v].Attributes[jj] == 1) { | |
| var A = jj.split(":"); | |
| d.firstvariation = A[0]; | |
| typeof l['"' + A[1] + '"'] == "undefined" && d.colors.push(A[1].replace(/-quot-/g, '"')); | |
| if (d.partObj.map[o[v].catentry_id] == d.partNumber) d.defaultSwatch = A[1].replace(/-quot-/g, '"') | |
| } else { | |
| d.isSecondVAriation = true; | |
| var C = jj.split(":"); | |
| d.secondVariationText = C[0] | |
| } | |
| d.swatchObject = eval(g.variations) | |
| } else d.swatchObject = this.prepareSwatchesObject(g.swatches) | |
| } catch (q) { | |
| console.log("some error occured while calling prepareSwatchesObject") | |
| } | |
| } else d.isVariationItem = | |
| false; | |
| l = {}; | |
| try { | |
| l = d.prepareProductContent(g.products[j]) | |
| } catch (I) { | |
| console.log("some error occured while calling prepareProductContent") | |
| } | |
| this.preFetching(l); | |
| isPainted = d.paintResponse(l, d.productTemplate); | |
| d.getBulkShipping(); | |
| if (isPainted) { | |
| d._container.html(d._html); | |
| d.addListners(); | |
| return d.initiated = true | |
| } | |
| }; | |
| this.getBulkShipping = function() { | |
| var g = ""; | |
| try { | |
| g = typeof d.partObj.bulkShipping != "undefind" && d.partObj.bulkShipping.bulkShippingFlag == "Y" ? "<div class='bulk-order'><span class='truck-icon'> </span><span class='oversizeLbl'>" + | |
| d.partObj.bulkShipping.oversizeLbl + "</span><div class='oversizeNotice tipnoteTrigger tipType-info'><p><a href=\"#\" rel=\"nofollow\" class=\"tipnoteRef\">More information bulk shipping</a></p><div class='tooltipBox'><div class='tipnoteText'><div class='tipnoteTitle'>" + d.partObj.bulkShipping.tipnoteTitle + "</div>Certain fragile or oversized items may incur an oversized handling fee. This fee will be reflected in checkout.</div><a title='close' class='tipnoteClose screen-reader-only' href='#tipnoteClose'>close</a></div></div></div>" : | |
| "" | |
| } catch (j) { | |
| console.log("bulk shipping may be undefined") | |
| } | |
| d._html += g | |
| }; | |
| this.addListners = function() { | |
| this._container.delegate(".perso-swatchtool", "click", function(g) { | |
| g.stopPropagation(); | |
| g.preventDefault(); | |
| d.swatchSelection = $(this).find("input").val(); | |
| d.swatchSelection != "" && d._container.find(".selection-error").hide(); | |
| d.changeSwatch(d.swatchSelection, d.partNumber, d.productTemplate) | |
| }); | |
| this._container.delegate(".swatchesList", "change", function(g) { | |
| g.stopPropagation(); | |
| g.preventDefault(); | |
| d.swatchSelection = | |
| this.value; | |
| d.swatchSelection != "" && d._container.find(".selection-error").hide(); | |
| d.changeSwatch(d.swatchSelection, d.partNumber, d.productTemplate) | |
| }); | |
| this._container.delegate(".second-variation", "change", function(g) { | |
| g.stopPropagation(); | |
| g.preventDefault(); | |
| d.sizeSelection = this.value; | |
| d.sizeSelection != "" && d._container.find(".swatch-error").remove(); | |
| d.changeSwatch(d.currentSwatch, d.partNumber, d.productTemplate, d.sizeSelection) | |
| }); | |
| this._container.delegate(".perso-addtocart", "click", function(g) { | |
| g.preventDefault(); | |
| g.stopPropagation(); | |
| d.addToCart(d.partNumber) | |
| }); | |
| this._container.delegate("#esrb .esrb-yes", "click", function(g) { | |
| g.preventDefault(); | |
| g.stopPropagation(); | |
| g = ""; | |
| g = "YES_" + d.ageLimit + "_" + d.ageLimit + "_ESRBPAGE"; | |
| Target.controller.reviewed.cookie.create("esrbResponse", g); | |
| g = "esrbResponse=" + g + "; path=/"; | |
| d.esrbOverlay.closeOverlay(); | |
| d.addToCart(d.addedTCIN, g) | |
| }); | |
| this._container.delegate("#esrb .esrb-no", "click", function(g) { | |
| g.preventDefault(); | |
| g.stopPropagation(); | |
| d.esrbOverlay.closeOverlay() | |
| }); | |
| this._container.find(".tipnoteTrigger").tipNote({ | |
| showLeft: true | |
| }); | |
| return true | |
| }; | |
| this.prepareProductContent = function(g) { | |
| var j = {}; | |
| j.primary_image = g.Attributes.thumb_img != null ? g.Attributes.thumb_img : null; | |
| if (g.Attributes.price.formattedOfferPrice == "Too low to display") j.see_low_price = '<div class="seelow-wrap"><a href="' + g.Attributes.seoUrl + '" class="seelow" title="see low price">see low price</a></div>'; | |
| else { | |
| if (g.Attributes.price.formattedOfferPrice != "null" && g.Attributes.price.formattedOfferPrice != "") j.offerprice = '<div class="priceclass"><strong class="screen-reader-only">Sale Price</strong><span class="priceval">' + | |
| g.Attributes.price.formattedOfferPrice + "</span></div>"; | |
| if (g.Attributes.price.formattedListPrice != "null" && g.Attributes.price.formattedListPrice != "") j.regprice = '<div class="regtext">Reg: <del><strong class="screen-reader-only">Original Price</strong>' + g.Attributes.price.formattedListPrice + "</del></div>" | |
| } | |
| try { | |
| if (g.Attributes.price.eyeBrow != "null" && g.Attributes.price.eyeBrow != "" && g.Attributes.price.formattedOfferPrice != "Too low to display") j.eyebrow = '<div class="eyebrow" id="eyebrow" >' + g.Attributes.price.eyeBrow + | |
| "</div>" | |
| } catch (l) { | |
| console.log('Error at "Eyebrow"') | |
| } | |
| try { | |
| g.Attributes.promo.overview[0].short_desc = g.Attributes.promo.overview[0].short_desc.replace(/-quot-/g, '"'); | |
| j.promo = typeof g.Attributes.promo.overview[0].short_desc != undefined ? '<div class="product-promotion">' + g.Attributes.promo.overview[0].short_desc + "</div>" : "" | |
| } catch (o) { | |
| console.log("Error at promo") | |
| } | |
| d.swatchesTemplate = ""; | |
| if (d.isVariationItem) { | |
| j.swatchesTemplate = d.createSwatches(); | |
| d._selectedSwatch = typeof d.currentSwatch == "undefined" || d.currentSwatch == | |
| "" ? d.defaultSwatch : d.currentSwatch; | |
| if (typeof d.swatchObject['"' + d._selectedSwatch + '"'] != "undefined" && typeof d.swatchObject['"' + d._selectedSwatch + '"'].sizes != "undefined") j.secondvariation = '<div class="second-variation-wrap"><span class="variation-text">' + d.secondVariationText + ':</span><span class="variation-selection">' + d.createSecondVariation(d._selectedSwatch) + "</span></div>"; | |
| else if (typeof d._selectedSwatch == "undefined" && d.isSecondVAriation) j.secondvariation = '<div class="second-variation-wrap"><span class="variation-text">' + | |
| d.secondVariationText + ':</span><span class="variation-selection">' + d.createSecondVariation(d._selectedSwatch) + "</span></div>"; | |
| j.firstvariation = d.firstvariation | |
| } | |
| j.out_of_stock = j.addtocartbutton = ""; | |
| j.addedtocartbutton = d.added_to_cart_button; | |
| if (d._container.find(".swatch-error").length > 0) j.swatch_error = '<p class="error-message swatch-error" role="alert">Please choose a ' + d.secondVariationText + ".</p>"; | |
| if (!d.initiated && typeof d.partObj.addToCart != "undefined" && d.partObj.addToCart.a2Cstatus == "YES") j.addtocartbutton = | |
| d.added_to_cart_button; | |
| else if (!d.initiated && typeof d.partObj.addToCart != "undefined" && d.partObj.addToCart.a2Cstatus == "NO") j.responseerrors = '<p class="error-message swatch-error" role="alert">' + d.partObj.addToCart.msg + "</p>"; | |
| else if (d.nullSize) j.addtocartbutton = d.add_to_cart_button; | |
| else if (d.isVariationItem && !d.initiated) j.addtocartbutton = d.add_to_cart_button; | |
| else if (g.Attributes.inventory.channel_code != 1 && g.Attributes.inventory.isBuyable == "true") | |
| if (g.Attributes.inventory.inv_code == 6) { | |
| d.oos = true; | |
| j.out_of_stock = !d.initiated ? d.out_of_stock.replace(/role.*?\s/, "") : d.out_of_stock | |
| } else j.addtocartbutton = d.getAddToCartButton(g); | |
| else j.addtocartbutton = d.store_only; | |
| j.sliderpartnumber = d.partNumber; | |
| if (g.productTitle != "") { | |
| g.productTitle.replace(/-quot-/g, '"'); | |
| j.title = g.productTitle; | |
| j.shortTitle = g.productTitle.length > 36 ? g.productTitle.substring(0, 36) + "..." : g.productTitle; | |
| j.PDPURL = g.Attributes.seoUrl | |
| } | |
| if (d.isVariationItem) j.var_height = d.isSecondVAriation ? " double-var" : " single-var"; | |
| return j | |
| }; | |
| this.getAddToCartButton = | |
| function(g) { | |
| if (g.Attributes.inventory.channel_code != 1 && g.Attributes.inventory.isBuyable == "true") return g.Attributes.inventory.inv_code == 1 ? this.add_to_cart_button + '<span class="allow-time"><span class="screen-reader-only">Alert</span> ' + g.Attributes.inventory.status + "</span>" : g.Attributes.inventory.inv_code == 3 ? this.add_to_cart_button + '<span class="inv-message">' + g.Attributes.inventory.status + '</span><span class="sup-msg">' + g.Attributes.inventory.sup_msg + "</span>" : g.Attributes.inventory.inv_code == | |
| 4 ? this.preorder_button + '<span class="release-date">' + this.getReleaseDate(g.Attributes.inventory.status) + "</span>" : g.Attributes.inventory.inv_code == 5 ? '<span class="release-date">' + this.getReleaseDate(g.Attributes.inventory.status) + "</span>" : g.Attributes.inventory.inv_code == 6 ? "" : this.add_to_cart_button | |
| }; | |
| this.getReleaseDate = function(g) { | |
| return '<span class="rd">' + this.partObj.staticText.releaseDate + '</span><span class="rdt">' + g.replace(/release\sdate\:/, "") + "</span>" | |
| }; | |
| this.createSwatches = function() { | |
| var g = | |
| "", | |
| j = ""; | |
| if (d.colors.length > 0) { | |
| if (d.colors.length < 10 && d.firstvariation.match(/(color|variation)/)) { | |
| for (var l in d.swatchObject) { | |
| j = d.partObj.products[d.partObj.map[d.swatchObject[l].catID[0]]].Attributes.thumb_img.replace(/\/\w+\.?\w+$/, "/" + d.partObj.products[d.partObj.map[d.swatchObject[l].catID[0]]].Attributes.partNumber + "_Swatch.jpg"); | |
| g += '<li class="perso-swatchtool ' + ('"' + d.currentSwatch + '"' == l ? "selected" : "") + '" ><input type="radio" ' + ('"' + d.currentSwatch + '"' == l ? "checked" : "") + ' name="attr-swatchColor" title=' + | |
| l + " value=" + l + " alt=" + l + ' src="' + d.partObj.products[d.partObj.map[d.swatchObject[l].catID[0]]].Attributes.thumb_img + '" class="qiWithVariation" ><img width="12" height="12" src="' + j + '" alt=""></li>' | |
| } | |
| g = '<ul class="perso-swatches">' + g + "</ul>" | |
| } else g = d.createDropDown(d.colors, d.currentSwatch, "attr-swatchColor", "", "swatchesList", "Please make a selection"); | |
| g = '<div class="swatch-wrap"><label class="colorlegend">' + d.firstvariation + ':</label><span class="swatchcolor selected"> ' + (d.currentSwatch != "" ? | |
| d.currentSwatch : '<span class="default-selection">Please make a selection</span>') + "</span>" + g + "</div>" | |
| } else g = '<div class="swatch-wrap" ><fieldset><legend class="colorlegend">' + d.firstvariation + ': </legend><span class="swatchcolor"> ' + d.currentSwatch + "</span>" + g + "</fieldset></div>"; | |
| return g | |
| }; | |
| this.createSecondVariation = function(g) { | |
| d.isSecondVAriation = true; | |
| d.selectedSize = ""; | |
| return typeof g != "undefined" ? d.createDropDown(d.swatchObject['"' + g + '"'].sizes, d.currentVariation, "secondvariation", "", "second-variation", | |
| "Please make a selection") : d.createDropDown(d.sizeVals, d.currentVariation, "secondvariation", "", "second-variation", "Please make a selection") | |
| }; | |
| this.createDropDown = function(g, j, l, o, v, A) { | |
| A = "<option value=''>" + (typeof A != "undefined" ? A : "Select Item") + "</option>"; | |
| for (var C in g) A += '<option value="' + g[C] + '" ' + (j != "" && g[C] == j ? 'selected="selected"' : "") + " >" + g[C] + "</option>"; | |
| return "<select " + (l != "" ? 'name="' + l + '"' : "") + " " + (v != "" ? 'class="' + v + '"' : "") + " " + (o != "" ? 'id="' + o + '"' : "") + ">" + A + "</select>" | |
| }; | |
| this.paintResponse = | |
| function(g, j) { | |
| var l, o; | |
| for (o in g) { | |
| l = RegExp("##" + o.toString() + "##", "g"); | |
| j = j.replace(l, g[o]) | |
| } | |
| this._html = j = j.replace(/##\w+\b##/g, ""); | |
| return true | |
| }; | |
| this.prepareSwatchesObject = function(g) { | |
| var j = {}; | |
| d.colors = []; | |
| d.sizeVals = []; | |
| for (var l in g) | |
| for (jj in g[l].Attributes) | |
| if (g[l].Attributes[jj] == 1) { | |
| var o = jj.split(":"); | |
| d.firstvariation = o[0]; | |
| if (typeof j['"' + o[1] + '"'] == "undefined") { | |
| d.colors.push(o[1].replace(/-quot-/g, '"')); | |
| j['"' + o[1] + '"'] = {} | |
| } | |
| if (typeof j['"' + o[1] + '"'].catID == "undefined") j['"' + o[1] + '"'].catID = []; | |
| if (d.partObj.map[g[l].catentry_id] == | |
| d.partNumber) d.defaultSwatch = o[1].replace(/-quot-/g, '"'); | |
| j['"' + o[1] + '"'].catID.push(g[l].catentry_id.replace(/-quot-/g, '"')) | |
| } else { | |
| d.isSecondVAriation = true; | |
| var v = jj.split(":"); | |
| d.secondVariationText = v[0]; | |
| if (typeof j['"' + o[1] + '"'].sizes == "undefined") j['"' + o[1] + '"'].sizes = []; | |
| v[1] = v[1].replace(/-quot-/g, '"'); | |
| j['"' + o[1] + '"'].sizes.push(v[1]); | |
| $.inArray(v[1], d.sizeVals) == -1 && d.sizeVals.push(v[1]) | |
| } | |
| return j | |
| }; | |
| d.createSlider(a, this.partNumber) && d.postFetching(d); | |
| this.init = void 0; | |
| this.addToCart = function(g, j) { | |
| this.addedTCIN = | |
| false; | |
| if (this.isVariationItem) { | |
| if (typeof d.swatchSelection == "undefined" || d.swatchSelection == "") this.showSwatchError("Please choose a " + this.firstvariation + "."); | |
| if (this.isSecondVAriation && (typeof d.sizeSelection == "undefined" || d.sizeSelection == "")) this.showError(g, "Please choose a " + this.secondVariationText + ".") | |
| } else this.addedTCIN = g; | |
| if (this.isSecondVAriation) { | |
| if (this.currentSwatch != "" && this.sizeSelection != "") { | |
| this.elementIndex = this.findIndex(this.swatchObject['"' + this.currentSwatch + '"'].sizes, this._container.find(".second-variation option:selected").val()); | |
| var l = this.swatchObject['"' + this.currentSwatch + '"'].catID[this.elementIndex]; | |
| if (typeof l != "undefined" && l != "") this.addedTCIN = this.partObj.map[l] | |
| } | |
| } else if (typeof this.currentSwatch != "undefined" && this.currentSwatch != "") this.addedTCIN = this.partObj.map[this.swatchObject['"' + this.currentSwatch + '"'].catID[0]]; | |
| if (!this.addedTCIN) return false; | |
| this.ajaxurl = this.addToCartURL + "partNumber_0=" + this.addedTCIN.toString() + "&quantity_0=1&fromScript=true&overlay=true&errorViewName=ErrorResponse&fromAddTocartOverlay=Y&noRespHtmlNeeded=Y&" + | |
| (typeof j != "undefined" ? "&" + j : "") + "&" + this.getESRBCookie(); | |
| $.ajax({ | |
| dataType: "json", | |
| url: this.ajaxurl, | |
| type: "POST", | |
| success: function(o) { | |
| d.manageAddToCartResponse(o) | |
| } | |
| }) | |
| }; | |
| this.getESRBCookie = function() { | |
| var g = Target.controller.header.cookie.read("esrbResponse"); | |
| return g != "" ? "esrbResponse=" + g : "" | |
| }; | |
| this.manageAddToCartResponse = function(g) { | |
| if (typeof g.errorMessageKey != undefined && g.errorMessage != "" && g.errorMessage != null) | |
| if (g.errorMessageKey == "SHOP_INVENTORY_EQUAL") { | |
| this.partObj.products[this.addedTCIN].Attributes.inventory.inv_code = | |
| 6; | |
| this.handleOOS(this.addedTCIN) | |
| } else if (g.errorMessageKey == "ESRBRATING_MATURE_TEXT" || g.errorMessageKey == "ESRBRATING_FAILURE") { | |
| this.ageLimit = g.quantityUpdate; | |
| this.handleESRB(this.ageLimit) | |
| } else this.showError(this.partNumber, g.errorMessage); | |
| else if (g.overlayId != undefined && g.overlayId == "addtocart") { | |
| typeof g.responseHtml != "undefined" && g.responseHtml != null && g.responseHtml != "" && Target.controller.reviewed.cookie.create("cartQty", g.responseHtml); | |
| this._cart_count = parseInt($("#mini-cart-icon .count").text().match(/\d+/)) + | |
| 1; | |
| $("#mini-cart-icon .count").text(this._cart_count); | |
| this._container.find(".perso-addtocart").replaceWith(this.added_to_cart_button); | |
| this._container.find(".button-wrap").attr("tabindex", "-1").focus() | |
| } | |
| this.postAddToCart(this, g) | |
| }; | |
| this.handleESRB = function(g) { | |
| this.esrbOverlay = new miniOverlay({ | |
| zIndex: 400, | |
| parentContainer: d._container.find(".product-wrap"), | |
| contentID: "esrb", | |
| wraperClass: "esrbOverlay", | |
| content: '<div class="esrb-wraper">' + d.ESRBTemplate.replace(/##age##/g, g) + "</div>", | |
| closeOtherMiniOverlays: true, | |
| close: false, | |
| prefetch: function() { | |
| typeof d.esrbOverlay != "undefined" && d.esrbOverlay.closeOverlay(); | |
| d._container.find(".bulk-order").hide() | |
| }, | |
| postfetch: function() { | |
| var j = $("#esrb").parents(".list-wrap:first").position(); | |
| console.log(j); | |
| $("#esrb").css({ | |
| left: j.left + "px", | |
| top: j.top + "px" | |
| }); | |
| window.setTimeout(function() { | |
| $("#" + _mo._defaultConfig.contentID).find("p:first").attr("tabindex", "-1").focus() | |
| }, 100); | |
| console.log("postfetch called") | |
| }, | |
| preClose: function() { | |
| d._container.find(".bulk-order").show() | |
| }, | |
| origin: d._container.find(".perso-addtocart") | |
| }) | |
| }; | |
| this.showError = function(g, j) { | |
| this._container.find(".swatch-error").length > 0 ? this._container.find(".swatch-error").text(j).show() : $('<p class="error-message swatch-error" role="alert">' + j + "</p>").insertBefore(this._container.find(".button-wrap")) | |
| }; | |
| this.showSwatchError = function(g) { | |
| this._container.find(".selection-error").length > 0 ? this._container.find(".selection-error").text(g).show() : this._container.find(".swatch-wrap").append($('<p class="error-message selection-error" role="alert">' + g + "</p>")) | |
| }; | |
| this.handleOOS = function(g) { | |
| g = this.partObj.products[g].Attributes.inventory; | |
| if (g.channel_code != 1) | |
| if (g.inv_code == 6) { | |
| this._container.find(".perso-addtocart").remove(); | |
| this._container.find(".prod-image .out-of-stock").length > 0 ? this._container.find(".prod-image .out-of-stock").show() : this._container.find(".prod-image").prepend(this.out_of_stock); | |
| g = this._container.find(".prod-image img"); | |
| var j = g.attr("alt"); | |
| g.attr("alt", j.replace("quick info", "out of stock")); | |
| this._container.find("a.layer").replaceWith(g); | |
| var l = this._container.find("p.button-wrap").append('<span class="blank-span screen-reader-only"> </span>'); | |
| window.setTimeout(function() { | |
| l.attr("tabindex", "-1").focus() | |
| }, 100) | |
| } else { | |
| this._container.find(".perso-addtocart").removeAttr("aria-hidden").show(); | |
| this._container.find(".prod-image .out-of-stock").hide(); | |
| this._container.find(".store-only").remove() | |
| } else this._container.find(".perso-addtocart").replaceWith(this.store_only) | |
| }; | |
| this.handleA2CButton = function(g, j) { | |
| try { | |
| this._container.find(".button-wrap").html(this.getAddToCartButton(this.partObj.products[j])) | |
| } catch (l) { | |
| console.log("Error in getAddToCartButton >>" + | |
| l) | |
| } | |
| }; | |
| this.findIndex = function(g, j) { | |
| for (var l in g) | |
| if (g[l] == j) return l; | |
| else l++; | |
| return null | |
| }; | |
| this.findAddedTCIN = function(g) { | |
| if (this.isVariationItem) | |
| if (this.isSecondVAriation) { | |
| if (this.currentSwatch != "") | |
| if (this._container.find(".second-variation option:selected").val() != "") { | |
| this.elementIndex = this.findIndex(this.swatchObject['"' + this.currentSwatch + '"'].sizes, this._container.find(".second-variation option:selected").val()); | |
| g = this.swatchObject['"' + this.currentSwatch + '"'].catID[this.elementIndex]; | |
| if (typeof g == | |
| "undefined" || g == "") return false; | |
| else this.addedTCIN = this.partObj.map[g] | |
| } else return false | |
| } else if (typeof this.currentSwatch != "undefined" && this.currentSwatch != "") this.addedTCIN = this.partObj.map[this.swatchObject['"' + this.currentSwatch + '"'].catID[0]]; | |
| else return false; | |
| else this.addedTCIN = g; | |
| return this.addedTCIN | |
| } | |
| }; | |
| zoomImage = function(a) { | |
| if (typeof $("#zoomoverlay")[0] == "undefined") { | |
| $("body").append('<div id="zoomoverlay" class="zoomView"></div>'); | |
| $("body").append('<div id="zoompicker"> </div>') | |
| } | |
| if ($("#dynamicImageFlag").val() == "true") var b = a.attr("src").split("?")[0] + "?scl=1"; | |
| else { | |
| selectedAltImg = a.parents(".HeroPrimContainer").siblings().find(".imgAnchor.selectedImage").siblings("#imagePosition"); | |
| pNumber = typeof a.parent().siblings(".zoomItemPartNum")[0] != "undefined" ? a.parent().siblings(".zoomItemPartNum").val() : | |
| a.parent().siblings(".zoomProductPartNum").val(); | |
| if (a.attr("src").match("_Alt[0-9]{2}")) pNumber += a.attr("src").match("_Alt[0-9]{2}"); | |
| b = "http://target.scene7.com/is/image/Target/" + pNumber + "?scl=1" | |
| } | |
| var d = a.offset(), | |
| f = d.left, | |
| g = d.left + a.width(), | |
| j = d.top + a.height(), | |
| l = d.top, | |
| o = a.width(), | |
| v = a.height(), | |
| A = a.attr("zoomVar"); | |
| A = eval(A)[0]; | |
| var C = A.width, | |
| q = A.height; | |
| A = A.position; | |
| b = b; | |
| var I = $("#zoomoverlay"); | |
| $("#zoompicker"); | |
| var K = a.parents(".HeroPrimContainer").siblings().find(".zoomMessage"); | |
| rollovermessage = a.parents(".HeroPrimContainer").siblings().find(".rollovermessage"); | |
| zoominit = false; | |
| leftPosition = typeof A != "undefined" && A == "left" ? d.left - C - 38 : d.left + o + 38; | |
| if (typeof a.parents("#QuickView")[0] != "undefined") { | |
| q = $("#QuickView").height() - 107; | |
| q = q > 520 ? 520 : q | |
| } | |
| I.css({ | |
| top: a.parent().offset().top, | |
| left: leftPosition, | |
| width: C, | |
| height: q | |
| }); | |
| I.html("<img src='" + b + "' id='zoomedImage'>"); | |
| $(document).mousemove(function(Q) { | |
| zoominit = true; | |
| if ((Q.pageX < f || Q.pageX > g || Q.pageY > j || Q.pageY < l) == true) { | |
| $("#zoomoverlay,#zoompicker").remove(); | |
| K.hide(); | |
| rollovermessage.show(); | |
| $(document).unbind("mousemove") | |
| } | |
| }); | |
| $("#zoomedImage").load(function() { | |
| $("#zoompicker").show(); | |
| I.show(); | |
| rollovermessage.hide(); | |
| if ($("#zoomedImage").width() < 610) { | |
| K.show(); | |
| I.hide() | |
| } else $("#zoompicker,.rolloverzoom").live("mousemove", function(Q) { | |
| var n = $("#zoomedImage"), | |
| G = n.width(); | |
| zoomedImageHeight = n.height(); | |
| zoomPickerWidth = I.width() / n.width() * o; | |
| zoomPickerHeight = I.height() / n.height() * v; | |
| var p = Q.pageX - zoomPickerWidth / 2, | |
| t = Q.pageY - zoomPickerHeight / 2; | |
| p = p < f ? f : p; | |
| p = p + zoomPickerWidth >= g ? g - zoomPickerWidth : p; | |
| t = t + zoomPickerHeight >= j ? j - zoomPickerHeight : | |
| t; | |
| t = t < l ? l : t; | |
| $("#zoompicker").css({ | |
| width: zoomPickerWidth, | |
| height: zoomPickerHeight, | |
| top: t, | |
| left: p | |
| }).show(); | |
| aspectratiowidth = G / o; | |
| aspectratioheight = zoomedImageHeight / o; | |
| if (I.width() != 0) { | |
| zoomedImageleft = -(aspectratiowidth * (Q.pageX - d.left) - I.width() / 2); | |
| zoomedImagetop = -(aspectratioheight * (Q.pageY - d.top) - I.height() / 2); | |
| if (zoomedImageleft < 0 && zoomedImagetop < 0) imagePos = { | |
| left: zoomedImageleft, | |
| top: zoomedImagetop | |
| }; | |
| else if (zoomedImageleft >= 0 && zoomedImagetop >= 0) imagePos = { | |
| left: 0, | |
| top: 0 | |
| }; | |
| if (zoomedImageleft >= 0 && zoomedImagetop < | |
| 0) imagePos = { | |
| left: 0, | |
| top: zoomedImagetop | |
| }; | |
| if (zoomedImageleft < 0 && zoomedImagetop >= 0) imagePos = { | |
| left: zoomedImageleft, | |
| top: 0 | |
| }; | |
| if (-zoomedImageleft + I.width() >= G) imagePos = zoomedImagetop <= 0 && -zoomedImagetop + q <= zoomedImageHeight ? { | |
| left: "auto", | |
| right: 0, | |
| top: zoomedImagetop | |
| } : { | |
| left: "auto", | |
| right: 0, | |
| top: 0 | |
| }; | |
| if (-zoomedImagetop + I.height() >= zoomedImageHeight) imagePos = zoomedImageleft <= 0 && -zoomedImageleft + C <= G ? { | |
| top: "auto", | |
| bottom: 0, | |
| left: zoomedImageleft | |
| } : -zoomedImageleft + C > G ? { | |
| top: "auto", | |
| bottom: 0, | |
| left: "auto", | |
| right: 0 | |
| } : { | |
| top: "auto", | |
| bottom: 0, | |
| left: 0 | |
| }; | |
| n.css(imagePos) | |
| } | |
| }) | |
| }).error(function() { | |
| K.show() | |
| }) | |
| }; | |
| shopLookOverlay = { | |
| _sliderTemplate: '<div class="product-wrap" partnumber="##sliderpartnumber##"><div class="left-wrap"><div class="prod-image">##out_of_stock##<a href="/QuickInfoView?partNumber=##sliderpartnumber##&overlayId=QuickView&width=700" class="layer" title="##title## quick information"><img width="106" height="106" src="##primary_image##" alt="##title## quick info"></a></div>##promo##</div><div class="right-wrap##var_height##"> ##price_vary####see_low_price####eyebrow##<div class="prod-price">##offerprice####regprice##</div><div class="prod-name"><span class="productTitle"><a class="productClick" title="##title##" href="##PDPURL##">##shortTitle##</a></span></div>##swatchesTemplate####secondvariation####responseerrors####swatch_error##<p class="button-wrap">##addtocartbutton##</p>##store_only##</div>##bulkshipping##</div>', | |
| baseURL: "/ShopThisLook?pNums=", | |
| overlayID: "shop-look", | |
| addToCartURL: "/checkout_itemadd?", | |
| init: function() { | |
| $(".pdp-rightrail").delegate("#rr_shopthislook", "click", function(a) { | |
| shopLookOverlay.event_target = this; | |
| a.stopPropagation(); | |
| if (!$(a.currentTarget).hasClass("state-disabled")) { | |
| var b = shopLookOverlay.getPartNumberObject("[componentname]"); | |
| shopLookOverlay.partNumbers = b; | |
| shopLookOverlay.selectedProducts = shopLookOverlay.getSelectedProducts("[componentname]"); | |
| shopLookOverlay.origin = $(a.target); | |
| if ($('[componentname] [variation="true"]').length > | |
| 0) shopLookOverlay.vapFlag = true; | |
| shopLookOverlay.vapChecked = $(this).find('[componentname] [variation="true"] input:checked').length > 0 ? true : false; | |
| a = ""; | |
| for (var d in shopLookOverlay.selectedProducts) a += shopLookOverlay.selectedProducts[d] + "|"; | |
| a != "" ? shopLookOverlay.a2c.init() : shopLookOverlay.triggerShopLookOverlay(b) | |
| } | |
| }) | |
| }, | |
| triggerShopLookOverlay: function() { | |
| var a = shopLookOverlay.baseURL, | |
| b; | |
| for (b in shopLookOverlay.partNumbers) a += shopLookOverlay.partNumbers[b] + "|"; | |
| a = a.replace(/\|$/, ""); | |
| a += shopLookOverlay.vapFlag ? | |
| "&vapFlag=YES" : "&vapFlag=NO"; | |
| this._esrb = Target.controller.header.cookie.read("esrbResponse"); | |
| if (this._esrb != "") a += "&esrbResponse=" + this._esrb; | |
| try { | |
| $.ajax({ | |
| url: a, | |
| type: "GET", | |
| success: function(f) { | |
| shopLookOverlay.manageResponse(eval("(" + f + ")")) | |
| }, | |
| error: function() { | |
| console.log("failed") | |
| } | |
| }) | |
| } catch (d) { | |
| console.log(d) | |
| } | |
| }, | |
| manageResponse: function(a) { | |
| shopLookOverlay.sliders = {}; | |
| overlayContent = ""; | |
| slider = {}; | |
| currentSwatch = currenttcin = ""; | |
| currentObject = {}; | |
| _parent = {}; | |
| overlayContent = '<div id="' + shopLookOverlay.overlayID + '"><h2 class="module-title">shop these items.</h2><ul class=\'wrapper-ul\'><li><ul class=\'product-list plist-1\'><li class="list-wrap product-0"></li><li class="list-wrap product-1"></li></ul></li><li><ul class=\'product-list plist-2\'><li class="list-wrap product-2"></li><li class="list-wrap product-3"></li></ul></li></div>'; | |
| $.overlay.load({ | |
| target: $(shopLookOverlay.event_target), | |
| width: 725, | |
| contentOverride: overlayContent | |
| }); | |
| shopLookOverlay.Overlay = $("#" + shopLookOverlay.overlayID); | |
| var b = 0, | |
| d; | |
| d = a.shoplook; | |
| $.each(shopLookOverlay.partNumbers, function(j, l) { | |
| if (typeof d[l] != "undefined") { | |
| d[l].products[l].productTitle = d[l].products[l].productTitle.replace(/-quot-/g, '"'); | |
| slider = new shopLook(d[l], { | |
| partNumber: l, | |
| productTitle: d[l].products[l].productTitle, | |
| productTemplate: shopLookOverlay._sliderTemplate, | |
| _container: shopLookOverlay.Overlay.find(".product-" + | |
| b), | |
| add_to_cart_button: '<a title="add" class="button new-small-button perso-addtocart" href="#add-to-cart"><span class="buttonText">add</span><span class="screen-reader-only"> ' + d[l].products[l].productTitle + "</span></a>", | |
| added_to_cart_button: '<span class="button new-small-button button-added" role="alert" ><span class="screen-reader-only"> </span><span class="buttonText">added <span class="screen-reader-only"> ' + d[l].products[l].productTitle + " to cart.</span></span></span>", | |
| preFetching: function() {}, | |
| postSwatchChange: function(o) { | |
| try { | |
| if (typeof o.oos != "undefined" && o.oos) { | |
| o.oos = false; | |
| o._container.find(".button-wrap").append('<span class="screen-reader-only oos" role="alert">out of stock</span>'); | |
| var v = o._container.find(".prod-image img"); | |
| v.attr("alt", o.productTitle + " out of stock"); | |
| v.unwrap() | |
| } else o._container.find(".button-wrap .oos").remove(); | |
| o._container.find(".perso-swatches .qiWithVariation[checked]").focus() | |
| } catch (A) { | |
| console.log(A) | |
| } | |
| }, | |
| postAddToCart: function(o) { | |
| try { | |
| $('.pdp-rightrail [partNumber="' + | |
| o.addedTCIN + '"] .image-container img'); | |
| o.partObj.products[o.addedTCIN].Attributes.inventory.inv_code == 6 && shopLookOverlay.updateOOS(o.addedTCIN); | |
| this._cart_count = parseInt($("#mini-cart-icon .count").text().match(/\d+/)); | |
| this._cart_count > 0 ? shopLookOverlay.Overlay.find("#checkout-wrap button").removeAttr("tabindex").removeClass("checkout-disabled").find(".buttonText").html("review cart") : shopLookOverlay.Overlay.find("#checkout-wrap button").addClass("checkout-disabled") | |
| } catch (v) { | |
| console.log(v) | |
| } | |
| }, | |
| postFetching: function() {} | |
| }); | |
| shopLookOverlay.sliders[l] = slider; | |
| b++ | |
| } | |
| }); | |
| shopLookOverlay.Overlay.append('<div id="overlay-footer"><div id="checkout-wrap"><button class="button perso-checkout checkout-disabled" title="review cart" name="checkout" tabindex="-1"><span class="buttonText">review cart<span class="screen-reader-only"> disabled</span>.</span></button><a href="#" id="continue-shopping" class="close" title="continue shopping" >continue shopping</a></div></div>'); | |
| shopLookOverlay.Overlay.find(" #checkout-wrap button").bind("click", | |
| function() { | |
| if (parseInt($("#mini-cart-icon .count").text()) > 0) document.location.href = "/checkout_cartview?updatePrices=1" | |
| }); | |
| $("#" + shopLookOverlay.overlayID).trigger("reposition.overlay"); | |
| typeof a.ESRB.esrbFlag != "undefined" && a.ESRB.esrbFlag == "YES" && shopLookOverlay.triggerESRB(a.ESRB.esrbAgeValue); | |
| parseInt($("#mini-cart-icon .count").text().match(/\d+/)) > 0 ? shopLookOverlay.Overlay.find("#checkout-wrap button").removeClass("checkout-disabled").removeAttr("tabindex").find(".buttonText").html("review cart") : | |
| shopLookOverlay.Overlay.find("#checkout-wrap button").addClass("checkout-disabled"); | |
| try { | |
| typeof a.cartInfo != "undefined" && a.cartInfo.cartQty != null && a.cartInfo.cartPrice != null && Target.controller.reviewed.cookie.create("cartQty", a.cartInfo.cartQty + "|" + a.cartInfo.cartPrice) | |
| } catch (f) { | |
| console.log(f) | |
| } | |
| for (var g in shopLookOverlay.OOSPartNumbers) { | |
| shopLookOverlay.updateOOS(shopLookOverlay.OOSPartNumbers[g]); | |
| shopLookOverlay.Overlay.find('[partnumber="' + shopLookOverlay.OOSPartNumbers[g] + '"] .button-wrap').hide() | |
| } | |
| for (g in shopLookOverlay.selectedProducts) typeof shopLookOverlay.OOSPartNumbers != | |
| "undefined" && $.inArray(shopLookOverlay.selectedProducts[g], shopLookOverlay.OOSPartNumbers) == -1 && shopLookOverlay.updateOverlayAdded(shopLookOverlay.selectedProducts[g]); | |
| $.each(shopLookOverlay.Overlay.find(".list-wrap"), function() { | |
| $(this).find(".out-of-stock").length > 0 && shopLookOverlay.updateOOS($(this).find("[partnumber]").attr("partnumber"), $(this), true) | |
| }) | |
| }, | |
| triggerESRB: function(a) { | |
| shopLookOverlay.esrbOverlay = new miniOverlay({ | |
| zIndex: 99999, | |
| parentContainer: $("body"), | |
| contentID: "shoplook-esrb", | |
| wraperClass: "esrbOverlay", | |
| content: '<div class="esrb-wraper">' + shopLookOverlay.esrbOverlayTemplate.replace(/##age##/g, " " + a + " ") + "</div>", | |
| closeOtherMiniOverlays: true, | |
| close: false, | |
| prefetch: function() { | |
| typeof shopLookOverlay.esrbOverlay != "undefined" && shopLookOverlay.esrbOverlay.closeOverlay() | |
| }, | |
| postfetch: function() { | |
| var b = $("#" + _mo._defaultConfig.contentID); | |
| $("#shoplook-esrb .overlay-content-wrap").css({ | |
| top: $(shopLookOverlay.event_target).position().top - 400 + "px", | |
| left: $(document).width() / 2 - $("#shoplook-esrb .overlay-content-wrap").width() / | |
| 2 + "px" | |
| }); | |
| $(".esrb-curtain").css({ | |
| height: $(document).height() + "px" | |
| }); | |
| window.setTimeout(function() { | |
| b.find("p:first").attr("tabindex", "-1").focus(); | |
| $(document).trigger("updateBuffer.framework") | |
| }, 100); | |
| b.find(".esrb-yes").bind("click", function(d) { | |
| d.stopPropagation(); | |
| shopLookOverlay.esrbOverlay.closeOverlay(); | |
| shopLookOverlay.handleESRBYes(a) | |
| }); | |
| b.find(".esrb-no").bind("click", function(d) { | |
| d.stopPropagation(); | |
| shopLookOverlay.esrbOverlay.closeOverlay() | |
| }) | |
| }, | |
| origin: $(shopLookOverlay.event_target) | |
| }) | |
| }, | |
| updateOOS: function(a, | |
| b) { | |
| console.log("updateOOS"); | |
| var d, f; | |
| try { | |
| var g = $('.pdp-rightrail [partNumber="' + a + '"] .image-container'); | |
| if (!g.length > 0) g = $('.pdp-rightrail [partNumber="' + a + '"] .small-product-image'); | |
| f = g.find("img"); | |
| d = f.attr("alt"); | |
| f.attr("alt", d.replace("quick info", "out of stock")); | |
| !g.find(".out-of-stock").length > 0 && g.prepend(shopLookOverlay.out_of_stock); | |
| g.find("a.layer").replaceWith(f); | |
| f = typeof b != "undefined" ? b.find(".prod-image img") : shopLookOverlay.Overlay.find('[partnumber="' + a + '"] .prod-image img'); | |
| d = f.attr("alt"); | |
| f.attr("alt", d.replace("quick info", "out of stock")); | |
| shopLookOverlay.Overlay.find('[partnumber="' + a + '"] .prod-image a.layer').replaceWith(f) | |
| } catch (j) { | |
| console.log(j) | |
| } | |
| }, | |
| handleESRBYes: function(a) { | |
| Target.controller.reviewed.cookie.create("esrbResponse", "YES_" + a + "_" + a + "_ESRBPAGE"); | |
| shopLookOverlay.a2c.init() | |
| }, | |
| updateOverlayAdded: function(a) { | |
| var b = parseInt($("#mini-cart-icon .count").text().match(/\d+/)); | |
| b = isNaN(b) ? 0 : b; | |
| b += 1; | |
| if (b > 0) { | |
| shopLookOverlay.Overlay.find("#checkout-wrap button").removeClass("checkout-disabled").removeAttr("tabindex").find(".buttonText").html("review cart"); | |
| $("#mini-cart-icon .count").text(b) | |
| } else shopLookOverlay.Overlay.find("#checkout-wrap button").addClass("checkout-disabled"); | |
| this.pTitle = shopLookOverlay.sliders[a].partObj.products[a].productTitle; | |
| shopLookOverlay.Overlay.find('[partnumber="' + a + '"] .perso-addtocart').replaceWith(shopLookOverlay.addedButton.replace("disabled", this.pTitle + " to cart")) | |
| }, | |
| generic_error: '<p class="error-message swatch-error" role="alert">some error occured. please try later</p>', | |
| out_of_stock: '<span class="out-of-stock" role="alert" aria-hidden="true">out of stock</span>', | |
| addedButton: '<a class="button new-small-button button-added" title="added"><span class="buttonText">added <span class="screen-reader-only">disabled</span></a></span>', | |
| esrbOverlayTemplate: "<p>Please certify that you are old enough to buy this item. You must be age ##age## or older.</p><span class='esrb-buttons'><button class='button esrb-yes'><span class='buttonText '>yes. <span class='age-statement'> I am age ##age## or older.</span></span></button></span><span class='esrb-buttons'><button class='button esrb-no'><span class='buttonText'>no. <span class='age-statement'> I am under ##age##.</span></span></button></span>", | |
| getPartNumberObject: function(a) { | |
| var b = [], | |
| d; | |
| $(a + " [partnumber]").length > 0 ? $.each($(a + " [partnumber]"), function() { | |
| b.push($(this).attr("partnumber")) | |
| }) : $.each($(a + " a.layer"), function() { | |
| d = $(this).attr("href").match(/partNumber\=\d+/).toString().replace(/partNumber\=/, ""); | |
| b.push(d); | |
| $(this).parents("li").attr("partnumber", d) | |
| }); | |
| return b | |
| }, | |
| getSelectedProducts: function(a) { | |
| var b = []; | |
| $(a).find("li").not("[variation]").find("input:checked").length > 0 ? $.each($(a).find("li").not("[variation]").find("input:checked"), | |
| function() { | |
| b.push($(this).parents("li:first").attr("partnumber")) | |
| }) : $.each($(a).find("li").not("[variation]").find("input:checked"), function() { | |
| b.push($(this).closest("li").find("a.layer").attr("href").match(/partNumber\=\d+/).toString().replace(/partNumber\=/, "")) | |
| }); | |
| return b | |
| }, | |
| a2c: { | |
| init: function() { | |
| var a = Target.controller.reviewed.cookie.read("esrbResponse"), | |
| b = ""; | |
| if (a != null && a != "") b = "esrbResponse=" + a; | |
| a = ""; | |
| for (var d in shopLookOverlay.selectedProducts) a += "&partNumber_" + d + "=" + shopLookOverlay.selectedProducts[d] + | |
| "&quantity_" + d + "=1"; | |
| b = shopLookOverlay.addToCartURL + a + "&fromScript=true&overlay=true&errorViewName=ErrorResponse&&" + b + "&forShopThisOverlay=Y"; | |
| $.ajaxSetup({ | |
| traditional: true, | |
| cache: false | |
| }); | |
| $.ajax({ | |
| url: b, | |
| dataType: "text/html", | |
| type: "POST", | |
| success: function(f) { | |
| f = eval("(" + f + ")"); | |
| f.responseHtml != "undefined" && f.responseHtml != null && f.responseHtml != "" && Target.controller.reviewed.cookie.create("cartQty", f.responseHtml); | |
| shopLookOverlay.a2c.manageResponse(f) | |
| } | |
| }) | |
| }, | |
| manageResponse: function(a) { | |
| if (typeof a.OOSPartNo != "undefined" && | |
| a.OOSPartNo != null) { | |
| shopLookOverlay.OOSPartNumbers = a.OOSPartNo; | |
| shopLookOverlay.triggerShopLookOverlay() | |
| } else if (a.errorMessageKey == "ESRBRATING_MATURE_TEXT" || a.errorMessageKey == "ESRBRATING_FAILURE") shopLookOverlay.triggerESRB(a.quantityUpdate); | |
| else if (a.partNumCantBeAdded !== null || a.errorMessage != "") shopLookOverlay.triggerShopLookOverlay(); | |
| else if (typeof a.overlayId != "undefined" && a.overlayId == "addtocart") | |
| if (shopLookOverlay.vapChecked) shopLookOverlay.triggerShopLookOverlay(); | |
| else { | |
| $.overlay.load({ | |
| target: $(shopLookOverlay.event_target), | |
| width: 740, | |
| y: 10, | |
| x: $("body").width() / 2 - 362.5, | |
| contentOverride: '<div id="addtocart">' + a.responseHtml + "</div>" | |
| }); | |
| $("#addtocart #ModalCarousel #multiItemList").addClass("component-carousel-1"); | |
| Target.controller.globalUtils.checkIfCarousal(".component-carousel-1") | |
| } | |
| } | |
| } | |
| }; | |
| $(document).ready(function() { | |
| if ($(".ipad").length == "0" && typeof $("#rollOverZoom")[0] != "undefined" && $("#rollOverZoom").val() == "true") { | |
| $("head").append("<style>.rollovermessage{display: block !important} </style>"); | |
| $(".rollovermessage").show(); | |
| $(".rolloverzoom").live("mouseover", function(b) { | |
| $(b.target).closest("a").unbind("click").undelegate("click"); | |
| $("body").delegate("#heroZoomImage,#heroImageBundle", "click", function(d) { | |
| d.preventDefault(); | |
| return false | |
| }); | |
| $("#media-player").length < 1 && zoomImage($(b.target)); | |
| $(b.target).parents(".HeroPrimContainer").siblings().find(".rollovermessage").hide() | |
| }).mouseout(function() { | |
| $("#zoompicker, .rolloverzoom").unbind("mousemove") | |
| }); | |
| $("#zoompicker").live("mouseout", function() { | |
| $("#zoompicker,#zoomoverlay").hide() | |
| }); | |
| $(document).bind("keyup", function() { | |
| if ($(":focus").attr("id") == "heroZoomImage" || $(":focus").attr("id") == "heroImage" || $(":focus").hasClass("views") || $(":focus").hasClass("j-lazytab")) $(".zoomBox").css("left", "-10000px") && $(".rollovermessage").show(); | |
| typeof $(":focus").parents(".zoomBox")[0] != | |
| "undefined" && $(".zoomBox").css("left", "auto") && $(".rollovermessage").hide() | |
| }) | |
| } else $("head").append("<style>.zoomBox{left: auto !important}</style>"); | |
| $(".swatchtool input").live("focus", function() { | |
| $(this).parent().addClass("swatchfoccused") | |
| }); | |
| $(".swatchtool input").live("focusout", function() { | |
| $(this).parent().removeClass("swatchfoccused") | |
| }); | |
| try { | |
| shopLookOverlay.init() | |
| } catch (a) { | |
| console.log(a) | |
| } | |
| $("body").delegate("#input-step-send-payment-type input[name='attr-send-type']", "keyup change", function() { | |
| if ($(this).is(":checked")) | |
| if (typeof $(this).attr("rel") != | |
| "undefined") { | |
| $("#input-step-send-payment-type input[name='attr-send-type']").parent().find("span.screen-reader-only").remove(); | |
| $(this).parent().append('<span class="screen-reader-only" aria-live="rude" >' + $(this).attr("rel") + " radio button checked</span>").focus() | |
| } | |
| }) | |
| }); | |
| Slider = { | |
| init: function() { | |
| var a, b; | |
| $("#addtocart").delegate("a.selectoption", "click", function(d) { | |
| d.preventDefault(); | |
| !$(d.currentTarget).parent().find(".button-added").length > 0 && $(d.currentTarget).parent().prepend('<p class="button-added button" style="display:none" ><span class="screen-reader-only"> </span><span class="buttonText">added</span><span class="screen-reader-only"> ' + $(d.currentTarget).parents("li:first").find(".productName a").attr("title") + " to cart</span></p>"); | |
| var f = ""; | |
| b = $(d.target); | |
| a = b.parents("li:first"); | |
| d = Target.controller.reviewed.cookie.read("esrbResponse"); | |
| var g = ""; | |
| if (d != null && d != "") g = "esrbResponse=" + d; | |
| f = a.find(".layer").attr("href").match(/partNumber\=\d+/).toString().replace(/partNumber\=/, ""); | |
| d = "/ShopThisLook?pNums=" + f + "&" + g; | |
| $.ajaxSetup({ | |
| traditional: true, | |
| cache: false | |
| }); | |
| $.ajax({ | |
| url: d, | |
| type: "GET", | |
| success: function(j) { | |
| Slider.newSlider(eval("(" + j + ")"), a, b, f) | |
| } | |
| }) | |
| }) | |
| }, | |
| _template: '<div class="product-wrap" partnumber="##sliderpartnumber##"><div id="left-wrap"><div class="screen-reader-only slider-product-title"><h2 class="screen-reader-only">##title##</h2></div><div class="prod-image">##out_of_stock##<a href="/QuickInfoView?partNumber=##sliderpartnumber##&overlayId=QuickView&width=700" class="layer" title="##title## quick information"><img width="106" height="106" src="##primary_image##" alt="##title## quick info"></a></div>##price_vary####see_low_price##<div class="prod-price">##offerprice####regprice##</div><div class="prod-name"><span class="productTitle"><a class="productClick" title="##title##" href="##PDPURL##">##shortTitle##</a></span>##promo##</div></div><div id="right-wrap">##swatchesTemplate####secondvariation##<p class="button-wrap">##addtocartbutton##</p>##store_only##</div></div>', | |
| newSlider: function(a, b, d, f) { | |
| Slider._ol = new miniOverlay({ | |
| zIndex: 400, | |
| parentContainer: b, | |
| contentID: "sliderWrap", | |
| content: '<div class="slider-wraper"></div>', | |
| close: true, | |
| prefetch: function() { | |
| typeof Slider._ol != "undefined" && Slider._ol.closeOverlay() | |
| }, | |
| postfetch: function() { | |
| Slider.newInstance = new shopLook(a.shoplook[f], { | |
| partNumber: f, | |
| productTemplate: Slider._template, | |
| _container: b.find(".slider-wraper"), | |
| add_to_cart_button: '<a title="add" class="button new-small-button perso-addtocart" href="#add-to-cart"><span class="buttonText">add</span><span class="screen-reader-only"> ##title##</span></a>', | |
| postSwatchChange: function(l) { | |
| try { | |
| if (typeof l.oos != "undefined" && l.oos) { | |
| l.oos = false; | |
| l._container.find(".button-wrap").append('<span class="screen-reader-only oos" role="alert">out of stock</span>'); | |
| var o = l._container.find(".prod-image img"); | |
| o.attr("alt", l.productTitle + " out of stock"); | |
| o.unwrap() | |
| } else l._container.find(".button-wrap .oos").remove(); | |
| l._container.find(".perso-swatches .qiWithVariation[checked]").focus() | |
| } catch (v) { | |
| console.log(v) | |
| } | |
| }, | |
| postFetching: function(l) { | |
| l._container.find("a.layer").focus() | |
| }, | |
| postAddToCart: function(l, o) { | |
| if (!(typeof o.errorMessageKey != undefined && o.errorMessage != "" && o.errorMessage != null)) { | |
| $("#addtocart .col-right h3").text("cart summary (" + (parseInt($("#addtocart .col-right h3").text().match(/\d+/)) + 1) + " items)"); | |
| var v = parseFloat(o.priceForRRItem) + parseFloat($("#addtocart .col-right .additional").text().substring(1).replace(",", "")); | |
| v = a2c.numberWithCommas(v.toFixed(2)); | |
| $("#addtocart .col-right .additional").text("$" + v); | |
| v = parseFloat(o.priceForRRItem) + parseFloat($("#addtocart .col-right .overlaysubtotal").text().substring(1).replace(",", | |
| "")); | |
| v = a2c.numberWithCommas(v.toFixed(2)); | |
| $("#addtocart .col-right .overlaysubtotal").text("$" + v); | |
| Slider._ol.closeOverlay(); | |
| var A = d.parents("li:first"); | |
| A.find(".selectoption").remove(); | |
| window.setTimeout(function() { | |
| A.find(".buttonContainer .button-added").show(); | |
| A.find(".buttonContainer").attr("tabindex", -1).focus().attr("role", "alert") | |
| }, 200) | |
| } | |
| } | |
| }); | |
| var g = $("#addtocart .product-listing:visible li.product-list").length, | |
| j = d.parents("li:first").index(); | |
| $("#sliderWrap").removeClass("sliderRight").removeClass("sliderLeft"); | |
| if (g > 3) j > 1 ? $("#sliderWrap").addClass("sliderRight") : $("#sliderWrap").addClass("sliderLeft"); | |
| else j > 0 ? $("#sliderWrap").addClass("sliderRight") : $("#sliderWrap").addClass("sliderLeft"); | |
| window.setTimeout(function() { | |
| $("#sliderWrap h2").length > 0 ? $("#sliderWrap h2").attr("tabindex", -1).focus() : $("#sliderWrap a.layer").attr("tabindex", -1).focus() | |
| }, 200) | |
| }, | |
| origin: d | |
| }) | |
| } | |
| }; | |
| try { | |
| var GlobalFooterLinks = function() { | |
| var a = ["http://www.target.com/store-locator/find-stores", "http://www.target.com/pharmacy/clinic-home", "http://www.target.com/spot/optical", "http://www.target.com/pharmacy/main", "http://www.targetphoto.com", "http://www.target.com/c/target-portrait-studio-ways-to-shop/-/N-559ua", "http://corporate.target.com", "http://corporate.target.com/careers", "http://investors.target.com/phoenix.zhtml?c=65828&p=irol-IRHome", "http://corporate.target.com/corporate-responsibility", | |
| "http://www.target.com/HelpContent?help=/sites/html/TargetOnline/help/affiliates/affiliates.html", "http://www.abullseyeview.com", "http://www.target.com/spot/team-services", "http://www.target.com/c/company-store/-/N-5xtb9", "http://weeklyad.target.com", "http://coupons.target.com/mcp/pd.cfm?encp=bw3Edh8NsU3vzmfu%2BCqxk1gE5kAdfbx6dC45DH8m6FuvNQDwYVl3xOH31DkRj79yzb%2BSNmiA400y%0D%0ALhj%2FXmLy9zzvNW3gItgBqLI6rw64%2FkWKY9O5GIrSJTepqrrRVKgryKJ1kkXm6v4vKD0bkrAj4w%3D%3D", "http://www.target.com/c/clearance/-/N-5q0ga", | |
| "http://www.target.com/np/all-the-deals/-/N-5tdty", "http://www.target.com/HelpContent?help=/sites/html/TargetOnline/help/help.html", "http://www.target.com/webapp/wcs/stores/servlet/ManageOrder", "http://www.target.com/HelpContent?help=/sites/html/TargetOnline/help/returns_and_refunds/returns_and_refunds.html", "http://www.target.com/c/pickup-in-store/-/N-55fqz", "http://www.target.com/HelpContent?help=/sites/html/TargetOnline/help/orders_and_shipping/orders_and_shipping.html", "http://www.target.com/HelpContent?help=/sites/html/TargetOnline/help/product_safety_and_recalls/product_safety_and_recalls.html", | |
| "http://www.target.com/spot/size-charts", "http://www.target.com/HelpContent?help=/sites/html/TargetOnline/help/contact_us/contact_us.html", "http://www.target.com/redcard/main", "http://www.target.com/redcard/main", "https://rcam.target.com", "http://www.target.com/redcard/main", "http://www.target.com/spot/privacy-policy", "http://www.target.com/spot/privacy-policy#collectedonline", "http://www.target.com/spot/terms-conditions", "http://www.target.com/spot/privacy-policy#CaliforniaResidents", "http://www.target.com/HelpContent?help=/sites/html/TargetOnline/help/orders_and_shipping/more_help_with_orders/CA_SupplyChain_Act.html", | |
| "http://www.target.com/HelpContent?help=/sites/html/TargetOnline/help/technical_info_about_this_site/technical_info_about_this_site.html" | |
| ], | |
| b = $(".globalfooter-quicklinks, #defaultLinks"); | |
| return { | |
| init: function() { | |
| function d(f) { | |
| f = f.split("#"); | |
| return a[f[1]] + "#" + f[2] | |
| } | |
| b.delegate("a", "mousedown", function(f) { | |
| f.preventDefault(); | |
| if ($(this).attr("href").charAt(0) === "#") { | |
| var g = d($(this).attr("href")); | |
| switch (f.which) { | |
| case 1: | |
| window.location.href = g; | |
| default: | |
| $(this).attr("href", g) | |
| } | |
| } | |
| }); | |
| b.delegate("a", "focus", function(f) { | |
| f.preventDefault(); | |
| $(this).attr("href").charAt(0) === "#" && $(this).attr("href", d($(this).attr("href"))) | |
| }) | |
| }() | |
| } | |
| }; | |
| window.globalFooterLinks = new GlobalFooterLinks | |
| } catch (e$$172) {} | |
| function buildQInfo() { | |
| Slider.init(); | |
| $("#addtocart").delegate("#crossSell-atc", "click", function(a) { | |
| var b = $(a.target), | |
| d = b.parents("li.tab"); | |
| if (b.parent().hasClass("buttonContainer") || b.parent().hasClass("addtoCart")) { | |
| a.stopPropagation(); | |
| a.preventDefault(); | |
| a = b.parents(".buttonContainer:first"); | |
| !a.find(".button-added").length > 0 && a.prepend('<p class="button-added button" style="display:none"><span class="screen-reader-only"> </span><span class="buttonText">added</span><span class="screen-reader-only">' + a.parents("li:first").find(".productName a").attr("title") + | |
| " to cart</span></p>"); | |
| a = a.find("a.addtoCart").attr("clicked", "true").parents("li:first").find(".image-container a.layer").attr("href").match(/partNumber\=\d+/).toString().split("="); | |
| a2c.init(a[1]) | |
| } else if ($(a.target).parent().hasClass("tabhead") && !$(a.target).hasClass("selected-text")) { | |
| $(a.target).hasClass("selected-text") && a.stopPropagation(); | |
| a = $(this).parent(); | |
| $(this).find("[aria-hidden]").show().removeAttr("aria-hidden").removeAttr("tabindex"); | |
| $(this).find("span.selected-text").remove(); | |
| $(".dynamicTab li.tab").removeClass("selected"); | |
| d.find("a:first").attr("tabindex", -1).attr("aria-hidden", "true").hide(); | |
| d.prepend('<span class="selected-text">' + d.find("a:first").attr("title").replace(/^view\s/, "") + '</span><span class="blank-span screen-reader-only"> </span>'); | |
| d.addClass("selected"); | |
| window.setTimeout(function() { | |
| d.find(".blank-span").attr("tabindex", -1).focus() | |
| }, 100); | |
| a2c.addTipNote() | |
| } | |
| }); | |
| a2c.addTipNote() | |
| } | |
| a2c = { | |
| baseURL: "/checkout_itemadd?", | |
| addTipNote: function() { | |
| window.setTimeout(function() { | |
| $.each($("#crossSell-atc .tipnoteTrigger"), function() { | |
| $(this).parents("li:first").index() > 2 ? $(this).tipNote({ | |
| showLeft: true | |
| }) : $(this).tipNote() | |
| }) | |
| }, 500) | |
| }, | |
| init: function(a) { | |
| var b = Target.controller.reviewed.cookie.read("esrbResponse"), | |
| d = ""; | |
| if (b != null && b != "") d = "esrbResponse=" + b; | |
| a = a2c.baseURL + "partNumber_0=" + a + "&quantity_0=1&fromScript=true&overlay=true&fromAddTocartOverlay=Y&errorViewName=ErrorResponse&noRespHtmlNeeded=Y&" + | |
| d; | |
| $.ajaxSetup({ | |
| traditional: true, | |
| cache: false | |
| }); | |
| $.ajax({ | |
| url: a, | |
| dataType: "json", | |
| type: "POST", | |
| success: function(f) { | |
| f.responseHtml != "undefined" && f.responseHtml != null && f.responseHtml != "" && Target.controller.reviewed.cookie.create("cartQty", f.responseHtml); | |
| a2c.manageResponse(f) | |
| } | |
| }) | |
| }, | |
| manageResponse: function(a) { | |
| $("#addtocart p.errorBlock").remove(); | |
| var b = $('#addtocart a[clicked="true"]').parents("li:first"); | |
| if (typeof a.errorMessageKey != undefined && a.errorMessage != "" && a.errorMessage != null) | |
| if (a.errorMessageKey == "SHOP_INVENTORY_EQUAL") { | |
| a = | |
| b.find("a.layer img"); | |
| var d = a.attr("alt"); | |
| a.attr("alt", d.replace("quick info", "out of stock")); | |
| b.find(".image-container").html("").append(a).append('<p class="outofstock" aria-hidden="true">out of stock</p>'); | |
| b.find(".product-block").append('<p class="screen-reader-only outofstock-hidden">out of stock</p>'); | |
| window.setTimeout(function() { | |
| b.find("p.outofstock-hidden").attr("tabindex", "-1").focus() | |
| }, 200); | |
| $('#addtocart a[clicked="true"]').parent().remove() | |
| } else if (a.errorMessageKey == "ESRBRATING_MATURE_TEXT" || | |
| a.errorMessageKey == "ESRBRATING_FAILURE") $.overlay.load({ | |
| contentOverride: a.responseHtml, | |
| overlayId: typeof a.overlayId !== "undefined" ? a.overlayId : "", | |
| template: a.template, | |
| mode: false | |
| }); | |
| else b.find("p.errorBlock").length > 0 ? b.find("p.errorBlock").attr("role", "alert").text(a.errorMessage) : b.find(".productName").append('<p class="errorBlock" role="alert">' + a.errorMessage + "</p>"); | |
| else if (a.overlayId != undefined && a.overlayId == "addtocart") { | |
| $("#addtocart .col-right h3").text("cart summary (" + (parseInt($("#addtocart .col-right h3").text().match(/\d+/)) + | |
| 1) + " items)"); | |
| d = parseFloat(a.priceForRRItem) + parseFloat($("#addtocart .col-right .additional").text().substring(1).replace(",", "")); | |
| d = a2c.numberWithCommas(d.toFixed(2)); | |
| $("#addtocart .col-right .additional").text("$" + d); | |
| a = parseFloat(a.priceForRRItem) + parseFloat($("#addtocart .col-right .overlaysubtotal").text().substring(1).replace(",", "")); | |
| a = a2c.numberWithCommas(a.toFixed(2)); | |
| $("#addtocart .col-right .overlaysubtotal").text("$" + a); | |
| $("#addtocart a[clicked]").hide(); | |
| b.find(".addtoCart").remove(); | |
| b.find(".button-added").show().attr("role", | |
| "alert").attr("tabindex", -1).focus(); | |
| window.setTimeout(function() { | |
| try { | |
| $(document).trigger("updateBuffer.framework") | |
| } catch (f) { | |
| console.log(f) | |
| } | |
| }, 200) | |
| } | |
| $("#addtocart a[clicked]").removeAttr("clicked") | |
| }, | |
| formatPrices: function(a) { | |
| return a.toFixed(2) | |
| }, | |
| numberWithCommas: function(a) { | |
| return a.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",") | |
| } | |
| }; | |
| function validateGridBorder(a) { | |
| a.children().each(function() { | |
| $(this).position().left <= 0 && $(this).css("border-left", "none") | |
| }) | |
| } | |
| function loadLazy(a) { | |
| a.lazy({ | |
| lazyRR: true, | |
| hpgrid: true, | |
| threshold: 500, | |
| eventDelay: 0, | |
| onEarlyComplete: function(b, d) { | |
| Target.controller.globalUtils.initRRCarousel(); | |
| d.parent(".lazy-container").replaceWith(b) | |
| }, | |
| onComplete: function() { | |
| msnryFunction(5) | |
| } | |
| }) | |
| } | |
| function msnryFunction(a) { | |
| var b = document.querySelector("#flexible_grid_container"); | |
| cont = $("#flexible_grid_container"); | |
| if (1 <= a) { | |
| a--; | |
| new Masonry(b, { | |
| columnWidth: 1 | |
| }); | |
| validateGridBorder(cont); | |
| loadLazy(cont); | |
| setTimeout(function() { | |
| msnryFunction(a) | |
| }, 500) | |
| } else return false | |
| }; | |
| Target.register("controller", "reviewed", { | |
| maxItems: 10, | |
| minItems: 1, | |
| maxIncrement: 7, | |
| reviewedLength: 0, | |
| cookieMaxLength: 1200, | |
| reviewedProducts: [], | |
| products: [], | |
| cookieName: "recentlyviewed", | |
| cookieNameToDelete: "reviewed", | |
| message: '<p class="message">as you view items on Target.com, we\'ll keep track of them here.</p>', | |
| itemsViews: "#RecentViews", | |
| itemsWrapper: "#RecentViewItems", | |
| reviewCount: ".counter", | |
| itemsWrap: ".items-set", | |
| items: ".items", | |
| summaryWrap: ".summary", | |
| reviewedIcon: "#reviewed-icon", | |
| recentNavView: ".recentNavView a", | |
| reviewedLinks: "#reviewed-icon, .recentNavView a", | |
| reviewWrapper: "#rvCore", | |
| markup: '<ul class="items"></ul>', | |
| cookie: Target.controller.header.cookie, | |
| init: function() { | |
| this.loadInterface() | |
| }, | |
| loadInterface: function() { | |
| var a = this; | |
| a.reviewWrapper = $(a.reviewWrapper); | |
| a.markup = $(a.markup); | |
| a.itemsWrapper = $(a.itemsWrapper); | |
| a.itemsWrap = a.itemsWrapper.find(a.itemsWrap); | |
| a.summaryWrap = a.itemsWrapper.find(a.summaryWrap); | |
| a.items = a.summaryWrap.find(a.items); | |
| a.reviewCount = a.summaryWrap.find(a.reviewCount); | |
| a.processItems(); | |
| a.itemsWrap.hide(); | |
| a.handleNav(); | |
| a.deleteOldCookie(); | |
| a.reviewedLength > 0 ? a.hide() : a.summaryWrap.append(a.message); | |
| $("body").delegate("#reviewed-icon", "click", function(b) { | |
| b.preventDefault(); | |
| $(this).hasClass("viewedopen") ? a.toggleShow() : a.toggleHide() | |
| }); | |
| $("body").delegate(".recentNavView a", "click keyup", function(b) { | |
| b.preventDefault(); | |
| var d = b.type; | |
| if (d === "click" && b.keyCode != 27) $(this).parents("div#rvCore").find("a#reviewed-icon").hasClass("viewedclose") ? a.toggleHide() : a.toggleShow(); | |
| else if (d === "keyup" && | |
| b.keyCode == 27) a.toggleHide(); | |
| else return false | |
| }) | |
| }, | |
| toggleShow: function() { | |
| this.itemsWrap.show(); | |
| this.handleNav(); | |
| if (!(this.reviewedLength <= this.minItems)) { | |
| this.show(); | |
| var a = this.reviewedLength * 131 + 20; | |
| a = this.reviewedLength == this.maxIncrement - 1 ? 792 : a; | |
| a = this.reviewedLength >= this.maxIncrement ? 952 : a; | |
| this.reviewWrapper.animate({ | |
| width: a | |
| }); | |
| $(this.reviewedIcon).removeClass("viewedopen").addClass("viewedclose"); | |
| $(this.reviewedIcon).children().text("Recently viewed items collapse"); | |
| $(this.recentNavView).children().text("collapse"); | |
| $(this.recentNavView).focus(); | |
| $(this.recentNavView).first().focus() | |
| } | |
| }, | |
| toggleHide: function() { | |
| this.itemsWrap.hide(); | |
| this.handleNav(); | |
| if (!(this.reviewedLength <= this.minItems)) { | |
| $(this.reviewedIcon).removeClass("viewedclose").addClass("viewedopen"); | |
| this.reviewWrapper.animate({ | |
| width: 160 | |
| }); | |
| $(this.reviewedIcon).children().text("Recently viewed items expand"); | |
| $(this.recentNavView).children().text("expand"); | |
| $(this.recentNavView).focus(); | |
| $(this.recentNavView).first().focus(); | |
| this.hide() | |
| } | |
| }, | |
| clear: function() { | |
| this.reviewCount.empty(); | |
| this.items.empty(); | |
| this.itemsWrap.empty(); | |
| this.reviewWrapper.find(".message").remove() | |
| }, | |
| show: function() { | |
| this.clear(); | |
| this.itemsWrap.html(this.markup); | |
| var a = this.itemsWrap.find("ul:eq(0)"); | |
| this.buildContent("items", function(b) { | |
| a.html(b) | |
| }); | |
| this.reviewedLength > this.maxIncrement && this.itemsWrap.find("ul:eq(0)").tileCarousel({ | |
| incrementMode: "tile", | |
| accessible: true, | |
| loop: false, | |
| increment: this.maxIncrement, | |
| displayCount: false, | |
| containerDelta: -1 | |
| }) | |
| }, | |
| addItems: function(a) { | |
| var b = this, | |
| d = b.cookie.read(b.cookieName); | |
| d = unescape(d); | |
| d = escape(d); | |
| var f = false, | |
| g = false; | |
| if (parseInt(a.length + (d === null ? 0 : d.length)) > b.cookieMaxLength) g = true; | |
| if (d !== "null") { | |
| $.each(b.products, function(l) { | |
| var o = a.split("|"); | |
| if (b.products[l][0] == o[0]) { | |
| f = true; | |
| return false | |
| } | |
| }); | |
| if (f !== true) { | |
| if (d == escape(a)) return false; | |
| if (typeof b.maxItems !== "undefined" && typeof b.maxItems === "number") { | |
| d = (d !== null ? unescape(d) + "##" : "") + escape(a); | |
| var j = d.split("##"); | |
| if (j.length > b.maxItems || g === true) { | |
| j.splice(0, 1); | |
| d = j.join("##") | |
| } | |
| b.cookieName == "recentlyviewed" && b.cookie.create(b.cookieName, | |
| d, 365) | |
| } | |
| } | |
| } else { | |
| a = unescape(a); | |
| d = escape(a); | |
| b.cookieName == "recentlyviewed" && b.cookie.create(b.cookieName, d, 365) | |
| } | |
| $("body").delegate("#QuickView", "overlay-before-hide", function() { | |
| b.processItems(); | |
| b.hide() | |
| }) | |
| }, | |
| hide: function() { | |
| this.clear(); | |
| this.handleNav(); | |
| var a = this.summaryWrap.find("ul:eq(0)"); | |
| this.buildContent("summary", function(b) { | |
| a.append(b) | |
| }) | |
| }, | |
| handleNav: function() { | |
| if (this.reviewedLength <= 1) { | |
| $(this.reviewedIcon).children().text("Expand Inactive"); | |
| $(this.reviewedIcon).addClass("inActive") | |
| } else { | |
| $(this.reviewedIcon).children().text("Recently viewed items expand"); | |
| $(this.reviewedIcon).removeClass("inActive") | |
| } | |
| }, | |
| processItems: function() { | |
| var a = this.cookie.read(this.cookieName); | |
| if (a !== null) { | |
| a = unescape(this.cookie.read(this.cookieName)); | |
| this.reviewedProducts = a.split("##") | |
| } else { | |
| this._updateRecentlyReviewed(); | |
| return false | |
| } | |
| this.reviewedLength = this.reviewedProducts.length > this.maxItems ? this.maxItems : this.reviewedProducts.length; | |
| a = this.reviewedProducts.length > this.maxItems ? this.reviewedProducts.length - this.maxItems : 0; | |
| for (var b = 0, d = this.reviewedProducts.length - 1; d >= a; d--) { | |
| this.products[b] = | |
| this.reviewedProducts[d].split("|") !== null ? this.reviewedProducts[d].split("|") : this.reviewedProducts[d]; | |
| b++ | |
| } | |
| this._updateRecentlyReviewed() | |
| }, | |
| buildContent: function(a, b) { | |
| var d = this.reviewedLength, | |
| f = "", | |
| g = 0, | |
| j = Target.globals.mediapath != undefined ? Target.globals.mediapath : "", | |
| l = "", | |
| o = "", | |
| v = "", | |
| A = ""; | |
| l = ""; | |
| if (a == "summary") d = 1; | |
| for (; g < d; g++) | |
| if (this.products[g]) { | |
| if (this.products[g][0].search("_")) { | |
| A = this.products[g][0].split("_"); | |
| this.products[g][0] = A[1] == "" || A[1] == undefined || A[1] == null ? A[0] : A[0] + "_" + A[1]; | |
| A = this.products[g][0] | |
| } | |
| l = | |
| A.split("_")[0]; | |
| l = "http://www.target.com/p/-/A-" + l; | |
| o = this.products[g][1]; | |
| if (o.length > 30) o = $.trim(o.substring(0, 30)) + "..."; | |
| v = "/img/p/" + this.products[g][0].substring(0, 2) + "/" + this.products[g][0].substring(2, 4) + "/" + this.products[g][0] + "_75x75.jpg"; | |
| f += '<li><div class="image"><a href="' + l + '" title="' + this.products[g][1] + '"><img alt="' + this.products[g][1] + '" src="' + Target.controller.headerNew.getProtocol(j) + v + '"/></a></div><div class="link"><a href="' + l + '" title="' + this.products[g][1] + '">' + o + "</a></div></li>" | |
| } | |
| b(f) | |
| }, | |
| cookie: { | |
| create: function(a, b, d, f) { | |
| f = f ? f : Target.globals.cookieDomain; | |
| if (d) { | |
| var g = new Date; | |
| g.setTime(g.getTime() + d * 24 * 60 * 60 * 1E3); | |
| d = "; expires=" + g.toGMTString() | |
| } else d = ""; | |
| document.cookie = a + "=" + b + d + "; path=/;" + (f === undefined ? "domain=.target.com" : "domain=" + f) | |
| }, | |
| read: function(a) { | |
| a = a + "="; | |
| for (var b = document.cookie.split(";"), d = 0; d < b.length; d++) { | |
| for (var f = b[d]; f.charAt(0) == " ";) f = f.substring(1, f.length); | |
| if (f.indexOf(a) == 0) return f.substring(a.length, f.length) | |
| } | |
| return null | |
| }, | |
| erase: function(a) { | |
| this.create(a, "", -1) | |
| } | |
| }, | |
| _updateRecentlyReviewed: function() { | |
| var a = ""; | |
| a = this.reviewWrapper.find(".recentNavView"); | |
| switch (this.reviewedLength) { | |
| case 0: | |
| a.find("a").remove(); | |
| $(this.reviewedIcon).remove(); | |
| break; | |
| case 1: | |
| a.html("recently viewed items"); | |
| $(this.reviewedIcon).remove(); | |
| break; | |
| default: | |
| a.html("<a href='#'>recently viewed items <span class='screen-reader-only'>expand</span></a><a href='#' class='screen-reader-only' tabindex='-1'>recently viewed items</a>"); | |
| $(this.reviewedIcon).remove(); | |
| this.reviewWrapper.append('<a id="reviewed-icon" href="#" class="viewedopen"><span class="screen-reader-only">Recent viewed items expand</span></a>') | |
| } | |
| }, | |
| deleteOldCookie: function() { | |
| this.cookie.erase(this.cookieNameToDelete) | |
| } | |
| }); | |
| (function(a) { | |
| function b(g) { | |
| if (g) { | |
| if (typeof f[g] === "string") return g; | |
| g = g.charAt(0).toUpperCase() + g.slice(1); | |
| for (var j, l = 0, o = d.length; l < o; l++) { | |
| j = d[l] + g; | |
| if (typeof f[j] === "string") return j | |
| } | |
| } | |
| } | |
| var d = "Webkit Moz ms Ms O".split(" "), | |
| f = document.documentElement.style; | |
| if (typeof define === "function" && define.amd) define(function() { | |
| return b | |
| }); | |
| else a.getStyleProperty = b | |
| })(window); | |
| (function(a) { | |
| function b(l) { | |
| var o = parseFloat(l); | |
| return l.indexOf("%") === -1 && !isNaN(o) && o | |
| } | |
| function d(l) { | |
| var o = l("boxSizing"), | |
| v; | |
| (function() { | |
| if (o) { | |
| var A = document.createElement("div"); | |
| A.style.width = "200px"; | |
| A.style.padding = "1px 2px 3px 4px"; | |
| A.style.borderStyle = "solid"; | |
| A.style.borderWidth = "1px 2px 3px 4px"; | |
| A.style[o] = "border-box"; | |
| var C = document.body || document.documentElement; | |
| C.appendChild(A); | |
| var q = g(A); | |
| v = b(q.width) === 200; | |
| C.removeChild(A) | |
| } | |
| })(); | |
| return function(A) { | |
| if (typeof A === "string") A = document.querySelector(A); | |
| if (!(!A || typeof A !== "object" || !A.nodeType)) { | |
| var C = g(A); | |
| if (C.display === "none") { | |
| var q = { | |
| width: 0, | |
| height: 0, | |
| innerWidth: 0, | |
| innerHeight: 0, | |
| outerWidth: 0, | |
| outerHeight: 0 | |
| }; | |
| C = 0; | |
| for (A = j.length; C < A; C++) q[j[C]] = 0; | |
| return q | |
| } | |
| q = {}; | |
| q.width = A.offsetWidth; | |
| q.height = A.offsetHeight; | |
| A = q.isBorderBox = !!(o && C[o] && C[o] === "border-box"); | |
| for (var I = 0, K = j.length; I < K; I++) { | |
| var Q = j[I], | |
| n = parseFloat(C[Q]); | |
| q[Q] = !isNaN(n) ? n : 0 | |
| } | |
| I = q.paddingLeft + q.paddingRight; | |
| K = q.paddingTop + q.paddingBottom; | |
| Q = q.marginLeft + q.marginRight; | |
| n = q.marginTop + q.marginBottom; | |
| var G = q.borderLeftWidth + q.borderRightWidth, | |
| p = q.borderTopWidth + q.borderBottomWidth; | |
| A = A && v; | |
| var t = b(C.width); | |
| if (t !== false) q.width = t + (A ? 0 : I + G); | |
| C = b(C.height); | |
| if (C !== false) q.height = C + (A ? 0 : K + p); | |
| q.innerWidth = q.width - (I + G); | |
| q.innerHeight = q.height - (K + p); | |
| q.outerWidth = q.width + Q; | |
| q.outerHeight = q.height + n; | |
| return q | |
| } | |
| } | |
| } | |
| var f = document.defaultView, | |
| g = f && f.getComputedStyle ? function(l) { | |
| return f.getComputedStyle(l, null) | |
| } : function(l) { | |
| return l.currentStyle | |
| }, | |
| j = ["paddingLeft", "paddingRight", "paddingTop", "paddingBottom", "marginLeft", | |
| "marginRight", "marginTop", "marginBottom", "borderLeftWidth", "borderRightWidth", "borderTopWidth", "borderBottomWidth" | |
| ]; | |
| if (typeof define === "function" && define.amd) define(["get-style-property"], d); | |
| else a.getSize = d(a.getStyleProperty) | |
| })(window); | |
| (function(a) { | |
| var b = document.documentElement, | |
| d = function() {}; | |
| if (b.addEventListener) d = function(g, j, l) { | |
| g.addEventListener(j, l, false) | |
| }; | |
| else if (b.attachEvent) d = function(g, j, l) { | |
| g[j + l] = l.handleEvent ? function() { | |
| var o = a.event; | |
| o.target = o.target || o.srcElement; | |
| l.handleEvent.call(l, o) | |
| } : function() { | |
| var o = a.event; | |
| o.target = o.target || o.srcElement; | |
| l.call(g, o) | |
| }; | |
| g.attachEvent("on" + j, g[j + l]) | |
| }; | |
| var f = function() {}; | |
| if (b.removeEventListener) f = function(g, j, l) { | |
| g.removeEventListener(j, l, false) | |
| }; | |
| else if (b.detachEvent) f = function(g, | |
| j, l) { | |
| g.detachEvent("on" + j, g[j + l]); | |
| try { | |
| delete g[j + l] | |
| } catch (o) { | |
| g[j + l] = undefined | |
| } | |
| }; | |
| b = { | |
| bind: d, | |
| unbind: f | |
| }; | |
| if (typeof define === "function" && define.amd) define(b); | |
| else a.eventie = b | |
| })(this); | |
| (function(a) { | |
| function b(l) { | |
| if (typeof l === "function") b.isReady ? l() : j.push(l) | |
| } | |
| function d(l) { | |
| l = l.type === "readystatechange" && g.readyState !== "complete"; | |
| if (!(b.isReady || l)) { | |
| b.isReady = true; | |
| l = 0; | |
| for (var o = j.length; l < o; l++)(0, j[l])() | |
| } | |
| } | |
| function f(l) { | |
| l.bind(g, "DOMContentLoaded", d); | |
| l.bind(g, "readystatechange", d); | |
| l.bind(a, "load", d); | |
| return b | |
| } | |
| var g = a.document, | |
| j = []; | |
| b.isReady = false; | |
| if (typeof define === "function" && define.amd) define(["eventie"], f); | |
| else a.docReady = f(a.eventie) | |
| })(this); | |
| (function(a) { | |
| function b() {} | |
| function d(j, l) { | |
| if (g) return l.indexOf(j); | |
| for (var o = l.length; o--;) | |
| if (l[o] === j) return o; | |
| return -1 | |
| } | |
| var f = b.prototype, | |
| g = Array.prototype.indexOf ? true : false; | |
| f._getEvents = function() { | |
| return this._events || (this._events = {}) | |
| }; | |
| f.getListeners = function(j) { | |
| var l = this._getEvents(), | |
| o, v; | |
| if (typeof j === "object") { | |
| o = {}; | |
| for (v in l) | |
| if (l.hasOwnProperty(v) && j.test(v)) o[v] = l[v] | |
| } else o = l[j] || (l[j] = []); | |
| return o | |
| }; | |
| f.getListenersAsObject = function(j) { | |
| var l = this.getListeners(j), | |
| o; | |
| if (l instanceof Array) { | |
| o = {}; | |
| o[j] = l | |
| } | |
| return o || l | |
| }; | |
| f.addListener = function(j, l) { | |
| var o = this.getListenersAsObject(j), | |
| v; | |
| for (v in o) o.hasOwnProperty(v) && d(l, o[v]) === -1 && o[v].push(l); | |
| return this | |
| }; | |
| f.on = f.addListener; | |
| f.defineEvent = function(j) { | |
| this.getListeners(j); | |
| return this | |
| }; | |
| f.defineEvents = function(j) { | |
| for (var l = 0; l < j.length; l += 1) this.defineEvent(j[l]); | |
| return this | |
| }; | |
| f.removeListener = function(j, l) { | |
| var o = this.getListenersAsObject(j), | |
| v, A; | |
| for (A in o) | |
| if (o.hasOwnProperty(A)) { | |
| v = d(l, o[A]); | |
| v !== -1 && o[A].splice(v, 1) | |
| } | |
| return this | |
| }; | |
| f.off = f.removeListener; | |
| f.addListeners = function(j, l) { | |
| return this.manipulateListeners(false, j, l) | |
| }; | |
| f.removeListeners = function(j, l) { | |
| return this.manipulateListeners(true, j, l) | |
| }; | |
| f.manipulateListeners = function(j, l, o) { | |
| var v, A, C = j ? this.removeListener : this.addListener; | |
| j = j ? this.removeListeners : this.addListeners; | |
| if (typeof l === "object" && !(l instanceof RegExp)) | |
| for (v in l) { | |
| if (l.hasOwnProperty(v) && (A = l[v])) typeof A === "function" ? C.call(this, v, A) : j.call(this, v, A) | |
| } else | |
| for (v = o.length; v--;) C.call(this, l, o[v]); | |
| return this | |
| }; | |
| f.removeEvent = function(j) { | |
| var l = | |
| typeof j, | |
| o = this._getEvents(), | |
| v; | |
| if (l === "string") delete o[j]; | |
| else if (l === "object") | |
| for (v in o) o.hasOwnProperty(v) && j.test(v) && delete o[v]; | |
| else delete this._events; | |
| return this | |
| }; | |
| f.emitEvent = function(j, l) { | |
| var o = this.getListenersAsObject(j), | |
| v, A, C; | |
| for (A in o) | |
| if (o.hasOwnProperty(A)) | |
| for (v = o[A].length; v--;) { | |
| C = l ? o[A][v].apply(null, l) : o[A][v](); | |
| C === true && this.removeListener(j, o[A][v]) | |
| } | |
| return this | |
| }; | |
| f.trigger = f.emitEvent; | |
| f.emit = function(j) { | |
| var l = Array.prototype.slice.call(arguments, 1); | |
| return this.emitEvent(j, l) | |
| }; | |
| if (typeof define === "function" && define.amd) define(function() { | |
| return b | |
| }); | |
| else a.EventEmitter = b | |
| })(this); | |
| (function(a) { | |
| function b() {} | |
| function d(g) { | |
| function j(v) { | |
| if (!v.prototype.option) v.prototype.option = function(A) { | |
| if (g.isPlainObject(A)) this.options = g.extend(true, this.options, A) | |
| } | |
| } | |
| function l(v, A) { | |
| g.fn[v] = function(C) { | |
| if (typeof C === "string") { | |
| for (var q = f.call(arguments, 1), I = 0, K = this.length; I < K; I++) { | |
| var Q = g.data(this[I], v); | |
| if (Q) | |
| if (!g.isFunction(Q[C]) || C.charAt(0) === "_") o("no such method '" + C + "' for " + v + " instance"); | |
| else { | |
| Q = Q[C].apply(Q, q); | |
| if (Q !== undefined) return Q | |
| } else o("cannot call methods on " + v + " prior to initialization; attempted to call '" + | |
| C + "'") | |
| } | |
| return this | |
| } else return this.each(function() { | |
| var n = g.data(this, v); | |
| if (n) { | |
| n.option(C); | |
| n._init() | |
| } else { | |
| n = new A(this, C); | |
| g.data(this, v, n) | |
| } | |
| }) | |
| } | |
| } | |
| if (g) { | |
| var o = typeof console === "undefined" ? b : function(v) { | |
| console.error(v) | |
| }; | |
| g.bridget = function(v, A) { | |
| j(A); | |
| l(v, A) | |
| } | |
| } | |
| } | |
| var f = Array.prototype.slice; | |
| typeof define === "function" && define.amd ? define(["jquery"], d) : d(a.jQuery) | |
| })(window); | |
| (function(a, b) { | |
| function d(v, A) { | |
| return v[j](A) | |
| } | |
| function f(v, A) { | |
| v.parentNode || document.createDocumentFragment().appendChild(v); | |
| for (var C = v.parentNode.querySelectorAll(A), q = 0, I = C.length; q < I; q++) | |
| if (C[q] === v) return true; | |
| return false | |
| } | |
| function g(v, A) { | |
| v.parentNode || document.createDocumentFragment().appendChild(v); | |
| return d(v, A) | |
| } | |
| var j = function() { | |
| if (b.matchesSelector) return "matchesSelector"; | |
| for (var v = ["webkit", "moz", "ms", "o"], A = 0, C = v.length; A < C; A++) { | |
| var q = v[A] + "MatchesSelector"; | |
| if (b[q]) return q | |
| } | |
| }(), | |
| l; | |
| if (j) { | |
| var o = | |
| document.createElement("div"); | |
| l = d(o, "div") ? d : g | |
| } else l = f; | |
| if (typeof define === "function" && define.amd) define(function() { | |
| return l | |
| }); | |
| else window.matchesSelector = l | |
| })(this, Element.prototype); | |
| (function(a) { | |
| function b(n, G) { | |
| if (n) { | |
| this.element = n; | |
| this.layout = G; | |
| this.position = { | |
| x: 0, | |
| y: 0 | |
| }; | |
| this._create() | |
| } | |
| } | |
| var d = a.getSize, | |
| f = a.getStyleProperty, | |
| g = a.EventEmitter, | |
| j = document.defaultView, | |
| l = j && j.getComputedStyle ? function(n) { | |
| return j.getComputedStyle(n, null) | |
| } : function(n) { | |
| return n.currentStyle | |
| }, | |
| o = f("transition"), | |
| v = f("transform"); | |
| v = o && v; | |
| var A = !!f("perspective"), | |
| C = { | |
| WebkitTransition: "webkitTransitionEnd", | |
| MozTransition: "transitionend", | |
| OTransition: "otransitionend", | |
| transition: "transitionend" | |
| }[o], | |
| q = ["transform", | |
| "transition", "transitionDuration", "transitionProperty" | |
| ], | |
| I = function() { | |
| for (var n = {}, G = 0, p = q.length; G < p; G++) { | |
| var t = q[G], | |
| z = f(t); | |
| if (z && z !== t) n[t] = z | |
| } | |
| return n | |
| }(); | |
| (function(n, G) { | |
| for (var p in G) n[p] = G[p]; | |
| return n | |
| })(b.prototype, g.prototype); | |
| b.prototype._create = function() { | |
| this.css({ | |
| position: "absolute" | |
| }) | |
| }; | |
| b.prototype.handleEvent = function(n) { | |
| var G = "on" + n.type; | |
| this[G] && this[G](n) | |
| }; | |
| b.prototype.getSize = function() { | |
| this.size = d(this.element) | |
| }; | |
| b.prototype.css = function(n) { | |
| var G = this.element.style; | |
| try { | |
| for (var p in n) G[I[p] || | |
| p] = n[p] | |
| } catch (t) {} | |
| }; | |
| b.prototype.getPosition = function() { | |
| var n = l(this.element), | |
| G = this.layout.options, | |
| p = G.isOriginLeft; | |
| G = G.isOriginTop; | |
| var t = parseInt(n[p ? "left" : "right"], 10); | |
| n = parseInt(n[G ? "top" : "bottom"], 10); | |
| t = isNaN(t) ? 0 : t; | |
| n = isNaN(n) ? 0 : n; | |
| var z = this.layout.size; | |
| t -= p ? z.paddingLeft : z.paddingRight; | |
| n -= G ? z.paddingTop : z.paddingBottom; | |
| this.position.x = t; | |
| this.position.y = n | |
| }; | |
| b.prototype.layoutPosition = function() { | |
| var n = this.layout.size, | |
| G = this.layout.options, | |
| p = {}; | |
| if (G.isOriginLeft) { | |
| p.left = this.position.x + n.paddingLeft + | |
| "px"; | |
| p.right = "" | |
| } else { | |
| p.right = this.position.x + n.paddingRight + "px"; | |
| p.left = "" | |
| } | |
| if (G.isOriginTop) { | |
| p.top = this.position.y + n.paddingTop + "px"; | |
| p.bottom = "" | |
| } else { | |
| p.bottom = this.position.y + n.paddingBottom + "px"; | |
| p.top = "" | |
| } | |
| this.css(p); | |
| this.emitEvent("layout", [this]) | |
| }; | |
| var K = A ? function(n, G) { | |
| return "translate3d(" + n + "px, " + G + "px, 0)" | |
| } : function(n, G) { | |
| return "translate(" + n + "px, " + G + "px)" | |
| }; | |
| b.prototype._transitionTo = function(n, G) { | |
| this.getPosition(); | |
| var p = this.position.x, | |
| t = this.position.y, | |
| z = parseInt(n, 10), | |
| D = parseInt(G, 10); | |
| z = z === | |
| this.position.x && D === this.position.y; | |
| this.setPosition(n, G); | |
| if (z && !this.isTransitioning) this.layoutPosition(); | |
| else { | |
| p = n - p; | |
| t = G - t; | |
| z = {}; | |
| D = this.layout.options; | |
| p = D.isOriginLeft ? p : -p; | |
| t = D.isOriginTop ? t : -t; | |
| z.transform = K(p, t); | |
| this.transition({ | |
| to: z, | |
| onTransitionEnd: this.layoutPosition, | |
| isCleaning: true | |
| }) | |
| } | |
| }; | |
| b.prototype.goTo = function(n, G) { | |
| this.setPosition(n, G); | |
| this.layoutPosition() | |
| }; | |
| b.prototype.moveTo = v ? b.prototype._transitionTo : b.prototype.goTo; | |
| b.prototype.setPosition = function(n, G) { | |
| this.position.x = parseInt(n, 10); | |
| this.position.y = parseInt(G, 10) | |
| }; | |
| b.prototype._nonTransition = function(n) { | |
| this.css(n.to); | |
| n.isCleaning && this._removeStyles(n.to); | |
| n.onTransitionEnd && n.onTransitionEnd.call(this) | |
| }; | |
| b.prototype._transition = function(n) { | |
| var G = this.layout.options.transitionDuration; | |
| if (parseFloat(G)) { | |
| var p = n.to, | |
| t = [], | |
| z; | |
| for (z in p) t.push(z); | |
| z = {}; | |
| z.transitionProperty = t.join(","); | |
| z.transitionDuration = G; | |
| this.element.addEventListener(C, this, false); | |
| if (n.isCleaning || n.onTransitionEnd) this.on("transitionEnd", function(D) { | |
| n.isCleaning && | |
| D._removeStyles(p); | |
| n.onTransitionEnd && n.onTransitionEnd.call(D); | |
| return true | |
| }); | |
| n.from && this.css(n.from); | |
| this.css(z); | |
| this.css(p); | |
| this.isTransitioning = true | |
| } else this._nonTransition(n) | |
| }; | |
| b.prototype.transition = b.prototype[o ? "_transition" : "_nonTransition"]; | |
| b.prototype.onwebkitTransitionEnd = function(n) { | |
| this.ontransitionend(n) | |
| }; | |
| b.prototype.onotransitionend = function(n) { | |
| this.ontransitionend(n) | |
| }; | |
| b.prototype.ontransitionend = function(n) { | |
| if (n.target === this.element) { | |
| this.removeTransitionStyles(); | |
| this.element.removeEventListener(C, | |
| this, false); | |
| this.isTransitioning = false; | |
| this.emitEvent("transitionEnd", [this]) | |
| } | |
| }; | |
| b.prototype._removeStyles = function(n) { | |
| var G = {}, | |
| p; | |
| for (p in n) G[p] = ""; | |
| this.css(G) | |
| }; | |
| var Q = { | |
| transitionProperty: "", | |
| transitionDuration: "" | |
| }; | |
| b.prototype.removeTransitionStyles = function() { | |
| this.css(Q) | |
| }; | |
| b.prototype.removeElem = function() { | |
| this.element.parentNode.removeChild(this.element); | |
| this.emitEvent("remove", [this]) | |
| }; | |
| b.prototype.remove = o ? function() { | |
| var n = this; | |
| this.on("transitionEnd", function() { | |
| n.removeElem(); | |
| return true | |
| }); | |
| this.hide() | |
| } : | |
| b.prototype.removeElem; | |
| b.prototype.reveal = function() { | |
| this.css({ | |
| display: "" | |
| }); | |
| var n = this.layout.options; | |
| this.transition({ | |
| from: n.hiddenStyle, | |
| to: n.visibleStyle, | |
| isCleaning: true | |
| }) | |
| }; | |
| b.prototype.hide = function() { | |
| this.css({ | |
| display: "" | |
| }); | |
| var n = this.layout.options; | |
| this.transition({ | |
| from: n.visibleStyle, | |
| to: n.hiddenStyle, | |
| isCleaning: true, | |
| onTransitionEnd: function() { | |
| this.css({ | |
| display: "none" | |
| }) | |
| } | |
| }) | |
| }; | |
| b.prototype.destroy = function() { | |
| this.css({ | |
| position: "", | |
| left: "", | |
| right: "", | |
| top: "", | |
| bottom: "", | |
| transition: "", | |
| transform: "" | |
| }) | |
| }; | |
| a.Outlayer = { | |
| Item: b | |
| } | |
| })(window); | |
| (function(a) { | |
| function b(B, m) { | |
| for (var u in m) B[u] = m[u]; | |
| return B | |
| } | |
| function d(B) { | |
| var m = []; | |
| if (p.call(B) === "[object Array]") m = B; | |
| else if (typeof B.length === "number") | |
| for (var u = 0, y = B.length; u < y; u++) m.push(B[u]); | |
| else m.push(B); | |
| return m | |
| } | |
| function f(B) { | |
| return B.replace(/(.)([A-Z])/g, function(m, u, y) { | |
| return u + "-" + y | |
| }).toLowerCase() | |
| } | |
| function g(B, m) { | |
| if (typeof B === "string") B = K.querySelector(B); | |
| if (!B || !t(B)) Q && Q.error("Bad " + this.settings.namespace + " element: " + B); | |
| else { | |
| this.element = B; | |
| this.options = b({}, this.options); | |
| b(this.options, | |
| m); | |
| var u = ++D; | |
| this.element.outlayerGUID = u; | |
| M[u] = this; | |
| this._create(); | |
| this.options.isInitLayout && this.layout() | |
| } | |
| } | |
| function j(B, m) { | |
| B.prototype[m] = b({}, g.prototype[m]) | |
| } | |
| var l = a.Outlayer, | |
| o = l.Item, | |
| v = a.docReady, | |
| A = a.EventEmitter, | |
| C = a.eventie, | |
| q = a.getSize, | |
| I = a.matchesSelector, | |
| K = a.document, | |
| Q = a.console, | |
| n = a.jQuery, | |
| G = function() {}, | |
| p = Object.prototype.toString, | |
| t = typeof HTMLElement === "object" ? function(B) { | |
| return B instanceof HTMLElement | |
| } : function(B) { | |
| return B && typeof B === "object" && B.nodeType === 1 && typeof B.nodeName === "string" | |
| }, | |
| z = Array.prototype.indexOf ? function(B, m) { | |
| return B.indexOf(m) | |
| } : function(B, m) { | |
| for (var u = 0, y = B.length; u < y; u++) | |
| if (B[u] === m) return u; | |
| return -1 | |
| }, | |
| D = 0, | |
| M = {}; | |
| g.prototype.settings = { | |
| namespace: "outlayer", | |
| item: l.Item | |
| }; | |
| g.prototype.options = { | |
| containerStyle: { | |
| position: "relative" | |
| }, | |
| isInitLayout: true, | |
| isOriginLeft: true, | |
| isOriginTop: true, | |
| isResizeBound: true, | |
| transitionDuration: "0.4s", | |
| hiddenStyle: { | |
| opacity: 0, | |
| transform: "scale(0.001)" | |
| }, | |
| visibleStyle: { | |
| opacity: 1, | |
| transform: "scale(1)" | |
| } | |
| }; | |
| b(g.prototype, A.prototype); | |
| g.prototype._create = | |
| function() { | |
| this.reloadItems(); | |
| this.stamps = []; | |
| this.stamp(this.options.stamp); | |
| b(this.element.style, this.options.containerStyle); | |
| this.options.isResizeBound && this.bindResize() | |
| }; | |
| g.prototype.reloadItems = function() { | |
| this.items = this._getItems(this.element.children) | |
| }; | |
| g.prototype._getItems = function(B) { | |
| B = this._filterFindItemElements(B); | |
| for (var m = this.settings.item, u = [], y = 0, H = B.length; y < H; y++) { | |
| var J = new m(B[y], this, this.options.itemOptions); | |
| u.push(J) | |
| } | |
| return u | |
| }; | |
| g.prototype._filterFindItemElements = function(B) { | |
| B = | |
| d(B); | |
| var m = this.options.itemSelector; | |
| if (!m) return B; | |
| for (var u = [], y = 0, H = B.length; y < H; y++) { | |
| var J = B[y]; | |
| I(J, m) && u.push(J); | |
| J = J.querySelectorAll(m); | |
| for (var R = 0, U = J.length; R < U; R++) u.push(J[R]) | |
| } | |
| return u | |
| }; | |
| g.prototype.getItemElements = function() { | |
| for (var B = [], m = 0, u = this.items.length; m < u; m++) B.push(this.items[m].element); | |
| return B | |
| }; | |
| g.prototype.layout = function() { | |
| this._resetLayout(); | |
| this._manageStamps(); | |
| this.layoutItems(this.items, this.options.isLayoutInstant !== undefined ? this.options.isLayoutInstant : !this._isLayoutInited); | |
| this._isLayoutInited = true | |
| }; | |
| g.prototype._init = g.prototype.layout; | |
| g.prototype._resetLayout = function() { | |
| this.getSize() | |
| }; | |
| g.prototype.getSize = function() { | |
| this.size = q(this.element) | |
| }; | |
| g.prototype._getMeasurement = function(B, m) { | |
| var u = this.options[B], | |
| y; | |
| if (u) { | |
| if (typeof u === "string") y = this.element.querySelector(u); | |
| else if (t(u)) y = u; | |
| this[B] = y ? q(y)[m] : u | |
| } else this[B] = 0 | |
| }; | |
| g.prototype.layoutItems = function(B, m) { | |
| B = this._getItemsForLayout(B); | |
| this._layoutItems(B, m); | |
| this._postLayout() | |
| }; | |
| g.prototype._getItemsForLayout = function(B) { | |
| for (var m = [], u = 0, y = B.length; u < y; u++) { | |
| var H = B[u]; | |
| H.isIgnored || m.push(H) | |
| } | |
| return m | |
| }; | |
| g.prototype._layoutItems = function(B, m) { | |
| if (!B || !B.length) this.emitEvent("layoutComplete", [this, B]); | |
| else { | |
| this._itemsOn(B, "layout", function() { | |
| this.emitEvent("layoutComplete", [this, B]) | |
| }); | |
| for (var u = [], y = 0, H = B.length; y < H; y++) { | |
| var J = B[y], | |
| R = this._getItemLayoutPosition(J); | |
| R.item = J; | |
| R.isInstant = m; | |
| u.push(R) | |
| } | |
| this._processLayoutQueue(u) | |
| } | |
| }; | |
| g.prototype._getItemLayoutPosition = function() { | |
| return { | |
| x: 0, | |
| y: 0 | |
| } | |
| }; | |
| g.prototype._processLayoutQueue = function(B) { | |
| for (var m = | |
| 0, u = B.length; m < u; m++) { | |
| var y = B[m]; | |
| this._positionItem(y.item, y.x, y.y, y.isInstant) | |
| } | |
| }; | |
| g.prototype._positionItem = function(B, m, u, y) { | |
| y ? B.goTo(m, u) : B.moveTo(m, u) | |
| }; | |
| g.prototype._postLayout = function() { | |
| var B = this._getContainerSize(); | |
| if (B) { | |
| this._setContainerMeasure(B.width, true); | |
| this._setContainerMeasure(B.height, false) | |
| } | |
| }; | |
| g.prototype._getContainerSize = G; | |
| g.prototype._setContainerMeasure = function(B, m) { | |
| if (B !== undefined) { | |
| var u = this.size; | |
| if (u.isBorderBox) B += m ? u.paddingLeft + u.paddingRight + u.borderLeftWidth + u.borderRightWidth : | |
| u.paddingBottom + u.paddingTop + u.borderTopWidth + u.borderBottomWidth; | |
| B = Math.max(B, 0); | |
| this.element.style[m ? "width" : "height"] = B + "px" | |
| } | |
| }; | |
| g.prototype._itemsOn = function(B, m, u) { | |
| function y() { | |
| H++; | |
| H === J && u.call(R); | |
| return true | |
| } | |
| for (var H = 0, J = B.length, R = this, U = 0, X = B.length; U < X; U++) B[U].on(m, y) | |
| }; | |
| g.prototype.ignore = function(B) { | |
| if (B = this.getItem(B)) B.isIgnored = true | |
| }; | |
| g.prototype.unignore = function(B) { | |
| (B = this.getItem(B)) && delete B.isIgnored | |
| }; | |
| g.prototype.stamp = function(B) { | |
| if (B = this._find(B)) { | |
| this.stamps = this.stamps.concat(B); | |
| for (var m = 0, u = B.length; m < u; m++) this.ignore(B[m]) | |
| } | |
| }; | |
| g.prototype.unstamp = function(B) { | |
| if (B = this._find(B)) | |
| for (var m = 0, u = B.length; m < u; m++) { | |
| var y = B[m], | |
| H = z(this.stamps, y); | |
| H !== -1 && this.stamps.splice(H, 1); | |
| this.unignore(y) | |
| } | |
| }; | |
| g.prototype._find = function(B) { | |
| if (B) { | |
| if (typeof B === "string") B = this.element.querySelectorAll(B); | |
| return B = d(B) | |
| } | |
| }; | |
| g.prototype._manageStamps = function() { | |
| if (this.stamps && this.stamps.length) { | |
| this._getBoundingRect(); | |
| for (var B = 0, m = this.stamps.length; B < m; B++) this._manageStamp(this.stamps[B]) | |
| } | |
| }; | |
| g.prototype._getBoundingRect = | |
| function() { | |
| var B = this.element.getBoundingClientRect(), | |
| m = this.size; | |
| this._boundingRect = { | |
| left: B.left + m.paddingLeft + m.borderLeftWidth, | |
| top: B.top + m.paddingTop + m.borderTopWidth, | |
| right: B.right - (m.paddingRight + m.borderRightWidth), | |
| bottom: B.bottom - (m.paddingBottom + m.borderBottomWidth) | |
| } | |
| }; | |
| g.prototype._manageStamp = G; | |
| g.prototype._getElementOffset = function(B) { | |
| var m = B.getBoundingClientRect(), | |
| u = this._boundingRect; | |
| B = q(B); | |
| return { | |
| left: m.left - u.left - B.marginLeft, | |
| top: m.top - u.top - B.marginTop, | |
| right: u.right - m.right - B.marginRight, | |
| bottom: u.bottom - m.bottom - B.marginBottom | |
| } | |
| }; | |
| g.prototype.handleEvent = function(B) { | |
| var m = "on" + B.type; | |
| this[m] && this[m](B) | |
| }; | |
| g.prototype.bindResize = function() { | |
| if (!this.isResizeBound) { | |
| C.bind(a, "resize", this); | |
| this.isResizeBound = true | |
| } | |
| }; | |
| g.prototype.unbindResize = function() { | |
| C.unbind(a, "resize", this); | |
| this.isResizeBound = false | |
| }; | |
| g.prototype.onresize = function() { | |
| this.resizeTimeout && clearTimeout(this.resizeTimeout); | |
| var B = this; | |
| this.resizeTimeout = setTimeout(function() { | |
| B.resize() | |
| }, 100) | |
| }; | |
| g.prototype.resize = function() { | |
| var B = | |
| q(this.element); | |
| if (!(this.size && B && B.innerWidth === this.size.innerWidth)) { | |
| this.layout(); | |
| delete this.resizeTimeout | |
| } | |
| }; | |
| g.prototype.addItems = function(B) { | |
| B = this._getItems(B); | |
| if (B.length) { | |
| this.items = this.items.concat(B); | |
| return B | |
| } | |
| }; | |
| g.prototype.appended = function(B) { | |
| B = this.addItems(B); | |
| if (B.length) { | |
| this.layoutItems(B, true); | |
| this.reveal(B) | |
| } | |
| }; | |
| g.prototype.prepended = function(B) { | |
| B = this._getItems(B); | |
| if (B.length) { | |
| var m = this.items.slice(0); | |
| this.items = B.concat(m); | |
| this._resetLayout(); | |
| this.layoutItems(B, true); | |
| this.reveal(B); | |
| this.layoutItems(m) | |
| } | |
| }; | |
| g.prototype.reveal = function(B) { | |
| if (B && B.length) | |
| for (var m = 0, u = B.length; m < u; m++) B[m].reveal() | |
| }; | |
| g.prototype.hide = function(B) { | |
| if (B && B.length) | |
| for (var m = 0, u = B.length; m < u; m++) B[m].hide() | |
| }; | |
| g.prototype.getItem = function(B) { | |
| for (var m = 0, u = this.items.length; m < u; m++) { | |
| var y = this.items[m]; | |
| if (y.element === B) return y | |
| } | |
| }; | |
| g.prototype.getItems = function(B) { | |
| if (B && B.length) { | |
| for (var m = [], u = 0, y = B.length; u < y; u++) { | |
| var H = this.getItem(B[u]); | |
| H && m.push(H) | |
| } | |
| return m | |
| } | |
| }; | |
| g.prototype.remove = function(B) { | |
| B = d(B); | |
| var m = | |
| this.getItems(B); | |
| this._itemsOn(m, "remove", function() { | |
| this.emitEvent("removeComplete", [this, m]) | |
| }); | |
| B = 0; | |
| for (var u = m.length; B < u; B++) { | |
| var y = m[B]; | |
| y.remove(); | |
| this.items.splice(z(this.items, y), 1) | |
| } | |
| }; | |
| g.prototype.destroy = function() { | |
| var B = this.element.style; | |
| B.height = ""; | |
| B.position = ""; | |
| B.width = ""; | |
| B = 0; | |
| for (var m = this.items.length; B < m; B++) this.items[B].destroy(); | |
| this.unbindResize(); | |
| delete this.element.outlayerGUID | |
| }; | |
| g.data = function(B) { | |
| return (B = B && B.outlayerGUID) && M[B] | |
| }; | |
| g.create = function(B, m) { | |
| function u() { | |
| g.apply(this, | |
| arguments) | |
| } | |
| b(u.prototype, g.prototype); | |
| j(u, "options"); | |
| j(u, "settings"); | |
| b(u.prototype.options, m); | |
| u.prototype.settings.namespace = B; | |
| u.data = g.data; | |
| u.Item = function() { | |
| o.apply(this, arguments) | |
| }; | |
| u.Item.prototype = new g.Item; | |
| u.prototype.settings.item = u.Item; | |
| v(function() { | |
| var y = f(B), | |
| H = K.querySelectorAll(".js-" + y); | |
| y = "data-" + y + "-options"; | |
| for (var J = 0, R = H.length; J < R; J++) { | |
| var U = H[J], | |
| X = U.getAttribute(y), | |
| ga; | |
| try { | |
| ga = X && JSON.parse(X) | |
| } catch (ja) { | |
| if (Q) Q.error("Error parsing " + y + " on " + U.nodeName.toLowerCase() + (U.id ? "#" + U.id : | |
| "") + ": " + ja); | |
| continue | |
| } | |
| X = new u(U, ga); | |
| n && n.data(U, B, X) | |
| } | |
| }); | |
| n && n.bridget && n.bridget(B, u); | |
| return u | |
| }; | |
| g.Item = o; | |
| a.Outlayer = g | |
| })(window); | |
| (function(a) { | |
| function b(f, g) { | |
| var j = f.create("masonry"); | |
| j.prototype._resetLayout = function() { | |
| this.getSize(); | |
| this._getMeasurement("columnWidth", "outerWidth"); | |
| this._getMeasurement("gutter", "outerWidth"); | |
| this.measureColumns(); | |
| var l = this.cols; | |
| for (this.colYs = []; l--;) this.colYs.push(0); | |
| this.maxY = 0 | |
| }; | |
| j.prototype.measureColumns = function() { | |
| var l = this._getSizingContainer(), | |
| o = this.items[0]; | |
| o = o && o.element; | |
| if (!this.columnWidth) this.columnWidth = o ? g(o).outerWidth : this.size.innerWidth; | |
| this.columnWidth += this.gutter; | |
| this._containerWidth = g(l).innerWidth; | |
| this.cols = Math.floor((this._containerWidth + this.gutter) / this.columnWidth); | |
| this.cols = Math.max(this.cols, 1) | |
| }; | |
| j.prototype._getSizingContainer = function() { | |
| return this.options.isFitWidth ? this.element.parentNode : this.element | |
| }; | |
| j.prototype._getItemLayoutPosition = function(l) { | |
| l.getSize(); | |
| var o = Math.ceil(l.size.outerWidth / this.columnWidth); | |
| o = Math.min(o, this.cols); | |
| var v = this._getColGroup(o), | |
| A = Math.min.apply(Math, v); | |
| o = d(v, A); | |
| var C = { | |
| x: this.columnWidth * o, | |
| y: A | |
| }; | |
| l = A + l.size.outerHeight; | |
| v = this.cols + 1 - v.length; | |
| for (A = 0; A < v; A++) this.colYs[o + A] = l; | |
| return C | |
| }; | |
| j.prototype._getColGroup = function(l) { | |
| if (l === 1) return this.colYs; | |
| for (var o = [], v = this.cols + 1 - l, A = 0; A < v; A++) { | |
| var C = this.colYs.slice(A, A + l); | |
| o[A] = Math.max.apply(Math, C) | |
| } | |
| return o | |
| }; | |
| j.prototype._manageStamp = function(l) { | |
| var o = g(l); | |
| l = this._getElementOffset(l); | |
| var v = this.options.isOriginLeft ? l.left : l.right, | |
| A = v + o.outerWidth; | |
| v = Math.floor(v / this.columnWidth); | |
| v = Math.max(0, v); | |
| A = Math.floor(A / this.columnWidth); | |
| A = Math.min(this.cols - 1, A); | |
| o = (this.options.isOriginTop ? | |
| l.top : l.bottom) + o.outerHeight; | |
| for (l = v; l <= A; l++) this.colYs[l] = Math.max(o, this.colYs[l]) | |
| }; | |
| j.prototype._getContainerSize = function() { | |
| this.maxY = Math.max.apply(Math, this.colYs); | |
| var l = { | |
| height: this.maxY | |
| }; | |
| if (this.options.isFitWidth) l.width = this._getContainerFitWidth(); | |
| return l | |
| }; | |
| j.prototype._getContainerFitWidth = function() { | |
| for (var l = 0, o = this.cols; --o;) { | |
| if (this.colYs[o] !== 0) break; | |
| l++ | |
| } | |
| return (this.cols - l) * this.columnWidth - this.gutter | |
| }; | |
| j.prototype.resize = function() { | |
| var l = this._getSizingContainer(); | |
| l = g(l); | |
| if (!(this.size && | |
| l && l.innerWidth === this._containerWidth)) { | |
| this.layout(); | |
| delete this.resizeTimeout | |
| } | |
| }; | |
| return j | |
| } | |
| var d = Array.prototype.indexOf ? function(f, g) { | |
| return f.indexOf(g) | |
| } : function(f, g) { | |
| for (var j = 0, l = f.length; j < l; j++) | |
| if (f[j] === g) return j; | |
| return -1 | |
| }; | |
| if (typeof define === "function" && define.amd) define(["outlayer", "get-size"], b); | |
| else a.Masonry = b(a.Outlayer, a.getSize) | |
| })(window); | |
| (function(a, b) { | |
| var d = a.document, | |
| f = d.createElement("li").getAttributeNode("tabindex"), | |
| g = f ? "tabIndex" : "tabindex"; | |
| f = null; | |
| var j = b('<div class="carousel-container"/>'), | |
| l = b('<div class="carousel-viewport"/>'), | |
| o = b('<a href="#"/>'), | |
| v = b('<span class="disabled"/>'), | |
| A = b('<div class="carousel-controls"/>'), | |
| C = b('<div class="carousel-controls-wrapper"/>'), | |
| q = b('<ul class="carousel-pagination"/>'), | |
| I = b('<div class="carousel-display-counter"/>'), | |
| K = b('<li class="component-container carousel-panel-spacer state-hidden"/>'), | |
| Q = b('<div class="tgt_gn_acc_title" id="jtoggleLink"><a href="#">Stop Automatically Rotating Carousel</a></div>'), | |
| n = function(G, p, t) { | |
| t[G].replaceWith(t[p]); | |
| t[G] = t[p] | |
| }; | |
| b.TileCarousel = function(G, p) { | |
| var t = this; | |
| this.cacheObj = {}; | |
| this.elementNode = G; | |
| this.element = b(G); | |
| this.options = b.extend({}, { | |
| prevText: "Previous item{plural} in list", | |
| nextText: "Next item{plural} in list", | |
| frameText: "Page {number} of {total}", | |
| frameCurrentText: "Current Page", | |
| counterText: "{number} of {total}", | |
| increment: 1, | |
| incrementMode: "frame", | |
| speed: 750, | |
| easing: "swing", | |
| animating: false, | |
| loop: false, | |
| pagination: false, | |
| centerPagination: true, | |
| encapsulateControls: false, | |
| displayCount: false, | |
| paginationCount: false, | |
| accessible: true, | |
| showTile: 0, | |
| wrapperDelta: 0, | |
| viewportDelta: 0, | |
| preFrameChange: null, | |
| postFrameChange: null, | |
| lazyLoadTiles: false, | |
| autoRotate: false, | |
| autoRotateTime: 3E3, | |
| autoRotateRestartTime: 7E3, | |
| pingPong: true, | |
| skipNav: false, | |
| isLazyLoaded: false, | |
| stateChange: null | |
| }, p || {}); | |
| b.each(["increment", "speed", "showTile", "wrapperDelta", "viewportDelta"], function() { | |
| t.options[this] = parseInt(t.options[this], | |
| 10) | |
| }); | |
| if (this.element.hasClass("component-lazy-carousel")) | |
| if (this.lazyUrl = this.element.attr("data-lazy-url")) this.lazyLoadTiles = true; | |
| else console.log("no data-lazy-url attribute"); | |
| this.setup() | |
| }; | |
| b.extend(b.TileCarousel.prototype, { | |
| setup: function() { | |
| var G, p = this, | |
| t = this.element; | |
| G = this.elementNode.parentNode; | |
| var z = this.elementNode.nextSibling, | |
| D = j.clone(), | |
| M = l.clone(); | |
| A.clone(); | |
| var B = this.options, | |
| m = B.showTile, | |
| u = I.clone(), | |
| y = ""; | |
| this.wrapper = D; | |
| this.carousel = t; | |
| this.viewport = M; | |
| this.counter = u; | |
| if (!B.skipNav) { | |
| D.append(M); | |
| M.append(t); | |
| z ? b(z).before(D) : b(G).append(D) | |
| } | |
| t.delegate(".carousel-panel", "focusin focusout mouseenter mouseleave", function(H) { | |
| var J = H.type === "focusin" || H.type === "mouseenter" ? "add" : "remove"; | |
| b(H.currentTarget)[J + "Class"]("state-focus"); | |
| p.options.autoRotate && p.stopAutoRotate() | |
| }); | |
| p.options.autoRotate && t.hover(function() { | |
| p.stopAutoRotate(false) | |
| }, function() { | |
| p.options.autoRotateRestartTime && p.startAutoRotate(p.options.autoRotateRestartTime) | |
| }); | |
| G = this.normalizeState(); | |
| if (!B.skipNav) { | |
| y = G.tileWidth * B.increment; | |
| D.css("width", y + B.wrapperDelta + "px"); | |
| M.css("width", y + B.viewportDelta + "px"); | |
| t.css("width", G.tileWidth * G.curTileLength + "px"); | |
| M[0].scrollLeft = G.offset | |
| } | |
| B.skipNav || this.buildNavigation(); | |
| B.displayCount && this.wrapper.append(u) && this.updateDisplayCount(); | |
| B.paginationCount && this.wrapper.append(u) && this.updatePaginationCount(); | |
| this.lazyloadCache = Array(G.curTileLength); | |
| this.lazyloadImages(G.index, G.index + B.increment); | |
| m > 0 && this.jumpToTile(m); | |
| if (this.options.autoRotate) this.setupAutoRotate(); | |
| else this.autoRotating = | |
| false | |
| }, | |
| cache: function(G, p) { | |
| var t = this.cacheObj, | |
| z = t[G] !== "undefined" ? t[G] : undefined; | |
| if (!p) return z; | |
| t[G] = p; | |
| return t | |
| }, | |
| normalizeState: function() { | |
| var G = [], | |
| p = 0, | |
| t = this.state, | |
| z = this.carousel, | |
| D = this.element.children("li").toArray(), | |
| M = D, | |
| B = b(D[0]); | |
| t = B.outerWidth(true); | |
| var m = B.outerHeight(true), | |
| u = this.options, | |
| y = u.loop; | |
| B = u.increment; | |
| var H = D.length, | |
| J = H, | |
| R = Math.ceil(J / B); | |
| t = this.state = { | |
| index: p, | |
| offset: 0, | |
| spacers: 0, | |
| loopReset: false, | |
| prevIndex: false, | |
| tileObj: b(D), | |
| tileArr: D, | |
| origTileLength: H, | |
| curTileLength: J, | |
| tileWidth: t, | |
| tileHeight: m, | |
| curTile: false, | |
| prevTile: false, | |
| frameArr: [], | |
| origFrameLength: R, | |
| curFrameLength: R, | |
| frameWidth: B * t, | |
| curFrame: [], | |
| prevFrame: [], | |
| frameIndex: 0, | |
| prevFrameIndex: 0 | |
| }; | |
| this.toggleAria(D, "add", "carousel-panel"); | |
| if (u.pagination) | |
| for (; J % B !== 0;) { | |
| D.push(K[0].cloneNode(true)); | |
| t.spacers++; | |
| J++ | |
| } | |
| if (y) { | |
| for (; J % B !== 0;) | |
| for (p = 0; p < H; p++, J++) D.push(M[p].cloneNode(true)); | |
| for (p = B - 1; p >= 0; p--, t.spacers++) G.push(D[H - 1 - p].cloneNode(true)); | |
| D = G.concat(D); | |
| for (p = 0; p < B; p++, t.spacers++) D.push(M[p].cloneNode(true)); | |
| p = B | |
| } | |
| G = 0; | |
| M = D.length / B; | |
| for (H = 1; G < M; G++, | |
| H++) t.frameArr.push(D.slice(B * G, B * H)); | |
| t.index = p; | |
| t.offset = t.index ? t.frameWidth : t.offset; | |
| t.tileArr = D; | |
| t.tileObj = b(t.tileArr); | |
| t.curTile = t.tileObj.eq(t.index); | |
| t.curTileLength = t.tileArr.length; | |
| t.curFrameLength = Math.ceil(t.curTileLength / B); | |
| t.frameIndex = Math.ceil(t.index / B); | |
| t.prevFrameIndex = t.frameIndex; | |
| t.curFrame = t.frameArr[t.frameIndex]; | |
| t.tileDelta = B * t.curFrameLength - t.curTileLength; | |
| this.toggleAria(t.curFrame, "remove"); | |
| this.lazyLoadTiles && this.setupLazyTiles(); | |
| z.html(t.tileArr); | |
| return t | |
| }, | |
| setupAutoRotate: function() { | |
| var G = | |
| this; | |
| this.stopAutoRotateLink = Q.clone(true).click(function(p) { | |
| var t = b(this).find("a"); | |
| if (t.hasClass("j-start")) { | |
| t.removeClass("j-start").html("Stop Automatically Rotating Carousel"); | |
| G.startAutoRotate() | |
| } else { | |
| t.addClass("j-start").html("Start Automatically Rotating Carousel"); | |
| G.stopAutoRotate(false) | |
| } | |
| p.preventDefault() | |
| }); | |
| this.viewport.before(this.stopAutoRotateLink); | |
| this.autoRotateTimeout = null; | |
| this.pingPongDirection = 1; | |
| this.startAutoRotate() | |
| }, | |
| startAutoRotate: function(G) { | |
| var p = this; | |
| if (typeof p.stopAutoRotateLink !== | |
| "undefined") { | |
| p.stopAutoRotateLink.show(); | |
| if (p.stopAutoRotateLink.find("a.j-start").length > 0) return | |
| } | |
| p.autoRotating = true; | |
| G = G || p.options.autoRotateTime; | |
| p.autoRotateTimeout && clearTimeout(p.autoRotateTimeout); | |
| p.autoRotateTimeout = setTimeout(function() { | |
| p.rotate() | |
| }, G) | |
| }, | |
| stopAutoRotate: function(G) { | |
| var p = this; | |
| if (typeof p.stopAutoRotateLink !== "undefined") { | |
| p.stopAutoRotateLink.hide(); | |
| if (p.stopAutoRotateLink.find("a.j-start").length > 0) return | |
| } | |
| p.autoRotating = false; | |
| p.autoRotateTimeout && clearTimeout(p.autoRotateTimeout); | |
| if (p.options.autoRotateRestartTime && G !== false) p.autoRotateTimeout = setTimeout(function() { | |
| p.rotate() | |
| }, p.options.autoRotateRestartTime) | |
| }, | |
| rotate: function() { | |
| if (this.options.pingPong) { | |
| var G = this.state.frameIndex + this.pingPongDirection + 1; | |
| if (G <= 1) this.pingPongDirection = 1; | |
| else if (G > this.state.curFrameLength) G = 1 | |
| } else G = this.state.frameIndex + 2; | |
| this.jumpToFrame(G, false); | |
| this.startAutoRotate() | |
| }, | |
| setupLazyTiles: function() { | |
| var G = this.state.frameArr[this.state.frameIndex]; | |
| b.each(G, function(p, t) { | |
| b(t).addClass("lazy-loaded") | |
| }); | |
| G.lazyLoaded = true | |
| }, | |
| updateState: function(G, p, t) { | |
| var z = this.state, | |
| D = this.options, | |
| M = D.loop, | |
| B = D.increment; | |
| G = G > z.curTileLength - B ? z.curTileLength - B : G < 0 ? 0 : G; | |
| var m = Math.ceil(G / B), | |
| u = G === 0, | |
| y = G === z.curTileLength - B; | |
| if (M = M && !p && (u || y)) { | |
| if (u) G = z.curTileLength - B * 2; | |
| else if (y) G = B; | |
| m = Math.ceil(G / B) | |
| } | |
| b.extend(this.state, { | |
| index: G, | |
| offset: z.tileWidth * G, | |
| loopReset: M, | |
| prevIndex: z.index, | |
| prevTile: z.curTile, | |
| curTile: y && z.tileDelta && D.incrementMode === "frame" ? z.tileArr[G + z.tileDelta] : z.tileArr[G], | |
| curFrame: z.tileArr.slice(y ? G : G, B + | |
| G), | |
| prevFrame: M ? z.prevFrame : z.curFrame, | |
| frameIndex: m, | |
| prevFrameIndex: z.frameIndex | |
| }); | |
| this.lazyLoadTiles && !D.isLazyLoaded && this.lazyLoad(p, t); | |
| p && this.animate(t); | |
| return z | |
| }, | |
| lazyLoad: function() { | |
| var G = this, | |
| p = [], | |
| t = this.state.frameIndex; | |
| p = G.state.frameArr[t]; | |
| var z = G.state.frameArr; | |
| if (!G.options.isLazyLoaded) { | |
| G.options.isLazyLoaded = true; | |
| if (p.lazyLoaded) console.log("frame loaded"); | |
| else { | |
| var D = [], | |
| M = z.shift(); | |
| G.autoRotating && z.pop(); | |
| b.each(z, function(m, u) { | |
| var y = b(u); | |
| y.hasClass("lazy-loaded") || D.push(y) | |
| }); | |
| if (D.length) { | |
| G.options.autoRotate && | |
| G.stopAutoRotate(); | |
| var B = function(m) { | |
| m && b("img", m).each(function() { | |
| if (typeof m == "undefined") return false; | |
| if (!this.src) this.src = b(this).attr("original") | |
| }) | |
| }; | |
| b.ajax({ | |
| url: G.lazyUrl + "&lazyids=all", | |
| type: "get", | |
| dataType: "json", | |
| curtain: false, | |
| success: function(m) { | |
| if (m.success) { | |
| p.lazyLoaded = true; | |
| var u = false; | |
| if (G.carousel.hasClass("msm-flexibility-carousel")) u = true; | |
| for (var y = 0; y < D.length; y++) { | |
| var H = !u ? y : y + 1; | |
| D[y].addClass("lazy-loaded").html(m.result[H]); | |
| y == 0 && B(D[0]) | |
| } | |
| try { | |
| u || M && typeof b(M) !== "undefined" && b(M).html(m.result[D.length - | |
| 1]); | |
| Target.controller.globalUtils.imgMap() | |
| } catch (J) {} | |
| m = G.element.children("li").toArray(); | |
| G.state.tileObj = b(m); | |
| b(d).trigger("updateBuffer.framework"); | |
| if (t === G.state.frameIndex && !G.animating && G.autoRotating !== true) { | |
| console.log("This is still the current frame, focus the first loaded tile"); | |
| D[0].focus() | |
| } else console.log(t + " is no longer the current frame"); | |
| G.options.autoRotate && G.options.autoRotateRestartTime && G.startAutoRotate(G.options.autoRotateRestartTime) | |
| } else console.log("/lazy-carousel/get.php?lazy-ids=: " + | |
| m.result) | |
| }, | |
| error: function(m) { | |
| console.log("/lazy-carousel/get.php?lazy-ids=: " + m.result) | |
| } | |
| }) | |
| } | |
| } | |
| } | |
| }, | |
| buildNavigation: function() { | |
| var G, p = this, | |
| t = p.state, | |
| z = t.index, | |
| D = p.wrapper, | |
| M = p.options; | |
| G = M.increment; | |
| var B = G > 1 ? "s" : "", | |
| m = B ? G : "", | |
| u = A.clone(), | |
| y = C.clone(), | |
| H = t.tileWidth * M.increment + M.viewportDelta; | |
| G = M.prevText.replace("{number}", m).replace("{plural}", B); | |
| p.prev = o.clone().attr("class", "prevFrame").text(G); | |
| G = M.nextText.replace("{number}", m).replace("{plural}", B); | |
| p.next = o.clone().attr("class", "nextFrame").text(G); | |
| p.prevDisabled = v.clone().addClass("prevFrame"); | |
| p.nextDisabled = v.clone().addClass("nextFrame"); | |
| p.prevBtn = p.prev; | |
| p.nextBtn = p.next; | |
| p.prevBtn.attr("title", "Previous"); | |
| p.nextBtn.attr("title", "Next"); | |
| D.delegate(".prevFrame, .nextFrame", "click", function(pa) { | |
| var xa = b(this), | |
| P = xa.attr("class"); | |
| pa.preventDefault(); | |
| p.options.autoRotate ? p.stopAutoRotate() : p.stopAutoRotate(false); | |
| if (p.carousel.hasClass("aria-busy") || xa.hasClass("disabled")) return false; | |
| p[P]() | |
| }); | |
| if (Target.support.isTouch) { | |
| var J = 0, | |
| R = 0, | |
| U = 0, | |
| X = 0, | |
| ga = | |
| 0, | |
| ja = 0, | |
| la = null, | |
| ka = null, | |
| ra = function() { | |
| ja = ga = X = U = R = J = 0; | |
| ka = la = null | |
| }; | |
| D.delegate("div.carousel-viewport", "touchstart", function() { | |
| b(event.touches[0].target); | |
| J = event.touches.length; | |
| if (J == 1) { | |
| R = event.touches[0].pageX; | |
| U = event.touches[0].pageY | |
| } else ra(event) | |
| }); | |
| D.delegate("div.carousel-viewport", "touchmove", function() { | |
| if (event.touches.length == 1) { | |
| X = event.touches[0].pageX; | |
| ga = event.touches[0].pageY; | |
| event.preventDefault() | |
| } else ra(event) | |
| }); | |
| D.delegate("div.carousel-viewport", "touchend", function(pa) { | |
| if (J == 1 && X != 0) { | |
| ja = | |
| Math.round(Math.sqrt(Math.pow(X - R, 2) + Math.pow(ga - U, 2))); | |
| if (ja >= 70) { | |
| event.preventDefault(); | |
| la = Math.round(Math.atan2(ga - U, R - X) * 180 / Math.PI); | |
| if (la < 0) la = 360 - Math.abs(la); | |
| ka = la <= 45 && la >= 0 ? "left" : la <= 360 && la >= 315 ? "left" : la >= 135 && la <= 225 ? "right" : la > 45 && la < 135 ? "down" : "up"; | |
| pa = b(pa.target).closest(".carousel-container"); | |
| var xa = null, | |
| P = false; | |
| if (ka == "right") { | |
| P = b(pa).find("span.prevFrame").hasClass("disabled"); | |
| xa = "prevFrame" | |
| } else if (ka == "left") { | |
| P = b(pa).find("span.nextFrame").hasClass("disabled"); | |
| xa = "nextFrame" | |
| } | |
| if (ka == | |
| "right" || ka == "left") { | |
| p.options.autoRotate ? p.stopAutoRotate() : p.stopAutoRotate(false); | |
| p.carousel.hasClass("aria-busy") || P || p[xa]() | |
| } | |
| } | |
| } | |
| ra(event) | |
| }) | |
| } | |
| if (t.curTileLength <= M.increment) { | |
| p.prevBtn = p.prevDisabled; | |
| p.nextBtn = p.nextDisabled | |
| } | |
| if (z === 0) p.prevBtn = p.prevDisabled; | |
| p.viewportWidth = H; | |
| if (M.encapsulateControls) { | |
| y.append(u); | |
| u.append(p.prevBtn); | |
| M.pagination && p.buildPagination(u); | |
| u.append(p.nextBtn); | |
| D.append(y); | |
| controlsWidth = p.prevBtn.outerWidth(true) + p.pagination.outerWidth(true) + p.nextBtn.outerWidth(true); | |
| u.css({ | |
| position: "relative", | |
| width: controlsWidth + "px", | |
| left: H / 2 - controlsWidth / 2 + "px" | |
| }) | |
| } else { | |
| D.prepend(p.prevBtn); | |
| M.pagination && p.buildPagination(D); | |
| D.append(p.nextBtn) | |
| } | |
| }, | |
| updateNavigation: function() { | |
| var G, p, t = this.state; | |
| G = t.index; | |
| var z = this.options, | |
| D = G === 0, | |
| M = G + this.options.increment >= t.curTileLength; | |
| G = this.prevBtn !== this.prev; | |
| p = this.nextBtn !== this.next; | |
| if (z.loop) { | |
| D = t.curFrameLength - 2; | |
| t = t.frameIndex; | |
| G = t - 1; | |
| G = G === D ? 0 : G; | |
| t = t > D ? 1 : t === 0 ? D : t; | |
| if (z.pagination) { | |
| this.pagination.find("li.current").remove(); | |
| this.pagination.find("li").find("a").removeClass("selected"); | |
| this.pagination.find("li.j-hidden").removeClass("j-hidden"); | |
| this.paginationLinks.eq(G).parent("li").addClass("j-hidden").after("<li class='current'>current page " + t + " of " + D + "</li>") | |
| } | |
| } else { | |
| if (D) n("prevBtn", "prevDisabled", this); | |
| else G && n("prevBtn", "prev", this); | |
| if (M) n("nextBtn", "nextDisabled", this); | |
| else p && n("nextBtn", "next", this); | |
| if (z.pagination) { | |
| this.paginationLinks.eq(t.prevFrameIndex).parent("li").show(); | |
| this.paginationLinks.eq(t.frameIndex).parent("li").hide(); | |
| this.pagination.find("li.current").remove(); | |
| this.pagination.find("li").find("a").removeClass("selected"); | |
| this.paginationLinks.eq(t.frameIndex).parent("li").after("<li class='current'>current page " + (t.frameIndex + 1) + " of " + t.curFrameLength + "</li>") | |
| } | |
| } | |
| }, | |
| buildPagination: function(G) { | |
| var p, t, z, D = this, | |
| M = D.state; | |
| t = D.options; | |
| z = []; | |
| var B = /\{number\}/g, | |
| m = /\{total\}/, | |
| u = /\{current\}/, | |
| y = " selected", | |
| H = /\{selected\}/, | |
| J = /\{frameText\}/g, | |
| R = this.options.loop, | |
| U = M.frameIndex, | |
| X = q.clone(); | |
| M = M.curFrameLength; | |
| G.append(X); | |
| M = R ? M - 2 : M; | |
| G = 0; | |
| for (var ga = 1; G < M; G++, ga++) { | |
| y = (p = | |
| U === G) ? y : ""; | |
| p = p ? t.frameCurrentText : ""; | |
| frameText = t.frameText.replace(B, ga).replace(m, M); | |
| z.push('<li><a class="carousel-frame{selected}" data-carousel-frame="{number}" href="#" title="{frameText}">{frameText}</a></li>'.replace(B, ga).replace(u, p).replace(H, y).replace(m, M).replace(J, frameText)) | |
| } | |
| this.pagination = X.append(z.join("")); | |
| this.paginationLinks = X.find("a"); | |
| t = this.paginationLinks.get(0); | |
| R ? this.paginationLinks.eq(0).parent("li").addClass("j-hidden").after("<li class='current'>current page 1 of " + | |
| M + "</li>") : this.paginationLinks.eq(0).parent("li").hide().after("<li class='current'>current page 1 of " + M + "</li>"); | |
| setTimeout(function() { | |
| b(d).trigger("updateBuffer.framework") | |
| }, 500); | |
| if (this.options.centerPagination) { | |
| t = t.outerWidth(true); | |
| z = t * M; | |
| X.css({ | |
| width: t * M + "px", | |
| left: D.viewportWidth / 2 - z / 2 + "px" | |
| }) | |
| } | |
| X.delegate(".carousel-frame", "click", function(ja) { | |
| var la = b(this), | |
| ka = la.attr("data-carousel-frame"); | |
| ja.preventDefault(); | |
| D.options.autoRotate ? D.stopAutoRotate() : D.stopAutoRotate(false); | |
| if (D.carousel.hasClass("state-busy") || | |
| la.hasClass("selected")) return false; | |
| R && ka++; | |
| D.jumpToFrame(ka) | |
| }) | |
| }, | |
| jumpToTile: function(G) { | |
| var p = this.state; | |
| G = parseInt(G, 10); | |
| var t = G - 1; | |
| t = t < 0 ? p.curTileLength - increment : t; | |
| if (t === p.index || G > p.curTileLength - p.spacers) return this.carousel; | |
| this.updateState(t, true); | |
| return this.carousel | |
| }, | |
| jumpToFrame: function(G, p) { | |
| var t = this.state; | |
| G = parseInt(G, 10); | |
| var z = this.options.increment, | |
| D = G * z - z; | |
| D = D < 0 ? 0 : D; | |
| if (D === t.index || G > t.curFrameLength) return this.carousel; | |
| this.lazyloadImages(D, D + z); | |
| this.updateState(D, true, p); | |
| return this.carousel | |
| }, | |
| prevFrame: function() { | |
| var G = this.state.index; | |
| if (this.options.incrementMode === "tile") G--; | |
| else G -= this.options.increment; | |
| this.updateState(G, true); | |
| return this.carousel | |
| }, | |
| nextFrame: function() { | |
| var G = this.state.index; | |
| if (this.options.incrementMode === "tile") G++; | |
| else G += this.options.increment; | |
| this.updateState(G, true); | |
| return this.carousel | |
| }, | |
| reset: function() { | |
| var G = this.state.index; | |
| G = this.options; | |
| G = G.loop ? G.increment : 0; | |
| this.updateState(G, true); | |
| return this.carousel | |
| }, | |
| animate: function(G) { | |
| var p = this, | |
| t = p.state, | |
| z = t.index, | |
| D = z, | |
| M = this.options, | |
| B = this.element, | |
| m = M.loop, | |
| u = M.increment, | |
| y = M.preFrameChange, | |
| H = M.postFrameChange, | |
| J = z === 0, | |
| R = z === t.curTileLength - u; | |
| p.carousel.trigger("preFrameChange", [t]); | |
| y && y.call(p, t); | |
| B.addClass("state-busy"); | |
| p.toggleAria(t.tileArr, "remove"); | |
| p.updateNavigation(); | |
| p.animating = true; | |
| p.viewport.stop().animate({ | |
| scrollLeft: t.offset | |
| }, M.speed, M.easing, function() { | |
| if (m) { | |
| if (J || R) | |
| if (p.updateState(z, false).loopReset) p.viewport[0].scrollLeft = t.offset; | |
| if (J) D = t.curTileLength - u * 2; | |
| p.lazyloadImages(D, D + u); | |
| p.lazyloadImages(D - | |
| u, D); | |
| p.lazyloadImages(D + u, D + u * 2) | |
| } else p.lazyLoadTiles || p.lazyloadImages(z, z + u); | |
| p.updateDisplayCount(); | |
| p.updatePaginationCount(); | |
| p.toggleAria(t.tileArr, "add"); | |
| p.toggleAria(t.curFrame, "remove"); | |
| if (G !== false) p.options.autoRotate ? setTimeout(function() { | |
| var U = p.viewport.prev(); | |
| typeof U !== "undefined" && U.attr("id") == "jtoggleLink" && U.show().find("a").attr("tabindex", -1).focus() | |
| }, 1E3) : t.curTile.focus(); | |
| B.removeClass("state-busy"); | |
| p.animating = false | |
| }); | |
| p.carousel.trigger("postFrameChange", [t]); | |
| H && H.call(p, t) | |
| }, | |
| lazyloadImages: function(G, p) { | |
| var t = this.state.tileObj; | |
| if (!this.state.curTileLength % this.options.increment) | |
| if (this.lazyloadCache[G]) return; | |
| for (var z = G; z < p; z++) { | |
| this.lazyloadCache[z] = true; | |
| b("img", t[z]).each(function() { | |
| if (typeof t[z] == "undefined") return false; | |
| if (!this.src) this.src = b(this).attr("original") | |
| }) | |
| } | |
| }, | |
| updateDisplayCount: function() { | |
| var G, p, t = this.state; | |
| G = t.index; | |
| var z = this.options; | |
| p = z.increment; | |
| t = t.curTileLength - t.spacers; | |
| if (z.displayCount) { | |
| if (z.loop) G -= p; | |
| p = G + p > t ? t : G + p; | |
| spanText = G = G + 1; | |
| spanText += | |
| G < p ? "-" + p : G; | |
| this.counter.html(z.counterText.replace("{number}", spanText).replace("{total}", t)) | |
| } | |
| }, | |
| updatePaginationCount: function() { | |
| var G = this.state, | |
| p = this.options, | |
| t = G.curFrameLength; | |
| G = G.frameIndex; | |
| G = G + 1; | |
| G = G === t ? 0 : G; | |
| if (p.paginationCount) { | |
| G = G > t ? 1 : G === 0 ? t : G; | |
| G = "Page " + G; | |
| this.counter.html(p.counterText.replace("{number}", G).replace("{total}", t)) | |
| } | |
| }, | |
| toggleAria: function(G, p, t) { | |
| var z, D = 0, | |
| M = G.length, | |
| B = /\sstate-hidden/, | |
| m = /\sstate-visible/, | |
| u = /carousel-panel-spacer/, | |
| y = p === "add" ? true : false; | |
| t = t ? " " + t : ""; | |
| for (var H = | |
| this.cache("hasAriaInited"); D < M; D++) { | |
| p = G[D]; | |
| z = p.className + t; | |
| if (!u.test(z)) { | |
| z = y ? z.replace(m, " state-hidden") : z.replace(B, " state-visible"); | |
| p.className = z.replace(/^\s/, ""); | |
| if (!H) { | |
| p.className += " state-hidden"; | |
| p.setAttribute(g, "-1") | |
| } | |
| } | |
| } | |
| this.cache("hasAriaInited", true); | |
| this.options.stateChange != null && this.options.stateChange.call(this) | |
| } | |
| }); | |
| b.fn.tileCarousel = function(G) { | |
| if (this.length) return this.each(function() { | |
| var p = b.data(this, "tileCarousel"); | |
| if (p) return p; | |
| b.data(this, "tileCarousel", new b.TileCarousel(this, | |
| G)) | |
| }) | |
| } | |
| })(this, jQuery); | |
| (function() { | |
| $.hideCurtain = function() { | |
| $("#ajax-curtain").remove() | |
| }; | |
| $.fn.extend({ | |
| showCurtain: function(a) { | |
| return this.each(function() { | |
| new $.ShowCurtain(this, a) | |
| }) | |
| } | |
| }); | |
| $.ShowCurtain = function(a, b) { | |
| this.options = $.extend({}, { | |
| curtainBg: "#fff", | |
| opacity: 0.6, | |
| delay: 0, | |
| loadingIndicator: Target.globals.loadingIndicatorImage, | |
| curtainMarkup: '<div id="ajax-curtain"></div>' | |
| }, b || {}); | |
| this.element = $(a); | |
| var d = $("body"), | |
| f = {}; | |
| f = this.element.is("body") ? true : false; | |
| var g = $(this.options.curtainMarkup), | |
| j = f ? $(document) : this.element; | |
| $(window).height(); | |
| var l = $.browser.msie ? $(window).width() : $(document).width(), | |
| o = $(window).height(); | |
| j.width(); | |
| j.height(); | |
| var v = $('<img src="' + this.options.loadingIndicator + '" />'); | |
| f && v.css({ | |
| top: "50%", | |
| right: "50%", | |
| position: "fixed" | |
| }); | |
| g.append(v); | |
| this.options.posCurtain = typeof this.options.posCurtain !== "undefined" ? this.options.posCurtain : false; | |
| this.options.posCurtainFocus = typeof this.options.posCurtainFocus !== "undefined" ? this.options.posCurtainFocus : true; | |
| f = this.options.posCurtain ? { | |
| width: "50px", | |
| height: "50px", | |
| top: "50%", | |
| left: "50%", | |
| background: this.options.curtainBg, | |
| position: "relative", | |
| display: "block" | |
| } : { | |
| width: f ? l : j.outerWidth(), | |
| height: f ? o : j.outerHeight(), | |
| top: f ? 0 : j.offset().top + "px", | |
| left: f ? 0 : j.offset().left + "px", | |
| opacity: this.options.opacity, | |
| background: this.options.curtainBg, | |
| position: "fixed", | |
| display: "none" | |
| }; | |
| g.css(f); | |
| $("#ajax-curtain").remove(); | |
| if (this.options.posCurtain) { | |
| g.append('<span class="screen-reader-only"> Loading Content. Please wait ... </span>'); | |
| g.attr("tabindex", -1); | |
| this.element.html(g); | |
| this.options.posCurtainFocus && | |
| setTimeout(function() { | |
| $(g).focus() | |
| }, 100) | |
| } else d.append(g); | |
| setTimeout(function() { | |
| g.show() | |
| }, this.options.delay) | |
| } | |
| })(); | |
| $.extend($.ajaxSettings, { | |
| curtain: {} | |
| }); | |
| $(document).ready(function() { | |
| $(document).bind("ajaxSend", function(a, b, d) { | |
| a = d.curtain; | |
| var f; | |
| if (a.selector === undefined) f = $("body"); | |
| else if (typeof(a.selector === "string")) f = $(a.selector); | |
| else if (typeof(a.selector === "object")) f = a.selector; | |
| a !== false && f.showCurtain(a) | |
| }); | |
| $(document).bind("ajaxStop", function() { | |
| $.hideCurtain() | |
| }); | |
| $(document).bind("ajaxComplete", function() { | |
| $.hideCurtain() | |
| }) | |
| }); | |
| Cart = { | |
| currentform: "", | |
| setForm: function(a) { | |
| this.currentform = $(a) | |
| }, | |
| getForm: function() { | |
| return this.currentform | |
| }, | |
| target: null, | |
| add: function(a, b, d) { | |
| if (typeof d == "undefined" && typeof $(a).attr("productsubmitinfojson") != "undefined") d = $(a).find(".addtoCart"); | |
| this.currentform = $(a); | |
| a = $(a); | |
| var f = ""; | |
| f = ""; | |
| var g = a.data("validator"); | |
| g = typeof d != "undefined" ? d : g ? g.submitButton : ""; | |
| d = a.attr("action"); | |
| $("#path").val(); | |
| b = typeof b != "undefined" ? b : false; | |
| var j = typeof a.attr("productSubmitInfoJSON") != "undefined" ? $.parseJSON(a.attr("productSubmitInfoJSON")) : | |
| false, | |
| l = typeof a.find("input[name='catEntryId']") != "undefined" ? a.find("input[name='catEntryId']") : j.catEntryId; | |
| f = typeof a.find("input[name='fromPLP']") != "undefined" ? a.find("input[name='fromPLP']") : j.fromPLP; | |
| var o = typeof a.find("input[name='childCatEntryId']") != "undefined" ? a.find("input[name='childCatEntryId']") : j.childCatEntryId, | |
| v = a.attr("id") == "quickInfo" ? true : false, | |
| A = a.attr("id").indexOf("fiatsAddToCartFrm") == 0; | |
| specialVal = a.find("input:hidden[name='isSpecialPrice']").val(); | |
| $(".error,#FormErrors_AddToCart").html(""); | |
| $(".errorBlock,.error-summary,#overlay-loading-curtain").hide(); | |
| if (j) { | |
| if (f == "true") | |
| if (o != "") j.cidHidden = o | |
| } else f.length && f.val() === "true" && o.length && o.val() !== "" && l.val(o.val()); | |
| f = a.serialize(); | |
| f += "&fromScript=true"; | |
| if (j.fromPLP) { | |
| o = a.find(".babyDuration option:selected").val(); | |
| if (o != "" && typeof o != "undefined") { | |
| o = o.split("-"); | |
| f += "&fulfillmentInterval=" + o[0] + "&fulfillmentIntervalUOM=" + o[1] | |
| } | |
| if (a.find(".subscribeme").is(":checked")) f += "&recOrd=Y&recOrdStDt=" + a.find(".calendar").val() + "&recOrdfreq=" + a.find(".babyDuration option:selected").html() | |
| } | |
| if (j) f += | |
| "&" + decodeURIComponent($.param(j)); | |
| currentTagTokens = f.split("&"); | |
| existingData = ""; | |
| f = 0; | |
| for (j = currentTagTokens.length; f < j; f++) | |
| if (currentTagTokens[f].indexOf("swatchesList_") == -1) existingData = existingData + currentTagTokens[f] + "&"; | |
| if (typeof g !== "undefined" && g !== "") Cart.target = g; | |
| f = $("#formParameters").val(); | |
| if (typeof f !== "undefined") { | |
| g = $(a).attr("esrbResponse").value; | |
| existingData = ""; | |
| f = f; | |
| currentTagTokens = f.split("&"); | |
| f = 0; | |
| for (j = currentTagTokens.length; f < j; f++) | |
| if (currentTagTokens[f].indexOf("esrbResponse") == | |
| -1) existingData = existingData + currentTagTokens[f] + "&"; | |
| existingData = existingData + "esrbResponse=" + g + "&ageRestrictionSelection=" + $(a).attr("ageRestrictionSelection").value | |
| } | |
| var C = function(K) { | |
| var Q = false, | |
| n = typeof K.overlayId !== "undefined" ? K.overlayId : ""; | |
| if (n == "modal-check-low-price") Q = "force"; | |
| else if (n == "esrbOverlay") Q = "force"; | |
| K.grRecommandation == "Y" && Cart.grRecommandation(K); | |
| $.hideCurtain(); | |
| if (typeof K.recurringOrder != "undefined" && null != K.recurringOrder && K.recurringOrder == "true") window.location.href = K.checkoutURL; | |
| else { | |
| Q = typeof FiatsApp !== "undefined" && FiatsApp.isModalVisible() === true ? { | |
| contentOverride: K.responseHtml, | |
| overlayId: K.overlayId, | |
| template: K.template, | |
| mode: Q, | |
| target: FiatsApp.guestSelectedButton !== undefined ? FiatsApp.guestSelectedButton : null | |
| } : { | |
| contentOverride: K.responseHtml, | |
| overlayId: K.overlayId, | |
| template: K.template, | |
| mode: Q | |
| }; | |
| typeof FiatsApp !== "undefined" && FiatsApp.closeOverlay(); | |
| $.overlay.load(Q); | |
| I("", K.productId) | |
| } | |
| }, | |
| q = function(K) { | |
| var Q = typeof K.esrbResponse !== "undefined" && K.esrbResponse != null ? K.esrbResponse : | |
| false, | |
| n = typeof K.errorMessageKey !== "undefined" ? K.errorMessageKey : ""; | |
| if (K && K.errorMessage == "") { | |
| if (Q) | |
| if (Q && Q != "") { | |
| var G = Q.split("_"); | |
| if (G[0] == "YES") { | |
| $("input[name='esrbResponse'][type='hidden']").val(G[0] + "_" + G[1] + "_" + G[2] + "_CONFPAGE"); | |
| Target.controller.reviewed.cookie.create("esrbResponse", "YES_" + G[1] + "_" + G[2] + "_CONFPAGE; path=/", 365) | |
| } | |
| } | |
| C(K) | |
| } else if (K) | |
| if (a.attr("id") == "buytogether") $("<div class='errorBlock'>" + K.errorMessage + "</div>").insertBefore(".buytogether-button"); | |
| else if (n == "ESRBRATING_MATURE_TEXT") C(K); | |
| else if (n == "ESRBRATING_FAILURE") C(K); | |
| else { | |
| var p = K.productId; | |
| Q = K.quantity; | |
| var t = K.errorMessageKey, | |
| z = K.requestProperties.countVal, | |
| D = K.recurringOrder, | |
| M = K.fromMyAcc, | |
| B = K.pdpURL; | |
| n = K.isAddToCartRecommendation; | |
| if (typeof D != "undefined" && null != D && D == "Y" && null != M && M == "Y") window.location.href = B; | |
| if (t == "INVALID_PARAMETER_VALUE") K.errorMessage = "Please enter a valid number"; | |
| if (t.indexOf("SHOP_INVENTORY_FIRST_ITEM_FOR_STORE") !== -1 || t.indexOf("SHOP_INVENTORY_SECOND_ITEM_FOR_STORE") !== -1 || t.indexOf("SHOP_INVENTORY_EQUAL_FOR_STORE") !== | |
| -1 || t.indexOf("SHOP_MAX_PURCHASE_LIMIT_FIRST_ITEM") != -1 || t == "ERR_MAX_LINE_QUANTITY" || t == "ERR_AVL_INVENTORY" || t == "SHOP_MAX_PURCHASE_LIMIT_SECOND_ITEM" || t == "SHOP_MAX_PURCHASE_LIMIT_EQUAL" || t == "SHOP_INVENTORY_FIRST_ITEM" || t == "SHOP_INVENTORY_SECOND_ITEM" || t == "SHOP_INVENTORY_EQUAL") { | |
| G = K.quantityUpdate; | |
| A || $("#quantity_" + Q + ",#quantity_" + p + ",#attr-quantity_" + p + ",#attr-quantity_" + Q + ",#attr_quantity_" + Q).val(G); | |
| if (z != null) { | |
| p = "" + z; | |
| t = "" + p.substring(0, p.indexOf("-")); | |
| Q == t && $("#attr_quantity_" + p.substring(p.indexOf("-") + | |
| 1)).val(G) | |
| } | |
| } | |
| if (typeof n != "undefined" && null != n && n == "true") | |
| if (K.overlayId == "addToRegistry") { | |
| $.hideCurtain(); | |
| $.overlay.load({ | |
| contentOverride: K.overlayHtml, | |
| overlayId: K.overlayId, | |
| template: "small", | |
| width: K.width | |
| }) | |
| } else { | |
| G = K.errorMessage !== "" ? "<div class='errorBlock'>" + K.errorMessage + "</div>" : ""; | |
| K = $("#frmAddToCartother_" + K.itemLineNum); | |
| typeof K !== "undefined" && K.find("#FormErrors_AddToCart").html(G) | |
| } else I(K.errorMessage, K.quantity, K.productId, K.isSpecialPriceOverlay, v, G); | |
| $("#ajax-curtain").hide() | |
| } | |
| }; | |
| $.ajaxSetup({ | |
| traditional: true, | |
| cache: false | |
| }); | |
| var I = function(K, Q, n, G, p, t) { | |
| var z = "", | |
| D = $("#FormErrors_" + Q); | |
| z = D.html(); | |
| z = K !== "" ? "<div class='errorBlock'>" + K + "</div>" : ""; | |
| $(".addtoCartDisabled").removeAttr("disabled"); | |
| if (specialVal == "true") $("#FormErrors_seelowprice_" + l.val()).append(z); | |
| else { | |
| D.html(z); | |
| K = $("#FormErrors_AddToCart"); | |
| if (typeof K !== "undefined" && !K.hasClass("giftCardsError")) | |
| if (G == "TRUE") $("#FormErrors_SpecialItemPrice").append(z); | |
| else if (p) $("#FormErrors_QuickInfoAddToCart").append(z); | |
| else if (A) { | |
| $("#findStore").append(z); | |
| $(".fiatSearch,.findStore.input-step").removeClass("fiatHide"); | |
| $(".findStoreResult,#searchResults").addClass("fiatHide"); | |
| $("#searchResults, #change-location").hide(); | |
| $("#search-location, #pickUpInStoreQty").show(); | |
| $(".qtyEdit").val(t); | |
| $("#replaceEdit").addClass("hidden"); | |
| $("#pickUpInStoreQty").removeClass("hidden"); | |
| $("body").delegate(".qtyEdit ", "keyup", function() { | |
| $(".qtyhidden").val($(this).val()) | |
| }); | |
| $("#FiatsFormErrors").length && $("#FiatsFormErrors").html(z); | |
| $("#FiatsFormErrors").length && $(".pickuphere, .shiptostore").focus() | |
| } else { | |
| var M = | |
| $("#FormErrors_AddToCart"); | |
| M.append(z); | |
| if (M.html() && M.html().length !== 0) { | |
| $(".exceptionMsg").css("display", "block"); | |
| setTimeout(function() { | |
| $(document).trigger("updateBuffer.framework"); | |
| M.focus().attr({ | |
| role: "alert", | |
| tabindex: "-1" | |
| }) | |
| }, 1E3) | |
| } | |
| } | |
| } | |
| if (Q != n && !A) { | |
| specialVal !== "true" && $("#FormErrors_" + n).append(z); | |
| if (D !== undefined) { | |
| t = D.siblings('input[name^="quantity_"]'); | |
| if (t !== undefined && t.length) { | |
| Q = t.attr("name").split("_")[1]; | |
| $("#collection").length && t.val() === "0" && $("#catEntryId_" + Q).remove() | |
| } | |
| } | |
| } | |
| }; | |
| b ? Target.controller.grda.HandleGRDAResponse(a, | |
| function(K) { | |
| q(K) | |
| }, false, existingData) : $.ajax({ | |
| url: d, | |
| data: existingData, | |
| dataType: "json", | |
| type: "POST", | |
| success: function(K) { | |
| q(K) | |
| } | |
| }) | |
| }, | |
| link: function(a) { | |
| if (typeof $(a).attr("productSubmitInfoJSON") != "undefined") { | |
| productSubmitInfoJSON = $.parseJSON($(a).attr("productSubmitInfoJSON")); | |
| productSubmitInfoJSON.isSpecialPrice = "TRUE"; | |
| $(a).attr("productSubmitInfoJSON", JSON.stringify(productSubmitInfoJSON)); | |
| Cart.add($(a)); | |
| productSubmitInfoJSON.isSpecialPrice = ""; | |
| $(a).attr("productSubmitInfoJSON", JSON.stringify(productSubmitInfoJSON)) | |
| } else { | |
| var b = | |
| $(a).find('input[name="isSpecialPrice"]'); | |
| b.val("TRUE"); | |
| Cart.add($(a)); | |
| b.val("") | |
| } | |
| }, | |
| addToCartTagging: function(a, b, d) { | |
| var f = a.attr("id") === "quickInfo" ? true : false, | |
| g = a.find('input[name="productId"]').val(); | |
| a.find('input[name="catEntryId"]').val(); | |
| var j = $("#quantity_" + g).val(); | |
| if (f === true) { | |
| b = $(a).find('input[name="isSpecialPrice"]').val(); | |
| d = $("#omnitureQuickInfo").attr("omniture").split("-"); | |
| j = a.find('input[name="quantity"]').val(); | |
| if (b && b == "TRUE") try { | |
| s_quickInfoInteraction("pqi: see low price") | |
| } catch (l) { | |
| console.log(l.message) | |
| } else try { | |
| s_quickInfoInteraction("pqi: add to cart") | |
| } catch (o) { | |
| console.log(o.message) | |
| } | |
| b = | |
| d[0]; | |
| g = d[1]; | |
| a = d[2] === "" ? $("#addToCart").parents(a).find("p.module-title.salePrice").text() : d[2]; | |
| d = d[3]; | |
| f = $.trim(a).replace(/[$]/, "") | |
| } else { | |
| a = $("#price_" + g).text(); | |
| f = a.split("$")[1] | |
| } | |
| if (a) { | |
| a = $.trim(a) !== "" ? parseFloat(f) * parseFloat(j) : ""; | |
| try { | |
| s_cartAdd(g, a.toString(), j, b, d) | |
| } catch (v) { | |
| console.log(v.message) | |
| } | |
| } | |
| }, | |
| createQtyCookie: function(a, b) { | |
| var d = Target.controller.header.cookie.read("cartQty"), | |
| f, g; | |
| if (typeof a === "string" && a != null) f = a.split("|"); | |
| try { | |
| if (d != null) g = d.split("|"); | |
| else if (d == null && (a == "" || a == null || | |
| typeof a == "undefined")) a = "0|0.0" | |
| } catch (j) {} | |
| f = null != g && typeof g[0] !== "undefined" && typeof f !== "undefined" && g[0] != f[0]; | |
| if (d == null || f) { | |
| Target.controller.header.cookie.erase("cartQty"); | |
| Target.controller.header.cookie.create("cartQty", a, 365, b) | |
| } | |
| }, | |
| grRecommandation: function(a) { | |
| d = a.grRecomUrl; | |
| a = window.location.href.split("?")[1]; | |
| var b = "/gift-registry/backToRegistry?registryId=" + $("#registry_Id").val(); | |
| Target.controller.header.cookie.create("BacktoRegistry", b, Target.globals.hostName); | |
| b = Target.controller.header.cookie.read("esrbResponse"); | |
| b = b != "undefined" && b != "" && b != null ? b : ""; | |
| var d = d + "?" + a + "&pageName=pdp&esrbResponse=" + b; | |
| $.ajax({ | |
| type: "get", | |
| url: d, | |
| curtain: true, | |
| success: function(f) { | |
| f = $.parseJSON(f); | |
| var g = $("#gr-ajax-curtain"); | |
| typeof g != "undefined" && g.hide(); | |
| $("#recommandation").append(f.recommandationHtml) | |
| }, | |
| error: function() { | |
| console.log("Error with ajax") | |
| } | |
| }) | |
| } | |
| }; | |
| $(document).ready(function() { | |
| var a = $("body"); | |
| a.delegate("#esrbOverlay", "overlay-before-show", function() { | |
| $("#OrderItemAddForm").validate({ | |
| submitHandler: function(b) { | |
| Cart.add(b) | |
| } | |
| }) | |
| }); | |
| a.delegate("#checkoutCall", "click", function() { | |
| try { | |
| s_beginCheckout($("#partNums").val()) | |
| } catch (b) { | |
| console.log(b.message) | |
| } | |
| $(window).attr("location", $("#checkoutLink").val()) | |
| }); | |
| a.delegate("#esrbOverlay", "overlay-show", function() { | |
| var b = $("#OrderItemAddForm"), | |
| d = b.find("input[name='ageRestrictionSelection']").val(), | |
| f = b.find("input[name='ageRestrictioPrvSelection']").val(); | |
| $(".button.no").click(function() { | |
| b.attr("esrbResponse").value = "NO_" + d + "_" + f + "_ESRBPAGE" | |
| }); | |
| $(".button.yes").click(function() { | |
| $("input[name='esrbResponse'][type='hidden']").val("YES_" + d + "_" + d + "_ESRBPAGE"); | |
| Target.controller.reviewed.cookie.create("esrbResponse", "YES_" + d + "_" + d + "_ESRBPAGE; path=/", 365) | |
| }) | |
| }); | |
| a.delegate(".qtyUpdate", "click", function(b) { | |
| b.preventDefault(); | |
| b = $(this).siblings(".qtynumber"); | |
| var d = $("#servicePrice"), | |
| f = parseInt(b.val()), | |
| g = $(this).hasClass("upArrow") ? f + 1 : f - 1; | |
| f = parseFloat(d.text().replace("$", | |
| "").replace(",", "")) / f * g; | |
| f = "$ " + f.toFixed(2).replace(/(\d)(?=(\d{3})+\.)/g, "$1,"); | |
| $(".serviceplansec").find(".error-message").remove(); | |
| if (g != 0) { | |
| if (g > $(".productInfoUnit").find(".qty").text()) { | |
| $(".serviceplansec").find(".cartCol4").append("<p class='error-message' role='alert' aria-live='rude'>You may purchase only one plan per covered item</p>"); | |
| return false | |
| } | |
| } else { | |
| $(".serviceplansec").append("<p class='error-message screen-reader-only' role='alert' aria-live='rude'>You can't decrease less than 1 quantity.</p>"); | |
| return false | |
| } | |
| parseInt(g) > 1 ? $(".price .eachprice").show() : $(".price .eachprice").hide(); | |
| b.val(g).focus(); | |
| d.text(f) | |
| }); | |
| a.delegate("#addtocart", "overlay-show", function() { | |
| $("body").delegate("#sevicePlanAdd", "click", function(u) { | |
| u.preventDefault(); | |
| u = $("#sevicePlanAddForm"); | |
| var y = $("#addtocart"); | |
| $(this).hasClass("state-disabled") || $.ajax({ | |
| url: u.attr("action"), | |
| data: u.serialize(), | |
| type: "post", | |
| dataType: "json", | |
| success: function(J) { | |
| y.find(".col-right").remove(); | |
| y.find("#sevicePlanAddForm").remove(); | |
| $("#crossSell-atc").before(J.summaryJsp); | |
| $("#addtocart").attr("tabindex", -1).focus() | |
| }, | |
| error: function() { | |
| console.log("Error with ajax") | |
| } | |
| }); | |
| try { | |
| s_clickInteraction("Checkout: Add to Cart layer: Add ESP") | |
| } catch (H) {} | |
| }); | |
| rr_onload_called = true; | |
| if (typeof gomez !== "undefined") try { | |
| gomez.endInterval("Add to Cart") | |
| } catch (b) {} | |
| if ($(".j_tmCokie").length > 0) try { | |
| var d = $("#preOrder").val(), | |
| f = $("#fullFillMethodForOmniture").val(), | |
| g = s.prop1, | |
| j = $("#priceForOmniture").val(), | |
| l = $("#quantityForOmniture").val(), | |
| o = $("#partNumbersForOmniture").val(), | |
| v = s.split(o, ":"); | |
| if (d == | |
| "true") d = true; | |
| f = typeof f != "undefined" && f != "" ? "flexible" : "standard"; | |
| if (g == "product details") g = "product detail"; | |
| else if (g == "dynamic landing page") g = "dlp"; | |
| s.linkTrackVars = "events,products,eVar35"; | |
| s.linkTrackEvents = "scAdd,scOpen,event34,event35,event36,event18"; | |
| s.events = "scAdd,scOpen,event34,event35,event36,event18"; | |
| s.products = ""; | |
| j = s.repl(j, "$", ""); | |
| if (g) s.eVar35 = g; | |
| if (j && l) | |
| for (var A = s.split(j, ":"), C = s.split(l, ":"), q = 0, I = 0, K = v.length; I < K; I++) { | |
| if (q > 0) s.products = A[I] && C[I] ? d == true ? s.products + ",;" + v[I] + ";;;event34=" + | |
| A[I] + "|event35=" + C[I] + "|event18=1;eVar74=" + f : s.products + ",;" + v[I] + ";;;event34=" + A[I] + "|event35=" + C[I] + ";eVar74=" + f : d == true ? s.products + ",;" + v[I] + ";;;event18=1;eVar74=" + f : s.products + ",;" + v[I] + ";eVar74=" + f; | |
| else { | |
| s.products = A[I] && C[I] ? d == true ? ";" + v[I] + ";;;event34=" + A[I] + "|event35=" + C[I] + "|event18=1;eVar74=" + f : ";" + v[I] + ";;;event34=" + A[I] + "|event35=" + C[I] + ";eVar74=" + f : d == true ? ";" + v[I] + ";;;event18=1;eVar74=" + f : ";" + v[I] + ";eVar74=" + f; | |
| q = 1 | |
| } | |
| if (s.pageName.indexOf("virtual") != -1) s.products += "|eVar48=" + jsonParamMap.partNumber | |
| } else { | |
| I = | |
| 0; | |
| for (K = v.length; I < K; I++) { | |
| if (q > 0) s.products = d == true ? s.products + ",;" + v[I] + ";;;event18=1;eVar74=" + f : s.products + ",;" + v[I] + ";eVar74=" + f; | |
| else { | |
| s.products = d == true ? ";" + v[I] + ";;;event18=1;eVar74=" + f : ";" + v[I] + ";eVar74=" + f; | |
| q = 1 | |
| } | |
| if (s.pageName.indexOf("virtual") != -1) s.products += "|eVar48=" + jsonParamMap.partNumber | |
| } | |
| } | |
| s.prop2 = s.prop21; | |
| var Q = s.split(s.prop2, ":"), | |
| n = s.pageName, | |
| G = s.prop9, | |
| p = s.eVar35, | |
| t = s.prop2, | |
| z = s.channel; | |
| s.prop1 = Q[0]; | |
| if (n.indexOf("product details") != -1) { | |
| n.replace("product details", "product detail"); | |
| s.pageName = | |
| n | |
| } | |
| if (n.indexOf("search") != -1 || G.indexOf("category") != -1) s.eVar35 = "product listing"; | |
| if (p == "quick info") { | |
| var D = window.location.href; | |
| s.eVar35 = D.indexOf("weeklyad") != -1 ? "weekly ads" : D.indexOf("dailydeals") != -1 ? "daily deals" : D.indexOf("checkout_cartview") != -1 ? "cart cross sell" : D.indexOf("baby.catalogs") != -1 ? "baby catalog" : D.indexOf("wedding.catalogs") != -1 ? "wedding catalog" : "quick info"; | |
| s.pageName = s.prop3 | |
| } | |
| if (p == "registry") s.eVar35 = s.prop1; | |
| if (t.indexOf("collections") != -1) s.eVar35 = "product collection pages"; | |
| if (n.indexOf("virtual") != -1) s.eVar35 = "virtual bundle"; | |
| if (s.eVar32 == "daily deals") s.eVar35 = "daily deals"; | |
| if (s.eVar32 == "dlp" || s.eVar32 == "DLP") s.eVar35 = "dlp quick info"; | |
| if (n.indexOf("product details") == -1) { | |
| s.prop1 = s.prop9 = "cart overlay"; | |
| s.prop2 = s.prop3 = pid = z + ": cart add"; | |
| s.prop21 = s.prop22 = s.eVar29 = s.eVar5 = "" | |
| } | |
| if (n.indexOf("thematic") == -1) s.pageName = s.prop3; | |
| var M = s.t(); | |
| M && document.write(M); | |
| s.products = s.events = s.eVar35 = "" | |
| } catch (B) {} else try { | |
| s.manageVars("clearVars"); | |
| s.pageName = "errors:spa add to cart"; | |
| s.channel = "errors"; | |
| s.prop2 = "errors: spa add to cart"; | |
| s.prop3 = "errors: spa add to cart"; | |
| s.prop1 = "errors: spa add to cart"; | |
| s.prop9 = "akamai error"; | |
| s.prop24 = "akamai errors"; | |
| s.t() | |
| } catch (m) {} | |
| $("#multiItemList").tileCarousel(); | |
| $("#ModalCarousel").delegate("a.prevFrame,a.nextFrame", "click", function() { | |
| setTimeout(function() { | |
| var u = $("#multiItemList").find(".state-visible .retPol").val(); | |
| $(".col-right").find(".upadateRP").html(u) | |
| }, 1E3) | |
| }); | |
| $(".tipnoteTrigger").tipNote() | |
| }); | |
| a.delegate("#modal-check-low-price", "overlay-show", | |
| function() { | |
| var b = $("#removeCartForm"), | |
| d = b.attr("action"), | |
| f = parseInt(b.find("#quantity").val()); | |
| Target.controller.globalOverlay.setAxbFocusElem($("#see-low-price a")); | |
| $("#removeFromCart").click(function(g) { | |
| $.miniCart.update(f); | |
| Cart.createQtyCookie(f); | |
| g.preventDefault(); | |
| g = b.serialize(); | |
| $.ajax({ | |
| url: d, | |
| data: g, | |
| dataType: "json", | |
| type: "POST", | |
| success: function() { | |
| $.hideCurtain(); | |
| var j = $("p#see-low-price"); | |
| typeof j != "undefined" && j.find("a").focus() | |
| } | |
| }) | |
| }); | |
| $("#keepInCart").click(function(g) { | |
| console.log("#keepInCart"); | |
| g.preventDefault(); | |
| var j = $("#keepInCartForm"); | |
| g = j.attr("action"); | |
| j = j.serialize(); | |
| $.ajax({ | |
| xhrFields: { | |
| withCredentials: true | |
| }, | |
| url: g, | |
| data: j, | |
| dataType: "json", | |
| type: "POST", | |
| success: function(l) { | |
| $.overlay.load({ | |
| contentOverride: l.responseHtml, | |
| overlayId: l.overlayId, | |
| template: l.template | |
| }); | |
| l.grRecommandation == "Y" && Cart.grRecommandation(l) | |
| } | |
| }) | |
| }) | |
| }); | |
| a.bind("overlay-hide", function(b, d) { | |
| $(".addtoCartDisabled").removeAttr("disabled"); | |
| if (d === "#esrbOverlay" || d === "#addtocart" || d === "#QuickView") { | |
| $.hideCurtain(); | |
| Cart.target && | |
| $(Cart.target).focus() | |
| } | |
| }); | |
| a.delegate("#checkOutLink", "click", function(b) { | |
| var d = $(this); | |
| b.preventDefault(); | |
| try { | |
| s_beginCheckout(d.attr("omniture")) | |
| } catch (f) { | |
| console.log(f.message) | |
| } | |
| window.location.href = d.attr("href") | |
| }); | |
| $("body").delegate("#cartCheckout", "click", function(b) { | |
| b.preventDefault(); | |
| if ($("#promoCode").length > 0 && $("#promoCode").val() != "") { | |
| $("#fromCartContinue").val("true"); | |
| $("#redeem-code").submit(); | |
| $("#fromCartContinue").val("false") | |
| } else setTimeout(function() { | |
| window.location.href = d | |
| }, 1E3); | |
| b = | |
| $("#inpCartCheckout").val(); | |
| var d = $("#inpCartCheckoutUrl").val(); | |
| try { | |
| s_beginCheckout(b) | |
| } catch (f) { | |
| console.log(f.message) | |
| } | |
| }); | |
| a.delegate(".submitMAPform", "click", function() { | |
| var b = $(this).attr("catalog"); | |
| if (b != "") { | |
| b = $("#OrderItemAddForm_" + b); | |
| Cart.link(b) | |
| } | |
| }); | |
| a.delegate(".regSeeLowPrice", "click", function(b) { | |
| b.preventDefault(); | |
| b = $(".regSeeLowPrice").attr("id"); | |
| b = $("#frmAddToCartother_" + b); | |
| var d = $(b).find('input[name="isSpecialPrice"]'); | |
| d.val("true"); | |
| Cart.add($(b)); | |
| d.val("false") | |
| }); | |
| a = Target.controller.header.cookie.read("axbFocusCookie"); | |
| if (a != null) { | |
| a = $("#inCartList").find(".j_reward#" + a).next("p"); | |
| $(document).trigger("updateBuffer.framework"); | |
| a.attr("tabindex", -1).focus(); | |
| Target.controller.header.cookie.erase("axbFocusCookie") | |
| } | |
| $("#writeReview").click(function() { | |
| var b = $("#tcinReviewId").val(); | |
| if (typeof b != "undefined") try { | |
| s_clickInteraction("manage orders: write review", b) | |
| } catch (d) { | |
| console.log(d.message) | |
| } | |
| }); | |
| $(".shippingmethod").click(function() { | |
| $(".needFaster").focus() | |
| }) | |
| }); | |
| Target.register("controller", "globalOverlay", { | |
| utils: ["defaultFieldValue"], | |
| header: null, | |
| _isPortable: false, | |
| iviewer: {}, | |
| isSingleVariation: false, | |
| _hashMap: {}, | |
| _eshashMap: {}, | |
| _eshashStoreMap: {}, | |
| isESInProgress: false, | |
| init: function() { | |
| this.header = Target.controller.header; | |
| this.cacheController = Target.controller.PDPCache; | |
| this.QuickView(); | |
| this.createEventHandlers(); | |
| this.mediaPlayer(); | |
| this.registryBackUrl(); | |
| this.gmRegistryBackUrl(); | |
| this.updateShareUrl(); | |
| this._quickInfoShipPromoMsg = "" | |
| }, | |
| createEventHandlers: function() { | |
| function a() { | |
| var p = | |
| "single", | |
| t = $(".singleItem .swatches"), | |
| z = $(".singleItem select[name=attr-sizeSelection]"); | |
| if (t.length && z.length) p = "multiple"; | |
| return p | |
| } | |
| function b(p, t, z) { | |
| if (t == "show" && z.inventory != undefined) | |
| if (z.inventory == "0") { | |
| p.removeClass("disabled"); | |
| p.find(".buttonText").html("add free gift to cart") | |
| } else if (z.inventory == "6") { | |
| p.addClass("disabled"); | |
| p.find(".buttonText").html("add free gift to cart out of stock disabled") | |
| } else { | |
| p.addClass("disabled"); | |
| p.find(".buttonText").html("add free gift to cart disabled") | |
| } else { | |
| p.addClass("disabled"); | |
| p.find(".buttonText").html("add free gift to cart disabled") | |
| } | |
| } | |
| function d(p, t, z) { | |
| var D = v(t, z), | |
| M = p.find("option:selected").val(); | |
| if (D.items != undefined && D.items.length > 0) { | |
| var B = '<option value="">Make a selection</option>'; | |
| $.each(D.items, function(m, u) { | |
| var y = "" + u[1]; | |
| y = y.replace(/-quot-/g, '"'); | |
| var H = ""; | |
| if (M !== "" && M == u[1]) { | |
| H = "selected=selected"; | |
| catid = D.catid[m] | |
| } | |
| B += "<option catid='" + D.catid[m] + "' value='" + u[1] + "' " + H + ">" + y + "</option>" | |
| }); | |
| p.html(B) | |
| } | |
| } | |
| function f(p, t) { | |
| if ($.isEmptyObject(t)) return false; | |
| var z = | |
| p.parents(".singleItem").find(".number"), | |
| D = p.parents(".singleItem").find(".fESOleftAlign img:eq(0)"), | |
| M = p.parents(".singleItem").find("#fgPartNumber"); | |
| z.html('<span class="screen-reader-only">sale price </span>' + t.price + "<span>value</span> "); | |
| D.attr("src", t.image); | |
| M.val(t.partNumber) | |
| } | |
| function g(p, t) { | |
| if (p.length) { | |
| var z = false, | |
| D = ""; | |
| t == "add" && $.each(p, function(M, B) { | |
| if (B.status == "out") { | |
| $(B.element).parents("li").find(".button").attr("disabled", true); | |
| z = $(B.element).parents("li").find(".button").hasClass("selectButtonFront") ? | |
| true : false; | |
| if (!z) { | |
| D = $(B.element).parents("li").find(".button .buttonText"); | |
| D.text(D.text().replace(/Disabled/g, " ") + " Disabled") | |
| } | |
| } | |
| }); | |
| t == "remove" && $.each(p, function(M, B) { | |
| if (B.status == "out") { | |
| $(B.element).parents("li").find(".button").removeAttr("disabled"); | |
| z = $(B.element).parents("li").find(".button").hasClass("selectButtonFront") ? true : false; | |
| if (!z) { | |
| D = $(B.element).parents("li").find(".button .buttonText"); | |
| D.text(D.text().replace(/Disabled/g, " ")) | |
| } | |
| } | |
| }) | |
| } | |
| } | |
| function j() { | |
| var p = [], | |
| t = $("#freeGiftSpecialOffers .front_tile"); | |
| $.each(t, function(z) { | |
| var D = $(this), | |
| M = {}; | |
| M.place = z; | |
| M.id = D.parents("li").attr("data-parentid"); | |
| M.element = D; | |
| M.status = "out"; | |
| if (D.find(".button").hasClass("free_gift_item_selected")) M.status = "in"; | |
| p.push(M) | |
| }); | |
| return p | |
| } | |
| function l() { | |
| var p = $("#freeGiftCounter").val(), | |
| t = $(".decl_get_gift_cont"), | |
| z = Target.controller.globalOverlay.getSelectedFreeGiftItems(); | |
| z = C(z); | |
| var D = parseInt(z, 10); | |
| if (parseInt(z, 10) >= 1) t.find(".notify").length && D > 0 && t.find(".notify").show().find(".counter").text(D); | |
| else t.find(".notify").length && | |
| t.find(".notify").hide(); | |
| if (parseInt(z, 10) >= parseInt(p, 10)) return "stopthem"; | |
| return "proceed" | |
| } | |
| function o(p, t) { | |
| var z = Target.globals.refreshGiftItems, | |
| D = {}; | |
| $.each(z, function(M) { | |
| if (z[M].Attributes.parentCatentry_id == p) | |
| if (z[M].catentry_id == t) { | |
| D.title = z[M].Attributes.itemtitle; | |
| D.price = z[M].Attributes.price.formattedOfferPrice; | |
| D.buyable = z[M].Attributes.inventory.isBuyable; | |
| D.inventory = z[M].Attributes.inventory.inv_code; | |
| D.image = z[M].Attributes.primary_image; | |
| D.partNumber = z[M].Attributes.partNumber; | |
| return D | |
| } | |
| }); | |
| return D | |
| } | |
| function v(p, t) { | |
| if (Target.globals.giftentitileditems.length != 0) { | |
| var z = lastitem = el = sizeAttr = "", | |
| D = {}, | |
| M = [], | |
| B = Target.globals.giftentitileditems; | |
| D.items = []; | |
| D.catid = []; | |
| B.length > 0 && $.each(B, function(m, u) { | |
| u.parentcatentry_id == t && $.each(u.itemdetails, function(y, H) { | |
| $.each(H.Attributes, function(J, R) { | |
| el = J; | |
| z = J.split(":"); | |
| lastitem = z[z.length - 1]; | |
| if (R == 1) | |
| if (typeof p != "undefined" && p == lastitem) { | |
| var U = H.Attributes, | |
| X = 0, | |
| ga; | |
| for (ga in U) U.hasOwnProperty(ga) && X++; | |
| if (X > 1) { | |
| sizeAttr = A(H.Attributes, el); | |
| typeof sizeAttr === | |
| "object" && D.catid.push(H.catentry_id); | |
| D.items.push(sizeAttr) | |
| } | |
| } else { | |
| sizeAttr = A(H.Attributes); | |
| U = {}; | |
| U.catid = H.catentry_id; | |
| U.itemname = sizeAttr; | |
| M.push(U) | |
| } | |
| }) | |
| }) | |
| }); | |
| return typeof p != "undefined" && p ? D : M | |
| } | |
| } | |
| function A(p) { | |
| var t = [], | |
| z = ""; | |
| z = ""; | |
| if (typeof p == "object") | |
| for (var D in p) { | |
| z = D.split(":"); | |
| z = z[z.length - 1]; | |
| t.push(z) | |
| } | |
| return t | |
| } | |
| function C(p) { | |
| var t = "", | |
| z = 0, | |
| D = []; | |
| $(p).each(function() { | |
| t = $(this); | |
| var M = t.find(".qtynumber").text(); | |
| z += parseInt(M, 10); | |
| D.push(M) | |
| }); | |
| return z | |
| } | |
| function q(p) { | |
| p.empty().removeAttr("generated").addClass("screen-reader-only") | |
| } | |
| function I(p, t, z) { | |
| p.html(t).attr({ | |
| generated: "true" | |
| }); | |
| z == "add" ? p.addClass("screen-reader-only") : p.removeClass("screen-reader-only") | |
| } | |
| fromQi = false; | |
| var K = this, | |
| Q = $("body"); | |
| $("body").delegate("#recommandation .addtoCart", "click", function(p) { | |
| p.preventDefault(); | |
| var t = $(this); | |
| p = p.currentTarget.id; | |
| var z = t.parent(z); | |
| Cart.add(z, false, p) | |
| }); | |
| Q.delegate("#addListQickInfo", "click", function(p) { | |
| p.preventDefault(); | |
| p = $(this); | |
| var t = { | |
| context: this, | |
| etype: "click", | |
| regUrl: "" | |
| }, | |
| z = $("#QuickView"), | |
| D = p.attr("catalogEntryID"); | |
| z = z.find("#OrderItemAddForm_catEntryId_" + | |
| D).val(); | |
| D = $("#quickInfo #quantity_" + D).val(); | |
| var M = ""; | |
| if (p.parents("form.no-summary").find(".subscribeme").is(":checked")) Target.controller.globalUtils.recurringOrderValidate("list", p); | |
| else if ($("#quickInfo").validate(Target.validation).form()) { | |
| M = p.attr("rev"); | |
| M += "&catEntryId_0=" + z + "&quantity_0=" + D; | |
| t.regUrl = M; | |
| Target.controller.grda.HandleGRDAResponse(t, function() {}, false) | |
| } else return false | |
| }); | |
| $("body").delegate(".subscribeme", "change", function(p) { | |
| p.preventDefault(); | |
| $("#subscribeFromCart,#keepInCart").toggleClass("sub-btnhidden") | |
| }); | |
| $("body").delegate("#subscribeFromCart", "click", function() { | |
| var p = $(this).attr("subUrl"), | |
| t = { | |
| isSubscribeme: true, | |
| babyDuration: $(".overlay .itemLevelService").find("select[id=babyDuration]").val() | |
| }; | |
| $.ajax({ | |
| url: p, | |
| type: "post", | |
| data: t, | |
| dataType: "json", | |
| success: function(z) { | |
| z != undefined && z.hasOwnProperty("success") && z.success == "true" ? $("#keepInCart").trigger("click") : console.log("error") | |
| }, | |
| error: function() { | |
| console.log("Ajax error") | |
| } | |
| }) | |
| }); | |
| $(document).delegate(".singleFreePromotion", "click mouseenter", function(p) { | |
| p.preventDefault(); | |
| $("#singleFreeGiftPDP").toggle(); | |
| $("#singleFreeGiftPDP").is(":visible") ? ($("#singleFreeGiftPDP").find("p.unavailable").length ? $("#singleFreeGiftPDP").find("p.unavailable") : $("#singleFreeGiftPDP").find("img")).attr({ | |
| tabindex: "-1" | |
| }).focus() : $(this).focus(); | |
| return false | |
| }); | |
| $(document).delegate(".singleFreePromotion", "mouseleave", function(p) { | |
| p.preventDefault(); | |
| $("#singleFreeGiftPDP").hide(); | |
| return false | |
| }); | |
| $(document).delegate("#singleFreeGiftPDP", "mouseenter", function(p) { | |
| p.preventDefault(); | |
| $("#singleFreeGiftPDP").show().find("img").focus(); | |
| return false | |
| }); | |
| $(document).delegate("#singleFreeGiftPDP", "mouseleave", function(p) { | |
| p.preventDefault(); | |
| $("#singleFreeGiftPDP").hide(); | |
| $(".singleFreePromotion").attr("tabindex", "0").focus(); | |
| return false | |
| }); | |
| $(document).delegate("#singleFreeGiftPDP a.screen-reader-only", "click", function(p) { | |
| p.preventDefault(); | |
| $("#singleFreeGiftPDP").hide(); | |
| $(".singleFreePromotion").attr("tabindex", "0").focus(); | |
| return false | |
| }); | |
| $("body").bind($.browser.mozilla ? "keypress" : "keydown", function(p) { | |
| if ((p.keyCode ? p.keyCode : p.which) == | |
| "27") | |
| if ($("#singleFreeGiftPDP").length && $("#singleFreeGiftPDP").is(":visible")) { | |
| p.preventDefault(); | |
| $("#singleFreeGiftPDP a.screen-reader-only").trigger("click"); | |
| return false | |
| } | |
| }); | |
| $(document).delegate("#singleFreeGiftPDP a.screen-reader-only", "focusin", function(p) { | |
| p.preventDefault(); | |
| $(this).css({ | |
| width: "65px", | |
| overflow: "visible", | |
| left: "235px", | |
| bottom: "25px", | |
| "text-align": "right", | |
| position: "absolute" | |
| }); | |
| return false | |
| }); | |
| $(document).delegate("#singleFreeGiftPDP a.screen-reader-only", "focusout", function(p) { | |
| p.preventDefault(); | |
| $(this).removeAttr("style"); | |
| $("#singleFreeGiftPDP a.screen-reader-only").trigger("click"); | |
| return false | |
| }); | |
| $(document).delegate(".singleItem select[name=attr-sizeSelection]", "change", function() { | |
| var p = $(this), | |
| t = p.find("option:selected").val() != "Make a selection" || p.find("option:selected").val() != "" ? p.find("option:selected").val() : false, | |
| z = t ? p.find("option:selected").attr("catid") != undefined ? p.find("option:selected").attr("catid") : false : false, | |
| D = p.parents(".fESOleftAlign").attr("data-parentid"), | |
| M = a(), | |
| B = | |
| $(".singleItem #getGiftCard"); | |
| if (!t) { | |
| b(B, "hide", ""); | |
| return false | |
| } | |
| if (z) { | |
| if (M == "mulitple") { | |
| t = p.parents(".SingleTitle").find(".color_selected"); | |
| if (t.length && t.html() != null && t.html() == "") { | |
| b(B, "hide", ""); | |
| return false | |
| } | |
| } | |
| z = o(D, z); | |
| if (!$.isEmptyObject(z)) { | |
| f(p, z); | |
| b(B, "show", z) | |
| } | |
| } | |
| }); | |
| $(document).delegate(".singleItem .swatches input[class=attr-swatchColor]", "change", function() { | |
| var p = $(this), | |
| t = p.attr("catid") != undefined ? p.attr("catid") : "", | |
| z = p.val(), | |
| D = p.parents(".colors").find(".color_selected"), | |
| M = p.parents(".fESOleftAlign").attr("data-parentid"), | |
| B = p.parents(".fESOleftAlign").find(".sizeSelection.valid"), | |
| m = a(), | |
| u = $(".singleItem #getGiftCard"); | |
| if (t == "") return false; | |
| $(D).length && $(D).html(z); | |
| $(".singleItem .swatches .swatchtool").removeClass("selected"); | |
| p.parent("li").addClass("selected"); | |
| if (m == "multiple") { | |
| d(B, z, M); | |
| z = $(".singleItem select[name=attr-sizeSelection] option:selected"); | |
| if (!(z.attr("val") != undefined || z.val() != "Make a selection" || z.val() != "" ? z.val() : false)) { | |
| b(u, "hide", ""); | |
| return false | |
| } | |
| } | |
| t = o(M, t); | |
| if (!$.isEmptyObject(t)) { | |
| f(p, t); | |
| b(u, "show", | |
| t) | |
| } | |
| }); | |
| $(document).delegate(".singleItem #getGiftCard", "click", function() { | |
| var p = $(this), | |
| t = p.parents(".singleItem"); | |
| if (p.hasClass("disabled")) return false; | |
| p = Cart.getForm(); | |
| var z = ""; | |
| p.find('input:hidden[class^="freeGiftPartNo"],input[class^="freeGiftQty"],input[class^="freeGiftPromoId"]').remove(); | |
| p.find('input[name="catEntryId"]').length > 0 && p.find('input[name="catEntryId"]').attr("name", "catEntryId_0"); | |
| p.find('input[name="quantity"]').length > 0 && p.find('input[name="quantity"]').attr("name", "quantity_0"); | |
| var D = t.find("#fgPartNumber").val(), | |
| M = t.find("#fgPromoId").val(); | |
| t = t.find(".qtynumber").text(); | |
| z += '<input id="CFGPartnumber_0" type="hidden" value="' + D + '" name="CFGPartnumber_0" class="freeGiftPartNo">'; | |
| z += '<input id="CFGQty_0" type="hidden" value="' + t + '" name="CFGQty_0" class="freeGiftQty">'; | |
| z += '<input id="promotionId" type="hidden" value="' + M + '" name="promotionId" class="freeGiftPromoId">'; | |
| p.append(z); | |
| Cart.add(p, false, $("#addToCart")) | |
| }); | |
| var n = false; | |
| $(document).delegate("#freeGiftItemList .fESOBottomAlign .small", | |
| "click", | |
| function() { | |
| $("#freeGiftItemList .fESOBottomAlign").removeClass("flip"); | |
| var p = $(this); | |
| $("#freeGiftItemList .fESOBottomAlign"); | |
| $(this).parents(".fESOBottomAlign").toggleClass("flip"); | |
| p.parents(".fESOBottomAlign").find(".back_tile .small_images").attr("tabindex", "-1").focus() | |
| }); | |
| $(document).delegate('#freeGiftItemList .fESOBottomAlign .item_selection select[name="attr-sizeSelection"]', "change", function() { | |
| var p = $(this), | |
| t = p.find("option:selected").attr("catid") != undefined ? p.find("option:selected").attr("catid") : | |
| "", | |
| z = p.parents(".fESOBottomAlign").find("#fgPartNumber").val(); | |
| p.find("option:selected").val(); | |
| var D = p.parents(".fESOBottomAlign").attr("data-parentid"), | |
| M = p.parents(".back_tile").find(".color_selected").html(), | |
| B = p.parents(".fESOBottomAlign").find(".sizeSelection.valid"), | |
| m = p.parents(".fESOBottomAlign").find(".swatches"); | |
| n = false; | |
| if (B.length && m.length) n = true; | |
| if (n) { | |
| B.find("option:selected").val(); | |
| if (M == "" || M == undefined) { | |
| p.parents(".fESOBottomAlign").find(".back_tile .button").removeClass("selectButton selectButtonOOS").addClass("selectButtonFront"); | |
| return false | |
| } | |
| } | |
| if (t == "") { | |
| p.parents(".fESOBottomAlign").find(".back_tile .button").removeClass("selectButton selectButtonOOS").addClass("selectButtonFront"); | |
| return false | |
| } | |
| M = false; | |
| M = o(D, t); | |
| if ($.isEmptyObject(M)) p.parents(".fESOBottomAlign").find(".back_tile .button").removeClass("selectButton selectButtonOOS").addClass("selectButtonFront"); | |
| else { | |
| t = p.parents(".fESOBottomAlign").find(".front_tile .offerPrice"); | |
| D = p.parents(".fESOBottomAlign").find(".back_tile .small_images"); | |
| B = p.parents(".fESOBottomAlign").find(".front_tile .image-container"); | |
| m = p.parents(".fESOBottomAlign").find(".back_tile .item_price"); | |
| var u = M.price == "Too low to display" ? '<span class="screen-reader-only">sale price </span>' + M.price : '<span class="screen-reader-only">sale price </span>' + M.price + " <span>value</span>"; | |
| z = M.partNumber; | |
| t.html(u); | |
| m.html(u); | |
| B.find("img").attr("src", M.image); | |
| D.find("img").attr("src", M.image); | |
| if (M.inventory == "0") { | |
| p.parents(".fESOBottomAlign").find(".back_tile .button").removeClass("selectButtonFront selectButtonOOS").addClass("selectButton"); | |
| M = | |
| p.parents(".fESOBottomAlign").find(".back_tile .button .buttonText"); | |
| M.text(M.text().replace(/Disabled/g, " ")) | |
| } else if (M.inventory == "6") { | |
| p.parents(".fESOBottomAlign").find(".back_tile .button").removeClass("selectButton selectButtonFront").addClass("selectButtonOOS"); | |
| M = p.parents(".fESOBottomAlign").find(".back_tile .button .buttonText"); | |
| M.text(M.text().replace(/Disabled/g, " ") + " Disabled") | |
| } else p.parents(".fESOBottomAlign").find(".back_tile .button").removeClass("selectButton selectButtonOOS").addClass("selectButtonFront") | |
| } | |
| p.parents(".fESOBottomAlign").find("#fgPartNumber").val(z) | |
| }); | |
| $(document).delegate('#freeGiftItemList .fESOBottomAlign .swatches .swatchtool input[class="attr-swatchColor"]', "change", function() { | |
| var p = $(this); | |
| p.attr("src"); | |
| var t = p.attr("catid") != undefined ? p.attr("catid") : false, | |
| z = p.parents(".fESOBottomAlign").attr("data-parentid"), | |
| D = p.parents(".fESOBottomAlign").find("#fgPartNumber").val(), | |
| M = p.val(), | |
| B = p.parents(".fESOBottomAlign").find(".sizeSelection.valid"), | |
| m = p.parents(".fESOBottomAlign").find(".swatches"), | |
| u = ""; | |
| $("#freeGiftItemList .fESOBottomAlign .swatches .swatchtool").removeClass("selected"); | |
| p.parent("li").addClass("selected"); | |
| p.parents("fieldset.colors").find(".color_selected").html(M); | |
| n = false; | |
| if (B.length && m.length) n = true; | |
| if (n) { | |
| d(B, M, z); | |
| u = B.find("option:selected").val(); | |
| if (u == "" || u == "Make a selection") { | |
| p.parents(".fESOBottomAlign").find(".back_tile .button").removeClass("selectButton selectButtonOOS").addClass("selectButtonFront"); | |
| return false | |
| } | |
| } | |
| p.parents("li").find(".newerrorfield").text(""); | |
| t = o(z, t); | |
| if ($.isEmptyObject(t)) p.parents(".fESOBottomAlign").find(".back_tile .button").removeClass("selectButton selectButtonOOS").addClass("selectButtonFront"); | |
| else { | |
| z = p.parents(".fESOBottomAlign").find(".front_tile .offerPrice"); | |
| M = p.parents(".fESOBottomAlign").find(".back_tile .small_images"); | |
| B = p.parents(".fESOBottomAlign").find(".front_tile .image-container"); | |
| m = p.parents(".fESOBottomAlign").find(".back_tile .item_price"); | |
| D = t.partNumber; | |
| u = t.price == "Too low to display" ? '<span class="screen-reader-only">sale price </span>' + t.price : '<span class="screen-reader-only">sale price </span>' + t.price + " <span>value</span>"; | |
| z.html(u); | |
| m.html(u); | |
| B.find("img").attr("src", | |
| t.image); | |
| M.find("img").attr("src", t.image); | |
| if (t.inventory == "0") { | |
| p.parents(".fESOBottomAlign").find(".back_tile .button").removeClass("selectButtonFront selectButtonOOS").addClass("selectButton"); | |
| t = p.parents(".fESOBottomAlign").find(".back_tile .button .buttonText"); | |
| t.text(t.text().replace(/Disabled/g, " ")) | |
| } else if (t.inventory == "6") { | |
| p.parents(".fESOBottomAlign").find(".back_tile .button").removeClass("selectButton selectButtonFront").addClass("selectButtonOOS"); | |
| t = p.parents(".fESOBottomAlign").find(".back_tile .button .buttonText"); | |
| t.text(t.text().replace(/Disabled/g, " ") + " Disabled") | |
| } else p.parents(".fESOBottomAlign").find(".back_tile .button").removeClass("selectButton selectButtonOOS").addClass("selectButtonFront") | |
| } | |
| p.parents(".fESOBottomAlign").find("#fgPartNumber").val(D) | |
| }); | |
| $(document).delegate(".free-promotion-offer, .multipleFreePromotion", "click", function(p) { | |
| p.preventDefault(); | |
| if ($(this).hasClass(".singleFreePromotion")) return false; | |
| p = $("#FreeGiftOverlayDisplay").val(); | |
| var t = $("#qiReturnBack").val(), | |
| z = $("#freeGiftOverlayUrl").val() != | |
| "" ? $("#freeGiftOverlayUrl").val() : "", | |
| D = Target.controller.globalOverlay.getParameterByName("width", z), | |
| M = Target.controller.globalOverlay.getParameterByName("freeGiftPartNumbers", z), | |
| B = Target.controller.globalOverlay.getParameterByName("partNumber", z), | |
| m = $(this).hasClass(".free-promotion-offer") ? ".free-promotion-offer" : ".multipleFreePromotion"; | |
| t = "freeGiftPartNumbers=" + M + "&qiReturnBack=" + t + "&mode=view&partNumber=" + B; | |
| p && z != "" && $.overlay.load({ | |
| content: "/FreeGiftDisplayView", | |
| overlayId: "freeGiftSpecialOffers", | |
| target: m, | |
| overlayType: "modal", | |
| width: D, | |
| data: t, | |
| curtain: true | |
| }) | |
| }); | |
| $(document).delegate("#freeGiftSpecialOffers .selectButtonFront.free_gift_item_selected", "click", function() { | |
| var p = $(this); | |
| p.toggleClass("free_gift_item_selected").val("select"); | |
| var t = p.find(".buttonText"), | |
| z = t.text().replace("selected", "select"); | |
| t.text(z.replace(/Disabled/g, " ") + " Disabled"); | |
| t = p.parents(".fESOBottomAlign").find(".back_tile .button"); | |
| z = t.find(".buttonText"); | |
| var D = z.text().replace("selected", "select"); | |
| z.text(D.replace(/Disabled/g, | |
| " ")); | |
| t.removeClass("free_gift_item_selected").val("select"); | |
| l("select", $(this)) == "stopthem" ? g(j(), "add") : g(j(), "remove"); | |
| p.attr("tabindex", "0").focus() | |
| }); | |
| $(document).delegate("#freeGiftItemList .selectButton, #freeGiftSpecialOffers .selectButton", "click", function() { | |
| var p = $(this), | |
| t = $("#freeGiftCounter").val(), | |
| z = p.parents("li").find(".qtynumber").text(), | |
| D = Target.controller.globalOverlay.getSelectedFreeGiftItems(), | |
| M = C(D); | |
| D = $(this).hasClass("free_gift_item_selected") ? true : false; | |
| var B = $(this).find("span.buttonText"), | |
| m = B.html(), | |
| u = D ? parseInt(M) : parseInt(M) + parseInt(z, 10), | |
| y = ""; | |
| if (parseInt(M, 10) > parseInt(t, 10) || z > parseInt(t, 10)) { | |
| p.removeClass("free_gift_item_selected"); | |
| $("#getGiftCard").attr("disabled", true); | |
| $("#getGiftCard").addClass("disabled"); | |
| return false | |
| } else if (u > parseInt(t, 10)) { | |
| p.removeClass("free_gift_item_selected"); | |
| M == t ? $("#getGiftCard").removeAttr("disabled") : $("#getGiftCard").attr("disabled", true); | |
| M == t ? $("#getGiftCard").removeClass("disabled") : $("#getGiftCard").addClass("disabled"); | |
| y = l("select", $(this)); | |
| y == "stopthem" ? g(j(), "add") : g(j(), "remove"); | |
| return false | |
| } else { | |
| p.toggleClass("free_gift_item_selected", p.val() == "select" ? p.val("selected") : p.val("select")); | |
| t = Target.controller.globalOverlay.getSelectedFreeGiftItems(); | |
| z = p.parents(".fESOBottomAlign").hasClass("flip") ? true : false; | |
| $.isArray(t) && C(t); | |
| D ? B.html(m.replace("selected", "select")) : B.html(m.replace("select", "selected")); | |
| if (z) { | |
| D = p.parents(".fESOBottomAlign").find(".front_tile .selectButtonFront"); | |
| if (p.val() == "select") { | |
| D.val("select"); | |
| D.removeClass("free_gift_item_selected"); | |
| B = D.find(".buttonText").text().replace("selected", "select"); | |
| B = B.replace(/Disabled/g, " ") + " Disabled"; | |
| D.find(".buttonText").text(B); | |
| p.attr("tabindex", "0").focus() | |
| } else { | |
| p.parents(".fESOBottomAlign").toggleClass("flip"); | |
| D.val("selected"); | |
| D.addClass("free_gift_item_selected"); | |
| B = D.find(".buttonText").text().replace("select", "selected"); | |
| B = B.replace(/Disabled/g, " "); | |
| D.find(".buttonText").text(B); | |
| D.attr("tabindex", "0").focus() | |
| } | |
| } else p.attr("tabindex", "0").focus(); | |
| $("#getGiftCard").removeAttr("disabled"); | |
| $("#getGiftCard").removeClass("disabled"); | |
| y = l("select", $(this)); | |
| y == "stopthem" ? g(j(), "add") : g(j(), "remove") | |
| } | |
| var H = []; | |
| $("#freeGiftItemList li.fESOBottomAlign, .singleItemButton").each(function() { | |
| $(this).find(".selectButton").hasClass("free_gift_item_selected") && H.push(1) | |
| }); | |
| if (H.length) $("button#getGiftCard span.buttonText").html("add free gift to cart"); | |
| else { | |
| $("#getGiftCard").attr("disabled", true); | |
| $("#getGiftCard").addClass("disabled"); | |
| $("button#getGiftCard span.buttonText").html("add free gift to cart disabled") | |
| } | |
| }); | |
| $(document).delegate("#freeGiftItemList a.upArrow, #freeGiftSpecialOffers a.upArrow", "click", function(p) { | |
| p.preventDefault(); | |
| q($(".arrow-reached-maxmin")); | |
| p = $("#freeGiftCounter").val(); | |
| var t = $(this).parent().find(".qtynumber"); | |
| $(this).parents(".selectboxwrap"); | |
| var z = parseInt(t.text()), | |
| D = Target.controller.globalOverlay.getSelectedFreeGiftItems(), | |
| M = C(D), | |
| B = ($(this).parents("li").find(".selectButton").hasClass("free_gift_item_selected") ? true : false) ? parseInt(M) : parseInt(M) + parseInt(z, 10); | |
| D = ""; | |
| if (parseInt(M, | |
| 10) >= parseInt(p, 10)) { | |
| D = l("arrow", $(this)); | |
| D == "stopthem" ? g(j(), "add") : g(j(), "remove"); | |
| I($(this).parent(".selectboxwrap").find(".arrow-reached-maxmin"), '<span aria-hidden="true">Max</span><span class="screen-reader-only"> maximum</span> quantity has been reached', "remove"); | |
| return false | |
| } | |
| if (B >= parseInt(p, 10)) { | |
| $(this).closest(".selectButton").removeClass("free_gift_item_selected"); | |
| D = l("arrow", $(this)); | |
| D == "stopthem" ? g(j(), "add") : g(j(), "remove"); | |
| I($(this).parent(".selectboxwrap").find(".arrow-reached-maxmin"), | |
| '<span aria-hidden="true">Max</span><span class="screen-reader-only"> maximum</span> quantity has been reached', "remove"); | |
| return false | |
| } | |
| if (z == p) { | |
| D = l("arrow", $(this)); | |
| D == "stopthem" ? g(j(), "add") : g(j(), "remove"); | |
| I($(this).parent(".selectboxwrap").find(".arrow-reached-maxmin"), '<span aria-hidden="true">Max</span><span class="screen-reader-only"> maximum</span> quantity has been reached', "remove"); | |
| return false | |
| } else { | |
| z == "" || z < "0" ? t.text(1) : t.text(parseInt(t.text()) + 1); | |
| M && $("#getGiftCard").removeAttr("disabled"); | |
| M && $("#getGiftCard").removeClass("disabled"); | |
| t = t.text(); | |
| p = "Quantity: " + t; | |
| D = l("arrow", $(this)); | |
| D == "stopthem" ? g(j(), "add") : g(j(), "remove"); | |
| I($(this).parent(".selectboxwrap").find(".arrow-reached-maxmin"), p, "add") | |
| } | |
| }); | |
| $(document).delegate("#freeGiftItemList a.downArrow, #freeGiftSpecialOffers a.downArrow", "click", function(p) { | |
| p.preventDefault(); | |
| q($(".arrow-reached-maxmin")); | |
| $("#freeGiftCounter").val(); | |
| $(this).parents(".selectboxwrap"); | |
| p = $(this).parent().find(".qtynumber"); | |
| var t = parseInt(p.text()), | |
| z = Target.controller.globalOverlay.getSelectedFreeGiftItems(), | |
| D = ""; | |
| C(z) && $("#getGiftCard").removeAttr("disabled").removeClass("disabled"); | |
| $("li.redText").remove(); | |
| if (t > 1) { | |
| p.text(parseInt(p.text()) - 1); | |
| t = p.text(); | |
| c = p.parents(".selectboxwrap"); | |
| p = "Quantity: " + t; | |
| D = l("arrow", $(this)); | |
| D == "stopthem" ? g(j(), "add") : g(j(), "remove"); | |
| I($(this).parent(".selectboxwrap").find(".arrow-reached-maxmin"), p, "add") | |
| } else { | |
| D = l("arrow", $(this)); | |
| D == "stopthem" ? g(j(), "add") : g(j(), "remove"); | |
| I($(this).parent(".selectboxwrap").find(".arrow-reached-maxmin"), '<span aria-hidden="true">Min</span><span class="screen-reader-only"> minimum</span> quantity has been reached', | |
| "remove") | |
| } | |
| }); | |
| $(document).delegate("#freeGiftSpecialOffers .getGiftCardMultipleItems", "click", function() { | |
| if ($(this).hasClass("disabled")) return false; | |
| var p = Target.controller.globalOverlay.getSelectedFreeGiftItems(), | |
| t = 0, | |
| z = Cart.getForm(); | |
| z.find('input:hidden[class^="freeGiftPartNo"],input[class^="freeGiftQty"],input[class^="freeGiftPromoId"]').remove(); | |
| z.find('input[name="catEntryId"]').length > 0 && z.find('input[name="catEntryId"]').attr("name", "catEntryId_0"); | |
| z.find('input[name="quantity"]').length > 0 && | |
| z.find('input[name="quantity"]').attr("name", "quantity_0"); | |
| t = parseInt(t, 10); | |
| catId = html = ""; | |
| for (var D = 0; D < p.length; D++) { | |
| var M = p[D].find("#fgPartNumber").val(), | |
| B = "CFGQty_" + t, | |
| m = p[D].find("#fgPromoId").val(), | |
| u = "CFGPartnumber_" + t; | |
| qtycart = p[D].find(".qtynumber").text(); | |
| html += '<input id="' + u + '" type="hidden" value="' + M + '" name="' + u + '" class="freeGiftPartNo">'; | |
| html += '<input id="' + B + '" type="hidden" value="' + qtycart + '" name="' + B + '" class="freeGiftQty">'; | |
| html += '<input id="promotionId" type="hidden" value="' + | |
| m + '" name="promotionId" class="freeGiftPromoId">'; | |
| t += 1 | |
| } | |
| z.append(html); | |
| Cart.add(z, false, $("#addToCart")) | |
| }); | |
| $(document).delegate(".declineGift, .noGiftAvailable", "click", function(p) { | |
| p.preventDefault(); | |
| if ($.overlay.activeOverlay) { | |
| p = Cart.getForm(); | |
| Cart.add(p, false, $("#addToCart")); | |
| $.overlay.currentOverlay.trigger("close.overlay", [true]) | |
| } | |
| }); | |
| $("body").delegate("#media-player .carousel-panel a.scene7", "click mouseover mouseout", function(p) { | |
| var t = $(this), | |
| z = t.parent(), | |
| D = $("#media-player .carouselviewport .video-playing-title"), | |
| M = t.find("span.video-thumbnail-title").text(), | |
| B = t.find("img").attr("alt") + " selected"; | |
| switch (p.type) { | |
| case "click": | |
| p = t.find("img").attr("id"); | |
| $("#target_player").get(0).sendNotification("changeMedia", { | |
| entryId: p | |
| }); | |
| var m = t.parents("ul.component-carousel-qinfo").find("li").has("div.selectedImage"); | |
| a_tag_bc = m.find(".aBackup").val(); | |
| selected_image = m.find("img"); | |
| img_alt_title = $(a_tag_bc).attr("title"); | |
| selected_image.attr("title", img_alt_title); | |
| currentSelectedDiv = m.find("div.selectedImage"); | |
| selected_image.removeClass("selectedThumbnailClass"); | |
| m.find("div.video-play-icon").show(); | |
| m.find("div.video-thumbnail-overlay").show(); | |
| if (typeof currentSelectedDiv !== undefined && m.find("a").hasClass("scene7") == false) { | |
| m.append($(a_tag_bc).html(currentSelectedDiv.html())); | |
| m.find("a.scene7 img").attr("alt", m.find("div.scene7 span").text()) | |
| } else m.find("a.scene7").show(); | |
| m.find("a.scene7").attr("href", "#"); | |
| currentSelectedDiv.hide(); | |
| D.html(M); | |
| $("#" + p).addClass("selectedThumbnailClass"); | |
| if (typeof z !== "undefined" && z.find("div").hasClass("selectedImage") == false) { | |
| chil = | |
| t.html(); | |
| new_div = $("<div class='scene7 imgAnchor selectedImage' title='Now Playing' />").html(chil); | |
| z.append(new_div) | |
| } else z.find("div.selectedImage").show(); | |
| z.find("div.selectedImage").find("div.video-play-icon").hide(); | |
| z.find("div.selectedImage").find("div.video-thumbnail-overlay").hide(); | |
| t.hide(); | |
| t.removeAttr("href"); | |
| new_div.find("img").attr("alt", B); | |
| $("#target_player").focus(); | |
| break; | |
| case "mouseover": | |
| if (t.find("img").hasClass("selectedThumbnailClass") == false) { | |
| z = t.parent(); | |
| t.find("div.video-thumbnail-overlay").hide(); | |
| typeof z !== "undefined" && z.hasClass("state-focus") == true && z.removeClass("state-focus") | |
| } | |
| break; | |
| case "mouseout": | |
| t.find("img").hasClass("selectedThumbnailClass") == false && t.find("div.video-thumbnail-overlay").show() | |
| } | |
| }); | |
| $(document).delegate("#specialOffersInPDP a.specialCoupons", "click", function(p) { | |
| p.preventDefault(); | |
| var t = $(p.currentTarget); | |
| p = t.attr("href"); | |
| var z = $("#specialOffersInPDP"); | |
| t.addClass("couponSpinner"); | |
| t.append('<span class="screen-reader-only" role="alert" aria-live="rude" tabindex="0" generated="true"> Please wait, apply coupon is in progress</span>').find("span.screen-reader-only:eq(1)").focus(); | |
| $.ajax({ | |
| type: "GET", | |
| url: p, | |
| dataType: "json", | |
| curtain: false, | |
| success: function(D) { | |
| t.replaceWith(D.TcouponJSON.Failure != undefined && D.TcouponJSON.Failure != "undefined" ? '<p class="specialCouponsWarning" role="alert" aria-live="rude" generated="true"><span class="specialCoupWarn"> Sorry, the coupon was not applied </span><span class="specialCoupWarn specialCoupWarnRefres">Please refresh this page and try again.</span></p>' : '<span class="specialCouponsChanged" role="alert" aria-live="rude" generated="true"> coupon applied</span>'); | |
| if (z.find(".specialCouponsWarning").length) z.find(".specialCouponsWarning").attr("tabindex", "0").focus().removeAttr("tabindex"); | |
| else z.find(".specialCouponsChanged").length ? z.find(".specialCouponsChanged").attr("tabindex", "0").focus().removeAttr("tabindex") : z.attr("tabindex", "0").focus().removeAttr("tabindex") | |
| }, | |
| error: function() { | |
| window.console != undefined && console.log(" error handler -- ") | |
| } | |
| }) | |
| }); | |
| Q.delegate("#addRegistryQickInfo, #gmAddRegistryQickInfo", "click", function(p) { | |
| p.preventDefault(); | |
| var t = $(this), | |
| z = { | |
| context: this, | |
| etype: "click", | |
| regUrl: "" | |
| }, | |
| D = $("#QuickView"), | |
| M = t.attr("catalogEntryID"), | |
| B = D.find("#OrderItemAddForm_catEntryId_" + M).val(); | |
| M = $("#quickInfo #quantity_" + M).val(); | |
| var m = ""; | |
| m = t.parents("form.no-summary").find(".subscribeme"); | |
| D = D.find(".zoomItemPartNum"); | |
| D = D.length ? D.val() : ""; | |
| if (m.is(":checked")) Target.controller.globalUtils.recurringOrderValidate("registry", t); | |
| else if ($("#quickInfo").validate(Target.validation).form()) { | |
| $("input[name=preSelFlag]").val(); | |
| m = p.currentTarget.id == "gmAddRegistryQickInfo" ? | |
| t.attr("href") : t.attr("rev"); | |
| m += "&catEntryId_0=" + B; | |
| if (typeof D != "undefined" && D != "") { | |
| m += "&partNumber=" + D; | |
| z.regUrl = m | |
| } | |
| if (typeof M != "undefined" && M != "") { | |
| m += "&quantity_0=" + M; | |
| z.regUrl = m | |
| } | |
| p.currentTarget.id == "gmAddRegistryQickInfo" ? $.ajax({ | |
| url: m, | |
| success: function(u) { | |
| u.overlayHtml != "" && u.overlayHtml !== "undefined" ? $.overlay.load({ | |
| contentOverride: u.overlayHtml, | |
| overlayId: u.overlayId, | |
| template: u.template | |
| }) : console.log("Else condition...") | |
| } | |
| }) : Target.controller.grda.HandleGRDAResponse(z, function() {}, false) | |
| } else return false | |
| }); | |
| Q.delegate(".grChooseRegistry li a", "click", function(p) { | |
| p.preventDefault(); | |
| p = $(this).attr("href"); | |
| try { | |
| var t = $(".regtype").find("img"), | |
| z = t.length > 0 ? t.attr("alt").toLowerCase() : ""; | |
| datalayer.trackClick({ | |
| clickId: "registryAdd", | |
| data: { | |
| products: typeof datalayer.QIOverlay != "undefined" && datalayer.QIOverlay.products ? Array(datalayer.QIOverlay.products) : datalayer.products, | |
| method: "registry", | |
| registryType: z | |
| } | |
| }) | |
| } catch (D) {} | |
| $.ajax({ | |
| url: p, | |
| type: "post", | |
| cache: false, | |
| curtain: true, | |
| dataType: "json", | |
| success: function(M) { | |
| if (M.overlayHtml != | |
| "" && M.overlayHtml !== "undefined") $.overlay.load({ | |
| contentOverride: M.overlayHtml, | |
| overlayId: M.overlayId, | |
| template: M.template | |
| }); | |
| else window.location.href = M.redirectToURL | |
| }, | |
| error: function() { | |
| console.log("Request failed") | |
| } | |
| }) | |
| }); | |
| Q.delegate("#CreateTargetList", "overlay-show", function() { | |
| $(this).find("#privacy-step-create input[name=privacy]").bind("click", function() { | |
| var p = $(this).val() === "public" ? "show" : "hide"; | |
| $("#public-settings-create")[p]() | |
| }) | |
| }); | |
| Q.delegate("#addToList", "overlay-show", function() { | |
| var p = $(this), | |
| t = $("#listName"), | |
| z = $("#listName").val(); | |
| z !== undefined && z !== "" && K.utils.defaultFieldValue(t, z); | |
| $("form#createNewList").submit(function() { | |
| var D = ""; | |
| if (D = p.find("input:hidden[name='isMaxListCount']").val()) { | |
| $("#overlay-loading-curtain").hide(); | |
| p.find("p.j_listMaxCount").removeClass("hidden").show(); | |
| e.stopPropagation(); | |
| return false | |
| } | |
| }) | |
| }); | |
| Q.delegate("#addToRegistry", "overlay-before-show", function() { | |
| $(this).find("#registry-create").unbind("pausesubmit.overlay").bind("pausesubmit.overlay", function() { | |
| Target.controller.avs.HandleAvsResponse($(this)) | |
| }) | |
| }); | |
| Q.delegate("#createAcc button.size-small", "click", function(p) { | |
| p.preventDefault(); | |
| $.overlay.load({ | |
| content: $(this).closest("form").attr("action") + "&" + $("#reviewSignin").serialize(), | |
| overlayId: "account-create" | |
| }) | |
| }); | |
| Q.delegate("#socialSyndication", "overlay-before-show", function() { | |
| $(".share-email").click(function() { | |
| if ($("#share-email-container").is(":visible")) return false; | |
| $("#recipient_name,#recipient_email,#subject").val(""); | |
| $("#message").val("I thought you'd like this item i found on Target.com today"); | |
| $("#share-email-container-email-sent").hide(); | |
| $("#share-email-container").show("750", function() { | |
| $(this).find("#name").focus() | |
| }); | |
| return false | |
| }); | |
| $("#share-via-email .button").bind("click", function() { | |
| $("#shareErrors .error-summary").remove() | |
| }) | |
| }); | |
| Q.delegate("#reg-AddToCart", "click", function(p) { | |
| p.preventDefault(); | |
| var t = $(this); | |
| p = $("#QuickView"); | |
| t = t.attr("catalogEntryID"); | |
| p.find("#OrderItemAddForm_catEntryId_" + t).val(); | |
| $("#quickInfo #quantity_" + t).val(); | |
| if ($("#quickInfo").validate(Target.validation).form()) Cart.add($("#quickInfo"), | |
| false); | |
| else return false | |
| }); | |
| var G = function() { | |
| if (!$.overlay.activeOverlay) | |
| if (typeof K.axbFocusElem != "undefined" && K.axbFocusElem) K.axbFocusElem.focus(); | |
| else { | |
| var p = Target.controller.header.cookie.read("axbFocusCookie"); | |
| typeof p != "undefined" && p && p != "#no-id" && typeof $(p) != "undefined" && $(p).focus() | |
| } | |
| }; | |
| Q.delegate("#notifyPri, #notifyDis", "overlay-before-show", function() { | |
| $("a#notifyMeBtn").addClass("overlay-open state-disabled") | |
| }); | |
| Q.delegate("#subscribeme", "click", function() { | |
| $("#babyDuration").val($("#babyDuration option:first").val()) | |
| }); | |
| Q.bind("overlay-hide", function(p, t) { | |
| K.isSingleVariation = false; | |
| var z = function() { | |
| $.hideCurtain(); | |
| typeof Cart.target !== "undefined" && $(Cart.target).focus() | |
| }; | |
| $(".addtoCartDisabled").removeAttr("disabled"); | |
| if (t === "#addToList") setTimeout(G, 500); | |
| else if (t === "#esrbOverlay") z(); | |
| else if (t === "#addtocart") { | |
| z(); | |
| if (Target.controller.header._moreLikeThis) { | |
| location.replace("OrderItemDisplay?updatePrices=1&calculationUsageId=-1&calculationUsageId=-2&calculationUsageId=-7&orderId=."); | |
| location.replace("checkout_cartview?updatePrices=1&calculationUsageId=-1&calculationUsageId=-2&calculationUsageId=-7&orderId=.") | |
| } | |
| } else if (t === | |
| "#notifyMe") { | |
| $(".notify").removeClass("overlay-open state-disabled"); | |
| setTimeout(function() { | |
| $(".notify").focus() | |
| }, 500) | |
| } else if (t === "#notifyPri" || t === "#notifyDis") { | |
| var D = $(".notify"); | |
| z = function() { | |
| D.addClass("overlay-open state-disabled") | |
| }; | |
| if (typeof D !== "undefined") { | |
| D.removeClass("overlay-open state-disabled").removeAttr("disabled"); | |
| var M = D.attr("href"); | |
| if (M === "") return false; | |
| $.overlay.load({ | |
| target: "#notifyMeBtn", | |
| content: M, | |
| overlayId: "notifyMe", | |
| overlayType: "layer" | |
| }); | |
| setTimeout(z, 100) | |
| } | |
| } | |
| }); | |
| Q.delegate("#registrySignin,#addToRegistry,#CreateTargetList,#shopCollection,#babyhelp", | |
| "overlay-before-hide", | |
| function() { | |
| $(this); | |
| $("a.state-disabled").removeAttr("disabled"); | |
| K.axbFocusElem && K.axbFocusElem.focus() | |
| }); | |
| Q.delegate("#add-to-cart", "overlay-before-show", function() { | |
| $("#multiItemList").tileCarousel(); | |
| $("sup.tipnoteTrigger").attr("tabIndex", 0).bind("focus", function() { | |
| $(this).addClass("isFocused") | |
| }).blur(function() { | |
| $(this).removeClass("isFocused") | |
| }) | |
| }) | |
| }, | |
| QuickView: function() { | |
| var a = this, | |
| b = $("body"); | |
| b.delegate("#QuickView", "overlay-before-hide", function() { | |
| var d = {}; | |
| if (a.cacheController) | |
| if (d = | |
| a.cacheController.restoreJSON()) { | |
| a.cacheController._setPriceJSON(d); | |
| a.cacheController.restoreCb() | |
| } | |
| }); | |
| b.delegate("#QuickView, #LargeView", "overlay-show keydown", function(d) { | |
| $("#heroImage", this); | |
| $(".thumbnail dd", this); | |
| if (d.type == "keydown") { | |
| if (d.which == 9) { | |
| var f = $(this).find("a[href], area[href], .module-title, input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, object, embed, *[tabindex], *[contenteditable]"), | |
| g = "", | |
| j = $(":focus"), | |
| l = ""; | |
| focusedItemIndex = | |
| ""; | |
| g = f.filter("a[href], area[href], .module-title, input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, object, embed, *[tabindex], *[contenteditable]").filter(":visible"); | |
| l = g.length; | |
| focusedItemIndex = g.index(j); | |
| if (d.shiftKey) focusedItemIndex == 0 && g.get(l - 1).focus(); | |
| else focusedItemIndex == l - 1 && g.get(0).focus() | |
| } | |
| } else { | |
| $("#QuickView").find(".swatches").swatches({ | |
| wrapper: "#QuickView", | |
| updateImg: "#heroImage", | |
| swatchInfoHolder: ".colorValHolderQI", | |
| handler: a.qiSwatchHandler, | |
| context: a | |
| }); | |
| var o = $(this); | |
| overlayId = o.attr("id"); | |
| catid = swatches = ""; | |
| radioButtons = $("#QuickView input[type=radio]"); | |
| qiJSON = typeof Target.globals.entitledItem1 != "undefined" ? Target.globals.entitledItem1 : []; | |
| a.header.getObjSize(qiJSON) !== 0 && a.header._setJSON(qiJSON); | |
| if (overlayId === "QuickView") { | |
| $(".tipnoteTrigger").tipNote(); | |
| o.find(".HeroPrimContainer").length && $("#QuickView").iviewer({ | |
| initCallback: function() { | |
| a.iviewer = this | |
| }, | |
| altImages: Target.globals.AltImagesJsonQi, | |
| imgWidth: 265, | |
| imgHeight: 265, | |
| zoomRatio: 100, | |
| imgMinWidth: 265, | |
| imgMaxWidth: 465, | |
| imgMinHeight: 265, | |
| imgMaxHeight: 465, | |
| carouselCb: a.carouselCb, | |
| zoomCb: a.zoomCb, | |
| context: a | |
| }); | |
| if (typeof gomez !== "undefined") try { | |
| gomez.endInterval("Quick Info") | |
| } catch (v) {} | |
| if (extpkgQI = typeof Target.globals.extrnalPkgMsg !== "undefined" ? Target.globals.extrnalPkgMsg : "") { | |
| extpkgQI = extpkgQI.length > 0 ? extpkgQI : []; | |
| $.each(extpkgQI, function(I, K) { | |
| a._hashMap[K.catentry_id] = K | |
| }) | |
| } | |
| a.loadQICache(o); | |
| swatches = $("#QuickView input[name=attr-swatchColor]"); | |
| $.each(swatches, function() { | |
| if ($(this).hasClass("qiSingleVariation")) { | |
| var I = | |
| a.header._getCatEntryId($(this).val()); | |
| I && $(this).attr({ | |
| catid: I | |
| }) | |
| } | |
| }); | |
| var A = $("#QuickView select.qiSingleVariation"); | |
| d = ""; | |
| d = a.header.getItemsByName(); | |
| A.html('<option value="">Please make a selection</option>'); | |
| typeof d !== "undefined" && $.each(d, function(I, K) { | |
| var Q = "" + K.itemname; | |
| Q = Q.replace(/-quot-/g, '"'); | |
| A.append("<option catid='" + K.catid + "' value='" + Q + "' >" + Q + "</option>") | |
| }); | |
| $("#QuickView select.qiWithVariation").bind("change", function() { | |
| var I = $(this), | |
| K = $("select.qiWithVariation option:selected"); | |
| K.attr("catid"); | |
| K = K.val(); | |
| if ($.trim(K) == "") { | |
| a.isSingleVariation = false; | |
| a._constructDropDownList() | |
| } else if (K) { | |
| a._updateVariations(K); | |
| if (I.hasClass("j_colorDropdown")) { | |
| I = a.header.getItemsByName(K).catid[0]; | |
| I = a.cacheController._getItemAttributeById(I); | |
| a.imageQICb(true, I, true, I.quickInfo_image) | |
| } | |
| } | |
| }); | |
| $("#QuickView select.qiSingleVariation").bind("change", function() { | |
| $(this); | |
| var I = $("select.qiSingleVariation option:selected"), | |
| K = I.attr("catid"), | |
| Q = I.val(); | |
| I = $("#qiExtPackage"); | |
| a.isSingleVariation = Q == "" ? false : true; | |
| a.invokeQICbHandlers(1, | |
| Q, K); | |
| if (typeof K !== "undefined" && K != "") { | |
| K = a.qiExtPackaging(K); | |
| if (typeof K !== "undefined" && K != "") K == "extpkghide" ? I.addClass("hidden").html("") : I.removeClass("hidden").html("<span id='extMsg'><strong class='bold-black-text'>Is this a gift?</strong> Please note that this item ships in its own packaging and will not be concealed.</span>") | |
| } else I.addClass("hidden").html("") | |
| }); | |
| a._setRefreshContentHandler(); | |
| o.delegate("#QuickView select[name=attr-swatchColor]", "change", function() { | |
| var I = $(this), | |
| K = $("select[name=attr-swatchColor] option:selected").val(); | |
| $("#QuickView .payment-type"); | |
| if (I.hasClass("j_giftcard")) { | |
| I = o.find("#input-step-send-payment-type").find("ul > li.input-field"); | |
| var Q = o.find("#input-step-send-payment-type").find("ul > li.input-field > input"); | |
| if ($.trim(K) == "") { | |
| I.show(); | |
| Q.attr("checked", false).attr("catid", ""); | |
| a.isSingleVariation = false; | |
| a.invokeQICbHandlers(2, null, null); | |
| return false | |
| } else { | |
| var n = "", | |
| G = "", | |
| p = $("#QuickView #input-step-send-payment-type ul"); | |
| n = p.find("input:radio[name=attr-send-type]:checked").attr("rel"); | |
| G = p.find("input:radio[name=attr-send-type]:checked").attr("catid"); | |
| I.hide(); | |
| Q.attr("checked", false); | |
| optionObj = a.header.getItemsByName($.trim(K)); | |
| $.each(optionObj.items, function(D, M) { | |
| var B = "" + M[1]; | |
| B = B.replace(/-quot-/g, '"'); | |
| var m = $('input[rel^="' + B + '"]'); | |
| if (typeof m != "undefined") | |
| if (B === m.attr("rel")) { | |
| $("li.j_" + B).show(); | |
| m.attr({ | |
| catid: optionObj.catid[D] | |
| }); | |
| if (n == B && typeof n != "undefined") { | |
| m.attr("checked", true); | |
| G = optionObj.catid[D] | |
| } | |
| } | |
| }); | |
| if (G != "" && typeof G !== "undefined") { | |
| a.isSingleVariation = typeof n !== "undefined" && $("input:radio[name='attr-send-type']").is(":checked") ? | |
| true : false; | |
| a.invokeQICbHandlers(1, n, G); | |
| K = $("#qiExtPackage"); | |
| if (typeof G !== "undefined" && G != "") var t = a.qiExtPackaging(G), | |
| z = "<span id='extMsg'><strong class='bold-black-text'>Is this a gift?</strong> Please note that this item ships in its own packaging and will not be concealed.</span>"; | |
| if (typeof t !== "undefined" && t != "") t == "extpkghide" ? K.addClass("hidden").html("") : K.removeClass("hidden").html(z) | |
| } | |
| } | |
| } else if (I.hasClass("qiWithVariation") || I.hasClass("swatchesList qiSingleVariation")) { | |
| K = $("select[name=attr-swatchColor] option:selected").val(); | |
| if ($.trim(K) == "") { | |
| a._constructDropDownList(); | |
| a.isSingleVariation = false; | |
| a.invokeQICbHandlers(2, null, null); | |
| t = a.cacheController._getItemAttributeById(Q); | |
| if (a.iviewer && $.isEmptyObject(a.iviewer) === false) { | |
| a.iviewer.createAltImages(t.partNumber); | |
| a.initHeroImage() | |
| } | |
| } else { | |
| a._updateVariations(K); | |
| if (I.hasClass("j_colorDropdown")) { | |
| Q = a.header.getItemsByName(K).catid[0]; | |
| t = a.cacheController._getItemAttributeById(Q); | |
| z = t.quickInfo_image; | |
| a.imageQICb(true, t, true, z); | |
| if (a.iviewer && $.isEmptyObject(a.iviewer) === false) { | |
| K = | |
| a.iviewer.getDefaultValues(); | |
| a.iviewer.createAltImages(t.partNumber); | |
| a.iviewer.loadImage(z, "", K.min); | |
| a.initHeroImage(); | |
| typeof t.partNumber !== "undefined" && t.partNumber !== "" && $(".zoomItemPartNum").val(t.partNumber) | |
| } | |
| } | |
| } | |
| } | |
| }); | |
| o.delegate("#QuickView input[name=attr-send-type]", "click", function() { | |
| var I = $(this), | |
| K = I.attr("rel"), | |
| Q = I.attr("catid"); | |
| if (I.hasClass("refreshContents")) { | |
| a.isSingleVariation = typeof Q !== "undefined" && Q != "" ? true : false; | |
| a.invokeQICbHandlers(1, K, Q) | |
| } | |
| I = $("#qiExtPackage"); | |
| if (typeof Q !== "undefined" && | |
| Q != "") var n = a.qiExtPackaging(Q), | |
| G = "<span id='extMsg'><strong class='bold-black-text'>Is this a gift?</strong> Please note that this item ships in its own packaging and will not be concealed.</span>"; | |
| if (typeof n !== "undefined" && n != "") n == "extpkghide" ? I.addClass("hidden").html("") : I.removeClass("hidden").html(G) | |
| }); | |
| try { | |
| f = $(".overlay-open").attr("href"); | |
| var C = null; | |
| if (f != "") { | |
| f = f.substring(f.indexOf("?") + 1).split("&"); | |
| $.each(f, function(I, K) { | |
| if (K.split("=")[0] == "qtyFromCart") C = K.split("=")[1]; | |
| K.split("=")[0] == | |
| "fromCartPage" && K.split("=")[1] == "Y" && $("#fetchQIRefreshContent").length > 0 && $("#fetchQIRefreshContent").attr("frmCheckout", "Y") | |
| }); | |
| C != null && C != "" && $("input[name='quantity_0']").val(C) | |
| } | |
| } catch (q) {} | |
| } | |
| } | |
| }) | |
| }, | |
| carouselCb: function(a, b, d) { | |
| this.imgTitle = d.imgTitle; | |
| this.initHeroImage() | |
| }, | |
| zoomCb: function(a, b, d) { | |
| a = d ? d.width : 0; | |
| var f = d ? d.zoom : 0, | |
| g = d ? d.min : 0; | |
| d = d ? d.max : 0; | |
| var j = b.container.find(".zoomInEn"), | |
| l = b.container.find(".zoomOutEn"), | |
| o = b.container.find(".zoomRefreshEn"), | |
| v = b.container.find(".iviewer_zoom_in_off"), | |
| A = b.container.find(".iviewer_zoom_out_off"), | |
| C = b.container.find(".iviewer_zoom_refresh_off"), | |
| q = $("#heroZoomImage"); | |
| b = typeof b.container.find("#Hero") !== "undefined" ? b.container.find("#Hero") : false; | |
| if (typeof j !== "undefined" && typeof l !== "undefined" && typeof q !== "undefined" && typeof C !== "undefined" && b) | |
| if (a <= g) { | |
| v.hide(); | |
| j.show(); | |
| l.hide(); | |
| A.show(); | |
| o.hide(); | |
| C.show(); | |
| b.removeClass("zoomImageBorder"); | |
| q.removeClass("cursorMove") | |
| } else { | |
| if (a >= d || f) { | |
| j.hide(); | |
| v.show() | |
| } else { | |
| v.hide(); | |
| j.show() | |
| } | |
| A.hide(); | |
| l.show(); | |
| C.hide(); | |
| o.show(); | |
| b.addClass("zoomImageBorder"); | |
| q.addClass("cursorMove") | |
| } | |
| }, | |
| qiExtPackaging: function(a) { | |
| var b = "", | |
| d = "extpkghide", | |
| f = ""; | |
| f = typeof Target.globals.extrnalPkgMsg !== "undefined" ? Target.globals.extrnalPkgMsg : ""; | |
| f != "" && $.each(f, function(g) { | |
| b = f[g].Attributes.FACILITY_TYPE; | |
| if (typeof a !== "undefined" && a == f[g].catentry_id) | |
| if (typeof b !== "undefined" && (b == "ShipAlone" || b == "shipalone")) d = "showmsg" | |
| }); | |
| return d | |
| }, | |
| qiSwatchHandler: function(a) { | |
| var b = a.find("input[name=attr-swatchColor]"), | |
| d = b.val(); | |
| b.parents("form").attr("id"); | |
| b.closest("form").find("span.colorValHolderQI"); | |
| var f = b.attr("catid"); | |
| a = b.attr("src"); | |
| var g = $("#qiExtPackage"), | |
| j = $("#renderImgfromScene7").length > 0 && $("#renderImgfromScene7").val() == "Y" ? true : false; | |
| b.attr("checked", true); | |
| if (a != "") { | |
| partNum = a.substr(a.lastIndexOf("/") + 1, a.length); | |
| if (j) partNum = partNum.split("?")[0]; | |
| else if (a.search(".jpg") !== -1) { | |
| partNum = partNum.split(".")[0]; | |
| partNum = partNum.split("_")[0] | |
| } | |
| } | |
| if (this.iviewer && $.isEmptyObject(this.iviewer) === false) iviewerObj = this.iviewer.getDefaultValues(); | |
| if (b.hasClass("qiSingleVariation")) { | |
| this.isSingleVariation = true; | |
| this.invokeQICbHandlers(1, d, f); | |
| if (typeof f !== "undefined" && f !== "") { | |
| b = this.qiExtPackaging(f); | |
| if (typeof b !== "undefined" && b != "") b == "extpkghide" ? g.addClass("hidden").html("") : g.removeClass("hidden").html("<span id='extMsg'><strong class='bold-black-text'>Is this a gift?</strong> Please note that this item ships in its own packaging and will not be concealed.</span>") | |
| } | |
| if ((a.search(".jpg") !== -1 || a != "" && j) && this.iviewer && $.isEmptyObject(this.iviewer) === | |
| false) { | |
| if (typeof partNum !== "undefined" && partNum !== "") { | |
| $(".zoomItemPartNum").val(partNum); | |
| this.iviewer.createAltImages(partNum) | |
| } | |
| this.initHeroImage(); | |
| this.iviewer.loadImage(a, "", iviewerObj.min) | |
| } | |
| } else if (b.hasClass("qiWithVariation")) { | |
| this._updateVariations(d); | |
| itemObj.quickInfo_image = b.attr("src"); | |
| b = $("#QuickView select.refreshContents"); | |
| g = b.find("option:selected").val(); | |
| b = b.find("option:selected").attr("catid"); | |
| if (typeof b !== "undefined" && b !== "") { | |
| this.isSingleVariation = true; | |
| this.invokeQICbHandlers(2, | |
| g, b) | |
| } else { | |
| this.isSingleVariation = false; | |
| this.invokeQICbHandlers(2, null, null) | |
| } | |
| if ((a.search(".jpg") !== -1 || a != "" && j) && this.iviewer && $.isEmptyObject(this.iviewer) === false) { | |
| if (typeof partNum !== "undefined" && partNum !== "") { | |
| $(".zoomItemPartNum").val(partNum); | |
| this.iviewer.createAltImages(partNum) | |
| } | |
| this.initHeroImage(true); | |
| this.iviewer.loadImage(a, "", iviewerObj.min) | |
| } | |
| this.imageQICb(true, itemObj, true, a) | |
| } | |
| }, | |
| invokeQICbHandlers: function(a, b, d) { | |
| var f = this, | |
| g = $("#QuickView"), | |
| j = g.find("#collectionSeeLowPrice").length ? g.find("#collectionSeeLowPrice").attr("pid") : | |
| null; | |
| j = g.find("#fetchQIRefreshContent").length ? g.find("#fetchQIRefreshContent").attr("pid") : j; | |
| var l = g.find("#seeLowprice"), | |
| o = g.find("#seeLowPriceLink"), | |
| v = g.find("#seeLPLinkBtn"), | |
| A = Target.controller.PDPCache, | |
| C = $(".isProductBuyable").val(), | |
| q = Target.controller.reviewed.cookie.read("Pref"); | |
| updateMapPriceInfo = function(K, Q) { | |
| var n = noOfObj = ""; | |
| if (K && Q) { | |
| n = eval("(" + $("#catEntryStatusVS").html() + ")"); | |
| for (noOfObj = 0; noOfObj < n.length; noOfObj++) | |
| if (n[noOfObj].catentry_id === Q) { | |
| g.find("#tileImageVS").attr("src", n[noOfObj].PrimaryImage); | |
| var G = n[noOfObj].shipFromStore; | |
| if (q.indexOf("SFS=Y") != -1 && C == "1" && (n[noOfObj].channelCode != "1" && n[noOfObj].invCode == "6" || n[noOfObj].channelCode == "1") && G == "Y") { | |
| G = function(t, z) { | |
| if (typeof t !== undefined && t !== "" && $.isEmptyObject(t) !== true && t.availability_status == "In Stock" && t.saleable_quantity > "0") { | |
| o.hide(); | |
| l.show(); | |
| g.find("#OrderItemAddForm_catEntryId_" + K).val(Q); | |
| g.find("#OrderItemAddForm_productId_" + K).val(Q) | |
| } else { | |
| l.hide(); | |
| o.show(); | |
| z = z.replace(/&/g, "&"); | |
| v.attr("href", z) | |
| } | |
| }; | |
| var p = f._eshashMap; | |
| p != "undefined" && | |
| p && $.isEmptyObject(p) !== "true" ? G(f._eshashMap[dpci], n[noOfObj].url) : f.esCartDisplay(G, n[noOfObj].dpci, n[noOfObj].url) | |
| } else { | |
| l.hide(); | |
| o.show(); | |
| G = n[noOfObj].url; | |
| G = G.replace(/&/g, "&"); | |
| v.attr("href", G) | |
| } | |
| } | |
| } | |
| }; | |
| d || (d = j); | |
| b && a == 1 && g.find(".colorValHolderQI").html(b); | |
| if (typeof A !== "undefined" && d !== "") | |
| if (l[0] !== undefined) try { | |
| updateMapPriceInfo(j, d) | |
| } catch (I) {} else { | |
| g.find("#OrderItemAddForm_catEntryId_" + j).val(d); | |
| g.find("#OrderItemAddForm_productId_" + j).val(d); | |
| A.handlePriceCache(d, false) | |
| } | |
| }, | |
| promoQICb: function(a, | |
| b, d) { | |
| if (extpkgQI && typeof this._hashMap[d] != "undefined") { | |
| b = this._hashMap[d].Attributes.REVIEW_CONTENT_PROVIDER; | |
| expReviewSrc = typeof b !== "undefined" ? b : "" | |
| } else expReviewSrc = ""; | |
| if (a) { | |
| b = $("#promotions_QI"); | |
| d = a.promoCallOut; | |
| var f = $("#PromoCallOut"), | |
| g = a.tabs.isCNETReviewTab, | |
| j = a.promo, | |
| l = $("#cnet_reviewQI"), | |
| o = $("#babyCenter_review"), | |
| v = b.find("#overviewPromo"); | |
| store = this._eshashMap[a.dpci]; | |
| pickUpInStore = a.pickUpInStore; | |
| isDisplayCouponLink = a.inventory.isDisplayCouponLink; | |
| isITARequired = a.inventory.isITARequired; | |
| freeGiftPromotion = a.promo.freeGift.freeGiftPromotion; | |
| freeGiftLinkText = a.promo.freeGift.freeGiftLinkText; | |
| freeGiftOverlayUrl = a.promo.freeGift.freeGiftOverlayUrl; | |
| freeGift_promo_url = a.promo.freeGift.freeGift_promo_url; | |
| freeGift_overlay_visible = a.promo.freeGift.FreeGiftOverlayVisible; | |
| freeGiftOverlayDiffentiator = freeGift_overlay_visible == true || freeGift_overlay_visible == "true" ? "multipleFreePromotion" : "singleFreePromotion"; | |
| fgItmPriceRange = a.promo.freeGift.fgItmPriceRange; | |
| freeGftDet = a.promo.freeGift; | |
| itaAvailability = | |
| false; | |
| $("#FreeGiftOverlayDisplay").val(freeGift_overlay_visible); | |
| $("#freeGiftOverlayUrl").val(freeGiftOverlayUrl); | |
| if (store != null) | |
| if (typeof pickUpInStore !== "undefined" && pickUpInStore == "Y") | |
| if (store.availability_status == "In Stock" && store.saleable_quantity > "0") itaAvailability = true; | |
| if (f.length > 0) { | |
| f.empty(); | |
| $("#PromoCallOutBlockQI").tmpl(d, { | |
| strTrim: function(A) { | |
| return A.replace(/\s/g, "").toLowerCase() | |
| } | |
| }).appendTo(f) | |
| } | |
| if (typeof b !== "undefined") { | |
| v.remove(); | |
| b.empty(); | |
| $(".free-promotion-offer").remove() | |
| } | |
| if (typeof l !== | |
| "undefined") | |
| if (g == "true") l.show().addClass("shownCnet"); | |
| else g == "false" && l.hide().removeClass("shownCnet"); | |
| expReviewSrc == "1" ? o.removeClass("hidden").addClass("shownBabycenter") : o.addClass("hidden").removeClass("shownBabycenter"); | |
| if (j.overview.length > 0) { | |
| $(b).empty(); | |
| $("#promoQI-template").tmpl(j, { | |
| itaAvailability: itaAvailability, | |
| isDisplayCouponLink: isDisplayCouponLink, | |
| isITARequired: isITARequired, | |
| freeGiftPromotion: freeGiftPromotion, | |
| freeGiftLinkText: freeGiftLinkText, | |
| freeGiftOverlayUrl: freeGiftOverlayUrl, | |
| freeGiftLinkClass: freeGiftOverlayDiffentiator, | |
| freeGiftprice: fgItmPriceRange | |
| }).appendTo(b) | |
| } else if (freeGiftPromotion == true) { | |
| $(b).empty(); | |
| $("#FreeGiftTmpl").tmpl(j, { | |
| freeGiftPromotion: freeGiftPromotion, | |
| freeGiftLinkText: freeGiftLinkText, | |
| freeGiftOverlayUrl: freeGiftOverlayUrl, | |
| freeGift_promo_url: freeGift_promo_url, | |
| freeGiftLinkClass: freeGiftOverlayDiffentiator, | |
| freeGiftprice: fgItmPriceRange | |
| }).appendTo(b) | |
| } | |
| if (typeof freeGiftPromotion !== "undefined" && freeGiftPromotion == true) { | |
| b.hasClass("freeGiftWithPadding") || | |
| b.addClass("freeGiftWithPadding"); | |
| if (typeof freeGift_overlay_visible !== "undefined" && freeGift_overlay_visible == "false") { | |
| $("#singleFreeGiftPDP").empty(); | |
| !$("#singleFreeGiftPDP").length && b.append('<div id="singleFreeGiftPDP" class="tooltipBox" tabindex="0"></div>'); | |
| $("#SingleFGToolTipTmpl").tmpl(freeGftDet).appendTo("#singleFreeGiftPDP") | |
| } | |
| } else b.hasClass("freeGiftWithPadding") && b.removeClass("freeGiftWithPadding") | |
| } | |
| }, | |
| priceQICb: function(a) { | |
| var b = a.retPolicy_msg, | |
| d = a.catent_type, | |
| f = a.inventory.channel_code, | |
| g = a.inventory.inv_code, | |
| j = a.price.subscriptionPrice, | |
| l = a.price.subscriptionPricePerUnit, | |
| o = $("#retPolicy"), | |
| v = $("#itemLevelService"), | |
| A = $("#subscribeme"), | |
| C = $("#staticTextData"); | |
| C = (C = typeof C !== "undefined" ? C.attr("data-json") : null) ? $.parseJSON(C) : null; | |
| var q = false, | |
| I = "", | |
| K = typeof a.price.formattedOfferPrice !== "undefined" ? a.price.formattedOfferPrice : ""; | |
| if (v.length && f != "1" && g != "3" && g != "4" && g != "5" && g != "6") { | |
| v.show(); | |
| q = true | |
| } else if (v.length) { | |
| v.hide(); | |
| if (A.is(":checked")) { | |
| A.attr("checked", false); | |
| $("#itemLevelService--input").hide() | |
| } | |
| } | |
| if (q && | |
| j != "") { | |
| typeof l !== "undefined" && l !== "" ? I = '<span class="pricePUnit">(' + l + "/per unit)</span>" : I = ""; | |
| $("#itemLevelService--text").find("#subscribePrice").html('<span class="price">' + j + '</span><span class="priceType"> ' + C.subscribeMsg + "</span>" + I) | |
| } else $("#itemLevelService--text").find("#subscribePrice").html('<span class="priceType">' + C.subscribeMsg + "</span>"); | |
| K == "Too low to display" && q && $("#itemLevelService--text").find("#subscribePrice").html(""); | |
| $(".productInfoBlock .quickInfoSumDetails #qi_price_main,#multipackPPU").empty(); | |
| $("#priceQI-template").tmpl(a).appendTo("#qi_price_main"); | |
| $("#ppuQI-template").tmpl(a).appendTo("#multipackPPU"); | |
| if (o != "undefined" && d == "ITEM") { | |
| o.empty(); | |
| if (null != b && b != "") { | |
| o.hasClass("hidden") && o.removeClass("hidden"); | |
| $(o).append("<span id='omni_QI_retPolicy'>" + b + "</span>"); | |
| a = $("#omni_QI_retPolicy a").attr("href"); | |
| $("#omni_QI_retPolicy a").attr("href", a) | |
| } | |
| } else if (o != "undefined" && d == "PRODUCT") o.hasClass("hidden") || o.addClass("hidden") | |
| }, | |
| imageQICb: function() {}, | |
| buttonsQICb: function(a, b, d) { | |
| if (a) | |
| if (a && | |
| b) { | |
| var f = this, | |
| g = a.catent_type, | |
| j = Target.controller.reviewed.cookie.read("Pref"), | |
| l = a.dpci, | |
| o = a.inventory.inv_code, | |
| v = a.inventory.sup_msg, | |
| A = a.inventory.channel_code, | |
| C = $("#QuickView"), | |
| q = C.find("#textblock1"), | |
| I = C.find("#textblock2"), | |
| K = C.find("#buttons-links"), | |
| Q = C.find("#input-step-Quantity"), | |
| n = C.find("#pre-order-notsell"), | |
| G = $("input[name=fiatsURL]").val(), | |
| p = $(".quantity").val(), | |
| t = "", | |
| z = $("input[name=notifyURL]").val(); | |
| C.find("#catentryTypeSFS").val(); | |
| var D = $("#staticTextData"); | |
| var M = (D = typeof D !== "undefined" ? | |
| D.attr("data-json") : null) ? $.parseJSON(D) : null; | |
| D = M.subscribeShipMsg; | |
| var B = a.marketPU, | |
| m = a.marketSFS, | |
| u = $("#checkMarketPlace").length > 0 ? $("#checkMarketPlace").val() : ""; | |
| m = f._isMarketEligible(m); | |
| f._isMarketEligible(B); | |
| B = j && j.indexOf("SFS=Y") != -1 ? "Y" : ""; | |
| var y = Target.controller.header.cookie.read("cpref"); | |
| y = typeof y != "undefined" && y != null ? y.split("=") : ""; | |
| y = typeof y !== "undefined" && y !== null ? y[1] : ""; | |
| var H = a.shipFromStore, | |
| J = typeof $("#contractPhones") !== "undefined" ? $("#contractPhones").val() : "", | |
| R = typeof $("#qinfo #subscribeme") !== | |
| "undefined" && $("#qinfo #subscribeme").length ? 1 : 0, | |
| U = a.promo.shipAndHandlingPromo[0], | |
| X = typeof C.find("[id^=entitledItem]") !== "undefined" && C.find("[id^=entitledItem]").length ? false : true; | |
| if (typeof j != "undefined" && j != null && j.indexOf("SFS=Y") != -1) B = "Y"; | |
| if (!$("#entitledItem").length) | |
| if (J == "Contract" && g == "ITEM" && (A == "0" || A == "2")) return false; | |
| if (!M) return false; | |
| if (g != "BUNDLE") { | |
| K.hasClass("hidden") && K.removeClass("hidden"); | |
| Q.hasClass("hidden") && Q.removeClass("hidden"); | |
| n != "undefined" && !n.hasClass("hidden") && | |
| n.addClass("hidden"); | |
| q.empty(); | |
| $("#textblock1QI-template").tmpl(a, { | |
| statTxt: M, | |
| isItemSFSEligible: H, | |
| isUserSFSEligible: B, | |
| isESInProgress: f.isESInProgress, | |
| notifyMeURL: z, | |
| shipHandPromoObj: U, | |
| qisubscribemelen: R, | |
| store: f._eshashMap[l], | |
| prefCookie: j, | |
| itaCartLoader: X, | |
| checkMarketPlace: u, | |
| isEligibleforMarketSFS: m, | |
| customFunction: function(ga, ja) { | |
| if (ga === "sub-string") { | |
| ja = ja.substr(ja.indexOf(":") + 2, ja.length); | |
| return $.trim(ja) | |
| } else if (ga === "pre-order-notsell") { | |
| ja = ja; | |
| var la = M.releaseDate, | |
| ka = $("#pre-order-notsell"); | |
| $("#buttons-links").addClass("hidden"); | |
| $("#input-field-quantity").addClass("hidden"); | |
| typeof ka != "undefined" && ka.hasClass("hidden") && ka.removeClass("hidden").html(""); | |
| ja = ja.substr(ja.indexOf(":") + 2, ja.length); | |
| ka.html('<span id="releaseDatetxt">' + la + " " + ja + "</span>") | |
| } else if (ga === "bulkycheck") { | |
| la = ""; | |
| if ($("#isBulkyCheck").length) la = $("#isBulkyCheck").attr("data"); | |
| return la | |
| } else if (ga === "ita") { | |
| la = function(ra) { | |
| if (typeof ra !== undefined && ra !== "" && $.isEmptyObject(ra) !== true) ra.availability_status == "In Stock" && ra.saleable_quantity > 0 && q.html('<p class="butonblock"><button type="submit" name="addToCart" value="1" id="qiAddToCart" class="button addtoCart" title="add to cart"><span class="buttonText screen-reader-only">' + | |
| M.addToCart + "</span></button></p>"); | |
| else if (A == "1") q.html('<p class="txtBold"><span class="x-grey"></span>' + M.channelMsg1 + "</p>"); | |
| else o == "3" ? q.html('<p class="butonblock"><button type="submit" name="addToCart" value="1" id="qiAddToCart" class="button addtoCart" title="add to cart"><span class="buttonText screen-reader-only">' + M.addToCart + '</span></button></p><ul class="promoMsgs"><li><p class="orange-txt"><span class="screen-reader-only">alert </span> ' + (typeof a.inventory != "undefined" && typeof a.inventory.status != | |
| "undefined" ? a.inventory.status : "") + " " + v + "</p></li></ul>") : q.html('<p class="txtBold"><span class="x-grey"></span>' + M.notAvailable + "</p>") | |
| }; | |
| ka = f._eshashMap; | |
| if (typeof ka != "undefined" && f.isESInProgress && ka && $.isEmptyObject(ka) !== "true") la(f._eshashMap[l]); | |
| else if (!f.isESInProgress) { | |
| q.html('<p class="addToCartLoader"><span class="retrieved">retrieving data...</span></p>'); | |
| f.esCartDisplay(la, l) | |
| } | |
| return "" | |
| } | |
| } | |
| }).appendTo(q); | |
| I.empty(); | |
| if (G.length) { | |
| if (p > 1) t = "&quantity=" + p; | |
| G = G.split("?"); | |
| G = G[0] + "?overlayId=FindinStore&catalogEntryID=" + | |
| b + "&partNumber=" + a.partNumber + "&ValidDpci=" + l + t + "&pageType=quickInfo" | |
| } | |
| $("#textblock2QI-template").tmpl(a, { | |
| statTxt: M, | |
| fiatsURL: G, | |
| prefCookie: j, | |
| cprefCookie: y, | |
| checkMarketPlace: u, | |
| subString: function(ga) { | |
| ga = ga.substr(ga.indexOf(":") + 2, ga.length); | |
| return $.trim(ga) | |
| } | |
| }).appendTo(I); | |
| if ($("#qinfo #subscribeme").length) { | |
| U.shippingPromotionMsg != "" ? f._quickInfoShipPromoMsg = U.shippingPromotionMsg : f._quickInfoShipPromoMsg = ""; | |
| C = $("#qinfo #subscribeme"); | |
| b = C.closest("form.order-item").find("#qiAddToCart"); | |
| g = b.find(".buttonText"); | |
| if (C.is(":checked")) { | |
| d == "PRODUCT" ? b.removeClass("addtoCart").removeClass("state-shaded").removeClass("subscribe").addClass("subscribe-faded button") : b.removeClass("addtoCart").removeClass("state-shaded").removeClass("subscribe-faded").addClass("subscribe"); | |
| b.attr("title", "subscribe"); | |
| g.html("subscribe").attr("title", "subscribe"); | |
| $(".shippingPrmLi .shpPrmMsg").html(D) | |
| } else { | |
| d == "PRODUCT" ? b.removeClass("subscribe-faded").removeClass("subscribe").removeClass("button").addClass("state-shaded").addClass("addtoCart") : | |
| b.removeClass("subscribe-faded").removeClass("subscribe").removeClass("state-shaded").addClass("addtoCart"); | |
| b.attr("title", "add to Cart"); | |
| g.html("add to cart").attr("title", "add to cart") | |
| } | |
| } else { | |
| d = $("#qiAddToCart"); | |
| C = C.find("[id^=entitledItem]").length; | |
| if (d.length) | |
| if (f.isSingleVariation || !C) d.addClass("button").removeClass("state-shaded"); | |
| else d.hasClass("state-shaded") || d.removeClass("button").addClass("state-shaded") | |
| } | |
| $(".tipnoteTrigger").tipNote() | |
| } | |
| } | |
| }, | |
| customCb: function(a) { | |
| try { | |
| var b = a.preselect, | |
| d = | |
| b.var1, | |
| f = b.var2, | |
| g = b.vtype, | |
| j = b.ptype; | |
| $("#fetchQIRefreshContent").removeAttr("frmCheckout"); | |
| if (d != "") j == "swatches" ? $("[id='" + d + "']").trigger("click") : $("#attributeType_1").val(d).trigger("change"); | |
| if (f != "" && g == "double") j == "giftcard" ? $("[id='" + f + "']").trigger("click") : $("#attributeType_2").val(f).trigger("change") | |
| } catch (l) { | |
| console.log(l.message) | |
| } | |
| }, | |
| updateUrlCb: function(a, b) { | |
| var d = $("#QuickView"); | |
| urlFinal = url0 = url2 = url3 = ""; | |
| count2 = -1; | |
| var f = a.portability.portableQI, | |
| g = a.portability.zipcode, | |
| j = a.portability.priceOverride; | |
| if (b && d !== undefined) { | |
| if (a) | |
| if (f == "true" && j == "true") d.find("#seoURL3").hasClass("hidden") || d.find("#seoURL3").addClass("hidden"); | |
| else { | |
| d.find("#seoURL2").hasClass("hidden") && d.find("#seoURL2").removeClass("hidden"); | |
| d.find("#seoURL3").hasClass("hidden") && d.find("#seoURL3").removeClass("hidden"); | |
| if (a.seoUrl == "") a.seoUrl = d.find("#seoURL3").attr("href"); | |
| d.find("#seoURL3").attr("href", a.seoUrl + "#?lnk=sc_qi_detailbutton") | |
| } | |
| d.find("form#quickInfo input[name='catEntryId']").val(b); | |
| f == "true" && g != "" && d.find("form#quickInfo input[name='zipcode']").val(b) | |
| } | |
| }, | |
| updateZoomParam: function() {}, | |
| loadQICache: function(a) { | |
| var b = {}; | |
| b = a.find("#fetchQIRefreshContent").attr("pid"); | |
| var d = $("#isPortableQIFlag").attr("rel") == undefined ? false : true, | |
| f = Target.controller.PDPCache; | |
| b = { | |
| context: this, | |
| catid: b ? b : "", | |
| view: true, | |
| elem: "#fetchQIRefreshContent", | |
| promoCb: this.promoQICb, | |
| priceCb: this.priceQICb, | |
| pimage: this.imageQICb, | |
| buttonCb: this.buttonsQICb, | |
| customCb: this.customCb, | |
| urlCb: this.updateUrlCb, | |
| zoomParamCb: this.updateZoomParam | |
| }; | |
| if (d) { | |
| this._isPortable = true; | |
| b = $.extend(b, { | |
| isPortable: true | |
| }) | |
| } else this._isPortable = | |
| false; | |
| try { | |
| f._setPriceJSON(Target.globals.refreshQIItems); | |
| this.updateQICachedItemId(a); | |
| f.load(b) | |
| } catch (g) {} | |
| a = Target.controller.reviewed.cookie.read("esrbResponse"); | |
| $("#esrbResponse").val(a) | |
| }, | |
| updateQICachedItemId: function(a) { | |
| var b = ""; | |
| b = itemObj = {}; | |
| var d = "", | |
| f = Target.controller.PDPCache; | |
| d = Target.controller.header; | |
| var g = $.overlay.currentOverlay; | |
| if (g.data("options")) { | |
| b = g.data("options").content; | |
| g = g.data("options").overlayId; | |
| a = a.find("#fetchQIRefreshContent"); | |
| if (g === "QuickView" && b !== "") { | |
| b = b.split("?")[1]; | |
| if (d && b) { | |
| b = d.unSerialize(b); | |
| if (d.getObjSize(b) > 0) { | |
| d = b.partNumber !== undefined ? b.partNumber : ""; | |
| if (d !== "") { | |
| itemObj = f.getObjByPartNumber(d); | |
| a !== undefined && itemObj !== undefined && a.attr("rel", itemObj.catentry_id) | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| _isMarketEligible: function(a) { | |
| var b = Target.controller.header.cookie.read("cpref"), | |
| d = true; | |
| if (($("#checkMarketPlace").length > 0 ? $("#checkMarketPlace").val() : "") == "true" && typeof a != "undefined" && a != "" && b != null) { | |
| acpref = b.replace("MKT=", ""); | |
| acpref = acpref.split(":"); | |
| $.each(acpref, function(f, g) { | |
| if ($.inArray(g, | |
| a.split(",")) >= 0) { | |
| d = true; | |
| return false | |
| } else d = false | |
| }) | |
| } | |
| return d | |
| }, | |
| esCartDisplay: function(a, b, d) { | |
| var f = this, | |
| g = $.overlay.currentOverlay, | |
| j = $("#saleableQtyAjaxTimeout"), | |
| l = $("#saleableQtyURL"), | |
| o = g.find("#dpciHidden"), | |
| v = $("#ValidDpci"); | |
| v = typeof v !== "undefined" ? v.val() : ""; | |
| var A = ""; | |
| g.find("#catentryTypeSFS").val(); | |
| l = typeof l !== "undefined" ? l.val() : ""; | |
| j = typeof j !== "undefined" ? j.val() : "6000"; | |
| o = typeof o !== "undefined" ? o.val() : ""; | |
| f.isESInProgress = true; | |
| if (typeof o !== "undefined" && o != "") { | |
| o = o.split(","); | |
| vJsonString = ""; | |
| for (i = 0; i < o.length - 1; i++) { | |
| if (i > 0) vJsonString += ","; | |
| vJsonString += JSON.stringify({ | |
| product_id: o[i], | |
| desired_quantity: 1, | |
| multichannel_options: [{ | |
| multichannel_option: "shipguest" | |
| }] | |
| }) | |
| } | |
| A = '{"products": [' + vJsonString + "]}" | |
| } else if (v != "") A = JSON.stringify({ | |
| products: [{ | |
| product_id: v, | |
| desired_quantity: 1, | |
| multichannel_options: [{ | |
| multichannel_option: "shipguest" | |
| }] | |
| }] | |
| }); | |
| if (A != "" && l != "") $.ajax({ | |
| url: l, | |
| type: "post", | |
| dataType: "json", | |
| data: A, | |
| cache: false, | |
| contentType: "application/json; charset=utf-8", | |
| timeout: j, | |
| curtain: false, | |
| success: function(C) { | |
| $(".addToCartLoader ").addClass("hidden"); | |
| f.esHashMap(C); | |
| if (a && b) d != "undefined" ? a(f._eshashMap[b], d) : a(f._eshashMap[b]) | |
| }, | |
| error: function() { | |
| f._eshashMap = {}; | |
| a(f._eshashMap[b]) | |
| } | |
| }); | |
| else { | |
| f._eshashMap = {}; | |
| a(f._eshashMap[b]) | |
| } | |
| }, | |
| esHashMap: function(a) { | |
| var b = this; | |
| products = ""; | |
| products = a != null ? a.products ? a.products : false : false; | |
| b._eshashMap = {}; | |
| products && $.each(products, function(d, f) { | |
| var g = {}; | |
| $.each(f.stores, function(j, l) { | |
| if (l.availability_status == "In Stock" && l.saleable_quantity > 0) { | |
| g = l; | |
| return false | |
| } | |
| }); | |
| b._eshashMap[f.product_id] = g | |
| }) | |
| }, | |
| _setRefreshContentHandler: function() { | |
| var a = | |
| this; | |
| $("#QuickView select.refreshContents").bind("change", function() { | |
| $(this); | |
| var b = $("select.refreshContents option:selected"), | |
| d = b.attr("catid"), | |
| f = b.val(); | |
| b = $("#qiExtPackage"); | |
| var g = $("#fetchQIRefreshContent").length > 0 ? $("#fetchQIRefreshContent") : ""; | |
| if ($.trim(f) === "") { | |
| a.isSingleVariation = false; | |
| g && g.addClass("refreshSelect"); | |
| a.invokeQICbHandlers(2, null, null) | |
| } else if (typeof d !== "undefined" && d !== "") { | |
| g = a.qiExtPackaging(d); | |
| a.isSingleVariation = true; | |
| a.invokeQICbHandlers(2, f, d); | |
| itemObj = a.cacheController._getItemAttributeById(d); | |
| imgSrc = itemObj.quickInfo_image; | |
| d = a.iviewer.getDefaultValues(); | |
| a.iviewer.createAltImages(itemObj.partNumber); | |
| a.iviewer.loadImage(imgSrc, "", d.min); | |
| a.initHeroImage(); | |
| if (typeof g !== "undefined" && g != "") g == "extpkghide" ? b.addClass("hidden").html("") : b.removeClass("hidden").html("<span id='extMsg'><strong class='bold-black-text'>Is this a gift?</strong> Please note that this item ships in its own packaging and will not be concealed.</span>") | |
| } | |
| }) | |
| }, | |
| _updateVariations: function(a) { | |
| var b = Target.controller.header.getItemsByName(a), | |
| d = "", | |
| f = "", | |
| g = false; | |
| relname = sCatEntryId = ""; | |
| var j = $("#QuickView select.refreshContents"); | |
| d = j.find("option:selected").val(); | |
| relname = j.find("option:selected").attr("rel"); | |
| j.html('<option value="">Please make a selection</option>'); | |
| b.items && $.each(b.items, function(A, C) { | |
| var q = "" + C[1]; | |
| if (d == C[1]) { | |
| f = "selected=selected"; | |
| g = true; | |
| sCatEntryId = b.catid[A] | |
| } | |
| q = q.replace(/-quot-/g, '"'); | |
| if (q !== "" && q !== "undefined") { | |
| $("<option catid='" + b.catid[A] + "' value='" + C[1] + "' " + f + ">" + q + "</option>").appendTo(j); | |
| f = "" | |
| } | |
| }); | |
| a = j.find("option:selected").attr("catid"); | |
| var l = $("#qiExtPackage"); | |
| if (typeof a !== "undefined" && a != "") var o = this.qiExtPackaging(a), | |
| v = "<span id='extMsg'><strong class='bold-black-text'>Is this a gift?</strong> Please note that this item ships in its own packaging and will not be concealed.</span>"; | |
| if (typeof o !== "undefined" && o != "") o == "extpkghide" ? l.addClass("hidden").html("") : l.removeClass("hidden").html(v); | |
| if (g) typeof sCatEntryId != "undefined" && sCatEntryId != "" && j.trigger("change"); | |
| else { | |
| o = $("#qiAddToCart"); | |
| o.hasClass("state-shaded") || o.removeClass("button").addClass("state-shaded") | |
| } | |
| }, | |
| _constructDropDownList: function() { | |
| var a = "", | |
| b = $("#QuickView select.refreshContents"); | |
| a = this.header.getItemsByName(); | |
| uniqueNames = Target.controller.header.uniqueArray(a); | |
| if (a.length > 0 && typeof a != "undefined") { | |
| b.html('<option value="">Please make a selection</option>'); | |
| $.each(uniqueNames, function(d, f) { | |
| b.append("<option value='" + f + "'>" + f + "</option>") | |
| }) | |
| } | |
| }, | |
| initHeroImage: function(a) { | |
| var b = {}, | |
| d = this.iviewer.getDefaultValues(), | |
| f = this.iviewer; | |
| b.width = d.min; | |
| b.zoom = 0; | |
| b.min = d.min; | |
| b.max = d.max; | |
| this.iviewer.container.find(".zoomBox").show(); | |
| this.iviewer.container.find(".zoomMessage").hide(); | |
| this.iviewer.reset(); | |
| this.zoomCb(false, f, b); | |
| a != true && a != "undefined" && a != null && this.iviewer.container.find("#Hero").focus() | |
| }, | |
| getSelectedFreeGiftItems: function() { | |
| var a = "", | |
| b = []; | |
| $("#freeGiftSpecialOffers").find("li, .singleItemButton").each(function() { | |
| a = $(this); | |
| a.find(".selectButton").hasClass("free_gift_item_selected") && b.push(a) | |
| }); | |
| return b | |
| }, | |
| mediaPlayer: function() { | |
| function a() { | |
| var d = $("#media-player").find(".tabs-index li"), | |
| f = $("#media-player").find(".tabs-section").hide(), | |
| g = $(".mediaplayer-tabs-section").hide(); | |
| d.bind("click", function() { | |
| var C = $(this), | |
| q = C.find("a").get(0).hash; | |
| d.removeClass("selected"); | |
| C.addClass("selected"); | |
| f.hide().trigger("hide.tabsection"); | |
| g.hide().trigger("hide.tabsection"); | |
| $(q).show().focus().blur().trigger("show.tabsection"); | |
| return false | |
| }); | |
| var j = d.filter("li.selected"); | |
| if (j.length > 0) j.trigger("click"); | |
| else { | |
| d.filter("li:first").addClass("selected"); | |
| f.filter(":first").show(); | |
| g.filter(":first").show() | |
| } | |
| j = $("#image-thumbnails li a"); | |
| var l = $("#image-container img"), | |
| o = $(".media-caption #image-title"), | |
| v = $(".media-caption #image-desc"); | |
| j.click(function() { | |
| l.attr("src", $(this).attr("href")); | |
| o.html($(this).attr("title")); | |
| v.html($(this).attr("desc")); | |
| return false | |
| }); | |
| var A = j.filter("a.selected"); | |
| A.length > 0 ? A.trigger("click") : j.first().trigger("click"); | |
| j.length < 2 && j.parent().parent().hide() | |
| } | |
| function b(d, f) { | |
| var g = new TARGET.EverestVideoPlayer("video-player", d, f, Target.globals.mediapath + "/media/swf/TargetEverestVideoPlayer.swf", "videoPlayer"), | |
| j = $("#video-thumbnails li a"), | |
| l = $(".media-caption #video-title"), | |
| o = $(".media-caption #video-desc"), | |
| v = $(".media-caption #video-time"), | |
| A = $("#video-thumbnails li"), | |
| C = $("#playButton"), | |
| q = $("#pauseButton"), | |
| I = $("#stopButton"), | |
| K = $("#closeButton"); | |
| j.click(function() { | |
| var Q = $(this), | |
| n = Q.get(0).href, | |
| G = n.substring(0, n.indexOf("?poster")), | |
| p = Target.controller.header.unSerialize(n), | |
| t = p.poster, | |
| z = p.captions; | |
| p = p.length; | |
| u5 = Q.attr("rel"); | |
| G = G !== "" ? G : n.substring(0, n.indexOf("?")); | |
| A.removeClass("on"); | |
| Q.parent().addClass("on"); | |
| g.playVideo({ | |
| autoplay: true, | |
| source: G, | |
| poster: t, | |
| allowFullScreen: true, | |
| isCaptioning: true, | |
| captions: z === "false" ? false : z | |
| }); | |
| l.html(Q.attr("title")); | |
| o.html(Q.attr("desc")); | |
| v.html(p); | |
| return false | |
| }); | |
| C.click(function() { | |
| g.play(); | |
| return false | |
| }); | |
| q.click(function() { | |
| g.pause(); | |
| return false | |
| }); | |
| I.click(function() { | |
| g.stop(); | |
| return false | |
| }); | |
| K.click(function() { | |
| g.close(); | |
| return false | |
| }); | |
| C = j.filter("a.selected"); | |
| C.length > 0 ? C.trigger("click") : j.first().trigger("click"); | |
| j.length < 1 && j.parent().parent().parent().parent().hide() | |
| } | |
| $("body").delegate("#media-player", | |
| "overlay-show", | |
| function() { | |
| var d = $(this).attr("id"), | |
| f = w = h = ""; | |
| if (d === "media-player") { | |
| f = 5; | |
| w = 600; | |
| h = 338 | |
| } | |
| $(".media-thumbnails").tileCarousel({ | |
| increment: f, | |
| pagination: true, | |
| centerPagination: false, | |
| encapsulateControls: true | |
| }); | |
| a(); | |
| b(w, h) | |
| }) | |
| }, | |
| registryBackUrl: function() { | |
| var a = Target.controller.header.cookie.read("guestDisplayName"), | |
| b = Target.controller.header.cookie.read("registryCallRequire"), | |
| d = Target.controller.header.cookie.read("registryOverlayCookie"), | |
| f = Target.globals.loadListGRDA + d, | |
| g = $("input[name='jWaitView']"); | |
| if ((d = Target.controller.header.cookie.read("listcallbackUrl")) && $("#listModeFlag").val() == "Y" && a) { | |
| a = Target.controller.header.unSerialize(d).colItem; | |
| b = Target.controller.header.unSerialize(d).pageFrom; | |
| switch (typeof a !== "undefined" && a !== "" ? "col" : typeof b !== "undefined" && b !== "" ? "pdp" : "") { | |
| case "pdp": | |
| Target.controller.globalUtils.addtolistMOD(d, $("#addToListPDP")); | |
| break; | |
| case "col": | |
| Target.controller.globalUtils.addToListColCallback(d, "#" + a) | |
| } | |
| } else if (g.length > 0 && g.val() === "jWaitView") b = "N"; | |
| else a && b === "Y" && | |
| $.ajax({ | |
| url: f, | |
| success: function(j) { | |
| $("#loadList").html(j); | |
| j = $("#pdpRegsitryUrl").attr("href"); | |
| if (typeof j != "undefined" && j != "") { | |
| Target.controller.grda.removeCachedCookie(); | |
| Target.controller.grda.HandleGRDAResponse(j, function() {}) | |
| } | |
| } | |
| }) | |
| }, | |
| gmRegistryBackUrl: function() { | |
| var a = "gmRegistryCallRequire", | |
| b = "gmRegistryOverlayCookie", | |
| d = Target.controller.header.cookie.read("guestDisplayName"); | |
| a = Target.controller.header.cookie.read(a); | |
| b = Target.controller.header.cookie.read(b); | |
| b = decodeURIComponent(b); | |
| if (d && a === "Y") { | |
| Target.controller.header.cookie.erase("gmRegistryCallRequire"); | |
| Target.controller.header.cookie.erase("gmRegistryOverlayCookie"); | |
| $.ajax({ | |
| url: b, | |
| success: function(f) { | |
| console.log("success condition..."); | |
| f.overlayHtml != "" && f.overlayHtml !== "undefined" && $.overlay.load({ | |
| contentOverride: f.overlayHtml, | |
| overlayId: f.overlayId, | |
| template: f.template | |
| }) | |
| } | |
| }) | |
| } | |
| }, | |
| updateShareUrl: function() { | |
| var a = document.location.href, | |
| b = $("#facebookLikeURL"), | |
| d = $("#TwitterShareBtn"), | |
| f = $("#pinit-params"), | |
| g = $("#social-other").find("a.mailbox"), | |
| j = Target.controller.header.unSerialize(location.href).preSelFlag, | |
| l = Target.controller.header.unSerialize(location.href).regMode; | |
| if (typeof j != "undefined" && typeof l != "undefined" && typeof j != "" && typeof l != "") { | |
| j = location.protocol + "//" + location.host + ":80" + location.search; | |
| l = location.protocol + "//" + location.host + location.search; | |
| var o = location.search.substr(1), | |
| v = b.length ? $.parseJSON(b.attr("data-json")) : "", | |
| A = d.length ? d.attr("href") : "", | |
| C = f.length ? $.parseJSON(f.attr("data-json")) : "", | |
| q = g.length ? g.attr("href") : ""; | |
| if (v != "") { | |
| v.url = j; | |
| b.attr("data-json", JSON.stringify(v)) | |
| } | |
| A != "" && | |
| d.attr("href", A.split("...")[0] + "... " + l); | |
| if (C != null && C != "") { | |
| C.url = j; | |
| C.refurl = j; | |
| f.attr("data-json", JSON.stringify(C)) | |
| } | |
| q != null && q != "" && g.attr("href", q + this.prepareParam(q, o)) | |
| } | |
| $("body").delegate(".socialGooolePlus", "click", function() { | |
| var I, K = "https://plus.google.com/share?url=" + encodeURIComponent(a); | |
| I = "height=400,"; | |
| I += "width=800,"; | |
| I += "scrollbars=yes"; | |
| window.open(K, "popupwindow", I).focus(); | |
| return false | |
| }) | |
| }, | |
| prepareParam: function(a, b) { | |
| var d = ""; | |
| a == "" || a == null || b == "" || b == null || (d = a.indexOf("?") != -1 ? "&" + b : | |
| "?" + b); | |
| return d | |
| }, | |
| setAxbFocusElem: function(a) { | |
| Target.controller.header.cookie.erase("axbFocusCookie"); | |
| this.axbFocusElem = typeof a != "undefined" ? a : false | |
| }, | |
| getParameterByName: function(a, b) { | |
| a = a.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]"); | |
| var d = RegExp("[\\?&]" + a + "=([^&#]*)").exec(b); | |
| return d == null ? "" : decodeURIComponent(d[1].replace(/\+/g, " ")) | |
| }, | |
| createAccessibilityCookie: function() { | |
| if (typeof this.axbFocusElem != "undefined" && this.axbFocusElem) { | |
| var a = this.axbFocusElem.attr("id"); | |
| a = typeof a != "undefined" ? a : "no-id"; | |
| Target.controller.header.cookie.create("axbFocusCookie", "#" + a, 1) | |
| } | |
| } | |
| }); | |
| (function(a) { | |
| a.fn.simpleTip = function(b) { | |
| if (this.length) return this.each(function() { | |
| if (a.data(this, "simpleTip")) return this; | |
| a.data(this, "simpleTip", new a.simpleTip(this, b)) | |
| }) | |
| }; | |
| a.simpleTip = function(b, d) { | |
| this.options = a.extend({}, { | |
| x: 0, | |
| y: 0, | |
| width: null, | |
| height: null, | |
| tooltipID: "tooltip-wrapper", | |
| tooltipContentClass: "tip-content", | |
| useContainer: false, | |
| useTitle: false, | |
| useAlt: false, | |
| tipPos: false | |
| }, d || {}); | |
| this.element = a(b); | |
| if (this.element.length) { | |
| this.title = this.element.attr("title"); | |
| this.element.removeAttr("title"); | |
| this.setup() | |
| } | |
| }; | |
| a.simpleTip.prototype = { | |
| setup: function() { | |
| var b = this; | |
| if (a("#" + b.options.tooltipID).length) b.tooltip = a("#" + b.options.tooltipID); | |
| else { | |
| b.tooltip = a('<div id="' + this.options.tooltipID + '"><div class="tooltip-content"></div></div>'); | |
| a("body").append(b.tooltip) | |
| } | |
| b.element.bind("mouseenter", function(d) { | |
| b.display(d) | |
| }); | |
| b.element.bind("mouseleave", function() { | |
| b.hide() | |
| }) | |
| }, | |
| display: function(b) { | |
| var d = { | |
| display: "block", | |
| visibility: "visible" | |
| }; | |
| this.tooltip.css({ | |
| opacity: "0", | |
| display: "none", | |
| height: "auto", | |
| visibility: "hidden" | |
| }); | |
| if (this.options.tipPos) { | |
| var f = parseInt(Math.ceil(this.element.offset().top)), | |
| g = parseInt(Math.ceil(this.element.offset().left)); | |
| d.left = g - 15; | |
| d.top = a.browser.msie ? parseInt(f) - parseInt(63) : parseInt(f) - parseInt(58); | |
| this.options.width = 40; | |
| this.options.height = 40 | |
| } else { | |
| d.left = b.pageX - this.options.x; | |
| d.top = b.pageY + this.options.y - this.tooltip.height() | |
| } | |
| if (this.options.width) d.width = this.options.width; | |
| if (this.options.height) d.height = this.options.height; | |
| b = this.options.useTitle ? b.currentTarget.title : this.options.useAlt ? | |
| b.currentTarget.alt : this.options.useContainer ? a(this.element).html() : this.element.find("." + this.options.tooltipContentClass).html(); | |
| this.tooltip.find(".tooltip-content").html(b); | |
| this.tooltip.stop().css(d).animate({ | |
| opacity: "1", | |
| display: "block", | |
| visibility: "visible" | |
| }, 200) | |
| }, | |
| hide: function() { | |
| this.element.removeClass("tooltip_open"); | |
| a("#" + this.options.tooltipID).css({ | |
| display: "none", | |
| visibility: "hidden" | |
| }) | |
| } | |
| }; | |
| a(window).trigger("register.framework", ["plugin", "simpleTip", a.simpleTip.registration]); | |
| a.fn.tipNote = | |
| function(b) { | |
| if (this.length) return this.each(function() { | |
| if (a.data(this, "tipNote")) return this; | |
| a.data(this, "tipNote", new a.tipNote(this, b)) | |
| }) | |
| }; | |
| a.tipNote = function(b, d) { | |
| this.options = a.extend({}, { | |
| showLeft: false, | |
| focusClass: "hasFocus" | |
| }, d || {}); | |
| this.element = a(b); | |
| this.element.length && this.setup() | |
| }; | |
| a.tipNote.prototype = { | |
| close: null, | |
| isTipOpen: false, | |
| tipnoteRef: null, | |
| tooltipBox: null, | |
| tipnoteText: null, | |
| tipnoteTrigger: null, | |
| setup: function() { | |
| var b = this, | |
| d = b.tipnoteTrigger = b.element, | |
| f = b.tipnoteRef = d.find(".tipnoteRef"), | |
| g = | |
| b.tooltipBox = d.find(".tooltipBox"), | |
| j = b.tipnoteText = g.find(".tipnoteText").attr("tabindex", "-1"), | |
| l = b.close = g.find(".tipnoteClose"); | |
| f.bind("click", function(o) { | |
| o.preventDefault(); | |
| b.showTipNote() | |
| }); | |
| d.bind("mouseenter mouseleave", function(o) { | |
| var v = o.type === "mouseenter" ? "add" : "remove"; | |
| o.type === "mouseenter" ? b.showTipNote() : b.hideTipNote(); | |
| b.handleFocusClass(v) | |
| }); | |
| d.bind("focusin focusout", function(o) { | |
| var v = o.target === f.get(0); | |
| j.get(0); | |
| var A = o.target === l.get(0); | |
| if (o.type === "focusin") | |
| if (v && !b.isTipOpen) b.handleFocusClass("add"); | |
| else if (v && b.isTipOpen) { | |
| b.handleFocusClass("add"); | |
| b.hideTipNote() | |
| } else A && l.removeClass("screen-reader-only"); | |
| else if (v && !b.isTipOpen) b.handleFocusClass("remove"); | |
| else if (A) { | |
| b.handleFocusClass("remove"); | |
| b.hideTipNote() | |
| } | |
| }); | |
| l.bind("click", function(o) { | |
| o.preventDefault(); | |
| b.hideTipNote(); | |
| f.get(0).focus() | |
| }) | |
| }, | |
| handleFocusClass: function(b) { | |
| this.tipnoteTrigger[b + "Class"](this.options.focusClass) | |
| }, | |
| showTipNote: function() { | |
| var b = a(document).width(); | |
| this.tipnoteTrigger.offset().left + this.tipnoteTrigger.width() + | |
| this.tooltipBox.width() + 46 > b || this.options.showLeft ? this.tooltipBox.addClass("showLeft") : this.tooltipBox.removeClass("showLeft"); | |
| this.isTipOpen = true; | |
| this.tooltipBox.show(); | |
| (b = this.tooltipBox.find("h2")) ? b.focus(): this.tipnoteText.focus().attr("role", "alert") | |
| }, | |
| hideTipNote: function() { | |
| this.isTipOpen = false; | |
| this.tipnoteText.removeAttr("role"); | |
| this.close.addClass("screen-reader-only"); | |
| this.tooltipBox.hide() | |
| } | |
| }; | |
| a(window).trigger("register.framework", ["plugin", "tipNote", a.tipNote.registration]); | |
| a(document).ready(function() { | |
| a(".tipnoteTrigger").tipNote() | |
| }) | |
| })(jQuery); | |
| (function(a) { | |
| a.fn.extend({ | |
| ratings: function(b) { | |
| return this.each(function() { | |
| new a.Ratings(this, b) | |
| }) | |
| } | |
| }); | |
| a.Ratings = function(b, d) { | |
| this.options = a.extend({}, { | |
| hoverClass: "hover", | |
| selectedClass: "selected", | |
| halfClasses: "one-half-star two-half-star three-half-star four-half-star" | |
| }, d || {}); | |
| this.element = a(b); | |
| this.selectedIndex = this.currentIndex = 0; | |
| this.labels = this.element.find("label"); | |
| this.radios = this.element.find("input[type=radio]"); | |
| this.InitializeStage() | |
| }; | |
| a.extend(a.Ratings.prototype, { | |
| InitializeStage: function() { | |
| var b = | |
| this; | |
| b.element.parent(".ratings-form-wrapper").addClass("enhanced"); | |
| if (!b.element.hasClass("read-only")) { | |
| b.element.bind("focusout", function(d) { | |
| b.DeactivateRating(d) | |
| }); | |
| b.element.bind("mouseleave", function(d) { | |
| b.DeactivateRating(d) | |
| }); | |
| b.labels.bind("mouseover", function(d) { | |
| b.ActivateRating(d) | |
| }); | |
| b.labels.bind("click", function(d) { | |
| b.DeactivateRating(d) | |
| }); | |
| b.radios.bind("focus", function(d) { | |
| b.ActivateRating(d) | |
| }); | |
| b.radios.bind("change", function(d) { | |
| b.SelectRating(d) | |
| }); | |
| a.browser.webkit && b.radios.bind("click", function(d) { | |
| b.SelectRating(d); | |
| b.DeactivateRating(d) | |
| }) | |
| } | |
| }, | |
| ActivateRating: function(b) { | |
| b = a(b.currentTarget); | |
| var d = b.attr("id"); | |
| if (b.is("label")) var f = this.element.find("#" + b.attr("for")).val(); | |
| else if (b.is('input[type="radio"]')) f = this.element.find("#" + d).val(); | |
| this.element.removeClass(this.options.hoverClass + this.currentIndex); | |
| this.currentIndex = f; | |
| this.element.addClass(this.options.hoverClass + this.currentIndex) | |
| }, | |
| SelectRating: function(b) { | |
| b = a(b.currentTarget); | |
| var d = b.attr("id"); | |
| if (b.is("label")) var f = this.element.find("#" + b.attr("for")).val(); | |
| else if (b.is('input[type="radio"]') && b.attr("checked")) f = this.element.find("#" + d).val(); | |
| this.element.removeClass().addClass("ratings-form"); | |
| this.selectedIndex = f; | |
| this.element.addClass(this.options.selectedClass + this.selectedIndex) | |
| }, | |
| DeactivateRating: function(b) { | |
| var d = this.options.hoverClass + this.currentIndex, | |
| f = this.options.halfClasses; | |
| if (b.type === "mouseleave" || b.type === "focusout") this.options.halfClasses = null; | |
| this.element.removeClass(d + " " + f); | |
| this.currentIndex = 0 | |
| } | |
| }) | |
| })(jQuery); | |
| (function(a) { | |
| a.fn.extend({ | |
| formRatings: function(b) { | |
| return this.each(function() { | |
| new a.FormRatings(this, b) | |
| }) | |
| } | |
| }); | |
| a.FormRatings = function(b, d) { | |
| this.options = a.extend({}, { | |
| className: "rating", | |
| onClassName: "rating_selected", | |
| chosenClassName: "rating_chosen", | |
| containerClass: "ratings-form", | |
| infoPClass: "ratingInfo" | |
| }, d || {}); | |
| this.$element = a(b); | |
| this.selectedIndex = 0; | |
| this.isFocused = false; | |
| this.currentIndex = 0; | |
| this.$LABELs = this.$element.find("li label"); | |
| this.$RADIOs = this.$element.find("li input[type=radio]"); | |
| this.InitializeRatings() | |
| }; | |
| a.extend(a.FormRatings.prototype, { | |
| InitializeRatings: function() { | |
| var b = this; | |
| b.checkForSelectedIndex(); | |
| b.$LABELs.live("mouseover", function(d) { | |
| b.HandleMouseOver(d) | |
| }).live("mouseout", function(d) { | |
| b.HandleMouseOut(d) | |
| }); | |
| b.$RADIOs.live("keyup", function(d) { | |
| if (d.which == 9 || b.IsArrowKey(d.which)) b.HandleKeyUp(d) | |
| }) | |
| }, | |
| checkForSelectedIndex: function() { | |
| this.selectedIndex = this.$LABELs.find("span." + this.options.onClassName).length | |
| }, | |
| HandleMouseOver: function(b) { | |
| this.ActivateRating(b, this.GetIndex(b.target)) | |
| }, | |
| HandleMouseOut: function(b) { | |
| b.type == | |
| "keydown" && this.IsArrowKey(b.which) ? this.DeactivateRating(this.GetIndex(b.target, b.which)) : this.DeactivateRating(this.GetIndex(b.target)) | |
| }, | |
| HandleKeyUp: function(b) { | |
| var d = this.GetIndex(b.target, b.which); | |
| if (this.selectedIndex > d) | |
| if (this.isFocused) this.selectedIndex != 1 && this.ClearRatings(this.selectedIndex, d, true); | |
| else { | |
| this.$RADIOs.eq(this.selectedIndex - 1).focus(); | |
| return this.isFocused = true | |
| } else { | |
| if (this.selectedIndex != 0) | |
| if (this.isFocused) this.ActivateRating(b, d); | |
| else { | |
| this.$RADIOs.eq(this.selectedIndex - | |
| 1).focus(); | |
| return this.isFocused = true | |
| } | |
| this.ActivateRating(b, d) | |
| } | |
| this.selectedIndex = d; | |
| this.isFocused = true | |
| }, | |
| IsArrowKey: function(b) { | |
| return b == 37 || b == 38 || b == 39 || b == 40 ? true : false | |
| }, | |
| GetIndex: function(b, d) { | |
| if (b.tagName.toLowerCase() == "input") { | |
| if (d) { | |
| var f = this.$LABELs.index(a(b).siblings("label").eq(0)) + 1; | |
| if (d == 39 || d == 40) { | |
| if (f != this.$LABELs.length) f += 1 | |
| } else if (d == 37 || d == 38) | |
| if (f != 0) f -= 1 | |
| } else f = this.$LABELs.index(a(b).siblings("label").eq(0)) + 1; | |
| return f | |
| } else return this.$LABELs.index(a(b).parent()) + 1 | |
| }, | |
| ActivateRating: function(b, | |
| d) { | |
| this.selectedIndex < d && this.HighlightRatings(d) | |
| }, | |
| DeactivateRating: function(b) { | |
| this.selectedIndex < b && this.ClearRatings(b, this.selectedIndex) | |
| }, | |
| HighlightRatings: function(b) { | |
| this.$element.find("li label:lt(" + b + ")").find("span:eq(0)").attr("class", this.options.onClassName); | |
| a("." + this.options.infoPClass, this.$element.parent()).html(this.$LABELs.eq(b - 1).children("span:first").html() + this.$LABELs.eq(b - 1).children("span:last").html()) | |
| }, | |
| ClearRatings: function(b, d, f) { | |
| for (d = d ? d : 0; b > d;) { | |
| var g = b - 1; | |
| this.$element.find("li label:eq(" + | |
| g + ")").find("span:eq(0)").attr("class", this.options.className); | |
| b -= 1 | |
| } | |
| if (this.selectedIndex == 0) a("." + this.options.infoPClass, this.$element.parent()).html(""); | |
| else { | |
| g = f ? this.selectedIndex - 2 : this.selectedIndex - 1; | |
| a("." + this.options.infoPClass, this.$element.parent()).html(this.$LABELs.eq(g).children("span:first").html() + " " + this.$LABELs.eq(g).children("span:last").html()) | |
| } | |
| } | |
| }) | |
| })(jQuery); | |
| (function(a) { | |
| a.fn.extend({ | |
| swatches: function(b) { | |
| return this.each(function() { | |
| new a.Swatches(this, b) | |
| }) | |
| } | |
| }); | |
| a.Swatches = function(b, d) { | |
| this.options = a.extend({}, { | |
| wrapper: null, | |
| updateImg: ".hero", | |
| swatchInfoHolder: null, | |
| selectedClassName: "selected", | |
| swatchInfoText: "alt" | |
| }, d || {}); | |
| this.element = a(b); | |
| this.InitializeStage() | |
| }; | |
| a.extend(a.Swatches.prototype, { | |
| SelectedSwatch: null, | |
| InitializeStage: function() { | |
| var b = this; | |
| b.element.bind("click", function(d) { | |
| d = d.target; | |
| if (d.type !== "radio") { | |
| liElem = a(d).closest("li"); | |
| d = liElem.find('input[name=attr-swatchColor],input[name^="input-swatch-color"],input[name=pdp-attr-swatchColor]'); | |
| liElem.parents().find('p[htmlfor="attr-swatchColor"]').remove() | |
| } | |
| b.UpdateMainImage(d); | |
| b.UpdateSwatchArea(d); | |
| b.options.handler !== undefined && b.options.handler.call(b.options.context, b.SelectedSwatch) | |
| }); | |
| b.element.parents("form").bind("reset", function() { | |
| a(this).find(".selected").removeClass("selected") | |
| }) | |
| }, | |
| UpdateMainImage: function(b) { | |
| if (this.options.wrapper !== null) { | |
| b = b.src != "" ? a(b).closest("li").find("input:radio").attr("src") : b.src; | |
| this.element.parents(this.options.wrapper).find(this.options.updateImg).attr("src", | |
| b) | |
| } | |
| }, | |
| UpdateSwatchArea: function(b) { | |
| b = a(b); | |
| this.SelectedSwatch !== null && this.SelectedSwatch.removeClass(this.options.selectedClassName); | |
| this.SelectedSwatch = b.parents("li"); | |
| this.SelectedSwatch.addClass(this.options.selectedClassName); | |
| console.log(this.options); | |
| if (this.options.swatchInfoHolder !== null) this.element.parents(this.options.wrapper).find(this.options.swatchInfoHolder).html(this.options.swatchInfoText === "title" ? b.attr("title") : b.attr("alt")) | |
| } | |
| }) | |
| })(jQuery); | |
| (function(a) { | |
| var b = (a.browser.msie ? "paste" : "input") + ".mask", | |
| d = window.orientation != undefined; | |
| a.mask = { | |
| definitions: { | |
| "9": "[0-9]", | |
| a: "[A-Za-z]", | |
| "*": "[A-Za-z0-9]" | |
| } | |
| }; | |
| a.fn.extend({ | |
| caret: function(f, g) { | |
| if (this.length != 0) | |
| if (typeof f == "number") { | |
| g = typeof g == "number" ? g : f; | |
| return this.each(function() { | |
| if (this.setSelectionRange) this.setSelectionRange(f, g); | |
| else if (this.createTextRange) { | |
| var l = this.createTextRange(); | |
| l.collapse(true); | |
| l.moveEnd("character", g); | |
| l.moveStart("character", f); | |
| l.select() | |
| } | |
| }) | |
| } else { | |
| if (this[0].setSelectionRange) { | |
| f = | |
| this[0].selectionStart; | |
| g = this[0].selectionEnd | |
| } else if (document.selection && document.selection.createRange) { | |
| var j = document.selection.createRange(); | |
| f = 0 - j.duplicate().moveStart("character", -1E5); | |
| g = f + j.text.length | |
| } | |
| return { | |
| begin: f, | |
| end: g | |
| } | |
| } | |
| }, | |
| unmask: function() { | |
| return this.trigger("unmask") | |
| }, | |
| mask: function(f, g) { | |
| if (!f && this.length > 0) { | |
| var j = a(this[0]), | |
| l = j.data("tests"); | |
| return a.map(j.data("buffer"), function(q, I) { | |
| return l[I] ? q : null | |
| }).join("") | |
| } | |
| g = a.extend({ | |
| placeholder: "_", | |
| completed: null | |
| }, g); | |
| var o = a.mask.definitions; | |
| l = []; | |
| var v = f.length, | |
| A = null, | |
| C = f.length; | |
| a.each(f.split(""), function(q, I) { | |
| if (I == "?") { | |
| C--; | |
| v = q | |
| } else if (o[I]) { | |
| l.push(RegExp(o[I])); | |
| if (A == null) A = l.length - 1 | |
| } else l.push(null) | |
| }); | |
| return this.each(function() { | |
| function q(D) { | |
| for (; ++D <= C && !l[D];); | |
| return D | |
| } | |
| function I(D) { | |
| var M = a(this).caret(); | |
| D = D.keyCode; | |
| t = D < 16 || D > 16 && D < 32 || D > 32 && D < 41; | |
| if (M.begin - M.end != 0 && (!t || D == 8 || D == 46)) | |
| for (var B = M.end, m = M.begin; m < B && m < C; m++) | |
| if (l[m]) p[m] = g.placeholder; | |
| if (D == 8 || D == 46 || d && D == 127) { | |
| for (M = M.begin + (D == 46 ? 0 : -1); !l[M] && --M >= 0;); | |
| for (D = | |
| M; D < C; D++) | |
| if (l[D]) { | |
| p[D] = g.placeholder; | |
| B = q(D); | |
| if (B < C && l[D].test(p[B])) p[D] = p[B]; | |
| else break | |
| } | |
| Q(); | |
| G.caret(Math.max(A, M)); | |
| return false | |
| } else if (D == 27) { | |
| G.caret(0, n()); | |
| return false | |
| } | |
| } | |
| function K(D) { | |
| if (t) { | |
| t = false; | |
| return D.keyCode == 8 ? false : null | |
| } | |
| D = D || window.event; | |
| var M = D.charCode || D.keyCode || D.which, | |
| B = a(this).caret(); | |
| if (D.ctrlKey || D.altKey || D.metaKey) return true; | |
| else if (M >= 32 && M <= 125 || M > 186) { | |
| D = q(B.begin - 1); | |
| if (D < C) { | |
| M = String.fromCharCode(M); | |
| if (l[D].test(M)) { | |
| B = D; | |
| for (var m = g.placeholder; B < C; B++) | |
| if (l[B]) { | |
| var u = q(B), | |
| y = p[B]; | |
| p[B] = m; | |
| if (u < C && l[u].test(y)) m = y; | |
| else break | |
| } | |
| p[D] = M; | |
| Q(); | |
| D = q(D); | |
| a(this).caret(D); | |
| g.completed && D == C && g.completed.call(G) | |
| } | |
| } | |
| } | |
| return false | |
| } | |
| function Q() { | |
| return G.val(p.join("")).val() | |
| } | |
| function n(D) { | |
| for (var M = G.val(), B = -1, m = 0, u = 0; m < C; m++) | |
| if (l[m]) { | |
| for (p[m] = g.placeholder; u++ < M.length;) { | |
| var y = M.charAt(u - 1); | |
| if (l[m].test(y)) { | |
| p[m] = y; | |
| B = m; | |
| break | |
| } | |
| } | |
| if (u > M.length) break | |
| } else if (p[m] == M[u] && m != v) { | |
| u++; | |
| B = m | |
| } | |
| if (!(!D && B + 1 < v)) | |
| if (D || B + 1 >= v) { | |
| Q(); | |
| D || G.val(G.val().substring(0, B + 1)) | |
| } | |
| return v ? m : A | |
| } | |
| var G = a(this), | |
| p = a.map(f.split(""), | |
| function(D) { | |
| if (D != "?") return o[D] ? g.placeholder : D | |
| }), | |
| t = false, | |
| z = G.val(); | |
| G.data("buffer", p).data("tests", l); | |
| G.attr("readonly") || G.one("unmask", function() { | |
| G.unbind(".mask").removeData("buffer").removeData("tests") | |
| }).bind("blur.mask", function() { | |
| n(); | |
| G.val() != z && G.change() | |
| }).bind("keydown.mask", I).bind("keypress.mask", K).bind(b, function() { | |
| setTimeout(function() { | |
| G.caret(n(true)) | |
| }, 0) | |
| }); | |
| n() | |
| }) | |
| } | |
| }) | |
| })(jQuery); | |
| Target.register("controller", "grda", { | |
| init: function() { | |
| this.loadInterface() | |
| }, | |
| _linkHandler: null, | |
| ajaxRequest: null, | |
| _loadLink: null, | |
| _headerController: null, | |
| _overlayController: null, | |
| _showCuratin: false, | |
| _selector: null, | |
| _xhr: [], | |
| _hoverDelay: 1E3, | |
| $body: $("body"), | |
| loadInterface: function() { | |
| var a = this; | |
| $("#ShopMenu"); | |
| a._loadLink = $(".pageLoadGRDA"); | |
| a.$body = $("body"); | |
| a.options = { | |
| delayParam: 500, | |
| maxHits: 60, | |
| grdaInterval: "", | |
| grdaParam: "" | |
| }; | |
| a._headerController = Target.controller.header; | |
| a._overlayController = Target.controller.globalOverlay; | |
| a.$body.delegate(".grdaLink", "click", function(b) { | |
| b.preventDefault(); | |
| b = $(this); | |
| var d = { | |
| context: this, | |
| etype: "click" | |
| }; | |
| a._headerController.cookie.erase("isFullPageVisited"); | |
| b.hasClass("axbSetFocus") && a._overlayController.setAxbFocusElem(b); | |
| b.hasClass("loadmodal") ? a.HandleGRDAResponse(d, function() {}, true) : a.HandleGRDAResponse(d, function() {}) | |
| }); | |
| a.$body.delegate(".fullPageLink", "click", function(b) { | |
| b.preventDefault(); | |
| b = $(this); | |
| var d = new Date; | |
| if (typeof b != "undefined") { | |
| var f = b.attr("href"); | |
| if (typeof f != "undefined" && | |
| f != "") f = f + "&accessedOn=" + d.getTime() | |
| } | |
| window.location.href = f | |
| }) | |
| }, | |
| HandleGRDAResponse: function(a, b, d, f) { | |
| var g = this, | |
| j = "", | |
| l = "", | |
| o = "", | |
| v = typeof a.context != "undefined" ? a.context : typeof a.elem != "undefined" ? a.elem : a; | |
| l = typeof a.etype != "undefined" ? a.etype : ""; | |
| if (v && v != undefined) g.options.grdaParam = $(v); | |
| if (typeof a == "string") { | |
| l = a; | |
| o = Target.controller.header.unSerialize(l); | |
| g._showCuratin = o.posCur ? o.posCur : false; | |
| g._selector = o.sel ? o.sel : false | |
| } else if (l == "click") { | |
| l = a.regUrl || g.options.grdaParam.attr("grda"); | |
| j = typeof a.datas != | |
| "undefined" ? a.datas : "" | |
| } else if (l == "hover") l = g.options.grdaParam.attr("grdalink"); | |
| else { | |
| j = l == "customevent" || l == "lazy" ? typeof a.datas != "undefined" ? a.datas : "" : typeof f != "undefined" ? f : g.options.grdaParam.serialize(); | |
| l = g.options.grdaParam.attr("action") | |
| } | |
| g.grdaParam = $(v); | |
| g.callback = b; | |
| g.grdaData = j; | |
| g.callInit(0, g.grdaData, l); | |
| g.grdaParam.hasClass("grdaHover") || d && $.overlay.load({ | |
| contentOverride: '<div id="specifications"><p align="center">one moment...</p><p class="loading"></p></div>', | |
| overlayId: "wait", | |
| closeLink: false, | |
| width: 200, | |
| height: 150 | |
| }); | |
| g.$body.delegate("#wait", "overlay-before-hide", function() { | |
| clearTimeout(g.grdaDelay) | |
| }); | |
| return false | |
| }, | |
| callInit: function(a, b, d, f) { | |
| var g = this; | |
| f = f; | |
| g.grdaDelay = setTimeout(function() { | |
| g.getGrda(b, d, f) | |
| }, a) | |
| }, | |
| callAbort: function() { | |
| if (this._xhr && this._xhr.length > 0) { | |
| var a = this._xhr.pop(); | |
| a && a.abort() | |
| } | |
| }, | |
| getGrda: function(a, b, d) { | |
| var f = this; | |
| d = d ? d : 0; | |
| $.ajaxSetup({ | |
| traditional: true, | |
| cache: false | |
| }); | |
| if (a instanceof Object) a.jsRequest = "true"; | |
| else a += "&jsRequest=true"; | |
| var g = f._headerController.unSerialize(b), | |
| j = { | |
| url: Target.controller.headerNew.getProtocol(b), | |
| data: a, | |
| type: "post", | |
| dataType: "json", | |
| curtain: false, | |
| cache: false, | |
| success: function(l, o, v) { | |
| if ((o = v.getResponseHeader("X-Redirect")) && o !== "") return window.location.replace(o); | |
| if (l != null) { | |
| o = typeof l != "undefined" ? l.status : ""; | |
| if (o === "inprogress") { | |
| f.delayParam += 100; | |
| d += 1; | |
| d < f.options.maxHits ? f.callInit(f.options.delayParam, l, b, d) : d = 0 | |
| } else { | |
| $.hideCurtain(); | |
| switch (o) { | |
| case "complete": | |
| case "customeventcomplete": | |
| if (o == "complete") f.grdaData.responseData = l; | |
| typeof f.callback == | |
| "function" && f.callback(l); | |
| break; | |
| case "command": | |
| $.overlay.activeOverlay && $.overlay.currentOverlay.data("options").overlayId === "wait" && $.overlay.currentOverlay.trigger("close.overlay"); | |
| break; | |
| case "htmlReplace": | |
| f.callback(l); | |
| break; | |
| case "avsError": | |
| Target.controller.avs.openModal(l, "small", "force"); | |
| break; | |
| case "redirectOverLay": | |
| var A = { | |
| content: l.redirectURL, | |
| overlayId: l.overLayId, | |
| overlayType: "modal" | |
| }; | |
| o = {}; | |
| if (l.shareByMailData !== undefined) { | |
| console.log("response..." + l.shareByMailData); | |
| o.data = l.shareByMailData | |
| } | |
| $.overlay.load($.extend(A, | |
| o)); | |
| break; | |
| case "listOverLay": | |
| case "share-options": | |
| v = typeof l.width != "undefined" ? l.width : ""; | |
| var C = typeof l.template != "undefined" ? l.template : ""; | |
| A = o = {}; | |
| $.hideCurtain(); | |
| A = { | |
| contentOverride: l.overlayHtml, | |
| overlayId: l.overLayId, | |
| overlayType: "modal", | |
| width: "", | |
| template: "default" | |
| }; | |
| if (v != "") o.width = v; | |
| if (C != "") o.template = C; | |
| A = $.extend(A, o); | |
| o = $("input[name=preSelFlag_Base]").val(); | |
| if (o == "false" || typeof o == "undefined") $.overlay.load(A); | |
| else if (l.itemAddedStatus == "Added" || l.itemAddedStatus == "PartialAdd") { | |
| $("#" + l.itemOverlay).parent().append(l.overlayHtml); | |
| $.overlay.currentOverlay.trigger("close.overlay", [true]) | |
| } else $.overlay.load(A); | |
| break; | |
| default: | |
| window.location = o === "completePage" ? b + "?" + $.param(l) : o === "completePageLink" ? b.substring(0, b.indexOf("?")) + "?" + $.param(l) : o === "redirect" || o === "urlRedirect" ? l.redirectURL : o === "waitRedirect" ? l.redirectURL + "?" + $.param(l) : "" | |
| } | |
| } | |
| } | |
| }, | |
| error: function() { | |
| console.log(); | |
| return window.location.href = "/GenericApplicationError" | |
| } | |
| }; | |
| if (f._showCuratin && f._selector && g.sel == "#rightContainer") { | |
| extObj1 = { | |
| curtain: { | |
| selector: f._selector, | |
| posCurtain: f._showCuratin | |
| } | |
| }; | |
| j = $.extend(j, extObj1) | |
| } | |
| typeof a.showCurt != "undefined" && $("body").showCurtain(); | |
| (a = $.ajax(j)) && f._xhr.push(a) | |
| }, | |
| handleAVS: function(a) { | |
| if (a.avsFlag == "false" && a.hasError == "N") { | |
| if ($.overlay.currentOverlay) { | |
| self.modalOpenedLink = $("a.overlay-open").attr("href"); | |
| modalOpenedFlag = true | |
| } | |
| Target.controller.avs.openModal(a, "small", "force"); | |
| return false | |
| } else if (a.hasError == "Y") { | |
| form.attr("ACTION", a.errorUrl); | |
| form.get(0).submit() | |
| } else self.redirectPage(a.avsFwdURL) | |
| }, | |
| redirectPage: function(a) { | |
| window.location.href = | |
| a | |
| }, | |
| removeCachedCookie: function() { | |
| var a = Target.controller.reviewed.cookie.read("registryCallRequire"); | |
| Target.controller.reviewed.cookie.read("registryOverlayCookie"); | |
| if (typeof a != "undefined" && (a === "Y" || a === "listDelete" || a === "listCreate")) { | |
| Target.controller.reviewed.cookie.erase("registryCallRequire"); | |
| Target.controller.reviewed.cookie.erase("registryOverlayCookie") | |
| } | |
| }, | |
| _updateRecentlyViewed: function(a) { | |
| $("div.recentlyViewed"); | |
| var b = ""; | |
| b = ""; | |
| var d = Target.globals.userIDForRegistry; | |
| if (typeof d === "undefined") d = | |
| this._headerController.cookie.getUserID(); | |
| if (typeof d != "undefined" && d != null && d != "" && d != "null") { | |
| b = "TGTRnLCookie"; | |
| b = unescape(this._headerController.cookie.read(d + b)); | |
| if (typeof b != "undefined" && b != null && b != "" && b != "null") { | |
| b = b.split("~"); | |
| var f = []; | |
| $.each(b, function(g, j) { | |
| var l = {}, | |
| o = "", | |
| v = j.split(":"); | |
| l.detail = typeof v[0] != "undefined" ? v[0].indexOf("+") != -1 ? v[0].replace(/\+/g, " ") : v[0] : ""; | |
| l.listId = v[1]; | |
| if (v.length > 2) o = v[2]; | |
| l.eventType = o; | |
| f.push(l) | |
| }); | |
| this._constructRecentlyViewed(f, a) | |
| } else this._constructRecentlyViewed([], | |
| a) | |
| } else this._constructRecentlyViewed([], a) | |
| }, | |
| _constructRecentlyViewed: function(a, b) { | |
| var d = "", | |
| f = "", | |
| g = "", | |
| j = "", | |
| l = isList = false; | |
| if (b === "R") { | |
| d = $("div.recentlyViewed"); | |
| f = d.find("input[name=newListGGVURL]").val(); | |
| d.find("p").remove() | |
| } else if (b === "L") { | |
| d = $("div#guest ul.recentlyViewedLists"); | |
| f = $("div#guest").find("input[name=newListGGVURL]").val(); | |
| d.find("li").remove() | |
| } | |
| d.hide(); | |
| d.prev("p.findList").hide(); | |
| if (a.length > 0) { | |
| var o = "", | |
| v = CountL = 0; | |
| $.each(a, function(A, C) { | |
| g = C.detail; | |
| j = g.replace(/[""]/g, """).replace(/[']/g, | |
| "'"); | |
| if (b === "R") { | |
| if (C.eventType == "WD" || C.eventType == "BB") | |
| if (v < 3) { | |
| l = true; | |
| var q = f + "registryType=" + C.eventType; | |
| q += "®istryId=" + C.listId + "&listId=" + C.listId; | |
| o += '<p><a title="' + j + '" href="" grda="' + q + '" class="grdaLink">' + g + "</a></p>"; | |
| v++ | |
| } | |
| } else if (b === "L") | |
| if (C.eventType == "OT" || C.eventType == "other") | |
| if (CountL < 3) { | |
| isList = true; | |
| o += '<li><a title="' + j + '" href="" grda="' + f + "®istryId=" + C.listId + "&listId=" + C.listId + '" class="grdaLink"> ' + g + "</a></li>"; | |
| CountL++ | |
| } | |
| }); | |
| if (b == "R" && l || b == "L" && isList) { | |
| d.show(); | |
| d.prev("p.findList").show(); | |
| d.append(o) | |
| } | |
| } | |
| } | |
| }); | |
| jQuery.extend({ | |
| stringify: this.JSON && this.JSON.stringify ? this.JSON.stringify : function(a) { | |
| var b = typeof a; | |
| if (b != "object" || a === null) { | |
| if (b == "string") a = '"' + a + '"'; | |
| return String(a) | |
| } else { | |
| var d, f, g = [], | |
| j = a && a.constructor == Array; | |
| for (d in a) { | |
| f = a[d]; | |
| b = typeof f; | |
| if (a.hasOwnProperty(d)) { | |
| if (b == "string") f = '"' + f + '"'; | |
| else if (b == "object" && f !== null) f = jQuery.stringify(f); | |
| g.push((j ? "" : '"' + d + '":') + String(f)) | |
| } | |
| } | |
| return (j ? "[" : "{") + String(g) + (j ? "]" : "}") | |
| } | |
| } | |
| }); | |
| var PluckSDK = function() { | |
| function a(P) { | |
| return (P || "").replace(/^(\s|\u00A0)+|(\s|\u00A0)+$/g, "") | |
| } | |
| function b(P) { | |
| return (P != null ? Object.prototype.toString.call(P) : null) === "[object String]" | |
| } | |
| function d(P) { | |
| return (P != null ? Object.prototype.toString.call(P) : null) === "[object Array]" | |
| } | |
| function f(P) { | |
| return (P != null ? Object.prototype.toString.call(P) : null) === "[object Object]" | |
| } | |
| function g(P, O) { | |
| if (!(P instanceof O)) throw "The 'new' keyword must be used when creating a new sdk object"; | |
| } | |
| function j(P, O) { | |
| if (P && O) { | |
| P = P.split(".").pop(); | |
| if (b(O)) | |
| if (parseInt(O).toString() == O) O = parseInt(O); | |
| if (P == "DaysOfWeek") { | |
| if (0 == O) return "None"; | |
| if (1 == O) return "Sunday"; | |
| if (2 == O) return "Monday"; | |
| if (4 == O) return "Tuesday"; | |
| if (8 == O) return "Wednesday"; | |
| if (16 == O) return "Thursday"; | |
| if (32 == O) return "Friday"; | |
| if (64 == O) return "Saturday"; | |
| if (127 == O) return "All"; | |
| var L = o(P, O); | |
| return L.join(",") | |
| } | |
| if (P == "FeedActivityTypes") { | |
| if (0 == O) return "None"; | |
| if (1 == O) return "Comment"; | |
| if (2 == O) return "Review"; | |
| if (4 == O) return "BlogPost"; | |
| if (8 == O) return "ForumPost"; | |
| if (16 == O) return "Photo"; | |
| if (32 == O) return "Video"; | |
| if (64 == O) return "Discussions"; | |
| if (127 == O) return "AllCommunity"; | |
| if (128 == O) return "CustomItem"; | |
| if (256 == O) return "WallPost"; | |
| if (512 == O) return "Badge"; | |
| if (1024 == O) return "CommunityGroupMembership"; | |
| if (2048 == O) return "CustomActivity"; | |
| if (4096 == O) return "Event"; | |
| if (8192 == O) return "UserStatus"; | |
| if (16384 == O) return "Message"; | |
| if (32768 == O) return "Forum"; | |
| if (65536 == O) return "Poll"; | |
| if (131072 == O) return "UserReaction"; | |
| if (262143 == O) return "All"; | |
| if (262144 == O) return "Administrative"; | |
| if (524287 == O) return "AllWithAdministrative"; | |
| L = o(P, O); | |
| return L.join(",") | |
| } | |
| if (P == | |
| "ModerationQueueType") { | |
| if (1 == O) return "Abuse"; | |
| if (2 == O) return "PreModeration"; | |
| if (4 == O) return "Spam"; | |
| L = o(P, O); | |
| return L.join(",") | |
| } | |
| if (P == "ModerationNotesActionType") { | |
| if (0 == O) return "None"; | |
| if (1 == O) return "Approve"; | |
| if (2 == O) return "Block"; | |
| if (4 == O) return "Delete"; | |
| if (7 == O) return "All"; | |
| L = o(P, O); | |
| return L.join(",") | |
| } | |
| } | |
| return null | |
| } | |
| function l(P, O) { | |
| if (P && O) { | |
| P = P.split(".").pop(); | |
| if (!b(O)) return O; | |
| return v(P, O.split(",")) | |
| } | |
| return null | |
| } | |
| function o(P, O) { | |
| if (P && O) { | |
| P = P.split(".").pop(); | |
| if (b(O)) | |
| if (parseInt(O).toString() == O) O = parseInt(O); | |
| if (P == "DaysOfWeek") { | |
| var L = []; | |
| 1 == (1 & O) && L.push("Sunday"); | |
| 2 == (2 & O) && L.push("Monday"); | |
| 4 == (4 & O) && L.push("Tuesday"); | |
| 8 == (8 & O) && L.push("Wednesday"); | |
| 16 == (16 & O) && L.push("Thursday"); | |
| 32 == (32 & O) && L.push("Friday"); | |
| 64 == (64 & O) && L.push("Saturday"); | |
| 127 == (127 & O) && L.push("All"); | |
| return L | |
| } | |
| if (P == "FeedActivityTypes") { | |
| L = []; | |
| 1 == (1 & O) && L.push("Comment"); | |
| 2 == (2 & O) && L.push("Review"); | |
| 4 == (4 & O) && L.push("BlogPost"); | |
| 8 == (8 & O) && L.push("ForumPost"); | |
| 16 == (16 & O) && L.push("Photo"); | |
| 32 == (32 & O) && L.push("Video"); | |
| 64 == (64 & O) && L.push("Discussions"); | |
| 127 == (127 & O) && L.push("AllCommunity"); | |
| 128 == (128 & O) && L.push("CustomItem"); | |
| 256 == (256 & O) && L.push("WallPost"); | |
| 512 == (512 & O) && L.push("Badge"); | |
| 1024 == (1024 & O) && L.push("CommunityGroupMembership"); | |
| 2048 == (2048 & O) && L.push("CustomActivity"); | |
| 4096 == (4096 & O) && L.push("Event"); | |
| 8192 == (8192 & O) && L.push("UserStatus"); | |
| 16384 == (16384 & O) && L.push("Message"); | |
| 32768 == (32768 & O) && L.push("Forum"); | |
| 65536 == (65536 & O) && L.push("Poll"); | |
| 131072 == (131072 & O) && L.push("UserReaction"); | |
| 262143 == (262143 & O) && L.push("All"); | |
| 262144 == (262144 & O) && L.push("Administrative"); | |
| 524287 == (524287 & O) && L.push("AllWithAdministrative"); | |
| return L | |
| } | |
| if (P == "ModerationQueueType") { | |
| L = []; | |
| 1 == (1 & O) && L.push("Abuse"); | |
| 2 == (2 & O) && L.push("PreModeration"); | |
| 4 == (4 & O) && L.push("Spam"); | |
| return L | |
| } | |
| if (P == "ModerationNotesActionType") { | |
| L = []; | |
| 1 == (1 & O) && L.push("Approve"); | |
| 2 == (2 & O) && L.push("Block"); | |
| 4 == (4 & O) && L.push("Delete"); | |
| 7 == (7 & O) && L.push("All"); | |
| return L | |
| } | |
| } | |
| return [] | |
| } | |
| function v(P, O) { | |
| if (P && O && typeof O.length !== "undefined") { | |
| P = P.split(".").pop(); | |
| if (P == "DaysOfWeek") { | |
| for (var L = 0, W = 0; W < O.length; W++) { | |
| value = a(O[W]); | |
| if (value == | |
| "None") L |= 0; | |
| if (value == "Sunday") L |= 1; | |
| if (value == "Monday") L |= 2; | |
| if (value == "Tuesday") L |= 4; | |
| if (value == "Wednesday") L |= 8; | |
| if (value == "Thursday") L |= 16; | |
| if (value == "Friday") L |= 32; | |
| if (value == "Saturday") L |= 64; | |
| if (value == "All") L |= 127 | |
| } | |
| return L | |
| } | |
| if (P == "FeedActivityTypes") { | |
| for (W = L = 0; W < O.length; W++) { | |
| value = a(O[W]); | |
| if (value == "None") L |= 0; | |
| if (value == "Comment") L |= 1; | |
| if (value == "Review") L |= 2; | |
| if (value == "BlogPost") L |= 4; | |
| if (value == "ForumPost") L |= 8; | |
| if (value == "Photo") L |= 16; | |
| if (value == "Video") L |= 32; | |
| if (value == "Discussions") L |= 64; | |
| if (value == | |
| "AllCommunity") L |= 127; | |
| if (value == "CustomItem") L |= 128; | |
| if (value == "WallPost") L |= 256; | |
| if (value == "Badge") L |= 512; | |
| if (value == "CommunityGroupMembership") L |= 1024; | |
| if (value == "CustomActivity") L |= 2048; | |
| if (value == "Event") L |= 4096; | |
| if (value == "UserStatus") L |= 8192; | |
| if (value == "Message") L |= 16384; | |
| if (value == "Forum") L |= 32768; | |
| if (value == "Poll") L |= 65536; | |
| if (value == "UserReaction") L |= 131072; | |
| if (value == "All") L |= 262143; | |
| if (value == "Administrative") L |= 262144; | |
| if (value == "AllWithAdministrative") L |= 524287 | |
| } | |
| return L | |
| } | |
| if (P == "ModerationQueueType") { | |
| for (W = | |
| L = 0; W < O.length; W++) { | |
| value = a(O[W]); | |
| if (value == "Abuse") L |= 1; | |
| if (value == "PreModeration") L |= 2; | |
| if (value == "Spam") L |= 4 | |
| } | |
| return L | |
| } | |
| if (P == "ModerationNotesActionType") { | |
| for (W = L = 0; W < O.length; W++) { | |
| value = a(O[W]); | |
| if (value == "None") L |= 0; | |
| if (value == "Approve") L |= 1; | |
| if (value == "Block") L |= 2; | |
| if (value == "Delete") L |= 4; | |
| if (value == "All") L |= 7 | |
| } | |
| return L | |
| } | |
| } | |
| return null | |
| } | |
| function A() { | |
| for (var P = document.cookie.split(/\s*;\s*/), O = "", L = 0; L < P.length; L++) { | |
| var W = P[L].indexOf("="), | |
| Z = P[L].substr(0, W); | |
| if (Z && Z.toLowerCase() == "at".toLowerCase()) { | |
| O = P[L].substr(W + | |
| 1); | |
| break | |
| } | |
| } | |
| if (O) { | |
| O = decodeURIComponent(O); | |
| P = O.split(/[\?&=]/); | |
| for (L = 0; L < P.length; L++) | |
| if (P[L] && P[L].toLowerCase() == "h") return P[L + 1] | |
| } | |
| if (PluckSDK.athToken) return PluckSDK.athToken; | |
| else if (window.pluckAppProxy && window.pluckAppProxy.ath) return window.pluckAppProxy.ath; | |
| else if (window.pluckAthToken) return window.pluckAthToken | |
| } | |
| function C(P, O) { | |
| return P + (P.indexOf("?") > 0 ? "&" : "?") + O | |
| } | |
| function q() { | |
| if (la.length > 0) | |
| if (K()) | |
| for (; la.length > 0;) { | |
| var P = la.shift(); | |
| J.CallDAPI(P.url, P.request, "PluckSDKflcb", P.asyncToken, document.location.toString()) | |
| } | |
| } | |
| function I() { | |
| var P = document.body.appendChild(document.createElement("div")); | |
| P.id = "PluckSDKflashProxyDIV"; | |
| var O = m; | |
| window.PluckSDKflashready = function() { | |
| var L = document.getElementById("PluckSDKflashProxy"); | |
| if (L != null && typeof L.CallDAPI !== "undefined") { | |
| J = L; | |
| R = true; | |
| q() | |
| } | |
| }; | |
| window.PluckSDKflashstatus = function(L) { | |
| H("pluck flash proxy status: " + L) | |
| }; | |
| P.innerHTML = navigator.userAgent.indexOf("MSIE") != -1 && navigator.userAgent.indexOf("Opera") == -1 ? '<OBJECT id=PluckSDKflashProxy height=0 width=0 classid=clsid:D27CDB6E-AE6D-11cf-96B8-444553540000> <PARAM NAME="FlashVars" VALUE="onLoadCallbackName=PluckSDKflashready&onStatusCallbackName=PluckSDKflashstatus&podRevisionNumber=0"><PARAM NAME="Movie" VALUE="' + | |
| C(O, "onLoadCallbackName=PluckSDKflashready&onStatusCallbackName=PluckSDKflashstatus&podRevisionNumber=0") + '"><PARAM NAME="Src" VALUE="' + C(O, "onLoadCallbackName=PluckSDKflashready&onStatusCallbackName=PluckSDKflashstatus&podRevisionNumber=0") + '"><PARAM NAME="AllowScriptAccess" VALUE="always"><PARAM NAME="AllowNetworking" VALUE="all"><PARAM NAME="AllowFullScreen" VALUE="true"><PARAM NAME="wmode" VALUE="window"><PARAM NAME="Width" VALUE="0"><PARAM NAME="Height" VALUE="0"></OBJECT>' : '<object id="PluckSDKflashProxy" width="0" height="0" type="application/x-shockwave-flash" data="' + | |
| O + '" style="visibility: visible;"><param name="autostart" value="true"/><param name="width" value="0"/><param name="height" value="0"/><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><param name="wmode" value="window"/><param name="flashvars" value="onLoadCallbackName=PluckSDKflashready&onStatusCallbackName=PluckSDKflashstatus&podRevisionNumber=0"/></object>'; | |
| return false | |
| } | |
| function K() { | |
| if (!R && ja) { | |
| ka++; | |
| if (ka <= 1) | |
| if (document.body && (typeof document.readyState == | |
| "undefined" || /loaded|complete/.test(document.readyState))) I(); | |
| else { | |
| var P = I; | |
| if (window.addEventListener) window.addEventListener("load", P, false); | |
| else window.attachEvent ? window.attachEvent("onload", P) : H("pluck addLoadEvent failure") | |
| } | |
| } | |
| return R | |
| } | |
| function Q(P) { | |
| for (var O in P) | |
| if (P.hasOwnProperty(O)) | |
| if (typeof P[O] === "string") { | |
| if (0 == P[O].indexOf(xa)) try { | |
| P[O] = new Date(P[O].substr(xa.length)) | |
| } catch (L) { | |
| try { | |
| P[O] = new Date(P[O].substr(xa.length).replace("GMT", "UTC")) | |
| } catch (W) {} | |
| } | |
| } else if (f(P[O])) Q(P[O]); | |
| else if (d(P[O])) | |
| for (var Z = | |
| 0; Z < P[O].length; Z++) Q(P[O][Z]) | |
| } | |
| function n(P) { | |
| for (var O in P) | |
| if (P.hasOwnProperty(O)) | |
| if ((P[O] != null ? Object.prototype.toString.call(P[O]) : null) === "[object Date]") { | |
| P[O] = xa + P[O].toGMTString(); | |
| P[O] = P[O].replace("UTC", "GMT") | |
| } else if (f(P[O])) n(P[O]); | |
| else if (d(P[O])) | |
| for (var L = 0; L < P[O].length; L++) n(P[O][L]) | |
| } | |
| function G(P, O, L, W) { | |
| var Z = ra[O]; | |
| if (P == null) Z.callback(null, W || "unknown response error"); | |
| else { | |
| W = []; | |
| for (var ia = 0; ia < P.Envelopes.length; ia++) { | |
| var ma = P.Envelopes[ia].Payload; | |
| Q(ma); | |
| W.push(ma) | |
| } | |
| if (y) { | |
| console.group("pluck " + | |
| Z.asyncToken.replace(/request_/, "response_") + " via " + L); | |
| for (ia = 0; ia < W.length; ia++) { | |
| console.group(W[ia].ObjectType); | |
| console.dir(W[ia]); | |
| console.groupEnd() | |
| } | |
| console.groupEnd() | |
| } | |
| Z.callback(W) | |
| } | |
| delete ra[O] | |
| } | |
| function p(P) { | |
| var O = P.url, | |
| L = null; | |
| if (P.hasOwnProperty("chunking")) { | |
| L = P.chunking.chunks.shift(); | |
| O = C(O, "ctk=" + P.chunking.chunkToken + "&crm=" + P.chunking.chunks.length); | |
| P.chunking.chunks.length == 0 ? H("pluck " + P.asyncToken + " via jsonp final chunk " + O.length) : H("pluck " + P.asyncToken + " via jsonp chunk " + O.length) | |
| } else { | |
| L = | |
| P.request; | |
| H("pluck " + P.asyncToken + " via jsonp") | |
| } | |
| window[P.asyncToken] = PluckSDK.jsonpcb(P.asyncToken); | |
| O = C(O, "jsonRequest=" + L + "&cb=" + P.asyncToken); | |
| if (P.bypassBrowserCaching) O = C(O, "u=" + Math.floor(Math.random() * 2147483647)); | |
| P = document.getElementsByTagName("head")[0]; | |
| L = document.createElement("script"); | |
| L.type = "text/javascript"; | |
| L.charset = "UTF-8"; | |
| L.src = O; | |
| P.appendChild(L) | |
| } | |
| function t(P, O) { | |
| var L = X - P.url.length - 200; | |
| escapedJsonRequest = encodeURIComponent(O); | |
| if (escapedJsonRequest.length < L) { | |
| P.request = escapedJsonRequest; | |
| p(P); | |
| return true | |
| } | |
| if (escapedJsonRequest.length > u) { | |
| H("pluck jsonp request size exceeded " + u + " limit"); | |
| return false | |
| } | |
| if (ja) { | |
| if (R) return false; | |
| K() | |
| } | |
| P.bypassBrowserCaching = true; | |
| for (var W = []; O.length > 0;) { | |
| var Z = "", | |
| ia = ""; | |
| Z = O.substr(0, L); | |
| for (ia = encodeURIComponent(Z); ia.length > L;) { | |
| Z = O.substr(0, Z.length - (ia.length - L)); | |
| ia = encodeURIComponent(Z) | |
| } | |
| W.push(ia); | |
| O = O.substr(Z.length) | |
| } | |
| P.chunking = { | |
| chunkToken: "i", | |
| chunks: W | |
| }; | |
| p(P); | |
| return true | |
| } | |
| var z = function(P, O) { | |
| for (var L in O) P[L] = O[L]; | |
| return P | |
| }, | |
| D = { | |
| UserRequest: function(P) { | |
| g(this, | |
| arguments.callee); | |
| this.ObjectType = "Requests.Users.UserRequest"; | |
| return z(this, P) | |
| }, | |
| UserKey: function(P) { | |
| g(this, arguments.callee); | |
| this.ObjectType = "Models.Users.UserKey"; | |
| return z(this, P) | |
| }, | |
| CustomCollectionKey: function(P) { | |
| g(this, arguments.callee); | |
| this.ObjectType = "Models.Custom.CustomCollectionKey"; | |
| return z(this, P) | |
| }, | |
| AddCustomCollectionActionRequest: function(P) { | |
| g(this, arguments.callee); | |
| this.ObjectType = "Requests.Custom.AddCustomCollectionActionRequest"; | |
| return z(this, P) | |
| }, | |
| InsertIntoCollectionActionRequest: function(P) { | |
| g(this, | |
| arguments.callee); | |
| this.ObjectType = "Requests.Custom.InsertIntoCollectionActionRequest"; | |
| return z(this, P) | |
| }, | |
| ItemScoresRequest: function(P) { | |
| g(this, arguments.callee); | |
| this.ObjectType = "Requests.Reactions.ItemScoresRequest"; | |
| return z(this, P) | |
| }, | |
| CommentActionRequest: function(P) { | |
| g(this, arguments.callee); | |
| this.ObjectType = "Requests.Reactions.CommentActionRequest"; | |
| return z(this, P) | |
| }, | |
| PhotoKey: function(P) { | |
| g(this, arguments.callee); | |
| this.ObjectType = "Models.Media.PhotoKey"; | |
| return z(this, P) | |
| }, | |
| ReviewKey: function(P) { | |
| g(this, arguments.callee); | |
| this.ObjectType = "Models.Reactions.ReviewKey"; | |
| return z(this, P) | |
| }, | |
| CommentKey: function(P) { | |
| g(this, arguments.callee); | |
| this.ObjectType = "Models.Reactions.CommentKey"; | |
| return z(this, P) | |
| }, | |
| ExternalResourceKey: function(P) { | |
| g(this, arguments.callee); | |
| this.ObjectType = "Models.External.ExternalResourceKey"; | |
| return z(this, P) | |
| }, | |
| PhotoRequest: function(P) { | |
| g(this, arguments.callee); | |
| this.ObjectType = "Requests.Media.PhotoRequest"; | |
| return z(this, P) | |
| }, | |
| CreateAvatarPhotoActionRequest: function(P) { | |
| g(this, arguments.callee); | |
| this.ObjectType = | |
| "Requests.Media.CreateAvatarPhotoActionRequest"; | |
| return z(this, P) | |
| }, | |
| CreatePhotoActionRequest: function(P) { | |
| g(this, arguments.callee); | |
| this.ObjectType = "Requests.Media.CreatePhotoActionRequest"; | |
| return z(this, P) | |
| }, | |
| SetItemScoreActionRequest: function(P) { | |
| g(this, arguments.callee); | |
| this.ObjectType = "Requests.Reactions.SetItemScoreActionRequest"; | |
| return z(this, P) | |
| }, | |
| ReportAbuseActionRequest: function(P) { | |
| g(this, arguments.callee); | |
| this.ObjectType = "Requests.Moderation.ReportAbuseActionRequest"; | |
| return z(this, P) | |
| }, | |
| DeleteImageRequest: function(P) { | |
| g(this, | |
| arguments.callee); | |
| this.ObjectType = "Requests.Media.DeleteImageRequest"; | |
| return z(this, P) | |
| }, | |
| PathForUserRequest: function(P) { | |
| g(this, arguments.callee); | |
| this.ObjectType = "Requests.Presence.PathForUserRequest"; | |
| return z(this, P) | |
| }, | |
| ActionResponse: function(P) { | |
| g(this, arguments.callee); | |
| this.ObjectType = "Responses.System.ActionResponse"; | |
| return z(this, P) | |
| }, | |
| AbuseClassificationEnum: { | |
| StandardAbuse: "StandardAbuse", | |
| WordFilterAbuse: "WordFilterAbuse", | |
| SpamAbuse: "SpamAbuse", | |
| KeywordWatchList: "KeywordWatchList", | |
| None: "None" | |
| }, | |
| ContentBlockingEnum: { | |
| Unblocked: "Unblocked", | |
| BlockedByAdmin: "BlockedByAdmin" | |
| }, | |
| ActivityAction: { | |
| None: "None", | |
| Added: "Added", | |
| Updated: "Updated", | |
| Deleted: "Deleted", | |
| Open: "Open", | |
| Close: "Close", | |
| Move: "Move", | |
| NotApproved: "NotApproved", | |
| AddedToGallery: "AddedToGallery", | |
| Cleared: "Cleared", | |
| Accepted: "Accepted" | |
| }, | |
| ActivityType: { | |
| AbuseReport: "AbuseReport", | |
| Comment: "Comment", | |
| CustomItem: "CustomItem", | |
| Blog: "Blog", | |
| BlogPost: "BlogPost", | |
| Forum: "Forum", | |
| ForumDiscussion: "ForumDiscussion", | |
| ForumPost: "ForumPost", | |
| PhotoGallery: "PhotoGallery", | |
| VideoGallery: "VideoGallery", | |
| Photo: "Photo", | |
| Video: "Video", | |
| Event: "Event", | |
| CommunityGroup: "CommunityGroup", | |
| CommunityGroupInvitation: "CommunityGroupInvitation", | |
| CommunityGroupUserBan: "CommunityGroupUserBan", | |
| CommunityGroupRegistration: "CommunityGroupRegistration", | |
| CommunityGroupMembership: "CommunityGroupMembership", | |
| Rating: "Rating", | |
| Recommendation: "Recommendation", | |
| Review: "Review", | |
| Message: "Message", | |
| Watch: "Watch", | |
| UserProfile: "UserProfile", | |
| PrivateMessage: "PrivateMessage", | |
| Friend: "Friend", | |
| Image: "Image", | |
| Poll: "Poll", | |
| UserPollAnswer: "UserPollAnswer", | |
| Badging: "Badging" | |
| }, | |
| ApprovalStateEnum: { | |
| PendingApproval: "PendingApproval", | |
| Approved: "Approved", | |
| Rejected: "Rejected", | |
| Deleted: "Deleted" | |
| }, | |
| BlogPostStateSearchTypeEnum: { | |
| Published: "Published", | |
| Draft: "Draft", | |
| All: "All" | |
| }, | |
| ContentPolicyActionEnum: { | |
| Comment: "Comment", | |
| SubmitContent: "SubmitContent", | |
| ReportAbuse: "ReportAbuse", | |
| Create: "Create", | |
| Update: "Update", | |
| Delete: "Delete", | |
| Review: "Review", | |
| All: "All" | |
| }, | |
| ContentPolicyEnum: { | |
| Undefined: "Undefined", | |
| Disallowed: "Disallowed", | |
| Allowed: "Allowed", | |
| ApprovalRequired: "ApprovalRequired" | |
| }, | |
| DaysOfWeek: { | |
| None: "None", | |
| Sunday: "Sunday", | |
| Monday: "Monday", | |
| Tuesday: "Tuesday", | |
| Wednesday: "Wednesday", | |
| Thursday: "Thursday", | |
| Friday: "Friday", | |
| Saturday: "Saturday", | |
| All: "All", | |
| fromString: function(P) { | |
| return l("DaysOfWeek", P) | |
| }, | |
| toString: function(P) { | |
| return j("DaysOfWeek", P) | |
| }, | |
| fromArray: function(P) { | |
| return v("DaysOfWeek", P) | |
| }, | |
| toArray: function(P) { | |
| return o("DaysOfWeek", P) | |
| } | |
| }, | |
| CommunityGroupVisibility: { | |
| Private: "Private", | |
| Public: "Public" | |
| }, | |
| MembershipTier: { | |
| NonMember: "NonMember", | |
| Invited: "Invited", | |
| Pending: "Pending", | |
| Member: "Member", | |
| Manager: "Manager", | |
| GroupAdmin: "GroupAdmin", | |
| All: "All", | |
| Banned: "Banned" | |
| }, | |
| SexEnum: { | |
| Female: "Female", | |
| Male: "Male", | |
| None: "None" | |
| }, | |
| FeedActivityTypes: { | |
| None: "None", | |
| Comment: "Comment", | |
| Review: "Review", | |
| BlogPost: "BlogPost", | |
| ForumPost: "ForumPost", | |
| Photo: "Photo", | |
| Video: "Video", | |
| Discussions: "Discussions", | |
| AllCommunity: "AllCommunity", | |
| CustomItem: "CustomItem", | |
| WallPost: "WallPost", | |
| Badge: "Badge", | |
| CommunityGroupMembership: "CommunityGroupMembership", | |
| CustomActivity: "CustomActivity", | |
| Event: "Event", | |
| UserStatus: "UserStatus", | |
| Message: "Message", | |
| Forum: "Forum", | |
| Poll: "Poll", | |
| UserReaction: "UserReaction", | |
| All: "All", | |
| Administrative: "Administrative", | |
| AllWithAdministrative: "AllWithAdministrative", | |
| fromString: function(P) { | |
| return l("FeedActivityTypes", P) | |
| }, | |
| toString: function(P) { | |
| return j("FeedActivityTypes", P) | |
| }, | |
| fromArray: function(P) { | |
| return v("FeedActivityTypes", P) | |
| }, | |
| toArray: function(P) { | |
| return o("FeedActivityTypes", P) | |
| } | |
| }, | |
| FeedActivityAction: { | |
| Create: "Create", | |
| Update: "Update", | |
| Delete: "Delete" | |
| }, | |
| CopyMediaTypeEnum: { | |
| KeepOriginalMedia: "KeepOriginalMedia", | |
| CreateNewMedia: "CreateNewMedia" | |
| }, | |
| GalleryViewState: { | |
| Open: "Open", | |
| ViewOnly: "ViewOnly", | |
| Closed: "Closed" | |
| }, | |
| PointsAndBadgingState: { | |
| Active: "Active", | |
| Inactive: "Inactive" | |
| }, | |
| BadgeFamilyType: { | |
| Assigned: "Assigned", | |
| Earned: "Earned" | |
| }, | |
| MessageReadState: { | |
| Unread: "Unread", | |
| Read: "Read", | |
| All: "All" | |
| }, | |
| ReviewItemState: { | |
| Active: "Active", | |
| Inactive: "Inactive", | |
| NotDiscoverable: "NotDiscoverable" | |
| }, | |
| ApprovalSetting: { | |
| Everyone: "Everyone", | |
| Nobody: "Nobody", | |
| NoChange: "NoChange" | |
| }, | |
| BlogType: { | |
| Personal: "Personal", | |
| Group: "Group", | |
| Public: "Public" | |
| }, | |
| SearchTypeEnum: { | |
| User: "User", | |
| Comment: "Comment", | |
| Blog: "Blog", | |
| BlogPost: "BlogPost", | |
| ForumPost: "ForumPost", | |
| Gallery: "Gallery", | |
| Photo: "Photo", | |
| Video: "Video", | |
| CommunityGroup: "CommunityGroup", | |
| Event: "Event", | |
| All: "All", | |
| Poll: "Poll", | |
| Review: "Review" | |
| }, | |
| ContentType: { | |
| Article: "Article", | |
| UserPhoto: "UserPhoto", | |
| PublicPhoto: "PublicPhoto", | |
| UserVideo: "UserVideo", | |
| PublicVideo: "PublicVideo", | |
| UserPhotoGallery: "UserPhotoGallery", | |
| PublicPhotoGallery: "PublicPhotoGallery", | |
| PublicVideoGallery: "PublicVideoGallery", | |
| PublicBlog: "PublicBlog", | |
| GroupBlog: "GroupBlog", | |
| UserBlog: "UserBlog", | |
| BlogPost: "BlogPost", | |
| Discussion: "Discussion", | |
| Persona: "Persona", | |
| CommunityGroup: "CommunityGroup", | |
| Review: "Review" | |
| }, | |
| DiscoveryActivity: { | |
| Commented: "Commented", | |
| Rated: "Rated", | |
| Recent: "Recent", | |
| Recommended: "Recommended", | |
| Reviewed: "Reviewed", | |
| MostActive: "MostActive", | |
| MostViewed: "MostViewed", | |
| LeastViewed: "LeastViewed", | |
| Created: "Created", | |
| fromString: function(P) { | |
| return l("DiscoveryActivity", P) | |
| }, | |
| toString: function(P) { | |
| return j("DiscoveryActivity", P) | |
| } | |
| }, | |
| SortEnum: { | |
| TimeStampDescending: "TimeStampDescending", | |
| TimeStampAscending: "TimeStampAscending" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment