EJV1_configCart(1); // jQuery history: 1.1.2, 1.1.4(good cand.), 1.2.3 // ej v24 try { if (typeof jQuery !== "undefined") { if (jQuery.fn.jquery.substr(0, 1) != '$') { (function() { var i, j, k, ej_jqv, jqv; k = 0; ej_jqv = 123; i = ej_jqv.toString().length - 1; jqv = jQuery.fn.jquery.split('.'); for (j = 0; j <= i; j++) { if (jqv[j] == null || typeof jqv[j] == 'undefined') { jqv[j] = 0; } k = k + jqv[j] * Math.pow(10, (i - j)); } if (k > ej_jqv) { EJEJC_PLAYNICE = true; } }()); } } } catch (e) { // } (function() { if (window.jQuery) var w = window.jQuery; var E = window.jQuery = function(a, b) { return new E.prototype.init(a, b) }; if (window.$) var D = window.$; window.$ = E; var u = /^[^<]*(<(.|\s)+>)[^>]*$|^#(\w+)$/; var G = /^.[^:#\[\.]*$/; E.fn = E.prototype = { init: function(d, b) { d = d || document; if (d.nodeType) { this[0] = d; this.length = 1; return this } else if (typeof d == "string") { var c = u.exec(d); if (c && (c[1] || !b)) { if (c[1]) d = E.clean([c[1]], b); else { var a = document.getElementById(c[3]); if (a) if (a.id != c[3]) return E().find(d); else { this[0] = a; this.length = 1; return this } else d = [] } } else return new E(b).find(d) } else if (E.isFunction(d)) return new E(document)[E.fn.ready ? "ready" : "load"](d); return this.setArray(d.constructor == Array && d || (d.jquery || d.length && d != window && !d.nodeType && d[0] != undefined && d[0].nodeType) && E.makeArray(d) || [d]) }, jquery: "1.2.3", size: function() { return this.length }, length: 0, get: function(a) { return a == undefined ? E.makeArray(this) : this[a] }, pushStack: function(b) { var a = E(b); a.prevObject = this; return a }, setArray: function(a) { this.length = 0; Array.prototype.push.apply(this, a); return this }, each: function(a, b) { return E.each(this, a, b) }, index: function(b) { var a = -1; this.each(function(i) { if (this == b) a = i }); return a }, attr: function(c, a, b) { var d = c; if (c.constructor == String) if (a == undefined) return this.length && E[b || "attr"](this[0], c) || undefined; else { d = {}; d[c] = a } return this.each(function(i) { for (c in d) E.attr(b ? this.style : this, c, E.prop(this, d[c], b, i, c)) }) }, css: function(b, a) { if ((b == 'width' || b == 'height') && parseFloat(a) < 0) a = undefined; return this.attr(b, a, "curCSS") }, text: function(b) { if (typeof b != "object" && b != null) return this.empty().append((this[0] && this[0].ownerDocument || document).createTextNode(b)); var a = ""; E.each(b || this, function() { E.each(this.childNodes, function() { if (this.nodeType != 8) a += this.nodeType != 1 ? this.nodeValue : E.fn.text([this]) }) }); return a }, wrapAll: function(b) { if (this[0]) E(b, this[0].ownerDocument).clone().insertBefore(this[0]).map(function() { var a = this; while (a.firstChild) a = a.firstChild; return a }).append(this); return this }, wrapInner: function(a) { return this.each(function() { E(this).contents().wrapAll(a) }) }, wrap: function(a) { return this.each(function() { E(this).wrapAll(a) }) }, append: function() { return this.domManip(arguments, true, false, function(a) { if (this.nodeType == 1) this.appendChild(a) }) }, prepend: function() { return this.domManip(arguments, true, true, function(a) { if (this.nodeType == 1) this.insertBefore(a, this.firstChild) }) }, before: function() { return this.domManip(arguments, false, false, function(a) { this.parentNode.insertBefore(a, this) }) }, after: function() { return this.domManip(arguments, false, true, function(a) { this.parentNode.insertBefore(a, this.nextSibling) }) }, end: function() { return this.prevObject || E([]) }, find: function(b) { var c = E.map(this, function(a) { return E.find(b, a) }); return this.pushStack(/[^+>] [^+>]/.test(b) || b.indexOf("..") > -1 ? E.unique(c) : c) }, clone: function(e) { var f = this.map(function() { if (E.browser.msie && !E.isXMLDoc(this)) { var a = this.cloneNode(true), container = document.createElement("div"); container.appendChild(a); return E.clean([container.innerHTML])[0] } else return this.cloneNode(true) }); var d = f.find("*").andSelf().each(function() { if (this[F] != undefined) this[F] = null }); if (e === true) this.find("*").andSelf().each(function(i) { if (this.nodeType == 3) return; var c = E.data(this, "events"); for (var a in c) for (var b in c[a]) E.event.add(d[i], a, c[a][b], c[a][b].data) }); return f }, filter: function(b) { return this.pushStack(E.isFunction(b) && E.grep(this, function(a, i) { return b.call(a, i) }) || E.multiFilter(b, this)) }, not: function(b) { if (b.constructor == String) if (G.test(b)) return this.pushStack(E.multiFilter(b, this, true)); else b = E.multiFilter(b, this); var a = b.length && b[b.length - 1] !== undefined && !b.nodeType; return this.filter(function() { return a ? E.inArray(this, b) < 0 : this != b }) }, add: function(a) { return !a ? this : this.pushStack(E.merge(this.get(), a.constructor == String ? E(a).get() : a.length != undefined && (!a.nodeName || E.nodeName(a, "form")) ? a : [a])) }, is: function(a) { return a ? E.multiFilter(a, this).length > 0 : false }, hasClass: function(a) { return this.is("." + a) }, val: function(b) { if (b == undefined) { if (this.length) { var c = this[0]; if (E.nodeName(c, "select")) { var e = c.selectedIndex, values = [], options = c.options, one = c.type == "select-one"; if (e < 0) return null; for (var i = one ? e : 0, max = one ? e + 1 : options.length; i < max; i++) { var d = options[i]; if (d.selected) { b = E.browser.msie && !d.attributes.value.specified ? d.text : d.value; if (one) return b; values.push(b) } } return values } else return (this[0].value || "").replace(/\r/g, "") } return undefined } return this.each(function() { if (this.nodeType != 1) return; if (b.constructor == Array && /radio|checkbox/.test(this.type)) this.checked = (E.inArray(this.value, b) >= 0 || E.inArray(this.name, b) >= 0); else if (E.nodeName(this, "select")) { var a = b.constructor == Array ? b : [b]; E("option", this).each(function() { this.selected = (E.inArray(this.value, a) >= 0 || E.inArray(this.text, a) >= 0) }); if (!a.length) this.selectedIndex = -1 } else this.value = b }) }, html: function(a) { return a == undefined ? (this.length ? this[0].innerHTML : null) : this.empty().append(a) }, replaceWith: function(a) { return this.after(a).remove() }, eq: function(i) { return this.slice(i, i + 1) }, slice: function() { return this.pushStack(Array.prototype.slice.apply(this, arguments)) }, map: function(b) { return this.pushStack(E.map(this, function(a, i) { return b.call(a, i, a) })) }, andSelf: function() { return this.add(this.prevObject) }, data: function(d, b) { var a = d.split("."); a[1] = a[1] ? "." + a[1] : ""; if (b == null) { var c = this.triggerHandler("getData" + a[1] + "!", [a[0]]); if (c == undefined && this.length) c = E.data(this[0], d); return c == null && a[1] ? this.data(a[0]) : c } else return this.trigger("setData" + a[1] + "!", [a[0], b]).each(function() { E.data(this, d, b) }) }, removeData: function(a) { return this.each(function() { E.removeData(this, a) }) }, domManip: function(g, f, h, d) { var e = this.length > 1, elems; return this.each(function() { if (!elems) { elems = E.clean(g, this.ownerDocument); if (h) elems.reverse() } var b = this; if (f && E.nodeName(this, "table") && E.nodeName(elems[0], "tr")) b = this.getElementsByTagName("tbody")[0] || this.appendChild(this.ownerDocument.createElement("tbody")); var c = E([]); E.each(elems, function() { var a = e ? E(this).clone(true)[0] : this; if (E.nodeName(a, "script")) { c = c.add(a) } else { if (a.nodeType == 1) c = c.add(E("script", a).remove()); d.call(b, a) } }); c.each(evalScript) }) } }; E.prototype.init.prototype = E.prototype; function evalScript(i, a) { if (a.src) E.ajax({ url: a.src, async: false, dataType: "script" }); else E.globalEval(a.text || a.textContent || a.innerHTML || ""); if (a.parentNode) a.parentNode.removeChild(a) } E.extend = E.fn.extend = function() { var b = arguments[0] || {}, i = 1, length = arguments.length, deep = false, options; if (b.constructor == Boolean) { deep = b; b = arguments[1] || {}; i = 2 } if (typeof b != "object" && typeof b != "function") b = {}; if (length == 1) { b = this; i = 0 } for (; i < length; i++) if ((options = arguments[i]) != null) for (var a in options) { if (b === options[a]) continue; if (deep && options[a] && typeof options[a] == "object" && b[a] && !options[a].nodeType) b[a] = E.extend(b[a], options[a]); else if (options[a] != undefined) b[a] = options[a] } return b }; var F = "jQuery" + (new Date()).getTime(), uuid = 0, windowData = {}; var H = /z-?index|font-?weight|opacity|zoom|line-?height/i; E.extend({ noConflict: function(a) { window.$ = D; if (a) window.jQuery = w; return E }, isFunction: function(a) { return !!a && typeof a != "string" && !a.nodeName && a.constructor != Array && /function/i.test(a + "") }, isXMLDoc: function(a) { return a.documentElement && !a.body || a.tagName && a.ownerDocument && !a.ownerDocument.body }, globalEval: function(a) { a = E.trim(a); if (a) { var b = document.getElementsByTagName("head")[0] || document.documentElement, script = document.createElement("script"); script.type = "text/javascript"; if (E.browser.msie) script.text = a; else script.appendChild(document.createTextNode(a)); b.appendChild(script); b.removeChild(script) } }, nodeName: function(b, a) { return b.nodeName && b.nodeName.toUpperCase() == a.toUpperCase() }, cache: {}, data: function(c, d, b) { c = c == window ? windowData : c; var a = c[F]; if (!a) a = c[F] = ++uuid; if (d && !E.cache[a]) E.cache[a] = {}; if (b != undefined) E.cache[a][d] = b; return d ? E.cache[a][d] : a }, removeData: function(c, b) { c = c == window ? windowData : c; var a = c[F]; if (b) { if (E.cache[a]) { delete E.cache[a][b]; b = ""; for (b in E.cache[a]) break; if (!b) E.removeData(c) } } else { try { delete c[F] } catch (e) { if (c.removeAttribute) c.removeAttribute(F) } delete E.cache[a] } }, each: function(c, a, b) { if (b) { if (c.length == undefined) { for (var d in c) if (a.apply(c[d], b) === false) break } else for (var i = 0, length = c.length; i < length; i++) if (a.apply(c[i], b) === false) break } else { if (c.length == undefined) { for (var d in c) if (a.call(c[d], d, c[d]) === false) break } else for (var i = 0, length = c.length, value = c[0]; i < length && a.call(value, i, value) !== false; value = c[++i]) {} } return c }, prop: function(b, a, c, i, d) { if (E.isFunction(a)) a = a.call(b, i); return a && a.constructor == Number && c == "curCSS" && !H.test(d) ? a + "px" : a }, className: { add: function(c, b) { E.each((b || "").split(/\s+/), function(i, a) { if (c.nodeType == 1 && !E.className.has(c.className, a)) c.className += (c.className ? " " : "") + a }) }, remove: function(c, b) { if (c.nodeType == 1) c.className = b != undefined ? E.grep(c.className.split(/\s+/), function(a) { return !E.className.has(b, a) }).join(" ") : "" }, has: function(b, a) { return E.inArray(a, (b.className || b).toString().split(/\s+/)) > -1 } }, swap: function(b, c, a) { var e = {}; for (var d in c) { e[d] = b.style[d]; b.style[d] = c[d] } a.call(b); for (var d in c) b.style[d] = e[d] }, css: function(d, e, c) { if (e == "width" || e == "height") { var b, props = { position: "absolute", visibility: "hidden", display: "block" }, which = e == "width" ? ["Left", "Right"] : ["Top", "Bottom"]; function getWH() { b = e == "width" ? d.offsetWidth : d.offsetHeight; var a = 0, border = 0; E.each(which, function() { a += parseFloat(E.curCSS(d, "padding" + this, true)) || 0; border += parseFloat(E.curCSS(d, "border" + this + "Width", true)) || 0 }); b -= Math.round(a + border) } if (E(d).is(":visible")) getWH(); else E.swap(d, props, getWH); return Math.max(0, b) } return E.curCSS(d, e, c) }, curCSS: function(e, k, j) { var d; function color(b) { if (!E.browser.safari) return false; var a = document.defaultView.getComputedStyle(b, null); return !a || a.getPropertyValue("color") == "" } if (k == "opacity" && E.browser.msie) { d = E.attr(e.style, "opacity"); return d == "" ? "1" : d } if (E.browser.opera && k == "display") { var c = e.style.outline; e.style.outline = "0 solid black"; e.style.outline = c } if (k.match(/float/i)) k = y; if (!j && e.style && e.style[k]) d = e.style[k]; else if (document.defaultView && document.defaultView.getComputedStyle) { if (k.match(/float/i)) k = "float"; k = k.replace(/([A-Z])/g, "-$1").toLowerCase(); var h = document.defaultView.getComputedStyle(e, null); if (h && !color(e)) d = h.getPropertyValue(k); else { var f = [], stack = []; for (var a = e; a && color(a); a = a.parentNode) stack.unshift(a); for (var i = 0; i < stack.length; i++) if (color(stack[i])) { f[i] = stack[i].style.display; stack[i].style.display = "block" } d = k == "display" && f[stack.length - 1] != null ? "none" : (h && h.getPropertyValue(k)) || ""; for (var i = 0; i < f.length; i++) if (f[i] != null) stack[i].style.display = f[i] } if (k == "opacity" && d == "") d = "1" } else if (e.currentStyle) { var g = k.replace(/\-(\w)/g, function(a, b) { return b.toUpperCase() }); d = e.currentStyle[k] || e.currentStyle[g]; if (!/^\d+(px)?$/i.test(d) && /^\d/.test(d)) { var l = e.style.left, runtimeStyle = e.runtimeStyle.left; e.runtimeStyle.left = e.currentStyle.left; e.style.left = d || 0; d = e.style.pixelLeft + "px"; e.style.left = l; e.runtimeStyle.left = runtimeStyle } } return d }, clean: function(l, h) { var k = []; h = h || document; if (typeof h.createElement == 'undefined') h = h.ownerDocument || h[0] && h[0].ownerDocument || document; E.each(l, function(i, d) { if (!d) return; if (d.constructor == Number) d = d.toString(); if (typeof d == "string") { d = d.replace(/(<(\w+)[^>]*?)\/>/g, function(b, a, c) { return c.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i) ? b : a + ">" }); var f = E.trim(d).toLowerCase(), div = h.createElement("div"); var e = !f.indexOf("", ""] || !f.indexOf("", ""] || f.match(/^<(thead|tbody|tfoot|colg|cap)/) && [1, "", "
"] || !f.indexOf("", ""] || (!f.indexOf("", ""] || !f.indexOf("", ""] || E.browser.msie && [1, "div
", "
"] || [0, "", ""]; div.innerHTML = e[1] + d + e[2]; while (e[0]--) div = div.lastChild; if (E.browser.msie) { var g = !f.indexOf("" && f.indexOf("= 0; --j) if (E.nodeName(g[j], "tbody") && !g[j].childNodes.length) g[j].parentNode.removeChild(g[j]); if (/^\s/.test(d)) div.insertBefore(h.createTextNode(d.match(/^\s*/)[0]), div.firstChild) } d = E.makeArray(div.childNodes) } if (d.length === 0 && (!E.nodeName(d, "form") && !E.nodeName(d, "select"))) return; if (d[0] == undefined || E.nodeName(d, "form") || d.options) k.push(d); else k = E.merge(k, d) }); return k }, attr: function(d, e, c) { if (!d || d.nodeType == 3 || d.nodeType == 8) return undefined; var f = E.isXMLDoc(d) ? {} : E.props; if (e == "selected" && E.browser.safari) d.parentNode.selectedIndex; if (f[e]) { if (c != undefined) d[f[e]] = c; return d[f[e]] } else if (E.browser.msie && e == "style") return E.attr(d.style, "cssText", c); else if (c == undefined && E.browser.msie && E.nodeName(d, "form") && (e == "action" || e == "method")) return d.getAttributeNode(e).nodeValue; else if (d.tagName) { if (c != undefined) { if (e == "type" && E.nodeName(d, "input") && d.parentNode) throw "type property can't be changed"; d.setAttribute(e, "" + c) } if (E.browser.msie && /href|src/.test(e) && !E.isXMLDoc(d)) return d.getAttribute(e, 2); return d.getAttribute(e) } else { if (e == "opacity" && E.browser.msie) { if (c != undefined) { d.zoom = 1; d.filter = (d.filter || "").replace(/alpha\([^)]*\)/, "") + (parseFloat(c).toString() == "NaN" ? "" : "alpha(opacity=" + c * 100 + ")") } return d.filter && d.filter.indexOf("opacity=") >= 0 ? (parseFloat(d.filter.match(/opacity=([^)]*)/)[1]) / 100).toString() : "" } e = e.replace(/-([a-z])/ig, function(a, b) { return b.toUpperCase() }); if (c != undefined) d[e] = c; return d[e] } }, trim: function(a) { return (a || "").replace(/^\s+|\s+$/g, "") }, makeArray: function(b) { var a = []; if (typeof b != "array") for (var i = 0, length = b.length; i < length; i++) a.push(b[i]); else a = b.slice(0); return a }, inArray: function(b, a) { for (var i = 0, length = a.length; i < length; i++) if (a[i] == b) return i; return -1 }, merge: function(a, b) { if (E.browser.msie) { for (var i = 0; b[i]; i++) if (b[i].nodeType != 8) a.push(b[i]) } else for (var i = 0; b[i]; i++) a.push(b[i]); return a }, unique: function(a) { var c = [], done = {}; try { for (var i = 0, length = a.length; i < length; i++) { var b = E.data(a[i]); if (!done[b]) { done[b] = true; c.push(a[i]) } } } catch (e) { c = a } return c }, grep: function(c, a, d) { var b = []; for (var i = 0, length = c.length; i < length; i++) if (!d && a(c[i], i) || d && !a(c[i], i)) b.push(c[i]); return b }, map: function(d, a) { var c = []; for (var i = 0, length = d.length; i < length; i++) { var b = a(d[i], i); if (b !== null && b != undefined) { if (b.constructor != Array) b = [b]; c = c.concat(b) } } return c } }); var v = navigator.userAgent.toLowerCase(); E.browser = { version: (v.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/) || [])[1], safari: /webkit/.test(v), opera: /opera/.test(v), msie: /msie/.test(v) && !/opera/.test(v), mozilla: /mozilla/.test(v) && !/(compatible|webkit)/.test(v) }; var y = E.browser.msie ? "styleFloat" : "cssFloat"; E.extend({ boxModel: !E.browser.msie || document.compatMode == "CSS1Compat", props: { "for": "htmlFor", "class": "className", "float": y, cssFloat: y, styleFloat: y, innerHTML: "innerHTML", className: "className", value: "value", disabled: "disabled", checked: "checked", readonly: "readOnly", selected: "selected", maxlength: "maxLength", selectedIndex: "selectedIndex", defaultValue: "defaultValue", tagName: "tagName", nodeName: "nodeName" } }); E.each({ parent: function(a) { return a.parentNode }, parents: function(a) { return E.dir(a, "parentNode") }, next: function(a) { return E.nth(a, 2, "nextSibling") }, prev: function(a) { return E.nth(a, 2, "previousSibling") }, nextAll: function(a) { return E.dir(a, "nextSibling") }, prevAll: function(a) { return E.dir(a, "previousSibling") }, siblings: function(a) { return E.sibling(a.parentNode.firstChild, a) }, children: function(a) { return E.sibling(a.firstChild) }, contents: function(a) { return E.nodeName(a, "iframe") ? a.contentDocument || a.contentWindow.document : E.makeArray(a.childNodes) } }, function(c, d) { E.fn[c] = function(b) { var a = E.map(this, d); if (b && typeof b == "string") a = E.multiFilter(b, a); return this.pushStack(E.unique(a)) } }); E.each({ appendTo: "append", prependTo: "prepend", insertBefore: "before", insertAfter: "after", replaceAll: "replaceWith" }, function(c, b) { E.fn[c] = function() { var a = arguments; return this.each(function() { for (var i = 0, length = a.length; i < length; i++) E(a[i])[b](this) }) } }); E.each({ removeAttr: function(a) { E.attr(this, a, ""); if (this.nodeType == 1) this.removeAttribute(a) }, addClass: function(a) { E.className.add(this, a) }, removeClass: function(a) { E.className.remove(this, a) }, toggleClass: function(a) { E.className[E.className.has(this, a) ? "remove" : "add"](this, a) }, remove: function(a) { if (!a || E.filter(a, [this]).r.length) { E("*", this).add(this).each(function() { E.event.remove(this); E.removeData(this) }); if (this.parentNode) this.parentNode.removeChild(this) } }, empty: function() { E(">*", this).remove(); while (this.firstChild) this.removeChild(this.firstChild) } }, function(a, b) { E.fn[a] = function() { return this.each(b, arguments) } }); E.each(["Height", "Width"], function(i, c) { var b = c.toLowerCase(); E.fn[b] = function(a) { return this[0] == window ? E.browser.opera && document.body["client" + c] || E.browser.safari && window["inner" + c] || document.compatMode == "CSS1Compat" && document.documentElement["client" + c] || document.body["client" + c] : this[0] == document ? Math.max(Math.max(document.body["scroll" + c], document.documentElement["scroll" + c]), Math.max(document.body["offset" + c], document.documentElement["offset" + c])) : a == undefined ? (this.length ? E.css(this[0], b) : null) : this.css(b, a.constructor == String ? a : a + "px") } }); var C = E.browser.safari && parseInt(E.browser.version) < 417 ? "(?:[\\w*_-]|\\\\.)" : "(?:[\\w\u0128-\uFFFF*_-]|\\\\.)", quickChild = new RegExp("^>\\s*(" + C + "+)"), quickID = new RegExp("^(" + C + "+)(#)(" + C + "+)"), quickClass = new RegExp("^([#.]?)(" + C + "*)"); E.extend({ expr: { "": function(a, i, m) { return m[2] == "*" || E.nodeName(a, m[2]) }, "#": function(a, i, m) { return a.getAttribute("id") == m[2] }, ":": { lt: function(a, i, m) { return i < m[3] - 0 }, gt: function(a, i, m) { return i > m[3] - 0 }, nth: function(a, i, m) { return m[3] - 0 == i }, eq: function(a, i, m) { return m[3] - 0 == i }, first: function(a, i) { return i == 0 }, last: function(a, i, m, r) { return i == r.length - 1 }, even: function(a, i) { return i % 2 == 0 }, odd: function(a, i) { return i % 2 }, "first-child": function(a) { return a.parentNode.getElementsByTagName("*")[0] == a }, "last-child": function(a) { return E.nth(a.parentNode.lastChild, 1, "previousSibling") == a }, "only-child": function(a) { return !E.nth(a.parentNode.lastChild, 2, "previousSibling") }, parent: function(a) { return a.firstChild }, empty: function(a) { return !a.firstChild }, contains: function(a, i, m) { return (a.textContent || a.innerText || E(a).text() || "").indexOf(m[3]) >= 0 }, visible: function(a) { return "hidden" != a.type && E.css(a, "display") != "none" && E.css(a, "visibility") != "hidden" }, hidden: function(a) { return "hidden" == a.type || E.css(a, "display") == "none" || E.css(a, "visibility") == "hidden" }, enabled: function(a) { return !a.disabled }, disabled: function(a) { return a.disabled }, checked: function(a) { return a.checked }, selected: function(a) { return a.selected || E.attr(a, "selected") }, text: function(a) { return "text" == a.type }, radio: function(a) { return "radio" == a.type }, checkbox: function(a) { return "checkbox" == a.type }, file: function(a) { return "file" == a.type }, password: function(a) { return "password" == a.type }, submit: function(a) { return "submit" == a.type }, image: function(a) { return "image" == a.type }, reset: function(a) { return "reset" == a.type }, button: function(a) { return "button" == a.type || E.nodeName(a, "button") }, input: function(a) { return /input|select|textarea|button/i.test(a.nodeName) }, has: function(a, i, m) { return E.find(m[3], a).length }, header: function(a) { return /h\d/i.test(a.nodeName) }, animated: function(a) { return E.grep(E.timers, function(b) { return a == b.elem }).length } } }, parse: [/^(\[) *@?([\w-]+) *([!*$^~=]*) *('?"?)(.*?)\4 *\]/, /^(:)([\w-]+)\("?'?(.*?(\(.*?\))?[^(]*?)"?'?\)/, new RegExp("^([:.#]*)(" + C + "+)")], multiFilter: function(a, c, b) { var d, cur = []; while (a && a != d) { d = a; var f = E.filter(a, c, b); a = f.t.replace(/^\s*,\s*/, ""); cur = b ? c = f.r : E.merge(cur, f.r) } return cur }, find: function(t, p) { if (typeof t != "string") return [t]; if (p && p.nodeType != 1 && p.nodeType != 9) return []; p = p || document; var d = [p], done = [], last, nodeName; while (t && last != t) { var r = []; last = t; t = E.trim(t); var o = false; var g = quickChild; var m = g.exec(t); if (m) { nodeName = m[1].toUpperCase(); for (var i = 0; d[i]; i++) for (var c = d[i].firstChild; c; c = c.nextSibling) if (c.nodeType == 1 && (nodeName == "*" || c.nodeName.toUpperCase() == nodeName)) r.push(c); d = r; t = t.replace(g, ""); if (t.indexOf(" ") == 0) continue; o = true } else { g = /^([>+~])\s*(\w*)/i; if ((m = g.exec(t)) != null) { r = []; var l = {}; nodeName = m[2].toUpperCase(); m = m[1]; for (var j = 0, rl = d.length; j < rl; j++) { var n = m == "~" || m == "+" ? d[j].nextSibling : d[j].firstChild; for (; n; n = n.nextSibling) if (n.nodeType == 1) { var h = E.data(n); if (m == "~" && l[h]) break; if (!nodeName || n.nodeName.toUpperCase() == nodeName) { if (m == "~") l[h] = true; r.push(n) } if (m == "+") break } } d = r; t = E.trim(t.replace(g, "")); o = true } } if (t && !o) { if (!t.indexOf(",")) { if (p == d[0]) d.shift(); done = E.merge(done, d); r = d = [p]; t = " " + t.substr(1, t.length) } else { var k = quickID; var m = k.exec(t); if (m) { m = [0, m[2], m[3], m[1]] } else { k = quickClass; m = k.exec(t) } m[2] = m[2].replace(/\\/g, ""); var f = d[d.length - 1]; if (m[1] == "#" && f && f.getElementById && !E.isXMLDoc(f)) { var q = f.getElementById(m[2]); if ((E.browser.msie || E.browser.opera) && q && typeof q.id == "string" && q.id != m[2]) q = E('[@id="' + m[2] + '"]', f)[0]; d = r = q && (!m[3] || E.nodeName(q, m[3])) ? [q] : [] } else { for (var i = 0; d[i]; i++) { var a = m[1] == "#" && m[3] ? m[3] : m[1] != "" || m[0] == "" ? "*" : m[2]; if (a == "*" && d[i].nodeName.toLowerCase() == "object") a = "param"; r = E.merge(r, d[i].getElementsByTagName(a)) } if (m[1] == ".") r = E.classFilter(r, m[2]); if (m[1] == "#") { var e = []; for (var i = 0; r[i]; i++) if (r[i].getAttribute("id") == m[2]) { e = [r[i]]; break } r = e } d = r } t = t.replace(k, "") } } if (t) { var b = E.filter(t, r); d = r = b.r; t = E.trim(b.t) } } if (t) d = []; if (d && p == d[0]) d.shift(); done = E.merge(done, d); return done }, classFilter: function(r, m, a) { m = " " + m + " "; var c = []; for (var i = 0; r[i]; i++) { var b = (" " + r[i].className + " ").indexOf(m) >= 0; if (!a && b || a && !b) c.push(r[i]) } return c }, filter: function(t, r, h) { var d; while (t && t != d) { d = t; var p = E.parse, m; for (var i = 0; p[i]; i++) { m = p[i].exec(t); if (m) { t = t.substring(m[0].length); m[2] = m[2].replace(/\\/g, ""); break } } if (!m) break; if (m[1] == ":" && m[2] == "not") r = G.test(m[3]) ? E.filter(m[3], r, true).r : E(r).not(m[3]); else if (m[1] == ".") r = E.classFilter(r, m[2], h); else if (m[1] == "[") { var g = [], type = m[3]; for (var i = 0, rl = r.length; i < rl; i++) { var a = r[i], z = a[E.props[m[2]] || m[2]]; if (z == null || /href|src|selected/.test(m[2])) z = E.attr(a, m[2]) || ''; if ((type == "" && !!z || type == "=" && z == m[5] || type == "!=" && z != m[5] || type == "^=" && z && !z.indexOf(m[5]) || type == "$=" && z.substr(z.length - m[5].length) == m[5] || (type == "*=" || type == "~=") && z.indexOf(m[5]) >= 0) ^ h) g.push(a) } r = g } else if (m[1] == ":" && m[2] == "nth-child") { var e = {}, g = [], test = /(-?)(\d*)n((?:\+|-)?\d*)/.exec(m[3] == "even" && "2n" || m[3] == "odd" && "2n+1" || !/\D/.test(m[3]) && "0n+" + m[3] || m[3]), first = (test[1] + (test[2] || 1)) - 0, d = test[3] - 0; for (var i = 0, rl = r.length; i < rl; i++) { var j = r[i], parentNode = j.parentNode, id = E.data(parentNode); if (!e[id]) { var c = 1; for (var n = parentNode.firstChild; n; n = n.nextSibling) if (n.nodeType == 1) n.nodeIndex = c++; e[id] = true } var b = false; if (first == 0) { if (j.nodeIndex == d) b = true } else if ((j.nodeIndex - d) % first == 0 && (j.nodeIndex - d) / first >= 0) b = true; if (b ^ h) g.push(j) } r = g } else { var f = E.expr[m[1]]; if (typeof f == "object") f = f[m[2]]; if (typeof f == "string") f = eval("false||function(a,i){return " + f + ";}"); r = E.grep(r, function(a, i) { return f(a, i, m, r) }, h) } } return { r: r, t: t } }, dir: function(b, c) { var d = []; var a = b[c]; while (a && a != document) { if (a.nodeType == 1) d.push(a); a = a[c] } return d }, nth: function(a, e, c, b) { e = e || 1; var d = 0; for (; a; a = a[c]) if (a.nodeType == 1 && ++d == e) break; return a }, sibling: function(n, a) { var r = []; for (; n; n = n.nextSibling) { if (n.nodeType == 1 && (!a || n != a)) r.push(n) } return r } }); E.event = { add: function(f, i, g, e) { if (f.nodeType == 3 || f.nodeType == 8) return; if (E.browser.msie && f.setInterval != undefined) f = window; if (!g.guid) g.guid = this.guid++; if (e != undefined) { var h = g; g = function() { return h.apply(this, arguments) }; g.data = e; g.guid = h.guid } var j = E.data(f, "events") || E.data(f, "events", {}), handle = E.data(f, "handle") || E.data(f, "handle", function() { var a; if (typeof E == "undefined" || E.event.triggered) return a; a = E.event.handle.apply(arguments.callee.elem, arguments); return a }); handle.elem = f; E.each(i.split(/\s+/), function(c, b) { var a = b.split("."); b = a[0]; g.type = a[1]; var d = j[b]; if (!d) { d = j[b] = {}; if (!E.event.special[b] || E.event.special[b].setup.call(f) === false) { if (f.addEventListener) f.addEventListener(b, handle, false); else if (f.attachEvent) f.attachEvent("on" + b, handle) } } d[g.guid] = g; E.event.global[b] = true }); f = null }, guid: 1, global: {}, remove: function(e, h, f) { if (e.nodeType == 3 || e.nodeType == 8) return; var i = E.data(e, "events"), ret, index; if (i) { if (h == undefined || (typeof h == "string" && h.charAt(0) == ".")) for (var g in i) this.remove(e, g + (h || "")); else { if (h.type) { f = h.handler; h = h.type } E.each(h.split(/\s+/), function(b, a) { var c = a.split("."); a = c[0]; if (i[a]) { if (f) delete i[a][f.guid]; else for (f in i[a]) if (!c[1] || i[a][f].type == c[1]) delete i[a][f]; for (ret in i[a]) break; if (!ret) { if (!E.event.special[a] || E.event.special[a].teardown.call(e) === false) { if (e.removeEventListener) e.removeEventListener(a, E.data(e, "handle"), false); else if (e.detachEvent) e.detachEvent("on" + a, E.data(e, "handle")) } ret = null; delete i[a] } } }) } for (ret in i) break; if (!ret) { var d = E.data(e, "handle"); if (d) d.elem = null; E.removeData(e, "events"); E.removeData(e, "handle") } } }, trigger: function(g, c, d, f, h) { c = E.makeArray(c || []); if (g.indexOf("!") >= 0) { g = g.slice(0, -1); var a = true } if (!d) { if (this.global[g]) E("*").add([window, document]).trigger(g, c) } else { if (d.nodeType == 3 || d.nodeType == 8) return undefined; var b, ret, fn = E.isFunction(d[g] || null), event = !c[0] || !c[0].preventDefault; if (event) c.unshift(this.fix({ type: g, target: d })); c[0].type = g; if (a) c[0].exclusive = true; if (E.isFunction(E.data(d, "handle"))) b = E.data(d, "handle").apply(d, c); if (!fn && d["on" + g] && d["on" + g].apply(d, c) === false) b = false; if (event) c.shift(); if (h && E.isFunction(h)) { ret = h.apply(d, b == null ? c : c.concat(b)); if (ret !== undefined) b = ret } if (fn && f !== false && b !== false && !(E.nodeName(d, 'a') && g == "click")) { this.triggered = true; try { d[g]() } catch (e) {} } this.triggered = false } return b }, handle: function(c) { var a; c = E.event.fix(c || window.event || {}); var b = c.type.split("."); c.type = b[0]; var f = E.data(this, "events") && E.data(this, "events")[c.type], args = Array.prototype.slice.call(arguments, 1); args.unshift(c); for (var j in f) { var d = f[j]; args[0].handler = d; args[0].data = d.data; if (!b[1] && !c.exclusive || d.type == b[1]) { var e = d.apply(this, args); if (a !== false) a = e; if (e === false) { c.preventDefault(); c.stopPropagation() } } } if (E.browser.msie) c.target = c.preventDefault = c.stopPropagation = c.handler = c.data = null; return a }, fix: function(c) { var a = c; c = E.extend({}, a); c.preventDefault = function() { if (a.preventDefault) a.preventDefault(); a.returnValue = false }; c.stopPropagation = function() { if (a.stopPropagation) a.stopPropagation(); a.cancelBubble = true }; if (!c.target) c.target = c.srcElement || document; if (c.target.nodeType == 3) c.target = a.target.parentNode; if (!c.relatedTarget && c.fromElement) c.relatedTarget = c.fromElement == c.target ? c.toElement : c.fromElement; if (c.pageX == null && c.clientX != null) { var b = document.documentElement, body = document.body; c.pageX = c.clientX + (b && b.scrollLeft || body && body.scrollLeft || 0) - (b.clientLeft || 0); c.pageY = c.clientY + (b && b.scrollTop || body && body.scrollTop || 0) - (b.clientTop || 0) } if (!c.which && ((c.charCode || c.charCode === 0) ? c.charCode : c.keyCode)) c.which = c.charCode || c.keyCode; if (!c.metaKey && c.ctrlKey) c.metaKey = c.ctrlKey; if (!c.which && c.button) c.which = (c.button & 1 ? 1 : (c.button & 2 ? 3 : (c.button & 4 ? 2 : 0))); return c }, special: { ready: { setup: function() { bindReady(); return }, teardown: function() { return } }, mouseenter: { setup: function() { if (E.browser.msie) return false; E(this).bind("mouseover", E.event.special.mouseenter.handler); return true }, teardown: function() { if (E.browser.msie) return false; E(this).unbind("mouseover", E.event.special.mouseenter.handler); return true }, handler: function(a) { if (I(a, this)) return true; arguments[0].type = "mouseenter"; return E.event.handle.apply(this, arguments) } }, mouseleave: { setup: function() { if (E.browser.msie) return false; E(this).bind("mouseout", E.event.special.mouseleave.handler); return true }, teardown: function() { if (E.browser.msie) return false; E(this).unbind("mouseout", E.event.special.mouseleave.handler); return true }, handler: function(a) { if (I(a, this)) return true; arguments[0].type = "mouseleave"; return E.event.handle.apply(this, arguments) } } } }; E.fn.extend({ bind: function(c, a, b) { return c == "unload" ? this.one(c, a, b) : this.each(function() { E.event.add(this, c, b || a, b && a) }) }, one: function(d, b, c) { return this.each(function() { E.event.add(this, d, function(a) { E(this).unbind(a); return (c || b).apply(this, arguments) }, c && b) }) }, unbind: function(a, b) { return this.each(function() { E.event.remove(this, a, b) }) }, trigger: function(c, a, b) { return this.each(function() { E.event.trigger(c, a, this, true, b) }) }, triggerHandler: function(c, a, b) { if (this[0]) return E.event.trigger(c, a, this[0], false, b); return undefined }, toggle: function() { var b = arguments; return this.click(function(a) { this.lastToggle = 0 == this.lastToggle ? 1 : 0; a.preventDefault(); return b[this.lastToggle].apply(this, arguments) || false }) }, hover: function(a, b) { return this.bind('mouseenter', a).bind('mouseleave', b) }, ready: function(a) { bindReady(); if (E.isReady) a.call(document, E); else E.readyList.push(function() { return a.call(this, E) }); return this } }); E.extend({ isReady: false, readyList: [], ready: function() { if (!E.isReady) { E.isReady = true; if (E.readyList) { E.each(E.readyList, function() { this.apply(document) }); E.readyList = null } E(document).triggerHandler("ready") } } }); var x = false; function bindReady() { if (x) return; x = true; if (document.addEventListener && !E.browser.opera) document.addEventListener("DOMContentLoaded", E.ready, false); if (E.browser.msie && window == top)(function() { if (E.isReady) return; try { document.documentElement.doScroll("left") } catch (error) { setTimeout(arguments.callee, 0); return } E.ready() })(); if (E.browser.opera) document.addEventListener("DOMContentLoaded", function() { if (E.isReady) return; for (var i = 0; i < document.styleSheets.length; i++) if (document.styleSheets[i].disabled) { setTimeout(arguments.callee, 0); return } E.ready() }, false); if (E.browser.safari) { var a; (function() { if (E.isReady) return; if (document.readyState != "loaded" && document.readyState != "complete") { setTimeout(arguments.callee, 0); return } if (a === undefined) a = E("style, link[rel=stylesheet]").length; if (document.styleSheets.length != a) { setTimeout(arguments.callee, 0); return } E.ready() })() } E.event.add(window, "load", E.ready) } E.each(("blur,focus,load,resize,scroll,unload,click,dblclick," + "mousedown,mouseup,mousemove,mouseover,mouseout,change,select," + "submit,keydown,keypress,keyup,error").split(","), function(i, b) { E.fn[b] = function(a) { return a ? this.bind(b, a) : this.trigger(b) } }); var I = function(a, c) { var b = a.relatedTarget; while (b && b != c) try { b = b.parentNode } catch (error) { b = c } return b == c }; E(window).bind("unload", function() { E("*").add(document).unbind() }); E.fn.extend({ load: function(g, d, c) { if (E.isFunction(g)) return this.bind("load", g); var e = g.indexOf(" "); if (e >= 0) { var i = g.slice(e, g.length); g = g.slice(0, e) } c = c || function() {}; var f = "GET"; if (d) if (E.isFunction(d)) { c = d; d = null } else { d = E.param(d); f = "POST" } var h = this; E.ajax({ url: g, type: f, dataType: "html", data: d, complete: function(a, b) { if (b == "success" || b == "notmodified") h.html(i ? E("
").append(a.responseText.replace(//g, "")).find(i) : a.responseText); h.each(c, [a.responseText, b, a]) } }); return this }, serialize: function() { return E.param(this.serializeArray()) }, serializeArray: function() { return this.map(function() { return E.nodeName(this, "form") ? E.makeArray(this.elements) : this }).filter(function() { return this.name && !this.disabled && (this.checked || /select|textarea/i.test(this.nodeName) || /text|hidden|password/i.test(this.type)) }).map(function(i, c) { var b = E(this).val(); return b == null ? null : b.constructor == Array ? E.map(b, function(a, i) { return { name: c.name, value: a } }) : { name: c.name, value: b } }).get() } }); E.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","), function(i, o) { E.fn[o] = function(f) { return this.bind(o, f) } }); var B = (new Date).getTime(); E.extend({ get: function(d, b, a, c) { if (E.isFunction(b)) { a = b; b = null } return E.ajax({ type: "GET", url: d, data: b, success: a, dataType: c }) }, getScript: function(b, a) { return E.get(b, null, a, "script") }, getJSON: function(c, b, a) { return E.get(c, b, a, "json") }, post: function(d, b, a, c) { if (E.isFunction(b)) { a = b; b = {} } return E.ajax({ type: "POST", url: d, data: b, success: a, dataType: c }) }, ajaxSetup: function(a) { E.extend(E.ajaxSettings, a) }, ajaxSettings: { global: true, type: "GET", timeout: 0, contentType: "application/x-www-form-urlencoded", processData: true, async: true, data: null, username: null, password: null, accepts: { xml: "application/xml, text/xml", html: "text/html", script: "text/javascript, application/javascript", json: "application/json, text/javascript", text: "text/plain", _default: "*/*" } }, lastModified: {}, ajax: function(s) { var f, jsre = /=\?(&|$)/g, status, data; s = E.extend(true, s, E.extend(true, {}, E.ajaxSettings, s)); if (s.data && s.processData && typeof s.data != "string") s.data = E.param(s.data); if (s.dataType == "jsonp") { if (s.type.toLowerCase() == "get") { if (!s.url.match(jsre)) s.url += (s.url.match(/\?/) ? "&" : "?") + (s.jsonp || "callback") + "=?" } else if (!s.data || !s.data.match(jsre)) s.data = (s.data ? s.data + "&" : "") + (s.jsonp || "callback") + "=?"; s.dataType = "json" } if (s.dataType == "json" && (s.data && s.data.match(jsre) || s.url.match(jsre))) { f = "jsonp" + B++; if (s.data) s.data = (s.data + "").replace(jsre, "=" + f + "$1"); s.url = s.url.replace(jsre, "=" + f + "$1"); s.dataType = "script"; window[f] = function(a) { data = a; success(); complete(); window[f] = undefined; try { delete window[f] } catch (e) {} if (h) h.removeChild(g) } } if (s.dataType == "script" && s.cache == null) s.cache = false; if (s.cache === false && s.type.toLowerCase() == "get") { var i = (new Date()).getTime(); var j = s.url.replace(/(\?|&)_=.*?(&|$)/, "$1_=" + i + "$2"); s.url = j + ((j == s.url) ? (s.url.match(/\?/) ? "&" : "?") + "_=" + i : "") } if (s.data && s.type.toLowerCase() == "get") { s.url += (s.url.match(/\?/) ? "&" : "?") + s.data; s.data = null } if (s.global && !E.active++) E.event.trigger("ajaxStart"); if ((!s.url.indexOf("http") || !s.url.indexOf("//")) && s.dataType == "script" && s.type.toLowerCase() == "get") { var h = document.getElementsByTagName("head")[0]; var g = document.createElement("script"); g.src = s.url; if (s.scriptCharset) g.charset = s.scriptCharset; if (!f) { var l = false; g.onload = g.onreadystatechange = function() { if (!l && (!this.readyState || this.readyState == "loaded" || this.readyState == "complete")) { l = true; success(); complete(); h.removeChild(g) } } } h.appendChild(g); return undefined } var m = false; var k = window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest(); k.open(s.type, s.url, s.async, s.username, s.password); try { if (s.data) k.setRequestHeader("Content-Type", s.contentType); if (s.ifModified) k.setRequestHeader("If-Modified-Since", E.lastModified[s.url] || "Thu, 01 Jan 1970 00:00:00 GMT"); k.setRequestHeader("X-Requested-With", "XMLHttpRequest"); k.setRequestHeader("Accept", s.dataType && s.accepts[s.dataType] ? s.accepts[s.dataType] + ", */*" : s.accepts._default) } catch (e) {} if (s.beforeSend) s.beforeSend(k); if (s.global) E.event.trigger("ajaxSend", [k, s]); var c = function(a) { if (!m && k && (k.readyState == 4 || a == "timeout")) { m = true; if (d) { clearInterval(d); d = null } status = a == "timeout" && "timeout" || !E.httpSuccess(k) && "error" || s.ifModified && E.httpNotModified(k, s.url) && "notmodified" || "success"; if (status == "success") { try { data = E.httpData(k, s.dataType) } catch (e) { status = "parsererror" } } if (status == "success") { var b; try { b = k.getResponseHeader("Last-Modified") } catch (e) {} if (s.ifModified && b) E.lastModified[s.url] = b; if (!f) success() } else E.handleError(s, k, status); complete(); if (s.async) k = null } }; if (s.async) { var d = setInterval(c, 13); if (s.timeout > 0) setTimeout(function() { if (k) { k.abort(); if (!m) c("timeout") } }, s.timeout) } try { k.send(s.data) } catch (e) { E.handleError(s, k, null, e) } if (!s.async) c(); function success() { if (s.success) s.success(data, status); if (s.global) E.event.trigger("ajaxSuccess", [k, s]) } function complete() { if (s.complete) s.complete(k, status); if (s.global) E.event.trigger("ajaxComplete", [k, s]); if (s.global && !--E.active) E.event.trigger("ajaxStop") } return k }, handleError: function(s, a, b, e) { if (s.error) s.error(a, b, e); if (s.global) E.event.trigger("ajaxError", [a, s, e]) }, active: 0, httpSuccess: function(r) { try { return !r.status && location.protocol == "file:" || (r.status >= 200 && r.status < 300) || r.status == 304 || r.status == 1223 || E.browser.safari && r.status == undefined } catch (e) {} return false }, httpNotModified: function(a, c) { try { var b = a.getResponseHeader("Last-Modified"); return a.status == 304 || b == E.lastModified[c] || E.browser.safari && a.status == undefined } catch (e) {} return false }, httpData: function(r, b) { var c = r.getResponseHeader("content-type"); var d = b == "xml" || !b && c && c.indexOf("xml") >= 0; var a = d ? r.responseXML : r.responseText; if (d && a.documentElement.tagName == "parsererror") throw "parsererror"; if (b == "script") E.globalEval(a); if (b == "json") a = eval("(" + a + ")"); return a }, param: function(a) { var s = []; if (a.constructor == Array || a.jquery) E.each(a, function() { s.push(encodeURIComponent(this.name) + "=" + encodeURIComponent(this.value)) }); else for (var j in a) if (a[j] && a[j].constructor == Array) E.each(a[j], function() { s.push(encodeURIComponent(j) + "=" + encodeURIComponent(this)) }); else s.push(encodeURIComponent(j) + "=" + encodeURIComponent(a[j])); return s.join("&").replace(/%20/g, "+") } }); E.fn.extend({ show: function(c, b) { return c ? this.animate({ height: "show", width: "show", opacity: "show" }, c, b) : this.filter(":hidden").each(function() { this.style.display = this.oldblock || ""; if (E.css(this, "display") == "none") { var a = E("<" + this.tagName + " />").appendTo("body"); this.style.display = a.css("display"); if (this.style.display == "none") this.style.display = "block"; a.remove() } }).end() }, hide: function(b, a) { return b ? this.animate({ height: "hide", width: "hide", opacity: "hide" }, b, a) : this.filter(":visible").each(function() { this.oldblock = this.oldblock || E.css(this, "display"); this.style.display = "none" }).end() }, _toggle: E.fn.toggle, toggle: function(a, b) { return E.isFunction(a) && E.isFunction(b) ? this._toggle(a, b) : a ? this.animate({ height: "toggle", width: "toggle", opacity: "toggle" }, a, b) : this.each(function() { E(this)[E(this).is(":hidden") ? "show" : "hide"]() }) }, slideDown: function(b, a) { return this.animate({ height: "show" }, b, a) }, slideUp: function(b, a) { return this.animate({ height: "hide" }, b, a) }, slideToggle: function(b, a) { return this.animate({ height: "toggle" }, b, a) }, fadeIn: function(b, a) { return this.animate({ opacity: "show" }, b, a) }, fadeOut: function(b, a) { return this.animate({ opacity: "hide" }, b, a) }, fadeTo: function(c, a, b) { return this.animate({ opacity: a }, c, b) }, animate: function(l, k, j, h) { var i = E.speed(k, j, h); return this[i.queue === false ? "each" : "queue"](function() { if (this.nodeType != 1) return false; var g = E.extend({}, i); var f = E(this).is(":hidden"), self = this; for (var p in l) { if (l[p] == "hide" && f || l[p] == "show" && !f) return E.isFunction(g.complete) && g.complete.apply(this); if (p == "height" || p == "width") { g.display = E.css(this, "display"); g.overflow = this.style.overflow } } if (g.overflow != null) this.style.overflow = "hidden"; g.curAnim = E.extend({}, l); E.each(l, function(c, a) { var e = new E.fx(self, g, c); if (/toggle|show|hide/.test(a)) e[a == "toggle" ? f ? "show" : "hide" : a](l); else { var b = a.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/), start = e.cur(true) || 0; if (b) { var d = parseFloat(b[2]), unit = b[3] || "px"; if (unit != "px") { self.style[c] = (d || 1) + unit; start = ((d || 1) / e.cur(true)) * start; self.style[c] = start + unit } if (b[1]) d = ((b[1] == "-=" ? -1 : 1) * d) + start; e.custom(start, d, unit) } else e.custom(start, a, "") } }); return true }) }, queue: function(a, b) { if (E.isFunction(a) || (a && a.constructor == Array)) { b = a; a = "fx" } if (!a || (typeof a == "string" && !b)) return A(this[0], a); return this.each(function() { if (b.constructor == Array) A(this, a, b); else { A(this, a).push(b); if (A(this, a).length == 1) b.apply(this) } }) }, stop: function(b, c) { var a = E.timers; if (b) this.queue([]); this.each(function() { for (var i = a.length - 1; i >= 0; i--) if (a[i].elem == this) { if (c) a[i](true); a.splice(i, 1) } }); if (!c) this.dequeue(); return this } }); var A = function(b, c, a) { if (!b) return undefined; c = c || "fx"; var q = E.data(b, c + "queue"); if (!q || a) q = E.data(b, c + "queue", a ? E.makeArray(a) : []); return q }; E.fn.dequeue = function(a) { a = a || "fx"; return this.each(function() { var q = A(this, a); q.shift(); if (q.length) q[0].apply(this) }) }; E.extend({ speed: function(b, a, c) { var d = b && b.constructor == Object ? b : { complete: c || !c && a || E.isFunction(b) && b, duration: b, easing: c && a || a && a.constructor != Function && a }; d.duration = (d.duration && d.duration.constructor == Number ? d.duration : { slow: 600, fast: 200 }[d.duration]) || 400; d.old = d.complete; d.complete = function() { if (d.queue !== false) E(this).dequeue(); if (E.isFunction(d.old)) d.old.apply(this) }; return d }, easing: { linear: function(p, n, b, a) { return b + a * p }, swing: function(p, n, b, a) { return ((-Math.cos(p * Math.PI) / 2) + 0.5) * a + b } }, timers: [], timerId: null, fx: function(b, c, a) { this.options = c; this.elem = b; this.prop = a; if (!c.orig) c.orig = {} } }); E.fx.prototype = { update: function() { if (this.options.step) this.options.step.apply(this.elem, [this.now, this]); (E.fx.step[this.prop] || E.fx.step._default)(this); if (this.prop == "height" || this.prop == "width") this.elem.style.display = "block" }, cur: function(a) { if (this.elem[this.prop] != null && this.elem.style[this.prop] == null) return this.elem[this.prop]; var r = parseFloat(E.css(this.elem, this.prop, a)); return r && r > -10000 ? r : parseFloat(E.curCSS(this.elem, this.prop)) || 0 }, custom: function(c, b, d) { this.startTime = (new Date()).getTime(); this.start = c; this.end = b; this.unit = d || this.unit || "px"; this.now = this.start; this.pos = this.state = 0; this.update(); var e = this; function t(a) { return e.step(a) } t.elem = this.elem; E.timers.push(t); if (E.timerId == null) { E.timerId = setInterval(function() { var a = E.timers; for (var i = 0; i < a.length; i++) if (!a[i]()) a.splice(i--, 1); if (!a.length) { clearInterval(E.timerId); E.timerId = null } }, 13) } }, show: function() { this.options.orig[this.prop] = E.attr(this.elem.style, this.prop); this.options.show = true; this.custom(0, this.cur()); if (this.prop == "width" || this.prop == "height") this.elem.style[this.prop] = "1px"; E(this.elem).show() }, hide: function() { this.options.orig[this.prop] = E.attr(this.elem.style, this.prop); this.options.hide = true; this.custom(this.cur(), 0) }, step: function(a) { var t = (new Date()).getTime(); if (a || t > this.options.duration + this.startTime) { this.now = this.end; this.pos = this.state = 1; this.update(); this.options.curAnim[this.prop] = true; var b = true; for (var i in this.options.curAnim) if (this.options.curAnim[i] !== true) b = false; if (b) { if (this.options.display != null) { this.elem.style.overflow = this.options.overflow; this.elem.style.display = this.options.display; if (E.css(this.elem, "display") == "none") this.elem.style.display = "block" } if (this.options.hide) this.elem.style.display = "none"; if (this.options.hide || this.options.show) for (var p in this.options.curAnim) E.attr(this.elem.style, p, this.options.orig[p]) } if (b && E.isFunction(this.options.complete)) this.options.complete.apply(this.elem); return false } else { var n = t - this.startTime; this.state = n / this.options.duration; this.pos = E.easing[this.options.easing || (E.easing.swing ? "swing" : "linear")](this.state, n, 0, 1, this.options.duration); this.now = this.start + ((this.end - this.start) * this.pos); this.update() } return true } }; E.fx.step = { scrollLeft: function(a) { a.elem.scrollLeft = a.now }, scrollTop: function(a) { a.elem.scrollTop = a.now }, opacity: function(a) { E.attr(a.elem.style, "opacity", a.now) }, _default: function(a) { a.elem.style[a.prop] = a.now + a.unit } }; E.fn.offset = function() { var b = 0, top = 0, elem = this[0], results; if (elem) with(E.browser) { var d = elem.parentNode, offsetChild = elem, offsetParent = elem.offsetParent, doc = elem.ownerDocument, safari2 = safari && parseInt(version) < 522 && !/adobeair/i.test(v), fixed = E.css(elem, "position") == "fixed"; if (elem.getBoundingClientRect) { var c = elem.getBoundingClientRect(); add(c.left + Math.max(doc.documentElement.scrollLeft, doc.body.scrollLeft), c.top + Math.max(doc.documentElement.scrollTop, doc.body.scrollTop)); add(-doc.documentElement.clientLeft, -doc.documentElement.clientTop) } else { add(elem.offsetLeft, elem.offsetTop); while (offsetParent) { add(offsetParent.offsetLeft, offsetParent.offsetTop); if (mozilla && !/^t(able|d|h)$/i.test(offsetParent.tagName) || safari && !safari2) border(offsetParent); if (!fixed && E.css(offsetParent, "position") == "fixed") fixed = true; offsetChild = /^body$/i.test(offsetParent.tagName) ? offsetChild : offsetParent; offsetParent = offsetParent.offsetParent } while (d && d.tagName && !/^body|html$/i.test(d.tagName)) { if (!/^inline|table.*$/i.test(E.css(d, "display"))) add(-d.scrollLeft, -d.scrollTop); if (mozilla && E.css(d, "overflow") != "visible") border(d); d = d.parentNode } if ((safari2 && (fixed || E.css(offsetChild, "position") == "absolute")) || (mozilla && E.css(offsetChild, "position") != "absolute")) add(-doc.body.offsetLeft, -doc.body.offsetTop); if (fixed) add(Math.max(doc.documentElement.scrollLeft, doc.body.scrollLeft), Math.max(doc.documentElement.scrollTop, doc.body.scrollTop)) } results = { top: top, left: b } } function border(a) { add(E.curCSS(a, "borderLeftWidth", true), E.curCSS(a, "borderTopWidth", true)) } function add(l, t) { b += parseInt(l) || 0; top += parseInt(t) || 0 } return results } })(); if (typeof EJEJC_IGNORECONFLICT != 'undefined') { // do nothing, for debugging } else if (typeof EJEJC_PLAYNICE != 'undefined') { // jQuery of other instance will be available ejejc_jQuery = jQuery.noConflict(true); } else { // some devs. are relying on jq we include // by not passing thru, we keep the jQuery object available ejejc_jQuery = jQuery.noConflict(); } try { if (typeof EJV1_loadFlag=="undefined") var EJV1_loadFlag = true; // this is as box.js is loaded in iframe and there we set it to false } catch (e) {} //var EJV1_Server = "https://www.e-junkie.com"; try { if (typeof EJV1_Server=="undefined") var EJV1_Server="https://www.e-junkie.com"; } catch (e) {} var EJV1_Location = "/ecom/restified"; try { if (typeof EJV1_Script=="undefined") var EJV1_Script=EJV1_Server+EJV1_Location+"/checkStatus.php"; } catch (e) {} try { if (typeof EJV1_cart_version=="undefined") var EJV1_cart_version = null; } catch (e) {} try { if (typeof EJV1_box_preloaded=="undefined") var EJV1_box_preloaded = false; } catch (e) {} var EJV1_cartUrl = null; var EJV1_cartInitialized = false; var EJV1_script_loaded = false; var EJV1_th_cache = null; jQuery( document ).ready(function() { if (EJV1_cart_version===0 || EJV1_cart_version===1) { if(!EJV1_box_preloaded) EJV1_injectBoxScript(EJV1_cart_version); } else { var found_cart_btns = false; var cl = null; var cartLoaded = false; if(document.getElementsByName("cl").length){ var clInputs = document.getElementsByName("cl"); if(EJV1_loadFlag && clInputs){ for(var x = 0; x < clInputs.length; x++){ cl = clInputs[x].value; if(!isNaN(cl)) { found_cart_btns = true; } } } } else if(ejejc_jQuery('a.ej_ejc_ithkbx').length){ var documentStr = ejejc_jQuery('a.ej_ejc_ithkbx')[0].attr('href'); var aLinks = documentStr.match(/([^\?]*)cl=(\d*)/); if(EJV1_loadFlag && aLinks){ for(var x = 0; x < aLinks.length; x++){ cl = aLinks[x]; if(!isNaN(cl)) { found_cart_btns = true; } } } } else if(ejejc_jQuery('input.ej_ejc_ithkbx').length){ var documentStr = ejejc_jQuery('input.ej_ejc_jthkbx')[0].parentNode.action var aLinks = documentStr.match(/([^\?]*)cl=(\d*)/); if(EJV1_loadFlag && aLinks){ for(var x = 0; x < aLinks.length; x++){ cl = aLinks[x]; if(!isNaN(cl)) { found_cart_btns = true; } } } } else if(ejejc_jQuery('a.ej_ejc_jthkbx').length){ var documentStr = ejejc_jQuery('a.ej_ejc_ithkbx')[0].attr('href'); var aLinks = documentStr.match(/([^\?]*)cl=(\d*)/); if(EJV1_loadFlag && aLinks){ for(var x = 0; x < aLinks.length; x++){ cl = aLinks[x]; if(!isNaN(cl)) { found_cart_btns = true; } } } } else if(ejejc_jQuery('input.ej_ejc_jthkbx').length){ var documentStr = ejejc_jQuery('input.ej_ejc_jthkbx')[0].parentNode.action var aLinks = documentStr.match(/([^\?]*)cl=(\d*)/); if(EJV1_loadFlag && aLinks){ for(var x = 0; x < aLinks.length; x++){ cl = aLinks[x]; if(!isNaN(cl)) { found_cart_btns = true; } } } } else if(ejejc_jQuery('a.ec_ejc_thkbx,input.ec_ejc_thkbx').length){ var ele = ejejc_jQuery('a.ec_ejc_thkbx,input.ec_ejc_thkbx')[0]; if (ejejc_jQuery(ele).attr("href")) { var documentStr = ejejc_jQuery(ele).attr("href"); var aLinks = documentStr.match(/([^\?]*)cl=(\d*)/); if(EJV1_loadFlag && aLinks){ for(var x = 0; x < aLinks.length; x++){ cl = aLinks[x]; if(!isNaN(cl)) { found_cart_btns = true; break; } } } } else { if (ele.parentNode) { if (ejejc_jQuery(ele.parentNode).attr("action")) { var documentStr = ejejc_jQuery(ele.parentNode).attr("action"); var aLinks = documentStr.match(/([^\?]*)cl=(\d*)/); if(EJV1_loadFlag && aLinks){ for(var x = 0; x < aLinks.length; x++){ cl = aLinks[x]; if(!isNaN(cl)) { found_cart_btns = true; break;} } } } } } } if (found_cart_btns) { if(EJV1_loadFlag && cl) { if(!isNaN(cl)) { if (parseInt(cl) == 1) cl = 0; // for ffc EJV1_injectBoxScript(cl); cartLoaded = true; } else EJV1_injectBoxScript(0); } }else{ var documentStr = document.body.innerHTML+document.head.innerHTML; var aLinks = documentStr.match(/([^\?]*)cl=(\d*)/); if(EJV1_loadFlag && aLinks) { for(var x = 0; x < aLinks.length; x++){ cl = aLinks[x]; if(!isNaN(cl)){ if(parseInt(cl) == 1) cl = 0; EJV1_injectBoxScript(cl); cartLoaded = true; break; } } if(!cartLoaded) EJV1_injectBoxScript(0); } } } }); function EJV1_injectBoxScript(cl){ var url = EJV1_Script+"?cl="+cl; d = document; var t=d.createElement('script'); t.setAttribute('src', url); d.getElementsByTagName('head')[0].appendChild(t); } function EJV1_configCart(config){ console.log("Cart Initialized "+config); if(config == 1 || config == 0){ EJV1_script_loaded = true; EJV1_cart_version = config; return true; } alert("Failed to load cart"); return false; } var EJEJC_ga = ""; /* Client Side - For handling cookies, window messaging, and opening cart */ function EJCartV3(params){ this.params = { standalone: false, events: { onload: null, onclose: null, onopen: null, onProceedToPayment: null, onThankYou: null, }, //themeColor: "49, 152, 223", theme: null, language: null, layout: "overlay", behavior: "normal", customLanguage: [], } if(typeof params === "undefined"); else { if(params.standalone == true) this.params.standalone = true if(params.language) this.params.language = params.language if(params.customLanguage) this.params.customLanguage = params.customLanguage if(params.theme) this.params.theme = params.theme if(params.themeColor){ if(params.themeColor.indexOf("rgb(") == -1); else this.params.themeColor = params.themeColor.replace("rgb(", "").replace(")", "") } if(params.layout) if(["overlay", "sidebar"].indexOf(params.layout) != -1) this.params.layout = params.layout if(params.behavior) if(["normal", "minimal"].indexOf(params.behavior) != -1) this.params.behavior = params.behavior if(typeof params.onload === "function") this.params.events.onload = params.onload if(typeof params.onclose === "function") this.params.events.onclose = params.onclose if(typeof params.onopen === "function") this.params.events.onopen = params.onopen if(typeof params.onProceedToPayment === "function") this.params.events.onProceedToPayment = params.onProceedToPayment if(typeof params.onThankYou === "function") this.params.events.onThankYou = params.onThankYou } this.MetaData = { facebook: {}, gtag_js: {}, analytics_js: {}, ga_js: {}, gtag_aw: {}, } this.clientId = null this.cartIframeElement = null this.loaderElement = null this.historyState = [] this.isMobile = false if(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|ipad|iris|kindle|Android|Silk|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(navigator.userAgent) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(navigator.userAgent.substr(0,4))) this.isMobile = true /* if (navigator.appVersion.toLowerCase().indexOf("mobile") != -1 || navigator.appVersion.toLowerCase().indexOf("mini") != -1 || navigator.appVersion.toLowerCase().indexOf("msie 4.") != -1 || navigator.appVersion.toLowerCase().indexOf("msie 5.") != -1 || navigator.appVersion.toLowerCase().indexOf("msie 6.") != -1 || navigator.appVersion.toLowerCase().indexOf("msie 7.") != -1 || navigator.appVersion.toLowerCase().indexOf("msie 8.") != -1 || navigator.appVersion.toLowerCase().indexOf("msie 9.") != -1 || navigator.appVersion.toLowerCase().indexOf("msie 10.") != -1) this.isMobile = true */ this.host = { source: window.location.href, secure: (window.location.protocol == "https:" ? true : false), } this.isIE = ( ( (window.navigator.userAgent.toLowerCase().indexOf("msie ") > 0 ) || (window.navigator.userAgent.toLowerCase().indexOf("Trident/") > 0 ) || (window.navigator.userAgent.toLowerCase().indexOf("Edge/") > 0 ) ) ? true : false ) this.isFacebookBrowser = false; if(window.navigator.userAgent){ if((window.navigator.userAgent.indexOf("FBAN") > -1) || (window.navigator.userAgent.indexOf("FBAV") > -1)) this.isFacebookBrowser = true; }else if(window.navigator.vendor){ if((window.navigator.vendor.indexOf("FBAN") > -1) || (window.navigator.vendor.indexOf("FBAV") > -1)) this.isFacebookBrowser = true; }else if(window.opera){ if((window.opera.indexOf("FBAN") > -1) || (window.opera.indexOf("FBAV") > -1)) this.isFacebookBrowser = true; } this.dev = true // window messaging related code this.eventMethod = window.addEventListener ? "addEventListener" : "attachEvent"; this.eventer = window[this.eventMethod]; this.messageEvent = this.eventMethod == "attachEvent" ? "onmessage" : "message"; this.scrollElement = null this.isCartOpen = false this.log= function(message){ if(this.dev) console.info(message) } this.grabAnalyticCodes = function(){ try{ if(window.dataLayer){ //gtag might be present for(var i = 0; i < window.dataLayer.length; i++){ if(window.dataLayer[i][0] == "config"){ if (window.dataLayer[i][1].substr(0,3)=='UA-' || window.dataLayer[i][1].substr(0,3)=='AW-') { this.MetaData.gtag_js._value = window.dataLayer[i][1]; break; } } } if(!this.MetaData.gtag_js){ if(window._gaq){ //tag manager support this.MetaData.ga_js._value = window._gat.bb } } }else if(window.ga){ //analytics.js this.MetaData.analytics_js._value = { "trackingId" : window.ga.P[0].b.data.values[':trackingId'], "source" : window.ga.P[0].b.data.values[':cookieDomain'] } }else if(window._gaq){ //ga.js this.MetaData.ga_js._value = window._gat.bb } //added AW- support with UA- if(window.dataLayer){ //gtag might be present for(var i = 0; i < window.dataLayer.length; i++){ if(window.dataLayer[i][0] == "config"){ if (window.dataLayer[i][1].substr(0,3)=='AW-') { this.MetaData.gtag_aw._value = window.dataLayer[i][1]; break; } } } } if(window.fbq){ this.MetaData.facebook._value = window.fbq.getState(); this.MetaData.facebook._value = this.MetaData.facebook._value.pixels[0] if(this.MetaData.facebook._value){ this.MetaData.facebook._value = this.MetaData.facebook._value.id; } } if(this.MetaData.gtag_js._value != null){ gtag('config', this.MetaData.gtag_js._value, {'linker': { 'domains': ['.e-junkie.com','www.e-junkie.com', '.fatfreecartpro.com','www.fatfreecartpro.com', '.fatfreecart.com','www.fatfreecart.com'], 'decorate_forms': true, 'decorateForms': true } }); this.MetaData.gtag_js._params = ga.getAll()[0].get("linkerParam") return true; } if(this.MetaData.analytics_js._value != null){ ga('require', 'linker'); ga('create', this.MetaData.analytics_js._value.trackingId, 'auto', {allowLinker: true}); ga('linker:autoLink', ['.'+this.MetaData.analytics_js._value.source, '.e-junkie.com']); ga('linker:decorate', ['.'+this.MetaData.analytics_js._value.source, '.e-junkie.com']); ga('linker:autoLink', ['.'+this.MetaData.analytics_js._value.source, '.fatfreecartpro.com']); ga('linker:decorate', ['.'+this.MetaData.analytics_js._value.source, '.fatfreecartpro.com']); ga('linker:autoLink', ['.'+this.MetaData.analytics_js._value.source, '.fatfreecart.com']); ga('linker:decorate', ['.'+this.MetaData.analytics_js._value.source, '.fatfreecart.com']); ga(function(tracker) { this.MetaData.analytics_js._params = tracker.get('linkerParam'); }); return true; } if(this.MetaData.ga_js._value != null){ _gaq.push(['_setDomainName', 'e-junkie.com']); _gaq.push(['_setAllowLinker', true]); //backward comptability this.MetaData.ga_js._params = '&_ejoga_params='+encodeURIComponent(_gat._getTrackerByName()._getLinkerUrl('')); return true; } if(this.MetaData.gtag_aw._value != null){ gtag('config', this.MetaData.gtag_aw._value, {'linker': { 'domains': ['.e-junkie.com','www.e-junkie.com', '.fatfreecartpro.com','www.fatfreecartpro.com', '.fatfreecart.com','www.fatfreecart.com'], } }); return true; } }catch(e){ this.log(e) } return true; } this.escapeHTML = function(text){ var map = { '&': '&', '<': '<', '>': '>', '"': '"', "'": ''' }; return text.replace(/[&<>"']/g, function(m) { return map[m]; }); } this.setCookie = function(key, value){ var CookiesValidity = 10 //days var t = new Date(); t.setTime(t.getTime()); var e = new Date(t.getTime() + (CookiesValidity * 24 * 60 * 60 * 1000)); var d = document.domain; document.cookie = key + "=" + encodeURIComponent(value) + ";expires=" + e.toGMTString() + ";path=/;domain=" + d + ";" } this.getCookie = function(key){ var b = key + "="; var d = document.cookie.split(';'); for (var i = 0; i < d.length; i++) { var c = d[i]; while (c.charAt(0) == ' ') c = c.substring(1, c.length); if (c.indexOf(b) == 0) return c.substring(b.length, c.length) } return null; } this.findParentForm = function(element){ if (element.action && (element.action.indexOf("gb.php") != -1 || element.action.indexOf("gb2.php") != -1 || element.action.indexOf("gbv3.php") != -1)){ return (element); } else { if (element.parentNode) { return this.findParentForm(element.parentNode) } else { return false } } } this.extractURLFromForm = function(source){ var url = ""; var selectTags = source.getElementsByTagName('select'); for(var i = 0; i < selectTags.length; i++) url += "&"+selectTags[i].name+"="+encodeURIComponent(selectTags[i].value); var inputTags = source.getElementsByTagName('input'); for(var i = 0; i < inputTags.length; i++){ if (inputTags[i].value) { if (inputTags[i].type == 'radio' && inputTags[i].checked != true) continue; url += "&"+inputTags[i].name+"="+encodeURIComponent(inputTags[i].value); } } if(source.action.indexOf("?") == -1) return source.action+"?"+url else return source.action+url } this.getURLFromSource = function(source){ if(source.href) return source.href else{ source = this.findParentForm(source) if(source.action) return this.extractURLFromForm(source) else { return null } } } this.prepareURL = function(url){ var client_id; var url_has_zipcode = false; var url_has_country = false; var qs = url.split("?")[1]; qs = qs.replace(/\;/g,"&"); qs = qs.split('&'); // get all the basic details from the url array for(var i=0; i < qs.length; i++){ var c = qs[i]; if (c.substring(0,3)=='cl='){ client_id=c.substring(3); this.clientId = client_id } if (c.substring(0,7)=='zipcode') url_has_zipcode = true; if (c.substring(0,10)=='to_country') url_has_country = true; } //get all cookies var cart_id = this.getCookie('cart_id'+client_id); var cart_md5 = this.getCookie('cart_md5'+client_id); var cart_currency = this.getCookie('cart_currency'+client_id); var to_country = this.getCookie('to_country'+client_id); var zipcode = this.getCookie('zipcode'+client_id); if(url.indexOf("?") == -1) url = url + "?" url = url + '&cart_md5=' + cart_md5 + '&cart_id=' + cart_id + '&cart_currency=' + cart_currency; if(!url_has_country && to_country) url = url + '&to_country=' + to_country; if(!url_has_zipcode && zipcode) url = url + '&zipcode=' + zipcode; // backward compatibility in backend var cartMetaData = {} if(this.MetaData.gtag_js){ cartMetaData.gtag = this.MetaData.gtag_js._value; url = url + "&"+this.MetaData.gtag_js._params } if(this.MetaData.analytics_js._value){ cartMetaData.aga = this.MetaData.analytics_js._value; url = url + "&"+this.MetaData.analytics_js._params } if(this.MetaData.ga_js._value){ cartMetaData.oga = this.MetaData.ga_js._value; url = url + "&"+this.MetaData.ga_js._params } if(this.MetaData.gtag_aw._value){ cartMetaData.gtag_aw = this.MetaData.gtag_aw._value; } if(this.MetaData.facebook._value){ cartMetaData.fbp = this.MetaData.facebook._value; } url = url + '&cart_metadata='+encodeURIComponent(JSON.stringify(cartMetaData)) url = url + "&initialize" return url } this.closeCart = function(){ this.isCartOpen = false; this.cartIframeElement.style.display = "none"; this.cartIframeElement.src = "//about:blank"; this.enablePageScroll(); this.updateHash("") if(this.params.standalone){ try { var histlen = history.length; var opener = null; var hist = false; if(window.opener=='undefined' || window.opener==null) { opener=false; } else { opener=true; } // safari starts from 1 if (navigator.appVersion.toLowerCase().indexOf("safari")!=-1 || navigator.userAgent.toLowerCase().indexOf("firefox")!=-1) { histlen-=1; } if (histlen>0 && !opener) { hist=true; } else { hist=false; } if (hist) { history.back(); } else { window.close(); } } catch (err) { window.close(); } //window.close() } } this.handleStateChange = function(){ if(this.isMobile && !this.params.standalone){ if(typeof window.history.pushState === "undefined") var state = window.location.hash.replace("#", "") else{ this.historyState.pop() var state = this.historyState[this.historyState.length-1] } if(!state) var state = "" switch(state){ case "#EJCart": if(this.clientId){ this.isCartOpen = false this.openCart("https://www.e-junkie.com/ecom/gbv3.php?ejc=2&c=cart&cl="+self.clientId) }else this.closeCart() break; case "#EJCC": break; case "": this.closeCart(); break; } } return; } this.updateHash = function(v){ if(this.isMobile){ if(typeof window.history.pushState === "undefined"){ //go old school, hashbangs if(window.location.hash == v) return; window.location.hash = v; }else{ //use history api var url = window.location.href.split("#")[0] if(v == ""){ this.historyState = [] window.history.replaceState(null, null, url) return; } url = url + v if(window.history.length <= 2){ window.history.pushState(null, null, url) this.historyState.push(v) }else{ if(this.historyState.indexOf(v) == -1) this.historyState.push(v) else this.historyState = this.historyState.splice(0, this.historyState.indexOf(v)+1) window.history.replaceState(null, null, url) } } } return; } this.showCart = function(){ if(!this.params.standalone){ this.cartIframeElement.style.display = "block"; this.updateHash("#EJCart") } else this.cartIframeElement.style.display = "none"; this.disablePageScroll(); } this.getCartJSON = function(clientId, cb, url){ if(typeof cb === "function"); else return; if(isNaN(clientId) && !url) return; var cbToken = +new Date() if(!url){ this.clientId = clientId url = "https://www.e-junkie.com/ecom/gbv3.php?c=cart&ejc=2&cl="+clientId //url = this.prepareURL(url) } url = this.prepareURL(url) url = url+"&json&cb="+cbToken var s = document.createElement("script"); s.src = url s.type = "text/javascript" s.onload = function(){ cb(window["EJResponseJSON_"+cbToken]); } document.getElementsByTagName("head")[0].appendChild(s) return; } this.openCart = function(source){ //if(this.isCartOpen) return true; this.grabAnalyticCodes() var url = null; if(typeof source == "string") url = source else if(typeof source == "object") url = this.getURLFromSource(source) if(url); else return false; if(this.params.behavior == "minimal" && url.indexOf("ejc=2") != -1 && url.indexOf("i=") != -1 && !this.isCartOpen){ self.toggleSnackBar(true, "Adding Product to Cart", true) this.getCartJSON(null, function(res){ if(res.Cart.Errors.length == 0){ var h = "Product added to Cart
View Cart" self.toggleSnackBar(true, h, false) self.setCookie("cart_id"+res.Client.client_id, res.Cart.Metadata.id) self.setCookie("cart_md5"+res.Client.client_id, res.Cart.Metadata.md5) self.setCookie("cart_currency"+res.Client.client_id, res.Cart.Metadata.currency) if(res.Cart.Metadata.shipping.zipcode) self.setCookie("zipcode"+res.Client.client_id, res.Cart.Metadata.shipping.zipcode) if(res.Cart.Metadata.shipping.country) self.setCookie("to_country"+res.Client.client_id, res.Cart.Metadata.shipping.country) }else{ var h = "Failed to add product!
"+res.Cart.Errors[0] self.toggleSnackBar(true, h, false) } }, url) return true; } self.toggleSnackBar(false) this.isCartOpen = true; url = this.prepareURL(url) if(this.params) url = url + "&pref=" + encodeURIComponent(JSON.stringify({ language: this.params.language, theme: this.params.theme, themeColor: this.params.themeColor, customLanguage: this.params.customLanguage, layout: (window.innerWidth <= 700 ? "overlay" : this.params.layout), })) //temp purpose url = url.replace("gb.php", "gbv3.php") url = url.replace("gb2.php", "gbv3.php") if(url.indexOf("c=single") != -1){ window.location.href = url this.isCartOpen = false; return true; } // check if the url has `single` or `cc` and if the page is `https://` load the cc page in the page itself or else load inside an iframe if(!this.host.secure){ if(url.indexOf("c=cc") != -1){ window.location.href = url this.isCartOpen = false; return true; } } this.toggleLoader(true) this.cartIframeElement.src = url return true } this.toggleLoader = function(x, y){ if(typeof y === "undefined") y = false if(this.params.layout != "overlay") y = false if(x){ this.loaderElement.style.display = "block"; if(!y) this.cartIframeElement.style.display = "none"; }else{ this.loaderElement.style.display = "none"; if(!this.params.standalone) this.cartIframeElement.style.display = "block"; } } this.toggleSnackBar = function(s, h, l){ if(s) this.snackbarElement.style.display = "block"; else this.snackbarElement.style.display = "none"; if(h) this.snackbarElement.querySelector(".EJSnackBarV3-Content").innerHTML = h if(l) this.snackbarElement.querySelector(".EJSnackBarV3-Loader").style.opacity = "1" else this.snackbarElement.querySelector(".EJSnackBarV3-Loader").style.opacity = "0" } this.disablePageScroll = function(element){ if(this.params.layout != "overlay") return; if(this.scrollElement) return; var possibleValues = ["scroll", "visible", "auto"] // store body or html scroll property changed, to toggle it when cart is closed if(possibleValues.indexOf(window.getComputedStyle(document.querySelector("html")).getPropertyValue("overflow-y").toLowerCase()) != -1 ){ this.scrollElement = "html" document.querySelector("html").style.overflowY = "hidden"; }else if(possibleValues.indexOf(window.getComputedStyle(document.querySelector("body")).getPropertyValue("overflow-y").toLowerCase()) != -1){ this.scrollElement = "body" document.body.style.overflowY = "hidden" } return false; } this.enablePageScroll = function(){ if(this.params.layout != "overlay") return; if(this.scrollElement){ if(this.scrollElement == "html") document.querySelector("html").style.overflowY = "scroll"; else document.body.style.overflowY = "scroll" this.scrollElement = null } } this.loadURL = function(url, type){ if(this.params.standalone) window.location.href = url else if(type == "standalone"){ this.toggleLoader(true) window.location.href = url }else{ this.toggleLoader(true) if(url.indexOf("rp.php") != -1) url = url + "&nobanner=true&standalone=true" this.cartIframeElement.src = url } } this.scrollTo = function(x){ window.scroll(null, x) } this.sendMessage = function(data){ var EJCartMessage = { data: data, src: "cart", } window.postMessage({"EJCartMessage": EJCartMessage}, "*") return true; } this.handleMessages = function(payload){ switch (payload.data.event){ case "Proceed Payment": var type = null; if(payload.data.data.processor == "Paypal") type = "standalone" if(payload.data.data.processor == "Paypal Credit") type = "standalone" if(!this.host.secure) type = "standalone" if(typeof EJCart.params.events.onProceedToPayment === "function"){ var self = this EJCart.params.events.onProceedToPayment(payload.data.data, function(res){ if(res){ if(self.params.standalone || type == "standalone") self.loadURL(payload.data.data.url, type) else self.loadURL(payload.data.data.url+"&initialize", type) }else return; }) }else{ if(this.params.standalone || type == "standalone") this.loadURL(payload.data.data.url, type) else this.loadURL(payload.data.data.url+"&initialize", type) } break; case "Cart Loaded": this.showCart(); this.toggleLoader(false); if(payload.data.data){ this.setCookie("cart_id"+payload.data.data.Client.client_id, payload.data.data.Cart.Metadata.id) this.setCookie("cart_md5"+payload.data.data.Client.client_id, payload.data.data.Cart.Metadata.md5) this.setCookie("cart_currency"+payload.data.data.Client.client_id, payload.data.data.Cart.Metadata.currency) if(payload.data.data.Cart.Metadata.shipping.zipcode) this.setCookie("zipcode"+payload.data.data.Client.client_id, payload.data.data.Cart.Metadata.shipping.zipcode) if(payload.data.data.Cart.Metadata.shipping.country) this.setCookie("to_country"+payload.data.data.Client.client_id, payload.data.data.Cart.Metadata.shipping.country) } if(this.params.events.onload) this.params.events.onload(payload.data.data) break; case "Cart Updating": this.toggleLoader(true, true); break; case "Close Cart": this.closeCart(); if(this.params.events.onclose) this.params.events.onclose() break; case "Load URL": this.loadURL(payload.data.data.url, payload.data.data.type); break; case "CC Loaded": this.updateHash("#EJCC") this.disablePageScroll(); this.toggleLoader(false); this.scrollTo(0); break; case "Window Resize": this.cartIframeElement.style.height = (payload.data.data+30)+"px" this.loaderElement.style.height = (payload.data.data+30)+"px" break; case "URL Loaded": this.toggleLoader(false); this.scrollTo(0); break; case "Scroll": this.scrollTo(payload.data.data); break; } return true; } var self = this // bind window messaging event and keyboard event window.addEventListener(this.messageEvent, function(e){ try{ if(typeof e.data == "object"){ var payload = e.data.EJCartMessage if(payload == null) return false; if(payload.src != "cart-inline" && payload.src != "cart-cc") return false; self.handleMessages(payload) return true } return false; }catch(err){ self.log(err); } },false); window.addEventListener("keyup", function(e){ if(e.keyCode == 27) { self.closeCart() } }, false); window.addEventListener("hashchange", function(e){ if(self.params.standalone) return; self.handleStateChange() }, false); var layoutClassName = "EJOverlayV3" if(this.params.layout == "overlay") layoutClassName = "EJOverlayV3" else if(this.params.layout == "sidebar") layoutClassName = "EJSideBarV3" //cart iframe this.cartIframeElement = document.createElement("iframe"); this.cartIframeElement.className = "EJIframeV3 "+layoutClassName this.cartIframeElement.src = "//about:blank" document.body.appendChild(this.cartIframeElement) //loader iframe this.loaderElement = document.createElement("div"); this.loaderElement.className = "EJLoaderV3 "+layoutClassName document.body.appendChild(this.loaderElement) //this.loaderElement.innerHTML = '
' //this.loaderElement.innerHTML = '
' this.loaderElement.innerHTML = '
' //snackbar this.snackbarElement = document.createElement("div"); this.snackbarElement.className = "EJSnackBarV3" this.snackbarElement.innerHTML = '
' document.body.appendChild(this.snackbarElement) this.log("Cart Object Initialized"); } function EJEJC_lc(source){ if(typeof EJCart === "undefined" || !EJCart){ //EJCart = new EJCartV3(window.EJConfig); return; } if(EJCart.openCart(source)){ return false }else{ return true; } } function EJEJC_frm(ele){ EJEJC_lc(ele); return false; } //add style tag with styles first var EJStyleEle = document.createElement("style"); EJStyleEle.type = "text/css" //EJStyleEle.innerHTML = ".EJLoaderV3, .EJIframeV3{position: fixed;top: 0;bottom: 0;height: 100%;display: none;z-index: 99999;border:none;padding:0px;}.EJIframeV3.EJSideBarV3{ position: absolute;}.EJLoaderV3{background: rgba(0,0,0,0.7);}.EJLoaderV3 div{width: 15vh;height: 15vh;background: transparent;border-radius: 100px;animation: EJLoaderV3 1.2s infinite linear;margin: 0 auto;margin-top: 25vh;}.EJOverlayV3{left: 0;right: 0;width: 100%;}.EJSideBarV3{right: 0;width: 400px;}@media(max-width: 700px){.EJSideBarV3{ width: 100% !important; left: 0; right: 0; max-height: 100%; margin: 0 auto; margin-left: 0px;} }@media(min-width: 700px){.EJSideBarV3 { border-radius: 5px !important; height: 400px; width: 380px; margin-right: 10px; margin-top: 10px;} .EJSideBarV3 div{ margin-top: 15vh; width: 10vh; height: 10vh;}.EJLoaderV3.EJSideBarV3{ box-shadow: 0 10px 20px rgba(0,0,0,0.19), 0 6px 6px rgba(0,0,0,0.23); background: rgba(255, 255, 255, 0.5); width: 360px; margin-left: 10px; margin-right: 20px; }}@keyframes EJLoaderV3{0% { transform: rotate(0deg); }25% { transform: rotate(90deg); }50% { transform: rotate(180deg); }100% { transform: rotate(360deg); }}.EJSnackBarV3{display: none;width: 300px;position: fixed;background: #253e4a;border-radius: 3px;padding: 5px 10px;box-shadow: 0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.24);bottom: 20px;right: 20px;}.EJSnackBarV3 close{width: 10px;height: 10px;cursor: pointer;display: inline-block;vertical-align: top;margin-left: 10px;}.EJSnackBarV3-Loader {width: 20px;height: 20px;background: transparent;display: inline-block;border: 2px solid #fff;border-radius: 100%;border-top: 2px solid rgba(255,255,255,0.4);animation: EJLoaderV3 1.2s infinite linear;vertical-align: middle;}.EJSnackBarV3-Content{ display: inline-block;width: calc(100% - 40px);margin: 0 auto;color: white;font-size: 15px;text-align: center;padding: 0px 10px;vertical-align: middle;font-family: inherit;}.EJSnackBarV3-Content a{ color: white !important;font-weight: bold;}" EJStyleEle.innerHTML = ".EJLoaderV3, .EJIframeV3{position: fixed;top: 0;bottom: 0;height: 100%;display: none;z-index: 99999;border:none;padding:0px;}.EJLoaderV3{background: rgba(0,0,0,0.7);}.EJLoaderV3 div{width: 15vh;height: 15vh;background: transparent;border-radius: 100px;margin: 0 auto;margin-top: 25vh;}.EJLoaderV3 div:before {box-sizing: border-box; position: absolute;width: 15vh;height: 15vh;animation: EJLoaderV3 1.2s infinite linear;content: '';border-radius: 100%;border: 1vh solid transparent;border-top: 1vh solid rgba(49, 152, 223, 1);margin: 0 auto;margin-left: -1vh;margin-top: -1vh;}.EJOverlayV3{left: 0;right: 0;width: 100%;}.EJSideBarV3{right: 0;width: 400px;}@media(max-width: 700px){.EJSideBarV3{width: 100% !important;left: 0;right: 0;max-height: 100%;margin: 0 auto;margin-left: 0px;}}@media(min-width: 700px){.EJSideBarV3 {border-radius: 5px !important;height: 400px;width: 380px;margin-right: 10px;margin-top: 10px;}.EJLoaderV3.EJSideBarV3{box-shadow: 0 10px 20px rgba(0,0,0,0.19), 0 6px 6px rgba(0,0,0,0.23);background: rgba(255, 255, 255, 0.5); }.EJSideBarV3 div{margin-top: 15vh;width: 10vh;height: 10vh;}}@keyframes EJLoaderV3{0% { transform: rotate(0deg); }25% { transform: rotate(90deg); }50% { transform: rotate(180deg); }100% { transform: rotate(360deg); }}.EJSnackBarV3{display: none;width: 300px;position: fixed;background: #253e4a;border-radius: 3px;padding: 5px 10px;box-shadow: 0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.24);bottom: 20px;right: 20px;}.EJSnackBarV3 close{width: 10px;height: 10px;cursor: pointer;display: inline-block;vertical-align: top;margin-left: 10px;}.EJSnackBarV3-Loader {width: 20px;height: 20px;background: transparent;display: inline-block;border: 2px solid #fff;border-radius: 100%;border-top: 2px solid rgba(255,255,255,0.4);animation: EJLoaderV3 1.2s infinite linear;vertical-align: middle;}.EJSnackBarV3-Content{display: inline-block;width: calc(100% - 40px);margin: 0 auto;color: white;font-size: 15px;text-align: center;padding: 0px 10px;vertical-align: middle;font-family: inherit;}.EJSnackBarV3-Content a{color: white !important;font-weight: bold;}" document.querySelector("head").appendChild(EJStyleEle) try{ jQuery(document).ready(function() { ejejc_jQuery('a.ej_ejc_ithkbx').click(function() { return EJEJC_ilc(this) }); ejejc_jQuery('input.ej_ejc_ithkbx').click(function() { return EJEJC_ilc(this.parentNode) }); ejejc_jQuery('a.ej_ejc_jthkbx').click(function() { return EJEJC_jlc(this) }); ejejc_jQuery('input.ej_ejc_jthkbx').click(function() { return EJEJC_jlc(this.parentNode) }); ejejc_jQuery('a.ec_ejc_thkbx,input.ec_ejc_thkbx').each(function(i) { if (ejejc_jQuery(this).attr("href")) { if (!ejejc_jQuery(this).attr("onClick")) { ejejc_jQuery(this).click(function() { return EJEJC_lc(this) }) } } else { if (!ejejc_jQuery(this).attr("onClick")) { ejejc_jQuery(this).click(function() { return EJEJC_lc(this.parentNode) }) } if (this.parentNode && !ejejc_jQuery(this).attr("onClick")) { if (ejejc_jQuery(this.parentNode).attr("action")) { if (!ejejc_jQuery(this.parentNode).attr("onSubmit")) { ejejc_jQuery(this.parentNode).submit(function() { return EJEJC_lc(this) }) } } } } }); }); }catch(e){} function EJEJC_multiAdd2(arr){ EJEJC_multiAdd(arr) } function EJEJC_multiAdd(arr, pos){ EJCart.toggleLoader(true) if(typeof pos === "undefined") pos = 0 if(pos == arr.length-1){ EJCart.openCart(arr[pos]) return true; }else{ EJCart.getCartJSON(null, function(res){ if(res.Cart.Errors.length == 0){ EJCart.setCookie("cart_id"+res.Client.client_id, res.Cart.Metadata.id) EJCart.setCookie("cart_md5"+res.Client.client_id, res.Cart.Metadata.md5) EJCart.setCookie("cart_currency"+res.Client.client_id, res.Cart.Metadata.currency) if(res.Cart.Metadata.shipping.zipcode) EJCart.setCookie("zipcode"+res.Client.client_id, res.Cart.Metadata.shipping.zipcode) if(res.Cart.Metadata.shipping.country) EJCart.setCookie("to_country"+res.Client.client_id, res.Cart.Metadata.shipping.country) EJEJC_multiAdd(arr, ++pos) } }, arr[pos]) } } if(document.body) var EJCart = new EJCartV3(window.EJConfig) else var EJCart = null if(EJCart == null){ if(window.addEventListener){ window.addEventListener("DOMContentLoaded", function() { EJCart = new EJCartV3(window.EJConfig); }, false); }else if(window.attachEvent){ window.attachEvent('onreadystatechange', function(){ EJCart = new EJCartV3(window.EJConfig); }); }else { EJCart = new EJCartV3(window.EJConfig); } }