CINXE.COM

Dyes Suppliers - Manufacturers, wholesalers, Exporters for Dyes - Fibre2Fashion

<!DOCTYPE html> <html> <head> <title>Dyes Suppliers - Manufacturers, wholesalers, Exporters for Dyes - Fibre2Fashion</title> <meta name="keywords" content="Dyes, Dyes manufacturers, Dyes suppliers, Dyes manufacturer, Dyes exporters, Dyes manufacturing companies, Dyes wholesalers, Dyes producers" /> <meta name="description" content="Explore Dyes manufacturers, suppliers, wholesalers, exporters from our Dyes & Chemical directory. A whole range of the finest quality Dyes to choose from. Grab the best deals only at Fibre2Fashion." /> <meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" name="viewport" /> <meta name="Revisit-After" content="1 Day" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="Robots" content="ALL, INDEX, FOLLOW" /> <meta name="language" content="EN" /> <meta http-equiv="content-language" content="en-US" /> <meta name="document-type" content="Public" /> <meta name="document-classification" content="Business to Business" /> <meta name="coverage" content="Worldwide" /> <meta name="author" content="www.fibre2fashion.com" /> <meta name="distribution" content="global" /> <meta name="twitter:card" content="summary_large_image" /> <link rel='canonical' href='https://www.fibre2fashion.com/dyes/dyes-suppliers-s64' /> <meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" name="viewport"> <link type="text/css" href="https://static.fibre2fashion.com/staticresources/css/bootstrap.min.css?var=2.66" rel="stylesheet" /> <link type="text/css" href="https://static.fibre2fashion.com/staticresources/cssv1/commonV1.min.css?var=2.66" rel="stylesheet" /> <link type="text/css" href="https://static.fibre2fashion.com/staticresources/css/esteemed-clients.min.css?var=2.66" rel="stylesheet" /> <link type="text/css" href="https://static.fibre2fashion.com/staticresources/cssv1/header-home-css.min.css?var=2.66" rel="stylesheet" /> <link type="text/css" href="https://static.fibre2fashion.com/staticresources/cssv1/owl.carousel.min.css?var=2.66" rel="stylesheet" /> <link type="text/css" href="https://static.fibre2fashion.com/staticresources/cssv1/owl.theme.default.min.css?var=2.66" rel="stylesheet" /> <link type="text/css" href="https://static.fibre2fashion.com/staticresources/cssv1/custom.min.css?var=2.66" rel="stylesheet" /> <link type="text/css" href="https://static.fibre2fashion.com/staticresources/cssv1/responsive.min.css?var=2.66" rel="stylesheet" /> <link href="/dyes/Content/css/jquery.ad-gallery.min.css?var=1.0" rel="stylesheet"/> <link href="/dyes/Content/css/responsive.min.css?var=1.0" rel="stylesheet"/> <link href="/dyes/Content/css/b2b.min.css?var=1.6" rel="stylesheet"/> <link href="/dyes/Content/css/garment.min.css?var=1.6" rel="stylesheet"/> <link href="/dyes/Content/css/responsive-garment.min.css?var=2.66" rel="stylesheet"/> <link type="text/css" href="https://static.fibre2fashion.com/staticresources/cssv1/footer-home-css.min.css?var=2.66" rel="stylesheet" /> <link type="text/css" href="https://static.fibre2fashion.com/staticresources/css/font-awesome.min.css?var=2.66" rel="stylesheet" /> <link type="text/css" href="https://static.fibre2fashion.com/StaticResources/css/jquery.selectric.min.css?var=2.66" rel="stylesheet" /> <link rel="shortcut icon" href="https://static.fibre2fashion.com/images/favicon.ico" type="image/x-icon"> <link rel="icon" href="https://static.fibre2fashion.com/images/favicon.ico" type="image/x-icon"> <script type="text/javascript"> var BASEPATHURL = 'https://www.fibre2fashion.com/dyes' + "/"; </script> <script> // JavaScript Document /*! jQuery v1.11.3 | (c) 2005, 2015 jQuery Foundation, Inc. | jquery.org/license */ !function (a, b) { "object" == typeof module && "object" == typeof module.exports ? module.exports = a.document ? b(a, !0) : function (a) { if (!a.document) throw new Error("jQuery requires a window with a document"); return b(a) } : b(a) }("undefined" != typeof window ? window : this, function (a, b) { var c = [], d = c.slice, e = c.concat, f = c.push, g = c.indexOf, h = {}, i = h.toString, j = h.hasOwnProperty, k = {}, l = "1.11.3", m = function (a, b) { return new m.fn.init(a, b) }, n = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, o = /^-ms-/, p = /-([\da-z])/gi, q = function (a, b) { return b.toUpperCase() }; m.fn = m.prototype = { jquery: l, constructor: m, selector: "", length: 0, toArray: function () { return d.call(this) }, get: function (a) { return null != a ? 0 > a ? this[a + this.length] : this[a] : d.call(this) }, pushStack: function (a) { var b = m.merge(this.constructor(), a); return b.prevObject = this, b.context = this.context, b }, each: function (a, b) { return m.each(this, a, b) }, map: function (a) { return this.pushStack(m.map(this, function (b, c) { return a.call(b, c, b) })) }, slice: function () { return this.pushStack(d.apply(this, arguments)) }, first: function () { return this.eq(0) }, last: function () { return this.eq(-1) }, eq: function (a) { var b = this.length, c = +a + (0 > a ? b : 0); return this.pushStack(c >= 0 && b > c ? [this[c]] : []) }, end: function () { return this.prevObject || this.constructor(null) }, push: f, sort: c.sort, splice: c.splice }, m.extend = m.fn.extend = function () { var a, b, c, d, e, f, g = arguments[0] || {}, h = 1, i = arguments.length, j = !1; for ("boolean" == typeof g && (j = g, g = arguments[h] || {}, h++), "object" == typeof g || m.isFunction(g) || (g = {}), h === i && (g = this, h--); i > h; h++)if (null != (e = arguments[h])) for (d in e) a = g[d], c = e[d], g !== c && (j && c && (m.isPlainObject(c) || (b = m.isArray(c))) ? (b ? (b = !1, f = a && m.isArray(a) ? a : []) : f = a && m.isPlainObject(a) ? a : {}, g[d] = m.extend(j, f, c)) : void 0 !== c && (g[d] = c)); return g }, m.extend({ expando: "jQuery" + (l + Math.random()).replace(/\D/g, ""), isReady: !0, error: function (a) { throw new Error(a) }, noop: function () { }, isFunction: function (a) { return "function" === m.type(a) }, isArray: Array.isArray || function (a) { return "array" === m.type(a) }, isWindow: function (a) { return null != a && a == a.window }, isNumeric: function (a) { return !m.isArray(a) && a - parseFloat(a) + 1 >= 0 }, isEmptyObject: function (a) { var b; for (b in a) return !1; return !0 }, isPlainObject: function (a) { var b; if (!a || "object" !== m.type(a) || a.nodeType || m.isWindow(a)) return !1; try { if (a.constructor && !j.call(a, "constructor") && !j.call(a.constructor.prototype, "isPrototypeOf")) return !1 } catch (c) { return !1 } if (k.ownLast) for (b in a) return j.call(a, b); for (b in a); return void 0 === b || j.call(a, b) }, type: function (a) { return null == a ? a + "" : "object" == typeof a || "function" == typeof a ? h[i.call(a)] || "object" : typeof a }, globalEval: function (b) { b && m.trim(b) && (a.execScript || function (b) { a.eval.call(a, b) })(b) }, camelCase: function (a) { return a.replace(o, "ms-").replace(p, q) }, nodeName: function (a, b) { return a.nodeName && a.nodeName.toLowerCase() === b.toLowerCase() }, each: function (a, b, c) { var d, e = 0, f = a.length, g = r(a); if (c) { if (g) { for (; f > e; e++)if (d = b.apply(a[e], c), d === !1) break } else for (e in a) if (d = b.apply(a[e], c), d === !1) break } else if (g) { for (; f > e; e++)if (d = b.call(a[e], e, a[e]), d === !1) break } else for (e in a) if (d = b.call(a[e], e, a[e]), d === !1) break; return a }, trim: function (a) { return null == a ? "" : (a + "").replace(n, "") }, makeArray: function (a, b) { var c = b || []; return null != a && (r(Object(a)) ? m.merge(c, "string" == typeof a ? [a] : a) : f.call(c, a)), c }, inArray: function (a, b, c) { var d; if (b) { if (g) return g.call(b, a, c); for (d = b.length, c = c ? 0 > c ? Math.max(0, d + c) : c : 0; d > c; c++)if (c in b && b[c] === a) return c } return -1 }, merge: function (a, b) { var c = +b.length, d = 0, e = a.length; while (c > d) a[e++] = b[d++]; if (c !== c) while (void 0 !== b[d]) a[e++] = b[d++]; return a.length = e, a }, grep: function (a, b, c) { for (var d, e = [], f = 0, g = a.length, h = !c; g > f; f++)d = !b(a[f], f), d !== h && e.push(a[f]); return e }, map: function (a, b, c) { var d, f = 0, g = a.length, h = r(a), i = []; if (h) for (; g > f; f++)d = b(a[f], f, c), null != d && i.push(d); else for (f in a) d = b(a[f], f, c), null != d && i.push(d); return e.apply([], i) }, guid: 1, proxy: function (a, b) { var c, e, f; return "string" == typeof b && (f = a[b], b = a, a = f), m.isFunction(a) ? (c = d.call(arguments, 2), e = function () { return a.apply(b || this, c.concat(d.call(arguments))) }, e.guid = a.guid = a.guid || m.guid++, e) : void 0 }, now: function () { return +new Date }, support: k }), m.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function (a, b) { h["[object " + b + "]"] = b.toLowerCase() }); function r(a) { var b = "length" in a && a.length, c = m.type(a); return "function" === c || m.isWindow(a) ? !1 : 1 === a.nodeType && b ? !0 : "array" === c || 0 === b || "number" == typeof b && b > 0 && b - 1 in a } var s = function (a) { var b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u = "sizzle" + 1 * new Date, v = a.document, w = 0, x = 0, y = ha(), z = ha(), A = ha(), B = function (a, b) { return a === b && (l = !0), 0 }, C = 1 << 31, D = {}.hasOwnProperty, E = [], F = E.pop, G = E.push, H = E.push, I = E.slice, J = function (a, b) { for (var c = 0, d = a.length; d > c; c++)if (a[c] === b) return c; return -1 }, K = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", L = "[\\x20\\t\\r\\n\\f]", M = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+", N = M.replace("w", "w#"), O = "\\[" + L + "*(" + M + ")(?:" + L + "*([*^$|!~]?=)" + L + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + N + "))|)" + L + "*\\]", P = ":(" + M + ")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|" + O + ")*)|.*)\\)|)", Q = new RegExp(L + "+", "g"), R = new RegExp("^" + L + "+|((?:^|[^\\\\])(?:\\\\.)*)" + L + "+$", "g"), S = new RegExp("^" + L + "*," + L + "*"), T = new RegExp("^" + L + "*([>+~]|" + L + ")" + L + "*"), U = new RegExp("=" + L + "*([^\\]'\"]*?)" + L + "*\\]", "g"), V = new RegExp(P), W = new RegExp("^" + N + "$"), X = { ID: new RegExp("^#(" + M + ")"), CLASS: new RegExp("^\\.(" + M + ")"), TAG: new RegExp("^(" + M.replace("w", "w*") + ")"), ATTR: new RegExp("^" + O), PSEUDO: new RegExp("^" + P), CHILD: new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + L + "*(even|odd|(([+-]|)(\\d*)n|)" + L + "*(?:([+-]|)" + L + "*(\\d+)|))" + L + "*\\)|)", "i"), bool: new RegExp("^(?:" + K + ")$", "i"), needsContext: new RegExp("^" + L + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + L + "*((?:-\\d)?\\d*)" + L + "*\\)|)(?=[^-]|$)", "i") }, Y = /^(?:input|select|textarea|button)$/i, Z = /^h\d$/i, $ = /^[^{]+\{\s*\[native \w/, _ = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, aa = /[+~]/, ba = /'|\\/g, ca = new RegExp("\\\\([\\da-f]{1,6}" + L + "?|(" + L + ")|.)", "ig"), da = function (a, b, c) { var d = "0x" + b - 65536; return d !== d || c ? b : 0 > d ? String.fromCharCode(d + 65536) : String.fromCharCode(d >> 10 | 55296, 1023 & d | 56320) }, ea = function () { m() }; try { H.apply(E = I.call(v.childNodes), v.childNodes), E[v.childNodes.length].nodeType } catch (fa) { H = { apply: E.length ? function (a, b) { G.apply(a, I.call(b)) } : function (a, b) { var c = a.length, d = 0; while (a[c++] = b[d++]); a.length = c - 1 } } } function ga(a, b, d, e) { var f, h, j, k, l, o, r, s, w, x; if ((b ? b.ownerDocument || b : v) !== n && m(b), b = b || n, d = d || [], k = b.nodeType, "string" != typeof a || !a || 1 !== k && 9 !== k && 11 !== k) return d; if (!e && p) { if (11 !== k && (f = _.exec(a))) if (j = f[1]) { if (9 === k) { if (h = b.getElementById(j), !h || !h.parentNode) return d; if (h.id === j) return d.push(h), d } else if (b.ownerDocument && (h = b.ownerDocument.getElementById(j)) && t(b, h) && h.id === j) return d.push(h), d } else { if (f[2]) return H.apply(d, b.getElementsByTagName(a)), d; if ((j = f[3]) && c.getElementsByClassName) return H.apply(d, b.getElementsByClassName(j)), d } if (c.qsa && (!q || !q.test(a))) { if (s = r = u, w = b, x = 1 !== k && a, 1 === k && "object" !== b.nodeName.toLowerCase()) { o = g(a), (r = b.getAttribute("id")) ? s = r.replace(ba, "\\$&") : b.setAttribute("id", s), s = "[id='" + s + "'] ", l = o.length; while (l--) o[l] = s + ra(o[l]); w = aa.test(a) && pa(b.parentNode) || b, x = o.join(",") } if (x) try { return H.apply(d, w.querySelectorAll(x)), d } catch (y) { } finally { r || b.removeAttribute("id") } } } return i(a.replace(R, "$1"), b, d, e) } function ha() { var a = []; function b(c, e) { return a.push(c + " ") > d.cacheLength && delete b[a.shift()], b[c + " "] = e } return b } function ia(a) { return a[u] = !0, a } function ja(a) { var b = n.createElement("div"); try { return !!a(b) } catch (c) { return !1 } finally { b.parentNode && b.parentNode.removeChild(b), b = null } } function ka(a, b) { var c = a.split("|"), e = a.length; while (e--) d.attrHandle[c[e]] = b } function la(a, b) { var c = b && a, d = c && 1 === a.nodeType && 1 === b.nodeType && (~b.sourceIndex || C) - (~a.sourceIndex || C); if (d) return d; if (c) while (c = c.nextSibling) if (c === b) return -1; return a ? 1 : -1 } function ma(a) { return function (b) { var c = b.nodeName.toLowerCase(); return "input" === c && b.type === a } } function na(a) { return function (b) { var c = b.nodeName.toLowerCase(); return ("input" === c || "button" === c) && b.type === a } } function oa(a) { return ia(function (b) { return b = +b, ia(function (c, d) { var e, f = a([], c.length, b), g = f.length; while (g--) c[e = f[g]] && (c[e] = !(d[e] = c[e])) }) }) } function pa(a) { return a && "undefined" != typeof a.getElementsByTagName && a } c = ga.support = {}, f = ga.isXML = function (a) { var b = a && (a.ownerDocument || a).documentElement; return b ? "HTML" !== b.nodeName : !1 }, m = ga.setDocument = function (a) { var b, e, g = a ? a.ownerDocument || a : v; return g !== n && 9 === g.nodeType && g.documentElement ? (n = g, o = g.documentElement, e = g.defaultView, e && e !== e.top && (e.addEventListener ? e.addEventListener("unload", ea, !1) : e.attachEvent && e.attachEvent("onunload", ea)), p = !f(g), c.attributes = ja(function (a) { return a.className = "i", !a.getAttribute("className") }), c.getElementsByTagName = ja(function (a) { return a.appendChild(g.createComment("")), !a.getElementsByTagName("*").length }), c.getElementsByClassName = $.test(g.getElementsByClassName), c.getById = ja(function (a) { return o.appendChild(a).id = u, !g.getElementsByName || !g.getElementsByName(u).length }), c.getById ? (d.find.ID = function (a, b) { if ("undefined" != typeof b.getElementById && p) { var c = b.getElementById(a); return c && c.parentNode ? [c] : [] } }, d.filter.ID = function (a) { var b = a.replace(ca, da); return function (a) { return a.getAttribute("id") === b } }) : (delete d.find.ID, d.filter.ID = function (a) { var b = a.replace(ca, da); return function (a) { var c = "undefined" != typeof a.getAttributeNode && a.getAttributeNode("id"); return c && c.value === b } }), d.find.TAG = c.getElementsByTagName ? function (a, b) { return "undefined" != typeof b.getElementsByTagName ? b.getElementsByTagName(a) : c.qsa ? b.querySelectorAll(a) : void 0 } : function (a, b) { var c, d = [], e = 0, f = b.getElementsByTagName(a); if ("*" === a) { while (c = f[e++]) 1 === c.nodeType && d.push(c); return d } return f }, d.find.CLASS = c.getElementsByClassName && function (a, b) { return p ? b.getElementsByClassName(a) : void 0 }, r = [], q = [], (c.qsa = $.test(g.querySelectorAll)) && (ja(function (a) { o.appendChild(a).innerHTML = "<a id='" + u + "'></a><select id='" + u + "-\f]' msallowcapture=''><option selected=''></option></select>", a.querySelectorAll("[msallowcapture^='']").length && q.push("[*^$]=" + L + "*(?:''|\"\")"), a.querySelectorAll("[selected]").length || q.push("\\[" + L + "*(?:value|" + K + ")"), a.querySelectorAll("[id~=" + u + "-]").length || q.push("~="), a.querySelectorAll(":checked").length || q.push(":checked"), a.querySelectorAll("a#" + u + "+*").length || q.push(".#.+[+~]") }), ja(function (a) { var b = g.createElement("input"); b.setAttribute("type", "hidden"), a.appendChild(b).setAttribute("name", "D"), a.querySelectorAll("[name=d]").length && q.push("name" + L + "*[*^$|!~]?="), a.querySelectorAll(":enabled").length || q.push(":enabled", ":disabled"), a.querySelectorAll("*,:x"), q.push(",.*:") })), (c.matchesSelector = $.test(s = o.matches || o.webkitMatchesSelector || o.mozMatchesSelector || o.oMatchesSelector || o.msMatchesSelector)) && ja(function (a) { c.disconnectedMatch = s.call(a, "div"), s.call(a, "[s!='']:x"), r.push("!=", P) }), q = q.length && new RegExp(q.join("|")), r = r.length && new RegExp(r.join("|")), b = $.test(o.compareDocumentPosition), t = b || $.test(o.contains) ? function (a, b) { var c = 9 === a.nodeType ? a.documentElement : a, d = b && b.parentNode; return a === d || !(!d || 1 !== d.nodeType || !(c.contains ? c.contains(d) : a.compareDocumentPosition && 16 & a.compareDocumentPosition(d))) } : function (a, b) { if (b) while (b = b.parentNode) if (b === a) return !0; return !1 }, B = b ? function (a, b) { if (a === b) return l = !0, 0; var d = !a.compareDocumentPosition - !b.compareDocumentPosition; return d ? d : (d = (a.ownerDocument || a) === (b.ownerDocument || b) ? a.compareDocumentPosition(b) : 1, 1 & d || !c.sortDetached && b.compareDocumentPosition(a) === d ? a === g || a.ownerDocument === v && t(v, a) ? -1 : b === g || b.ownerDocument === v && t(v, b) ? 1 : k ? J(k, a) - J(k, b) : 0 : 4 & d ? -1 : 1) } : function (a, b) { if (a === b) return l = !0, 0; var c, d = 0, e = a.parentNode, f = b.parentNode, h = [a], i = [b]; if (!e || !f) return a === g ? -1 : b === g ? 1 : e ? -1 : f ? 1 : k ? J(k, a) - J(k, b) : 0; if (e === f) return la(a, b); c = a; while (c = c.parentNode) h.unshift(c); c = b; while (c = c.parentNode) i.unshift(c); while (h[d] === i[d]) d++; return d ? la(h[d], i[d]) : h[d] === v ? -1 : i[d] === v ? 1 : 0 }, g) : n }, ga.matches = function (a, b) { return ga(a, null, null, b) }, ga.matchesSelector = function (a, b) { if ((a.ownerDocument || a) !== n && m(a), b = b.replace(U, "='$1']"), !(!c.matchesSelector || !p || r && r.test(b) || q && q.test(b))) try { var d = s.call(a, b); if (d || c.disconnectedMatch || a.document && 11 !== a.document.nodeType) return d } catch (e) { } return ga(b, n, null, [a]).length > 0 }, ga.contains = function (a, b) { return (a.ownerDocument || a) !== n && m(a), t(a, b) }, ga.attr = function (a, b) { (a.ownerDocument || a) !== n && m(a); var e = d.attrHandle[b.toLowerCase()], f = e && D.call(d.attrHandle, b.toLowerCase()) ? e(a, b, !p) : void 0; return void 0 !== f ? f : c.attributes || !p ? a.getAttribute(b) : (f = a.getAttributeNode(b)) && f.specified ? f.value : null }, ga.error = function (a) { throw new Error("Syntax error, unrecognized expression: " + a) }, ga.uniqueSort = function (a) { var b, d = [], e = 0, f = 0; if (l = !c.detectDuplicates, k = !c.sortStable && a.slice(0), a.sort(B), l) { while (b = a[f++]) b === a[f] && (e = d.push(f)); while (e--) a.splice(d[e], 1) } return k = null, a }, e = ga.getText = function (a) { var b, c = "", d = 0, f = a.nodeType; if (f) { if (1 === f || 9 === f || 11 === f) { if ("string" == typeof a.textContent) return a.textContent; for (a = a.firstChild; a; a = a.nextSibling)c += e(a) } else if (3 === f || 4 === f) return a.nodeValue } else while (b = a[d++]) c += e(b); return c }, d = ga.selectors = { cacheLength: 50, createPseudo: ia, match: X, attrHandle: {}, find: {}, relative: { ">": { dir: "parentNode", first: !0 }, " ": { dir: "parentNode" }, "+": { dir: "previousSibling", first: !0 }, "~": { dir: "previousSibling" } }, preFilter: { ATTR: function (a) { return a[1] = a[1].replace(ca, da), a[3] = (a[3] || a[4] || a[5] || "").replace(ca, da), "~=" === a[2] && (a[3] = " " + a[3] + " "), a.slice(0, 4) }, CHILD: function (a) { return a[1] = a[1].toLowerCase(), "nth" === a[1].slice(0, 3) ? (a[3] || ga.error(a[0]), a[4] = +(a[4] ? a[5] + (a[6] || 1) : 2 * ("even" === a[3] || "odd" === a[3])), a[5] = +(a[7] + a[8] || "odd" === a[3])) : a[3] && ga.error(a[0]), a }, PSEUDO: function (a) { var b, c = !a[6] && a[2]; return X.CHILD.test(a[0]) ? null : (a[3] ? a[2] = a[4] || a[5] || "" : c && V.test(c) && (b = g(c, !0)) && (b = c.indexOf(")", c.length - b) - c.length) && (a[0] = a[0].slice(0, b), a[2] = c.slice(0, b)), a.slice(0, 3)) } }, filter: { TAG: function (a) { var b = a.replace(ca, da).toLowerCase(); return "*" === a ? function () { return !0 } : function (a) { return a.nodeName && a.nodeName.toLowerCase() === b } }, CLASS: function (a) { var b = y[a + " "]; return b || (b = new RegExp("(^|" + L + ")" + a + "(" + L + "|$)")) && y(a, function (a) { return b.test("string" == typeof a.className && a.className || "undefined" != typeof a.getAttribute && a.getAttribute("class") || "") }) }, ATTR: function (a, b, c) { return function (d) { var e = ga.attr(d, a); return null == e ? "!=" === b : b ? (e += "", "=" === b ? e === c : "!=" === b ? e !== c : "^=" === b ? c && 0 === e.indexOf(c) : "*=" === b ? c && e.indexOf(c) > -1 : "$=" === b ? c && e.slice(-c.length) === c : "~=" === b ? (" " + e.replace(Q, " ") + " ").indexOf(c) > -1 : "|=" === b ? e === c || e.slice(0, c.length + 1) === c + "-" : !1) : !0 } }, CHILD: function (a, b, c, d, e) { var f = "nth" !== a.slice(0, 3), g = "last" !== a.slice(-4), h = "of-type" === b; return 1 === d && 0 === e ? function (a) { return !!a.parentNode } : function (b, c, i) { var j, k, l, m, n, o, p = f !== g ? "nextSibling" : "previousSibling", q = b.parentNode, r = h && b.nodeName.toLowerCase(), s = !i && !h; if (q) { if (f) { while (p) { l = b; while (l = l[p]) if (h ? l.nodeName.toLowerCase() === r : 1 === l.nodeType) return !1; o = p = "only" === a && !o && "nextSibling" } return !0 } if (o = [g ? q.firstChild : q.lastChild], g && s) { k = q[u] || (q[u] = {}), j = k[a] || [], n = j[0] === w && j[1], m = j[0] === w && j[2], l = n && q.childNodes[n]; while (l = ++n && l && l[p] || (m = n = 0) || o.pop()) if (1 === l.nodeType && ++m && l === b) { k[a] = [w, n, m]; break } } else if (s && (j = (b[u] || (b[u] = {}))[a]) && j[0] === w) m = j[1]; else while (l = ++n && l && l[p] || (m = n = 0) || o.pop()) if ((h ? l.nodeName.toLowerCase() === r : 1 === l.nodeType) && ++m && (s && ((l[u] || (l[u] = {}))[a] = [w, m]), l === b)) break; return m -= e, m === d || m % d === 0 && m / d >= 0 } } }, PSEUDO: function (a, b) { var c, e = d.pseudos[a] || d.setFilters[a.toLowerCase()] || ga.error("unsupported pseudo: " + a); return e[u] ? e(b) : e.length > 1 ? (c = [a, a, "", b], d.setFilters.hasOwnProperty(a.toLowerCase()) ? ia(function (a, c) { var d, f = e(a, b), g = f.length; while (g--) d = J(a, f[g]), a[d] = !(c[d] = f[g]) }) : function (a) { return e(a, 0, c) }) : e } }, pseudos: { not: ia(function (a) { var b = [], c = [], d = h(a.replace(R, "$1")); return d[u] ? ia(function (a, b, c, e) { var f, g = d(a, null, e, []), h = a.length; while (h--) (f = g[h]) && (a[h] = !(b[h] = f)) }) : function (a, e, f) { return b[0] = a, d(b, null, f, c), b[0] = null, !c.pop() } }), has: ia(function (a) { return function (b) { return ga(a, b).length > 0 } }), contains: ia(function (a) { return a = a.replace(ca, da), function (b) { return (b.textContent || b.innerText || e(b)).indexOf(a) > -1 } }), lang: ia(function (a) { return W.test(a || "") || ga.error("unsupported lang: " + a), a = a.replace(ca, da).toLowerCase(), function (b) { var c; do if (c = p ? b.lang : b.getAttribute("xml:lang") || b.getAttribute("lang")) return c = c.toLowerCase(), c === a || 0 === c.indexOf(a + "-"); while ((b = b.parentNode) && 1 === b.nodeType); return !1 } }), target: function (b) { var c = a.location && a.location.hash; return c && c.slice(1) === b.id }, root: function (a) { return a === o }, focus: function (a) { return a === n.activeElement && (!n.hasFocus || n.hasFocus()) && !!(a.type || a.href || ~a.tabIndex) }, enabled: function (a) { return a.disabled === !1 }, disabled: function (a) { return a.disabled === !0 }, checked: function (a) { var b = a.nodeName.toLowerCase(); return "input" === b && !!a.checked || "option" === b && !!a.selected }, selected: function (a) { return a.parentNode && a.parentNode.selectedIndex, a.selected === !0 }, empty: function (a) { for (a = a.firstChild; a; a = a.nextSibling)if (a.nodeType < 6) return !1; return !0 }, parent: function (a) { return !d.pseudos.empty(a) }, header: function (a) { return Z.test(a.nodeName) }, input: function (a) { return Y.test(a.nodeName) }, button: function (a) { var b = a.nodeName.toLowerCase(); return "input" === b && "button" === a.type || "button" === b }, text: function (a) { var b; return "input" === a.nodeName.toLowerCase() && "text" === a.type && (null == (b = a.getAttribute("type")) || "text" === b.toLowerCase()) }, first: oa(function () { return [0] }), last: oa(function (a, b) { return [b - 1] }), eq: oa(function (a, b, c) { return [0 > c ? c + b : c] }), even: oa(function (a, b) { for (var c = 0; b > c; c += 2)a.push(c); return a }), odd: oa(function (a, b) { for (var c = 1; b > c; c += 2)a.push(c); return a }), lt: oa(function (a, b, c) { for (var d = 0 > c ? c + b : c; --d >= 0;)a.push(d); return a }), gt: oa(function (a, b, c) { for (var d = 0 > c ? c + b : c; ++d < b;)a.push(d); return a }) } }, d.pseudos.nth = d.pseudos.eq; for (b in { radio: !0, checkbox: !0, file: !0, password: !0, image: !0 }) d.pseudos[b] = ma(b); for (b in { submit: !0, reset: !0 }) d.pseudos[b] = na(b); function qa() { } qa.prototype = d.filters = d.pseudos, d.setFilters = new qa, g = ga.tokenize = function (a, b) { var c, e, f, g, h, i, j, k = z[a + " "]; if (k) return b ? 0 : k.slice(0); h = a, i = [], j = d.preFilter; while (h) { (!c || (e = S.exec(h))) && (e && (h = h.slice(e[0].length) || h), i.push(f = [])), c = !1, (e = T.exec(h)) && (c = e.shift(), f.push({ value: c, type: e[0].replace(R, " ") }), h = h.slice(c.length)); for (g in d.filter) !(e = X[g].exec(h)) || j[g] && !(e = j[g](e)) || (c = e.shift(), f.push({ value: c, type: g, matches: e }), h = h.slice(c.length)); if (!c) break } return b ? h.length : h ? ga.error(a) : z(a, i).slice(0) }; function ra(a) { for (var b = 0, c = a.length, d = ""; c > b; b++)d += a[b].value; return d } function sa(a, b, c) { var d = b.dir, e = c && "parentNode" === d, f = x++; return b.first ? function (b, c, f) { while (b = b[d]) if (1 === b.nodeType || e) return a(b, c, f) } : function (b, c, g) { var h, i, j = [w, f]; if (g) { while (b = b[d]) if ((1 === b.nodeType || e) && a(b, c, g)) return !0 } else while (b = b[d]) if (1 === b.nodeType || e) { if (i = b[u] || (b[u] = {}), (h = i[d]) && h[0] === w && h[1] === f) return j[2] = h[2]; if (i[d] = j, j[2] = a(b, c, g)) return !0 } } } function ta(a) { return a.length > 1 ? function (b, c, d) { var e = a.length; while (e--) if (!a[e](b, c, d)) return !1; return !0 } : a[0] } function ua(a, b, c) { for (var d = 0, e = b.length; e > d; d++)ga(a, b[d], c); return c } function va(a, b, c, d, e) { for (var f, g = [], h = 0, i = a.length, j = null != b; i > h; h++)(f = a[h]) && (!c || c(f, d, e)) && (g.push(f), j && b.push(h)); return g } function wa(a, b, c, d, e, f) { return d && !d[u] && (d = wa(d)), e && !e[u] && (e = wa(e, f)), ia(function (f, g, h, i) { var j, k, l, m = [], n = [], o = g.length, p = f || ua(b || "*", h.nodeType ? [h] : h, []), q = !a || !f && b ? p : va(p, m, a, h, i), r = c ? e || (f ? a : o || d) ? [] : g : q; if (c && c(q, r, h, i), d) { j = va(r, n), d(j, [], h, i), k = j.length; while (k--) (l = j[k]) && (r[n[k]] = !(q[n[k]] = l)) } if (f) { if (e || a) { if (e) { j = [], k = r.length; while (k--) (l = r[k]) && j.push(q[k] = l); e(null, r = [], j, i) } k = r.length; while (k--) (l = r[k]) && (j = e ? J(f, l) : m[k]) > -1 && (f[j] = !(g[j] = l)) } } else r = va(r === g ? r.splice(o, r.length) : r), e ? e(null, g, r, i) : H.apply(g, r) }) } function xa(a) { for (var b, c, e, f = a.length, g = d.relative[a[0].type], h = g || d.relative[" "], i = g ? 1 : 0, k = sa(function (a) { return a === b }, h, !0), l = sa(function (a) { return J(b, a) > -1 }, h, !0), m = [function (a, c, d) { var e = !g && (d || c !== j) || ((b = c).nodeType ? k(a, c, d) : l(a, c, d)); return b = null, e }]; f > i; i++)if (c = d.relative[a[i].type]) m = [sa(ta(m), c)]; else { if (c = d.filter[a[i].type].apply(null, a[i].matches), c[u]) { for (e = ++i; f > e; e++)if (d.relative[a[e].type]) break; return wa(i > 1 && ta(m), i > 1 && ra(a.slice(0, i - 1).concat({ value: " " === a[i - 2].type ? "*" : "" })).replace(R, "$1"), c, e > i && xa(a.slice(i, e)), f > e && xa(a = a.slice(e)), f > e && ra(a)) } m.push(c) } return ta(m) } function ya(a, b) { var c = b.length > 0, e = a.length > 0, f = function (f, g, h, i, k) { var l, m, o, p = 0, q = "0", r = f && [], s = [], t = j, u = f || e && d.find.TAG("*", k), v = w += null == t ? 1 : Math.random() || .1, x = u.length; for (k && (j = g !== n && g); q !== x && null != (l = u[q]); q++) { if (e && l) { m = 0; while (o = a[m++]) if (o(l, g, h)) { i.push(l); break } k && (w = v) } c && ((l = !o && l) && p--, f && r.push(l)) } if (p += q, c && q !== p) { m = 0; while (o = b[m++]) o(r, s, g, h); if (f) { if (p > 0) while (q--) r[q] || s[q] || (s[q] = F.call(i)); s = va(s) } H.apply(i, s), k && !f && s.length > 0 && p + b.length > 1 && ga.uniqueSort(i) } return k && (w = v, j = t), r }; return c ? ia(f) : f } return h = ga.compile = function (a, b) { var c, d = [], e = [], f = A[a + " "]; if (!f) { b || (b = g(a)), c = b.length; while (c--) f = xa(b[c]), f[u] ? d.push(f) : e.push(f); f = A(a, ya(e, d)), f.selector = a } return f }, i = ga.select = function (a, b, e, f) { var i, j, k, l, m, n = "function" == typeof a && a, o = !f && g(a = n.selector || a); if (e = e || [], 1 === o.length) { if (j = o[0] = o[0].slice(0), j.length > 2 && "ID" === (k = j[0]).type && c.getById && 9 === b.nodeType && p && d.relative[j[1].type]) { if (b = (d.find.ID(k.matches[0].replace(ca, da), b) || [])[0], !b) return e; n && (b = b.parentNode), a = a.slice(j.shift().value.length) } i = X.needsContext.test(a) ? 0 : j.length; while (i--) { if (k = j[i], d.relative[l = k.type]) break; if ((m = d.find[l]) && (f = m(k.matches[0].replace(ca, da), aa.test(j[0].type) && pa(b.parentNode) || b))) { if (j.splice(i, 1), a = f.length && ra(j), !a) return H.apply(e, f), e; break } } } return (n || h(a, o))(f, b, !p, e, aa.test(a) && pa(b.parentNode) || b), e }, c.sortStable = u.split("").sort(B).join("") === u, c.detectDuplicates = !!l, m(), c.sortDetached = ja(function (a) { return 1 & a.compareDocumentPosition(n.createElement("div")) }), ja(function (a) { return a.innerHTML = "<a href='#'></a>", "#" === a.firstChild.getAttribute("href") }) || ka("type|href|height|width", function (a, b, c) { return c ? void 0 : a.getAttribute(b, "type" === b.toLowerCase() ? 1 : 2) }), c.attributes && ja(function (a) { return a.innerHTML = "<input/>", a.firstChild.setAttribute("value", ""), "" === a.firstChild.getAttribute("value") }) || ka("value", function (a, b, c) { return c || "input" !== a.nodeName.toLowerCase() ? void 0 : a.defaultValue }), ja(function (a) { return null == a.getAttribute("disabled") }) || ka(K, function (a, b, c) { var d; return c ? void 0 : a[b] === !0 ? b.toLowerCase() : (d = a.getAttributeNode(b)) && d.specified ? d.value : null }), ga }(a); m.find = s, m.expr = s.selectors, m.expr[":"] = m.expr.pseudos, m.unique = s.uniqueSort, m.text = s.getText, m.isXMLDoc = s.isXML, m.contains = s.contains; var t = m.expr.match.needsContext, u = /^<(\w+)\s*\/?>(?:<\/\1>|)$/, v = /^.[^:#\[\.,]*$/; function w(a, b, c) { if (m.isFunction(b)) return m.grep(a, function (a, d) { return !!b.call(a, d, a) !== c }); if (b.nodeType) return m.grep(a, function (a) { return a === b !== c }); if ("string" == typeof b) { if (v.test(b)) return m.filter(b, a, c); b = m.filter(b, a) } return m.grep(a, function (a) { return m.inArray(a, b) >= 0 !== c }) } m.filter = function (a, b, c) { var d = b[0]; return c && (a = ":not(" + a + ")"), 1 === b.length && 1 === d.nodeType ? m.find.matchesSelector(d, a) ? [d] : [] : m.find.matches(a, m.grep(b, function (a) { return 1 === a.nodeType })) }, m.fn.extend({ find: function (a) { var b, c = [], d = this, e = d.length; if ("string" != typeof a) return this.pushStack(m(a).filter(function () { for (b = 0; e > b; b++)if (m.contains(d[b], this)) return !0 })); for (b = 0; e > b; b++)m.find(a, d[b], c); return c = this.pushStack(e > 1 ? m.unique(c) : c), c.selector = this.selector ? this.selector + " " + a : a, c }, filter: function (a) { return this.pushStack(w(this, a || [], !1)) }, not: function (a) { return this.pushStack(w(this, a || [], !0)) }, is: function (a) { return !!w(this, "string" == typeof a && t.test(a) ? m(a) : a || [], !1).length } }); var x, y = a.document, z = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/, A = m.fn.init = function (a, b) { var c, d; if (!a) return this; if ("string" == typeof a) { if (c = "<" === a.charAt(0) && ">" === a.charAt(a.length - 1) && a.length >= 3 ? [null, a, null] : z.exec(a), !c || !c[1] && b) return !b || b.jquery ? (b || x).find(a) : this.constructor(b).find(a); if (c[1]) { if (b = b instanceof m ? b[0] : b, m.merge(this, m.parseHTML(c[1], b && b.nodeType ? b.ownerDocument || b : y, !0)), u.test(c[1]) && m.isPlainObject(b)) for (c in b) m.isFunction(this[c]) ? this[c](b[c]) : this.attr(c, b[c]); return this } if (d = y.getElementById(c[2]), d && d.parentNode) { if (d.id !== c[2]) return x.find(a); this.length = 1, this[0] = d } return this.context = y, this.selector = a, this } return a.nodeType ? (this.context = this[0] = a, this.length = 1, this) : m.isFunction(a) ? "undefined" != typeof x.ready ? x.ready(a) : a(m) : (void 0 !== a.selector && (this.selector = a.selector, this.context = a.context), m.makeArray(a, this)) }; A.prototype = m.fn, x = m(y); var B = /^(?:parents|prev(?:Until|All))/, C = { children: !0, contents: !0, next: !0, prev: !0 }; m.extend({ dir: function (a, b, c) { var d = [], e = a[b]; while (e && 9 !== e.nodeType && (void 0 === c || 1 !== e.nodeType || !m(e).is(c))) 1 === e.nodeType && d.push(e), e = e[b]; return d }, sibling: function (a, b) { for (var c = []; a; a = a.nextSibling)1 === a.nodeType && a !== b && c.push(a); return c } }), m.fn.extend({ has: function (a) { var b, c = m(a, this), d = c.length; return this.filter(function () { for (b = 0; d > b; b++)if (m.contains(this, c[b])) return !0 }) }, closest: function (a, b) { for (var c, d = 0, e = this.length, f = [], g = t.test(a) || "string" != typeof a ? m(a, b || this.context) : 0; e > d; d++)for (c = this[d]; c && c !== b; c = c.parentNode)if (c.nodeType < 11 && (g ? g.index(c) > -1 : 1 === c.nodeType && m.find.matchesSelector(c, a))) { f.push(c); break } return this.pushStack(f.length > 1 ? m.unique(f) : f) }, index: function (a) { return a ? "string" == typeof a ? m.inArray(this[0], m(a)) : m.inArray(a.jquery ? a[0] : a, this) : this[0] && this[0].parentNode ? this.first().prevAll().length : -1 }, add: function (a, b) { return this.pushStack(m.unique(m.merge(this.get(), m(a, b)))) }, addBack: function (a) { return this.add(null == a ? this.prevObject : this.prevObject.filter(a)) } }); function D(a, b) { do a = a[b]; while (a && 1 !== a.nodeType); return a } m.each({ parent: function (a) { var b = a.parentNode; return b && 11 !== b.nodeType ? b : null }, parents: function (a) { return m.dir(a, "parentNode") }, parentsUntil: function (a, b, c) { return m.dir(a, "parentNode", c) }, next: function (a) { return D(a, "nextSibling") }, prev: function (a) { return D(a, "previousSibling") }, nextAll: function (a) { return m.dir(a, "nextSibling") }, prevAll: function (a) { return m.dir(a, "previousSibling") }, nextUntil: function (a, b, c) { return m.dir(a, "nextSibling", c) }, prevUntil: function (a, b, c) { return m.dir(a, "previousSibling", c) }, siblings: function (a) { return m.sibling((a.parentNode || {}).firstChild, a) }, children: function (a) { return m.sibling(a.firstChild) }, contents: function (a) { return m.nodeName(a, "iframe") ? a.contentDocument || a.contentWindow.document : m.merge([], a.childNodes) } }, function (a, b) { m.fn[a] = function (c, d) { var e = m.map(this, b, c); return "Until" !== a.slice(-5) && (d = c), d && "string" == typeof d && (e = m.filter(d, e)), this.length > 1 && (C[a] || (e = m.unique(e)), B.test(a) && (e = e.reverse())), this.pushStack(e) } }); var E = /\S+/g, F = {}; function G(a) { var b = F[a] = {}; return m.each(a.match(E) || [], function (a, c) { b[c] = !0 }), b } m.Callbacks = function (a) { a = "string" == typeof a ? F[a] || G(a) : m.extend({}, a); var b, c, d, e, f, g, h = [], i = !a.once && [], j = function (l) { for (c = a.memory && l, d = !0, f = g || 0, g = 0, e = h.length, b = !0; h && e > f; f++)if (h[f].apply(l[0], l[1]) === !1 && a.stopOnFalse) { c = !1; break } b = !1, h && (i ? i.length && j(i.shift()) : c ? h = [] : k.disable()) }, k = { add: function () { if (h) { var d = h.length; !function f(b) { m.each(b, function (b, c) { var d = m.type(c); "function" === d ? a.unique && k.has(c) || h.push(c) : c && c.length && "string" !== d && f(c) }) }(arguments), b ? e = h.length : c && (g = d, j(c)) } return this }, remove: function () { return h && m.each(arguments, function (a, c) { var d; while ((d = m.inArray(c, h, d)) > -1) h.splice(d, 1), b && (e >= d && e--, f >= d && f--) }), this }, has: function (a) { return a ? m.inArray(a, h) > -1 : !(!h || !h.length) }, empty: function () { return h = [], e = 0, this }, disable: function () { return h = i = c = void 0, this }, disabled: function () { return !h }, lock: function () { return i = void 0, c || k.disable(), this }, locked: function () { return !i }, fireWith: function (a, c) { return !h || d && !i || (c = c || [], c = [a, c.slice ? c.slice() : c], b ? i.push(c) : j(c)), this }, fire: function () { return k.fireWith(this, arguments), this }, fired: function () { return !!d } }; return k }, m.extend({ Deferred: function (a) { var b = [["resolve", "done", m.Callbacks("once memory"), "resolved"], ["reject", "fail", m.Callbacks("once memory"), "rejected"], ["notify", "progress", m.Callbacks("memory")]], c = "pending", d = { state: function () { return c }, always: function () { return e.done(arguments).fail(arguments), this }, then: function () { var a = arguments; return m.Deferred(function (c) { m.each(b, function (b, f) { var g = m.isFunction(a[b]) && a[b]; e[f[1]](function () { var a = g && g.apply(this, arguments); a && m.isFunction(a.promise) ? a.promise().done(c.resolve).fail(c.reject).progress(c.notify) : c[f[0] + "With"](this === d ? c.promise() : this, g ? [a] : arguments) }) }), a = null }).promise() }, promise: function (a) { return null != a ? m.extend(a, d) : d } }, e = {}; return d.pipe = d.then, m.each(b, function (a, f) { var g = f[2], h = f[3]; d[f[1]] = g.add, h && g.add(function () { c = h }, b[1 ^ a][2].disable, b[2][2].lock), e[f[0]] = function () { return e[f[0] + "With"](this === e ? d : this, arguments), this }, e[f[0] + "With"] = g.fireWith }), d.promise(e), a && a.call(e, e), e }, when: function (a) { var b = 0, c = d.call(arguments), e = c.length, f = 1 !== e || a && m.isFunction(a.promise) ? e : 0, g = 1 === f ? a : m.Deferred(), h = function (a, b, c) { return function (e) { b[a] = this, c[a] = arguments.length > 1 ? d.call(arguments) : e, c === i ? g.notifyWith(b, c) : --f || g.resolveWith(b, c) } }, i, j, k; if (e > 1) for (i = new Array(e), j = new Array(e), k = new Array(e); e > b; b++)c[b] && m.isFunction(c[b].promise) ? c[b].promise().done(h(b, k, c)).fail(g.reject).progress(h(b, j, i)) : --f; return f || g.resolveWith(k, c), g.promise() } }); var H; m.fn.ready = function (a) { return m.ready.promise().done(a), this }, m.extend({ isReady: !1, readyWait: 1, holdReady: function (a) { a ? m.readyWait++ : m.ready(!0) }, ready: function (a) { if (a === !0 ? !--m.readyWait : !m.isReady) { if (!y.body) return setTimeout(m.ready); m.isReady = !0, a !== !0 && --m.readyWait > 0 || (H.resolveWith(y, [m]), m.fn.triggerHandler && (m(y).triggerHandler("ready"), m(y).off("ready"))) } } }); function I() { y.addEventListener ? (y.removeEventListener("DOMContentLoaded", J, !1), a.removeEventListener("load", J, !1)) : (y.detachEvent("onreadystatechange", J), a.detachEvent("onload", J)) } function J() { (y.addEventListener || "load" === event.type || "complete" === y.readyState) && (I(), m.ready()) } m.ready.promise = function (b) { if (!H) if (H = m.Deferred(), "complete" === y.readyState) setTimeout(m.ready); else if (y.addEventListener) y.addEventListener("DOMContentLoaded", J, !1), a.addEventListener("load", J, !1); else { y.attachEvent("onreadystatechange", J), a.attachEvent("onload", J); var c = !1; try { c = null == a.frameElement && y.documentElement } catch (d) { } c && c.doScroll && !function e() { if (!m.isReady) { try { c.doScroll("left") } catch (a) { return setTimeout(e, 50) } I(), m.ready() } }() } return H.promise(b) }; var K = "undefined", L; for (L in m(k)) break; k.ownLast = "0" !== L, k.inlineBlockNeedsLayout = !1, m(function () { var a, b, c, d; c = y.getElementsByTagName("body")[0], c && c.style && (b = y.createElement("div"), d = y.createElement("div"), d.style.cssText = "position:absolute;border:0;width:0;height:0;top:0;left:-9999px", c.appendChild(d).appendChild(b), typeof b.style.zoom !== K && (b.style.cssText = "display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1", k.inlineBlockNeedsLayout = a = 3 === b.offsetWidth, a && (c.style.zoom = 1)), c.removeChild(d)) }), function () { var a = y.createElement("div"); if (null == k.deleteExpando) { k.deleteExpando = !0; try { delete a.test } catch (b) { k.deleteExpando = !1 } } a = null }(), m.acceptData = function (a) { var b = m.noData[(a.nodeName + " ").toLowerCase()], c = +a.nodeType || 1; return 1 !== c && 9 !== c ? !1 : !b || b !== !0 && a.getAttribute("classid") === b }; var M = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, N = /([A-Z])/g; function O(a, b, c) { if (void 0 === c && 1 === a.nodeType) { var d = "data-" + b.replace(N, "-$1").toLowerCase(); if (c = a.getAttribute(d), "string" == typeof c) { try { c = "true" === c ? !0 : "false" === c ? !1 : "null" === c ? null : +c + "" === c ? +c : M.test(c) ? m.parseJSON(c) : c } catch (e) { } m.data(a, b, c) } else c = void 0 } return c } function P(a) { var b; for (b in a) if (("data" !== b || !m.isEmptyObject(a[b])) && "toJSON" !== b) return !1; return !0 } function Q(a, b, d, e) { if (m.acceptData(a)) { var f, g, h = m.expando, i = a.nodeType, j = i ? m.cache : a, k = i ? a[h] : a[h] && h; if (k && j[k] && (e || j[k].data) || void 0 !== d || "string" != typeof b) return k || (k = i ? a[h] = c.pop() || m.guid++ : h), j[k] || (j[k] = i ? {} : { toJSON: m.noop }), ("object" == typeof b || "function" == typeof b) && (e ? j[k] = m.extend(j[k], b) : j[k].data = m.extend(j[k].data, b)), g = j[k], e || (g.data || (g.data = {}), g = g.data), void 0 !== d && (g[m.camelCase(b)] = d), "string" == typeof b ? (f = g[b], null == f && (f = g[m.camelCase(b)])) : f = g, f } } function R(a, b, c) { if (m.acceptData(a)) { var d, e, f = a.nodeType, g = f ? m.cache : a, h = f ? a[m.expando] : m.expando; if (g[h]) { if (b && (d = c ? g[h] : g[h].data)) { m.isArray(b) ? b = b.concat(m.map(b, m.camelCase)) : b in d ? b = [b] : (b = m.camelCase(b), b = b in d ? [b] : b.split(" ")), e = b.length; while (e--) delete d[b[e]]; if (c ? !P(d) : !m.isEmptyObject(d)) return } (c || (delete g[h].data, P(g[h]))) && (f ? m.cleanData([a], !0) : k.deleteExpando || g != g.window ? delete g[h] : g[h] = null) } } } m.extend({ cache: {}, noData: { "applet ": !0, "embed ": !0, "object ": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" }, hasData: function (a) { return a = a.nodeType ? m.cache[a[m.expando]] : a[m.expando], !!a && !P(a) }, data: function (a, b, c) { return Q(a, b, c) }, removeData: function (a, b) { return R(a, b) }, _data: function (a, b, c) { return Q(a, b, c, !0) }, _removeData: function (a, b) { return R(a, b, !0) } }), m.fn.extend({ data: function (a, b) { var c, d, e, f = this[0], g = f && f.attributes; if (void 0 === a) { if (this.length && (e = m.data(f), 1 === f.nodeType && !m._data(f, "parsedAttrs"))) { c = g.length; while (c--) g[c] && (d = g[c].name, 0 === d.indexOf("data-") && (d = m.camelCase(d.slice(5)), O(f, d, e[d]))); m._data(f, "parsedAttrs", !0) } return e } return "object" == typeof a ? this.each(function () { m.data(this, a) }) : arguments.length > 1 ? this.each(function () { m.data(this, a, b) }) : f ? O(f, a, m.data(f, a)) : void 0 }, removeData: function (a) { return this.each(function () { m.removeData(this, a) }) } }), m.extend({ queue: function (a, b, c) { var d; return a ? (b = (b || "fx") + "queue", d = m._data(a, b), c && (!d || m.isArray(c) ? d = m._data(a, b, m.makeArray(c)) : d.push(c)), d || []) : void 0 }, dequeue: function (a, b) { b = b || "fx"; var c = m.queue(a, b), d = c.length, e = c.shift(), f = m._queueHooks(a, b), g = function () { m.dequeue(a, b) }; "inprogress" === e && (e = c.shift(), d--), e && ("fx" === b && c.unshift("inprogress"), delete f.stop, e.call(a, g, f)), !d && f && f.empty.fire() }, _queueHooks: function (a, b) { var c = b + "queueHooks"; return m._data(a, c) || m._data(a, c, { empty: m.Callbacks("once memory").add(function () { m._removeData(a, b + "queue"), m._removeData(a, c) }) }) } }), m.fn.extend({ queue: function (a, b) { var c = 2; return "string" != typeof a && (b = a, a = "fx", c--), arguments.length < c ? m.queue(this[0], a) : void 0 === b ? this : this.each(function () { var c = m.queue(this, a, b); m._queueHooks(this, a), "fx" === a && "inprogress" !== c[0] && m.dequeue(this, a) }) }, dequeue: function (a) { return this.each(function () { m.dequeue(this, a) }) }, clearQueue: function (a) { return this.queue(a || "fx", []) }, promise: function (a, b) { var c, d = 1, e = m.Deferred(), f = this, g = this.length, h = function () { --d || e.resolveWith(f, [f]) }; "string" != typeof a && (b = a, a = void 0), a = a || "fx"; while (g--) c = m._data(f[g], a + "queueHooks"), c && c.empty && (d++, c.empty.add(h)); return h(), e.promise(b) } }); var S = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source, T = ["Top", "Right", "Bottom", "Left"], U = function (a, b) { return a = b || a, "none" === m.css(a, "display") || !m.contains(a.ownerDocument, a) }, V = m.access = function (a, b, c, d, e, f, g) { var h = 0, i = a.length, j = null == c; if ("object" === m.type(c)) { e = !0; for (h in c) m.access(a, b, h, c[h], !0, f, g) } else if (void 0 !== d && (e = !0, m.isFunction(d) || (g = !0), j && (g ? (b.call(a, d), b = null) : (j = b, b = function (a, b, c) { return j.call(m(a), c) })), b)) for (; i > h; h++)b(a[h], c, g ? d : d.call(a[h], h, b(a[h], c))); return e ? a : j ? b.call(a) : i ? b(a[0], c) : f }, W = /^(?:checkbox|radio)$/i; !function () { var a = y.createElement("input"), b = y.createElement("div"), c = y.createDocumentFragment(); if (b.innerHTML = " <link/><table></table><a href='/a'>a</a><input type='checkbox'/>", k.leadingWhitespace = 3 === b.firstChild.nodeType, k.tbody = !b.getElementsByTagName("tbody").length, k.htmlSerialize = !!b.getElementsByTagName("link").length, k.html5Clone = "<:nav></:nav>" !== y.createElement("nav").cloneNode(!0).outerHTML, a.type = "checkbox", a.checked = !0, c.appendChild(a), k.appendChecked = a.checked, b.innerHTML = "<textarea>x</textarea>", k.noCloneChecked = !!b.cloneNode(!0).lastChild.defaultValue, c.appendChild(b), b.innerHTML = "<input type='radio' checked='checked' name='t'/>", k.checkClone = b.cloneNode(!0).cloneNode(!0).lastChild.checked, k.noCloneEvent = !0, b.attachEvent && (b.attachEvent("onclick", function () { k.noCloneEvent = !1 }), b.cloneNode(!0).click()), null == k.deleteExpando) { k.deleteExpando = !0; try { delete b.test } catch (d) { k.deleteExpando = !1 } } }(), function () { var b, c, d = y.createElement("div"); for (b in { submit: !0, change: !0, focusin: !0 }) c = "on" + b, (k[b + "Bubbles"] = c in a) || (d.setAttribute(c, "t"), k[b + "Bubbles"] = d.attributes[c].expando === !1); d = null }(); var X = /^(?:input|select|textarea)$/i, Y = /^key/, Z = /^(?:mouse|pointer|contextmenu)|click/, $ = /^(?:focusinfocus|focusoutblur)$/, _ = /^([^.]*)(?:\.(.+)|)$/; function aa() { return !0 } function ba() { return !1 } function ca() { try { return y.activeElement } catch (a) { } } m.event = { global: {}, add: function (a, b, c, d, e) { var f, g, h, i, j, k, l, n, o, p, q, r = m._data(a); if (r) { c.handler && (i = c, c = i.handler, e = i.selector), c.guid || (c.guid = m.guid++), (g = r.events) || (g = r.events = {}), (k = r.handle) || (k = r.handle = function (a) { return typeof m === K || a && m.event.triggered === a.type ? void 0 : m.event.dispatch.apply(k.elem, arguments) }, k.elem = a), b = (b || "").match(E) || [""], h = b.length; while (h--) f = _.exec(b[h]) || [], o = q = f[1], p = (f[2] || "").split(".").sort(), o && (j = m.event.special[o] || {}, o = (e ? j.delegateType : j.bindType) || o, j = m.event.special[o] || {}, l = m.extend({ type: o, origType: q, data: d, handler: c, guid: c.guid, selector: e, needsContext: e && m.expr.match.needsContext.test(e), namespace: p.join(".") }, i), (n = g[o]) || (n = g[o] = [], n.delegateCount = 0, j.setup && j.setup.call(a, d, p, k) !== !1 || (a.addEventListener ? a.addEventListener(o, k, !1) : a.attachEvent && a.attachEvent("on" + o, k))), j.add && (j.add.call(a, l), l.handler.guid || (l.handler.guid = c.guid)), e ? n.splice(n.delegateCount++, 0, l) : n.push(l), m.event.global[o] = !0); a = null } }, remove: function (a, b, c, d, e) { var f, g, h, i, j, k, l, n, o, p, q, r = m.hasData(a) && m._data(a); if (r && (k = r.events)) { b = (b || "").match(E) || [""], j = b.length; while (j--) if (h = _.exec(b[j]) || [], o = q = h[1], p = (h[2] || "").split(".").sort(), o) { l = m.event.special[o] || {}, o = (d ? l.delegateType : l.bindType) || o, n = k[o] || [], h = h[2] && new RegExp("(^|\\.)" + p.join("\\.(?:.*\\.|)") + "(\\.|$)"), i = f = n.length; while (f--) g = n[f], !e && q !== g.origType || c && c.guid !== g.guid || h && !h.test(g.namespace) || d && d !== g.selector && ("**" !== d || !g.selector) || (n.splice(f, 1), g.selector && n.delegateCount--, l.remove && l.remove.call(a, g)); i && !n.length && (l.teardown && l.teardown.call(a, p, r.handle) !== !1 || m.removeEvent(a, o, r.handle), delete k[o]) } else for (o in k) m.event.remove(a, o + b[j], c, d, !0); m.isEmptyObject(k) && (delete r.handle, m._removeData(a, "events")) } }, trigger: function (b, c, d, e) { var f, g, h, i, k, l, n, o = [d || y], p = j.call(b, "type") ? b.type : b, q = j.call(b, "namespace") ? b.namespace.split(".") : []; if (h = l = d = d || y, 3 !== d.nodeType && 8 !== d.nodeType && !$.test(p + m.event.triggered) && (p.indexOf(".") >= 0 && (q = p.split("."), p = q.shift(), q.sort()), g = p.indexOf(":") < 0 && "on" + p, b = b[m.expando] ? b : new m.Event(p, "object" == typeof b && b), b.isTrigger = e ? 2 : 3, b.namespace = q.join("."), b.namespace_re = b.namespace ? new RegExp("(^|\\.)" + q.join("\\.(?:.*\\.|)") + "(\\.|$)") : null, b.result = void 0, b.target || (b.target = d), c = null == c ? [b] : m.makeArray(c, [b]), k = m.event.special[p] || {}, e || !k.trigger || k.trigger.apply(d, c) !== !1)) { if (!e && !k.noBubble && !m.isWindow(d)) { for (i = k.delegateType || p, $.test(i + p) || (h = h.parentNode); h; h = h.parentNode)o.push(h), l = h; l === (d.ownerDocument || y) && o.push(l.defaultView || l.parentWindow || a) } n = 0; while ((h = o[n++]) && !b.isPropagationStopped()) b.type = n > 1 ? i : k.bindType || p, f = (m._data(h, "events") || {})[b.type] && m._data(h, "handle"), f && f.apply(h, c), f = g && h[g], f && f.apply && m.acceptData(h) && (b.result = f.apply(h, c), b.result === !1 && b.preventDefault()); if (b.type = p, !e && !b.isDefaultPrevented() && (!k._default || k._default.apply(o.pop(), c) === !1) && m.acceptData(d) && g && d[p] && !m.isWindow(d)) { l = d[g], l && (d[g] = null), m.event.triggered = p; try { d[p]() } catch (r) { } m.event.triggered = void 0, l && (d[g] = l) } return b.result } }, dispatch: function (a) { a = m.event.fix(a); var b, c, e, f, g, h = [], i = d.call(arguments), j = (m._data(this, "events") || {})[a.type] || [], k = m.event.special[a.type] || {}; if (i[0] = a, a.delegateTarget = this, !k.preDispatch || k.preDispatch.call(this, a) !== !1) { h = m.event.handlers.call(this, a, j), b = 0; while ((f = h[b++]) && !a.isPropagationStopped()) { a.currentTarget = f.elem, g = 0; while ((e = f.handlers[g++]) && !a.isImmediatePropagationStopped()) (!a.namespace_re || a.namespace_re.test(e.namespace)) && (a.handleObj = e, a.data = e.data, c = ((m.event.special[e.origType] || {}).handle || e.handler).apply(f.elem, i), void 0 !== c && (a.result = c) === !1 && (a.preventDefault(), a.stopPropagation())) } return k.postDispatch && k.postDispatch.call(this, a), a.result } }, handlers: function (a, b) { var c, d, e, f, g = [], h = b.delegateCount, i = a.target; if (h && i.nodeType && (!a.button || "click" !== a.type)) for (; i != this; i = i.parentNode || this)if (1 === i.nodeType && (i.disabled !== !0 || "click" !== a.type)) { for (e = [], f = 0; h > f; f++)d = b[f], c = d.selector + " ", void 0 === e[c] && (e[c] = d.needsContext ? m(c, this).index(i) >= 0 : m.find(c, this, null, [i]).length), e[c] && e.push(d); e.length && g.push({ elem: i, handlers: e }) } return h < b.length && g.push({ elem: this, handlers: b.slice(h) }), g }, fix: function (a) { if (a[m.expando]) return a; var b, c, d, e = a.type, f = a, g = this.fixHooks[e]; g || (this.fixHooks[e] = g = Z.test(e) ? this.mouseHooks : Y.test(e) ? this.keyHooks : {}), d = g.props ? this.props.concat(g.props) : this.props, a = new m.Event(f), b = d.length; while (b--) c = d[b], a[c] = f[c]; return a.target || (a.target = f.srcElement || y), 3 === a.target.nodeType && (a.target = a.target.parentNode), a.metaKey = !!a.metaKey, g.filter ? g.filter(a, f) : a }, props: "altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "), fixHooks: {}, keyHooks: { props: "char charCode key keyCode".split(" "), filter: function (a, b) { return null == a.which && (a.which = null != b.charCode ? b.charCode : b.keyCode), a } }, mouseHooks: { props: "button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "), filter: function (a, b) { var c, d, e, f = b.button, g = b.fromElement; return null == a.pageX && null != b.clientX && (d = a.target.ownerDocument || y, e = d.documentElement, c = d.body, a.pageX = b.clientX + (e && e.scrollLeft || c && c.scrollLeft || 0) - (e && e.clientLeft || c && c.clientLeft || 0), a.pageY = b.clientY + (e && e.scrollTop || c && c.scrollTop || 0) - (e && e.clientTop || c && c.clientTop || 0)), !a.relatedTarget && g && (a.relatedTarget = g === a.target ? b.toElement : g), a.which || void 0 === f || (a.which = 1 & f ? 1 : 2 & f ? 3 : 4 & f ? 2 : 0), a } }, special: { load: { noBubble: !0 }, focus: { trigger: function () { if (this !== ca() && this.focus) try { return this.focus(), !1 } catch (a) { } }, delegateType: "focusin" }, blur: { trigger: function () { return this === ca() && this.blur ? (this.blur(), !1) : void 0 }, delegateType: "focusout" }, click: { trigger: function () { return m.nodeName(this, "input") && "checkbox" === this.type && this.click ? (this.click(), !1) : void 0 }, _default: function (a) { return m.nodeName(a.target, "a") } }, beforeunload: { postDispatch: function (a) { void 0 !== a.result && a.originalEvent && (a.originalEvent.returnValue = a.result) } } }, simulate: function (a, b, c, d) { var e = m.extend(new m.Event, c, { type: a, isSimulated: !0, originalEvent: {} }); d ? m.event.trigger(e, null, b) : m.event.dispatch.call(b, e), e.isDefaultPrevented() && c.preventDefault() } }, m.removeEvent = y.removeEventListener ? function (a, b, c) { a.removeEventListener && a.removeEventListener(b, c, !1) } : function (a, b, c) { var d = "on" + b; a.detachEvent && (typeof a[d] === K && (a[d] = null), a.detachEvent(d, c)) }, m.Event = function (a, b) { return this instanceof m.Event ? (a && a.type ? (this.originalEvent = a, this.type = a.type, this.isDefaultPrevented = a.defaultPrevented || void 0 === a.defaultPrevented && a.returnValue === !1 ? aa : ba) : this.type = a, b && m.extend(this, b), this.timeStamp = a && a.timeStamp || m.now(), void (this[m.expando] = !0)) : new m.Event(a, b) }, m.Event.prototype = { isDefaultPrevented: ba, isPropagationStopped: ba, isImmediatePropagationStopped: ba, preventDefault: function () { var a = this.originalEvent; this.isDefaultPrevented = aa, a && (a.preventDefault ? a.preventDefault() : a.returnValue = !1) }, stopPropagation: function () { var a = this.originalEvent; this.isPropagationStopped = aa, a && (a.stopPropagation && a.stopPropagation(), a.cancelBubble = !0) }, stopImmediatePropagation: function () { var a = this.originalEvent; this.isImmediatePropagationStopped = aa, a && a.stopImmediatePropagation && a.stopImmediatePropagation(), this.stopPropagation() } }, m.each({ mouseenter: "mouseover", mouseleave: "mouseout", pointerenter: "pointerover", pointerleave: "pointerout" }, function (a, b) { m.event.special[a] = { delegateType: b, bindType: b, handle: function (a) { var c, d = this, e = a.relatedTarget, f = a.handleObj; return (!e || e !== d && !m.contains(d, e)) && (a.type = f.origType, c = f.handler.apply(this, arguments), a.type = b), c } } }), k.submitBubbles || (m.event.special.submit = { setup: function () { return m.nodeName(this, "form") ? !1 : void m.event.add(this, "click._submit keypress._submit", function (a) { var b = a.target, c = m.nodeName(b, "input") || m.nodeName(b, "button") ? b.form : void 0; c && !m._data(c, "submitBubbles") && (m.event.add(c, "submit._submit", function (a) { a._submit_bubble = !0 }), m._data(c, "submitBubbles", !0)) }) }, postDispatch: function (a) { a._submit_bubble && (delete a._submit_bubble, this.parentNode && !a.isTrigger && m.event.simulate("submit", this.parentNode, a, !0)) }, teardown: function () { return m.nodeName(this, "form") ? !1 : void m.event.remove(this, "._submit") } }), k.changeBubbles || (m.event.special.change = { setup: function () { return X.test(this.nodeName) ? (("checkbox" === this.type || "radio" === this.type) && (m.event.add(this, "propertychange._change", function (a) { "checked" === a.originalEvent.propertyName && (this._just_changed = !0) }), m.event.add(this, "click._change", function (a) { this._just_changed && !a.isTrigger && (this._just_changed = !1), m.event.simulate("change", this, a, !0) })), !1) : void m.event.add(this, "beforeactivate._change", function (a) { var b = a.target; X.test(b.nodeName) && !m._data(b, "changeBubbles") && (m.event.add(b, "change._change", function (a) { !this.parentNode || a.isSimulated || a.isTrigger || m.event.simulate("change", this.parentNode, a, !0) }), m._data(b, "changeBubbles", !0)) }) }, handle: function (a) { var b = a.target; return this !== b || a.isSimulated || a.isTrigger || "radio" !== b.type && "checkbox" !== b.type ? a.handleObj.handler.apply(this, arguments) : void 0 }, teardown: function () { return m.event.remove(this, "._change"), !X.test(this.nodeName) } }), k.focusinBubbles || m.each({ focus: "focusin", blur: "focusout" }, function (a, b) { var c = function (a) { m.event.simulate(b, a.target, m.event.fix(a), !0) }; m.event.special[b] = { setup: function () { var d = this.ownerDocument || this, e = m._data(d, b); e || d.addEventListener(a, c, !0), m._data(d, b, (e || 0) + 1) }, teardown: function () { var d = this.ownerDocument || this, e = m._data(d, b) - 1; e ? m._data(d, b, e) : (d.removeEventListener(a, c, !0), m._removeData(d, b)) } } }), m.fn.extend({ on: function (a, b, c, d, e) { var f, g; if ("object" == typeof a) { "string" != typeof b && (c = c || b, b = void 0); for (f in a) this.on(f, b, c, a[f], e); return this } if (null == c && null == d ? (d = b, c = b = void 0) : null == d && ("string" == typeof b ? (d = c, c = void 0) : (d = c, c = b, b = void 0)), d === !1) d = ba; else if (!d) return this; return 1 === e && (g = d, d = function (a) { return m().off(a), g.apply(this, arguments) }, d.guid = g.guid || (g.guid = m.guid++)), this.each(function () { m.event.add(this, a, d, c, b) }) }, one: function (a, b, c, d) { return this.on(a, b, c, d, 1) }, off: function (a, b, c) { var d, e; if (a && a.preventDefault && a.handleObj) return d = a.handleObj, m(a.delegateTarget).off(d.namespace ? d.origType + "." + d.namespace : d.origType, d.selector, d.handler), this; if ("object" == typeof a) { for (e in a) this.off(e, b, a[e]); return this } return (b === !1 || "function" == typeof b) && (c = b, b = void 0), c === !1 && (c = ba), this.each(function () { m.event.remove(this, a, c, b) }) }, trigger: function (a, b) { return this.each(function () { m.event.trigger(a, b, this) }) }, triggerHandler: function (a, b) { var c = this[0]; return c ? m.event.trigger(a, b, c, !0) : void 0 } }); function da(a) { var b = ea.split("|"), c = a.createDocumentFragment(); if (c.createElement) while (b.length) c.createElement(b.pop()); return c } var ea = "abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video", fa = / jQuery\d+="(?:null|\d+)"/g, ga = new RegExp("<(?:" + ea + ")[\\s/>]", "i"), ha = /^\s+/, ia = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi, ja = /<([\w:]+)/, ka = /<tbody/i, la = /<|&#?\w+;/, ma = /<(?:script|style|link)/i, na = /checked\s*(?:[^=]|=\s*.checked.)/i, oa = /^$|\/(?:java|ecma)script/i, pa = /^true\/(.*)/, qa = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g, ra = { option: [1, "<select multiple='multiple'>", "</select>"], legend: [1, "<fieldset>", "</fieldset>"], area: [1, "<map>", "</map>"], param: [1, "<object>", "</object>"], thead: [1, "<table>", "</table>"], tr: [2, "<table><tbody>", "</tbody></table>"], col: [2, "<table><tbody></tbody><colgroup>", "</colgroup></table>"], td: [3, "<table><tbody><tr>", "</tr></tbody></table>"], _default: k.htmlSerialize ? [0, "", ""] : [1, "X<div>", "</div>"] }, sa = da(y), ta = sa.appendChild(y.createElement("div")); ra.optgroup = ra.option, ra.tbody = ra.tfoot = ra.colgroup = ra.caption = ra.thead, ra.th = ra.td; function ua(a, b) { var c, d, e = 0, f = typeof a.getElementsByTagName !== K ? a.getElementsByTagName(b || "*") : typeof a.querySelectorAll !== K ? a.querySelectorAll(b || "*") : void 0; if (!f) for (f = [], c = a.childNodes || a; null != (d = c[e]); e++)!b || m.nodeName(d, b) ? f.push(d) : m.merge(f, ua(d, b)); return void 0 === b || b && m.nodeName(a, b) ? m.merge([a], f) : f } function va(a) { W.test(a.type) && (a.defaultChecked = a.checked) } function wa(a, b) { return m.nodeName(a, "table") && m.nodeName(11 !== b.nodeType ? b : b.firstChild, "tr") ? a.getElementsByTagName("tbody")[0] || a.appendChild(a.ownerDocument.createElement("tbody")) : a } function xa(a) { return a.type = (null !== m.find.attr(a, "type")) + "/" + a.type, a } function ya(a) { var b = pa.exec(a.type); return b ? a.type = b[1] : a.removeAttribute("type"), a } function za(a, b) { for (var c, d = 0; null != (c = a[d]); d++)m._data(c, "globalEval", !b || m._data(b[d], "globalEval")) } function Aa(a, b) { if (1 === b.nodeType && m.hasData(a)) { var c, d, e, f = m._data(a), g = m._data(b, f), h = f.events; if (h) { delete g.handle, g.events = {}; for (c in h) for (d = 0, e = h[c].length; e > d; d++)m.event.add(b, c, h[c][d]) } g.data && (g.data = m.extend({}, g.data)) } } function Ba(a, b) { var c, d, e; if (1 === b.nodeType) { if (c = b.nodeName.toLowerCase(), !k.noCloneEvent && b[m.expando]) { e = m._data(b); for (d in e.events) m.removeEvent(b, d, e.handle); b.removeAttribute(m.expando) } "script" === c && b.text !== a.text ? (xa(b).text = a.text, ya(b)) : "object" === c ? (b.parentNode && (b.outerHTML = a.outerHTML), k.html5Clone && a.innerHTML && !m.trim(b.innerHTML) && (b.innerHTML = a.innerHTML)) : "input" === c && W.test(a.type) ? (b.defaultChecked = b.checked = a.checked, b.value !== a.value && (b.value = a.value)) : "option" === c ? b.defaultSelected = b.selected = a.defaultSelected : ("input" === c || "textarea" === c) && (b.defaultValue = a.defaultValue) } } m.extend({ clone: function (a, b, c) { var d, e, f, g, h, i = m.contains(a.ownerDocument, a); if (k.html5Clone || m.isXMLDoc(a) || !ga.test("<" + a.nodeName + ">") ? f = a.cloneNode(!0) : (ta.innerHTML = a.outerHTML, ta.removeChild(f = ta.firstChild)), !(k.noCloneEvent && k.noCloneChecked || 1 !== a.nodeType && 11 !== a.nodeType || m.isXMLDoc(a))) for (d = ua(f), h = ua(a), g = 0; null != (e = h[g]); ++g)d[g] && Ba(e, d[g]); if (b) if (c) for (h = h || ua(a), d = d || ua(f), g = 0; null != (e = h[g]); g++)Aa(e, d[g]); else Aa(a, f); return d = ua(f, "script"), d.length > 0 && za(d, !i && ua(a, "script")), d = h = e = null, f }, buildFragment: function (a, b, c, d) { for (var e, f, g, h, i, j, l, n = a.length, o = da(b), p = [], q = 0; n > q; q++)if (f = a[q], f || 0 === f) if ("object" === m.type(f)) m.merge(p, f.nodeType ? [f] : f); else if (la.test(f)) { h = h || o.appendChild(b.createElement("div")), i = (ja.exec(f) || ["", ""])[1].toLowerCase(), l = ra[i] || ra._default, h.innerHTML = l[1] + f.replace(ia, "<$1></$2>") + l[2], e = l[0]; while (e--) h = h.lastChild; if (!k.leadingWhitespace && ha.test(f) && p.push(b.createTextNode(ha.exec(f)[0])), !k.tbody) { f = "table" !== i || ka.test(f) ? "<table>" !== l[1] || ka.test(f) ? 0 : h : h.firstChild, e = f && f.childNodes.length; while (e--) m.nodeName(j = f.childNodes[e], "tbody") && !j.childNodes.length && f.removeChild(j) } m.merge(p, h.childNodes), h.textContent = ""; while (h.firstChild) h.removeChild(h.firstChild); h = o.lastChild } else p.push(b.createTextNode(f)); h && o.removeChild(h), k.appendChecked || m.grep(ua(p, "input"), va), q = 0; while (f = p[q++]) if ((!d || -1 === m.inArray(f, d)) && (g = m.contains(f.ownerDocument, f), h = ua(o.appendChild(f), "script"), g && za(h), c)) { e = 0; while (f = h[e++]) oa.test(f.type || "") && c.push(f) } return h = null, o }, cleanData: function (a, b) { for (var d, e, f, g, h = 0, i = m.expando, j = m.cache, l = k.deleteExpando, n = m.event.special; null != (d = a[h]); h++)if ((b || m.acceptData(d)) && (f = d[i], g = f && j[f])) { if (g.events) for (e in g.events) n[e] ? m.event.remove(d, e) : m.removeEvent(d, e, g.handle); j[f] && (delete j[f], l ? delete d[i] : typeof d.removeAttribute !== K ? d.removeAttribute(i) : d[i] = null, c.push(f)) } } }), m.fn.extend({ text: function (a) { return V(this, function (a) { return void 0 === a ? m.text(this) : this.empty().append((this[0] && this[0].ownerDocument || y).createTextNode(a)) }, null, a, arguments.length) }, append: function () { return this.domManip(arguments, function (a) { if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) { var b = wa(this, a); b.appendChild(a) } }) }, prepend: function () { return this.domManip(arguments, function (a) { if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) { var b = wa(this, a); b.insertBefore(a, b.firstChild) } }) }, before: function () { return this.domManip(arguments, function (a) { this.parentNode && this.parentNode.insertBefore(a, this) }) }, after: function () { return this.domManip(arguments, function (a) { this.parentNode && this.parentNode.insertBefore(a, this.nextSibling) }) }, remove: function (a, b) { for (var c, d = a ? m.filter(a, this) : this, e = 0; null != (c = d[e]); e++)b || 1 !== c.nodeType || m.cleanData(ua(c)), c.parentNode && (b && m.contains(c.ownerDocument, c) && za(ua(c, "script")), c.parentNode.removeChild(c)); return this }, empty: function () { for (var a, b = 0; null != (a = this[b]); b++) { 1 === a.nodeType && m.cleanData(ua(a, !1)); while (a.firstChild) a.removeChild(a.firstChild); a.options && m.nodeName(a, "select") && (a.options.length = 0) } return this }, clone: function (a, b) { return a = null == a ? !1 : a, b = null == b ? a : b, this.map(function () { return m.clone(this, a, b) }) }, html: function (a) { return V(this, function (a) { var b = this[0] || {}, c = 0, d = this.length; if (void 0 === a) return 1 === b.nodeType ? b.innerHTML.replace(fa, "") : void 0; if (!("string" != typeof a || ma.test(a) || !k.htmlSerialize && ga.test(a) || !k.leadingWhitespace && ha.test(a) || ra[(ja.exec(a) || ["", ""])[1].toLowerCase()])) { a = a.replace(ia, "<$1></$2>"); try { for (; d > c; c++)b = this[c] || {}, 1 === b.nodeType && (m.cleanData(ua(b, !1)), b.innerHTML = a); b = 0 } catch (e) { } } b && this.empty().append(a) }, null, a, arguments.length) }, replaceWith: function () { var a = arguments[0]; return this.domManip(arguments, function (b) { a = this.parentNode, m.cleanData(ua(this)), a && a.replaceChild(b, this) }), a && (a.length || a.nodeType) ? this : this.remove() }, detach: function (a) { return this.remove(a, !0) }, domManip: function (a, b) { a = e.apply([], a); var c, d, f, g, h, i, j = 0, l = this.length, n = this, o = l - 1, p = a[0], q = m.isFunction(p); if (q || l > 1 && "string" == typeof p && !k.checkClone && na.test(p)) return this.each(function (c) { var d = n.eq(c); q && (a[0] = p.call(this, c, d.html())), d.domManip(a, b) }); if (l && (i = m.buildFragment(a, this[0].ownerDocument, !1, this), c = i.firstChild, 1 === i.childNodes.length && (i = c), c)) { for (g = m.map(ua(i, "script"), xa), f = g.length; l > j; j++)d = i, j !== o && (d = m.clone(d, !0, !0), f && m.merge(g, ua(d, "script"))), b.call(this[j], d, j); if (f) for (h = g[g.length - 1].ownerDocument, m.map(g, ya), j = 0; f > j; j++)d = g[j], oa.test(d.type || "") && !m._data(d, "globalEval") && m.contains(h, d) && (d.src ? m._evalUrl && m._evalUrl(d.src) : m.globalEval((d.text || d.textContent || d.innerHTML || "").replace(qa, ""))); i = c = null } return this } }), m.each({ appendTo: "append", prependTo: "prepend", insertBefore: "before", insertAfter: "after", replaceAll: "replaceWith" }, function (a, b) { m.fn[a] = function (a) { for (var c, d = 0, e = [], g = m(a), h = g.length - 1; h >= d; d++)c = d === h ? this : this.clone(!0), m(g[d])[b](c), f.apply(e, c.get()); return this.pushStack(e) } }); var Ca, Da = {}; function Ea(b, c) { var d, e = m(c.createElement(b)).appendTo(c.body), f = a.getDefaultComputedStyle && (d = a.getDefaultComputedStyle(e[0])) ? d.display : m.css(e[0], "display"); return e.detach(), f } function Fa(a) { var b = y, c = Da[a]; return c || (c = Ea(a, b), "none" !== c && c || (Ca = (Ca || m("<iframe frameborder='0' width='0' height='0'/>")).appendTo(b.documentElement), b = (Ca[0].contentWindow || Ca[0].contentDocument).document, b.write(), b.close(), c = Ea(a, b), Ca.detach()), Da[a] = c), c } !function () { var a; k.shrinkWrapBlocks = function () { if (null != a) return a; a = !1; var b, c, d; return c = y.getElementsByTagName("body")[0], c && c.style ? (b = y.createElement("div"), d = y.createElement("div"), d.style.cssText = "position:absolute;border:0;width:0;height:0;top:0;left:-9999px", c.appendChild(d).appendChild(b), typeof b.style.zoom !== K && (b.style.cssText = "-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:1px;width:1px;zoom:1", b.appendChild(y.createElement("div")).style.width = "5px", a = 3 !== b.offsetWidth), c.removeChild(d), a) : void 0 } }(); var Ga = /^margin/, Ha = new RegExp("^(" + S + ")(?!px)[a-z%]+$", "i"), Ia, Ja, Ka = /^(top|right|bottom|left)$/; a.getComputedStyle ? (Ia = function (b) { return b.ownerDocument.defaultView.opener ? b.ownerDocument.defaultView.getComputedStyle(b, null) : a.getComputedStyle(b, null) }, Ja = function (a, b, c) { var d, e, f, g, h = a.style; return c = c || Ia(a), g = c ? c.getPropertyValue(b) || c[b] : void 0, c && ("" !== g || m.contains(a.ownerDocument, a) || (g = m.style(a, b)), Ha.test(g) && Ga.test(b) && (d = h.width, e = h.minWidth, f = h.maxWidth, h.minWidth = h.maxWidth = h.width = g, g = c.width, h.width = d, h.minWidth = e, h.maxWidth = f)), void 0 === g ? g : g + "" }) : y.documentElement.currentStyle && (Ia = function (a) { return a.currentStyle }, Ja = function (a, b, c) { var d, e, f, g, h = a.style; return c = c || Ia(a), g = c ? c[b] : void 0, null == g && h && h[b] && (g = h[b]), Ha.test(g) && !Ka.test(b) && (d = h.left, e = a.runtimeStyle, f = e && e.left, f && (e.left = a.currentStyle.left), h.left = "fontSize" === b ? "1em" : g, g = h.pixelLeft + "px", h.left = d, f && (e.left = f)), void 0 === g ? g : g + "" || "auto" }); function La(a, b) { return { get: function () { var c = a(); if (null != c) return c ? void delete this.get : (this.get = b).apply(this, arguments) } } } !function () { var b, c, d, e, f, g, h; if (b = y.createElement("div"), b.innerHTML = " <link/><table></table><a href='/a'>a</a><input type='checkbox'/>", d = b.getElementsByTagName("a")[0], c = d && d.style) { c.cssText = "float:left;opacity:.5", k.opacity = "0.5" === c.opacity, k.cssFloat = !!c.cssFloat, b.style.backgroundClip = "content-box", b.cloneNode(!0).style.backgroundClip = "", k.clearCloneStyle = "content-box" === b.style.backgroundClip, k.boxSizing = "" === c.boxSizing || "" === c.MozBoxSizing || "" === c.WebkitBoxSizing, m.extend(k, { reliableHiddenOffsets: function () { return null == g && i(), g }, boxSizingReliable: function () { return null == f && i(), f }, pixelPosition: function () { return null == e && i(), e }, reliableMarginRight: function () { return null == h && i(), h } }); function i() { var b, c, d, i; c = y.getElementsByTagName("body")[0], c && c.style && (b = y.createElement("div"), d = y.createElement("div"), d.style.cssText = "position:absolute;border:0;width:0;height:0;top:0;left:-9999px", c.appendChild(d).appendChild(b), b.style.cssText = "-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:1%;top:1%;border:1px;padding:1px;width:4px;position:absolute", e = f = !1, h = !0, a.getComputedStyle && (e = "1%" !== (a.getComputedStyle(b, null) || {}).top, f = "4px" === (a.getComputedStyle(b, null) || { width: "4px" }).width, i = b.appendChild(y.createElement("div")), i.style.cssText = b.style.cssText = "-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0", i.style.marginRight = i.style.width = "0", b.style.width = "1px", h = !parseFloat((a.getComputedStyle(i, null) || {}).marginRight), b.removeChild(i)), b.innerHTML = "<table><tr><td></td><td>t</td></tr></table>", i = b.getElementsByTagName("td"), i[0].style.cssText = "margin:0;border:0;padding:0;display:none", g = 0 === i[0].offsetHeight, g && (i[0].style.display = "", i[1].style.display = "none", g = 0 === i[0].offsetHeight), c.removeChild(d)) } } }(), m.swap = function (a, b, c, d) { var e, f, g = {}; for (f in b) g[f] = a.style[f], a.style[f] = b[f]; e = c.apply(a, d || []); for (f in b) a.style[f] = g[f]; return e }; var Ma = /alpha\([^)]*\)/i, Na = /opacity\s*=\s*([^)]*)/, Oa = /^(none|table(?!-c[ea]).+)/, Pa = new RegExp("^(" + S + ")(.*)$", "i"), Qa = new RegExp("^([+-])=(" + S + ")", "i"), Ra = { position: "absolute", visibility: "hidden", display: "block" }, Sa = { letterSpacing: "0", fontWeight: "400" }, Ta = ["Webkit", "O", "Moz", "ms"]; function Ua(a, b) { if (b in a) return b; var c = b.charAt(0).toUpperCase() + b.slice(1), d = b, e = Ta.length; while (e--) if (b = Ta[e] + c, b in a) return b; return d } function Va(a, b) { for (var c, d, e, f = [], g = 0, h = a.length; h > g; g++)d = a[g], d.style && (f[g] = m._data(d, "olddisplay"), c = d.style.display, b ? (f[g] || "none" !== c || (d.style.display = ""), "" === d.style.display && U(d) && (f[g] = m._data(d, "olddisplay", Fa(d.nodeName)))) : (e = U(d), (c && "none" !== c || !e) && m._data(d, "olddisplay", e ? c : m.css(d, "display")))); for (g = 0; h > g; g++)d = a[g], d.style && (b && "none" !== d.style.display && "" !== d.style.display || (d.style.display = b ? f[g] || "" : "none")); return a } function Wa(a, b, c) { var d = Pa.exec(b); return d ? Math.max(0, d[1] - (c || 0)) + (d[2] || "px") : b } function Xa(a, b, c, d, e) { for (var f = c === (d ? "border" : "content") ? 4 : "width" === b ? 1 : 0, g = 0; 4 > f; f += 2)"margin" === c && (g += m.css(a, c + T[f], !0, e)), d ? ("content" === c && (g -= m.css(a, "padding" + T[f], !0, e)), "margin" !== c && (g -= m.css(a, "border" + T[f] + "Width", !0, e))) : (g += m.css(a, "padding" + T[f], !0, e), "padding" !== c && (g += m.css(a, "border" + T[f] + "Width", !0, e))); return g } function Ya(a, b, c) { var d = !0, e = "width" === b ? a.offsetWidth : a.offsetHeight, f = Ia(a), g = k.boxSizing && "border-box" === m.css(a, "boxSizing", !1, f); if (0 >= e || null == e) { if (e = Ja(a, b, f), (0 > e || null == e) && (e = a.style[b]), Ha.test(e)) return e; d = g && (k.boxSizingReliable() || e === a.style[b]), e = parseFloat(e) || 0 } return e + Xa(a, b, c || (g ? "border" : "content"), d, f) + "px" } m.extend({ cssHooks: { opacity: { get: function (a, b) { if (b) { var c = Ja(a, "opacity"); return "" === c ? "1" : c } } } }, cssNumber: { columnCount: !0, fillOpacity: !0, flexGrow: !0, flexShrink: !0, fontWeight: !0, lineHeight: !0, opacity: !0, order: !0, orphans: !0, widows: !0, zIndex: !0, zoom: !0 }, cssProps: { "float": k.cssFloat ? "cssFloat" : "styleFloat" }, style: function (a, b, c, d) { if (a && 3 !== a.nodeType && 8 !== a.nodeType && a.style) { var e, f, g, h = m.camelCase(b), i = a.style; if (b = m.cssProps[h] || (m.cssProps[h] = Ua(i, h)), g = m.cssHooks[b] || m.cssHooks[h], void 0 === c) return g && "get" in g && void 0 !== (e = g.get(a, !1, d)) ? e : i[b]; if (f = typeof c, "string" === f && (e = Qa.exec(c)) && (c = (e[1] + 1) * e[2] + parseFloat(m.css(a, b)), f = "number"), null != c && c === c && ("number" !== f || m.cssNumber[h] || (c += "px"), k.clearCloneStyle || "" !== c || 0 !== b.indexOf("background") || (i[b] = "inherit"), !(g && "set" in g && void 0 === (c = g.set(a, c, d))))) try { i[b] = c } catch (j) { } } }, css: function (a, b, c, d) { var e, f, g, h = m.camelCase(b); return b = m.cssProps[h] || (m.cssProps[h] = Ua(a.style, h)), g = m.cssHooks[b] || m.cssHooks[h], g && "get" in g && (f = g.get(a, !0, c)), void 0 === f && (f = Ja(a, b, d)), "normal" === f && b in Sa && (f = Sa[b]), "" === c || c ? (e = parseFloat(f), c === !0 || m.isNumeric(e) ? e || 0 : f) : f } }), m.each(["height", "width"], function (a, b) { m.cssHooks[b] = { get: function (a, c, d) { return c ? Oa.test(m.css(a, "display")) && 0 === a.offsetWidth ? m.swap(a, Ra, function () { return Ya(a, b, d) }) : Ya(a, b, d) : void 0 }, set: function (a, c, d) { var e = d && Ia(a); return Wa(a, c, d ? Xa(a, b, d, k.boxSizing && "border-box" === m.css(a, "boxSizing", !1, e), e) : 0) } } }), k.opacity || (m.cssHooks.opacity = { get: function (a, b) { return Na.test((b && a.currentStyle ? a.currentStyle.filter : a.style.filter) || "") ? .01 * parseFloat(RegExp.$1) + "" : b ? "1" : "" }, set: function (a, b) { var c = a.style, d = a.currentStyle, e = m.isNumeric(b) ? "alpha(opacity=" + 100 * b + ")" : "", f = d && d.filter || c.filter || ""; c.zoom = 1, (b >= 1 || "" === b) && "" === m.trim(f.replace(Ma, "")) && c.removeAttribute && (c.removeAttribute("filter"), "" === b || d && !d.filter) || (c.filter = Ma.test(f) ? f.replace(Ma, e) : f + " " + e) } }), m.cssHooks.marginRight = La(k.reliableMarginRight, function (a, b) { return b ? m.swap(a, { display: "inline-block" }, Ja, [a, "marginRight"]) : void 0 }), m.each({ margin: "", padding: "", border: "Width" }, function (a, b) { m.cssHooks[a + b] = { expand: function (c) { for (var d = 0, e = {}, f = "string" == typeof c ? c.split(" ") : [c]; 4 > d; d++)e[a + T[d] + b] = f[d] || f[d - 2] || f[0]; return e } }, Ga.test(a) || (m.cssHooks[a + b].set = Wa) }), m.fn.extend({ css: function (a, b) { return V(this, function (a, b, c) { var d, e, f = {}, g = 0; if (m.isArray(b)) { for (d = Ia(a), e = b.length; e > g; g++)f[b[g]] = m.css(a, b[g], !1, d); return f } return void 0 !== c ? m.style(a, b, c) : m.css(a, b) }, a, b, arguments.length > 1) }, show: function () { return Va(this, !0) }, hide: function () { return Va(this) }, toggle: function (a) { return "boolean" == typeof a ? a ? this.show() : this.hide() : this.each(function () { U(this) ? m(this).show() : m(this).hide() }) } }); function Za(a, b, c, d, e) { return new Za.prototype.init(a, b, c, d, e) } m.Tween = Za, Za.prototype = { constructor: Za, init: function (a, b, c, d, e, f) { this.elem = a, this.prop = c, this.easing = e || "swing", this.options = b, this.start = this.now = this.cur(), this.end = d, this.unit = f || (m.cssNumber[c] ? "" : "px") }, cur: function () { var a = Za.propHooks[this.prop]; return a && a.get ? a.get(this) : Za.propHooks._default.get(this) }, run: function (a) { var b, c = Za.propHooks[this.prop]; return this.options.duration ? this.pos = b = m.easing[this.easing](a, this.options.duration * a, 0, 1, this.options.duration) : this.pos = b = a, this.now = (this.end - this.start) * b + this.start, this.options.step && this.options.step.call(this.elem, this.now, this), c && c.set ? c.set(this) : Za.propHooks._default.set(this), this } }, Za.prototype.init.prototype = Za.prototype, Za.propHooks = { _default: { get: function (a) { var b; return null == a.elem[a.prop] || a.elem.style && null != a.elem.style[a.prop] ? (b = m.css(a.elem, a.prop, ""), b && "auto" !== b ? b : 0) : a.elem[a.prop] }, set: function (a) { m.fx.step[a.prop] ? m.fx.step[a.prop](a) : a.elem.style && (null != a.elem.style[m.cssProps[a.prop]] || m.cssHooks[a.prop]) ? m.style(a.elem, a.prop, a.now + a.unit) : a.elem[a.prop] = a.now } } }, Za.propHooks.scrollTop = Za.propHooks.scrollLeft = { set: function (a) { a.elem.nodeType && a.elem.parentNode && (a.elem[a.prop] = a.now) } }, m.easing = { linear: function (a) { return a }, swing: function (a) { return .5 - Math.cos(a * Math.PI) / 2 } }, m.fx = Za.prototype.init, m.fx.step = {}; var $a, _a, ab = /^(?:toggle|show|hide)$/, bb = new RegExp("^(?:([+-])=|)(" + S + ")([a-z%]*)$", "i"), cb = /queueHooks$/, db = [ib], eb = { "*": [function (a, b) { var c = this.createTween(a, b), d = c.cur(), e = bb.exec(b), f = e && e[3] || (m.cssNumber[a] ? "" : "px"), g = (m.cssNumber[a] || "px" !== f && +d) && bb.exec(m.css(c.elem, a)), h = 1, i = 20; if (g && g[3] !== f) { f = f || g[3], e = e || [], g = +d || 1; do h = h || ".5", g /= h, m.style(c.elem, a, g + f); while (h !== (h = c.cur() / d) && 1 !== h && --i) } return e && (g = c.start = +g || +d || 0, c.unit = f, c.end = e[1] ? g + (e[1] + 1) * e[2] : +e[2]), c }] }; function fb() { return setTimeout(function () { $a = void 0 }), $a = m.now() } function gb(a, b) { var c, d = { height: a }, e = 0; for (b = b ? 1 : 0; 4 > e; e += 2 - b)c = T[e], d["margin" + c] = d["padding" + c] = a; return b && (d.opacity = d.width = a), d } function hb(a, b, c) { for (var d, e = (eb[b] || []).concat(eb["*"]), f = 0, g = e.length; g > f; f++)if (d = e[f].call(c, b, a)) return d } function ib(a, b, c) { var d, e, f, g, h, i, j, l, n = this, o = {}, p = a.style, q = a.nodeType && U(a), r = m._data(a, "fxshow"); c.queue || (h = m._queueHooks(a, "fx"), null == h.unqueued && (h.unqueued = 0, i = h.empty.fire, h.empty.fire = function () { h.unqueued || i() }), h.unqueued++, n.always(function () { n.always(function () { h.unqueued--, m.queue(a, "fx").length || h.empty.fire() }) })), 1 === a.nodeType && ("height" in b || "width" in b) && (c.overflow = [p.overflow, p.overflowX, p.overflowY], j = m.css(a, "display"), l = "none" === j ? m._data(a, "olddisplay") || Fa(a.nodeName) : j, "inline" === l && "none" === m.css(a, "float") && (k.inlineBlockNeedsLayout && "inline" !== Fa(a.nodeName) ? p.zoom = 1 : p.display = "inline-block")), c.overflow && (p.overflow = "hidden", k.shrinkWrapBlocks() || n.always(function () { p.overflow = c.overflow[0], p.overflowX = c.overflow[1], p.overflowY = c.overflow[2] })); for (d in b) if (e = b[d], ab.exec(e)) { if (delete b[d], f = f || "toggle" === e, e === (q ? "hide" : "show")) { if ("show" !== e || !r || void 0 === r[d]) continue; q = !0 } o[d] = r && r[d] || m.style(a, d) } else j = void 0; if (m.isEmptyObject(o)) "inline" === ("none" === j ? Fa(a.nodeName) : j) && (p.display = j); else { r ? "hidden" in r && (q = r.hidden) : r = m._data(a, "fxshow", {}), f && (r.hidden = !q), q ? m(a).show() : n.done(function () { m(a).hide() }), n.done(function () { var b; m._removeData(a, "fxshow"); for (b in o) m.style(a, b, o[b]) }); for (d in o) g = hb(q ? r[d] : 0, d, n), d in r || (r[d] = g.start, q && (g.end = g.start, g.start = "width" === d || "height" === d ? 1 : 0)) } } function jb(a, b) { var c, d, e, f, g; for (c in a) if (d = m.camelCase(c), e = b[d], f = a[c], m.isArray(f) && (e = f[1], f = a[c] = f[0]), c !== d && (a[d] = f, delete a[c]), g = m.cssHooks[d], g && "expand" in g) { f = g.expand(f), delete a[d]; for (c in f) c in a || (a[c] = f[c], b[c] = e) } else b[d] = e } function kb(a, b, c) { var d, e, f = 0, g = db.length, h = m.Deferred().always(function () { delete i.elem }), i = function () { if (e) return !1; for (var b = $a || fb(), c = Math.max(0, j.startTime + j.duration - b), d = c / j.duration || 0, f = 1 - d, g = 0, i = j.tweens.length; i > g; g++)j.tweens[g].run(f); return h.notifyWith(a, [j, f, c]), 1 > f && i ? c : (h.resolveWith(a, [j]), !1) }, j = h.promise({ elem: a, props: m.extend({}, b), opts: m.extend(!0, { specialEasing: {} }, c), originalProperties: b, originalOptions: c, startTime: $a || fb(), duration: c.duration, tweens: [], createTween: function (b, c) { var d = m.Tween(a, j.opts, b, c, j.opts.specialEasing[b] || j.opts.easing); return j.tweens.push(d), d }, stop: function (b) { var c = 0, d = b ? j.tweens.length : 0; if (e) return this; for (e = !0; d > c; c++)j.tweens[c].run(1); return b ? h.resolveWith(a, [j, b]) : h.rejectWith(a, [j, b]), this } }), k = j.props; for (jb(k, j.opts.specialEasing); g > f; f++)if (d = db[f].call(j, a, k, j.opts)) return d; return m.map(k, hb, j), m.isFunction(j.opts.start) && j.opts.start.call(a, j), m.fx.timer(m.extend(i, { elem: a, anim: j, queue: j.opts.queue })), j.progress(j.opts.progress).done(j.opts.done, j.opts.complete).fail(j.opts.fail).always(j.opts.always) } m.Animation = m.extend(kb, { tweener: function (a, b) { m.isFunction(a) ? (b = a, a = ["*"]) : a = a.split(" "); for (var c, d = 0, e = a.length; e > d; d++)c = a[d], eb[c] = eb[c] || [], eb[c].unshift(b) }, prefilter: function (a, b) { b ? db.unshift(a) : db.push(a) } }), m.speed = function (a, b, c) { var d = a && "object" == typeof a ? m.extend({}, a) : { complete: c || !c && b || m.isFunction(a) && a, duration: a, easing: c && b || b && !m.isFunction(b) && b }; return d.duration = m.fx.off ? 0 : "number" == typeof d.duration ? d.duration : d.duration in m.fx.speeds ? m.fx.speeds[d.duration] : m.fx.speeds._default, (null == d.queue || d.queue === !0) && (d.queue = "fx"), d.old = d.complete, d.complete = function () { m.isFunction(d.old) && d.old.call(this), d.queue && m.dequeue(this, d.queue) }, d }, m.fn.extend({ fadeTo: function (a, b, c, d) { return this.filter(U).css("opacity", 0).show().end().animate({ opacity: b }, a, c, d) }, animate: function (a, b, c, d) { var e = m.isEmptyObject(a), f = m.speed(b, c, d), g = function () { var b = kb(this, m.extend({}, a), f); (e || m._data(this, "finish")) && b.stop(!0) }; return g.finish = g, e || f.queue === !1 ? this.each(g) : this.queue(f.queue, g) }, stop: function (a, b, c) { var d = function (a) { var b = a.stop; delete a.stop, b(c) }; return "string" != typeof a && (c = b, b = a, a = void 0), b && a !== !1 && this.queue(a || "fx", []), this.each(function () { var b = !0, e = null != a && a + "queueHooks", f = m.timers, g = m._data(this); if (e) g[e] && g[e].stop && d(g[e]); else for (e in g) g[e] && g[e].stop && cb.test(e) && d(g[e]); for (e = f.length; e--;)f[e].elem !== this || null != a && f[e].queue !== a || (f[e].anim.stop(c), b = !1, f.splice(e, 1)); (b || !c) && m.dequeue(this, a) }) }, finish: function (a) { return a !== !1 && (a = a || "fx"), this.each(function () { var b, c = m._data(this), d = c[a + "queue"], e = c[a + "queueHooks"], f = m.timers, g = d ? d.length : 0; for (c.finish = !0, m.queue(this, a, []), e && e.stop && e.stop.call(this, !0), b = f.length; b--;)f[b].elem === this && f[b].queue === a && (f[b].anim.stop(!0), f.splice(b, 1)); for (b = 0; g > b; b++)d[b] && d[b].finish && d[b].finish.call(this); delete c.finish }) } }), m.each(["toggle", "show", "hide"], function (a, b) { var c = m.fn[b]; m.fn[b] = function (a, d, e) { return null == a || "boolean" == typeof a ? c.apply(this, arguments) : this.animate(gb(b, !0), a, d, e) } }), m.each({ slideDown: gb("show"), slideUp: gb("hide"), slideToggle: gb("toggle"), fadeIn: { opacity: "show" }, fadeOut: { opacity: "hide" }, fadeToggle: { opacity: "toggle" } }, function (a, b) { m.fn[a] = function (a, c, d) { return this.animate(b, a, c, d) } }), m.timers = [], m.fx.tick = function () { var a, b = m.timers, c = 0; for ($a = m.now(); c < b.length; c++)a = b[c], a() || b[c] !== a || b.splice(c--, 1); b.length || m.fx.stop(), $a = void 0 }, m.fx.timer = function (a) { m.timers.push(a), a() ? m.fx.start() : m.timers.pop() }, m.fx.interval = 13, m.fx.start = function () { _a || (_a = setInterval(m.fx.tick, m.fx.interval)) }, m.fx.stop = function () { clearInterval(_a), _a = null }, m.fx.speeds = { slow: 600, fast: 200, _default: 400 }, m.fn.delay = function (a, b) { return a = m.fx ? m.fx.speeds[a] || a : a, b = b || "fx", this.queue(b, function (b, c) { var d = setTimeout(b, a); c.stop = function () { clearTimeout(d) } }) }, function () { var a, b, c, d, e; b = y.createElement("div"), b.setAttribute("className", "t"), b.innerHTML = " <link/><table></table><a href='/a'>a</a><input type='checkbox'/>", d = b.getElementsByTagName("a")[0], c = y.createElement("select"), e = c.appendChild(y.createElement("option")), a = b.getElementsByTagName("input")[0], d.style.cssText = "top:1px", k.getSetAttribute = "t" !== b.className, k.style = /top/.test(d.getAttribute("style")), k.hrefNormalized = "/a" === d.getAttribute("href"), k.checkOn = !!a.value, k.optSelected = e.selected, k.enctype = !!y.createElement("form").enctype, c.disabled = !0, k.optDisabled = !e.disabled, a = y.createElement("input"), a.setAttribute("value", ""), k.input = "" === a.getAttribute("value"), a.value = "t", a.setAttribute("type", "radio"), k.radioValue = "t" === a.value }(); var lb = /\r/g; m.fn.extend({ val: function (a) { var b, c, d, e = this[0]; { if (arguments.length) return d = m.isFunction(a), this.each(function (c) { var e; 1 === this.nodeType && (e = d ? a.call(this, c, m(this).val()) : a, null == e ? e = "" : "number" == typeof e ? e += "" : m.isArray(e) && (e = m.map(e, function (a) { return null == a ? "" : a + "" })), b = m.valHooks[this.type] || m.valHooks[this.nodeName.toLowerCase()], b && "set" in b && void 0 !== b.set(this, e, "value") || (this.value = e)) }); if (e) return b = m.valHooks[e.type] || m.valHooks[e.nodeName.toLowerCase()], b && "get" in b && void 0 !== (c = b.get(e, "value")) ? c : (c = e.value, "string" == typeof c ? c.replace(lb, "") : null == c ? "" : c) } } }), m.extend({ valHooks: { option: { get: function (a) { var b = m.find.attr(a, "value"); return null != b ? b : m.trim(m.text(a)) } }, select: { get: function (a) { for (var b, c, d = a.options, e = a.selectedIndex, f = "select-one" === a.type || 0 > e, g = f ? null : [], h = f ? e + 1 : d.length, i = 0 > e ? h : f ? e : 0; h > i; i++)if (c = d[i], !(!c.selected && i !== e || (k.optDisabled ? c.disabled : null !== c.getAttribute("disabled")) || c.parentNode.disabled && m.nodeName(c.parentNode, "optgroup"))) { if (b = m(c).val(), f) return b; g.push(b) } return g }, set: function (a, b) { var c, d, e = a.options, f = m.makeArray(b), g = e.length; while (g--) if (d = e[g], m.inArray(m.valHooks.option.get(d), f) >= 0) try { d.selected = c = !0 } catch (h) { d.scrollHeight } else d.selected = !1; return c || (a.selectedIndex = -1), e } } } }), m.each(["radio", "checkbox"], function () { m.valHooks[this] = { set: function (a, b) { return m.isArray(b) ? a.checked = m.inArray(m(a).val(), b) >= 0 : void 0 } }, k.checkOn || (m.valHooks[this].get = function (a) { return null === a.getAttribute("value") ? "on" : a.value }) }); var mb, nb, ob = m.expr.attrHandle, pb = /^(?:checked|selected)$/i, qb = k.getSetAttribute, rb = k.input; m.fn.extend({ attr: function (a, b) { return V(this, m.attr, a, b, arguments.length > 1) }, removeAttr: function (a) { return this.each(function () { m.removeAttr(this, a) }) } }), m.extend({ attr: function (a, b, c) { var d, e, f = a.nodeType; if (a && 3 !== f && 8 !== f && 2 !== f) return typeof a.getAttribute === K ? m.prop(a, b, c) : (1 === f && m.isXMLDoc(a) || (b = b.toLowerCase(), d = m.attrHooks[b] || (m.expr.match.bool.test(b) ? nb : mb)), void 0 === c ? d && "get" in d && null !== (e = d.get(a, b)) ? e : (e = m.find.attr(a, b), null == e ? void 0 : e) : null !== c ? d && "set" in d && void 0 !== (e = d.set(a, c, b)) ? e : (a.setAttribute(b, c + ""), c) : void m.removeAttr(a, b)) }, removeAttr: function (a, b) { var c, d, e = 0, f = b && b.match(E); if (f && 1 === a.nodeType) while (c = f[e++]) d = m.propFix[c] || c, m.expr.match.bool.test(c) ? rb && qb || !pb.test(c) ? a[d] = !1 : a[m.camelCase("default-" + c)] = a[d] = !1 : m.attr(a, c, ""), a.removeAttribute(qb ? c : d) }, attrHooks: { type: { set: function (a, b) { if (!k.radioValue && "radio" === b && m.nodeName(a, "input")) { var c = a.value; return a.setAttribute("type", b), c && (a.value = c), b } } } } }), nb = { set: function (a, b, c) { return b === !1 ? m.removeAttr(a, c) : rb && qb || !pb.test(c) ? a.setAttribute(!qb && m.propFix[c] || c, c) : a[m.camelCase("default-" + c)] = a[c] = !0, c } }, m.each(m.expr.match.bool.source.match(/\w+/g), function (a, b) { var c = ob[b] || m.find.attr; ob[b] = rb && qb || !pb.test(b) ? function (a, b, d) { var e, f; return d || (f = ob[b], ob[b] = e, e = null != c(a, b, d) ? b.toLowerCase() : null, ob[b] = f), e } : function (a, b, c) { return c ? void 0 : a[m.camelCase("default-" + b)] ? b.toLowerCase() : null } }), rb && qb || (m.attrHooks.value = { set: function (a, b, c) { return m.nodeName(a, "input") ? void (a.defaultValue = b) : mb && mb.set(a, b, c) } }), qb || (mb = { set: function (a, b, c) { var d = a.getAttributeNode(c); return d || a.setAttributeNode(d = a.ownerDocument.createAttribute(c)), d.value = b += "", "value" === c || b === a.getAttribute(c) ? b : void 0 } }, ob.id = ob.name = ob.coords = function (a, b, c) { var d; return c ? void 0 : (d = a.getAttributeNode(b)) && "" !== d.value ? d.value : null }, m.valHooks.button = { get: function (a, b) { var c = a.getAttributeNode(b); return c && c.specified ? c.value : void 0 }, set: mb.set }, m.attrHooks.contenteditable = { set: function (a, b, c) { mb.set(a, "" === b ? !1 : b, c) } }, m.each(["width", "height"], function (a, b) { m.attrHooks[b] = { set: function (a, c) { return "" === c ? (a.setAttribute(b, "auto"), c) : void 0 } } })), k.style || (m.attrHooks.style = { get: function (a) { return a.style.cssText || void 0 }, set: function (a, b) { return a.style.cssText = b + "" } }); var sb = /^(?:input|select|textarea|button|object)$/i, tb = /^(?:a|area)$/i; m.fn.extend({ prop: function (a, b) { return V(this, m.prop, a, b, arguments.length > 1) }, removeProp: function (a) { return a = m.propFix[a] || a, this.each(function () { try { this[a] = void 0, delete this[a] } catch (b) { } }) } }), m.extend({ propFix: { "for": "htmlFor", "class": "className" }, prop: function (a, b, c) { var d, e, f, g = a.nodeType; if (a && 3 !== g && 8 !== g && 2 !== g) return f = 1 !== g || !m.isXMLDoc(a), f && (b = m.propFix[b] || b, e = m.propHooks[b]), void 0 !== c ? e && "set" in e && void 0 !== (d = e.set(a, c, b)) ? d : a[b] = c : e && "get" in e && null !== (d = e.get(a, b)) ? d : a[b] }, propHooks: { tabIndex: { get: function (a) { var b = m.find.attr(a, "tabindex"); return b ? parseInt(b, 10) : sb.test(a.nodeName) || tb.test(a.nodeName) && a.href ? 0 : -1 } } } }), k.hrefNormalized || m.each(["href", "src"], function (a, b) { m.propHooks[b] = { get: function (a) { return a.getAttribute(b, 4) } } }), k.optSelected || (m.propHooks.selected = { get: function (a) { var b = a.parentNode; return b && (b.selectedIndex, b.parentNode && b.parentNode.selectedIndex), null } }), m.each(["tabIndex", "readOnly", "maxLength", "cellSpacing", "cellPadding", "rowSpan", "colSpan", "useMap", "frameBorder", "contentEditable"], function () { m.propFix[this.toLowerCase()] = this }), k.enctype || (m.propFix.enctype = "encoding"); var ub = /[\t\r\n\f]/g; m.fn.extend({ addClass: function (a) { var b, c, d, e, f, g, h = 0, i = this.length, j = "string" == typeof a && a; if (m.isFunction(a)) return this.each(function (b) { m(this).addClass(a.call(this, b, this.className)) }); if (j) for (b = (a || "").match(E) || []; i > h; h++)if (c = this[h], d = 1 === c.nodeType && (c.className ? (" " + c.className + " ").replace(ub, " ") : " ")) { f = 0; while (e = b[f++]) d.indexOf(" " + e + " ") < 0 && (d += e + " "); g = m.trim(d), c.className !== g && (c.className = g) } return this }, removeClass: function (a) { var b, c, d, e, f, g, h = 0, i = this.length, j = 0 === arguments.length || "string" == typeof a && a; if (m.isFunction(a)) return this.each(function (b) { m(this).removeClass(a.call(this, b, this.className)) }); if (j) for (b = (a || "").match(E) || []; i > h; h++)if (c = this[h], d = 1 === c.nodeType && (c.className ? (" " + c.className + " ").replace(ub, " ") : "")) { f = 0; while (e = b[f++]) while (d.indexOf(" " + e + " ") >= 0) d = d.replace(" " + e + " ", " "); g = a ? m.trim(d) : "", c.className !== g && (c.className = g) } return this }, toggleClass: function (a, b) { var c = typeof a; return "boolean" == typeof b && "string" === c ? b ? this.addClass(a) : this.removeClass(a) : this.each(m.isFunction(a) ? function (c) { m(this).toggleClass(a.call(this, c, this.className, b), b) } : function () { if ("string" === c) { var b, d = 0, e = m(this), f = a.match(E) || []; while (b = f[d++]) e.hasClass(b) ? e.removeClass(b) : e.addClass(b) } else (c === K || "boolean" === c) && (this.className && m._data(this, "__className__", this.className), this.className = this.className || a === !1 ? "" : m._data(this, "__className__") || "") }) }, hasClass: function (a) { for (var b = " " + a + " ", c = 0, d = this.length; d > c; c++)if (1 === this[c].nodeType && (" " + this[c].className + " ").replace(ub, " ").indexOf(b) >= 0) return !0; return !1 } }), m.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 contextmenu".split(" "), function (a, b) { m.fn[b] = function (a, c) { return arguments.length > 0 ? this.on(b, null, a, c) : this.trigger(b) } }), m.fn.extend({ hover: function (a, b) { return this.mouseenter(a).mouseleave(b || a) }, bind: function (a, b, c) { return this.on(a, null, b, c) }, unbind: function (a, b) { return this.off(a, null, b) }, delegate: function (a, b, c, d) { return this.on(b, a, c, d) }, undelegate: function (a, b, c) { return 1 === arguments.length ? this.off(a, "**") : this.off(b, a || "**", c) } }); var vb = m.now(), wb = /\?/, xb = /(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g; m.parseJSON = function (b) { if (a.JSON && a.JSON.parse) return a.JSON.parse(b + ""); var c, d = null, e = m.trim(b + ""); return e && !m.trim(e.replace(xb, function (a, b, e, f) { return c && b && (d = 0), 0 === d ? a : (c = e || b, d += !f - !e, "") })) ? Function("return " + e)() : m.error("Invalid JSON: " + b) }, m.parseXML = function (b) { var c, d; if (!b || "string" != typeof b) return null; try { a.DOMParser ? (d = new DOMParser, c = d.parseFromString(b, "text/xml")) : (c = new ActiveXObject("Microsoft.XMLDOM"), c.async = "false", c.loadXML(b)) } catch (e) { c = void 0 } return c && c.documentElement && !c.getElementsByTagName("parsererror").length || m.error("Invalid XML: " + b), c }; var yb, zb, Ab = /#.*$/, Bb = /([?&])_=[^&]*/, Cb = /^(.*?):[ \t]*([^\r\n]*)\r?$/gm, Db = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/, Eb = /^(?:GET|HEAD)$/, Fb = /^\/\//, Gb = /^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/, Hb = {}, Ib = {}, Jb = "*/".concat("*"); try { zb = location.href } catch (Kb) { zb = y.createElement("a"), zb.href = "", zb = zb.href } yb = Gb.exec(zb.toLowerCase()) || []; function Lb(a) { return function (b, c) { "string" != typeof b && (c = b, b = "*"); var d, e = 0, f = b.toLowerCase().match(E) || []; if (m.isFunction(c)) while (d = f[e++]) "+" === d.charAt(0) ? (d = d.slice(1) || "*", (a[d] = a[d] || []).unshift(c)) : (a[d] = a[d] || []).push(c) } } function Mb(a, b, c, d) { var e = {}, f = a === Ib; function g(h) { var i; return e[h] = !0, m.each(a[h] || [], function (a, h) { var j = h(b, c, d); return "string" != typeof j || f || e[j] ? f ? !(i = j) : void 0 : (b.dataTypes.unshift(j), g(j), !1) }), i } return g(b.dataTypes[0]) || !e["*"] && g("*") } function Nb(a, b) { var c, d, e = m.ajaxSettings.flatOptions || {}; for (d in b) void 0 !== b[d] && ((e[d] ? a : c || (c = {}))[d] = b[d]); return c && m.extend(!0, a, c), a } function Ob(a, b, c) { var d, e, f, g, h = a.contents, i = a.dataTypes; while ("*" === i[0]) i.shift(), void 0 === e && (e = a.mimeType || b.getResponseHeader("Content-Type")); if (e) for (g in h) if (h[g] && h[g].test(e)) { i.unshift(g); break } if (i[0] in c) f = i[0]; else { for (g in c) { if (!i[0] || a.converters[g + " " + i[0]]) { f = g; break } d || (d = g) } f = f || d } return f ? (f !== i[0] && i.unshift(f), c[f]) : void 0 } function Pb(a, b, c, d) { var e, f, g, h, i, j = {}, k = a.dataTypes.slice(); if (k[1]) for (g in a.converters) j[g.toLowerCase()] = a.converters[g]; f = k.shift(); while (f) if (a.responseFields[f] && (c[a.responseFields[f]] = b), !i && d && a.dataFilter && (b = a.dataFilter(b, a.dataType)), i = f, f = k.shift()) if ("*" === f) f = i; else if ("*" !== i && i !== f) { if (g = j[i + " " + f] || j["* " + f], !g) for (e in j) if (h = e.split(" "), h[1] === f && (g = j[i + " " + h[0]] || j["* " + h[0]])) { g === !0 ? g = j[e] : j[e] !== !0 && (f = h[0], k.unshift(h[1])); break } if (g !== !0) if (g && a["throws"]) b = g(b); else try { b = g(b) } catch (l) { return { state: "parsererror", error: g ? l : "No conversion from " + i + " to " + f } } } return { state: "success", data: b } } m.extend({ active: 0, lastModified: {}, etag: {}, ajaxSettings: { url: zb, type: "GET", isLocal: Db.test(yb[1]), global: !0, processData: !0, async: !0, contentType: "application/x-www-form-urlencoded; charset=UTF-8", accepts: { "*": Jb, text: "text/plain", html: "text/html", xml: "application/xml, text/xml", json: "application/json, text/javascript" }, contents: { xml: /xml/, html: /html/, json: /json/ }, responseFields: { xml: "responseXML", text: "responseText", json: "responseJSON" }, converters: { "* text": String, "text html": !0, "text json": m.parseJSON, "text xml": m.parseXML }, flatOptions: { url: !0, context: !0 } }, ajaxSetup: function (a, b) { return b ? Nb(Nb(a, m.ajaxSettings), b) : Nb(m.ajaxSettings, a) }, ajaxPrefilter: Lb(Hb), ajaxTransport: Lb(Ib), ajax: function (a, b) { "object" == typeof a && (b = a, a = void 0), b = b || {}; var c, d, e, f, g, h, i, j, k = m.ajaxSetup({}, b), l = k.context || k, n = k.context && (l.nodeType || l.jquery) ? m(l) : m.event, o = m.Deferred(), p = m.Callbacks("once memory"), q = k.statusCode || {}, r = {}, s = {}, t = 0, u = "canceled", v = { readyState: 0, getResponseHeader: function (a) { var b; if (2 === t) { if (!j) { j = {}; while (b = Cb.exec(f)) j[b[1].toLowerCase()] = b[2] } b = j[a.toLowerCase()] } return null == b ? null : b }, getAllResponseHeaders: function () { return 2 === t ? f : null }, setRequestHeader: function (a, b) { var c = a.toLowerCase(); return t || (a = s[c] = s[c] || a, r[a] = b), this }, overrideMimeType: function (a) { return t || (k.mimeType = a), this }, statusCode: function (a) { var b; if (a) if (2 > t) for (b in a) q[b] = [q[b], a[b]]; else v.always(a[v.status]); return this }, abort: function (a) { var b = a || u; return i && i.abort(b), x(0, b), this } }; if (o.promise(v).complete = p.add, v.success = v.done, v.error = v.fail, k.url = ((a || k.url || zb) + "").replace(Ab, "").replace(Fb, yb[1] + "//"), k.type = b.method || b.type || k.method || k.type, k.dataTypes = m.trim(k.dataType || "*").toLowerCase().match(E) || [""], null == k.crossDomain && (c = Gb.exec(k.url.toLowerCase()), k.crossDomain = !(!c || c[1] === yb[1] && c[2] === yb[2] && (c[3] || ("http:" === c[1] ? "80" : "443")) === (yb[3] || ("http:" === yb[1] ? "80" : "443")))), k.data && k.processData && "string" != typeof k.data && (k.data = m.param(k.data, k.traditional)), Mb(Hb, k, b, v), 2 === t) return v; h = m.event && k.global, h && 0 === m.active++ && m.event.trigger("ajaxStart"), k.type = k.type.toUpperCase(), k.hasContent = !Eb.test(k.type), e = k.url, k.hasContent || (k.data && (e = k.url += (wb.test(e) ? "&" : "?") + k.data, delete k.data), k.cache === !1 && (k.url = Bb.test(e) ? e.replace(Bb, "$1_=" + vb++) : e + (wb.test(e) ? "&" : "?") + "_=" + vb++)), k.ifModified && (m.lastModified[e] && v.setRequestHeader("If-Modified-Since", m.lastModified[e]), m.etag[e] && v.setRequestHeader("If-None-Match", m.etag[e])), (k.data && k.hasContent && k.contentType !== !1 || b.contentType) && v.setRequestHeader("Content-Type", k.contentType), v.setRequestHeader("Accept", k.dataTypes[0] && k.accepts[k.dataTypes[0]] ? k.accepts[k.dataTypes[0]] + ("*" !== k.dataTypes[0] ? ", " + Jb + "; q=0.01" : "") : k.accepts["*"]); for (d in k.headers) v.setRequestHeader(d, k.headers[d]); if (k.beforeSend && (k.beforeSend.call(l, v, k) === !1 || 2 === t)) return v.abort(); u = "abort"; for (d in { success: 1, error: 1, complete: 1 }) v[d](k[d]); if (i = Mb(Ib, k, b, v)) { v.readyState = 1, h && n.trigger("ajaxSend", [v, k]), k.async && k.timeout > 0 && (g = setTimeout(function () { v.abort("timeout") }, k.timeout)); try { t = 1, i.send(r, x) } catch (w) { if (!(2 > t)) throw w; x(-1, w) } } else x(-1, "No Transport"); function x(a, b, c, d) { var j, r, s, u, w, x = b; 2 !== t && (t = 2, g && clearTimeout(g), i = void 0, f = d || "", v.readyState = a > 0 ? 4 : 0, j = a >= 200 && 300 > a || 304 === a, c && (u = Ob(k, v, c)), u = Pb(k, u, v, j), j ? (k.ifModified && (w = v.getResponseHeader("Last-Modified"), w && (m.lastModified[e] = w), w = v.getResponseHeader("etag"), w && (m.etag[e] = w)), 204 === a || "HEAD" === k.type ? x = "nocontent" : 304 === a ? x = "notmodified" : (x = u.state, r = u.data, s = u.error, j = !s)) : (s = x, (a || !x) && (x = "error", 0 > a && (a = 0))), v.status = a, v.statusText = (b || x) + "", j ? o.resolveWith(l, [r, x, v]) : o.rejectWith(l, [v, x, s]), v.statusCode(q), q = void 0, h && n.trigger(j ? "ajaxSuccess" : "ajaxError", [v, k, j ? r : s]), p.fireWith(l, [v, x]), h && (n.trigger("ajaxComplete", [v, k]), --m.active || m.event.trigger("ajaxStop"))) } return v }, getJSON: function (a, b, c) { return m.get(a, b, c, "json") }, getScript: function (a, b) { return m.get(a, void 0, b, "script") } }), m.each(["get", "post"], function (a, b) { m[b] = function (a, c, d, e) { return m.isFunction(c) && (e = e || d, d = c, c = void 0), m.ajax({ url: a, type: b, dataType: e, data: c, success: d }) } }), m._evalUrl = function (a) { return m.ajax({ url: a, type: "GET", dataType: "script", async: !1, global: !1, "throws": !0 }) }, m.fn.extend({ wrapAll: function (a) { if (m.isFunction(a)) return this.each(function (b) { m(this).wrapAll(a.call(this, b)) }); if (this[0]) { var b = m(a, this[0].ownerDocument).eq(0).clone(!0); this[0].parentNode && b.insertBefore(this[0]), b.map(function () { var a = this; while (a.firstChild && 1 === a.firstChild.nodeType) a = a.firstChild; return a }).append(this) } return this }, wrapInner: function (a) { return this.each(m.isFunction(a) ? function (b) { m(this).wrapInner(a.call(this, b)) } : function () { var b = m(this), c = b.contents(); c.length ? c.wrapAll(a) : b.append(a) }) }, wrap: function (a) { var b = m.isFunction(a); return this.each(function (c) { m(this).wrapAll(b ? a.call(this, c) : a) }) }, unwrap: function () { return this.parent().each(function () { m.nodeName(this, "body") || m(this).replaceWith(this.childNodes) }).end() } }), m.expr.filters.hidden = function (a) { return a.offsetWidth <= 0 && a.offsetHeight <= 0 || !k.reliableHiddenOffsets() && "none" === (a.style && a.style.display || m.css(a, "display")) }, m.expr.filters.visible = function (a) { return !m.expr.filters.hidden(a) }; var Qb = /%20/g, Rb = /\[\]$/, Sb = /\r?\n/g, Tb = /^(?:submit|button|image|reset|file)$/i, Ub = /^(?:input|select|textarea|keygen)/i; function Vb(a, b, c, d) { var e; if (m.isArray(b)) m.each(b, function (b, e) { c || Rb.test(a) ? d(a, e) : Vb(a + "[" + ("object" == typeof e ? b : "") + "]", e, c, d) }); else if (c || "object" !== m.type(b)) d(a, b); else for (e in b) Vb(a + "[" + e + "]", b[e], c, d) } m.param = function (a, b) { var c, d = [], e = function (a, b) { b = m.isFunction(b) ? b() : null == b ? "" : b, d[d.length] = encodeURIComponent(a) + "=" + encodeURIComponent(b) }; if (void 0 === b && (b = m.ajaxSettings && m.ajaxSettings.traditional), m.isArray(a) || a.jquery && !m.isPlainObject(a)) m.each(a, function () { e(this.name, this.value) }); else for (c in a) Vb(c, a[c], b, e); return d.join("&").replace(Qb, "+") }, m.fn.extend({ serialize: function () { return m.param(this.serializeArray()) }, serializeArray: function () { return this.map(function () { var a = m.prop(this, "elements"); return a ? m.makeArray(a) : this }).filter(function () { var a = this.type; return this.name && !m(this).is(":disabled") && Ub.test(this.nodeName) && !Tb.test(a) && (this.checked || !W.test(a)) }).map(function (a, b) { var c = m(this).val(); return null == c ? null : m.isArray(c) ? m.map(c, function (a) { return { name: b.name, value: a.replace(Sb, "\r\n") } }) : { name: b.name, value: c.replace(Sb, "\r\n") } }).get() } }), m.ajaxSettings.xhr = void 0 !== a.ActiveXObject ? function () { return !this.isLocal && /^(get|post|head|put|delete|options)$/i.test(this.type) && Zb() || $b() } : Zb; var Wb = 0, Xb = {}, Yb = m.ajaxSettings.xhr(); a.attachEvent && a.attachEvent("onunload", function () { for (var a in Xb) Xb[a](void 0, !0) }), k.cors = !!Yb && "withCredentials" in Yb, Yb = k.ajax = !!Yb, Yb && m.ajaxTransport(function (a) { if (!a.crossDomain || k.cors) { var b; return { send: function (c, d) { var e, f = a.xhr(), g = ++Wb; if (f.open(a.type, a.url, a.async, a.username, a.password), a.xhrFields) for (e in a.xhrFields) f[e] = a.xhrFields[e]; a.mimeType && f.overrideMimeType && f.overrideMimeType(a.mimeType), a.crossDomain || c["X-Requested-With"] || (c["X-Requested-With"] = "XMLHttpRequest"); for (e in c) void 0 !== c[e] && f.setRequestHeader(e, c[e] + ""); f.send(a.hasContent && a.data || null), b = function (c, e) { var h, i, j; if (b && (e || 4 === f.readyState)) if (delete Xb[g], b = void 0, f.onreadystatechange = m.noop, e) 4 !== f.readyState && f.abort(); else { j = {}, h = f.status, "string" == typeof f.responseText && (j.text = f.responseText); try { i = f.statusText } catch (k) { i = "" } h || !a.isLocal || a.crossDomain ? 1223 === h && (h = 204) : h = j.text ? 200 : 404 } j && d(h, i, j, f.getAllResponseHeaders()) }, a.async ? 4 === f.readyState ? setTimeout(b) : f.onreadystatechange = Xb[g] = b : b() }, abort: function () { b && b(void 0, !0) } } } }); function Zb() { try { return new a.XMLHttpRequest } catch (b) { } } function $b() { try { return new a.ActiveXObject("Microsoft.XMLHTTP") } catch (b) { } } m.ajaxSetup({ accepts: { script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript" }, contents: { script: /(?:java|ecma)script/ }, converters: { "text script": function (a) { return m.globalEval(a), a } } }), m.ajaxPrefilter("script", function (a) { void 0 === a.cache && (a.cache = !1), a.crossDomain && (a.type = "GET", a.global = !1) }), m.ajaxTransport("script", function (a) { if (a.crossDomain) { var b, c = y.head || m("head")[0] || y.documentElement; return { send: function (d, e) { b = y.createElement("script"), b.async = !0, a.scriptCharset && (b.charset = a.scriptCharset), b.src = a.url, b.onload = b.onreadystatechange = function (a, c) { (c || !b.readyState || /loaded|complete/.test(b.readyState)) && (b.onload = b.onreadystatechange = null, b.parentNode && b.parentNode.removeChild(b), b = null, c || e(200, "success")) }, c.insertBefore(b, c.firstChild) }, abort: function () { b && b.onload(void 0, !0) } } } }); var _b = [], ac = /(=)\?(?=&|$)|\?\?/; m.ajaxSetup({ jsonp: "callback", jsonpCallback: function () { var a = _b.pop() || m.expando + "_" + vb++; return this[a] = !0, a } }), m.ajaxPrefilter("json jsonp", function (b, c, d) { var e, f, g, h = b.jsonp !== !1 && (ac.test(b.url) ? "url" : "string" == typeof b.data && !(b.contentType || "").indexOf("application/x-www-form-urlencoded") && ac.test(b.data) && "data"); return h || "jsonp" === b.dataTypes[0] ? (e = b.jsonpCallback = m.isFunction(b.jsonpCallback) ? b.jsonpCallback() : b.jsonpCallback, h ? b[h] = b[h].replace(ac, "$1" + e) : b.jsonp !== !1 && (b.url += (wb.test(b.url) ? "&" : "?") + b.jsonp + "=" + e), b.converters["script json"] = function () { return g || m.error(e + " was not called"), g[0] }, b.dataTypes[0] = "json", f = a[e], a[e] = function () { g = arguments }, d.always(function () { a[e] = f, b[e] && (b.jsonpCallback = c.jsonpCallback, _b.push(e)), g && m.isFunction(f) && f(g[0]), g = f = void 0 }), "script") : void 0 }), m.parseHTML = function (a, b, c) { if (!a || "string" != typeof a) return null; "boolean" == typeof b && (c = b, b = !1), b = b || y; var d = u.exec(a), e = !c && []; return d ? [b.createElement(d[1])] : (d = m.buildFragment([a], b, e), e && e.length && m(e).remove(), m.merge([], d.childNodes)) }; var bc = m.fn.load; m.fn.load = function (a, b, c) { if ("string" != typeof a && bc) return bc.apply(this, arguments); var d, e, f, g = this, h = a.indexOf(" "); return h >= 0 && (d = m.trim(a.slice(h, a.length)), a = a.slice(0, h)), m.isFunction(b) ? (c = b, b = void 0) : b && "object" == typeof b && (f = "POST"), g.length > 0 && m.ajax({ url: a, type: f, dataType: "html", data: b }).done(function (a) { e = arguments, g.html(d ? m("<div>").append(m.parseHTML(a)).find(d) : a) }).complete(c && function (a, b) { g.each(c, e || [a.responseText, b, a]) }), this }, m.each(["ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend"], function (a, b) { m.fn[b] = function (a) { return this.on(b, a) } }), m.expr.filters.animated = function (a) { return m.grep(m.timers, function (b) { return a === b.elem }).length }; var cc = a.document.documentElement; function dc(a) { return m.isWindow(a) ? a : 9 === a.nodeType ? a.defaultView || a.parentWindow : !1 } m.offset = { setOffset: function (a, b, c) { var d, e, f, g, h, i, j, k = m.css(a, "position"), l = m(a), n = {}; "static" === k && (a.style.position = "relative"), h = l.offset(), f = m.css(a, "top"), i = m.css(a, "left"), j = ("absolute" === k || "fixed" === k) && m.inArray("auto", [f, i]) > -1, j ? (d = l.position(), g = d.top, e = d.left) : (g = parseFloat(f) || 0, e = parseFloat(i) || 0), m.isFunction(b) && (b = b.call(a, c, h)), null != b.top && (n.top = b.top - h.top + g), null != b.left && (n.left = b.left - h.left + e), "using" in b ? b.using.call(a, n) : l.css(n) } }, m.fn.extend({ offset: function (a) { if (arguments.length) return void 0 === a ? this : this.each(function (b) { m.offset.setOffset(this, a, b) }); var b, c, d = { top: 0, left: 0 }, e = this[0], f = e && e.ownerDocument; if (f) return b = f.documentElement, m.contains(b, e) ? (typeof e.getBoundingClientRect !== K && (d = e.getBoundingClientRect()), c = dc(f), { top: d.top + (c.pageYOffset || b.scrollTop) - (b.clientTop || 0), left: d.left + (c.pageXOffset || b.scrollLeft) - (b.clientLeft || 0) }) : d }, position: function () { if (this[0]) { var a, b, c = { top: 0, left: 0 }, d = this[0]; return "fixed" === m.css(d, "position") ? b = d.getBoundingClientRect() : (a = this.offsetParent(), b = this.offset(), m.nodeName(a[0], "html") || (c = a.offset()), c.top += m.css(a[0], "borderTopWidth", !0), c.left += m.css(a[0], "borderLeftWidth", !0)), { top: b.top - c.top - m.css(d, "marginTop", !0), left: b.left - c.left - m.css(d, "marginLeft", !0) } } }, offsetParent: function () { return this.map(function () { var a = this.offsetParent || cc; while (a && !m.nodeName(a, "html") && "static" === m.css(a, "position")) a = a.offsetParent; return a || cc }) } }), m.each({ scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function (a, b) { var c = /Y/.test(b); m.fn[a] = function (d) { return V(this, function (a, d, e) { var f = dc(a); return void 0 === e ? f ? b in f ? f[b] : f.document.documentElement[d] : a[d] : void (f ? f.scrollTo(c ? m(f).scrollLeft() : e, c ? e : m(f).scrollTop()) : a[d] = e) }, a, d, arguments.length, null) } }), m.each(["top", "left"], function (a, b) { m.cssHooks[b] = La(k.pixelPosition, function (a, c) { return c ? (c = Ja(a, b), Ha.test(c) ? m(a).position()[b] + "px" : c) : void 0 }) }), m.each({ Height: "height", Width: "width" }, function (a, b) { m.each({ padding: "inner" + a, content: b, "": "outer" + a }, function (c, d) { m.fn[d] = function (d, e) { var f = arguments.length && (c || "boolean" != typeof d), g = c || (d === !0 || e === !0 ? "margin" : "border"); return V(this, function (b, c, d) { var e; return m.isWindow(b) ? b.document.documentElement["client" + a] : 9 === b.nodeType ? (e = b.documentElement, Math.max(b.body["scroll" + a], e["scroll" + a], b.body["offset" + a], e["offset" + a], e["client" + a])) : void 0 === d ? m.css(b, c, g) : m.style(b, c, d, g) }, b, f ? d : void 0, f, null) } }) }), m.fn.size = function () { return this.length }, m.fn.andSelf = m.fn.addBack, "function" == typeof define && define.amd && define("jquery", [], function () { return m }); var ec = a.jQuery, fc = a.$; return m.noConflict = function (b) { return a.$ === m && (a.$ = fc), b && a.jQuery === m && (a.jQuery = ec), m }, typeof b === K && (a.jQuery = a.$ = m), m }); //# sourceMappingURL=jquery.min.map </script> <script defer> /*! Selectric ϟ v1.9.3 (2015-07-08) - git.io/tjl9sQ - Copyright (c) 2015 Leonardo Santos - Dual licensed: MIT/GPL */ !function (e) { "use strict"; var t = "selectric", s = "Input Items Open Disabled TempShow HideSelect Wrapper Hover Responsive Above Scroll Group GroupLabel", o = ".sl", i = { onChange: function (t) { e(t).change() }, maxHeight: 345, keySearchTimeout: 500, arrowButtonMarkup: '<b class="button">&#x25be;</b>', disableOnMobile: !0, openOnHover: !1, hoverIntentTimeout: 500, expandToItemText: !1, responsive: !1, preventWindowScroll: !0, inheritOriginalWidth: !1, allowWrap: !0, customClass: { prefix: t, camelCase: !1, overwrite: !0 }, optionsItemBuilder: "{text}", labelBuilder: "{text}" }, n = { add: function (e, t, s) { this[e] || (this[e] = {}), this[e][t] = s }, remove: function (e, t) { delete this[e][t] } }, l = { replaceDiacritics: function (e) { for (var t = "40-46 50-53 54-57 62-70 71-74 61 47 77".replace(/\d+/g, "\\3$&").split(" "), s = t.length; s--;)e = e.toLowerCase().replace(RegExp("[" + t[s] + "]", "g"), "aeiouncy".charAt(s)); return e }, format: function (e) { var t = arguments; return ("" + e).replace(/{(\d+|(\w+))}/g, function (e, s, o) { return o && t[1] ? t[1][o] : t[s] }) }, nextEnabledItem: function (e, t) { for (; e[t = (t + 1) % e.length].disabled;); return t }, previousEnabledItem: function (e, t) { for (; e[t = (t > 0 ? t : e.length) - 1].disabled;); return t }, toDash: function (e) { return e.replace(/([a-z])([A-Z])/g, "$1-$2").toLowerCase() }, triggerCallback: function (s, o) { var i = o.element, a = o.options["on" + s]; e.isFunction(a) && a.call(i, i, o), n[s] && e.each(n[s], function () { this.call(i, i, o) }), e(i).trigger(t + "-" + l.toDash(s), o) } }, a = e(document), r = e(window), c = function (n, c) { function d(t) { if (j.options = e.extend(!0, {}, i, j.options, t), j.classes = {}, j.element = n, l.triggerCallback("BeforeInit", j), j.options.disableOnMobile && Y) return void (j.disableOnMobile = !0); C(!0); var o = j.options.customClass, a = s.split(" "), r = F.width(); e.each(a, function (e, t) { var s = o.prefix + t; j.classes[t.toLowerCase()] = o.camelCase ? s : l.toDash(s) }), x = e("<input/>", { "class": j.classes.input, readonly: Y }), k = e("<div/>", { "class": j.classes.items, tabindex: -1 }), T = e("<div/>", { "class": j.classes.scroll }), D = e("<div/>", { "class": o.prefix, html: j.options.arrowButtonMarkup }), I = e('<p class="label"/>'), y = F.wrap("<div>").parent().append(D.prepend(I), k, x), A = { open: m, close: g, destroy: C, refresh: u, init: d }, F.on(A).wrap('<div class="' + j.classes.hideselect + '">'), e.extend(j, A), $ = j.options.labelBuilder, j.options.inheritOriginalWidth && r > 0 && y.width(r), p() } function p() { j.items = []; var t = F.children(), s = "<ul>", i = F.find("option"), n = i.index(i.filter(":selected")), a = 0; B = S = ~n ? n : 0, (E = t.length) && (t.each(function () { function t() { var t = e(this), o = t.html(), i = t.prop("disabled"), n = j.options.optionsItemBuilder; j.items[a] = { element: t, value: t.val(), text: o, slug: l.replaceDiacritics(o), disabled: i }, s += l.format('<li data-index="{1}" class="{2}">{3}</li>', a, e.trim([a == B ? "selected" : "", a == E - 1 ? "last" : "", i ? "disabled" : ""].join(" ")), e.isFunction(n) ? n(j.items[a], t, a) : l.format(n, j.items[a])), a++ } var o = e(this); if (o.is("optgroup")) { var i = o.prop("disabled"), n = o.children(); s += l.format('<ul class="{1}"><li class="{2}">{3}</li>', e.trim([j.classes.group, i ? "disabled" : "", o.prop("class")].join(" ")), j.classes.grouplabel, o.prop("label")), i && n.prop("disabled", !0), n.each(t), s += "</ul>" } else t.call(o) }), k.append(T.html(s + "</ul>")), I.html(e.isFunction($) ? $(j.items[B]) : l.format($, j.items[B]))), D.add(F).add(y).add(x).off(o), y.prop("class", [j.classes.wrapper, j.options.customClass.overwrite ? F.prop("class").replace(/\S+/g, j.options.customClass.prefix + "-$&") : F.prop("class"), j.options.responsive ? j.classes.responsive : ""].join(" ")), F.prop("disabled") ? (y.addClass(j.classes.disabled), x.prop("disabled", !0)) : (R = !0, y.removeClass(j.classes.disabled).on("mouseenter" + o + " mouseleave" + o, function (t) { e(this).toggleClass(j.classes.hover), j.options.openOnHover && (clearTimeout(j.closeTimer), "mouseleave" == t.type ? j.closeTimer = setTimeout(g, j.options.hoverIntentTimeout) : m()) }), D.on("click" + o, function (e) { L ? g() : m(e) }), x.prop({ tabindex: P, disabled: !1 }).on("keypress" + o, h).on("keydown" + o, function (e) { h(e), clearTimeout(j.resetStr), j.resetStr = setTimeout(function () { x.val("") }, j.options.keySearchTimeout); var t = e.keyCode || e.which; if (t > 36 && 41 > t) { if (!j.options.allowWrap && (39 > t && 0 == S || t > 38 && S + 1 == j.items.length)) return; b(l[(39 > t ? "previous" : "next") + "EnabledItem"](j.items, S)) } }).on("focusin" + o, function (e) { x.one("blur", function () { x.blur() }), L || m(e) }).on("oninput" in x[0] ? "input" : "keyup", function () { x.val().length && e.each(j.items, function (e, t) { return RegExp("^" + x.val(), "i").test(t.slug) && !t.disabled ? (b(e), !1) : void 0 }) }), F.prop("tabindex", !1), O = e("li", k.removeAttr("style")).on({ mousedown: function (e) { e.preventDefault(), e.stopPropagation() }, click: function () { return b(e(this).data("index"), !0), !1 } }).filter("[data-index]")), l.triggerCallback("Init", j) } function u() { l.triggerCallback("Refresh", j), p() } function h(e) { var t = e.keyCode || e.which; 13 == t && e.preventDefault(), /^(9|13|27)$/.test(t) && (e.stopPropagation(), b(S, !0)) } function f() { var e = k.closest(":visible").children(":hidden").addClass(j.classes.tempshow), t = j.options.maxHeight, s = k.outerWidth(), o = D.outerWidth() - (s - k.width()); !j.options.expandToItemText || o > s ? M = o : (k.css("overflow", "scroll"), y.width(9e4), M = k.width(), k.css("overflow", ""), y.width("")), k.width(M).height() > t && k.height(t), e.removeClass(j.classes.tempshow) } function m(s) { l.triggerCallback("BeforeOpen", j), s && (s.preventDefault(), s.stopPropagation()), R && (f(), e("." + j.classes.hideselect, "." + j.classes.open).children()[t]("close"), L = !0, H = k.outerHeight(), W = k.height(), y.addClass(j.classes.open), x.val("").is(":focus") || x.focus(), a.on("click" + o, g).on("scroll" + o, v), v(), j.options.preventWindowScroll && a.on("mousewheel" + o + " DOMMouseScroll" + o, "." + j.classes.scroll, function (t) { var s = t.originalEvent, o = e(this).scrollTop(), i = 0; "detail" in s && (i = -1 * s.detail), "wheelDelta" in s && (i = s.wheelDelta), "wheelDeltaY" in s && (i = s.wheelDeltaY), "deltaY" in s && (i = -1 * s.deltaY), (o == this.scrollHeight - W && 0 > i || 0 == o && i > 0) && t.preventDefault() }), w(S), l.triggerCallback("Open", j)) } function v() { y.toggleClass(j.classes.above, y.offset().top + y.outerHeight() + H > r.scrollTop() + r.height()) } function g() { if (l.triggerCallback("BeforeClose", j), B != S) { l.triggerCallback("BeforeChange", j); var t = j.items[S].text; F.prop("selectedIndex", B = S).data("value", t), I.html(e.isFunction($) ? $(j.items[S]) : l.format($, j.items[S])), l.triggerCallback("Change", j) } a.off(o), y.removeClass(j.classes.open), L = !1, l.triggerCallback("Close", j) } function b(e, t) { void 0 != e && (j.items[e].disabled || (O.removeClass("selected").eq(S = e).addClass("selected"), w(e), t && g())) } function w(e) { var t = O.eq(e).outerHeight(), s = O[e].offsetTop, o = T.scrollTop(), i = s + 2 * t; T.scrollTop(i > o + H ? i - H : o > s - t ? s - t : o) } function C(e) { R && (k.add(D).add(x).remove(), !e && F.removeData(t).removeData("value"), F.prop("tabindex", P).off(o).off(A).unwrap().unwrap(), R = !1) } var x, k, T, D, I, y, O, S, B, H, W, M, E, A, $, j = this, F = e(n), L = !1, R = !1, Y = /android|ip(hone|od|ad)/i.test(navigator.userAgent), P = F.prop("tabindex"); d(c) }; e.fn[t] = function (s) { return this.each(function () { var o = e.data(this, t); o && !o.disableOnMobile ? "" + s === s && o[s] ? o[s]() : o.init(s) : e.data(this, t, new c(this, s)) }) }, e.fn[t].hooks = n }(jQuery); </script> <script defer> (function (a) { a.extend(a.fn, { validate: function (b) { if (!this.length) { b && b.debug && window.console && console.warn("nothing selected, can't validate, returning nothing"); return } var c = a.data(this[0], "validator"); return c ? c : (this.attr("novalidate", "novalidate"), c = new a.validator(b, this[0]), a.data(this[0], "validator", c), c.settings.onsubmit && (this.validateDelegate(":submit", "click", function (b) { c.settings.submitHandler && (c.submitButton = b.target), a(b.target).hasClass("cancel") && (c.cancelSubmit = !0) }), this.submit(function (b) { function d() { var d; return c.settings.submitHandler ? (c.submitButton && (d = a("<input type='hidden'/>").attr("name", c.submitButton.name).val(c.submitButton.value).appendTo(c.currentForm)), c.settings.submitHandler.call(c, c.currentForm, b), c.submitButton && d.remove(), !1) : !0 } return c.settings.debug && b.preventDefault(), c.cancelSubmit ? (c.cancelSubmit = !1, d()) : c.form() ? c.pendingRequest ? (c.formSubmitted = !0, !1) : d() : (c.focusInvalid(), !1) })), c) }, valid: function () { if (a(this[0]).is("form")) return this.validate().form(); var b = !0, c = a(this[0].form).validate(); return this.each(function () { b &= c.element(this) }), b }, removeAttrs: function (b) { var c = {}, d = this; return a.each(b.split(/\s/), function (a, b) { c[b] = d.attr(b), d.removeAttr(b) }), c }, rules: function (b, c) { var d = this[0]; if (b) { var e = a.data(d.form, "validator").settings, f = e.rules, g = a.validator.staticRules(d); switch (b) { case "add": a.extend(g, a.validator.normalizeRule(c)), f[d.name] = g, c.messages && (e.messages[d.name] = a.extend(e.messages[d.name], c.messages)); break; case "remove": if (!c) return delete f[d.name], g; var h = {}; return a.each(c.split(/\s/), function (a, b) { h[b] = g[b], delete g[b] }), h } } var i = a.validator.normalizeRules(a.extend({}, a.validator.metadataRules(d), a.validator.classRules(d), a.validator.attributeRules(d), a.validator.staticRules(d)), d); if (i.required) { var j = i.required; delete i.required, i = a.extend({ required: j }, i) } return i } }), a.extend(a.expr[":"], { blank: function (b) { return !a.trim("" + b.value) }, filled: function (b) { return !!a.trim("" + b.value) }, unchecked: function (a) { return !a.checked } }), a.validator = function (b, c) { this.settings = a.extend(!0, {}, a.validator.defaults, b), this.currentForm = c, this.init() }, a.validator.format = function (b, c) { return arguments.length === 1 ? function () { var c = a.makeArray(arguments); return c.unshift(b), a.validator.format.apply(this, c) } : (arguments.length > 2 && c.constructor !== Array && (c = a.makeArray(arguments).slice(1)), c.constructor !== Array && (c = [c]), a.each(c, function (a, c) { b = b.replace(new RegExp("\\{" + a + "\\}", "g"), c) }), b) }, a.extend(a.validator, { defaults: { messages: {}, groups: {}, rules: {}, errorClass: "error", validClass: "valid", errorElement: "label", focusInvalid: !0, errorContainer: a([]), errorLabelContainer: a([]), onsubmit: !0, ignore: ":hidden", ignoreTitle: !1, onfocusin: function (a, b) { this.lastActive = a, this.settings.focusCleanup && !this.blockFocusCleanup && (this.settings.unhighlight && this.settings.unhighlight.call(this, a, this.settings.errorClass, this.settings.validClass), this.addWrapper(this.errorsFor(a)).hide()) }, onfocusout: function (a, b) { !this.checkable(a) && (a.name in this.submitted || !this.optional(a)) && this.element(a) }, onkeyup: function (a, b) { if (b.which === 9 && this.elementValue(a) === "") return; (a.name in this.submitted || a === this.lastActive) && this.element(a) }, onclick: function (a, b) { a.name in this.submitted ? this.element(a) : a.parentNode.name in this.submitted && this.element(a.parentNode) }, highlight: function (b, c, d) { b.type === "radio" ? this.findByName(b.name).addClass(c).removeClass(d) : a(b).addClass(c).removeClass(d) }, unhighlight: function (b, c, d) { b.type === "radio" ? this.findByName(b.name).removeClass(c).addClass(d) : a(b).removeClass(c).addClass(d) } }, setDefaults: function (b) { a.extend(a.validator.defaults, b) }, messages: { required: "This field is required.", remote: "Please fix this field.", email: "Please 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.", 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: !1, prototype: { init: function () { function d(b) { var c = a.data(this[0].form, "validator"), d = "on" + b.type.replace(/^validate/, ""); c.settings[d] && c.settings[d].call(c, this[0], b) } 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 b = this.groups = {}; a.each(this.settings.groups, function (c, d) { a.each(d.split(/\s/), function (a, d) { b[d] = c }) }); var c = this.settings.rules; a.each(c, function (b, d) { c[b] = a.validator.normalizeRule(d) }), a(this.currentForm).validateDelegate(":text, [type='password'], [type='file'], select, textarea, [type='number'], [type='search'] ,[type='tel'], [type='url'], [type='email'], [type='datetime'], [type='date'], [type='month'], [type='week'], [type='time'], [type='datetime-local'], [type='range'], [type='color'] ", "focusin focusout keyup", d).validateDelegate("[type='radio'], [type='checkbox'], select, option", "click", d), this.settings.invalidHandler && a(this.currentForm).bind("invalid-form.validate", this.settings.invalidHandler) }, form: function () { return 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(), this.valid() }, checkForm: function () { this.prepareForm(); for (var a = 0, b = this.currentElements = this.elements(); b[a]; a++)this.check(b[a]); return this.valid() }, element: function (b) { b = this.validationTargetFor(this.clean(b)), this.lastElement = b, this.prepareElement(b), this.currentElements = a(b); var c = this.check(b) !== !1; return c ? delete this.invalid[b.name] : this.invalid[b.name] = !0, this.numberOfInvalids() || (this.toHide = this.toHide.add(this.containers)), this.showErrors(), c }, showErrors: function (b) { if (b) { a.extend(this.errorMap, b), this.errorList = []; for (var c in b) this.errorList.push({ message: b[c], element: this.findByName(c)[0] }); this.successList = a.grep(this.successList, function (a) { return !(a.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.lastElement = null, this.prepareForm(), this.hideErrors(), this.elements().removeClass(this.settings.errorClass).removeData("previousValue") }, numberOfInvalids: function () { return this.objectLength(this.invalid) }, objectLength: function (a) { var b = 0; for (var c in a) b++; return b }, 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 (a) { return a.element.name === b.name }).length === 1 && b }, elements: function () { var b = this, c = {}; return a(this.currentForm).find("input, select, textarea").not(":submit, :reset, :image, [disabled]").not(this.settings.ignore).filter(function () { return !this.name && b.settings.debug && window.console && console.error("%o has no name assigned", this), this.name in c || !b.objectLength(a(this).rules()) ? !1 : (c[this.name] = !0, !0) }) }, clean: function (b) { return a(b)[0] }, errors: function () { var b = this.settings.errorClass.replace(" ", "."); return a(this.settings.errorElement + "." + b, 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 (a) { this.reset(), this.toHide = this.errorsFor(a) }, elementValue: function (b) { var c = a(b).attr("type"), d = a(b).val(); return c === "radio" || c === "checkbox" ? a('input[name="' + a(b).attr("name") + '"]:checked').val() : typeof d == "string" ? d.replace(/\r/g, "") : d }, check: function (b) { b = this.validationTargetFor(this.clean(b)); var c = a(b).rules(), d = !1, e = this.elementValue(b), f; for (var g in c) { var h = { method: g, parameters: c[g] }; try { f = a.validator.methods[g].call(this, e, b, h.parameters); if (f === "dependency-mismatch") { d = !0; continue } d = !1; if (f === "pending") { this.toHide = this.toHide.not(this.errorsFor(b)); return } if (!f) return this.formatAndAdd(b, h), !1 } catch (i) { throw this.settings.debug && window.console && console.log("exception occured when checking element " + b.id + ", check the '" + h.method + "' method", i), i } } if (d) return; return this.objectLength(c) && this.successList.push(b), !0 }, customMetaMessage: function (b, c) { if (!a.metadata) return; var d = this.settings.meta ? a(b).metadata()[this.settings.meta] : a(b).metadata(); return d && d.messages && d.messages[c] }, customDataMessage: function (b, c) { return a(b).data("msg-" + c.toLowerCase()) || b.attributes && a(b).attr("data-msg-" + c.toLowerCase()) }, customMessage: function (a, b) { var c = this.settings.messages[a]; return c && (c.constructor === String ? c : c[b]) }, findDefined: function () { for (var a = 0; a < arguments.length; a++)if (arguments[a] !== undefined) return arguments[a]; return undefined }, defaultMessage: function (b, c) { return this.findDefined(this.customMessage(b.name, c), this.customDataMessage(b, c), this.customMetaMessage(b, c), !this.settings.ignoreTitle && b.title || undefined, a.validator.messages[c], "<strong>Warning: No message defined for " + b.name + "</strong>") }, formatAndAdd: function (b, c) { var d = this.defaultMessage(b, c.method), e = /\$?\{(\d+)\}/g; typeof d == "function" ? d = d.call(this, c.parameters, b) : e.test(d) && (d = a.validator.format(d.replace(e, "{$1}"), c.parameters)), this.errorList.push({ message: d, element: b }), this.errorMap[b.name] = d, this.submitted[b.name] = d }, addWrapper: function (a) { return this.settings.wrapper && (a = a.add(a.parent(this.settings.wrapper))), a }, defaultShowErrors: function () { var a, b; for (a = 0; this.errorList[a]; a++) { var c = this.errorList[a]; this.settings.highlight && this.settings.highlight.call(this, c.element, this.settings.errorClass, this.settings.validClass), this.showLabel(c.element, c.message) } this.errorList.length && (this.toShow = this.toShow.add(this.containers)); if (this.settings.success) for (a = 0; this.successList[a]; a++)this.showLabel(this.successList[a]); if (this.settings.unhighlight) for (a = 0, b = this.validElements(); b[a]; a++)this.settings.unhighlight.call(this, b[a], 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, c) { var d = this.errorsFor(b); d.length ? (d.removeClass(this.settings.validClass).addClass(this.settings.errorClass), d.attr("generated") && d.html(c)) : (d = a("<" + this.settings.errorElement + "/>").attr({ "for": this.idOrName(b), generated: !0 }).addClass(this.settings.errorClass).html(c || ""), this.settings.wrapper && (d = d.hide().show().wrap("<" + this.settings.wrapper + "/>").parent()), this.labelContainer.append(d).length || (this.settings.errorPlacement ? this.settings.errorPlacement(d, a(b)) : d.insertAfter(b))), !c && this.settings.success && (d.text(""), typeof this.settings.success == "string" ? d.addClass(this.settings.success) : this.settings.success(d, b)), this.toShow = this.toShow.add(d) }, errorsFor: function (b) { var c = this.idOrName(b); return this.errors().filter(function () { return a(this).attr("for") === c }) }, idOrName: function (a) { return this.groups[a.name] || (this.checkable(a) ? a.name : a.id || a.name) }, validationTargetFor: function (a) { return this.checkable(a) && (a = this.findByName(a.name).not(this.settings.ignore)[0]), a }, checkable: function (a) { return /radio|checkbox/i.test(a.type) }, findByName: function (b) { return a(this.currentForm).find('[name="' + b + '"]') }, getLength: function (b, c) { switch (c.nodeName.toLowerCase()) { case "select": return a("option:selected", c).length; case "input": if (this.checkable(c)) return this.findByName(c.name).filter(":checked").length }return b.length }, depend: function (a, b) { return this.dependTypes[typeof a] ? this.dependTypes[typeof a](a, b) : !0 }, dependTypes: { "boolean": function (a, b) { return a }, string: function (b, c) { return !!a(b, c.form).length }, "function": function (a, b) { return a(b) } }, optional: function (b) { var c = this.elementValue(b); return !a.validator.methods.required.call(this, c, b) && "dependency-mismatch" }, startRequest: function (a) { this.pending[a.name] || (this.pendingRequest++, this.pending[a.name] = !0) }, stopRequest: function (b, c) { this.pendingRequest--, this.pendingRequest < 0 && (this.pendingRequest = 0), delete this.pending[b.name], c && this.pendingRequest === 0 && this.formSubmitted && this.form() ? (a(this.currentForm).submit(), this.formSubmitted = !1) : !c && this.pendingRequest === 0 && this.formSubmitted && (a(this.currentForm).triggerHandler("invalid-form", [this]), this.formSubmitted = !1) }, previousValue: function (b) { return a.data(b, "previousValue") || a.data(b, "previousValue", { old: null, valid: !0, message: this.defaultMessage(b, "remote") }) } }, classRuleSettings: { required: { required: !0 }, email: { email: !0 }, url: { url: !0 }, date: { date: !0 }, dateISO: { dateISO: !0 }, number: { number: !0 }, digits: { digits: !0 }, creditcard: { creditcard: !0 } }, addClassRules: function (b, c) { b.constructor === String ? this.classRuleSettings[b] = c : a.extend(this.classRuleSettings, b) }, classRules: function (b) { var c = {}, d = a(b).attr("class"); return d && a.each(d.split(" "), function () { this in a.validator.classRuleSettings && a.extend(c, a.validator.classRuleSettings[this]) }), c }, attributeRules: function (b) { var c = {}, d = a(b); for (var e in a.validator.methods) { var f; e === "required" ? (f = d.get(0).getAttribute(e), f === "" && (f = !0), f = !!f) : f = d.attr(e), f ? c[e] = f : d[0].getAttribute("type") === e && (c[e] = !0) } return c.maxlength && /-1|2147483647|524288/.test(c.maxlength) && delete c.maxlength, c }, metadataRules: function (b) { if (!a.metadata) return {}; var c = a.data(b.form, "validator").settings.meta; return c ? a(b).metadata()[c] : a(b).metadata() }, staticRules: function (b) { var c = {}, d = a.data(b.form, "validator"); return d.settings.rules && (c = a.validator.normalizeRule(d.settings.rules[b.name]) || {}), c }, normalizeRules: function (b, c) { return a.each(b, function (d, e) { if (e === !1) { delete b[d]; return } if (e.param || e.depends) { var f = !0; switch (typeof e.depends) { case "string": f = !!a(e.depends, c.form).length; break; case "function": f = e.depends.call(c, c) }f ? b[d] = e.param !== undefined ? e.param : !0 : delete b[d] } }), a.each(b, function (d, e) { b[d] = a.isFunction(e) ? e(c) : e }), a.each(["minlength", "maxlength", "min", "max"], function () { b[this] && (b[this] = Number(b[this])) }), a.each(["rangelength", "range"], function () { b[this] && (b[this] = [Number(b[this][0]), Number(b[this][1])]) }), a.validator.autoCreateRanges && (b.min && b.max && (b.range = [b.min, b.max], delete b.min, delete b.max), b.minlength && b.maxlength && (b.rangelength = [b.minlength, b.maxlength], delete b.minlength, delete b.maxlength)), b.messages && delete b.messages, b }, normalizeRule: function (b) { if (typeof b == "string") { var c = {}; a.each(b.split(/\s/), function () { c[this] = !0 }), b = c } return b }, addMethod: function (b, c, d) { a.validator.methods[b] = c, a.validator.messages[b] = d !== undefined ? d : a.validator.messages[b], c.length < 3 && a.validator.addClassRules(b, a.validator.normalizeRule(b)) }, methods: { required: function (b, c, d) { if (!this.depend(d, c)) return "dependency-mismatch"; if (c.nodeName.toLowerCase() === "select") { var e = a(c).val(); return e && e.length > 0 } return this.checkable(c) ? this.getLength(b, c) > 0 : a.trim(b).length > 0 }, remote: function (b, c, d) { if (this.optional(c)) return "dependency-mismatch"; var e = this.previousValue(c); this.settings.messages[c.name] || (this.settings.messages[c.name] = {}), e.originalMessage = this.settings.messages[c.name].remote, this.settings.messages[c.name].remote = e.message, d = typeof d == "string" && { url: d } || d; if (this.pending[c.name]) return "pending"; if (e.old === b) return e.valid; e.old = b; var f = this; this.startRequest(c); var g = {}; return g[c.name] = b, a.ajax(a.extend(!0, { url: d, mode: "abort", port: "validate" + c.name, dataType: "json", data: g, success: function (d) { f.settings.messages[c.name].remote = e.originalMessage; var g = d === !0 || d === "true"; if (g) { var h = f.formSubmitted; f.prepareElement(c), f.formSubmitted = h, f.successList.push(c), delete f.invalid[c.name], f.showErrors() } else { var i = {}, j = d || f.defaultMessage(c, "remote"); i[c.name] = e.message = a.isFunction(j) ? j(b) : j, f.invalid[c.name] = !0, f.showErrors(i) } e.valid = g, f.stopRequest(c, g) } }, d)), "pending" }, minlength: function (b, c, d) { var e = a.isArray(b) ? b.length : this.getLength(a.trim(b), c); return this.optional(c) || e >= d }, maxlength: function (b, c, d) { var e = a.isArray(b) ? b.length : this.getLength(a.trim(b), c); return this.optional(c) || e <= d }, rangelength: function (b, c, d) { var e = a.isArray(b) ? b.length : this.getLength(a.trim(b), c); return this.optional(c) || e >= d[0] && e <= d[1] }, min: function (a, b, c) { return this.optional(b) || a >= c }, max: function (a, b, c) { return this.optional(b) || a <= c }, range: function (a, b, c) { return this.optional(b) || a >= c[0] && a <= c[1] }, email: function (a, b) { return this.optional(b) || /^((([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) }, url: function (a, b) { return this.optional(b) || /^(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(a) }, date: function (a, b) { return this.optional(b) || !/Invalid|NaN/.test(new Date(a)) }, dateISO: function (a, b) { return this.optional(b) || /^\d{4}[\/\-]\d{1,2}[\/\-]\d{1,2}$/.test(a) }, number: function (a, b) { return this.optional(b) || /^-?(?:\d+|\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/.test(a) }, digits: function (a, b) { return this.optional(b) || /^\d+$/.test(a) }, creditcard: function (a, b) { if (this.optional(b)) return "dependency-mismatch"; if (/[^0-9 \-]+/.test(a)) return !1; var c = 0, d = 0, e = !1; a = a.replace(/\D/g, ""); for (var f = a.length - 1; f >= 0; f--) { var g = a.charAt(f); d = parseInt(g, 10), e && (d *= 2) > 9 && (d -= 9), c += d, e = !e } return c % 10 === 0 }, equalTo: function (b, c, d) { var e = a(d); return this.settings.onfocusout && e.unbind(".validate-equalTo").bind("blur.validate-equalTo", function () { a(c).valid() }), b === e.val() } } }), a.format = a.validator.format })(jQuery), function (a) { var b = {}; if (a.ajaxPrefilter) a.ajaxPrefilter(function (a, c, d) { var e = a.port; a.mode === "abort" && (b[e] && b[e].abort(), b[e] = d) }); else { var c = a.ajax; a.ajax = function (d) { var e = ("mode" in d ? d : a.ajaxSettings).mode, f = ("port" in d ? d : a.ajaxSettings).port; return e === "abort" ? (b[f] && b[f].abort(), b[f] = c.apply(this, arguments)) : c.apply(this, arguments) } } }(jQuery), function (a) { !jQuery.event.special.focusin && !jQuery.event.special.focusout && document.addEventListener && a.each({ focus: "focusin", blur: "focusout" }, function (b, c) { function d(b) { return b = a.event.fix(b), b.type = c, a.event.handle.call(this, b) } a.event.special[c] = { setup: function () { this.addEventListener(b, d, !0) }, teardown: function () { this.removeEventListener(b, d, !0) }, handler: function (b) { var d = arguments; return d[0] = a.event.fix(b), d[0].type = c, a.event.handle.apply(this, d) } } }), a.extend(a.fn, { validateDelegate: function (b, c, d) { return this.bind(c, function (c) { var e = a(c.target); if (e.is(b)) return d.apply(e, arguments) }) } }) }(jQuery) </script> <script defer> (function (a) { var d = a.validator, b, e = "unobtrusiveValidation"; function c(a, b, c) { a.rules[b] = c; if (a.message) a.messages[b] = a.message } function j(a) { return a.replace(/^\s+|\s+$/g, "").split(/\s*,\s*/g) } function f(a) { return a.replace(/([!"#$%&'()*+,./:;<=>?@\[\\\]^`{|}~])/g, "\\$1") } function h(a) { return a.substr(0, a.lastIndexOf(".") + 1) } function g(a, b) { if (a.indexOf("*.") === 0) a = a.replace("*.", b); return a } function m(c, e) { var b = a(this).find("[data-valmsg-for='" + f(e[0].name) + "']"), d = b.attr("data-valmsg-replace"), g = d ? a.parseJSON(d) !== false : null; b.removeClass("field-validation-valid").addClass("field-validation-error"); c.data("unobtrusiveContainer", b); if (g) { b.empty(); c.removeClass("input-validation-error").appendTo(b) } else c.hide() } function l(e, d) { var c = a(this).find("[data-valmsg-summary=true]"), b = c.find("ul"); if (b && b.length && d.errorList.length) { b.empty(); c.addClass("validation-summary-errors").removeClass("validation-summary-valid"); a.each(d.errorList, function () { a("<li />").html(this.message).appendTo(b) }) } } function k(d) { var b = d.data("unobtrusiveContainer"), c = b.attr("data-valmsg-replace"), e = c ? a.parseJSON(c) : null; if (b) { b.addClass("field-validation-valid").removeClass("field-validation-error"); d.removeData("unobtrusiveContainer"); e && b.empty() } } function n() { var b = a(this); b.data("validator").resetForm(); b.find(".validation-summary-errors").addClass("validation-summary-valid").removeClass("validation-summary-errors"); b.find(".field-validation-error").addClass("field-validation-valid").removeClass("field-validation-error").removeData("unobtrusiveContainer").find(">*").removeData("unobtrusiveContainer") } function i(c) { var b = a(c), d = b.data(e), f = a.proxy(n, c); if (!d) { d = { options: { errorClass: "input-validation-error", errorElement: "span", errorPlacement: a.proxy(m, c), invalidHandler: a.proxy(l, c), messages: {}, rules: {}, success: a.proxy(k, c) }, attachValidation: function () { b.unbind("reset." + e, f).bind("reset." + e, f).validate(this.options) }, validate: function () { b.validate(); return b.valid() } }; b.data(e, d) } return d } d.unobtrusive = { adapters: [], parseElement: function (b, h) { var d = a(b), f = d.parents("form")[0], c, e, g; if (!f) return; c = i(f); c.options.rules[b.name] = e = {}; c.options.messages[b.name] = g = {}; a.each(this.adapters, function () { var c = "data-val-" + this.name, i = d.attr(c), h = {}; if (i !== undefined) { c += "-"; a.each(this.params, function () { h[this] = d.attr(c + this) }); this.adapt({ element: b, form: f, message: i, params: h, rules: e, messages: g }) } }); a.extend(e, { __dummy__: true }); !h && c.attachValidation() }, parse: function (b) { var c = a(b).parents("form").andSelf().add(a(b).find("form")).filter("form"); a(b).find(":input[data-val=true]").each(function () { d.unobtrusive.parseElement(this, true) }); c.each(function () { var a = i(this); a && a.attachValidation() }) } }; b = d.unobtrusive.adapters; b.add = function (c, a, b) { if (!b) { b = a; a = [] } this.push({ name: c, params: a, adapt: b }); return this }; b.addBool = function (a, b) { return this.add(a, function (d) { c(d, b || a, true) }) }; b.addMinMax = function (e, g, f, a, d, b) { return this.add(e, [d || "min", b || "max"], function (b) { var e = b.params.min, d = b.params.max; if (e && d) c(b, a, [e, d]); else if (e) c(b, g, e); else d && c(b, f, d) }) }; b.addSingleVal = function (a, b, d) { return this.add(a, [b || "val"], function (e) { c(e, d || a, e.params[b]) }) }; d.addMethod("__dummy__", function () { return true }); d.addMethod("regex", function (b, c, d) { var a; if (this.optional(c)) return true; a = (new RegExp(d)).exec(b); return a && a.index === 0 && a[0].length === b.length }); d.addMethod("nonalphamin", function (c, d, b) { var a; if (b) { a = c.match(/\W/g); a = a && a.length >= b } return a }); b.addSingleVal("accept", "exts").addSingleVal("regex", "pattern"); b.addBool("creditcard").addBool("date").addBool("digits").addBool("email").addBool("number").addBool("url"); b.addMinMax("length", "minlength", "maxlength", "rangelength").addMinMax("range", "min", "max", "range"); b.add("equalto", ["other"], function (b) { var i = h(b.element.name), j = b.params.other, d = g(j, i), e = a(b.form).find(":input[name='" + f(d) + "']")[0]; c(b, "equalTo", e) }); b.add("required", function (a) { (a.element.tagName.toUpperCase() !== "INPUT" || a.element.type.toUpperCase() !== "CHECKBOX") && c(a, "required", true) }); b.add("remote", ["url", "type", "additionalfields"], function (b) { var d = { url: b.params.url, type: b.params.type || "GET", data: {} }, e = h(b.element.name); a.each(j(b.params.additionalfields || b.element.name), function (i, h) { var c = g(h, e); d.data[c] = function () { return a(b.form).find(":input[name='" + f(c) + "']").val() } }); c(b, "remote", d) }); b.add("password", ["min", "nonalphamin", "regex"], function (a) { a.params.min && c(a, "minlength", a.params.min); a.params.nonalphamin && c(a, "nonalphamin", a.params.nonalphamin); a.params.regex && c(a, "regex", a.params.regex) }); a(function () { d.unobtrusive.parse(document) }) })(jQuery); </script> <script defer> (function (e) { "function" == typeof define && define.amd ? define(["jquery"], e) : e(jQuery) })(function (e) { function t(t, s) { var n, a, o, r = t.nodeName.toLowerCase(); return "area" === r ? (n = t.parentNode, a = n.name, t.href && a && "map" === n.nodeName.toLowerCase() ? (o = e("img[usemap='#" + a + "']")[0], !!o && i(o)) : !1) : (/^(input|select|textarea|button|object)$/.test(r) ? !t.disabled : "a" === r ? t.href || s : s) && i(t) } function i(t) { return e.expr.filters.visible(t) && !e(t).parents().addBack().filter(function () { return "hidden" === e.css(this, "visibility") }).length } function s(e) { for (var t, i; e.length && e[0] !== document;) { if (t = e.css("position"), ("absolute" === t || "relative" === t || "fixed" === t) && (i = parseInt(e.css("zIndex"), 10), !isNaN(i) && 0 !== i)) return i; e = e.parent() } return 0 } function n() { this._curInst = null, this._keyEvent = !1, this._disabledInputs = [], this._datepickerShowing = !1, this._inDialog = !1, this._mainDivId = "ui-datepicker-div", this._inlineClass = "ui-datepicker-inline", this._appendClass = "ui-datepicker-append", this._triggerClass = "ui-datepicker-trigger", this._dialogClass = "ui-datepicker-dialog", this._disableClass = "ui-datepicker-disabled", this._unselectableClass = "ui-datepicker-unselectable", this._currentClass = "ui-datepicker-current-day", this._dayOverClass = "ui-datepicker-days-cell-over", this.regional = [], this.regional[""] = { closeText: "Done", prevText: "Prev", nextText: "Next", currentText: "Today", monthNames: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], monthNamesShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], dayNames: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], dayNamesShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], dayNamesMin: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"], weekHeader: "Wk", dateFormat: "mm/dd/yy", firstDay: 0, isRTL: !1, showMonthAfterYear: !1, yearSuffix: "" }, this._defaults = { showOn: "focus", showAnim: "fadeIn", showOptions: {}, defaultDate: null, appendText: "", buttonText: "...", buttonImage: "", buttonImageOnly: !1, hideIfNoPrevNext: !1, navigationAsDateFormat: !1, gotoCurrent: !1, changeMonth: !1, changeYear: !1, yearRange: "c-10:c+10", showOtherMonths: !1, selectOtherMonths: !1, showWeek: !1, calculateWeek: this.iso8601Week, shortYearCutoff: "+10", minDate: null, maxDate: null, duration: "fast", beforeShowDay: null, beforeShow: null, onSelect: null, onChangeMonthYear: null, onClose: null, numberOfMonths: 1, showCurrentAtPos: 0, stepMonths: 1, stepBigMonths: 12, altField: "", altFormat: "", constrainInput: !0, showButtonPanel: !1, autoSize: !1, disabled: !1 }, e.extend(this._defaults, this.regional[""]), this.regional.en = e.extend(!0, {}, this.regional[""]), this.regional["en-US"] = e.extend(!0, {}, this.regional.en), this.dpDiv = a(e("<div id='" + this._mainDivId + "' class='ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>")) } function a(t) { var i = "button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a"; return t.delegate(i, "mouseout", function () { e(this).removeClass("ui-state-hover"), -1 !== this.className.indexOf("ui-datepicker-prev") && e(this).removeClass("ui-datepicker-prev-hover"), -1 !== this.className.indexOf("ui-datepicker-next") && e(this).removeClass("ui-datepicker-next-hover") }).delegate(i, "mouseover", o) } function o() { e.datepicker._isDisabledDatepicker(v.inline ? v.dpDiv.parent()[0] : v.input[0]) || (e(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover"), e(this).addClass("ui-state-hover"), -1 !== this.className.indexOf("ui-datepicker-prev") && e(this).addClass("ui-datepicker-prev-hover"), -1 !== this.className.indexOf("ui-datepicker-next") && e(this).addClass("ui-datepicker-next-hover")) } function r(t, i) { e.extend(t, i); for (var s in i) null == i[s] && (t[s] = i[s]); return t } function h(e) { return function () { var t = this.element.val(); e.apply(this, arguments), this._refresh(), t !== this.element.val() && this._trigger("change") } } e.ui = e.ui || {}, e.extend(e.ui, { version: "1.11.4", keyCode: { BACKSPACE: 8, COMMA: 188, DELETE: 46, DOWN: 40, END: 35, ENTER: 13, ESCAPE: 27, HOME: 36, LEFT: 37, PAGE_DOWN: 34, PAGE_UP: 33, PERIOD: 190, RIGHT: 39, SPACE: 32, TAB: 9, UP: 38 } }), e.fn.extend({ scrollParent: function (t) { var i = this.css("position"), s = "absolute" === i, n = t ? /(auto|scroll|hidden)/ : /(auto|scroll)/, a = this.parents().filter(function () { var t = e(this); return s && "static" === t.css("position") ? !1 : n.test(t.css("overflow") + t.css("overflow-y") + t.css("overflow-x")) }).eq(0); return "fixed" !== i && a.length ? a : e(this[0].ownerDocument || document) }, uniqueId: function () { var e = 0; return function () { return this.each(function () { this.id || (this.id = "ui-id-" + ++e) }) } }(), removeUniqueId: function () { return this.each(function () { /^ui-id-\d+$/.test(this.id) && e(this).removeAttr("id") }) } }), e.extend(e.expr[":"], { data: e.expr.createPseudo ? e.expr.createPseudo(function (t) { return function (i) { return !!e.data(i, t) } }) : function (t, i, s) { return !!e.data(t, s[3]) }, focusable: function (i) { return t(i, !isNaN(e.attr(i, "tabindex"))) }, tabbable: function (i) { var s = e.attr(i, "tabindex"), n = isNaN(s); return (n || s >= 0) && t(i, !n) } }), e("<a>").outerWidth(1).jquery || e.each(["Width", "Height"], function (t, i) { function s(t, i, s, a) { return e.each(n, function () { i -= parseFloat(e.css(t, "padding" + this)) || 0, s && (i -= parseFloat(e.css(t, "border" + this + "Width")) || 0), a && (i -= parseFloat(e.css(t, "margin" + this)) || 0) }), i } var n = "Width" === i ? ["Left", "Right"] : ["Top", "Bottom"], a = i.toLowerCase(), o = { innerWidth: e.fn.innerWidth, innerHeight: e.fn.innerHeight, outerWidth: e.fn.outerWidth, outerHeight: e.fn.outerHeight }; e.fn["inner" + i] = function (t) { return void 0 === t ? o["inner" + i].call(this) : this.each(function () { e(this).css(a, s(this, t) + "px") }) }, e.fn["outer" + i] = function (t, n) { return "number" != typeof t ? o["outer" + i].call(this, t) : this.each(function () { e(this).css(a, s(this, t, !0, n) + "px") }) } }), e.fn.addBack || (e.fn.addBack = function (e) { return this.add(null == e ? this.prevObject : this.prevObject.filter(e)) }), e("<a>").data("a-b", "a").removeData("a-b").data("a-b") && (e.fn.removeData = function (t) { return function (i) { return arguments.length ? t.call(this, e.camelCase(i)) : t.call(this) } }(e.fn.removeData)), e.ui.ie = !!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase()), e.fn.extend({ focus: function (t) { return function (i, s) { return "number" == typeof i ? this.each(function () { var t = this; setTimeout(function () { e(t).focus(), s && s.call(t) }, i) }) : t.apply(this, arguments) } }(e.fn.focus), disableSelection: function () { var e = "onselectstart" in document.createElement("div") ? "selectstart" : "mousedown"; return function () { return this.bind(e + ".ui-disableSelection", function (e) { e.preventDefault() }) } }(), enableSelection: function () { return this.unbind(".ui-disableSelection") }, zIndex: function (t) { if (void 0 !== t) return this.css("zIndex", t); if (this.length) for (var i, s, n = e(this[0]); n.length && n[0] !== document;) { if (i = n.css("position"), ("absolute" === i || "relative" === i || "fixed" === i) && (s = parseInt(n.css("zIndex"), 10), !isNaN(s) && 0 !== s)) return s; n = n.parent() } return 0 } }), e.ui.plugin = { add: function (t, i, s) { var n, a = e.ui[t].prototype; for (n in s) a.plugins[n] = a.plugins[n] || [], a.plugins[n].push([i, s[n]]) }, call: function (e, t, i, s) { var n, a = e.plugins[t]; if (a && (s || e.element[0].parentNode && 11 !== e.element[0].parentNode.nodeType)) for (n = 0; a.length > n; n++)e.options[a[n][0]] && a[n][1].apply(e.element, i) } }; var l = 0, u = Array.prototype.slice; e.cleanData = function (t) { return function (i) { var s, n, a; for (a = 0; null != (n = i[a]); a++)try { s = e._data(n, "events"), s && s.remove && e(n).triggerHandler("remove") } catch (o) { } t(i) } }(e.cleanData), e.widget = function (t, i, s) { var n, a, o, r, h = {}, l = t.split(".")[0]; return t = t.split(".")[1], n = l + "-" + t, s || (s = i, i = e.Widget), e.expr[":"][n.toLowerCase()] = function (t) { return !!e.data(t, n) }, e[l] = e[l] || {}, a = e[l][t], o = e[l][t] = function (e, t) { return this._createWidget ? (arguments.length && this._createWidget(e, t), void 0) : new o(e, t) }, e.extend(o, a, { version: s.version, _proto: e.extend({}, s), _childConstructors: [] }), r = new i, r.options = e.widget.extend({}, r.options), e.each(s, function (t, s) { return e.isFunction(s) ? (h[t] = function () { var e = function () { return i.prototype[t].apply(this, arguments) }, n = function (e) { return i.prototype[t].apply(this, e) }; return function () { var t, i = this._super, a = this._superApply; return this._super = e, this._superApply = n, t = s.apply(this, arguments), this._super = i, this._superApply = a, t } }(), void 0) : (h[t] = s, void 0) }), o.prototype = e.widget.extend(r, { widgetEventPrefix: a ? r.widgetEventPrefix || t : t }, h, { constructor: o, namespace: l, widgetName: t, widgetFullName: n }), a ? (e.each(a._childConstructors, function (t, i) { var s = i.prototype; e.widget(s.namespace + "." + s.widgetName, o, i._proto) }), delete a._childConstructors) : i._childConstructors.push(o), e.widget.bridge(t, o), o }, e.widget.extend = function (t) { for (var i, s, n = u.call(arguments, 1), a = 0, o = n.length; o > a; a++)for (i in n[a]) s = n[a][i], n[a].hasOwnProperty(i) && void 0 !== s && (t[i] = e.isPlainObject(s) ? e.isPlainObject(t[i]) ? e.widget.extend({}, t[i], s) : e.widget.extend({}, s) : s); return t }, e.widget.bridge = function (t, i) { var s = i.prototype.widgetFullName || t; e.fn[t] = function (n) { var a = "string" == typeof n, o = u.call(arguments, 1), r = this; return a ? this.each(function () { var i, a = e.data(this, s); return "instance" === n ? (r = a, !1) : a ? e.isFunction(a[n]) && "_" !== n.charAt(0) ? (i = a[n].apply(a, o), i !== a && void 0 !== i ? (r = i && i.jquery ? r.pushStack(i.get()) : i, !1) : void 0) : e.error("no such method '" + n + "' for " + t + " widget instance") : e.error("cannot call methods on " + t + " prior to initialization; " + "attempted to call method '" + n + "'") }) : (o.length && (n = e.widget.extend.apply(null, [n].concat(o))), this.each(function () { var t = e.data(this, s); t ? (t.option(n || {}), t._init && t._init()) : e.data(this, s, new i(n, this)) })), r } }, e.Widget = function () { }, e.Widget._childConstructors = [], e.Widget.prototype = { widgetName: "widget", widgetEventPrefix: "", defaultElement: "<div>", options: { disabled: !1, create: null }, _createWidget: function (t, i) { i = e(i || this.defaultElement || this)[0], this.element = e(i), this.uuid = l++, this.eventNamespace = "." + this.widgetName + this.uuid, this.bindings = e(), this.hoverable = e(), this.focusable = e(), i !== this && (e.data(i, this.widgetFullName, this), this._on(!0, this.element, { remove: function (e) { e.target === i && this.destroy() } }), this.document = e(i.style ? i.ownerDocument : i.document || i), this.window = e(this.document[0].defaultView || this.document[0].parentWindow)), this.options = e.widget.extend({}, this.options, this._getCreateOptions(), t), this._create(), this._trigger("create", null, this._getCreateEventData()), this._init() }, _getCreateOptions: e.noop, _getCreateEventData: e.noop, _create: e.noop, _init: e.noop, destroy: function () { this._destroy(), this.element.unbind(this.eventNamespace).removeData(this.widgetFullName).removeData(e.camelCase(this.widgetFullName)), this.widget().unbind(this.eventNamespace).removeAttr("aria-disabled").removeClass(this.widgetFullName + "-disabled " + "ui-state-disabled"), this.bindings.unbind(this.eventNamespace), this.hoverable.removeClass("ui-state-hover"), this.focusable.removeClass("ui-state-focus") }, _destroy: e.noop, widget: function () { return this.element }, option: function (t, i) { var s, n, a, o = t; if (0 === arguments.length) return e.widget.extend({}, this.options); if ("string" == typeof t) if (o = {}, s = t.split("."), t = s.shift(), s.length) { for (n = o[t] = e.widget.extend({}, this.options[t]), a = 0; s.length - 1 > a; a++)n[s[a]] = n[s[a]] || {}, n = n[s[a]]; if (t = s.pop(), 1 === arguments.length) return void 0 === n[t] ? null : n[t]; n[t] = i } else { if (1 === arguments.length) return void 0 === this.options[t] ? null : this.options[t]; o[t] = i } return this._setOptions(o), this }, _setOptions: function (e) { var t; for (t in e) this._setOption(t, e[t]); return this }, _setOption: function (e, t) { return this.options[e] = t, "disabled" === e && (this.widget().toggleClass(this.widgetFullName + "-disabled", !!t), t && (this.hoverable.removeClass("ui-state-hover"), this.focusable.removeClass("ui-state-focus"))), this }, enable: function () { return this._setOptions({ disabled: !1 }) }, disable: function () { return this._setOptions({ disabled: !0 }) }, _on: function (t, i, s) { var n, a = this; "boolean" != typeof t && (s = i, i = t, t = !1), s ? (i = n = e(i), this.bindings = this.bindings.add(i)) : (s = i, i = this.element, n = this.widget()), e.each(s, function (s, o) { function r() { return t || a.options.disabled !== !0 && !e(this).hasClass("ui-state-disabled") ? ("string" == typeof o ? a[o] : o).apply(a, arguments) : void 0 } "string" != typeof o && (r.guid = o.guid = o.guid || r.guid || e.guid++); var h = s.match(/^([\w:-]*)\s*(.*)$/), l = h[1] + a.eventNamespace, u = h[2]; u ? n.delegate(u, l, r) : i.bind(l, r) }) }, _off: function (t, i) { i = (i || "").split(" ").join(this.eventNamespace + " ") + this.eventNamespace, t.unbind(i).undelegate(i), this.bindings = e(this.bindings.not(t).get()), this.focusable = e(this.focusable.not(t).get()), this.hoverable = e(this.hoverable.not(t).get()) }, _delay: function (e, t) { function i() { return ("string" == typeof e ? s[e] : e).apply(s, arguments) } var s = this; return setTimeout(i, t || 0) }, _hoverable: function (t) { this.hoverable = this.hoverable.add(t), this._on(t, { mouseenter: function (t) { e(t.currentTarget).addClass("ui-state-hover") }, mouseleave: function (t) { e(t.currentTarget).removeClass("ui-state-hover") } }) }, _focusable: function (t) { this.focusable = this.focusable.add(t), this._on(t, { focusin: function (t) { e(t.currentTarget).addClass("ui-state-focus") }, focusout: function (t) { e(t.currentTarget).removeClass("ui-state-focus") } }) }, _trigger: function (t, i, s) { var n, a, o = this.options[t]; if (s = s || {}, i = e.Event(i), i.type = (t === this.widgetEventPrefix ? t : this.widgetEventPrefix + t).toLowerCase(), i.target = this.element[0], a = i.originalEvent) for (n in a) n in i || (i[n] = a[n]); return this.element.trigger(i, s), !(e.isFunction(o) && o.apply(this.element[0], [i].concat(s)) === !1 || i.isDefaultPrevented()) } }, e.each({ show: "fadeIn", hide: "fadeOut" }, function (t, i) { e.Widget.prototype["_" + t] = function (s, n, a) { "string" == typeof n && (n = { effect: n }); var o, r = n ? n === !0 || "number" == typeof n ? i : n.effect || i : t; n = n || {}, "number" == typeof n && (n = { duration: n }), o = !e.isEmptyObject(n), n.complete = a, n.delay && s.delay(n.delay), o && e.effects && e.effects.effect[r] ? s[t](n) : r !== t && s[r] ? s[r](n.duration, n.easing, a) : s.queue(function (i) { e(this)[t](), a && a.call(s[0]), i() }) } }), e.widget; var d = !1; e(document).mouseup(function () { d = !1 }), e.widget("ui.mouse", { version: "1.11.4", options: { cancel: "input,textarea,button,select,option", distance: 1, delay: 0 }, _mouseInit: function () { var t = this; this.element.bind("mousedown." + this.widgetName, function (e) { return t._mouseDown(e) }).bind("click." + this.widgetName, function (i) { return !0 === e.data(i.target, t.widgetName + ".preventClickEvent") ? (e.removeData(i.target, t.widgetName + ".preventClickEvent"), i.stopImmediatePropagation(), !1) : void 0 }), this.started = !1 }, _mouseDestroy: function () { this.element.unbind("." + this.widgetName), this._mouseMoveDelegate && this.document.unbind("mousemove." + this.widgetName, this._mouseMoveDelegate).unbind("mouseup." + this.widgetName, this._mouseUpDelegate) }, _mouseDown: function (t) { if (!d) { this._mouseMoved = !1, this._mouseStarted && this._mouseUp(t), this._mouseDownEvent = t; var i = this, s = 1 === t.which, n = "string" == typeof this.options.cancel && t.target.nodeName ? e(t.target).closest(this.options.cancel).length : !1; return s && !n && this._mouseCapture(t) ? (this.mouseDelayMet = !this.options.delay, this.mouseDelayMet || (this._mouseDelayTimer = setTimeout(function () { i.mouseDelayMet = !0 }, this.options.delay)), this._mouseDistanceMet(t) && this._mouseDelayMet(t) && (this._mouseStarted = this._mouseStart(t) !== !1, !this._mouseStarted) ? (t.preventDefault(), !0) : (!0 === e.data(t.target, this.widgetName + ".preventClickEvent") && e.removeData(t.target, this.widgetName + ".preventClickEvent"), this._mouseMoveDelegate = function (e) { return i._mouseMove(e) }, this._mouseUpDelegate = function (e) { return i._mouseUp(e) }, this.document.bind("mousemove." + this.widgetName, this._mouseMoveDelegate).bind("mouseup." + this.widgetName, this._mouseUpDelegate), t.preventDefault(), d = !0, !0)) : !0 } }, _mouseMove: function (t) { if (this._mouseMoved) { if (e.ui.ie && (!document.documentMode || 9 > document.documentMode) && !t.button) return this._mouseUp(t); if (!t.which) return this._mouseUp(t) } return (t.which || t.button) && (this._mouseMoved = !0), this._mouseStarted ? (this._mouseDrag(t), t.preventDefault()) : (this._mouseDistanceMet(t) && this._mouseDelayMet(t) && (this._mouseStarted = this._mouseStart(this._mouseDownEvent, t) !== !1, this._mouseStarted ? this._mouseDrag(t) : this._mouseUp(t)), !this._mouseStarted) }, _mouseUp: function (t) { return this.document.unbind("mousemove." + this.widgetName, this._mouseMoveDelegate).unbind("mouseup." + this.widgetName, this._mouseUpDelegate), this._mouseStarted && (this._mouseStarted = !1, t.target === this._mouseDownEvent.target && e.data(t.target, this.widgetName + ".preventClickEvent", !0), this._mouseStop(t)), d = !1, !1 }, _mouseDistanceMet: function (e) { return Math.max(Math.abs(this._mouseDownEvent.pageX - e.pageX), Math.abs(this._mouseDownEvent.pageY - e.pageY)) >= this.options.distance }, _mouseDelayMet: function () { return this.mouseDelayMet }, _mouseStart: function () { }, _mouseDrag: function () { }, _mouseStop: function () { }, _mouseCapture: function () { return !0 } }), function () { function t(e, t, i) { return [parseFloat(e[0]) * (p.test(e[0]) ? t / 100 : 1), parseFloat(e[1]) * (p.test(e[1]) ? i / 100 : 1)] } function i(t, i) { return parseInt(e.css(t, i), 10) || 0 } function s(t) { var i = t[0]; return 9 === i.nodeType ? { width: t.width(), height: t.height(), offset: { top: 0, left: 0 } } : e.isWindow(i) ? { width: t.width(), height: t.height(), offset: { top: t.scrollTop(), left: t.scrollLeft() } } : i.preventDefault ? { width: 0, height: 0, offset: { top: i.pageY, left: i.pageX } } : { width: t.outerWidth(), height: t.outerHeight(), offset: t.offset() } } e.ui = e.ui || {}; var n, a, o = Math.max, r = Math.abs, h = Math.round, l = /left|center|right/, u = /top|center|bottom/, d = /[\+\-]\d+(\.[\d]+)?%?/, c = /^\w+/, p = /%$/, f = e.fn.position; e.position = { scrollbarWidth: function () { if (void 0 !== n) return n; var t, i, s = e("<div style='display:block;position:absolute;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>"), a = s.children()[0]; return e("body").append(s), t = a.offsetWidth, s.css("overflow", "scroll"), i = a.offsetWidth, t === i && (i = s[0].clientWidth), s.remove(), n = t - i }, getScrollInfo: function (t) { var i = t.isWindow || t.isDocument ? "" : t.element.css("overflow-x"), s = t.isWindow || t.isDocument ? "" : t.element.css("overflow-y"), n = "scroll" === i || "auto" === i && t.width < t.element[0].scrollWidth, a = "scroll" === s || "auto" === s && t.height < t.element[0].scrollHeight; return { width: a ? e.position.scrollbarWidth() : 0, height: n ? e.position.scrollbarWidth() : 0 } }, getWithinInfo: function (t) { var i = e(t || window), s = e.isWindow(i[0]), n = !!i[0] && 9 === i[0].nodeType; return { element: i, isWindow: s, isDocument: n, offset: i.offset() || { left: 0, top: 0 }, scrollLeft: i.scrollLeft(), scrollTop: i.scrollTop(), width: s || n ? i.width() : i.outerWidth(), height: s || n ? i.height() : i.outerHeight() } } }, e.fn.position = function (n) { if (!n || !n.of) return f.apply(this, arguments); n = e.extend({}, n); var p, m, g, v, y, b, _ = e(n.of), x = e.position.getWithinInfo(n.within), w = e.position.getScrollInfo(x), k = (n.collision || "flip").split(" "), T = {}; return b = s(_), _[0].preventDefault && (n.at = "left top"), m = b.width, g = b.height, v = b.offset, y = e.extend({}, v), e.each(["my", "at"], function () { var e, t, i = (n[this] || "").split(" "); 1 === i.length && (i = l.test(i[0]) ? i.concat(["center"]) : u.test(i[0]) ? ["center"].concat(i) : ["center", "center"]), i[0] = l.test(i[0]) ? i[0] : "center", i[1] = u.test(i[1]) ? i[1] : "center", e = d.exec(i[0]), t = d.exec(i[1]), T[this] = [e ? e[0] : 0, t ? t[0] : 0], n[this] = [c.exec(i[0])[0], c.exec(i[1])[0]] }), 1 === k.length && (k[1] = k[0]), "right" === n.at[0] ? y.left += m : "center" === n.at[0] && (y.left += m / 2), "bottom" === n.at[1] ? y.top += g : "center" === n.at[1] && (y.top += g / 2), p = t(T.at, m, g), y.left += p[0], y.top += p[1], this.each(function () { var s, l, u = e(this), d = u.outerWidth(), c = u.outerHeight(), f = i(this, "marginLeft"), b = i(this, "marginTop"), D = d + f + i(this, "marginRight") + w.width, S = c + b + i(this, "marginBottom") + w.height, M = e.extend({}, y), C = t(T.my, u.outerWidth(), u.outerHeight()); "right" === n.my[0] ? M.left -= d : "center" === n.my[0] && (M.left -= d / 2), "bottom" === n.my[1] ? M.top -= c : "center" === n.my[1] && (M.top -= c / 2), M.left += C[0], M.top += C[1], a || (M.left = h(M.left), M.top = h(M.top)), s = { marginLeft: f, marginTop: b }, e.each(["left", "top"], function (t, i) { e.ui.position[k[t]] && e.ui.position[k[t]][i](M, { targetWidth: m, targetHeight: g, elemWidth: d, elemHeight: c, collisionPosition: s, collisionWidth: D, collisionHeight: S, offset: [p[0] + C[0], p[1] + C[1]], my: n.my, at: n.at, within: x, elem: u }) }), n.using && (l = function (e) { var t = v.left - M.left, i = t + m - d, s = v.top - M.top, a = s + g - c, h = { target: { element: _, left: v.left, top: v.top, width: m, height: g }, element: { element: u, left: M.left, top: M.top, width: d, height: c }, horizontal: 0 > i ? "left" : t > 0 ? "right" : "center", vertical: 0 > a ? "top" : s > 0 ? "bottom" : "middle" }; d > m && m > r(t + i) && (h.horizontal = "center"), c > g && g > r(s + a) && (h.vertical = "middle"), h.important = o(r(t), r(i)) > o(r(s), r(a)) ? "horizontal" : "vertical", n.using.call(this, e, h) }), u.offset(e.extend(M, { using: l })) }) }, e.ui.position = { fit: { left: function (e, t) { var i, s = t.within, n = s.isWindow ? s.scrollLeft : s.offset.left, a = s.width, r = e.left - t.collisionPosition.marginLeft, h = n - r, l = r + t.collisionWidth - a - n; t.collisionWidth > a ? h > 0 && 0 >= l ? (i = e.left + h + t.collisionWidth - a - n, e.left += h - i) : e.left = l > 0 && 0 >= h ? n : h > l ? n + a - t.collisionWidth : n : h > 0 ? e.left += h : l > 0 ? e.left -= l : e.left = o(e.left - r, e.left) }, top: function (e, t) { var i, s = t.within, n = s.isWindow ? s.scrollTop : s.offset.top, a = t.within.height, r = e.top - t.collisionPosition.marginTop, h = n - r, l = r + t.collisionHeight - a - n; t.collisionHeight > a ? h > 0 && 0 >= l ? (i = e.top + h + t.collisionHeight - a - n, e.top += h - i) : e.top = l > 0 && 0 >= h ? n : h > l ? n + a - t.collisionHeight : n : h > 0 ? e.top += h : l > 0 ? e.top -= l : e.top = o(e.top - r, e.top) } }, flip: { left: function (e, t) { var i, s, n = t.within, a = n.offset.left + n.scrollLeft, o = n.width, h = n.isWindow ? n.scrollLeft : n.offset.left, l = e.left - t.collisionPosition.marginLeft, u = l - h, d = l + t.collisionWidth - o - h, c = "left" === t.my[0] ? -t.elemWidth : "right" === t.my[0] ? t.elemWidth : 0, p = "left" === t.at[0] ? t.targetWidth : "right" === t.at[0] ? -t.targetWidth : 0, f = -2 * t.offset[0]; 0 > u ? (i = e.left + c + p + f + t.collisionWidth - o - a, (0 > i || r(u) > i) && (e.left += c + p + f)) : d > 0 && (s = e.left - t.collisionPosition.marginLeft + c + p + f - h, (s > 0 || d > r(s)) && (e.left += c + p + f)) }, top: function (e, t) { var i, s, n = t.within, a = n.offset.top + n.scrollTop, o = n.height, h = n.isWindow ? n.scrollTop : n.offset.top, l = e.top - t.collisionPosition.marginTop, u = l - h, d = l + t.collisionHeight - o - h, c = "top" === t.my[1], p = c ? -t.elemHeight : "bottom" === t.my[1] ? t.elemHeight : 0, f = "top" === t.at[1] ? t.targetHeight : "bottom" === t.at[1] ? -t.targetHeight : 0, m = -2 * t.offset[1]; 0 > u ? (s = e.top + p + f + m + t.collisionHeight - o - a, (0 > s || r(u) > s) && (e.top += p + f + m)) : d > 0 && (i = e.top - t.collisionPosition.marginTop + p + f + m - h, (i > 0 || d > r(i)) && (e.top += p + f + m)) } }, flipfit: { left: function () { e.ui.position.flip.left.apply(this, arguments), e.ui.position.fit.left.apply(this, arguments) }, top: function () { e.ui.position.flip.top.apply(this, arguments), e.ui.position.fit.top.apply(this, arguments) } } }, function () { var t, i, s, n, o, r = document.getElementsByTagName("body")[0], h = document.createElement("div"); t = document.createElement(r ? "div" : "body"), s = { visibility: "hidden", width: 0, height: 0, border: 0, margin: 0, background: "none" }, r && e.extend(s, { position: "absolute", left: "-1000px", top: "-1000px" }); for (o in s) t.style[o] = s[o]; t.appendChild(h), i = r || document.documentElement, i.insertBefore(t, i.firstChild), h.style.cssText = "position: absolute; left: 10.7432222px;", n = e(h).offset().left, a = n > 10 && 11 > n, t.innerHTML = "", i.removeChild(t) }() }(), e.ui.position, e.widget("ui.draggable", e.ui.mouse, { version: "1.11.4", widgetEventPrefix: "drag", options: { addClasses: !0, appendTo: "parent", axis: !1, connectToSortable: !1, containment: !1, cursor: "auto", cursorAt: !1, grid: !1, handle: !1, helper: "original", iframeFix: !1, opacity: !1, refreshPositions: !1, revert: !1, revertDuration: 500, scope: "default", scroll: !0, scrollSensitivity: 20, scrollSpeed: 20, snap: !1, snapMode: "both", snapTolerance: 20, stack: !1, zIndex: !1, drag: null, start: null, stop: null }, _create: function () { "original" === this.options.helper && this._setPositionRelative(), this.options.addClasses && this.element.addClass("ui-draggable"), this.options.disabled && this.element.addClass("ui-draggable-disabled"), this._setHandleClassName(), this._mouseInit() }, _setOption: function (e, t) { this._super(e, t), "handle" === e && (this._removeHandleClassName(), this._setHandleClassName()) }, _destroy: function () { return (this.helper || this.element).is(".ui-draggable-dragging") ? (this.destroyOnClear = !0, void 0) : (this.element.removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled"), this._removeHandleClassName(), this._mouseDestroy(), void 0) }, _mouseCapture: function (t) { var i = this.options; return this._blurActiveElement(t), this.helper || i.disabled || e(t.target).closest(".ui-resizable-handle").length > 0 ? !1 : (this.handle = this._getHandle(t), this.handle ? (this._blockFrames(i.iframeFix === !0 ? "iframe" : i.iframeFix), !0) : !1) }, _blockFrames: function (t) { this.iframeBlocks = this.document.find(t).map(function () { var t = e(this); return e("<div>").css("position", "absolute").appendTo(t.parent()).outerWidth(t.outerWidth()).outerHeight(t.outerHeight()).offset(t.offset())[0] }) }, _unblockFrames: function () { this.iframeBlocks && (this.iframeBlocks.remove(), delete this.iframeBlocks) }, _blurActiveElement: function (t) { var i = this.document[0]; if (this.handleElement.is(t.target)) try { i.activeElement && "body" !== i.activeElement.nodeName.toLowerCase() && e(i.activeElement).blur() } catch (s) { } }, _mouseStart: function (t) { var i = this.options; return this.helper = this._createHelper(t), this.helper.addClass("ui-draggable-dragging"), this._cacheHelperProportions(), e.ui.ddmanager && (e.ui.ddmanager.current = this), this._cacheMargins(), this.cssPosition = this.helper.css("position"), this.scrollParent = this.helper.scrollParent(!0), this.offsetParent = this.helper.offsetParent(), this.hasFixedAncestor = this.helper.parents().filter(function () { return "fixed" === e(this).css("position") }).length > 0, this.positionAbs = this.element.offset(), this._refreshOffsets(t), this.originalPosition = this.position = this._generatePosition(t, !1), this.originalPageX = t.pageX, this.originalPageY = t.pageY, i.cursorAt && this._adjustOffsetFromHelper(i.cursorAt), this._setContainment(), this._trigger("start", t) === !1 ? (this._clear(), !1) : (this._cacheHelperProportions(), e.ui.ddmanager && !i.dropBehaviour && e.ui.ddmanager.prepareOffsets(this, t), this._normalizeRightBottom(), this._mouseDrag(t, !0), e.ui.ddmanager && e.ui.ddmanager.dragStart(this, t), !0) }, _refreshOffsets: function (e) { this.offset = { top: this.positionAbs.top - this.margins.top, left: this.positionAbs.left - this.margins.left, scroll: !1, parent: this._getParentOffset(), relative: this._getRelativeOffset() }, this.offset.click = { left: e.pageX - this.offset.left, top: e.pageY - this.offset.top } }, _mouseDrag: function (t, i) { if (this.hasFixedAncestor && (this.offset.parent = this._getParentOffset()), this.position = this._generatePosition(t, !0), this.positionAbs = this._convertPositionTo("absolute"), !i) { var s = this._uiHash(); if (this._trigger("drag", t, s) === !1) return this._mouseUp({}), !1; this.position = s.position } return this.helper[0].style.left = this.position.left + "px", this.helper[0].style.top = this.position.top + "px", e.ui.ddmanager && e.ui.ddmanager.drag(this, t), !1 }, _mouseStop: function (t) { var i = this, s = !1; return e.ui.ddmanager && !this.options.dropBehaviour && (s = e.ui.ddmanager.drop(this, t)), this.dropped && (s = this.dropped, this.dropped = !1), "invalid" === this.options.revert && !s || "valid" === this.options.revert && s || this.options.revert === !0 || e.isFunction(this.options.revert) && this.options.revert.call(this.element, s) ? e(this.helper).animate(this.originalPosition, parseInt(this.options.revertDuration, 10), function () { i._trigger("stop", t) !== !1 && i._clear() }) : this._trigger("stop", t) !== !1 && this._clear(), !1 }, _mouseUp: function (t) { return this._unblockFrames(), e.ui.ddmanager && e.ui.ddmanager.dragStop(this, t), this.handleElement.is(t.target) && this.element.focus(), e.ui.mouse.prototype._mouseUp.call(this, t) }, cancel: function () { return this.helper.is(".ui-draggable-dragging") ? this._mouseUp({}) : this._clear(), this }, _getHandle: function (t) { return this.options.handle ? !!e(t.target).closest(this.element.find(this.options.handle)).length : !0 }, _setHandleClassName: function () { this.handleElement = this.options.handle ? this.element.find(this.options.handle) : this.element, this.handleElement.addClass("ui-draggable-handle") }, _removeHandleClassName: function () { this.handleElement.removeClass("ui-draggable-handle") }, _createHelper: function (t) { var i = this.options, s = e.isFunction(i.helper), n = s ? e(i.helper.apply(this.element[0], [t])) : "clone" === i.helper ? this.element.clone().removeAttr("id") : this.element; return n.parents("body").length || n.appendTo("parent" === i.appendTo ? this.element[0].parentNode : i.appendTo), s && n[0] === this.element[0] && this._setPositionRelative(), n[0] === this.element[0] || /(fixed|absolute)/.test(n.css("position")) || n.css("position", "absolute"), n }, _setPositionRelative: function () { /^(?:r|a|f)/.test(this.element.css("position")) || (this.element[0].style.position = "relative") }, _adjustOffsetFromHelper: function (t) { "string" == typeof t && (t = t.split(" ")), e.isArray(t) && (t = { left: +t[0], top: +t[1] || 0 }), "left" in t && (this.offset.click.left = t.left + this.margins.left), "right" in t && (this.offset.click.left = this.helperProportions.width - t.right + this.margins.left), "top" in t && (this.offset.click.top = t.top + this.margins.top), "bottom" in t && (this.offset.click.top = this.helperProportions.height - t.bottom + this.margins.top) }, _isRootNode: function (e) { return /(html|body)/i.test(e.tagName) || e === this.document[0] }, _getParentOffset: function () { var t = this.offsetParent.offset(), i = this.document[0]; return "absolute" === this.cssPosition && this.scrollParent[0] !== i && e.contains(this.scrollParent[0], this.offsetParent[0]) && (t.left += this.scrollParent.scrollLeft(), t.top += this.scrollParent.scrollTop()), this._isRootNode(this.offsetParent[0]) && (t = { top: 0, left: 0 }), { top: t.top + (parseInt(this.offsetParent.css("borderTopWidth"), 10) || 0), left: t.left + (parseInt(this.offsetParent.css("borderLeftWidth"), 10) || 0) } }, _getRelativeOffset: function () { if ("relative" !== this.cssPosition) return { top: 0, left: 0 }; var e = this.element.position(), t = this._isRootNode(this.scrollParent[0]); return { top: e.top - (parseInt(this.helper.css("top"), 10) || 0) + (t ? 0 : this.scrollParent.scrollTop()), left: e.left - (parseInt(this.helper.css("left"), 10) || 0) + (t ? 0 : this.scrollParent.scrollLeft()) } }, _cacheMargins: function () { this.margins = { left: parseInt(this.element.css("marginLeft"), 10) || 0, top: parseInt(this.element.css("marginTop"), 10) || 0, right: parseInt(this.element.css("marginRight"), 10) || 0, bottom: parseInt(this.element.css("marginBottom"), 10) || 0 } }, _cacheHelperProportions: function () { this.helperProportions = { width: this.helper.outerWidth(), height: this.helper.outerHeight() } }, _setContainment: function () { var t, i, s, n = this.options, a = this.document[0]; return this.relativeContainer = null, n.containment ? "window" === n.containment ? (this.containment = [e(window).scrollLeft() - this.offset.relative.left - this.offset.parent.left, e(window).scrollTop() - this.offset.relative.top - this.offset.parent.top, e(window).scrollLeft() + e(window).width() - this.helperProportions.width - this.margins.left, e(window).scrollTop() + (e(window).height() || a.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top], void 0) : "document" === n.containment ? (this.containment = [0, 0, e(a).width() - this.helperProportions.width - this.margins.left, (e(a).height() || a.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top], void 0) : n.containment.constructor === Array ? (this.containment = n.containment, void 0) : ("parent" === n.containment && (n.containment = this.helper[0].parentNode), i = e(n.containment), s = i[0], s && (t = /(scroll|auto)/.test(i.css("overflow")), this.containment = [(parseInt(i.css("borderLeftWidth"), 10) || 0) + (parseInt(i.css("paddingLeft"), 10) || 0), (parseInt(i.css("borderTopWidth"), 10) || 0) + (parseInt(i.css("paddingTop"), 10) || 0), (t ? Math.max(s.scrollWidth, s.offsetWidth) : s.offsetWidth) - (parseInt(i.css("borderRightWidth"), 10) || 0) - (parseInt(i.css("paddingRight"), 10) || 0) - this.helperProportions.width - this.margins.left - this.margins.right, (t ? Math.max(s.scrollHeight, s.offsetHeight) : s.offsetHeight) - (parseInt(i.css("borderBottomWidth"), 10) || 0) - (parseInt(i.css("paddingBottom"), 10) || 0) - this.helperProportions.height - this.margins.top - this.margins.bottom], this.relativeContainer = i), void 0) : (this.containment = null, void 0) }, _convertPositionTo: function (e, t) { t || (t = this.position); var i = "absolute" === e ? 1 : -1, s = this._isRootNode(this.scrollParent[0]); return { top: t.top + this.offset.relative.top * i + this.offset.parent.top * i - ("fixed" === this.cssPosition ? -this.offset.scroll.top : s ? 0 : this.offset.scroll.top) * i, left: t.left + this.offset.relative.left * i + this.offset.parent.left * i - ("fixed" === this.cssPosition ? -this.offset.scroll.left : s ? 0 : this.offset.scroll.left) * i } }, _generatePosition: function (e, t) { var i, s, n, a, o = this.options, r = this._isRootNode(this.scrollParent[0]), h = e.pageX, l = e.pageY; return r && this.offset.scroll || (this.offset.scroll = { top: this.scrollParent.scrollTop(), left: this.scrollParent.scrollLeft() }), t && (this.containment && (this.relativeContainer ? (s = this.relativeContainer.offset(), i = [this.containment[0] + s.left, this.containment[1] + s.top, this.containment[2] + s.left, this.containment[3] + s.top]) : i = this.containment, e.pageX - this.offset.click.left < i[0] && (h = i[0] + this.offset.click.left), e.pageY - this.offset.click.top < i[1] && (l = i[1] + this.offset.click.top), e.pageX - this.offset.click.left > i[2] && (h = i[2] + this.offset.click.left), e.pageY - this.offset.click.top > i[3] && (l = i[3] + this.offset.click.top)), o.grid && (n = o.grid[1] ? this.originalPageY + Math.round((l - this.originalPageY) / o.grid[1]) * o.grid[1] : this.originalPageY, l = i ? n - this.offset.click.top >= i[1] || n - this.offset.click.top > i[3] ? n : n - this.offset.click.top >= i[1] ? n - o.grid[1] : n + o.grid[1] : n, a = o.grid[0] ? this.originalPageX + Math.round((h - this.originalPageX) / o.grid[0]) * o.grid[0] : this.originalPageX, h = i ? a - this.offset.click.left >= i[0] || a - this.offset.click.left > i[2] ? a : a - this.offset.click.left >= i[0] ? a - o.grid[0] : a + o.grid[0] : a), "y" === o.axis && (h = this.originalPageX), "x" === o.axis && (l = this.originalPageY)), { top: l - this.offset.click.top - this.offset.relative.top - this.offset.parent.top + ("fixed" === this.cssPosition ? -this.offset.scroll.top : r ? 0 : this.offset.scroll.top), left: h - this.offset.click.left - this.offset.relative.left - this.offset.parent.left + ("fixed" === this.cssPosition ? -this.offset.scroll.left : r ? 0 : this.offset.scroll.left) } }, _clear: function () { this.helper.removeClass("ui-draggable-dragging"), this.helper[0] === this.element[0] || this.cancelHelperRemoval || this.helper.remove(), this.helper = null, this.cancelHelperRemoval = !1, this.destroyOnClear && this.destroy() }, _normalizeRightBottom: function () { "y" !== this.options.axis && "auto" !== this.helper.css("right") && (this.helper.width(this.helper.width()), this.helper.css("right", "auto")), "x" !== this.options.axis && "auto" !== this.helper.css("bottom") && (this.helper.height(this.helper.height()), this.helper.css("bottom", "auto")) }, _trigger: function (t, i, s) { return s = s || this._uiHash(), e.ui.plugin.call(this, t, [i, s, this], !0), /^(drag|start|stop)/.test(t) && (this.positionAbs = this._convertPositionTo("absolute"), s.offset = this.positionAbs), e.Widget.prototype._trigger.call(this, t, i, s) }, plugins: {}, _uiHash: function () { return { helper: this.helper, position: this.position, originalPosition: this.originalPosition, offset: this.positionAbs } } }), e.ui.plugin.add("draggable", "connectToSortable", { start: function (t, i, s) { var n = e.extend({}, i, { item: s.element }); s.sortables = [], e(s.options.connectToSortable).each(function () { var i = e(this).sortable("instance"); i && !i.options.disabled && (s.sortables.push(i), i.refreshPositions(), i._trigger("activate", t, n)) }) }, stop: function (t, i, s) { var n = e.extend({}, i, { item: s.element }); s.cancelHelperRemoval = !1, e.each(s.sortables, function () { var e = this; e.isOver ? (e.isOver = 0, s.cancelHelperRemoval = !0, e.cancelHelperRemoval = !1, e._storedCSS = { position: e.placeholder.css("position"), top: e.placeholder.css("top"), left: e.placeholder.css("left") }, e._mouseStop(t), e.options.helper = e.options._helper) : (e.cancelHelperRemoval = !0, e._trigger("deactivate", t, n)) }) }, drag: function (t, i, s) { e.each(s.sortables, function () { var n = !1, a = this; a.positionAbs = s.positionAbs, a.helperProportions = s.helperProportions, a.offset.click = s.offset.click, a._intersectsWith(a.containerCache) && (n = !0, e.each(s.sortables, function () { return this.positionAbs = s.positionAbs, this.helperProportions = s.helperProportions, this.offset.click = s.offset.click, this !== a && this._intersectsWith(this.containerCache) && e.contains(a.element[0], this.element[0]) && (n = !1), n })), n ? (a.isOver || (a.isOver = 1, s._parent = i.helper.parent(), a.currentItem = i.helper.appendTo(a.element).data("ui-sortable-item", !0), a.options._helper = a.options.helper, a.options.helper = function () { return i.helper[0] }, t.target = a.currentItem[0], a._mouseCapture(t, !0), a._mouseStart(t, !0, !0), a.offset.click.top = s.offset.click.top, a.offset.click.left = s.offset.click.left, a.offset.parent.left -= s.offset.parent.left - a.offset.parent.left, a.offset.parent.top -= s.offset.parent.top - a.offset.parent.top, s._trigger("toSortable", t), s.dropped = a.element, e.each(s.sortables, function () { this.refreshPositions() }), s.currentItem = s.element, a.fromOutside = s), a.currentItem && (a._mouseDrag(t), i.position = a.position)) : a.isOver && (a.isOver = 0, a.cancelHelperRemoval = !0, a.options._revert = a.options.revert, a.options.revert = !1, a._trigger("out", t, a._uiHash(a)), a._mouseStop(t, !0), a.options.revert = a.options._revert, a.options.helper = a.options._helper, a.placeholder && a.placeholder.remove(), i.helper.appendTo(s._parent), s._refreshOffsets(t), i.position = s._generatePosition(t, !0), s._trigger("fromSortable", t), s.dropped = !1, e.each(s.sortables, function () { this.refreshPositions() })) }) } }), e.ui.plugin.add("draggable", "cursor", { start: function (t, i, s) { var n = e("body"), a = s.options; n.css("cursor") && (a._cursor = n.css("cursor")), n.css("cursor", a.cursor) }, stop: function (t, i, s) { var n = s.options; n._cursor && e("body").css("cursor", n._cursor) } }), e.ui.plugin.add("draggable", "opacity", { start: function (t, i, s) { var n = e(i.helper), a = s.options; n.css("opacity") && (a._opacity = n.css("opacity")), n.css("opacity", a.opacity) }, stop: function (t, i, s) { var n = s.options; n._opacity && e(i.helper).css("opacity", n._opacity) } }), e.ui.plugin.add("draggable", "scroll", { start: function (e, t, i) { i.scrollParentNotHidden || (i.scrollParentNotHidden = i.helper.scrollParent(!1)), i.scrollParentNotHidden[0] !== i.document[0] && "HTML" !== i.scrollParentNotHidden[0].tagName && (i.overflowOffset = i.scrollParentNotHidden.offset()) }, drag: function (t, i, s) { var n = s.options, a = !1, o = s.scrollParentNotHidden[0], r = s.document[0]; o !== r && "HTML" !== o.tagName ? (n.axis && "x" === n.axis || (s.overflowOffset.top + o.offsetHeight - t.pageY < n.scrollSensitivity ? o.scrollTop = a = o.scrollTop + n.scrollSpeed : t.pageY - s.overflowOffset.top < n.scrollSensitivity && (o.scrollTop = a = o.scrollTop - n.scrollSpeed)), n.axis && "y" === n.axis || (s.overflowOffset.left + o.offsetWidth - t.pageX < n.scrollSensitivity ? o.scrollLeft = a = o.scrollLeft + n.scrollSpeed : t.pageX - s.overflowOffset.left < n.scrollSensitivity && (o.scrollLeft = a = o.scrollLeft - n.scrollSpeed))) : (n.axis && "x" === n.axis || (t.pageY - e(r).scrollTop() < n.scrollSensitivity ? a = e(r).scrollTop(e(r).scrollTop() - n.scrollSpeed) : e(window).height() - (t.pageY - e(r).scrollTop()) < n.scrollSensitivity && (a = e(r).scrollTop(e(r).scrollTop() + n.scrollSpeed))), n.axis && "y" === n.axis || (t.pageX - e(r).scrollLeft() < n.scrollSensitivity ? a = e(r).scrollLeft(e(r).scrollLeft() - n.scrollSpeed) : e(window).width() - (t.pageX - e(r).scrollLeft()) < n.scrollSensitivity && (a = e(r).scrollLeft(e(r).scrollLeft() + n.scrollSpeed)))), a !== !1 && e.ui.ddmanager && !n.dropBehaviour && e.ui.ddmanager.prepareOffsets(s, t) } }), e.ui.plugin.add("draggable", "snap", { start: function (t, i, s) { var n = s.options; s.snapElements = [], e(n.snap.constructor !== String ? n.snap.items || ":data(ui-draggable)" : n.snap).each(function () { var t = e(this), i = t.offset(); this !== s.element[0] && s.snapElements.push({ item: this, width: t.outerWidth(), height: t.outerHeight(), top: i.top, left: i.left }) }) }, drag: function (t, i, s) { var n, a, o, r, h, l, u, d, c, p, f = s.options, m = f.snapTolerance, g = i.offset.left, v = g + s.helperProportions.width, y = i.offset.top, b = y + s.helperProportions.height; for (c = s.snapElements.length - 1; c >= 0; c--)h = s.snapElements[c].left - s.margins.left, l = h + s.snapElements[c].width, u = s.snapElements[c].top - s.margins.top, d = u + s.snapElements[c].height, h - m > v || g > l + m || u - m > b || y > d + m || !e.contains(s.snapElements[c].item.ownerDocument, s.snapElements[c].item) ? (s.snapElements[c].snapping && s.options.snap.release && s.options.snap.release.call(s.element, t, e.extend(s._uiHash(), { snapItem: s.snapElements[c].item })), s.snapElements[c].snapping = !1) : ("inner" !== f.snapMode && (n = m >= Math.abs(u - b), a = m >= Math.abs(d - y), o = m >= Math.abs(h - v), r = m >= Math.abs(l - g), n && (i.position.top = s._convertPositionTo("relative", { top: u - s.helperProportions.height, left: 0 }).top), a && (i.position.top = s._convertPositionTo("relative", { top: d, left: 0 }).top), o && (i.position.left = s._convertPositionTo("relative", { top: 0, left: h - s.helperProportions.width }).left), r && (i.position.left = s._convertPositionTo("relative", { top: 0, left: l }).left)), p = n || a || o || r, "outer" !== f.snapMode && (n = m >= Math.abs(u - y), a = m >= Math.abs(d - b), o = m >= Math.abs(h - g), r = m >= Math.abs(l - v), n && (i.position.top = s._convertPositionTo("relative", { top: u, left: 0 }).top), a && (i.position.top = s._convertPositionTo("relative", { top: d - s.helperProportions.height, left: 0 }).top), o && (i.position.left = s._convertPositionTo("relative", { top: 0, left: h }).left), r && (i.position.left = s._convertPositionTo("relative", { top: 0, left: l - s.helperProportions.width }).left)), !s.snapElements[c].snapping && (n || a || o || r || p) && s.options.snap.snap && s.options.snap.snap.call(s.element, t, e.extend(s._uiHash(), { snapItem: s.snapElements[c].item })), s.snapElements[c].snapping = n || a || o || r || p) } }), e.ui.plugin.add("draggable", "stack", { start: function (t, i, s) { var n, a = s.options, o = e.makeArray(e(a.stack)).sort(function (t, i) { return (parseInt(e(t).css("zIndex"), 10) || 0) - (parseInt(e(i).css("zIndex"), 10) || 0) }); o.length && (n = parseInt(e(o[0]).css("zIndex"), 10) || 0, e(o).each(function (t) { e(this).css("zIndex", n + t) }), this.css("zIndex", n + o.length)) } }), e.ui.plugin.add("draggable", "zIndex", { start: function (t, i, s) { var n = e(i.helper), a = s.options; n.css("zIndex") && (a._zIndex = n.css("zIndex")), n.css("zIndex", a.zIndex) }, stop: function (t, i, s) { var n = s.options; n._zIndex && e(i.helper).css("zIndex", n._zIndex) } }), e.ui.draggable, e.widget("ui.droppable", { version: "1.11.4", widgetEventPrefix: "drop", options: { accept: "*", activeClass: !1, addClasses: !0, greedy: !1, hoverClass: !1, scope: "default", tolerance: "intersect", activate: null, deactivate: null, drop: null, out: null, over: null }, _create: function () { var t, i = this.options, s = i.accept; this.isover = !1, this.isout = !0, this.accept = e.isFunction(s) ? s : function (e) { return e.is(s) }, this.proportions = function () { return arguments.length ? (t = arguments[0], void 0) : t ? t : t = { width: this.element[0].offsetWidth, height: this.element[0].offsetHeight } }, this._addToManager(i.scope), i.addClasses && this.element.addClass("ui-droppable") }, _addToManager: function (t) { e.ui.ddmanager.droppables[t] = e.ui.ddmanager.droppables[t] || [], e.ui.ddmanager.droppables[t].push(this) }, _splice: function (e) { for (var t = 0; e.length > t; t++)e[t] === this && e.splice(t, 1) }, _destroy: function () { var t = e.ui.ddmanager.droppables[this.options.scope]; this._splice(t), this.element.removeClass("ui-droppable ui-droppable-disabled") }, _setOption: function (t, i) { if ("accept" === t) this.accept = e.isFunction(i) ? i : function (e) { return e.is(i) }; else if ("scope" === t) { var s = e.ui.ddmanager.droppables[this.options.scope]; this._splice(s), this._addToManager(i) } this._super(t, i) }, _activate: function (t) { var i = e.ui.ddmanager.current; this.options.activeClass && this.element.addClass(this.options.activeClass), i && this._trigger("activate", t, this.ui(i)) }, _deactivate: function (t) { var i = e.ui.ddmanager.current; this.options.activeClass && this.element.removeClass(this.options.activeClass), i && this._trigger("deactivate", t, this.ui(i)) }, _over: function (t) { var i = e.ui.ddmanager.current; i && (i.currentItem || i.element)[0] !== this.element[0] && this.accept.call(this.element[0], i.currentItem || i.element) && (this.options.hoverClass && this.element.addClass(this.options.hoverClass), this._trigger("over", t, this.ui(i))) }, _out: function (t) { var i = e.ui.ddmanager.current; i && (i.currentItem || i.element)[0] !== this.element[0] && this.accept.call(this.element[0], i.currentItem || i.element) && (this.options.hoverClass && this.element.removeClass(this.options.hoverClass), this._trigger("out", t, this.ui(i))) }, _drop: function (t, i) { var s = i || e.ui.ddmanager.current, n = !1; return s && (s.currentItem || s.element)[0] !== this.element[0] ? (this.element.find(":data(ui-droppable)").not(".ui-draggable-dragging").each(function () { var i = e(this).droppable("instance"); return i.options.greedy && !i.options.disabled && i.options.scope === s.options.scope && i.accept.call(i.element[0], s.currentItem || s.element) && e.ui.intersect(s, e.extend(i, { offset: i.element.offset() }), i.options.tolerance, t) ? (n = !0, !1) : void 0 }), n ? !1 : this.accept.call(this.element[0], s.currentItem || s.element) ? (this.options.activeClass && this.element.removeClass(this.options.activeClass), this.options.hoverClass && this.element.removeClass(this.options.hoverClass), this._trigger("drop", t, this.ui(s)), this.element) : !1) : !1 }, ui: function (e) { return { draggable: e.currentItem || e.element, helper: e.helper, position: e.position, offset: e.positionAbs } } }), e.ui.intersect = function () { function e(e, t, i) { return e >= t && t + i > e } return function (t, i, s, n) { if (!i.offset) return !1; var a = (t.positionAbs || t.position.absolute).left + t.margins.left, o = (t.positionAbs || t.position.absolute).top + t.margins.top, r = a + t.helperProportions.width, h = o + t.helperProportions.height, l = i.offset.left, u = i.offset.top, d = l + i.proportions().width, c = u + i.proportions().height; switch (s) { case "fit": return a >= l && d >= r && o >= u && c >= h; case "intersect": return a + t.helperProportions.width / 2 > l && d > r - t.helperProportions.width / 2 && o + t.helperProportions.height / 2 > u && c > h - t.helperProportions.height / 2; case "pointer": return e(n.pageY, u, i.proportions().height) && e(n.pageX, l, i.proportions().width); case "touch": return (o >= u && c >= o || h >= u && c >= h || u > o && h > c) && (a >= l && d >= a || r >= l && d >= r || l > a && r > d); default: return !1 } } }(), e.ui.ddmanager = { current: null, droppables: { "default": [] }, prepareOffsets: function (t, i) { var s, n, a = e.ui.ddmanager.droppables[t.options.scope] || [], o = i ? i.type : null, r = (t.currentItem || t.element).find(":data(ui-droppable)").addBack(); e: for (s = 0; a.length > s; s++)if (!(a[s].options.disabled || t && !a[s].accept.call(a[s].element[0], t.currentItem || t.element))) { for (n = 0; r.length > n; n++)if (r[n] === a[s].element[0]) { a[s].proportions().height = 0; continue e } a[s].visible = "none" !== a[s].element.css("display"), a[s].visible && ("mousedown" === o && a[s]._activate.call(a[s], i), a[s].offset = a[s].element.offset(), a[s].proportions({ width: a[s].element[0].offsetWidth, height: a[s].element[0].offsetHeight })) } }, drop: function (t, i) { var s = !1; return e.each((e.ui.ddmanager.droppables[t.options.scope] || []).slice(), function () { this.options && (!this.options.disabled && this.visible && e.ui.intersect(t, this, this.options.tolerance, i) && (s = this._drop.call(this, i) || s), !this.options.disabled && this.visible && this.accept.call(this.element[0], t.currentItem || t.element) && (this.isout = !0, this.isover = !1, this._deactivate.call(this, i))) }), s }, dragStart: function (t, i) { t.element.parentsUntil("body").bind("scroll.droppable", function () { t.options.refreshPositions || e.ui.ddmanager.prepareOffsets(t, i) }) }, drag: function (t, i) { t.options.refreshPositions && e.ui.ddmanager.prepareOffsets(t, i), e.each(e.ui.ddmanager.droppables[t.options.scope] || [], function () { if (!this.options.disabled && !this.greedyChild && this.visible) { var s, n, a, o = e.ui.intersect(t, this, this.options.tolerance, i), r = !o && this.isover ? "isout" : o && !this.isover ? "isover" : null; r && (this.options.greedy && (n = this.options.scope, a = this.element.parents(":data(ui-droppable)").filter(function () { return e(this).droppable("instance").options.scope === n }), a.length && (s = e(a[0]).droppable("instance"), s.greedyChild = "isover" === r)), s && "isover" === r && (s.isover = !1, s.isout = !0, s._out.call(s, i)), this[r] = !0, this["isout" === r ? "isover" : "isout"] = !1, this["isover" === r ? "_over" : "_out"].call(this, i), s && "isout" === r && (s.isout = !1, s.isover = !0, s._over.call(s, i))) } }) }, dragStop: function (t, i) { t.element.parentsUntil("body").unbind("scroll.droppable"), t.options.refreshPositions || e.ui.ddmanager.prepareOffsets(t, i) } }, e.ui.droppable, e.widget("ui.resizable", e.ui.mouse, { version: "1.11.4", widgetEventPrefix: "resize", options: { alsoResize: !1, animate: !1, animateDuration: "slow", animateEasing: "swing", aspectRatio: !1, autoHide: !1, containment: !1, ghost: !1, grid: !1, handles: "e,s,se", helper: !1, maxHeight: null, maxWidth: null, minHeight: 10, minWidth: 10, zIndex: 90, resize: null, start: null, stop: null }, _num: function (e) { return parseInt(e, 10) || 0 }, _isNumber: function (e) { return !isNaN(parseInt(e, 10)) }, _hasScroll: function (t, i) { if ("hidden" === e(t).css("overflow")) return !1; var s = i && "left" === i ? "scrollLeft" : "scrollTop", n = !1; return t[s] > 0 ? !0 : (t[s] = 1, n = t[s] > 0, t[s] = 0, n) }, _create: function () { var t, i, s, n, a, o = this, r = this.options; if (this.element.addClass("ui-resizable"), e.extend(this, { _aspectRatio: !!r.aspectRatio, aspectRatio: r.aspectRatio, originalElement: this.element, _proportionallyResizeElements: [], _helper: r.helper || r.ghost || r.animate ? r.helper || "ui-resizable-helper" : null }), this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i) && (this.element.wrap(e("<div class='ui-wrapper' style='overflow: hidden;'></div>").css({ position: this.element.css("position"), width: this.element.outerWidth(), height: this.element.outerHeight(), top: this.element.css("top"), left: this.element.css("left") })), this.element = this.element.parent().data("ui-resizable", this.element.resizable("instance")), this.elementIsWrapper = !0, this.element.css({ marginLeft: this.originalElement.css("marginLeft"), marginTop: this.originalElement.css("marginTop"), marginRight: this.originalElement.css("marginRight"), marginBottom: this.originalElement.css("marginBottom") }), this.originalElement.css({ marginLeft: 0, marginTop: 0, marginRight: 0, marginBottom: 0 }), this.originalResizeStyle = this.originalElement.css("resize"), this.originalElement.css("resize", "none"), this._proportionallyResizeElements.push(this.originalElement.css({ position: "static", zoom: 1, display: "block" })), this.originalElement.css({ margin: this.originalElement.css("margin") }), this._proportionallyResize()), this.handles = r.handles || (e(".ui-resizable-handle", this.element).length ? { n: ".ui-resizable-n", e: ".ui-resizable-e", s: ".ui-resizable-s", w: ".ui-resizable-w", se: ".ui-resizable-se", sw: ".ui-resizable-sw", ne: ".ui-resizable-ne", nw: ".ui-resizable-nw" } : "e,s,se"), this._handles = e(), this.handles.constructor === String) for ("all" === this.handles && (this.handles = "n,e,s,w,se,sw,ne,nw"), t = this.handles.split(","), this.handles = {}, i = 0; t.length > i; i++)s = e.trim(t[i]), a = "ui-resizable-" + s, n = e("<div class='ui-resizable-handle " + a + "'></div>"), n.css({ zIndex: r.zIndex }), "se" === s && n.addClass("ui-icon ui-icon-gripsmall-diagonal-se"), this.handles[s] = ".ui-resizable-" + s, this.element.append(n); this._renderAxis = function (t) { var i, s, n, a; t = t || this.element; for (i in this.handles) this.handles[i].constructor === String ? this.handles[i] = this.element.children(this.handles[i]).first().show() : (this.handles[i].jquery || this.handles[i].nodeType) && (this.handles[i] = e(this.handles[i]), this._on(this.handles[i], { mousedown: o._mouseDown })), this.elementIsWrapper && this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i) && (s = e(this.handles[i], this.element), a = /sw|ne|nw|se|n|s/.test(i) ? s.outerHeight() : s.outerWidth(), n = ["padding", /ne|nw|n/.test(i) ? "Top" : /se|sw|s/.test(i) ? "Bottom" : /^e$/.test(i) ? "Right" : "Left"].join(""), t.css(n, a), this._proportionallyResize()), this._handles = this._handles.add(this.handles[i]) }, this._renderAxis(this.element), this._handles = this._handles.add(this.element.find(".ui-resizable-handle")), this._handles.disableSelection(), this._handles.mouseover(function () { o.resizing || (this.className && (n = this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)), o.axis = n && n[1] ? n[1] : "se") }), r.autoHide && (this._handles.hide(), e(this.element).addClass("ui-resizable-autohide").mouseenter(function () { r.disabled || (e(this).removeClass("ui-resizable-autohide"), o._handles.show()) }).mouseleave(function () { r.disabled || o.resizing || (e(this).addClass("ui-resizable-autohide"), o._handles.hide()) })), this._mouseInit() }, _destroy: function () { this._mouseDestroy(); var t, i = function (t) { e(t).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").removeData("ui-resizable").unbind(".resizable").find(".ui-resizable-handle").remove() }; return this.elementIsWrapper && (i(this.element), t = this.element, this.originalElement.css({ position: t.css("position"), width: t.outerWidth(), height: t.outerHeight(), top: t.css("top"), left: t.css("left") }).insertAfter(t), t.remove()), this.originalElement.css("resize", this.originalResizeStyle), i(this.originalElement), this }, _mouseCapture: function (t) { var i, s, n = !1; for (i in this.handles) s = e(this.handles[i])[0], (s === t.target || e.contains(s, t.target)) && (n = !0); return !this.options.disabled && n }, _mouseStart: function (t) { var i, s, n, a = this.options, o = this.element; return this.resizing = !0, this._renderProxy(), i = this._num(this.helper.css("left")), s = this._num(this.helper.css("top")), a.containment && (i += e(a.containment).scrollLeft() || 0, s += e(a.containment).scrollTop() || 0), this.offset = this.helper.offset(), this.position = { left: i, top: s }, this.size = this._helper ? { width: this.helper.width(), height: this.helper.height() } : { width: o.width(), height: o.height() }, this.originalSize = this._helper ? { width: o.outerWidth(), height: o.outerHeight() } : { width: o.width(), height: o.height() }, this.sizeDiff = { width: o.outerWidth() - o.width(), height: o.outerHeight() - o.height() }, this.originalPosition = { left: i, top: s }, this.originalMousePosition = { left: t.pageX, top: t.pageY }, this.aspectRatio = "number" == typeof a.aspectRatio ? a.aspectRatio : this.originalSize.width / this.originalSize.height || 1, n = e(".ui-resizable-" + this.axis).css("cursor"), e("body").css("cursor", "auto" === n ? this.axis + "-resize" : n), o.addClass("ui-resizable-resizing"), this._propagate("start", t), !0 }, _mouseDrag: function (t) { var i, s, n = this.originalMousePosition, a = this.axis, o = t.pageX - n.left || 0, r = t.pageY - n.top || 0, h = this._change[a]; return this._updatePrevProperties(), h ? (i = h.apply(this, [t, o, r]), this._updateVirtualBoundaries(t.shiftKey), (this._aspectRatio || t.shiftKey) && (i = this._updateRatio(i, t)), i = this._respectSize(i, t), this._updateCache(i), this._propagate("resize", t), s = this._applyChanges(), !this._helper && this._proportionallyResizeElements.length && this._proportionallyResize(), e.isEmptyObject(s) || (this._updatePrevProperties(), this._trigger("resize", t, this.ui()), this._applyChanges()), !1) : !1 }, _mouseStop: function (t) { this.resizing = !1; var i, s, n, a, o, r, h, l = this.options, u = this; return this._helper && (i = this._proportionallyResizeElements, s = i.length && /textarea/i.test(i[0].nodeName), n = s && this._hasScroll(i[0], "left") ? 0 : u.sizeDiff.height, a = s ? 0 : u.sizeDiff.width, o = { width: u.helper.width() - a, height: u.helper.height() - n }, r = parseInt(u.element.css("left"), 10) + (u.position.left - u.originalPosition.left) || null, h = parseInt(u.element.css("top"), 10) + (u.position.top - u.originalPosition.top) || null, l.animate || this.element.css(e.extend(o, { top: h, left: r })), u.helper.height(u.size.height), u.helper.width(u.size.width), this._helper && !l.animate && this._proportionallyResize()), e("body").css("cursor", "auto"), this.element.removeClass("ui-resizable-resizing"), this._propagate("stop", t), this._helper && this.helper.remove(), !1 }, _updatePrevProperties: function () { this.prevPosition = { top: this.position.top, left: this.position.left }, this.prevSize = { width: this.size.width, height: this.size.height } }, _applyChanges: function () { var e = {}; return this.position.top !== this.prevPosition.top && (e.top = this.position.top + "px"), this.position.left !== this.prevPosition.left && (e.left = this.position.left + "px"), this.size.width !== this.prevSize.width && (e.width = this.size.width + "px"), this.size.height !== this.prevSize.height && (e.height = this.size.height + "px"), this.helper.css(e), e }, _updateVirtualBoundaries: function (e) { var t, i, s, n, a, o = this.options; a = { minWidth: this._isNumber(o.minWidth) ? o.minWidth : 0, maxWidth: this._isNumber(o.maxWidth) ? o.maxWidth : 1 / 0, minHeight: this._isNumber(o.minHeight) ? o.minHeight : 0, maxHeight: this._isNumber(o.maxHeight) ? o.maxHeight : 1 / 0 }, (this._aspectRatio || e) && (t = a.minHeight * this.aspectRatio, s = a.minWidth / this.aspectRatio, i = a.maxHeight * this.aspectRatio, n = a.maxWidth / this.aspectRatio, t > a.minWidth && (a.minWidth = t), s > a.minHeight && (a.minHeight = s), a.maxWidth > i && (a.maxWidth = i), a.maxHeight > n && (a.maxHeight = n)), this._vBoundaries = a }, _updateCache: function (e) { this.offset = this.helper.offset(), this._isNumber(e.left) && (this.position.left = e.left), this._isNumber(e.top) && (this.position.top = e.top), this._isNumber(e.height) && (this.size.height = e.height), this._isNumber(e.width) && (this.size.width = e.width) }, _updateRatio: function (e) { var t = this.position, i = this.size, s = this.axis; return this._isNumber(e.height) ? e.width = e.height * this.aspectRatio : this._isNumber(e.width) && (e.height = e.width / this.aspectRatio), "sw" === s && (e.left = t.left + (i.width - e.width), e.top = null), "nw" === s && (e.top = t.top + (i.height - e.height), e.left = t.left + (i.width - e.width)), e }, _respectSize: function (e) { var t = this._vBoundaries, i = this.axis, s = this._isNumber(e.width) && t.maxWidth && t.maxWidth < e.width, n = this._isNumber(e.height) && t.maxHeight && t.maxHeight < e.height, a = this._isNumber(e.width) && t.minWidth && t.minWidth > e.width, o = this._isNumber(e.height) && t.minHeight && t.minHeight > e.height, r = this.originalPosition.left + this.originalSize.width, h = this.position.top + this.size.height, l = /sw|nw|w/.test(i), u = /nw|ne|n/.test(i); return a && (e.width = t.minWidth), o && (e.height = t.minHeight), s && (e.width = t.maxWidth), n && (e.height = t.maxHeight), a && l && (e.left = r - t.minWidth), s && l && (e.left = r - t.maxWidth), o && u && (e.top = h - t.minHeight), n && u && (e.top = h - t.maxHeight), e.width || e.height || e.left || !e.top ? e.width || e.height || e.top || !e.left || (e.left = null) : e.top = null, e }, _getPaddingPlusBorderDimensions: function (e) { for (var t = 0, i = [], s = [e.css("borderTopWidth"), e.css("borderRightWidth"), e.css("borderBottomWidth"), e.css("borderLeftWidth")], n = [e.css("paddingTop"), e.css("paddingRight"), e.css("paddingBottom"), e.css("paddingLeft")]; 4 > t; t++)i[t] = parseInt(s[t], 10) || 0, i[t] += parseInt(n[t], 10) || 0; return { height: i[0] + i[2], width: i[1] + i[3] } }, _proportionallyResize: function () { if (this._proportionallyResizeElements.length) for (var e, t = 0, i = this.helper || this.element; this._proportionallyResizeElements.length > t; t++)e = this._proportionallyResizeElements[t], this.outerDimensions || (this.outerDimensions = this._getPaddingPlusBorderDimensions(e)), e.css({ height: i.height() - this.outerDimensions.height || 0, width: i.width() - this.outerDimensions.width || 0 }) }, _renderProxy: function () { var t = this.element, i = this.options; this.elementOffset = t.offset(), this._helper ? (this.helper = this.helper || e("<div style='overflow:hidden;'></div>"), this.helper.addClass(this._helper).css({ width: this.element.outerWidth() - 1, height: this.element.outerHeight() - 1, position: "absolute", left: this.elementOffset.left + "px", top: this.elementOffset.top + "px", zIndex: ++i.zIndex }), this.helper.appendTo("body").disableSelection()) : this.helper = this.element }, _change: { e: function (e, t) { return { width: this.originalSize.width + t } }, w: function (e, t) { var i = this.originalSize, s = this.originalPosition; return { left: s.left + t, width: i.width - t } }, n: function (e, t, i) { var s = this.originalSize, n = this.originalPosition; return { top: n.top + i, height: s.height - i } }, s: function (e, t, i) { return { height: this.originalSize.height + i } }, se: function (t, i, s) { return e.extend(this._change.s.apply(this, arguments), this._change.e.apply(this, [t, i, s])) }, sw: function (t, i, s) { return e.extend(this._change.s.apply(this, arguments), this._change.w.apply(this, [t, i, s])) }, ne: function (t, i, s) { return e.extend(this._change.n.apply(this, arguments), this._change.e.apply(this, [t, i, s])) }, nw: function (t, i, s) { return e.extend(this._change.n.apply(this, arguments), this._change.w.apply(this, [t, i, s])) } }, _propagate: function (t, i) { e.ui.plugin.call(this, t, [i, this.ui()]), "resize" !== t && this._trigger(t, i, this.ui()) }, plugins: {}, ui: function () { return { originalElement: this.originalElement, element: this.element, helper: this.helper, position: this.position, size: this.size, originalSize: this.originalSize, originalPosition: this.originalPosition } } }), e.ui.plugin.add("resizable", "animate", { stop: function (t) { var i = e(this).resizable("instance"), s = i.options, n = i._proportionallyResizeElements, a = n.length && /textarea/i.test(n[0].nodeName), o = a && i._hasScroll(n[0], "left") ? 0 : i.sizeDiff.height, r = a ? 0 : i.sizeDiff.width, h = { width: i.size.width - r, height: i.size.height - o }, l = parseInt(i.element.css("left"), 10) + (i.position.left - i.originalPosition.left) || null, u = parseInt(i.element.css("top"), 10) + (i.position.top - i.originalPosition.top) || null; i.element.animate(e.extend(h, u && l ? { top: u, left: l } : {}), { duration: s.animateDuration, easing: s.animateEasing, step: function () { var s = { width: parseInt(i.element.css("width"), 10), height: parseInt(i.element.css("height"), 10), top: parseInt(i.element.css("top"), 10), left: parseInt(i.element.css("left"), 10) }; n && n.length && e(n[0]).css({ width: s.width, height: s.height }), i._updateCache(s), i._propagate("resize", t) } }) } }), e.ui.plugin.add("resizable", "containment", { start: function () { var t, i, s, n, a, o, r, h = e(this).resizable("instance"), l = h.options, u = h.element, d = l.containment, c = d instanceof e ? d.get(0) : /parent/.test(d) ? u.parent().get(0) : d; c && (h.containerElement = e(c), /document/.test(d) || d === document ? (h.containerOffset = { left: 0, top: 0 }, h.containerPosition = { left: 0, top: 0 }, h.parentData = { element: e(document), left: 0, top: 0, width: e(document).width(), height: e(document).height() || document.body.parentNode.scrollHeight }) : (t = e(c), i = [], e(["Top", "Right", "Left", "Bottom"]).each(function (e, s) { i[e] = h._num(t.css("padding" + s)) }), h.containerOffset = t.offset(), h.containerPosition = t.position(), h.containerSize = { height: t.innerHeight() - i[3], width: t.innerWidth() - i[1] }, s = h.containerOffset, n = h.containerSize.height, a = h.containerSize.width, o = h._hasScroll(c, "left") ? c.scrollWidth : a, r = h._hasScroll(c) ? c.scrollHeight : n, h.parentData = { element: c, left: s.left, top: s.top, width: o, height: r })) }, resize: function (t) { var i, s, n, a, o = e(this).resizable("instance"), r = o.options, h = o.containerOffset, l = o.position, u = o._aspectRatio || t.shiftKey, d = { top: 0, left: 0 }, c = o.containerElement, p = !0; c[0] !== document && /static/.test(c.css("position")) && (d = h), l.left < (o._helper ? h.left : 0) && (o.size.width = o.size.width + (o._helper ? o.position.left - h.left : o.position.left - d.left), u && (o.size.height = o.size.width / o.aspectRatio, p = !1), o.position.left = r.helper ? h.left : 0), l.top < (o._helper ? h.top : 0) && (o.size.height = o.size.height + (o._helper ? o.position.top - h.top : o.position.top), u && (o.size.width = o.size.height * o.aspectRatio, p = !1), o.position.top = o._helper ? h.top : 0), n = o.containerElement.get(0) === o.element.parent().get(0), a = /relative|absolute/.test(o.containerElement.css("position")), n && a ? (o.offset.left = o.parentData.left + o.position.left, o.offset.top = o.parentData.top + o.position.top) : (o.offset.left = o.element.offset().left, o.offset.top = o.element.offset().top), i = Math.abs(o.sizeDiff.width + (o._helper ? o.offset.left - d.left : o.offset.left - h.left)), s = Math.abs(o.sizeDiff.height + (o._helper ? o.offset.top - d.top : o.offset.top - h.top)), i + o.size.width >= o.parentData.width && (o.size.width = o.parentData.width - i, u && (o.size.height = o.size.width / o.aspectRatio, p = !1)), s + o.size.height >= o.parentData.height && (o.size.height = o.parentData.height - s, u && (o.size.width = o.size.height * o.aspectRatio, p = !1)), p || (o.position.left = o.prevPosition.left, o.position.top = o.prevPosition.top, o.size.width = o.prevSize.width, o.size.height = o.prevSize.height) }, stop: function () { var t = e(this).resizable("instance"), i = t.options, s = t.containerOffset, n = t.containerPosition, a = t.containerElement, o = e(t.helper), r = o.offset(), h = o.outerWidth() - t.sizeDiff.width, l = o.outerHeight() - t.sizeDiff.height; t._helper && !i.animate && /relative/.test(a.css("position")) && e(this).css({ left: r.left - n.left - s.left, width: h, height: l }), t._helper && !i.animate && /static/.test(a.css("position")) && e(this).css({ left: r.left - n.left - s.left, width: h, height: l }) } }), e.ui.plugin.add("resizable", "alsoResize", { start: function () { var t = e(this).resizable("instance"), i = t.options; e(i.alsoResize).each(function () { var t = e(this); t.data("ui-resizable-alsoresize", { width: parseInt(t.width(), 10), height: parseInt(t.height(), 10), left: parseInt(t.css("left"), 10), top: parseInt(t.css("top"), 10) }) }) }, resize: function (t, i) { var s = e(this).resizable("instance"), n = s.options, a = s.originalSize, o = s.originalPosition, r = { height: s.size.height - a.height || 0, width: s.size.width - a.width || 0, top: s.position.top - o.top || 0, left: s.position.left - o.left || 0 }; e(n.alsoResize).each(function () { var t = e(this), s = e(this).data("ui-resizable-alsoresize"), n = {}, a = t.parents(i.originalElement[0]).length ? ["width", "height"] : ["width", "height", "top", "left"]; e.each(a, function (e, t) { var i = (s[t] || 0) + (r[t] || 0); i && i >= 0 && (n[t] = i || null) }), t.css(n) }) }, stop: function () { e(this).removeData("resizable-alsoresize") } }), e.ui.plugin.add("resizable", "ghost", { start: function () { var t = e(this).resizable("instance"), i = t.options, s = t.size; t.ghost = t.originalElement.clone(), t.ghost.css({ opacity: .25, display: "block", position: "relative", height: s.height, width: s.width, margin: 0, left: 0, top: 0 }).addClass("ui-resizable-ghost").addClass("string" == typeof i.ghost ? i.ghost : ""), t.ghost.appendTo(t.helper) }, resize: function () { var t = e(this).resizable("instance"); t.ghost && t.ghost.css({ position: "relative", height: t.size.height, width: t.size.width }) }, stop: function () { var t = e(this).resizable("instance"); t.ghost && t.helper && t.helper.get(0).removeChild(t.ghost.get(0)) } }), e.ui.plugin.add("resizable", "grid", { resize: function () { var t, i = e(this).resizable("instance"), s = i.options, n = i.size, a = i.originalSize, o = i.originalPosition, r = i.axis, h = "number" == typeof s.grid ? [s.grid, s.grid] : s.grid, l = h[0] || 1, u = h[1] || 1, d = Math.round((n.width - a.width) / l) * l, c = Math.round((n.height - a.height) / u) * u, p = a.width + d, f = a.height + c, m = s.maxWidth && p > s.maxWidth, g = s.maxHeight && f > s.maxHeight, v = s.minWidth && s.minWidth > p, y = s.minHeight && s.minHeight > f; s.grid = h, v && (p += l), y && (f += u), m && (p -= l), g && (f -= u), /^(se|s|e)$/.test(r) ? (i.size.width = p, i.size.height = f) : /^(ne)$/.test(r) ? (i.size.width = p, i.size.height = f, i.position.top = o.top - c) : /^(sw)$/.test(r) ? (i.size.width = p, i.size.height = f, i.position.left = o.left - d) : ((0 >= f - u || 0 >= p - l) && (t = i._getPaddingPlusBorderDimensions(this)), f - u > 0 ? (i.size.height = f, i.position.top = o.top - c) : (f = u - t.height, i.size.height = f, i.position.top = o.top + a.height - f), p - l > 0 ? (i.size.width = p, i.position.left = o.left - d) : (p = l - t.width, i.size.width = p, i.position.left = o.left + a.width - p)) } }), e.ui.resizable, e.widget("ui.selectable", e.ui.mouse, { version: "1.11.4", options: { appendTo: "body", autoRefresh: !0, distance: 0, filter: "*", tolerance: "touch", selected: null, selecting: null, start: null, stop: null, unselected: null, unselecting: null }, _create: function () { var t, i = this; this.element.addClass("ui-selectable"), this.dragged = !1, this.refresh = function () { t = e(i.options.filter, i.element[0]), t.addClass("ui-selectee"), t.each(function () { var t = e(this), i = t.offset(); e.data(this, "selectable-item", { element: this, $element: t, left: i.left, top: i.top, right: i.left + t.outerWidth(), bottom: i.top + t.outerHeight(), startselected: !1, selected: t.hasClass("ui-selected"), selecting: t.hasClass("ui-selecting"), unselecting: t.hasClass("ui-unselecting") }) }) }, this.refresh(), this.selectees = t.addClass("ui-selectee"), this._mouseInit(), this.helper = e("<div class='ui-selectable-helper'></div>") }, _destroy: function () { this.selectees.removeClass("ui-selectee").removeData("selectable-item"), this.element.removeClass("ui-selectable ui-selectable-disabled"), this._mouseDestroy() }, _mouseStart: function (t) { var i = this, s = this.options; this.opos = [t.pageX, t.pageY], this.options.disabled || (this.selectees = e(s.filter, this.element[0]), this._trigger("start", t), e(s.appendTo).append(this.helper), this.helper.css({ left: t.pageX, top: t.pageY, width: 0, height: 0 }), s.autoRefresh && this.refresh(), this.selectees.filter(".ui-selected").each(function () { var s = e.data(this, "selectable-item"); s.startselected = !0, t.metaKey || t.ctrlKey || (s.$element.removeClass("ui-selected"), s.selected = !1, s.$element.addClass("ui-unselecting"), s.unselecting = !0, i._trigger("unselecting", t, { unselecting: s.element })) }), e(t.target).parents().addBack().each(function () { var s, n = e.data(this, "selectable-item"); return n ? (s = !t.metaKey && !t.ctrlKey || !n.$element.hasClass("ui-selected"), n.$element.removeClass(s ? "ui-unselecting" : "ui-selected").addClass(s ? "ui-selecting" : "ui-unselecting"), n.unselecting = !s, n.selecting = s, n.selected = s, s ? i._trigger("selecting", t, { selecting: n.element }) : i._trigger("unselecting", t, { unselecting: n.element }), !1) : void 0 })) }, _mouseDrag: function (t) { if (this.dragged = !0, !this.options.disabled) { var i, s = this, n = this.options, a = this.opos[0], o = this.opos[1], r = t.pageX, h = t.pageY; return a > r && (i = r, r = a, a = i), o > h && (i = h, h = o, o = i), this.helper.css({ left: a, top: o, width: r - a, height: h - o }), this.selectees.each(function () { var i = e.data(this, "selectable-item"), l = !1; i && i.element !== s.element[0] && ("touch" === n.tolerance ? l = !(i.left > r || a > i.right || i.top > h || o > i.bottom) : "fit" === n.tolerance && (l = i.left > a && r > i.right && i.top > o && h > i.bottom), l ? (i.selected && (i.$element.removeClass("ui-selected"), i.selected = !1), i.unselecting && (i.$element.removeClass("ui-unselecting"), i.unselecting = !1), i.selecting || (i.$element.addClass("ui-selecting"), i.selecting = !0, s._trigger("selecting", t, { selecting: i.element }))) : (i.selecting && ((t.metaKey || t.ctrlKey) && i.startselected ? (i.$element.removeClass("ui-selecting"), i.selecting = !1, i.$element.addClass("ui-selected"), i.selected = !0) : (i.$element.removeClass("ui-selecting"), i.selecting = !1, i.startselected && (i.$element.addClass("ui-unselecting"), i.unselecting = !0), s._trigger("unselecting", t, { unselecting: i.element }))), i.selected && (t.metaKey || t.ctrlKey || i.startselected || (i.$element.removeClass("ui-selected"), i.selected = !1, i.$element.addClass("ui-unselecting"), i.unselecting = !0, s._trigger("unselecting", t, { unselecting: i.element }))))) }), !1 } }, _mouseStop: function (t) { var i = this; return this.dragged = !1, e(".ui-unselecting", this.element[0]).each(function () { var s = e.data(this, "selectable-item"); s.$element.removeClass("ui-unselecting"), s.unselecting = !1, s.startselected = !1, i._trigger("unselected", t, { unselected: s.element }) }), e(".ui-selecting", this.element[0]).each(function () { var s = e.data(this, "selectable-item"); s.$element.removeClass("ui-selecting").addClass("ui-selected"), s.selecting = !1, s.selected = !0, s.startselected = !0, i._trigger("selected", t, { selected: s.element }) }), this._trigger("stop", t), this.helper.remove(), !1 } }), e.widget("ui.sortable", e.ui.mouse, { version: "1.11.4", widgetEventPrefix: "sort", ready: !1, options: { appendTo: "parent", axis: !1, connectWith: !1, containment: !1, cursor: "auto", cursorAt: !1, dropOnEmpty: !0, forcePlaceholderSize: !1, forceHelperSize: !1, grid: !1, handle: !1, helper: "original", items: "> *", opacity: !1, placeholder: !1, revert: !1, scroll: !0, scrollSensitivity: 20, scrollSpeed: 20, scope: "default", tolerance: "intersect", zIndex: 1e3, activate: null, beforeStop: null, change: null, deactivate: null, out: null, over: null, receive: null, remove: null, sort: null, start: null, stop: null, update: null }, _isOverAxis: function (e, t, i) { return e >= t && t + i > e }, _isFloating: function (e) { return /left|right/.test(e.css("float")) || /inline|table-cell/.test(e.css("display")) }, _create: function () { this.containerCache = {}, this.element.addClass("ui-sortable"), this.refresh(), this.offset = this.element.offset(), this._mouseInit(), this._setHandleClassName(), this.ready = !0 }, _setOption: function (e, t) { this._super(e, t), "handle" === e && this._setHandleClassName() }, _setHandleClassName: function () { this.element.find(".ui-sortable-handle").removeClass("ui-sortable-handle"), e.each(this.items, function () { (this.instance.options.handle ? this.item.find(this.instance.options.handle) : this.item).addClass("ui-sortable-handle") }) }, _destroy: function () { this.element.removeClass("ui-sortable ui-sortable-disabled").find(".ui-sortable-handle").removeClass("ui-sortable-handle"), this._mouseDestroy(); for (var e = this.items.length - 1; e >= 0; e--)this.items[e].item.removeData(this.widgetName + "-item"); return this }, _mouseCapture: function (t, i) { var s = null, n = !1, a = this; return this.reverting ? !1 : this.options.disabled || "static" === this.options.type ? !1 : (this._refreshItems(t), e(t.target).parents().each(function () { return e.data(this, a.widgetName + "-item") === a ? (s = e(this), !1) : void 0 }), e.data(t.target, a.widgetName + "-item") === a && (s = e(t.target)), s ? !this.options.handle || i || (e(this.options.handle, s).find("*").addBack().each(function () { this === t.target && (n = !0) }), n) ? (this.currentItem = s, this._removeCurrentsFromItems(), !0) : !1 : !1) }, _mouseStart: function (t, i, s) { var n, a, o = this.options; if (this.currentContainer = this, this.refreshPositions(), this.helper = this._createHelper(t), this._cacheHelperProportions(), this._cacheMargins(), this.scrollParent = this.helper.scrollParent(), this.offset = this.currentItem.offset(), this.offset = { top: this.offset.top - this.margins.top, left: this.offset.left - this.margins.left }, e.extend(this.offset, { click: { left: t.pageX - this.offset.left, top: t.pageY - this.offset.top }, parent: this._getParentOffset(), relative: this._getRelativeOffset() }), this.helper.css("position", "absolute"), this.cssPosition = this.helper.css("position"), this.originalPosition = this._generatePosition(t), this.originalPageX = t.pageX, this.originalPageY = t.pageY, o.cursorAt && this._adjustOffsetFromHelper(o.cursorAt), this.domPosition = { prev: this.currentItem.prev()[0], parent: this.currentItem.parent()[0] }, this.helper[0] !== this.currentItem[0] && this.currentItem.hide(), this._createPlaceholder(), o.containment && this._setContainment(), o.cursor && "auto" !== o.cursor && (a = this.document.find("body"), this.storedCursor = a.css("cursor"), a.css("cursor", o.cursor), this.storedStylesheet = e("<style>*{ cursor: " + o.cursor + " !important; }</style>").appendTo(a)), o.opacity && (this.helper.css("opacity") && (this._storedOpacity = this.helper.css("opacity")), this.helper.css("opacity", o.opacity)), o.zIndex && (this.helper.css("zIndex") && (this._storedZIndex = this.helper.css("zIndex")), this.helper.css("zIndex", o.zIndex)), this.scrollParent[0] !== this.document[0] && "HTML" !== this.scrollParent[0].tagName && (this.overflowOffset = this.scrollParent.offset()), this._trigger("start", t, this._uiHash()), this._preserveHelperProportions || this._cacheHelperProportions(), !s) for (n = this.containers.length - 1; n >= 0; n--)this.containers[n]._trigger("activate", t, this._uiHash(this)); return e.ui.ddmanager && (e.ui.ddmanager.current = this), e.ui.ddmanager && !o.dropBehaviour && e.ui.ddmanager.prepareOffsets(this, t), this.dragging = !0, this.helper.addClass("ui-sortable-helper"), this._mouseDrag(t), !0 }, _mouseDrag: function (t) { var i, s, n, a, o = this.options, r = !1; for (this.position = this._generatePosition(t), this.positionAbs = this._convertPositionTo("absolute"), this.lastPositionAbs || (this.lastPositionAbs = this.positionAbs), this.options.scroll && (this.scrollParent[0] !== this.document[0] && "HTML" !== this.scrollParent[0].tagName ? (this.overflowOffset.top + this.scrollParent[0].offsetHeight - t.pageY < o.scrollSensitivity ? this.scrollParent[0].scrollTop = r = this.scrollParent[0].scrollTop + o.scrollSpeed : t.pageY - this.overflowOffset.top < o.scrollSensitivity && (this.scrollParent[0].scrollTop = r = this.scrollParent[0].scrollTop - o.scrollSpeed), this.overflowOffset.left + this.scrollParent[0].offsetWidth - t.pageX < o.scrollSensitivity ? this.scrollParent[0].scrollLeft = r = this.scrollParent[0].scrollLeft + o.scrollSpeed : t.pageX - this.overflowOffset.left < o.scrollSensitivity && (this.scrollParent[0].scrollLeft = r = this.scrollParent[0].scrollLeft - o.scrollSpeed)) : (t.pageY - this.document.scrollTop() < o.scrollSensitivity ? r = this.document.scrollTop(this.document.scrollTop() - o.scrollSpeed) : this.window.height() - (t.pageY - this.document.scrollTop()) < o.scrollSensitivity && (r = this.document.scrollTop(this.document.scrollTop() + o.scrollSpeed)), t.pageX - this.document.scrollLeft() < o.scrollSensitivity ? r = this.document.scrollLeft(this.document.scrollLeft() - o.scrollSpeed) : this.window.width() - (t.pageX - this.document.scrollLeft()) < o.scrollSensitivity && (r = this.document.scrollLeft(this.document.scrollLeft() + o.scrollSpeed))), r !== !1 && e.ui.ddmanager && !o.dropBehaviour && e.ui.ddmanager.prepareOffsets(this, t)), this.positionAbs = this._convertPositionTo("absolute"), this.options.axis && "y" === this.options.axis || (this.helper[0].style.left = this.position.left + "px"), this.options.axis && "x" === this.options.axis || (this.helper[0].style.top = this.position.top + "px"), i = this.items.length - 1; i >= 0; i--)if (s = this.items[i], n = s.item[0], a = this._intersectsWithPointer(s), a && s.instance === this.currentContainer && n !== this.currentItem[0] && this.placeholder[1 === a ? "next" : "prev"]()[0] !== n && !e.contains(this.placeholder[0], n) && ("semi-dynamic" === this.options.type ? !e.contains(this.element[0], n) : !0)) { if (this.direction = 1 === a ? "down" : "up", "pointer" !== this.options.tolerance && !this._intersectsWithSides(s)) break; this._rearrange(t, s), this._trigger("change", t, this._uiHash()); break } return this._contactContainers(t), e.ui.ddmanager && e.ui.ddmanager.drag(this, t), this._trigger("sort", t, this._uiHash()), this.lastPositionAbs = this.positionAbs, !1 }, _mouseStop: function (t, i) { if (t) { if (e.ui.ddmanager && !this.options.dropBehaviour && e.ui.ddmanager.drop(this, t), this.options.revert) { var s = this, n = this.placeholder.offset(), a = this.options.axis, o = {}; a && "x" !== a || (o.left = n.left - this.offset.parent.left - this.margins.left + (this.offsetParent[0] === this.document[0].body ? 0 : this.offsetParent[0].scrollLeft)), a && "y" !== a || (o.top = n.top - this.offset.parent.top - this.margins.top + (this.offsetParent[0] === this.document[0].body ? 0 : this.offsetParent[0].scrollTop)), this.reverting = !0, e(this.helper).animate(o, parseInt(this.options.revert, 10) || 500, function () { s._clear(t) }) } else this._clear(t, i); return !1 } }, cancel: function () { if (this.dragging) { this._mouseUp({ target: null }), "original" === this.options.helper ? this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper") : this.currentItem.show(); for (var t = this.containers.length - 1; t >= 0; t--)this.containers[t]._trigger("deactivate", null, this._uiHash(this)), this.containers[t].containerCache.over && (this.containers[t]._trigger("out", null, this._uiHash(this)), this.containers[t].containerCache.over = 0) } return this.placeholder && (this.placeholder[0].parentNode && this.placeholder[0].parentNode.removeChild(this.placeholder[0]), "original" !== this.options.helper && this.helper && this.helper[0].parentNode && this.helper.remove(), e.extend(this, { helper: null, dragging: !1, reverting: !1, _noFinalSort: null }), this.domPosition.prev ? e(this.domPosition.prev).after(this.currentItem) : e(this.domPosition.parent).prepend(this.currentItem)), this }, serialize: function (t) { var i = this._getItemsAsjQuery(t && t.connected), s = []; return t = t || {}, e(i).each(function () { var i = (e(t.item || this).attr(t.attribute || "id") || "").match(t.expression || /(.+)[\-=_](.+)/); i && s.push((t.key || i[1] + "[]") + "=" + (t.key && t.expression ? i[1] : i[2])) }), !s.length && t.key && s.push(t.key + "="), s.join("&") }, toArray: function (t) { var i = this._getItemsAsjQuery(t && t.connected), s = []; return t = t || {}, i.each(function () { s.push(e(t.item || this).attr(t.attribute || "id") || "") }), s }, _intersectsWith: function (e) { var t = this.positionAbs.left, i = t + this.helperProportions.width, s = this.positionAbs.top, n = s + this.helperProportions.height, a = e.left, o = a + e.width, r = e.top, h = r + e.height, l = this.offset.click.top, u = this.offset.click.left, d = "x" === this.options.axis || s + l > r && h > s + l, c = "y" === this.options.axis || t + u > a && o > t + u, p = d && c; return "pointer" === this.options.tolerance || this.options.forcePointerForContainers || "pointer" !== this.options.tolerance && this.helperProportions[this.floating ? "width" : "height"] > e[this.floating ? "width" : "height"] ? p : t + this.helperProportions.width / 2 > a && o > i - this.helperProportions.width / 2 && s + this.helperProportions.height / 2 > r && h > n - this.helperProportions.height / 2 }, _intersectsWithPointer: function (e) { var t = "x" === this.options.axis || this._isOverAxis(this.positionAbs.top + this.offset.click.top, e.top, e.height), i = "y" === this.options.axis || this._isOverAxis(this.positionAbs.left + this.offset.click.left, e.left, e.width), s = t && i, n = this._getDragVerticalDirection(), a = this._getDragHorizontalDirection(); return s ? this.floating ? a && "right" === a || "down" === n ? 2 : 1 : n && ("down" === n ? 2 : 1) : !1 }, _intersectsWithSides: function (e) { var t = this._isOverAxis(this.positionAbs.top + this.offset.click.top, e.top + e.height / 2, e.height), i = this._isOverAxis(this.positionAbs.left + this.offset.click.left, e.left + e.width / 2, e.width), s = this._getDragVerticalDirection(), n = this._getDragHorizontalDirection(); return this.floating && n ? "right" === n && i || "left" === n && !i : s && ("down" === s && t || "up" === s && !t) }, _getDragVerticalDirection: function () { var e = this.positionAbs.top - this.lastPositionAbs.top; return 0 !== e && (e > 0 ? "down" : "up") }, _getDragHorizontalDirection: function () { var e = this.positionAbs.left - this.lastPositionAbs.left; return 0 !== e && (e > 0 ? "right" : "left") }, refresh: function (e) { return this._refreshItems(e), this._setHandleClassName(), this.refreshPositions(), this }, _connectWith: function () { var e = this.options; return e.connectWith.constructor === String ? [e.connectWith] : e.connectWith }, _getItemsAsjQuery: function (t) { function i() { r.push(this) } var s, n, a, o, r = [], h = [], l = this._connectWith(); if (l && t) for (s = l.length - 1; s >= 0; s--)for (a = e(l[s], this.document[0]), n = a.length - 1; n >= 0; n--)o = e.data(a[n], this.widgetFullName), o && o !== this && !o.options.disabled && h.push([e.isFunction(o.options.items) ? o.options.items.call(o.element) : e(o.options.items, o.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"), o]); for (h.push([e.isFunction(this.options.items) ? this.options.items.call(this.element, null, { options: this.options, item: this.currentItem }) : e(this.options.items, this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"), this]), s = h.length - 1; s >= 0; s--)h[s][0].each(i); return e(r) }, _removeCurrentsFromItems: function () { var t = this.currentItem.find(":data(" + this.widgetName + "-item)"); this.items = e.grep(this.items, function (e) { for (var i = 0; t.length > i; i++)if (t[i] === e.item[0]) return !1; return !0 }) }, _refreshItems: function (t) { this.items = [], this.containers = [this]; var i, s, n, a, o, r, h, l, u = this.items, d = [[e.isFunction(this.options.items) ? this.options.items.call(this.element[0], t, { item: this.currentItem }) : e(this.options.items, this.element), this]], c = this._connectWith(); if (c && this.ready) for (i = c.length - 1; i >= 0; i--)for (n = e(c[i], this.document[0]), s = n.length - 1; s >= 0; s--)a = e.data(n[s], this.widgetFullName), a && a !== this && !a.options.disabled && (d.push([e.isFunction(a.options.items) ? a.options.items.call(a.element[0], t, { item: this.currentItem }) : e(a.options.items, a.element), a]), this.containers.push(a)); for (i = d.length - 1; i >= 0; i--)for (o = d[i][1], r = d[i][0], s = 0, l = r.length; l > s; s++)h = e(r[s]), h.data(this.widgetName + "-item", o), u.push({ item: h, instance: o, width: 0, height: 0, left: 0, top: 0 }) }, refreshPositions: function (t) { this.floating = this.items.length ? "x" === this.options.axis || this._isFloating(this.items[0].item) : !1, this.offsetParent && this.helper && (this.offset.parent = this._getParentOffset()); var i, s, n, a; for (i = this.items.length - 1; i >= 0; i--)s = this.items[i], s.instance !== this.currentContainer && this.currentContainer && s.item[0] !== this.currentItem[0] || (n = this.options.toleranceElement ? e(this.options.toleranceElement, s.item) : s.item, t || (s.width = n.outerWidth(), s.height = n.outerHeight()), a = n.offset(), s.left = a.left, s.top = a.top); if (this.options.custom && this.options.custom.refreshContainers) this.options.custom.refreshContainers.call(this); else for (i = this.containers.length - 1; i >= 0; i--)a = this.containers[i].element.offset(), this.containers[i].containerCache.left = a.left, this.containers[i].containerCache.top = a.top, this.containers[i].containerCache.width = this.containers[i].element.outerWidth(), this.containers[i].containerCache.height = this.containers[i].element.outerHeight(); return this }, _createPlaceholder: function (t) { t = t || this; var i, s = t.options; s.placeholder && s.placeholder.constructor !== String || (i = s.placeholder, s.placeholder = { element: function () { var s = t.currentItem[0].nodeName.toLowerCase(), n = e("<" + s + ">", t.document[0]).addClass(i || t.currentItem[0].className + " ui-sortable-placeholder").removeClass("ui-sortable-helper"); return "tbody" === s ? t._createTrPlaceholder(t.currentItem.find("tr").eq(0), e("<tr>", t.document[0]).appendTo(n)) : "tr" === s ? t._createTrPlaceholder(t.currentItem, n) : "img" === s && n.attr("src", t.currentItem.attr("src")), i || n.css("visibility", "hidden"), n }, update: function (e, n) { (!i || s.forcePlaceholderSize) && (n.height() || n.height(t.currentItem.innerHeight() - parseInt(t.currentItem.css("paddingTop") || 0, 10) - parseInt(t.currentItem.css("paddingBottom") || 0, 10)), n.width() || n.width(t.currentItem.innerWidth() - parseInt(t.currentItem.css("paddingLeft") || 0, 10) - parseInt(t.currentItem.css("paddingRight") || 0, 10))) } }), t.placeholder = e(s.placeholder.element.call(t.element, t.currentItem)), t.currentItem.after(t.placeholder), s.placeholder.update(t, t.placeholder) }, _createTrPlaceholder: function (t, i) { var s = this; t.children().each(function () { e("<td>&#160;</td>", s.document[0]).attr("colspan", e(this).attr("colspan") || 1).appendTo(i) }) }, _contactContainers: function (t) { var i, s, n, a, o, r, h, l, u, d, c = null, p = null; for (i = this.containers.length - 1; i >= 0; i--)if (!e.contains(this.currentItem[0], this.containers[i].element[0])) if (this._intersectsWith(this.containers[i].containerCache)) { if (c && e.contains(this.containers[i].element[0], c.element[0])) continue; c = this.containers[i], p = i } else this.containers[i].containerCache.over && (this.containers[i]._trigger("out", t, this._uiHash(this)), this.containers[i].containerCache.over = 0); if (c) if (1 === this.containers.length) this.containers[p].containerCache.over || (this.containers[p]._trigger("over", t, this._uiHash(this)), this.containers[p].containerCache.over = 1); else { for (n = 1e4, a = null, u = c.floating || this._isFloating(this.currentItem), o = u ? "left" : "top", r = u ? "width" : "height", d = u ? "clientX" : "clientY", s = this.items.length - 1; s >= 0; s--)e.contains(this.containers[p].element[0], this.items[s].item[0]) && this.items[s].item[0] !== this.currentItem[0] && (h = this.items[s].item.offset()[o], l = !1, t[d] - h > this.items[s][r] / 2 && (l = !0), n > Math.abs(t[d] - h) && (n = Math.abs(t[d] - h), a = this.items[s], this.direction = l ? "up" : "down")); if (!a && !this.options.dropOnEmpty) return; if (this.currentContainer === this.containers[p]) return this.currentContainer.containerCache.over || (this.containers[p]._trigger("over", t, this._uiHash()), this.currentContainer.containerCache.over = 1), void 0; a ? this._rearrange(t, a, null, !0) : this._rearrange(t, null, this.containers[p].element, !0), this._trigger("change", t, this._uiHash()), this.containers[p]._trigger("change", t, this._uiHash(this)), this.currentContainer = this.containers[p], this.options.placeholder.update(this.currentContainer, this.placeholder), this.containers[p]._trigger("over", t, this._uiHash(this)), this.containers[p].containerCache.over = 1 } }, _createHelper: function (t) { var i = this.options, s = e.isFunction(i.helper) ? e(i.helper.apply(this.element[0], [t, this.currentItem])) : "clone" === i.helper ? this.currentItem.clone() : this.currentItem; return s.parents("body").length || e("parent" !== i.appendTo ? i.appendTo : this.currentItem[0].parentNode)[0].appendChild(s[0]), s[0] === this.currentItem[0] && (this._storedCSS = { width: this.currentItem[0].style.width, height: this.currentItem[0].style.height, position: this.currentItem.css("position"), top: this.currentItem.css("top"), left: this.currentItem.css("left") }), (!s[0].style.width || i.forceHelperSize) && s.width(this.currentItem.width()), (!s[0].style.height || i.forceHelperSize) && s.height(this.currentItem.height()), s }, _adjustOffsetFromHelper: function (t) { "string" == typeof t && (t = t.split(" ")), e.isArray(t) && (t = { left: +t[0], top: +t[1] || 0 }), "left" in t && (this.offset.click.left = t.left + this.margins.left), "right" in t && (this.offset.click.left = this.helperProportions.width - t.right + this.margins.left), "top" in t && (this.offset.click.top = t.top + this.margins.top), "bottom" in t && (this.offset.click.top = this.helperProportions.height - t.bottom + this.margins.top) }, _getParentOffset: function () { this.offsetParent = this.helper.offsetParent(); var t = this.offsetParent.offset(); return "absolute" === this.cssPosition && this.scrollParent[0] !== this.document[0] && e.contains(this.scrollParent[0], this.offsetParent[0]) && (t.left += this.scrollParent.scrollLeft(), t.top += this.scrollParent.scrollTop()), (this.offsetParent[0] === this.document[0].body || this.offsetParent[0].tagName && "html" === this.offsetParent[0].tagName.toLowerCase() && e.ui.ie) && (t = { top: 0, left: 0 }), { top: t.top + (parseInt(this.offsetParent.css("borderTopWidth"), 10) || 0), left: t.left + (parseInt(this.offsetParent.css("borderLeftWidth"), 10) || 0) } }, _getRelativeOffset: function () { if ("relative" === this.cssPosition) { var e = this.currentItem.position(); return { top: e.top - (parseInt(this.helper.css("top"), 10) || 0) + this.scrollParent.scrollTop(), left: e.left - (parseInt(this.helper.css("left"), 10) || 0) + this.scrollParent.scrollLeft() } } return { top: 0, left: 0 } }, _cacheMargins: function () { this.margins = { left: parseInt(this.currentItem.css("marginLeft"), 10) || 0, top: parseInt(this.currentItem.css("marginTop"), 10) || 0 } }, _cacheHelperProportions: function () { this.helperProportions = { width: this.helper.outerWidth(), height: this.helper.outerHeight() } }, _setContainment: function () { var t, i, s, n = this.options; "parent" === n.containment && (n.containment = this.helper[0].parentNode), ("document" === n.containment || "window" === n.containment) && (this.containment = [0 - this.offset.relative.left - this.offset.parent.left, 0 - this.offset.relative.top - this.offset.parent.top, "document" === n.containment ? this.document.width() : this.window.width() - this.helperProportions.width - this.margins.left, ("document" === n.containment ? this.document.width() : this.window.height() || this.document[0].body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top]), /^(document|window|parent)$/.test(n.containment) || (t = e(n.containment)[0], i = e(n.containment).offset(), s = "hidden" !== e(t).css("overflow"), this.containment = [i.left + (parseInt(e(t).css("borderLeftWidth"), 10) || 0) + (parseInt(e(t).css("paddingLeft"), 10) || 0) - this.margins.left, i.top + (parseInt(e(t).css("borderTopWidth"), 10) || 0) + (parseInt(e(t).css("paddingTop"), 10) || 0) - this.margins.top, i.left + (s ? Math.max(t.scrollWidth, t.offsetWidth) : t.offsetWidth) - (parseInt(e(t).css("borderLeftWidth"), 10) || 0) - (parseInt(e(t).css("paddingRight"), 10) || 0) - this.helperProportions.width - this.margins.left, i.top + (s ? Math.max(t.scrollHeight, t.offsetHeight) : t.offsetHeight) - (parseInt(e(t).css("borderTopWidth"), 10) || 0) - (parseInt(e(t).css("paddingBottom"), 10) || 0) - this.helperProportions.height - this.margins.top]) }, _convertPositionTo: function (t, i) { i || (i = this.position); var s = "absolute" === t ? 1 : -1, n = "absolute" !== this.cssPosition || this.scrollParent[0] !== this.document[0] && e.contains(this.scrollParent[0], this.offsetParent[0]) ? this.scrollParent : this.offsetParent, a = /(html|body)/i.test(n[0].tagName); return { top: i.top + this.offset.relative.top * s + this.offset.parent.top * s - ("fixed" === this.cssPosition ? -this.scrollParent.scrollTop() : a ? 0 : n.scrollTop()) * s, left: i.left + this.offset.relative.left * s + this.offset.parent.left * s - ("fixed" === this.cssPosition ? -this.scrollParent.scrollLeft() : a ? 0 : n.scrollLeft()) * s } }, _generatePosition: function (t) { var i, s, n = this.options, a = t.pageX, o = t.pageY, r = "absolute" !== this.cssPosition || this.scrollParent[0] !== this.document[0] && e.contains(this.scrollParent[0], this.offsetParent[0]) ? this.scrollParent : this.offsetParent, h = /(html|body)/i.test(r[0].tagName); return "relative" !== this.cssPosition || this.scrollParent[0] !== this.document[0] && this.scrollParent[0] !== this.offsetParent[0] || (this.offset.relative = this._getRelativeOffset()), this.originalPosition && (this.containment && (t.pageX - this.offset.click.left < this.containment[0] && (a = this.containment[0] + this.offset.click.left), t.pageY - this.offset.click.top < this.containment[1] && (o = this.containment[1] + this.offset.click.top), t.pageX - this.offset.click.left > this.containment[2] && (a = this.containment[2] + this.offset.click.left), t.pageY - this.offset.click.top > this.containment[3] && (o = this.containment[3] + this.offset.click.top)), n.grid && (i = this.originalPageY + Math.round((o - this.originalPageY) / n.grid[1]) * n.grid[1], o = this.containment ? i - this.offset.click.top >= this.containment[1] && i - this.offset.click.top <= this.containment[3] ? i : i - this.offset.click.top >= this.containment[1] ? i - n.grid[1] : i + n.grid[1] : i, s = this.originalPageX + Math.round((a - this.originalPageX) / n.grid[0]) * n.grid[0], a = this.containment ? s - this.offset.click.left >= this.containment[0] && s - this.offset.click.left <= this.containment[2] ? s : s - this.offset.click.left >= this.containment[0] ? s - n.grid[0] : s + n.grid[0] : s)), { top: o - this.offset.click.top - this.offset.relative.top - this.offset.parent.top + ("fixed" === this.cssPosition ? -this.scrollParent.scrollTop() : h ? 0 : r.scrollTop()), left: a - this.offset.click.left - this.offset.relative.left - this.offset.parent.left + ("fixed" === this.cssPosition ? -this.scrollParent.scrollLeft() : h ? 0 : r.scrollLeft()) } }, _rearrange: function (e, t, i, s) { i ? i[0].appendChild(this.placeholder[0]) : t.item[0].parentNode.insertBefore(this.placeholder[0], "down" === this.direction ? t.item[0] : t.item[0].nextSibling), this.counter = this.counter ? ++this.counter : 1; var n = this.counter; this._delay(function () { n === this.counter && this.refreshPositions(!s) }) }, _clear: function (e, t) { function i(e, t, i) { return function (s) { i._trigger(e, s, t._uiHash(t)) } } this.reverting = !1; var s, n = []; if (!this._noFinalSort && this.currentItem.parent().length && this.placeholder.before(this.currentItem), this._noFinalSort = null, this.helper[0] === this.currentItem[0]) { for (s in this._storedCSS) ("auto" === this._storedCSS[s] || "static" === this._storedCSS[s]) && (this._storedCSS[s] = ""); this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper") } else this.currentItem.show(); for (this.fromOutside && !t && n.push(function (e) { this._trigger("receive", e, this._uiHash(this.fromOutside)) }), !this.fromOutside && this.domPosition.prev === this.currentItem.prev().not(".ui-sortable-helper")[0] && this.domPosition.parent === this.currentItem.parent()[0] || t || n.push(function (e) { this._trigger("update", e, this._uiHash()) }), this !== this.currentContainer && (t || (n.push(function (e) { this._trigger("remove", e, this._uiHash()) }), n.push(function (e) { return function (t) { e._trigger("receive", t, this._uiHash(this)) } }.call(this, this.currentContainer)), n.push(function (e) { return function (t) { e._trigger("update", t, this._uiHash(this)) } }.call(this, this.currentContainer)))), s = this.containers.length - 1; s >= 0; s--)t || n.push(i("deactivate", this, this.containers[s])), this.containers[s].containerCache.over && (n.push(i("out", this, this.containers[s])), this.containers[s].containerCache.over = 0); if (this.storedCursor && (this.document.find("body").css("cursor", this.storedCursor), this.storedStylesheet.remove()), this._storedOpacity && this.helper.css("opacity", this._storedOpacity), this._storedZIndex && this.helper.css("zIndex", "auto" === this._storedZIndex ? "" : this._storedZIndex), this.dragging = !1, t || this._trigger("beforeStop", e, this._uiHash()), this.placeholder[0].parentNode.removeChild(this.placeholder[0]), this.cancelHelperRemoval || (this.helper[0] !== this.currentItem[0] && this.helper.remove(), this.helper = null), !t) { for (s = 0; n.length > s; s++)n[s].call(this, e); this._trigger("stop", e, this._uiHash()) } return this.fromOutside = !1, !this.cancelHelperRemoval }, _trigger: function () { e.Widget.prototype._trigger.apply(this, arguments) === !1 && this.cancel() }, _uiHash: function (t) { var i = t || this; return { helper: i.helper, placeholder: i.placeholder || e([]), position: i.position, originalPosition: i.originalPosition, offset: i.positionAbs, item: i.currentItem, sender: t ? t.element : null } } }), e.widget("ui.accordion", { version: "1.11.4", options: { active: 0, animate: {}, collapsible: !1, event: "click", header: "> li > :first-child,> :not(li):even", heightStyle: "auto", icons: { activeHeader: "ui-icon-triangle-1-s", header: "ui-icon-triangle-1-e" }, activate: null, beforeActivate: null }, hideProps: { borderTopWidth: "hide", borderBottomWidth: "hide", paddingTop: "hide", paddingBottom: "hide", height: "hide" }, showProps: { borderTopWidth: "show", borderBottomWidth: "show", paddingTop: "show", paddingBottom: "show", height: "show" }, _create: function () { var t = this.options; this.prevShow = this.prevHide = e(), this.element.addClass("ui-accordion ui-widget ui-helper-reset").attr("role", "tablist"), t.collapsible || t.active !== !1 && null != t.active || (t.active = 0), this._processPanels(), 0 > t.active && (t.active += this.headers.length), this._refresh() }, _getCreateEventData: function () { return { header: this.active, panel: this.active.length ? this.active.next() : e() } }, _createIcons: function () { var t = this.options.icons; t && (e("<span>").addClass("ui-accordion-header-icon ui-icon " + t.header).prependTo(this.headers), this.active.children(".ui-accordion-header-icon").removeClass(t.header).addClass(t.activeHeader), this.headers.addClass("ui-accordion-icons")) }, _destroyIcons: function () { this.headers.removeClass("ui-accordion-icons").children(".ui-accordion-header-icon").remove() }, _destroy: function () { var e; this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role"), this.headers.removeClass("ui-accordion-header ui-accordion-header-active ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top").removeAttr("role").removeAttr("aria-expanded").removeAttr("aria-selected").removeAttr("aria-controls").removeAttr("tabIndex").removeUniqueId(), this._destroyIcons(), e = this.headers.next().removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-state-disabled").css("display", "").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeUniqueId(), "content" !== this.options.heightStyle && e.css("height", "") }, _setOption: function (e, t) { return "active" === e ? (this._activate(t), void 0) : ("event" === e && (this.options.event && this._off(this.headers, this.options.event), this._setupEvents(t)), this._super(e, t), "collapsible" !== e || t || this.options.active !== !1 || this._activate(0), "icons" === e && (this._destroyIcons(), t && this._createIcons()), "disabled" === e && (this.element.toggleClass("ui-state-disabled", !!t).attr("aria-disabled", t), this.headers.add(this.headers.next()).toggleClass("ui-state-disabled", !!t)), void 0) }, _keydown: function (t) { if (!t.altKey && !t.ctrlKey) { var i = e.ui.keyCode, s = this.headers.length, n = this.headers.index(t.target), a = !1; switch (t.keyCode) { case i.RIGHT: case i.DOWN: a = this.headers[(n + 1) % s]; break; case i.LEFT: case i.UP: a = this.headers[(n - 1 + s) % s]; break; case i.SPACE: case i.ENTER: this._eventHandler(t); break; case i.HOME: a = this.headers[0]; break; case i.END: a = this.headers[s - 1] }a && (e(t.target).attr("tabIndex", -1), e(a).attr("tabIndex", 0), a.focus(), t.preventDefault()) } }, _panelKeyDown: function (t) { t.keyCode === e.ui.keyCode.UP && t.ctrlKey && e(t.currentTarget).prev().focus() }, refresh: function () { var t = this.options; this._processPanels(), t.active === !1 && t.collapsible === !0 || !this.headers.length ? (t.active = !1, this.active = e()) : t.active === !1 ? this._activate(0) : this.active.length && !e.contains(this.element[0], this.active[0]) ? this.headers.length === this.headers.find(".ui-state-disabled").length ? (t.active = !1, this.active = e()) : this._activate(Math.max(0, t.active - 1)) : t.active = this.headers.index(this.active), this._destroyIcons(), this._refresh() }, _processPanels: function () { var e = this.headers, t = this.panels; this.headers = this.element.find(this.options.header).addClass("ui-accordion-header ui-state-default ui-corner-all"), this.panels = this.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom").filter(":not(.ui-accordion-content-active)").hide(), t && (this._off(e.not(this.headers)), this._off(t.not(this.panels))) }, _refresh: function () { var t, i = this.options, s = i.heightStyle, n = this.element.parent(); this.active = this._findActive(i.active).addClass("ui-accordion-header-active ui-state-active ui-corner-top").removeClass("ui-corner-all"), this.active.next().addClass("ui-accordion-content-active").show(), this.headers.attr("role", "tab").each(function () { var t = e(this), i = t.uniqueId().attr("id"), s = t.next(), n = s.uniqueId().attr("id"); t.attr("aria-controls", n), s.attr("aria-labelledby", i) }).next().attr("role", "tabpanel"), this.headers.not(this.active).attr({ "aria-selected": "false", "aria-expanded": "false", tabIndex: -1 }).next().attr({ "aria-hidden": "true" }).hide(), this.active.length ? this.active.attr({ "aria-selected": "true", "aria-expanded": "true", tabIndex: 0 }).next().attr({ "aria-hidden": "false" }) : this.headers.eq(0).attr("tabIndex", 0), this._createIcons(), this._setupEvents(i.event), "fill" === s ? (t = n.height(), this.element.siblings(":visible").each(function () { var i = e(this), s = i.css("position"); "absolute" !== s && "fixed" !== s && (t -= i.outerHeight(!0)) }), this.headers.each(function () { t -= e(this).outerHeight(!0) }), this.headers.next().each(function () { e(this).height(Math.max(0, t - e(this).innerHeight() + e(this).height())) }).css("overflow", "auto")) : "auto" === s && (t = 0, this.headers.next().each(function () { t = Math.max(t, e(this).css("height", "").height()) }).height(t)) }, _activate: function (t) { var i = this._findActive(t)[0]; i !== this.active[0] && (i = i || this.active[0], this._eventHandler({ target: i, currentTarget: i, preventDefault: e.noop })) }, _findActive: function (t) { return "number" == typeof t ? this.headers.eq(t) : e() }, _setupEvents: function (t) { var i = { keydown: "_keydown" }; t && e.each(t.split(" "), function (e, t) { i[t] = "_eventHandler" }), this._off(this.headers.add(this.headers.next())), this._on(this.headers, i), this._on(this.headers.next(), { keydown: "_panelKeyDown" }), this._hoverable(this.headers), this._focusable(this.headers) }, _eventHandler: function (t) { var i = this.options, s = this.active, n = e(t.currentTarget), a = n[0] === s[0], o = a && i.collapsible, r = o ? e() : n.next(), h = s.next(), l = { oldHeader: s, oldPanel: h, newHeader: o ? e() : n, newPanel: r }; t.preventDefault(), a && !i.collapsible || this._trigger("beforeActivate", t, l) === !1 || (i.active = o ? !1 : this.headers.index(n), this.active = a ? e() : n, this._toggle(l), s.removeClass("ui-accordion-header-active ui-state-active"), i.icons && s.children(".ui-accordion-header-icon").removeClass(i.icons.activeHeader).addClass(i.icons.header), a || (n.removeClass("ui-corner-all").addClass("ui-accordion-header-active ui-state-active ui-corner-top"), i.icons && n.children(".ui-accordion-header-icon").removeClass(i.icons.header).addClass(i.icons.activeHeader), n.next().addClass("ui-accordion-content-active"))) }, _toggle: function (t) { var i = t.newPanel, s = this.prevShow.length ? this.prevShow : t.oldPanel; this.prevShow.add(this.prevHide).stop(!0, !0), this.prevShow = i, this.prevHide = s, this.options.animate ? this._animate(i, s, t) : (s.hide(), i.show(), this._toggleComplete(t)), s.attr({ "aria-hidden": "true" }), s.prev().attr({ "aria-selected": "false", "aria-expanded": "false" }), i.length && s.length ? s.prev().attr({ tabIndex: -1, "aria-expanded": "false" }) : i.length && this.headers.filter(function () { return 0 === parseInt(e(this).attr("tabIndex"), 10) }).attr("tabIndex", -1), i.attr("aria-hidden", "false").prev().attr({ "aria-selected": "true", "aria-expanded": "true", tabIndex: 0 }) }, _animate: function (e, t, i) { var s, n, a, o = this, r = 0, h = e.css("box-sizing"), l = e.length && (!t.length || e.index() < t.index()), u = this.options.animate || {}, d = l && u.down || u, c = function () { o._toggleComplete(i) }; return "number" == typeof d && (a = d), "string" == typeof d && (n = d), n = n || d.easing || u.easing, a = a || d.duration || u.duration, t.length ? e.length ? (s = e.show().outerHeight(), t.animate(this.hideProps, { duration: a, easing: n, step: function (e, t) { t.now = Math.round(e) } }), e.hide().animate(this.showProps, { duration: a, easing: n, complete: c, step: function (e, i) { i.now = Math.round(e), "height" !== i.prop ? "content-box" === h && (r += i.now) : "content" !== o.options.heightStyle && (i.now = Math.round(s - t.outerHeight() - r), r = 0) } }), void 0) : t.animate(this.hideProps, a, n, c) : e.animate(this.showProps, a, n, c) }, _toggleComplete: function (e) { var t = e.oldPanel; t.removeClass("ui-accordion-content-active").prev().removeClass("ui-corner-top").addClass("ui-corner-all"), t.length && (t.parent()[0].className = t.parent()[0].className), this._trigger("activate", null, e) } }), e.widget("ui.menu", { version: "1.11.4", defaultElement: "<ul>", delay: 300, options: { icons: { submenu: "ui-icon-carat-1-e" }, items: "> *", menus: "ul", position: { my: "left-1 top", at: "right top" }, role: "menu", blur: null, focus: null, select: null }, _create: function () { this.activeMenu = this.element, this.mouseHandled = !1, this.element.uniqueId().addClass("ui-menu ui-widget ui-widget-content").toggleClass("ui-menu-icons", !!this.element.find(".ui-icon").length).attr({ role: this.options.role, tabIndex: 0 }), this.options.disabled && this.element.addClass("ui-state-disabled").attr("aria-disabled", "true"), this._on({ "mousedown .ui-menu-item": function (e) { e.preventDefault() }, "click .ui-menu-item": function (t) { var i = e(t.target); !this.mouseHandled && i.not(".ui-state-disabled").length && (this.select(t), t.isPropagationStopped() || (this.mouseHandled = !0), i.has(".ui-menu").length ? this.expand(t) : !this.element.is(":focus") && e(this.document[0].activeElement).closest(".ui-menu").length && (this.element.trigger("focus", [!0]), this.active && 1 === this.active.parents(".ui-menu").length && clearTimeout(this.timer))) }, "mouseenter .ui-menu-item": function (t) { if (!this.previousFilter) { var i = e(t.currentTarget); i.siblings(".ui-state-active").removeClass("ui-state-active"), this.focus(t, i) } }, mouseleave: "collapseAll", "mouseleave .ui-menu": "collapseAll", focus: function (e, t) { var i = this.active || this.element.find(this.options.items).eq(0); t || this.focus(e, i) }, blur: function (t) { this._delay(function () { e.contains(this.element[0], this.document[0].activeElement) || this.collapseAll(t) }) }, keydown: "_keydown" }), this.refresh(), this._on(this.document, { click: function (e) { this._closeOnDocumentClick(e) && this.collapseAll(e), this.mouseHandled = !1 } }) }, _destroy: function () { this.element.removeAttr("aria-activedescendant").find(".ui-menu").addBack().removeClass("ui-menu ui-widget ui-widget-content ui-menu-icons ui-front").removeAttr("role").removeAttr("tabIndex").removeAttr("aria-labelledby").removeAttr("aria-expanded").removeAttr("aria-hidden").removeAttr("aria-disabled").removeUniqueId().show(), this.element.find(".ui-menu-item").removeClass("ui-menu-item").removeAttr("role").removeAttr("aria-disabled").removeUniqueId().removeClass("ui-state-hover").removeAttr("tabIndex").removeAttr("role").removeAttr("aria-haspopup").children().each(function () { var t = e(this); t.data("ui-menu-submenu-carat") && t.remove() }), this.element.find(".ui-menu-divider").removeClass("ui-menu-divider ui-widget-content") }, _keydown: function (t) { var i, s, n, a, o = !0; switch (t.keyCode) { case e.ui.keyCode.PAGE_UP: this.previousPage(t); break; case e.ui.keyCode.PAGE_DOWN: this.nextPage(t); break; case e.ui.keyCode.HOME: this._move("first", "first", t); break; case e.ui.keyCode.END: this._move("last", "last", t); break; case e.ui.keyCode.UP: this.previous(t); break; case e.ui.keyCode.DOWN: this.next(t); break; case e.ui.keyCode.LEFT: this.collapse(t); break; case e.ui.keyCode.RIGHT: this.active && !this.active.is(".ui-state-disabled") && this.expand(t); break; case e.ui.keyCode.ENTER: case e.ui.keyCode.SPACE: this._activate(t); break; case e.ui.keyCode.ESCAPE: this.collapse(t); break; default: o = !1, s = this.previousFilter || "", n = String.fromCharCode(t.keyCode), a = !1, clearTimeout(this.filterTimer), n === s ? a = !0 : n = s + n, i = this._filterMenuItems(n), i = a && -1 !== i.index(this.active.next()) ? this.active.nextAll(".ui-menu-item") : i, i.length || (n = String.fromCharCode(t.keyCode), i = this._filterMenuItems(n)), i.length ? (this.focus(t, i), this.previousFilter = n, this.filterTimer = this._delay(function () { delete this.previousFilter }, 1e3)) : delete this.previousFilter }o && t.preventDefault() }, _activate: function (e) { this.active.is(".ui-state-disabled") || (this.active.is("[aria-haspopup='true']") ? this.expand(e) : this.select(e)) }, refresh: function () { var t, i, s = this, n = this.options.icons.submenu, a = this.element.find(this.options.menus); this.element.toggleClass("ui-menu-icons", !!this.element.find(".ui-icon").length), a.filter(":not(.ui-menu)").addClass("ui-menu ui-widget ui-widget-content ui-front").hide().attr({ role: this.options.role, "aria-hidden": "true", "aria-expanded": "false" }).each(function () { var t = e(this), i = t.parent(), s = e("<span>").addClass("ui-menu-icon ui-icon " + n).data("ui-menu-submenu-carat", !0); i.attr("aria-haspopup", "true").prepend(s), t.attr("aria-labelledby", i.attr("id")) }), t = a.add(this.element), i = t.find(this.options.items), i.not(".ui-menu-item").each(function () { var t = e(this); s._isDivider(t) && t.addClass("ui-widget-content ui-menu-divider") }), i.not(".ui-menu-item, .ui-menu-divider").addClass("ui-menu-item").uniqueId().attr({ tabIndex: -1, role: this._itemRole() }), i.filter(".ui-state-disabled").attr("aria-disabled", "true"), this.active && !e.contains(this.element[0], this.active[0]) && this.blur() }, _itemRole: function () { return { menu: "menuitem", listbox: "option" }[this.options.role] }, _setOption: function (e, t) { "icons" === e && this.element.find(".ui-menu-icon").removeClass(this.options.icons.submenu).addClass(t.submenu), "disabled" === e && this.element.toggleClass("ui-state-disabled", !!t).attr("aria-disabled", t), this._super(e, t) }, focus: function (e, t) { var i, s; this.blur(e, e && "focus" === e.type), this._scrollIntoView(t), this.active = t.first(), s = this.active.addClass("ui-state-focus").removeClass("ui-state-active"), this.options.role && this.element.attr("aria-activedescendant", s.attr("id")), this.active.parent().closest(".ui-menu-item").addClass("ui-state-active"), e && "keydown" === e.type ? this._close() : this.timer = this._delay(function () { this._close() }, this.delay), i = t.children(".ui-menu"), i.length && e && /^mouse/.test(e.type) && this._startOpening(i), this.activeMenu = t.parent(), this._trigger("focus", e, { item: t }) }, _scrollIntoView: function (t) { var i, s, n, a, o, r; this._hasScroll() && (i = parseFloat(e.css(this.activeMenu[0], "borderTopWidth")) || 0, s = parseFloat(e.css(this.activeMenu[0], "paddingTop")) || 0, n = t.offset().top - this.activeMenu.offset().top - i - s, a = this.activeMenu.scrollTop(), o = this.activeMenu.height(), r = t.outerHeight(), 0 > n ? this.activeMenu.scrollTop(a + n) : n + r > o && this.activeMenu.scrollTop(a + n - o + r)) }, blur: function (e, t) { t || clearTimeout(this.timer), this.active && (this.active.removeClass("ui-state-focus"), this.active = null, this._trigger("blur", e, { item: this.active })) }, _startOpening: function (e) { clearTimeout(this.timer), "true" === e.attr("aria-hidden") && (this.timer = this._delay(function () { this._close(), this._open(e) }, this.delay)) }, _open: function (t) { var i = e.extend({ of: this.active }, this.options.position); clearTimeout(this.timer), this.element.find(".ui-menu").not(t.parents(".ui-menu")).hide().attr("aria-hidden", "true"), t.show().removeAttr("aria-hidden").attr("aria-expanded", "true").position(i) }, collapseAll: function (t, i) { clearTimeout(this.timer), this.timer = this._delay(function () { var s = i ? this.element : e(t && t.target).closest(this.element.find(".ui-menu")); s.length || (s = this.element), this._close(s), this.blur(t), this.activeMenu = s }, this.delay) }, _close: function (e) { e || (e = this.active ? this.active.parent() : this.element), e.find(".ui-menu").hide().attr("aria-hidden", "true").attr("aria-expanded", "false").end().find(".ui-state-active").not(".ui-state-focus").removeClass("ui-state-active") }, _closeOnDocumentClick: function (t) { return !e(t.target).closest(".ui-menu").length }, _isDivider: function (e) { return !/[^\-\u2014\u2013\s]/.test(e.text()) }, collapse: function (e) { var t = this.active && this.active.parent().closest(".ui-menu-item", this.element); t && t.length && (this._close(), this.focus(e, t)) }, expand: function (e) { var t = this.active && this.active.children(".ui-menu ").find(this.options.items).first(); t && t.length && (this._open(t.parent()), this._delay(function () { this.focus(e, t) })) }, next: function (e) { this._move("next", "first", e) }, previous: function (e) { this._move("prev", "last", e) }, isFirstItem: function () { return this.active && !this.active.prevAll(".ui-menu-item").length }, isLastItem: function () { return this.active && !this.active.nextAll(".ui-menu-item").length }, _move: function (e, t, i) { var s; this.active && (s = "first" === e || "last" === e ? this.active["first" === e ? "prevAll" : "nextAll"](".ui-menu-item").eq(-1) : this.active[e + "All"](".ui-menu-item").eq(0)), s && s.length && this.active || (s = this.activeMenu.find(this.options.items)[t]()), this.focus(i, s) }, nextPage: function (t) { var i, s, n; return this.active ? (this.isLastItem() || (this._hasScroll() ? (s = this.active.offset().top, n = this.element.height(), this.active.nextAll(".ui-menu-item").each(function () { return i = e(this), 0 > i.offset().top - s - n }), this.focus(t, i)) : this.focus(t, this.activeMenu.find(this.options.items)[this.active ? "last" : "first"]())), void 0) : (this.next(t), void 0) }, previousPage: function (t) { var i, s, n; return this.active ? (this.isFirstItem() || (this._hasScroll() ? (s = this.active.offset().top, n = this.element.height(), this.active.prevAll(".ui-menu-item").each(function () { return i = e(this), i.offset().top - s + n > 0 }), this.focus(t, i)) : this.focus(t, this.activeMenu.find(this.options.items).first())), void 0) : (this.next(t), void 0) }, _hasScroll: function () { return this.element.outerHeight() < this.element.prop("scrollHeight") }, select: function (t) { this.active = this.active || e(t.target).closest(".ui-menu-item"); var i = { item: this.active }; this.active.has(".ui-menu").length || this.collapseAll(t, !0), this._trigger("select", t, i) }, _filterMenuItems: function (t) { var i = t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&"), s = RegExp("^" + i, "i"); return this.activeMenu.find(this.options.items).filter(".ui-menu-item").filter(function () { return s.test(e.trim(e(this).text())) }) } }), e.widget("ui.autocomplete", { version: "1.11.4", defaultElement: "<input>", options: { appendTo: null, autoFocus: !1, delay: 300, minLength: 1, position: { my: "left top", at: "left bottom", collision: "none" }, source: null, change: null, close: null, focus: null, open: null, response: null, search: null, select: null }, requestIndex: 0, pending: 0, _create: function () { var t, i, s, n = this.element[0].nodeName.toLowerCase(), a = "textarea" === n, o = "input" === n; this.isMultiLine = a ? !0 : o ? !1 : this.element.prop("isContentEditable"), this.valueMethod = this.element[a || o ? "val" : "text"], this.isNewMenu = !0, this.element.addClass("ui-autocomplete-input").attr("autocomplete", "off"), this._on(this.element, { keydown: function (n) { if (this.element.prop("readOnly")) return t = !0, s = !0, i = !0, void 0; t = !1, s = !1, i = !1; var a = e.ui.keyCode; switch (n.keyCode) { case a.PAGE_UP: t = !0, this._move("previousPage", n); break; case a.PAGE_DOWN: t = !0, this._move("nextPage", n); break; case a.UP: t = !0, this._keyEvent("previous", n); break; case a.DOWN: t = !0, this._keyEvent("next", n); break; case a.ENTER: this.menu.active && (t = !0, n.preventDefault(), this.menu.select(n)); break; case a.TAB: this.menu.active && this.menu.select(n); break; case a.ESCAPE: this.menu.element.is(":visible") && (this.isMultiLine || this._value(this.term), this.close(n), n.preventDefault()); break; default: i = !0, this._searchTimeout(n) } }, keypress: function (s) { if (t) return t = !1, (!this.isMultiLine || this.menu.element.is(":visible")) && s.preventDefault(), void 0; if (!i) { var n = e.ui.keyCode; switch (s.keyCode) { case n.PAGE_UP: this._move("previousPage", s); break; case n.PAGE_DOWN: this._move("nextPage", s); break; case n.UP: this._keyEvent("previous", s); break; case n.DOWN: this._keyEvent("next", s) } } }, input: function (e) { return s ? (s = !1, e.preventDefault(), void 0) : (this._searchTimeout(e), void 0) }, focus: function () { this.selectedItem = null, this.previous = this._value() }, blur: function (e) { return this.cancelBlur ? (delete this.cancelBlur, void 0) : (clearTimeout(this.searching), this.close(e), this._change(e), void 0) } }), this._initSource(), this.menu = e("<ul>").addClass("ui-autocomplete ui-front").appendTo(this._appendTo()).menu({ role: null }).hide().menu("instance"), this._on(this.menu.element, { mousedown: function (t) { t.preventDefault(), this.cancelBlur = !0, this._delay(function () { delete this.cancelBlur }); var i = this.menu.element[0]; e(t.target).closest(".ui-menu-item").length || this._delay(function () { var t = this; this.document.one("mousedown", function (s) { s.target === t.element[0] || s.target === i || e.contains(i, s.target) || t.close() }) }) }, menufocus: function (t, i) { var s, n; return this.isNewMenu && (this.isNewMenu = !1, t.originalEvent && /^mouse/.test(t.originalEvent.type)) ? (this.menu.blur(), this.document.one("mousemove", function () { e(t.target).trigger(t.originalEvent) }), void 0) : (n = i.item.data("ui-autocomplete-item"), !1 !== this._trigger("focus", t, { item: n }) && t.originalEvent && /^key/.test(t.originalEvent.type) && this._value(n.value), s = i.item.attr("aria-label") || n.value, s && e.trim(s).length && (this.liveRegion.children().hide(), e("<div>").text(s).appendTo(this.liveRegion)), void 0) }, menuselect: function (e, t) { var i = t.item.data("ui-autocomplete-item"), s = this.previous; this.element[0] !== this.document[0].activeElement && (this.element.focus(), this.previous = s, this._delay(function () { this.previous = s, this.selectedItem = i })), !1 !== this._trigger("select", e, { item: i }) && this._value(i.value), this.term = this._value(), this.close(e), this.selectedItem = i } }), this.liveRegion = e("<span>", { role: "status", "aria-live": "assertive", "aria-relevant": "additions" }).addClass("ui-helper-hidden-accessible").appendTo(this.document[0].body), this._on(this.window, { beforeunload: function () { this.element.removeAttr("autocomplete") } }) }, _destroy: function () { clearTimeout(this.searching), this.element.removeClass("ui-autocomplete-input").removeAttr("autocomplete"), this.menu.element.remove(), this.liveRegion.remove() }, _setOption: function (e, t) { this._super(e, t), "source" === e && this._initSource(), "appendTo" === e && this.menu.element.appendTo(this._appendTo()), "disabled" === e && t && this.xhr && this.xhr.abort() }, _appendTo: function () { var t = this.options.appendTo; return t && (t = t.jquery || t.nodeType ? e(t) : this.document.find(t).eq(0)), t && t[0] || (t = this.element.closest(".ui-front")), t.length || (t = this.document[0].body), t }, _initSource: function () { var t, i, s = this; e.isArray(this.options.source) ? (t = this.options.source, this.source = function (i, s) { s(e.ui.autocomplete.filter(t, i.term)) }) : "string" == typeof this.options.source ? (i = this.options.source, this.source = function (t, n) { s.xhr && s.xhr.abort(), s.xhr = e.ajax({ url: i, data: t, dataType: "json", success: function (e) { n(e) }, error: function () { n([]) } }) }) : this.source = this.options.source }, _searchTimeout: function (e) { clearTimeout(this.searching), this.searching = this._delay(function () { var t = this.term === this._value(), i = this.menu.element.is(":visible"), s = e.altKey || e.ctrlKey || e.metaKey || e.shiftKey; (!t || t && !i && !s) && (this.selectedItem = null, this.search(null, e)) }, this.options.delay) }, search: function (e, t) { return e = null != e ? e : this._value(), this.term = this._value(), e.length < this.options.minLength ? this.close(t) : this._trigger("search", t) !== !1 ? this._search(e) : void 0 }, _search: function (e) { this.pending++, this.element.addClass("ui-autocomplete-loading"), this.cancelSearch = !1, this.source({ term: e }, this._response()) }, _response: function () { var t = ++this.requestIndex; return e.proxy(function (e) { t === this.requestIndex && this.__response(e), this.pending--, this.pending || this.element.removeClass("ui-autocomplete-loading") }, this) }, __response: function (e) { e && (e = this._normalize(e)), this._trigger("response", null, { content: e }), !this.options.disabled && e && e.length && !this.cancelSearch ? (this._suggest(e), this._trigger("open")) : this._close() }, close: function (e) { this.cancelSearch = !0, this._close(e) }, _close: function (e) { this.menu.element.is(":visible") && (this.menu.element.hide(), this.menu.blur(), this.isNewMenu = !0, this._trigger("close", e)) }, _change: function (e) { this.previous !== this._value() && this._trigger("change", e, { item: this.selectedItem }) }, _normalize: function (t) { return t.length && t[0].label && t[0].value ? t : e.map(t, function (t) { return "string" == typeof t ? { label: t, value: t } : e.extend({}, t, { label: t.label || t.value, value: t.value || t.label }) }) }, _suggest: function (t) { var i = this.menu.element.empty(); this._renderMenu(i, t), this.isNewMenu = !0, this.menu.refresh(), i.show(), this._resizeMenu(), i.position(e.extend({ of: this.element }, this.options.position)), this.options.autoFocus && this.menu.next() }, _resizeMenu: function () { var e = this.menu.element; e.outerWidth(Math.max(e.width("").outerWidth() + 1, this.element.outerWidth())) }, _renderMenu: function (t, i) { var s = this; e.each(i, function (e, i) { s._renderItemData(t, i) }) }, _renderItemData: function (e, t) { return this._renderItem(e, t).data("ui-autocomplete-item", t) }, _renderItem: function (t, i) { return e("<li>").text(i.label).appendTo(t) }, _move: function (e, t) { return this.menu.element.is(":visible") ? this.menu.isFirstItem() && /^previous/.test(e) || this.menu.isLastItem() && /^next/.test(e) ? (this.isMultiLine || this._value(this.term), this.menu.blur(), void 0) : (this.menu[e](t), void 0) : (this.search(null, t), void 0) }, widget: function () { return this.menu.element }, _value: function () { return this.valueMethod.apply(this.element, arguments) }, _keyEvent: function (e, t) { (!this.isMultiLine || this.menu.element.is(":visible")) && (this._move(e, t), t.preventDefault()) } }), e.extend(e.ui.autocomplete, { escapeRegex: function (e) { return e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&") }, filter: function (t, i) { var s = RegExp(e.ui.autocomplete.escapeRegex(i), "i"); return e.grep(t, function (e) { return s.test(e.label || e.value || e) }) } }), e.widget("ui.autocomplete", e.ui.autocomplete, { options: { messages: { noResults: "No search results.", results: function (e) { return e + (e > 1 ? " results are" : " result is") + " available, use up and down arrow keys to navigate." } } }, __response: function (t) { var i; this._superApply(arguments), this.options.disabled || this.cancelSearch || (i = t && t.length ? this.options.messages.results(t.length) : this.options.messages.noResults, this.liveRegion.children().hide(), e("<div>").text(i).appendTo(this.liveRegion)) } }), e.ui.autocomplete; var c, p = "ui-button ui-widget ui-state-default ui-corner-all", f = "ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only", m = function () { var t = e(this); setTimeout(function () { t.find(":ui-button").button("refresh") }, 1) }, g = function (t) { var i = t.name, s = t.form, n = e([]); return i && (i = i.replace(/'/g, "\\'"), n = s ? e(s).find("[name='" + i + "'][type=radio]") : e("[name='" + i + "'][type=radio]", t.ownerDocument).filter(function () { return !this.form })), n }; e.widget("ui.button", { version: "1.11.4", defaultElement: "<button>", options: { disabled: null, text: !0, label: null, icons: { primary: null, secondary: null } }, _create: function () { this.element.closest("form").unbind("reset" + this.eventNamespace).bind("reset" + this.eventNamespace, m), "boolean" != typeof this.options.disabled ? this.options.disabled = !!this.element.prop("disabled") : this.element.prop("disabled", this.options.disabled), this._determineButtonType(), this.hasTitle = !!this.buttonElement.attr("title"); var t = this, i = this.options, s = "checkbox" === this.type || "radio" === this.type, n = s ? "" : "ui-state-active"; null === i.label && (i.label = "input" === this.type ? this.buttonElement.val() : this.buttonElement.html()), this._hoverable(this.buttonElement), this.buttonElement.addClass(p).attr("role", "button").bind("mouseenter" + this.eventNamespace, function () { i.disabled || this === c && e(this).addClass("ui-state-active") }).bind("mouseleave" + this.eventNamespace, function () { i.disabled || e(this).removeClass(n) }).bind("click" + this.eventNamespace, function (e) { i.disabled && (e.preventDefault(), e.stopImmediatePropagation()) }), this._on({ focus: function () { this.buttonElement.addClass("ui-state-focus") }, blur: function () { this.buttonElement.removeClass("ui-state-focus") } }), s && this.element.bind("change" + this.eventNamespace, function () { t.refresh() }), "checkbox" === this.type ? this.buttonElement.bind("click" + this.eventNamespace, function () { return i.disabled ? !1 : void 0 }) : "radio" === this.type ? this.buttonElement.bind("click" + this.eventNamespace, function () { if (i.disabled) return !1; e(this).addClass("ui-state-active"), t.buttonElement.attr("aria-pressed", "true"); var s = t.element[0]; g(s).not(s).map(function () { return e(this).button("widget")[0] }).removeClass("ui-state-active").attr("aria-pressed", "false") }) : (this.buttonElement.bind("mousedown" + this.eventNamespace, function () { return i.disabled ? !1 : (e(this).addClass("ui-state-active"), c = this, t.document.one("mouseup", function () { c = null }), void 0) }).bind("mouseup" + this.eventNamespace, function () { return i.disabled ? !1 : (e(this).removeClass("ui-state-active"), void 0) }).bind("keydown" + this.eventNamespace, function (t) { return i.disabled ? !1 : ((t.keyCode === e.ui.keyCode.SPACE || t.keyCode === e.ui.keyCode.ENTER) && e(this).addClass("ui-state-active"), void 0) }).bind("keyup" + this.eventNamespace + " blur" + this.eventNamespace, function () { e(this).removeClass("ui-state-active") }), this.buttonElement.is("a") && this.buttonElement.keyup(function (t) { t.keyCode === e.ui.keyCode.SPACE && e(this).click() })), this._setOption("disabled", i.disabled), this._resetButton() }, _determineButtonType: function () { var e, t, i; this.type = this.element.is("[type=checkbox]") ? "checkbox" : this.element.is("[type=radio]") ? "radio" : this.element.is("input") ? "input" : "button", "checkbox" === this.type || "radio" === this.type ? (e = this.element.parents().last(), t = "label[for='" + this.element.attr("id") + "']", this.buttonElement = e.find(t), this.buttonElement.length || (e = e.length ? e.siblings() : this.element.siblings(), this.buttonElement = e.filter(t), this.buttonElement.length || (this.buttonElement = e.find(t))), this.element.addClass("ui-helper-hidden-accessible"), i = this.element.is(":checked"), i && this.buttonElement.addClass("ui-state-active"), this.buttonElement.prop("aria-pressed", i)) : this.buttonElement = this.element }, widget: function () { return this.buttonElement }, _destroy: function () { this.element.removeClass("ui-helper-hidden-accessible"), this.buttonElement.removeClass(p + " ui-state-active " + f).removeAttr("role").removeAttr("aria-pressed").html(this.buttonElement.find(".ui-button-text").html()), this.hasTitle || this.buttonElement.removeAttr("title") }, _setOption: function (e, t) { return this._super(e, t), "disabled" === e ? (this.widget().toggleClass("ui-state-disabled", !!t), this.element.prop("disabled", !!t), t && ("checkbox" === this.type || "radio" === this.type ? this.buttonElement.removeClass("ui-state-focus") : this.buttonElement.removeClass("ui-state-focus ui-state-active")), void 0) : (this._resetButton(), void 0) }, refresh: function () { var t = this.element.is("input, button") ? this.element.is(":disabled") : this.element.hasClass("ui-button-disabled"); t !== this.options.disabled && this._setOption("disabled", t), "radio" === this.type ? g(this.element[0]).each(function () { e(this).is(":checked") ? e(this).button("widget").addClass("ui-state-active").attr("aria-pressed", "true") : e(this).button("widget").removeClass("ui-state-active").attr("aria-pressed", "false") }) : "checkbox" === this.type && (this.element.is(":checked") ? this.buttonElement.addClass("ui-state-active").attr("aria-pressed", "true") : this.buttonElement.removeClass("ui-state-active").attr("aria-pressed", "false")) }, _resetButton: function () { if ("input" === this.type) return this.options.label && this.element.val(this.options.label), void 0; var t = this.buttonElement.removeClass(f), i = e("<span></span>", this.document[0]).addClass("ui-button-text").html(this.options.label).appendTo(t.empty()).text(), s = this.options.icons, n = s.primary && s.secondary, a = []; s.primary || s.secondary ? (this.options.text && a.push("ui-button-text-icon" + (n ? "s" : s.primary ? "-primary" : "-secondary")), s.primary && t.prepend("<span class='ui-button-icon-primary ui-icon " + s.primary + "'></span>"), s.secondary && t.append("<span class='ui-button-icon-secondary ui-icon " + s.secondary + "'></span>"), this.options.text || (a.push(n ? "ui-button-icons-only" : "ui-button-icon-only"), this.hasTitle || t.attr("title", e.trim(i)))) : a.push("ui-button-text-only"), t.addClass(a.join(" ")) } }), e.widget("ui.buttonset", { version: "1.11.4", options: { items: "button, input[type=button], input[type=submit], input[type=reset], input[type=checkbox], input[type=radio], a, :data(ui-button)" }, _create: function () { this.element.addClass("ui-buttonset") }, _init: function () { this.refresh() }, _setOption: function (e, t) { "disabled" === e && this.buttons.button("option", e, t), this._super(e, t) }, refresh: function () { var t = "rtl" === this.element.css("direction"), i = this.element.find(this.options.items), s = i.filter(":ui-button"); i.not(":ui-button").button(), s.button("refresh"), this.buttons = i.map(function () { return e(this).button("widget")[0] }).removeClass("ui-corner-all ui-corner-left ui-corner-right").filter(":first").addClass(t ? "ui-corner-right" : "ui-corner-left").end().filter(":last").addClass(t ? "ui-corner-left" : "ui-corner-right").end().end() }, _destroy: function () { this.element.removeClass("ui-buttonset"), this.buttons.map(function () { return e(this).button("widget")[0] }).removeClass("ui-corner-left ui-corner-right").end().button("destroy") } }), e.ui.button, e.extend(e.ui, { datepicker: { version: "1.11.4" } }); var v; e.extend(n.prototype, { markerClassName: "hasDatepicker", maxRows: 4, _widgetDatepicker: function () { return this.dpDiv }, setDefaults: function (e) { return r(this._defaults, e || {}), this }, _attachDatepicker: function (t, i) { var s, n, a; s = t.nodeName.toLowerCase(), n = "div" === s || "span" === s, t.id || (this.uuid += 1, t.id = "dp" + this.uuid), a = this._newInst(e(t), n), a.settings = e.extend({}, i || {}), "input" === s ? this._connectDatepicker(t, a) : n && this._inlineDatepicker(t, a) }, _newInst: function (t, i) { var s = t[0].id.replace(/([^A-Za-z0-9_\-])/g, "\\\\$1"); return { id: s, input: t, selectedDay: 0, selectedMonth: 0, selectedYear: 0, drawMonth: 0, drawYear: 0, inline: i, dpDiv: i ? a(e("<div class='" + this._inlineClass + " ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>")) : this.dpDiv } }, _connectDatepicker: function (t, i) { var s = e(t); i.append = e([]), i.trigger = e([]), s.hasClass(this.markerClassName) || (this._attachments(s, i), s.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).keyup(this._doKeyUp), this._autoSize(i), e.data(t, "datepicker", i), i.settings.disabled && this._disableDatepicker(t)) }, _attachments: function (t, i) { var s, n, a, o = this._get(i, "appendText"), r = this._get(i, "isRTL"); i.append && i.append.remove(), o && (i.append = e("<span class='" + this._appendClass + "'>" + o + "</span>"), t[r ? "before" : "after"](i.append)), t.unbind("focus", this._showDatepicker), i.trigger && i.trigger.remove(), s = this._get(i, "showOn"), ("focus" === s || "both" === s) && t.focus(this._showDatepicker), ("button" === s || "both" === s) && (n = this._get(i, "buttonText"), a = this._get(i, "buttonImage"), i.trigger = e(this._get(i, "buttonImageOnly") ? e("<img/>").addClass(this._triggerClass).attr({ src: a, alt: n, title: n }) : e("<button type='button'></button>").addClass(this._triggerClass).html(a ? e("<img/>").attr({ src: a, alt: n, title: n }) : n)), t[r ? "before" : "after"](i.trigger), i.trigger.click(function () { return e.datepicker._datepickerShowing && e.datepicker._lastInput === t[0] ? e.datepicker._hideDatepicker() : e.datepicker._datepickerShowing && e.datepicker._lastInput !== t[0] ? (e.datepicker._hideDatepicker(), e.datepicker._showDatepicker(t[0])) : e.datepicker._showDatepicker(t[0]), !1 })) }, _autoSize: function (e) { if (this._get(e, "autoSize") && !e.inline) { var t, i, s, n, a = new Date(2009, 11, 20), o = this._get(e, "dateFormat"); o.match(/[DM]/) && (t = function (e) { for (i = 0, s = 0, n = 0; e.length > n; n++)e[n].length > i && (i = e[n].length, s = n); return s }, a.setMonth(t(this._get(e, o.match(/MM/) ? "monthNames" : "monthNamesShort"))), a.setDate(t(this._get(e, o.match(/DD/) ? "dayNames" : "dayNamesShort")) + 20 - a.getDay())), e.input.attr("size", this._formatDate(e, a).length) } }, _inlineDatepicker: function (t, i) { var s = e(t); s.hasClass(this.markerClassName) || (s.addClass(this.markerClassName).append(i.dpDiv), e.data(t, "datepicker", i), this._setDate(i, this._getDefaultDate(i), !0), this._updateDatepicker(i), this._updateAlternate(i), i.settings.disabled && this._disableDatepicker(t), i.dpDiv.css("display", "block")) }, _dialogDatepicker: function (t, i, s, n, a) { var o, h, l, u, d, c = this._dialogInst; return c || (this.uuid += 1, o = "dp" + this.uuid, this._dialogInput = e("<input type='text' id='" + o + "' style='position: absolute; top: -100px; width: 0px;'/>"), this._dialogInput.keydown(this._doKeyDown), e("body").append(this._dialogInput), c = this._dialogInst = this._newInst(this._dialogInput, !1), c.settings = {}, e.data(this._dialogInput[0], "datepicker", c)), r(c.settings, n || {}), i = i && i.constructor === Date ? this._formatDate(c, i) : i, this._dialogInput.val(i), this._pos = a ? a.length ? a : [a.pageX, a.pageY] : null, this._pos || (h = document.documentElement.clientWidth, l = document.documentElement.clientHeight, u = document.documentElement.scrollLeft || document.body.scrollLeft, d = document.documentElement.scrollTop || document.body.scrollTop, this._pos = [h / 2 - 100 + u, l / 2 - 150 + d]), this._dialogInput.css("left", this._pos[0] + 20 + "px").css("top", this._pos[1] + "px"), c.settings.onSelect = s, this._inDialog = !0, this.dpDiv.addClass(this._dialogClass), this._showDatepicker(this._dialogInput[0]), e.blockUI && e.blockUI(this.dpDiv), e.data(this._dialogInput[0], "datepicker", c), this }, _destroyDatepicker: function (t) { var i, s = e(t), n = e.data(t, "datepicker"); s.hasClass(this.markerClassName) && (i = t.nodeName.toLowerCase(), e.removeData(t, "datepicker"), "input" === i ? (n.append.remove(), n.trigger.remove(), s.removeClass(this.markerClassName).unbind("focus", this._showDatepicker).unbind("keydown", this._doKeyDown).unbind("keypress", this._doKeyPress).unbind("keyup", this._doKeyUp)) : ("div" === i || "span" === i) && s.removeClass(this.markerClassName).empty(), v === n && (v = null)) }, _enableDatepicker: function (t) { var i, s, n = e(t), a = e.data(t, "datepicker"); n.hasClass(this.markerClassName) && (i = t.nodeName.toLowerCase(), "input" === i ? (t.disabled = !1, a.trigger.filter("button").each(function () { this.disabled = !1 }).end().filter("img").css({ opacity: "1.0", cursor: "" })) : ("div" === i || "span" === i) && (s = n.children("." + this._inlineClass), s.children().removeClass("ui-state-disabled"), s.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled", !1)), this._disabledInputs = e.map(this._disabledInputs, function (e) { return e === t ? null : e })) }, _disableDatepicker: function (t) { var i, s, n = e(t), a = e.data(t, "datepicker"); n.hasClass(this.markerClassName) && (i = t.nodeName.toLowerCase(), "input" === i ? (t.disabled = !0, a.trigger.filter("button").each(function () { this.disabled = !0 }).end().filter("img").css({ opacity: "0.5", cursor: "default" })) : ("div" === i || "span" === i) && (s = n.children("." + this._inlineClass), s.children().addClass("ui-state-disabled"), s.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled", !0)), this._disabledInputs = e.map(this._disabledInputs, function (e) { return e === t ? null : e }), this._disabledInputs[this._disabledInputs.length] = t) }, _isDisabledDatepicker: function (e) { if (!e) return !1; for (var t = 0; this._disabledInputs.length > t; t++)if (this._disabledInputs[t] === e) return !0; return !1 }, _getInst: function (t) { try { return e.data(t, "datepicker") } catch (i) { throw "Missing instance data for this datepicker" } }, _optionDatepicker: function (t, i, s) { var n, a, o, h, l = this._getInst(t); return 2 === arguments.length && "string" == typeof i ? "defaults" === i ? e.extend({}, e.datepicker._defaults) : l ? "all" === i ? e.extend({}, l.settings) : this._get(l, i) : null : (n = i || {}, "string" == typeof i && (n = {}, n[i] = s), l && (this._curInst === l && this._hideDatepicker(), a = this._getDateDatepicker(t, !0), o = this._getMinMaxDate(l, "min"), h = this._getMinMaxDate(l, "max"), r(l.settings, n), null !== o && void 0 !== n.dateFormat && void 0 === n.minDate && (l.settings.minDate = this._formatDate(l, o)), null !== h && void 0 !== n.dateFormat && void 0 === n.maxDate && (l.settings.maxDate = this._formatDate(l, h)), "disabled" in n && (n.disabled ? this._disableDatepicker(t) : this._enableDatepicker(t)), this._attachments(e(t), l), this._autoSize(l), this._setDate(l, a), this._updateAlternate(l), this._updateDatepicker(l)), void 0) }, _changeDatepicker: function (e, t, i) { this._optionDatepicker(e, t, i) }, _refreshDatepicker: function (e) { var t = this._getInst(e); t && this._updateDatepicker(t) }, _setDateDatepicker: function (e, t) { var i = this._getInst(e); i && (this._setDate(i, t), this._updateDatepicker(i), this._updateAlternate(i)) }, _getDateDatepicker: function (e, t) { var i = this._getInst(e); return i && !i.inline && this._setDateFromField(i, t), i ? this._getDate(i) : null }, _doKeyDown: function (t) { var i, s, n, a = e.datepicker._getInst(t.target), o = !0, r = a.dpDiv.is(".ui-datepicker-rtl"); if (a._keyEvent = !0, e.datepicker._datepickerShowing) switch (t.keyCode) { case 9: e.datepicker._hideDatepicker(), o = !1; break; case 13: return n = e("td." + e.datepicker._dayOverClass + ":not(." + e.datepicker._currentClass + ")", a.dpDiv), n[0] && e.datepicker._selectDay(t.target, a.selectedMonth, a.selectedYear, n[0]), i = e.datepicker._get(a, "onSelect"), i ? (s = e.datepicker._formatDate(a), i.apply(a.input ? a.input[0] : null, [s, a])) : e.datepicker._hideDatepicker(), !1; case 27: e.datepicker._hideDatepicker(); break; case 33: e.datepicker._adjustDate(t.target, t.ctrlKey ? -e.datepicker._get(a, "stepBigMonths") : -e.datepicker._get(a, "stepMonths"), "M"); break; case 34: e.datepicker._adjustDate(t.target, t.ctrlKey ? +e.datepicker._get(a, "stepBigMonths") : +e.datepicker._get(a, "stepMonths"), "M"); break; case 35: (t.ctrlKey || t.metaKey) && e.datepicker._clearDate(t.target), o = t.ctrlKey || t.metaKey; break; case 36: (t.ctrlKey || t.metaKey) && e.datepicker._gotoToday(t.target), o = t.ctrlKey || t.metaKey; break; case 37: (t.ctrlKey || t.metaKey) && e.datepicker._adjustDate(t.target, r ? 1 : -1, "D"), o = t.ctrlKey || t.metaKey, t.originalEvent.altKey && e.datepicker._adjustDate(t.target, t.ctrlKey ? -e.datepicker._get(a, "stepBigMonths") : -e.datepicker._get(a, "stepMonths"), "M"); break; case 38: (t.ctrlKey || t.metaKey) && e.datepicker._adjustDate(t.target, -7, "D"), o = t.ctrlKey || t.metaKey; break; case 39: (t.ctrlKey || t.metaKey) && e.datepicker._adjustDate(t.target, r ? -1 : 1, "D"), o = t.ctrlKey || t.metaKey, t.originalEvent.altKey && e.datepicker._adjustDate(t.target, t.ctrlKey ? +e.datepicker._get(a, "stepBigMonths") : +e.datepicker._get(a, "stepMonths"), "M"); break; case 40: (t.ctrlKey || t.metaKey) && e.datepicker._adjustDate(t.target, 7, "D"), o = t.ctrlKey || t.metaKey; break; default: o = !1 } else 36 === t.keyCode && t.ctrlKey ? e.datepicker._showDatepicker(this) : o = !1; o && (t.preventDefault(), t.stopPropagation()) }, _doKeyPress: function (t) { var i, s, n = e.datepicker._getInst(t.target); return e.datepicker._get(n, "constrainInput") ? (i = e.datepicker._possibleChars(e.datepicker._get(n, "dateFormat")), s = String.fromCharCode(null == t.charCode ? t.keyCode : t.charCode), t.ctrlKey || t.metaKey || " " > s || !i || i.indexOf(s) > -1) : void 0 }, _doKeyUp: function (t) { var i, s = e.datepicker._getInst(t.target); if (s.input.val() !== s.lastVal) try { i = e.datepicker.parseDate(e.datepicker._get(s, "dateFormat"), s.input ? s.input.val() : null, e.datepicker._getFormatConfig(s)), i && (e.datepicker._setDateFromField(s), e.datepicker._updateAlternate(s), e.datepicker._updateDatepicker(s)) } catch (n) { } return !0 }, _showDatepicker: function (t) { if (t = t.target || t, "input" !== t.nodeName.toLowerCase() && (t = e("input", t.parentNode)[0]), !e.datepicker._isDisabledDatepicker(t) && e.datepicker._lastInput !== t) { var i, n, a, o, h, l, u; i = e.datepicker._getInst(t), e.datepicker._curInst && e.datepicker._curInst !== i && (e.datepicker._curInst.dpDiv.stop(!0, !0), i && e.datepicker._datepickerShowing && e.datepicker._hideDatepicker(e.datepicker._curInst.input[0])), n = e.datepicker._get(i, "beforeShow"), a = n ? n.apply(t, [t, i]) : {}, a !== !1 && (r(i.settings, a), i.lastVal = null, e.datepicker._lastInput = t, e.datepicker._setDateFromField(i), e.datepicker._inDialog && (t.value = ""), e.datepicker._pos || (e.datepicker._pos = e.datepicker._findPos(t), e.datepicker._pos[1] += t.offsetHeight), o = !1, e(t).parents().each(function () { return o |= "fixed" === e(this).css("position"), !o }), h = { left: e.datepicker._pos[0], top: e.datepicker._pos[1] }, e.datepicker._pos = null, i.dpDiv.empty(), i.dpDiv.css({ position: "absolute", display: "block", top: "-1000px" }), e.datepicker._updateDatepicker(i), h = e.datepicker._checkOffset(i, h, o), i.dpDiv.css({ position: e.datepicker._inDialog && e.blockUI ? "static" : o ? "fixed" : "absolute", display: "none", left: h.left + "px", top: h.top + "px" }), i.inline || (l = e.datepicker._get(i, "showAnim"), u = e.datepicker._get(i, "duration"), i.dpDiv.css("z-index", s(e(t)) + 1), e.datepicker._datepickerShowing = !0, e.effects && e.effects.effect[l] ? i.dpDiv.show(l, e.datepicker._get(i, "showOptions"), u) : i.dpDiv[l || "show"](l ? u : null), e.datepicker._shouldFocusInput(i) && i.input.focus(), e.datepicker._curInst = i)) } }, _updateDatepicker: function (t) { this.maxRows = 4, v = t, t.dpDiv.empty().append(this._generateHTML(t)), this._attachHandlers(t); var i, s = this._getNumberOfMonths(t), n = s[1], a = 17, r = t.dpDiv.find("." + this._dayOverClass + " a"); r.length > 0 && o.apply(r.get(0)), t.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width(""), n > 1 && t.dpDiv.addClass("ui-datepicker-multi-" + n).css("width", a * n + "em"), t.dpDiv[(1 !== s[0] || 1 !== s[1] ? "add" : "remove") + "Class"]("ui-datepicker-multi"), t.dpDiv[(this._get(t, "isRTL") ? "add" : "remove") + "Class"]("ui-datepicker-rtl"), t === e.datepicker._curInst && e.datepicker._datepickerShowing && e.datepicker._shouldFocusInput(t) && t.input.focus(), t.yearshtml && (i = t.yearshtml, setTimeout(function () { i === t.yearshtml && t.yearshtml && t.dpDiv.find("select.ui-datepicker-year:first").replaceWith(t.yearshtml), i = t.yearshtml = null }, 0)) }, _shouldFocusInput: function (e) { return e.input && e.input.is(":visible") && !e.input.is(":disabled") && !e.input.is(":focus") }, _checkOffset: function (t, i, s) { var n = t.dpDiv.outerWidth(), a = t.dpDiv.outerHeight(), o = t.input ? t.input.outerWidth() : 0, r = t.input ? t.input.outerHeight() : 0, h = document.documentElement.clientWidth + (s ? 0 : e(document).scrollLeft()), l = document.documentElement.clientHeight + (s ? 0 : e(document).scrollTop()); return i.left -= this._get(t, "isRTL") ? n - o : 0, i.left -= s && i.left === t.input.offset().left ? e(document).scrollLeft() : 0, i.top -= s && i.top === t.input.offset().top + r ? e(document).scrollTop() : 0, i.left -= Math.min(i.left, i.left + n > h && h > n ? Math.abs(i.left + n - h) : 0), i.top -= Math.min(i.top, i.top + a > l && l > a ? Math.abs(a + r) : 0), i }, _findPos: function (t) { for (var i, s = this._getInst(t), n = this._get(s, "isRTL"); t && ("hidden" === t.type || 1 !== t.nodeType || e.expr.filters.hidden(t));)t = t[n ? "previousSibling" : "nextSibling"]; return i = e(t).offset(), [i.left, i.top] }, _hideDatepicker: function (t) { var i, s, n, a, o = this._curInst; !o || t && o !== e.data(t, "datepicker") || this._datepickerShowing && (i = this._get(o, "showAnim"), s = this._get(o, "duration"), n = function () { e.datepicker._tidyDialog(o) }, e.effects && (e.effects.effect[i] || e.effects[i]) ? o.dpDiv.hide(i, e.datepicker._get(o, "showOptions"), s, n) : o.dpDiv["slideDown" === i ? "slideUp" : "fadeIn" === i ? "fadeOut" : "hide"](i ? s : null, n), i || n(), this._datepickerShowing = !1, a = this._get(o, "onClose"), a && a.apply(o.input ? o.input[0] : null, [o.input ? o.input.val() : "", o]), this._lastInput = null, this._inDialog && (this._dialogInput.css({ position: "absolute", left: "0", top: "-100px" }), e.blockUI && (e.unblockUI(), e("body").append(this.dpDiv))), this._inDialog = !1) }, _tidyDialog: function (e) { e.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar") }, _checkExternalClick: function (t) { if (e.datepicker._curInst) { var i = e(t.target), s = e.datepicker._getInst(i[0]); (i[0].id !== e.datepicker._mainDivId && 0 === i.parents("#" + e.datepicker._mainDivId).length && !i.hasClass(e.datepicker.markerClassName) && !i.closest("." + e.datepicker._triggerClass).length && e.datepicker._datepickerShowing && (!e.datepicker._inDialog || !e.blockUI) || i.hasClass(e.datepicker.markerClassName) && e.datepicker._curInst !== s) && e.datepicker._hideDatepicker() } }, _adjustDate: function (t, i, s) { var n = e(t), a = this._getInst(n[0]); this._isDisabledDatepicker(n[0]) || (this._adjustInstDate(a, i + ("M" === s ? this._get(a, "showCurrentAtPos") : 0), s), this._updateDatepicker(a)) }, _gotoToday: function (t) { var i, s = e(t), n = this._getInst(s[0]); this._get(n, "gotoCurrent") && n.currentDay ? (n.selectedDay = n.currentDay, n.drawMonth = n.selectedMonth = n.currentMonth, n.drawYear = n.selectedYear = n.currentYear) : (i = new Date, n.selectedDay = i.getDate(), n.drawMonth = n.selectedMonth = i.getMonth(), n.drawYear = n.selectedYear = i.getFullYear()), this._notifyChange(n), this._adjustDate(s) }, _selectMonthYear: function (t, i, s) { var n = e(t), a = this._getInst(n[0]); a["selected" + ("M" === s ? "Month" : "Year")] = a["draw" + ("M" === s ? "Month" : "Year")] = parseInt(i.options[i.selectedIndex].value, 10), this._notifyChange(a), this._adjustDate(n) }, _selectDay: function (t, i, s, n) { var a, o = e(t); e(n).hasClass(this._unselectableClass) || this._isDisabledDatepicker(o[0]) || (a = this._getInst(o[0]), a.selectedDay = a.currentDay = e("a", n).html(), a.selectedMonth = a.currentMonth = i, a.selectedYear = a.currentYear = s, this._selectDate(t, this._formatDate(a, a.currentDay, a.currentMonth, a.currentYear))) }, _clearDate: function (t) { var i = e(t); this._selectDate(i, "") }, _selectDate: function (t, i) { var s, n = e(t), a = this._getInst(n[0]); i = null != i ? i : this._formatDate(a), a.input && a.input.val(i), this._updateAlternate(a), s = this._get(a, "onSelect"), s ? s.apply(a.input ? a.input[0] : null, [i, a]) : a.input && a.input.trigger("change"), a.inline ? this._updateDatepicker(a) : (this._hideDatepicker(), this._lastInput = a.input[0], "object" != typeof a.input[0] && a.input.focus(), this._lastInput = null) }, _updateAlternate: function (t) { var i, s, n, a = this._get(t, "altField"); a && (i = this._get(t, "altFormat") || this._get(t, "dateFormat"), s = this._getDate(t), n = this.formatDate(i, s, this._getFormatConfig(t)), e(a).each(function () { e(this).val(n) })) }, noWeekends: function (e) { var t = e.getDay(); return [t > 0 && 6 > t, ""] }, iso8601Week: function (e) { var t, i = new Date(e.getTime()); return i.setDate(i.getDate() + 4 - (i.getDay() || 7)), t = i.getTime(), i.setMonth(0), i.setDate(1), Math.floor(Math.round((t - i) / 864e5) / 7) + 1 }, parseDate: function (t, i, s) { if (null == t || null == i) throw "Invalid arguments"; if (i = "object" == typeof i ? "" + i : i + "", "" === i) return null; var n, a, o, r, h = 0, l = (s ? s.shortYearCutoff : null) || this._defaults.shortYearCutoff, u = "string" != typeof l ? l : (new Date).getFullYear() % 100 + parseInt(l, 10), d = (s ? s.dayNamesShort : null) || this._defaults.dayNamesShort, c = (s ? s.dayNames : null) || this._defaults.dayNames, p = (s ? s.monthNamesShort : null) || this._defaults.monthNamesShort, f = (s ? s.monthNames : null) || this._defaults.monthNames, m = -1, g = -1, v = -1, y = -1, b = !1, _ = function (e) { var i = t.length > n + 1 && t.charAt(n + 1) === e; return i && n++, i }, x = function (e) { var t = _(e), s = "@" === e ? 14 : "!" === e ? 20 : "y" === e && t ? 4 : "o" === e ? 3 : 2, n = "y" === e ? s : 1, a = RegExp("^\\d{" + n + "," + s + "}"), o = i.substring(h).match(a); if (!o) throw "Missing number at position " + h; return h += o[0].length, parseInt(o[0], 10) }, w = function (t, s, n) { var a = -1, o = e.map(_(t) ? n : s, function (e, t) { return [[t, e]] }).sort(function (e, t) { return -(e[1].length - t[1].length) }); if (e.each(o, function (e, t) { var s = t[1]; return i.substr(h, s.length).toLowerCase() === s.toLowerCase() ? (a = t[0], h += s.length, !1) : void 0 }), -1 !== a) return a + 1; throw "Unknown name at position " + h }, k = function () { if (i.charAt(h) !== t.charAt(n)) throw "Unexpected literal at position " + h; h++ }; for (n = 0; t.length > n; n++)if (b) "'" !== t.charAt(n) || _("'") ? k() : b = !1; else switch (t.charAt(n)) { case "d": v = x("d"); break; case "D": w("D", d, c); break; case "o": y = x("o"); break; case "m": g = x("m"); break; case "M": g = w("M", p, f); break; case "y": m = x("y"); break; case "@": r = new Date(x("@")), m = r.getFullYear(), g = r.getMonth() + 1, v = r.getDate(); break; case "!": r = new Date((x("!") - this._ticksTo1970) / 1e4), m = r.getFullYear(), g = r.getMonth() + 1, v = r.getDate(); break; case "'": _("'") ? k() : b = !0; break; default: k() }if (i.length > h && (o = i.substr(h), !/^\s+/.test(o))) throw "Extra/unparsed characters found in date: " + o; if (-1 === m ? m = (new Date).getFullYear() : 100 > m && (m += (new Date).getFullYear() - (new Date).getFullYear() % 100 + (u >= m ? 0 : -100)), y > -1) for (g = 1, v = y; ;) { if (a = this._getDaysInMonth(m, g - 1), a >= v) break; g++, v -= a } if (r = this._daylightSavingAdjust(new Date(m, g - 1, v)), r.getFullYear() !== m || r.getMonth() + 1 !== g || r.getDate() !== v) throw "Invalid date"; return r }, ATOM: "yy-mm-dd", COOKIE: "D, dd M yy", ISO_8601: "yy-mm-dd", RFC_822: "D, d M y", RFC_850: "DD, dd-M-y", RFC_1036: "D, d M y", RFC_1123: "D, d M yy", RFC_2822: "D, d M yy", RSS: "D, d M y", TICKS: "!", TIMESTAMP: "@", W3C: "yy-mm-dd", _ticksTo1970: 1e7 * 60 * 60 * 24 * (718685 + Math.floor(492.5) - Math.floor(19.7) + Math.floor(4.925)), formatDate: function (e, t, i) { if (!t) return ""; var s, n = (i ? i.dayNamesShort : null) || this._defaults.dayNamesShort, a = (i ? i.dayNames : null) || this._defaults.dayNames, o = (i ? i.monthNamesShort : null) || this._defaults.monthNamesShort, r = (i ? i.monthNames : null) || this._defaults.monthNames, h = function (t) { var i = e.length > s + 1 && e.charAt(s + 1) === t; return i && s++, i }, l = function (e, t, i) { var s = "" + t; if (h(e)) for (; i > s.length;)s = "0" + s; return s }, u = function (e, t, i, s) { return h(e) ? s[t] : i[t] }, d = "", c = !1; if (t) for (s = 0; e.length > s; s++)if (c) "'" !== e.charAt(s) || h("'") ? d += e.charAt(s) : c = !1; else switch (e.charAt(s)) { case "d": d += l("d", t.getDate(), 2); break; case "D": d += u("D", t.getDay(), n, a); break; case "o": d += l("o", Math.round((new Date(t.getFullYear(), t.getMonth(), t.getDate()).getTime() - new Date(t.getFullYear(), 0, 0).getTime()) / 864e5), 3); break; case "m": d += l("m", t.getMonth() + 1, 2); break; case "M": d += u("M", t.getMonth(), o, r); break; case "y": d += h("y") ? t.getFullYear() : (10 > t.getYear() % 100 ? "0" : "") + t.getYear() % 100; break; case "@": d += t.getTime(); break; case "!": d += 1e4 * t.getTime() + this._ticksTo1970; break; case "'": h("'") ? d += "'" : c = !0; break; default: d += e.charAt(s) }return d }, _possibleChars: function (e) { var t, i = "", s = !1, n = function (i) { var s = e.length > t + 1 && e.charAt(t + 1) === i; return s && t++, s }; for (t = 0; e.length > t; t++)if (s) "'" !== e.charAt(t) || n("'") ? i += e.charAt(t) : s = !1; else switch (e.charAt(t)) { case "d": case "m": case "y": case "@": i += "0123456789"; break; case "D": case "M": return null; case "'": n("'") ? i += "'" : s = !0; break; default: i += e.charAt(t) }return i }, _get: function (e, t) { return void 0 !== e.settings[t] ? e.settings[t] : this._defaults[t] }, _setDateFromField: function (e, t) { if (e.input.val() !== e.lastVal) { var i = this._get(e, "dateFormat"), s = e.lastVal = e.input ? e.input.val() : null, n = this._getDefaultDate(e), a = n, o = this._getFormatConfig(e); try { a = this.parseDate(i, s, o) || n } catch (r) { s = t ? "" : s } e.selectedDay = a.getDate(), e.drawMonth = e.selectedMonth = a.getMonth(), e.drawYear = e.selectedYear = a.getFullYear(), e.currentDay = s ? a.getDate() : 0, e.currentMonth = s ? a.getMonth() : 0, e.currentYear = s ? a.getFullYear() : 0, this._adjustInstDate(e) } }, _getDefaultDate: function (e) { return this._restrictMinMax(e, this._determineDate(e, this._get(e, "defaultDate"), new Date)) }, _determineDate: function (t, i, s) { var n = function (e) { var t = new Date; return t.setDate(t.getDate() + e), t }, a = function (i) { try { return e.datepicker.parseDate(e.datepicker._get(t, "dateFormat"), i, e.datepicker._getFormatConfig(t)) } catch (s) { } for (var n = (i.toLowerCase().match(/^c/) ? e.datepicker._getDate(t) : null) || new Date, a = n.getFullYear(), o = n.getMonth(), r = n.getDate(), h = /([+\-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g, l = h.exec(i); l;) { switch (l[2] || "d") { case "d": case "D": r += parseInt(l[1], 10); break; case "w": case "W": r += 7 * parseInt(l[1], 10); break; case "m": case "M": o += parseInt(l[1], 10), r = Math.min(r, e.datepicker._getDaysInMonth(a, o)); break; case "y": case "Y": a += parseInt(l[1], 10), r = Math.min(r, e.datepicker._getDaysInMonth(a, o)) }l = h.exec(i) } return new Date(a, o, r) }, o = null == i || "" === i ? s : "string" == typeof i ? a(i) : "number" == typeof i ? isNaN(i) ? s : n(i) : new Date(i.getTime()); return o = o && "Invalid Date" == "" + o ? s : o, o && (o.setHours(0), o.setMinutes(0), o.setSeconds(0), o.setMilliseconds(0)), this._daylightSavingAdjust(o) }, _daylightSavingAdjust: function (e) { return e ? (e.setHours(e.getHours() > 12 ? e.getHours() + 2 : 0), e) : null }, _setDate: function (e, t, i) { var s = !t, n = e.selectedMonth, a = e.selectedYear, o = this._restrictMinMax(e, this._determineDate(e, t, new Date)); e.selectedDay = e.currentDay = o.getDate(), e.drawMonth = e.selectedMonth = e.currentMonth = o.getMonth(), e.drawYear = e.selectedYear = e.currentYear = o.getFullYear(), n === e.selectedMonth && a === e.selectedYear || i || this._notifyChange(e), this._adjustInstDate(e), e.input && e.input.val(s ? "" : this._formatDate(e)) }, _getDate: function (e) { var t = !e.currentYear || e.input && "" === e.input.val() ? null : this._daylightSavingAdjust(new Date(e.currentYear, e.currentMonth, e.currentDay)); return t }, _attachHandlers: function (t) { var i = this._get(t, "stepMonths"), s = "#" + t.id.replace(/\\\\/g, "\\"); t.dpDiv.find("[data-handler]").map(function () { var t = { prev: function () { e.datepicker._adjustDate(s, -i, "M") }, next: function () { e.datepicker._adjustDate(s, +i, "M") }, hide: function () { e.datepicker._hideDatepicker() }, today: function () { e.datepicker._gotoToday(s) }, selectDay: function () { return e.datepicker._selectDay(s, +this.getAttribute("data-month"), +this.getAttribute("data-year"), this), !1 }, selectMonth: function () { return e.datepicker._selectMonthYear(s, this, "M"), !1 }, selectYear: function () { return e.datepicker._selectMonthYear(s, this, "Y"), !1 } }; e(this).bind(this.getAttribute("data-event"), t[this.getAttribute("data-handler")]) }) }, _generateHTML: function (e) { var t, i, s, n, a, o, r, h, l, u, d, c, p, f, m, g, v, y, b, _, x, w, k, T, D, S, M, C, N, A, P, I, H, z, F, E, O, j, W, L = new Date, R = this._daylightSavingAdjust(new Date(L.getFullYear(), L.getMonth(), L.getDate())), Y = this._get(e, "isRTL"), B = this._get(e, "showButtonPanel"), J = this._get(e, "hideIfNoPrevNext"), q = this._get(e, "navigationAsDateFormat"), K = this._getNumberOfMonths(e), V = this._get(e, "showCurrentAtPos"), U = this._get(e, "stepMonths"), Q = 1 !== K[0] || 1 !== K[1], G = this._daylightSavingAdjust(e.currentDay ? new Date(e.currentYear, e.currentMonth, e.currentDay) : new Date(9999, 9, 9)), X = this._getMinMaxDate(e, "min"), $ = this._getMinMaxDate(e, "max"), Z = e.drawMonth - V, et = e.drawYear; if (0 > Z && (Z += 12, et--), $) for (t = this._daylightSavingAdjust(new Date($.getFullYear(), $.getMonth() - K[0] * K[1] + 1, $.getDate())), t = X && X > t ? X : t; this._daylightSavingAdjust(new Date(et, Z, 1)) > t;)Z--, 0 > Z && (Z = 11, et--); for (e.drawMonth = Z, e.drawYear = et, i = this._get(e, "prevText"), i = q ? this.formatDate(i, this._daylightSavingAdjust(new Date(et, Z - U, 1)), this._getFormatConfig(e)) : i, s = this._canAdjustMonth(e, -1, et, Z) ? "<a class='ui-datepicker-prev ui-corner-all' data-handler='prev' data-event='click' title='" + i + "'><span class='ui-icon ui-icon-circle-triangle-" + (Y ? "e" : "w") + "'>" + i + "</span></a>" : J ? "" : "<a class='ui-datepicker-prev ui-corner-all ui-state-disabled' title='" + i + "'><span class='ui-icon ui-icon-circle-triangle-" + (Y ? "e" : "w") + "'>" + i + "</span></a>", n = this._get(e, "nextText"), n = q ? this.formatDate(n, this._daylightSavingAdjust(new Date(et, Z + U, 1)), this._getFormatConfig(e)) : n, a = this._canAdjustMonth(e, 1, et, Z) ? "<a class='ui-datepicker-next ui-corner-all' data-handler='next' data-event='click' title='" + n + "'><span class='ui-icon ui-icon-circle-triangle-" + (Y ? "w" : "e") + "'>" + n + "</span></a>" : J ? "" : "<a class='ui-datepicker-next ui-corner-all ui-state-disabled' title='" + n + "'><span class='ui-icon ui-icon-circle-triangle-" + (Y ? "w" : "e") + "'>" + n + "</span></a>", o = this._get(e, "currentText"), r = this._get(e, "gotoCurrent") && e.currentDay ? G : R, o = q ? this.formatDate(o, r, this._getFormatConfig(e)) : o, h = e.inline ? "" : "<button type='button' class='ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all' data-handler='hide' data-event='click'>" + this._get(e, "closeText") + "</button>", l = B ? "<div class='ui-datepicker-buttonpane ui-widget-content'>" + (Y ? h : "") + (this._isInRange(e, r) ? "<button type='button' class='ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all' data-handler='today' data-event='click'>" + o + "</button>" : "") + (Y ? "" : h) + "</div>" : "", u = parseInt(this._get(e, "firstDay"), 10), u = isNaN(u) ? 0 : u, d = this._get(e, "showWeek"), c = this._get(e, "dayNames"), p = this._get(e, "dayNamesMin"), f = this._get(e, "monthNames"), m = this._get(e, "monthNamesShort"), g = this._get(e, "beforeShowDay"), v = this._get(e, "showOtherMonths"), y = this._get(e, "selectOtherMonths"), b = this._getDefaultDate(e), _ = "", w = 0; K[0] > w; w++) { for (k = "", this.maxRows = 4, T = 0; K[1] > T; T++) { if (D = this._daylightSavingAdjust(new Date(et, Z, e.selectedDay)), S = " ui-corner-all", M = "", Q) { if (M += "<div class='ui-datepicker-group", K[1] > 1) switch (T) { case 0: M += " ui-datepicker-group-first", S = " ui-corner-" + (Y ? "right" : "left"); break; case K[1] - 1: M += " ui-datepicker-group-last", S = " ui-corner-" + (Y ? "left" : "right"); break; default: M += " ui-datepicker-group-middle", S = "" }M += "'>" } for (M += "<div class='ui-datepicker-header ui-widget-header ui-helper-clearfix" + S + "'>" + (/all|left/.test(S) && 0 === w ? Y ? a : s : "") + (/all|right/.test(S) && 0 === w ? Y ? s : a : "") + this._generateMonthYearHeader(e, Z, et, X, $, w > 0 || T > 0, f, m) + "</div><table class='ui-datepicker-calendar'><thead>" + "<tr>", C = d ? "<th class='ui-datepicker-week-col'>" + this._get(e, "weekHeader") + "</th>" : "", x = 0; 7 > x; x++)N = (x + u) % 7, C += "<th scope='col'" + ((x + u + 6) % 7 >= 5 ? " class='ui-datepicker-week-end'" : "") + ">" + "<span title='" + c[N] + "'>" + p[N] + "</span></th>"; for (M += C + "</tr></thead><tbody>", A = this._getDaysInMonth(et, Z), et === e.selectedYear && Z === e.selectedMonth && (e.selectedDay = Math.min(e.selectedDay, A)), P = (this._getFirstDayOfMonth(et, Z) - u + 7) % 7, I = Math.ceil((P + A) / 7), H = Q ? this.maxRows > I ? this.maxRows : I : I, this.maxRows = H, z = this._daylightSavingAdjust(new Date(et, Z, 1 - P)), F = 0; H > F; F++) { for (M += "<tr>", E = d ? "<td class='ui-datepicker-week-col'>" + this._get(e, "calculateWeek")(z) + "</td>" : "", x = 0; 7 > x; x++)O = g ? g.apply(e.input ? e.input[0] : null, [z]) : [!0, ""], j = z.getMonth() !== Z, W = j && !y || !O[0] || X && X > z || $ && z > $, E += "<td class='" + ((x + u + 6) % 7 >= 5 ? " ui-datepicker-week-end" : "") + (j ? " ui-datepicker-other-month" : "") + (z.getTime() === D.getTime() && Z === e.selectedMonth && e._keyEvent || b.getTime() === z.getTime() && b.getTime() === D.getTime() ? " " + this._dayOverClass : "") + (W ? " " + this._unselectableClass + " ui-state-disabled" : "") + (j && !v ? "" : " " + O[1] + (z.getTime() === G.getTime() ? " " + this._currentClass : "") + (z.getTime() === R.getTime() ? " ui-datepicker-today" : "")) + "'" + (j && !v || !O[2] ? "" : " title='" + O[2].replace(/'/g, "&#39;") + "'") + (W ? "" : " data-handler='selectDay' data-event='click' data-month='" + z.getMonth() + "' data-year='" + z.getFullYear() + "'") + ">" + (j && !v ? "&#xa0;" : W ? "<span class='ui-state-default'>" + z.getDate() + "</span>" : "<a class='ui-state-default" + (z.getTime() === R.getTime() ? " ui-state-highlight" : "") + (z.getTime() === G.getTime() ? " ui-state-active" : "") + (j ? " ui-priority-secondary" : "") + "' href='#'>" + z.getDate() + "</a>") + "</td>", z.setDate(z.getDate() + 1), z = this._daylightSavingAdjust(z); M += E + "</tr>" } Z++, Z > 11 && (Z = 0, et++), M += "</tbody></table>" + (Q ? "</div>" + (K[0] > 0 && T === K[1] - 1 ? "<div class='ui-datepicker-row-break'></div>" : "") : ""), k += M } _ += k } return _ += l, e._keyEvent = !1, _ }, _generateMonthYearHeader: function (e, t, i, s, n, a, o, r) { var h, l, u, d, c, p, f, m, g = this._get(e, "changeMonth"), v = this._get(e, "changeYear"), y = this._get(e, "showMonthAfterYear"), b = "<div class='ui-datepicker-title'>", _ = ""; if (a || !g) _ += "<span class='ui-datepicker-month'>" + o[t] + "</span>"; else { for (h = s && s.getFullYear() === i, l = n && n.getFullYear() === i, _ += "<select class='ui-datepicker-month' data-handler='selectMonth' data-event='change'>", u = 0; 12 > u; u++)(!h || u >= s.getMonth()) && (!l || n.getMonth() >= u) && (_ += "<option value='" + u + "'" + (u === t ? " selected='selected'" : "") + ">" + r[u] + "</option>"); _ += "</select>" } if (y || (b += _ + (!a && g && v ? "" : "&#xa0;")), !e.yearshtml) if (e.yearshtml = "", a || !v) b += "<span class='ui-datepicker-year'>" + i + "</span>"; else { for (d = this._get(e, "yearRange").split(":"), c = (new Date).getFullYear(), p = function (e) { var t = e.match(/c[+\-].*/) ? i + parseInt(e.substring(1), 10) : e.match(/[+\-].*/) ? c + parseInt(e, 10) : parseInt(e, 10); return isNaN(t) ? c : t }, f = p(d[0]), m = Math.max(f, p(d[1] || "")), f = s ? Math.max(f, s.getFullYear()) : f, m = n ? Math.min(m, n.getFullYear()) : m, e.yearshtml += "<select class='ui-datepicker-year' data-handler='selectYear' data-event='change'>"; m >= f; f++)e.yearshtml += "<option value='" + f + "'" + (f === i ? " selected='selected'" : "") + ">" + f + "</option>"; e.yearshtml += "</select>", b += e.yearshtml, e.yearshtml = null } return b += this._get(e, "yearSuffix"), y && (b += (!a && g && v ? "" : "&#xa0;") + _), b += "</div>" }, _adjustInstDate: function (e, t, i) { var s = e.drawYear + ("Y" === i ? t : 0), n = e.drawMonth + ("M" === i ? t : 0), a = Math.min(e.selectedDay, this._getDaysInMonth(s, n)) + ("D" === i ? t : 0), o = this._restrictMinMax(e, this._daylightSavingAdjust(new Date(s, n, a))); e.selectedDay = o.getDate(), e.drawMonth = e.selectedMonth = o.getMonth(), e.drawYear = e.selectedYear = o.getFullYear(), ("M" === i || "Y" === i) && this._notifyChange(e) }, _restrictMinMax: function (e, t) { var i = this._getMinMaxDate(e, "min"), s = this._getMinMaxDate(e, "max"), n = i && i > t ? i : t; return s && n > s ? s : n }, _notifyChange: function (e) { var t = this._get(e, "onChangeMonthYear"); t && t.apply(e.input ? e.input[0] : null, [e.selectedYear, e.selectedMonth + 1, e]) }, _getNumberOfMonths: function (e) { var t = this._get(e, "numberOfMonths"); return null == t ? [1, 1] : "number" == typeof t ? [1, t] : t }, _getMinMaxDate: function (e, t) { return this._determineDate(e, this._get(e, t + "Date"), null) }, _getDaysInMonth: function (e, t) { return 32 - this._daylightSavingAdjust(new Date(e, t, 32)).getDate() }, _getFirstDayOfMonth: function (e, t) { return new Date(e, t, 1).getDay() }, _canAdjustMonth: function (e, t, i, s) { var n = this._getNumberOfMonths(e), a = this._daylightSavingAdjust(new Date(i, s + (0 > t ? t : n[0] * n[1]), 1)); return 0 > t && a.setDate(this._getDaysInMonth(a.getFullYear(), a.getMonth())), this._isInRange(e, a) }, _isInRange: function (e, t) { var i, s, n = this._getMinMaxDate(e, "min"), a = this._getMinMaxDate(e, "max"), o = null, r = null, h = this._get(e, "yearRange"); return h && (i = h.split(":"), s = (new Date).getFullYear(), o = parseInt(i[0], 10), r = parseInt(i[1], 10), i[0].match(/[+\-].*/) && (o += s), i[1].match(/[+\-].*/) && (r += s)), (!n || t.getTime() >= n.getTime()) && (!a || t.getTime() <= a.getTime()) && (!o || t.getFullYear() >= o) && (!r || r >= t.getFullYear()) }, _getFormatConfig: function (e) { var t = this._get(e, "shortYearCutoff"); return t = "string" != typeof t ? t : (new Date).getFullYear() % 100 + parseInt(t, 10), { shortYearCutoff: t, dayNamesShort: this._get(e, "dayNamesShort"), dayNames: this._get(e, "dayNames"), monthNamesShort: this._get(e, "monthNamesShort"), monthNames: this._get(e, "monthNames") } }, _formatDate: function (e, t, i, s) { t || (e.currentDay = e.selectedDay, e.currentMonth = e.selectedMonth, e.currentYear = e.selectedYear); var n = t ? "object" == typeof t ? t : this._daylightSavingAdjust(new Date(s, i, t)) : this._daylightSavingAdjust(new Date(e.currentYear, e.currentMonth, e.currentDay)); return this.formatDate(this._get(e, "dateFormat"), n, this._getFormatConfig(e)) } }), e.fn.datepicker = function (t) { if (!this.length) return this; e.datepicker.initialized || (e(document).mousedown(e.datepicker._checkExternalClick), e.datepicker.initialized = !0), 0 === e("#" + e.datepicker._mainDivId).length && e("body").append(e.datepicker.dpDiv); var i = Array.prototype.slice.call(arguments, 1); return "string" != typeof t || "isDisabled" !== t && "getDate" !== t && "widget" !== t ? "option" === t && 2 === arguments.length && "string" == typeof arguments[1] ? e.datepicker["_" + t + "Datepicker"].apply(e.datepicker, [this[0]].concat(i)) : this.each(function () { "string" == typeof t ? e.datepicker["_" + t + "Datepicker"].apply(e.datepicker, [this].concat(i)) : e.datepicker._attachDatepicker(this, t) }) : e.datepicker["_" + t + "Datepicker"].apply(e.datepicker, [this[0]].concat(i)) }, e.datepicker = new n, e.datepicker.initialized = !1, e.datepicker.uuid = (new Date).getTime(), e.datepicker.version = "1.11.4", e.datepicker, e.widget("ui.dialog", { version: "1.11.4", options: { appendTo: "body", autoOpen: !0, buttons: [], closeOnEscape: !0, closeText: "Close", dialogClass: "", draggable: !0, hide: null, height: "auto", maxHeight: null, maxWidth: null, minHeight: 150, minWidth: 150, modal: !1, position: { my: "center", at: "center", of: window, collision: "fit", using: function (t) { var i = e(this).css(t).offset().top; 0 > i && e(this).css("top", t.top - i) } }, resizable: !0, show: null, title: null, width: 300, beforeClose: null, close: null, drag: null, dragStart: null, dragStop: null, focus: null, open: null, resize: null, resizeStart: null, resizeStop: null }, sizeRelatedOptions: { buttons: !0, height: !0, maxHeight: !0, maxWidth: !0, minHeight: !0, minWidth: !0, width: !0 }, resizableRelatedOptions: { maxHeight: !0, maxWidth: !0, minHeight: !0, minWidth: !0 }, _create: function () { this.originalCss = { display: this.element[0].style.display, width: this.element[0].style.width, minHeight: this.element[0].style.minHeight, maxHeight: this.element[0].style.maxHeight, height: this.element[0].style.height }, this.originalPosition = { parent: this.element.parent(), index: this.element.parent().children().index(this.element) }, this.originalTitle = this.element.attr("title"), this.options.title = this.options.title || this.originalTitle, this._createWrapper(), this.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(this.uiDialog), this._createTitlebar(), this._createButtonPane(), this.options.draggable && e.fn.draggable && this._makeDraggable(), this.options.resizable && e.fn.resizable && this._makeResizable(), this._isOpen = !1, this._trackFocus() }, _init: function () { this.options.autoOpen && this.open() }, _appendTo: function () { var t = this.options.appendTo; return t && (t.jquery || t.nodeType) ? e(t) : this.document.find(t || "body").eq(0) }, _destroy: function () { var e, t = this.originalPosition; this._untrackInstance(), this._destroyOverlay(), this.element.removeUniqueId().removeClass("ui-dialog-content ui-widget-content").css(this.originalCss).detach(), this.uiDialog.stop(!0, !0).remove(), this.originalTitle && this.element.attr("title", this.originalTitle), e = t.parent.children().eq(t.index), e.length && e[0] !== this.element[0] ? e.before(this.element) : t.parent.append(this.element) }, widget: function () { return this.uiDialog }, disable: e.noop, enable: e.noop, close: function (t) { var i, s = this; if (this._isOpen && this._trigger("beforeClose", t) !== !1) { if (this._isOpen = !1, this._focusedElement = null, this._destroyOverlay(), this._untrackInstance(), !this.opener.filter(":focusable").focus().length) try { i = this.document[0].activeElement, i && "body" !== i.nodeName.toLowerCase() && e(i).blur() } catch (n) { } this._hide(this.uiDialog, this.options.hide, function () { s._trigger("close", t) }) } }, isOpen: function () { return this._isOpen }, moveToTop: function () { this._moveToTop() }, _moveToTop: function (t, i) { var s = !1, n = this.uiDialog.siblings(".ui-front:visible").map(function () { return +e(this).css("z-index") }).get(), a = Math.max.apply(null, n); return a >= +this.uiDialog.css("z-index") && (this.uiDialog.css("z-index", a + 1), s = !0), s && !i && this._trigger("focus", t), s }, open: function () { var t = this; return this._isOpen ? (this._moveToTop() && this._focusTabbable(), void 0) : (this._isOpen = !0, this.opener = e(this.document[0].activeElement), this._size(), this._position(), this._createOverlay(), this._moveToTop(null, !0), this.overlay && this.overlay.css("z-index", this.uiDialog.css("z-index") - 1), this._show(this.uiDialog, this.options.show, function () { t._focusTabbable(), t._trigger("focus") }), this._makeFocusTarget(), this._trigger("open"), void 0) }, _focusTabbable: function () { var e = this._focusedElement; e || (e = this.element.find("[autofocus]")), e.length || (e = this.element.find(":tabbable")), e.length || (e = this.uiDialogButtonPane.find(":tabbable")), e.length || (e = this.uiDialogTitlebarClose.filter(":tabbable")), e.length || (e = this.uiDialog), e.eq(0).focus() }, _keepFocus: function (t) { function i() { var t = this.document[0].activeElement, i = this.uiDialog[0] === t || e.contains(this.uiDialog[0], t); i || this._focusTabbable() } t.preventDefault(), i.call(this), this._delay(i) }, _createWrapper: function () { this.uiDialog = e("<div>").addClass("ui-dialog ui-widget ui-widget-content ui-corner-all ui-front " + this.options.dialogClass).hide().attr({ tabIndex: -1, role: "dialog" }).appendTo(this._appendTo()), this._on(this.uiDialog, { keydown: function (t) { if (this.options.closeOnEscape && !t.isDefaultPrevented() && t.keyCode && t.keyCode === e.ui.keyCode.ESCAPE) return t.preventDefault(), this.close(t), void 0; if (t.keyCode === e.ui.keyCode.TAB && !t.isDefaultPrevented()) { var i = this.uiDialog.find(":tabbable"), s = i.filter(":first"), n = i.filter(":last"); t.target !== n[0] && t.target !== this.uiDialog[0] || t.shiftKey ? t.target !== s[0] && t.target !== this.uiDialog[0] || !t.shiftKey || (this._delay(function () { n.focus() }), t.preventDefault()) : (this._delay(function () { s.focus() }), t.preventDefault()) } }, mousedown: function (e) { this._moveToTop(e) && this._focusTabbable() } }), this.element.find("[aria-describedby]").length || this.uiDialog.attr({ "aria-describedby": this.element.uniqueId().attr("id") }) }, _createTitlebar: function () { var t; this.uiDialogTitlebar = e("<div>").addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(this.uiDialog), this._on(this.uiDialogTitlebar, { mousedown: function (t) { e(t.target).closest(".ui-dialog-titlebar-close") || this.uiDialog.focus() } }), this.uiDialogTitlebarClose = e("<button type='button'></button>").button({ label: this.options.closeText, icons: { primary: "ui-icon-closethick" }, text: !1 }).addClass("ui-dialog-titlebar-close").appendTo(this.uiDialogTitlebar), this._on(this.uiDialogTitlebarClose, { click: function (e) { e.preventDefault(), this.close(e) } }), t = e("<span>").uniqueId().addClass("ui-dialog-title").prependTo(this.uiDialogTitlebar), this._title(t), this.uiDialog.attr({ "aria-labelledby": t.attr("id") }) }, _title: function (e) { this.options.title || e.html("&#160;"), e.text(this.options.title) }, _createButtonPane: function () { this.uiDialogButtonPane = e("<div>").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"), this.uiButtonSet = e("<div>").addClass("ui-dialog-buttonset").appendTo(this.uiDialogButtonPane), this._createButtons() }, _createButtons: function () { var t = this, i = this.options.buttons; return this.uiDialogButtonPane.remove(), this.uiButtonSet.empty(), e.isEmptyObject(i) || e.isArray(i) && !i.length ? (this.uiDialog.removeClass("ui-dialog-buttons"), void 0) : (e.each(i, function (i, s) { var n, a; s = e.isFunction(s) ? { click: s, text: i } : s, s = e.extend({ type: "button" }, s), n = s.click, s.click = function () { n.apply(t.element[0], arguments) }, a = { icons: s.icons, text: s.showText }, delete s.icons, delete s.showText, e("<button></button>", s).button(a).appendTo(t.uiButtonSet) }), this.uiDialog.addClass("ui-dialog-buttons"), this.uiDialogButtonPane.appendTo(this.uiDialog), void 0) }, _makeDraggable: function () { function t(e) { return { position: e.position, offset: e.offset } } var i = this, s = this.options; this.uiDialog.draggable({ cancel: ".ui-dialog-content, .ui-dialog-titlebar-close", handle: ".ui-dialog-titlebar", containment: "document", start: function (s, n) { e(this).addClass("ui-dialog-dragging"), i._blockFrames(), i._trigger("dragStart", s, t(n)) }, drag: function (e, s) { i._trigger("drag", e, t(s)) }, stop: function (n, a) { var o = a.offset.left - i.document.scrollLeft(), r = a.offset.top - i.document.scrollTop(); s.position = { my: "left top", at: "left" + (o >= 0 ? "+" : "") + o + " " + "top" + (r >= 0 ? "+" : "") + r, of: i.window }, e(this).removeClass("ui-dialog-dragging"), i._unblockFrames(), i._trigger("dragStop", n, t(a)) } }) }, _makeResizable: function () { function t(e) { return { originalPosition: e.originalPosition, originalSize: e.originalSize, position: e.position, size: e.size } } var i = this, s = this.options, n = s.resizable, a = this.uiDialog.css("position"), o = "string" == typeof n ? n : "n,e,s,w,se,sw,ne,nw"; this.uiDialog.resizable({ cancel: ".ui-dialog-content", containment: "document", alsoResize: this.element, maxWidth: s.maxWidth, maxHeight: s.maxHeight, minWidth: s.minWidth, minHeight: this._minHeight(), handles: o, start: function (s, n) { e(this).addClass("ui-dialog-resizing"), i._blockFrames(), i._trigger("resizeStart", s, t(n)) }, resize: function (e, s) { i._trigger("resize", e, t(s)) }, stop: function (n, a) { var o = i.uiDialog.offset(), r = o.left - i.document.scrollLeft(), h = o.top - i.document.scrollTop(); s.height = i.uiDialog.height(), s.width = i.uiDialog.width(), s.position = { my: "left top", at: "left" + (r >= 0 ? "+" : "") + r + " " + "top" + (h >= 0 ? "+" : "") + h, of: i.window }, e(this).removeClass("ui-dialog-resizing"), i._unblockFrames(), i._trigger("resizeStop", n, t(a)) } }).css("position", a) }, _trackFocus: function () { this._on(this.widget(), { focusin: function (t) { this._makeFocusTarget(), this._focusedElement = e(t.target) } }) }, _makeFocusTarget: function () { this._untrackInstance(), this._trackingInstances().unshift(this) }, _untrackInstance: function () { var t = this._trackingInstances(), i = e.inArray(this, t); -1 !== i && t.splice(i, 1) }, _trackingInstances: function () { var e = this.document.data("ui-dialog-instances"); return e || (e = [], this.document.data("ui-dialog-instances", e)), e }, _minHeight: function () { var e = this.options; return "auto" === e.height ? e.minHeight : Math.min(e.minHeight, e.height) }, _position: function () { var e = this.uiDialog.is(":visible"); e || this.uiDialog.show(), this.uiDialog.position(this.options.position), e || this.uiDialog.hide() }, _setOptions: function (t) { var i = this, s = !1, n = {}; e.each(t, function (e, t) { i._setOption(e, t), e in i.sizeRelatedOptions && (s = !0), e in i.resizableRelatedOptions && (n[e] = t) }), s && (this._size(), this._position()), this.uiDialog.is(":data(ui-resizable)") && this.uiDialog.resizable("option", n) }, _setOption: function (e, t) { var i, s, n = this.uiDialog; "dialogClass" === e && n.removeClass(this.options.dialogClass).addClass(t), "disabled" !== e && (this._super(e, t), "appendTo" === e && this.uiDialog.appendTo(this._appendTo()), "buttons" === e && this._createButtons(), "closeText" === e && this.uiDialogTitlebarClose.button({ label: "" + t }), "draggable" === e && (i = n.is(":data(ui-draggable)"), i && !t && n.draggable("destroy"), !i && t && this._makeDraggable()), "position" === e && this._position(), "resizable" === e && (s = n.is(":data(ui-resizable)"), s && !t && n.resizable("destroy"), s && "string" == typeof t && n.resizable("option", "handles", t), s || t === !1 || this._makeResizable()), "title" === e && this._title(this.uiDialogTitlebar.find(".ui-dialog-title"))) }, _size: function () { var e, t, i, s = this.options; this.element.show().css({ width: "auto", minHeight: 0, maxHeight: "none", height: 0 }), s.minWidth > s.width && (s.width = s.minWidth), e = this.uiDialog.css({ height: "auto", width: s.width }).outerHeight(), t = Math.max(0, s.minHeight - e), i = "number" == typeof s.maxHeight ? Math.max(0, s.maxHeight - e) : "none", "auto" === s.height ? this.element.css({ minHeight: t, maxHeight: i, height: "auto" }) : this.element.height(Math.max(0, s.height - e)), this.uiDialog.is(":data(ui-resizable)") && this.uiDialog.resizable("option", "minHeight", this._minHeight()) }, _blockFrames: function () { this.iframeBlocks = this.document.find("iframe").map(function () { var t = e(this); return e("<div>").css({ position: "absolute", width: t.outerWidth(), height: t.outerHeight() }).appendTo(t.parent()).offset(t.offset())[0] }) }, _unblockFrames: function () { this.iframeBlocks && (this.iframeBlocks.remove(), delete this.iframeBlocks) }, _allowInteraction: function (t) { return e(t.target).closest(".ui-dialog").length ? !0 : !!e(t.target).closest(".ui-datepicker").length }, _createOverlay: function () { if (this.options.modal) { var t = !0; this._delay(function () { t = !1 }), this.document.data("ui-dialog-overlays") || this._on(this.document, { focusin: function (e) { t || this._allowInteraction(e) || (e.preventDefault(), this._trackingInstances()[0]._focusTabbable()) } }), this.overlay = e("<div>").addClass("ui-widget-overlay ui-front").appendTo(this._appendTo()), this._on(this.overlay, { mousedown: "_keepFocus" }), this.document.data("ui-dialog-overlays", (this.document.data("ui-dialog-overlays") || 0) + 1) } }, _destroyOverlay: function () { if (this.options.modal && this.overlay) { var e = this.document.data("ui-dialog-overlays") - 1; e ? this.document.data("ui-dialog-overlays", e) : this.document.unbind("focusin").removeData("ui-dialog-overlays"), this.overlay.remove(), this.overlay = null } } }), e.widget("ui.progressbar", { version: "1.11.4", options: { max: 100, value: 0, change: null, complete: null }, min: 0, _create: function () { this.oldValue = this.options.value = this._constrainedValue(), this.element.addClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").attr({ role: "progressbar", "aria-valuemin": this.min }), this.valueDiv = e("<div class='ui-progressbar-value ui-widget-header ui-corner-left'></div>").appendTo(this.element), this._refreshValue() }, _destroy: function () { this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow"), this.valueDiv.remove() }, value: function (e) { return void 0 === e ? this.options.value : (this.options.value = this._constrainedValue(e), this._refreshValue(), void 0) }, _constrainedValue: function (e) { return void 0 === e && (e = this.options.value), this.indeterminate = e === !1, "number" != typeof e && (e = 0), this.indeterminate ? !1 : Math.min(this.options.max, Math.max(this.min, e)) }, _setOptions: function (e) { var t = e.value; delete e.value, this._super(e), this.options.value = this._constrainedValue(t), this._refreshValue() }, _setOption: function (e, t) { "max" === e && (t = Math.max(this.min, t)), "disabled" === e && this.element.toggleClass("ui-state-disabled", !!t).attr("aria-disabled", t), this._super(e, t) }, _percentage: function () { return this.indeterminate ? 100 : 100 * (this.options.value - this.min) / (this.options.max - this.min) }, _refreshValue: function () { var t = this.options.value, i = this._percentage(); this.valueDiv.toggle(this.indeterminate || t > this.min).toggleClass("ui-corner-right", t === this.options.max).width(i.toFixed(0) + "%"), this.element.toggleClass("ui-progressbar-indeterminate", this.indeterminate), this.indeterminate ? (this.element.removeAttr("aria-valuenow"), this.overlayDiv || (this.overlayDiv = e("<div class='ui-progressbar-overlay'></div>").appendTo(this.valueDiv))) : (this.element.attr({ "aria-valuemax": this.options.max, "aria-valuenow": t }), this.overlayDiv && (this.overlayDiv.remove(), this.overlayDiv = null)), this.oldValue !== t && (this.oldValue = t, this._trigger("change")), t === this.options.max && this._trigger("complete") } }), e.widget("ui.selectmenu", { version: "1.11.4", defaultElement: "<select>", options: { appendTo: null, disabled: null, icons: { button: "ui-icon-triangle-1-s" }, position: { my: "left top", at: "left bottom", collision: "none" }, width: null, change: null, close: null, focus: null, open: null, select: null }, _create: function () { var e = this.element.uniqueId().attr("id"); this.ids = { element: e, button: e + "-button", menu: e + "-menu" }, this._drawButton(), this._drawMenu(), this.options.disabled && this.disable() }, _drawButton: function () { var t = this; this.label = e("label[for='" + this.ids.element + "']").attr("for", this.ids.button), this._on(this.label, { click: function (e) { this.button.focus(), e.preventDefault() } }), this.element.hide(), this.button = e("<span>", { "class": "ui-selectmenu-button ui-widget ui-state-default ui-corner-all", tabindex: this.options.disabled ? -1 : 0, id: this.ids.button, role: "combobox", "aria-expanded": "false", "aria-autocomplete": "list", "aria-owns": this.ids.menu, "aria-haspopup": "true" }).insertAfter(this.element), e("<span>", { "class": "ui-icon " + this.options.icons.button }).prependTo(this.button), this.buttonText = e("<span>", { "class": "ui-selectmenu-text" }).appendTo(this.button), this._setText(this.buttonText, this.element.find("option:selected").text()), this._resizeButton(), this._on(this.button, this._buttonEvents), this.button.one("focusin", function () { t.menuItems || t._refreshMenu() }), this._hoverable(this.button), this._focusable(this.button) }, _drawMenu: function () { var t = this; this.menu = e("<ul>", { "aria-hidden": "true", "aria-labelledby": this.ids.button, id: this.ids.menu }), this.menuWrap = e("<div>", { "class": "ui-selectmenu-menu ui-front" }).append(this.menu).appendTo(this._appendTo()), this.menuInstance = this.menu.menu({ role: "listbox", select: function (e, i) { e.preventDefault(), t._setSelection(), t._select(i.item.data("ui-selectmenu-item"), e) }, focus: function (e, i) { var s = i.item.data("ui-selectmenu-item"); null != t.focusIndex && s.index !== t.focusIndex && (t._trigger("focus", e, { item: s }), t.isOpen || t._select(s, e)), t.focusIndex = s.index, t.button.attr("aria-activedescendant", t.menuItems.eq(s.index).attr("id")) } }).menu("instance"), this.menu.addClass("ui-corner-bottom").removeClass("ui-corner-all"), this.menuInstance._off(this.menu, "mouseleave"), this.menuInstance._closeOnDocumentClick = function () { return !1 }, this.menuInstance._isDivider = function () { return !1 } }, refresh: function () { this._refreshMenu(), this._setText(this.buttonText, this._getSelectedItem().text()), this.options.width || this._resizeButton() }, _refreshMenu: function () { this.menu.empty(); var e, t = this.element.find("option"); t.length && (this._parseOptions(t), this._renderMenu(this.menu, this.items), this.menuInstance.refresh(), this.menuItems = this.menu.find("li").not(".ui-selectmenu-optgroup"), e = this._getSelectedItem(), this.menuInstance.focus(null, e), this._setAria(e.data("ui-selectmenu-item")), this._setOption("disabled", this.element.prop("disabled"))) }, open: function (e) { this.options.disabled || (this.menuItems ? (this.menu.find(".ui-state-focus").removeClass("ui-state-focus"), this.menuInstance.focus(null, this._getSelectedItem())) : this._refreshMenu(), this.isOpen = !0, this._toggleAttr(), this._resizeMenu(), this._position(), this._on(this.document, this._documentClick), this._trigger("open", e)) }, _position: function () { this.menuWrap.position(e.extend({ of: this.button }, this.options.position)) }, close: function (e) { this.isOpen && (this.isOpen = !1, this._toggleAttr(), this.range = null, this._off(this.document), this._trigger("close", e)) }, widget: function () { return this.button }, menuWidget: function () { return this.menu }, _renderMenu: function (t, i) { var s = this, n = ""; e.each(i, function (i, a) { a.optgroup !== n && (e("<li>", { "class": "ui-selectmenu-optgroup ui-menu-divider" + (a.element.parent("optgroup").prop("disabled") ? " ui-state-disabled" : ""), text: a.optgroup }).appendTo(t), n = a.optgroup), s._renderItemData(t, a) }) }, _renderItemData: function (e, t) { return this._renderItem(e, t).data("ui-selectmenu-item", t) }, _renderItem: function (t, i) { var s = e("<li>"); return i.disabled && s.addClass("ui-state-disabled"), this._setText(s, i.label), s.appendTo(t) }, _setText: function (e, t) { t ? e.text(t) : e.html("&#160;") }, _move: function (e, t) { var i, s, n = ".ui-menu-item"; this.isOpen ? i = this.menuItems.eq(this.focusIndex) : (i = this.menuItems.eq(this.element[0].selectedIndex), n += ":not(.ui-state-disabled)"), s = "first" === e || "last" === e ? i["first" === e ? "prevAll" : "nextAll"](n).eq(-1) : i[e + "All"](n).eq(0), s.length && this.menuInstance.focus(t, s) }, _getSelectedItem: function () { return this.menuItems.eq(this.element[0].selectedIndex) }, _toggle: function (e) { this[this.isOpen ? "close" : "open"](e) }, _setSelection: function () { var e; this.range && (window.getSelection ? (e = window.getSelection(), e.removeAllRanges(), e.addRange(this.range)) : this.range.select(), this.button.focus()) }, _documentClick: { mousedown: function (t) { this.isOpen && (e(t.target).closest(".ui-selectmenu-menu, #" + this.ids.button).length || this.close(t)) } }, _buttonEvents: { mousedown: function () { var e; window.getSelection ? (e = window.getSelection(), e.rangeCount && (this.range = e.getRangeAt(0))) : this.range = document.selection.createRange() }, click: function (e) { this._setSelection(), this._toggle(e) }, keydown: function (t) { var i = !0; switch (t.keyCode) { case e.ui.keyCode.TAB: case e.ui.keyCode.ESCAPE: this.close(t), i = !1; break; case e.ui.keyCode.ENTER: this.isOpen && this._selectFocusedItem(t); break; case e.ui.keyCode.UP: t.altKey ? this._toggle(t) : this._move("prev", t); break; case e.ui.keyCode.DOWN: t.altKey ? this._toggle(t) : this._move("next", t); break; case e.ui.keyCode.SPACE: this.isOpen ? this._selectFocusedItem(t) : this._toggle(t); break; case e.ui.keyCode.LEFT: this._move("prev", t); break; case e.ui.keyCode.RIGHT: this._move("next", t); break; case e.ui.keyCode.HOME: case e.ui.keyCode.PAGE_UP: this._move("first", t); break; case e.ui.keyCode.END: case e.ui.keyCode.PAGE_DOWN: this._move("last", t); break; default: this.menu.trigger(t), i = !1 }i && t.preventDefault() } }, _selectFocusedItem: function (e) { var t = this.menuItems.eq(this.focusIndex); t.hasClass("ui-state-disabled") || this._select(t.data("ui-selectmenu-item"), e) }, _select: function (e, t) { var i = this.element[0].selectedIndex; this.element[0].selectedIndex = e.index, this._setText(this.buttonText, e.label), this._setAria(e), this._trigger("select", t, { item: e }), e.index !== i && this._trigger("change", t, { item: e }), this.close(t) }, _setAria: function (e) { var t = this.menuItems.eq(e.index).attr("id"); this.button.attr({ "aria-labelledby": t, "aria-activedescendant": t }), this.menu.attr("aria-activedescendant", t) }, _setOption: function (e, t) { "icons" === e && this.button.find("span.ui-icon").removeClass(this.options.icons.button).addClass(t.button), this._super(e, t), "appendTo" === e && this.menuWrap.appendTo(this._appendTo()), "disabled" === e && (this.menuInstance.option("disabled", t), this.button.toggleClass("ui-state-disabled", t).attr("aria-disabled", t), this.element.prop("disabled", t), t ? (this.button.attr("tabindex", -1), this.close()) : this.button.attr("tabindex", 0)), "width" === e && this._resizeButton() }, _appendTo: function () { var t = this.options.appendTo; return t && (t = t.jquery || t.nodeType ? e(t) : this.document.find(t).eq(0)), t && t[0] || (t = this.element.closest(".ui-front")), t.length || (t = this.document[0].body), t }, _toggleAttr: function () { this.button.toggleClass("ui-corner-top", this.isOpen).toggleClass("ui-corner-all", !this.isOpen).attr("aria-expanded", this.isOpen), this.menuWrap.toggleClass("ui-selectmenu-open", this.isOpen), this.menu.attr("aria-hidden", !this.isOpen) }, _resizeButton: function () { var e = this.options.width; e || (e = this.element.show().outerWidth(), this.element.hide()), this.button.outerWidth(e) }, _resizeMenu: function () { this.menu.outerWidth(Math.max(this.button.outerWidth(), this.menu.width("").outerWidth() + 1)) }, _getCreateOptions: function () { return { disabled: this.element.prop("disabled") } }, _parseOptions: function (t) { var i = []; t.each(function (t, s) { var n = e(s), a = n.parent("optgroup"); i.push({ element: n, index: t, value: n.val(), label: n.text(), optgroup: a.attr("label") || "", disabled: a.prop("disabled") || n.prop("disabled") }) }), this.items = i }, _destroy: function () { this.menuWrap.remove(), this.button.remove(), this.element.show(), this.element.removeUniqueId(), this.label.attr("for", this.ids.element) } }), e.widget("ui.slider", e.ui.mouse, { version: "1.11.4", widgetEventPrefix: "slide", options: { animate: !1, distance: 0, max: 100, min: 0, orientation: "horizontal", range: !1, step: 1, value: 0, values: null, change: null, slide: null, start: null, stop: null }, numPages: 5, _create: function () { this._keySliding = !1, this._mouseSliding = !1, this._animateOff = !0, this._handleIndex = null, this._detectOrientation(), this._mouseInit(), this._calculateNewMax(), this.element.addClass("ui-slider ui-slider-" + this.orientation + " ui-widget" + " ui-widget-content" + " ui-corner-all"), this._refresh(), this._setOption("disabled", this.options.disabled), this._animateOff = !1 }, _refresh: function () { this._createRange(), this._createHandles(), this._setupEvents(), this._refreshValue() }, _createHandles: function () { var t, i, s = this.options, n = this.element.find(".ui-slider-handle").addClass("ui-state-default ui-corner-all"), a = "<span class='ui-slider-handle ui-state-default ui-corner-all' tabindex='0'></span>", o = []; for (i = s.values && s.values.length || 1, n.length > i && (n.slice(i).remove(), n = n.slice(0, i)), t = n.length; i > t; t++)o.push(a); this.handles = n.add(e(o.join("")).appendTo(this.element)), this.handle = this.handles.eq(0), this.handles.each(function (t) { e(this).data("ui-slider-handle-index", t) }) }, _createRange: function () { var t = this.options, i = ""; t.range ? (t.range === !0 && (t.values ? t.values.length && 2 !== t.values.length ? t.values = [t.values[0], t.values[0]] : e.isArray(t.values) && (t.values = t.values.slice(0)) : t.values = [this._valueMin(), this._valueMin()]), this.range && this.range.length ? this.range.removeClass("ui-slider-range-min ui-slider-range-max").css({ left: "", bottom: "" }) : (this.range = e("<div></div>").appendTo(this.element), i = "ui-slider-range ui-widget-header ui-corner-all"), this.range.addClass(i + ("min" === t.range || "max" === t.range ? " ui-slider-range-" + t.range : ""))) : (this.range && this.range.remove(), this.range = null) }, _setupEvents: function () { this._off(this.handles), this._on(this.handles, this._handleEvents), this._hoverable(this.handles), this._focusable(this.handles) }, _destroy: function () { this.handles.remove(), this.range && this.range.remove(), this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-widget ui-widget-content ui-corner-all"), this._mouseDestroy() }, _mouseCapture: function (t) { var i, s, n, a, o, r, h, l, u = this, d = this.options; return d.disabled ? !1 : (this.elementSize = { width: this.element.outerWidth(), height: this.element.outerHeight() }, this.elementOffset = this.element.offset(), i = { x: t.pageX, y: t.pageY }, s = this._normValueFromMouse(i), n = this._valueMax() - this._valueMin() + 1, this.handles.each(function (t) { var i = Math.abs(s - u.values(t)); (n > i || n === i && (t === u._lastChangedValue || u.values(t) === d.min)) && (n = i, a = e(this), o = t) }), r = this._start(t, o), r === !1 ? !1 : (this._mouseSliding = !0, this._handleIndex = o, a.addClass("ui-state-active").focus(), h = a.offset(), l = !e(t.target).parents().addBack().is(".ui-slider-handle"), this._clickOffset = l ? { left: 0, top: 0 } : { left: t.pageX - h.left - a.width() / 2, top: t.pageY - h.top - a.height() / 2 - (parseInt(a.css("borderTopWidth"), 10) || 0) - (parseInt(a.css("borderBottomWidth"), 10) || 0) + (parseInt(a.css("marginTop"), 10) || 0) }, this.handles.hasClass("ui-state-hover") || this._slide(t, o, s), this._animateOff = !0, !0)) }, _mouseStart: function () { return !0 }, _mouseDrag: function (e) { var t = { x: e.pageX, y: e.pageY }, i = this._normValueFromMouse(t); return this._slide(e, this._handleIndex, i), !1 }, _mouseStop: function (e) { return this.handles.removeClass("ui-state-active"), this._mouseSliding = !1, this._stop(e, this._handleIndex), this._change(e, this._handleIndex), this._handleIndex = null, this._clickOffset = null, this._animateOff = !1, !1 }, _detectOrientation: function () { this.orientation = "vertical" === this.options.orientation ? "vertical" : "horizontal" }, _normValueFromMouse: function (e) { var t, i, s, n, a; return "horizontal" === this.orientation ? (t = this.elementSize.width, i = e.x - this.elementOffset.left - (this._clickOffset ? this._clickOffset.left : 0)) : (t = this.elementSize.height, i = e.y - this.elementOffset.top - (this._clickOffset ? this._clickOffset.top : 0)), s = i / t, s > 1 && (s = 1), 0 > s && (s = 0), "vertical" === this.orientation && (s = 1 - s), n = this._valueMax() - this._valueMin(), a = this._valueMin() + s * n, this._trimAlignValue(a) }, _start: function (e, t) { var i = { handle: this.handles[t], value: this.value() }; return this.options.values && this.options.values.length && (i.value = this.values(t), i.values = this.values()), this._trigger("start", e, i) }, _slide: function (e, t, i) { var s, n, a; this.options.values && this.options.values.length ? (s = this.values(t ? 0 : 1), 2 === this.options.values.length && this.options.range === !0 && (0 === t && i > s || 1 === t && s > i) && (i = s), i !== this.values(t) && (n = this.values(), n[t] = i, a = this._trigger("slide", e, { handle: this.handles[t], value: i, values: n }), s = this.values(t ? 0 : 1), a !== !1 && this.values(t, i))) : i !== this.value() && (a = this._trigger("slide", e, { handle: this.handles[t], value: i }), a !== !1 && this.value(i)) }, _stop: function (e, t) { var i = { handle: this.handles[t], value: this.value() }; this.options.values && this.options.values.length && (i.value = this.values(t), i.values = this.values()), this._trigger("stop", e, i) }, _change: function (e, t) { if (!this._keySliding && !this._mouseSliding) { var i = { handle: this.handles[t], value: this.value() }; this.options.values && this.options.values.length && (i.value = this.values(t), i.values = this.values()), this._lastChangedValue = t, this._trigger("change", e, i) } }, value: function (e) { return arguments.length ? (this.options.value = this._trimAlignValue(e), this._refreshValue(), this._change(null, 0), void 0) : this._value() }, values: function (t, i) { var s, n, a; if (arguments.length > 1) return this.options.values[t] = this._trimAlignValue(i), this._refreshValue(), this._change(null, t), void 0; if (!arguments.length) return this._values(); if (!e.isArray(arguments[0])) return this.options.values && this.options.values.length ? this._values(t) : this.value(); for (s = this.options.values, n = arguments[0], a = 0; s.length > a; a += 1)s[a] = this._trimAlignValue(n[a]), this._change(null, a); this._refreshValue() }, _setOption: function (t, i) { var s, n = 0; switch ("range" === t && this.options.range === !0 && ("min" === i ? (this.options.value = this._values(0), this.options.values = null) : "max" === i && (this.options.value = this._values(this.options.values.length - 1), this.options.values = null)), e.isArray(this.options.values) && (n = this.options.values.length), "disabled" === t && this.element.toggleClass("ui-state-disabled", !!i), this._super(t, i), t) { case "orientation": this._detectOrientation(), this.element.removeClass("ui-slider-horizontal ui-slider-vertical").addClass("ui-slider-" + this.orientation), this._refreshValue(), this.handles.css("horizontal" === i ? "bottom" : "left", ""); break; case "value": this._animateOff = !0, this._refreshValue(), this._change(null, 0), this._animateOff = !1; break; case "values": for (this._animateOff = !0, this._refreshValue(), s = 0; n > s; s += 1)this._change(null, s); this._animateOff = !1; break; case "step": case "min": case "max": this._animateOff = !0, this._calculateNewMax(), this._refreshValue(), this._animateOff = !1; break; case "range": this._animateOff = !0, this._refresh(), this._animateOff = !1 } }, _value: function () { var e = this.options.value; return e = this._trimAlignValue(e) }, _values: function (e) { var t, i, s; if (arguments.length) return t = this.options.values[e], t = this._trimAlignValue(t); if (this.options.values && this.options.values.length) { for (i = this.options.values.slice(), s = 0; i.length > s; s += 1)i[s] = this._trimAlignValue(i[s]); return i } return [] }, _trimAlignValue: function (e) { if (this._valueMin() >= e) return this._valueMin(); if (e >= this._valueMax()) return this._valueMax(); var t = this.options.step > 0 ? this.options.step : 1, i = (e - this._valueMin()) % t, s = e - i; return 2 * Math.abs(i) >= t && (s += i > 0 ? t : -t), parseFloat(s.toFixed(5)) }, _calculateNewMax: function () { var e = this.options.max, t = this._valueMin(), i = this.options.step, s = Math.floor(+(e - t).toFixed(this._precision()) / i) * i; e = s + t, this.max = parseFloat(e.toFixed(this._precision())) }, _precision: function () { var e = this._precisionOf(this.options.step); return null !== this.options.min && (e = Math.max(e, this._precisionOf(this.options.min))), e }, _precisionOf: function (e) { var t = "" + e, i = t.indexOf("."); return -1 === i ? 0 : t.length - i - 1 }, _valueMin: function () { return this.options.min }, _valueMax: function () { return this.max }, _refreshValue: function () { var t, i, s, n, a, o = this.options.range, r = this.options, h = this, l = this._animateOff ? !1 : r.animate, u = {}; this.options.values && this.options.values.length ? this.handles.each(function (s) { i = 100 * ((h.values(s) - h._valueMin()) / (h._valueMax() - h._valueMin())), u["horizontal" === h.orientation ? "left" : "bottom"] = i + "%", e(this).stop(1, 1)[l ? "animate" : "css"](u, r.animate), h.options.range === !0 && ("horizontal" === h.orientation ? (0 === s && h.range.stop(1, 1)[l ? "animate" : "css"]({ left: i + "%" }, r.animate), 1 === s && h.range[l ? "animate" : "css"]({ width: i - t + "%" }, { queue: !1, duration: r.animate })) : (0 === s && h.range.stop(1, 1)[l ? "animate" : "css"]({ bottom: i + "%" }, r.animate), 1 === s && h.range[l ? "animate" : "css"]({ height: i - t + "%" }, { queue: !1, duration: r.animate }))), t = i }) : (s = this.value(), n = this._valueMin(), a = this._valueMax(), i = a !== n ? 100 * ((s - n) / (a - n)) : 0, u["horizontal" === this.orientation ? "left" : "bottom"] = i + "%", this.handle.stop(1, 1)[l ? "animate" : "css"](u, r.animate), "min" === o && "horizontal" === this.orientation && this.range.stop(1, 1)[l ? "animate" : "css"]({ width: i + "%" }, r.animate), "max" === o && "horizontal" === this.orientation && this.range[l ? "animate" : "css"]({ width: 100 - i + "%" }, { queue: !1, duration: r.animate }), "min" === o && "vertical" === this.orientation && this.range.stop(1, 1)[l ? "animate" : "css"]({ height: i + "%" }, r.animate), "max" === o && "vertical" === this.orientation && this.range[l ? "animate" : "css"]({ height: 100 - i + "%" }, { queue: !1, duration: r.animate })) }, _handleEvents: { keydown: function (t) { var i, s, n, a, o = e(t.target).data("ui-slider-handle-index"); switch (t.keyCode) { case e.ui.keyCode.HOME: case e.ui.keyCode.END: case e.ui.keyCode.PAGE_UP: case e.ui.keyCode.PAGE_DOWN: case e.ui.keyCode.UP: case e.ui.keyCode.RIGHT: case e.ui.keyCode.DOWN: case e.ui.keyCode.LEFT: if (t.preventDefault(), !this._keySliding && (this._keySliding = !0, e(t.target).addClass("ui-state-active"), i = this._start(t, o), i === !1)) return }switch (a = this.options.step, s = n = this.options.values && this.options.values.length ? this.values(o) : this.value(), t.keyCode) { case e.ui.keyCode.HOME: n = this._valueMin(); break; case e.ui.keyCode.END: n = this._valueMax(); break; case e.ui.keyCode.PAGE_UP: n = this._trimAlignValue(s + (this._valueMax() - this._valueMin()) / this.numPages); break; case e.ui.keyCode.PAGE_DOWN: n = this._trimAlignValue(s - (this._valueMax() - this._valueMin()) / this.numPages); break; case e.ui.keyCode.UP: case e.ui.keyCode.RIGHT: if (s === this._valueMax()) return; n = this._trimAlignValue(s + a); break; case e.ui.keyCode.DOWN: case e.ui.keyCode.LEFT: if (s === this._valueMin()) return; n = this._trimAlignValue(s - a) }this._slide(t, o, n) }, keyup: function (t) { var i = e(t.target).data("ui-slider-handle-index"); this._keySliding && (this._keySliding = !1, this._stop(t, i), this._change(t, i), e(t.target).removeClass("ui-state-active")) } } }), e.widget("ui.spinner", { version: "1.11.4", defaultElement: "<input>", widgetEventPrefix: "spin", options: { culture: null, icons: { down: "ui-icon-triangle-1-s", up: "ui-icon-triangle-1-n" }, incremental: !0, max: null, min: null, numberFormat: null, page: 10, step: 1, change: null, spin: null, start: null, stop: null }, _create: function () { this._setOption("max", this.options.max), this._setOption("min", this.options.min), this._setOption("step", this.options.step), "" !== this.value() && this._value(this.element.val(), !0), this._draw(), this._on(this._events), this._refresh(), this._on(this.window, { beforeunload: function () { this.element.removeAttr("autocomplete") } }) }, _getCreateOptions: function () { var t = {}, i = this.element; return e.each(["min", "max", "step"], function (e, s) { var n = i.attr(s); void 0 !== n && n.length && (t[s] = n) }), t }, _events: { keydown: function (e) { this._start(e) && this._keydown(e) && e.preventDefault() }, keyup: "_stop", focus: function () { this.previous = this.element.val() }, blur: function (e) { return this.cancelBlur ? (delete this.cancelBlur, void 0) : (this._stop(), this._refresh(), this.previous !== this.element.val() && this._trigger("change", e), void 0) }, mousewheel: function (e, t) { if (t) { if (!this.spinning && !this._start(e)) return !1; this._spin((t > 0 ? 1 : -1) * this.options.step, e), clearTimeout(this.mousewheelTimer), this.mousewheelTimer = this._delay(function () { this.spinning && this._stop(e) }, 100), e.preventDefault() } }, "mousedown .ui-spinner-button": function (t) { function i() { var e = this.element[0] === this.document[0].activeElement; e || (this.element.focus(), this.previous = s, this._delay(function () { this.previous = s })) } var s; s = this.element[0] === this.document[0].activeElement ? this.previous : this.element.val(), t.preventDefault(), i.call(this), this.cancelBlur = !0, this._delay(function () { delete this.cancelBlur, i.call(this) }), this._start(t) !== !1 && this._repeat(null, e(t.currentTarget).hasClass("ui-spinner-up") ? 1 : -1, t) }, "mouseup .ui-spinner-button": "_stop", "mouseenter .ui-spinner-button": function (t) { return e(t.currentTarget).hasClass("ui-state-active") ? this._start(t) === !1 ? !1 : (this._repeat(null, e(t.currentTarget).hasClass("ui-spinner-up") ? 1 : -1, t), void 0) : void 0 }, "mouseleave .ui-spinner-button": "_stop" }, _draw: function () { var e = this.uiSpinner = this.element.addClass("ui-spinner-input").attr("autocomplete", "off").wrap(this._uiSpinnerHtml()).parent().append(this._buttonHtml()); this.element.attr("role", "spinbutton"), this.buttons = e.find(".ui-spinner-button").attr("tabIndex", -1).button().removeClass("ui-corner-all"), this.buttons.height() > Math.ceil(.5 * e.height()) && e.height() > 0 && e.height(e.height()), this.options.disabled && this.disable() }, _keydown: function (t) { var i = this.options, s = e.ui.keyCode; switch (t.keyCode) { case s.UP: return this._repeat(null, 1, t), !0; case s.DOWN: return this._repeat(null, -1, t), !0; case s.PAGE_UP: return this._repeat(null, i.page, t), !0; case s.PAGE_DOWN: return this._repeat(null, -i.page, t), !0 }return !1 }, _uiSpinnerHtml: function () { return "<span class='ui-spinner ui-widget ui-widget-content ui-corner-all'></span>" }, _buttonHtml: function () { return "<a class='ui-spinner-button ui-spinner-up ui-corner-tr'><span class='ui-icon " + this.options.icons.up + "'>&#9650;</span>" + "</a>" + "<a class='ui-spinner-button ui-spinner-down ui-corner-br'>" + "<span class='ui-icon " + this.options.icons.down + "'>&#9660;</span>" + "</a>" }, _start: function (e) { return this.spinning || this._trigger("start", e) !== !1 ? (this.counter || (this.counter = 1), this.spinning = !0, !0) : !1 }, _repeat: function (e, t, i) { e = e || 500, clearTimeout(this.timer), this.timer = this._delay(function () { this._repeat(40, t, i) }, e), this._spin(t * this.options.step, i) }, _spin: function (e, t) { var i = this.value() || 0; this.counter || (this.counter = 1), i = this._adjustValue(i + e * this._increment(this.counter)), this.spinning && this._trigger("spin", t, { value: i }) === !1 || (this._value(i), this.counter++) }, _increment: function (t) { var i = this.options.incremental; return i ? e.isFunction(i) ? i(t) : Math.floor(t * t * t / 5e4 - t * t / 500 + 17 * t / 200 + 1) : 1 }, _precision: function () { var e = this._precisionOf(this.options.step); return null !== this.options.min && (e = Math.max(e, this._precisionOf(this.options.min))), e }, _precisionOf: function (e) { var t = "" + e, i = t.indexOf("."); return -1 === i ? 0 : t.length - i - 1 }, _adjustValue: function (e) { var t, i, s = this.options; return t = null !== s.min ? s.min : 0, i = e - t, i = Math.round(i / s.step) * s.step, e = t + i, e = parseFloat(e.toFixed(this._precision())), null !== s.max && e > s.max ? s.max : null !== s.min && s.min > e ? s.min : e }, _stop: function (e) { this.spinning && (clearTimeout(this.timer), clearTimeout(this.mousewheelTimer), this.counter = 0, this.spinning = !1, this._trigger("stop", e)) }, _setOption: function (e, t) { if ("culture" === e || "numberFormat" === e) { var i = this._parse(this.element.val()); return this.options[e] = t, this.element.val(this._format(i)), void 0 } ("max" === e || "min" === e || "step" === e) && "string" == typeof t && (t = this._parse(t)), "icons" === e && (this.buttons.first().find(".ui-icon").removeClass(this.options.icons.up).addClass(t.up), this.buttons.last().find(".ui-icon").removeClass(this.options.icons.down).addClass(t.down)), this._super(e, t), "disabled" === e && (this.widget().toggleClass("ui-state-disabled", !!t), this.element.prop("disabled", !!t), this.buttons.button(t ? "disable" : "enable")) }, _setOptions: h(function (e) { this._super(e) }), _parse: function (e) { return "string" == typeof e && "" !== e && (e = window.Globalize && this.options.numberFormat ? Globalize.parseFloat(e, 10, this.options.culture) : +e), "" === e || isNaN(e) ? null : e }, _format: function (e) { return "" === e ? "" : window.Globalize && this.options.numberFormat ? Globalize.format(e, this.options.numberFormat, this.options.culture) : e }, _refresh: function () { this.element.attr({ "aria-valuemin": this.options.min, "aria-valuemax": this.options.max, "aria-valuenow": this._parse(this.element.val()) }) }, isValid: function () { var e = this.value(); return null === e ? !1 : e === this._adjustValue(e) }, _value: function (e, t) { var i; "" !== e && (i = this._parse(e), null !== i && (t || (i = this._adjustValue(i)), e = this._format(i))), this.element.val(e), this._refresh() }, _destroy: function () { this.element.removeClass("ui-spinner-input").prop("disabled", !1).removeAttr("autocomplete").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow"), this.uiSpinner.replaceWith(this.element) }, stepUp: h(function (e) { this._stepUp(e) }), _stepUp: function (e) { this._start() && (this._spin((e || 1) * this.options.step), this._stop()) }, stepDown: h(function (e) { this._stepDown(e) }), _stepDown: function (e) { this._start() && (this._spin((e || 1) * -this.options.step), this._stop()) }, pageUp: h(function (e) { this._stepUp((e || 1) * this.options.page) }), pageDown: h(function (e) { this._stepDown((e || 1) * this.options.page) }), value: function (e) { return arguments.length ? (h(this._value).call(this, e), void 0) : this._parse(this.element.val()) }, widget: function () { return this.uiSpinner } }), e.widget("ui.tabs", { version: "1.11.4", delay: 300, options: { active: null, collapsible: !1, event: "click", heightStyle: "content", hide: null, show: null, activate: null, beforeActivate: null, beforeLoad: null, load: null }, _isLocal: function () { var e = /#.*$/; return function (t) { var i, s; t = t.cloneNode(!1), i = t.href.replace(e, ""), s = location.href.replace(e, ""); try { i = decodeURIComponent(i) } catch (n) { } try { s = decodeURIComponent(s) } catch (n) { } return t.hash.length > 1 && i === s } }(), _create: function () { var t = this, i = this.options; this.running = !1, this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all").toggleClass("ui-tabs-collapsible", i.collapsible), this._processTabs(), i.active = this._initialActive(), e.isArray(i.disabled) && (i.disabled = e.unique(i.disabled.concat(e.map(this.tabs.filter(".ui-state-disabled"), function (e) { return t.tabs.index(e) }))).sort()), this.active = this.options.active !== !1 && this.anchors.length ? this._findActive(i.active) : e(), this._refresh(), this.active.length && this.load(i.active) }, _initialActive: function () { var t = this.options.active, i = this.options.collapsible, s = location.hash.substring(1); return null === t && (s && this.tabs.each(function (i, n) { return e(n).attr("aria-controls") === s ? (t = i, !1) : void 0 }), null === t && (t = this.tabs.index(this.tabs.filter(".ui-tabs-active"))), (null === t || -1 === t) && (t = this.tabs.length ? 0 : !1)), t !== !1 && (t = this.tabs.index(this.tabs.eq(t)), -1 === t && (t = i ? !1 : 0)), !i && t === !1 && this.anchors.length && (t = 0), t }, _getCreateEventData: function () { return { tab: this.active, panel: this.active.length ? this._getPanelForTab(this.active) : e() } }, _tabKeydown: function (t) { var i = e(this.document[0].activeElement).closest("li"), s = this.tabs.index(i), n = !0; if (!this._handlePageNav(t)) { switch (t.keyCode) { case e.ui.keyCode.RIGHT: case e.ui.keyCode.DOWN: s++; break; case e.ui.keyCode.UP: case e.ui.keyCode.LEFT: n = !1, s--; break; case e.ui.keyCode.END: s = this.anchors.length - 1; break; case e.ui.keyCode.HOME: s = 0; break; case e.ui.keyCode.SPACE: return t.preventDefault(), clearTimeout(this.activating), this._activate(s), void 0; case e.ui.keyCode.ENTER: return t.preventDefault(), clearTimeout(this.activating), this._activate(s === this.options.active ? !1 : s), void 0; default: return }t.preventDefault(), clearTimeout(this.activating), s = this._focusNextTab(s, n), t.ctrlKey || t.metaKey || (i.attr("aria-selected", "false"), this.tabs.eq(s).attr("aria-selected", "true"), this.activating = this._delay(function () { this.option("active", s) }, this.delay)) } }, _panelKeydown: function (t) { this._handlePageNav(t) || t.ctrlKey && t.keyCode === e.ui.keyCode.UP && (t.preventDefault(), this.active.focus()) }, _handlePageNav: function (t) { return t.altKey && t.keyCode === e.ui.keyCode.PAGE_UP ? (this._activate(this._focusNextTab(this.options.active - 1, !1)), !0) : t.altKey && t.keyCode === e.ui.keyCode.PAGE_DOWN ? (this._activate(this._focusNextTab(this.options.active + 1, !0)), !0) : void 0 }, _findNextTab: function (t, i) { function s() { return t > n && (t = 0), 0 > t && (t = n), t } for (var n = this.tabs.length - 1; -1 !== e.inArray(s(), this.options.disabled);)t = i ? t + 1 : t - 1; return t }, _focusNextTab: function (e, t) { return e = this._findNextTab(e, t), this.tabs.eq(e).focus(), e }, _setOption: function (e, t) { return "active" === e ? (this._activate(t), void 0) : "disabled" === e ? (this._setupDisabled(t), void 0) : (this._super(e, t), "collapsible" === e && (this.element.toggleClass("ui-tabs-collapsible", t), t || this.options.active !== !1 || this._activate(0)), "event" === e && this._setupEvents(t), "heightStyle" === e && this._setupHeightStyle(t), void 0) }, _sanitizeSelector: function (e) { return e ? e.replace(/[!"$%&'()*+,.\/:;<=>?@\[\]\^`{|}~]/g, "\\$&") : "" }, refresh: function () { var t = this.options, i = this.tablist.children(":has(a[href])"); t.disabled = e.map(i.filter(".ui-state-disabled"), function (e) { return i.index(e) }), this._processTabs(), t.active !== !1 && this.anchors.length ? this.active.length && !e.contains(this.tablist[0], this.active[0]) ? this.tabs.length === t.disabled.length ? (t.active = !1, this.active = e()) : this._activate(this._findNextTab(Math.max(0, t.active - 1), !1)) : t.active = this.tabs.index(this.active) : (t.active = !1, this.active = e()), this._refresh() }, _refresh: function () { this._setupDisabled(this.options.disabled), this._setupEvents(this.options.event), this._setupHeightStyle(this.options.heightStyle), this.tabs.not(this.active).attr({ "aria-selected": "false", "aria-expanded": "false", tabIndex: -1 }), this.panels.not(this._getPanelForTab(this.active)).hide().attr({ "aria-hidden": "true" }), this.active.length ? (this.active.addClass("ui-tabs-active ui-state-active").attr({ "aria-selected": "true", "aria-expanded": "true", tabIndex: 0 }), this._getPanelForTab(this.active).show().attr({ "aria-hidden": "false" })) : this.tabs.eq(0).attr("tabIndex", 0) }, _processTabs: function () { var t = this, i = this.tabs, s = this.anchors, n = this.panels; this.tablist = this._getList().addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all").attr("role", "tablist").delegate("> li", "mousedown" + this.eventNamespace, function (t) { e(this).is(".ui-state-disabled") && t.preventDefault() }).delegate(".ui-tabs-anchor", "focus" + this.eventNamespace, function () { e(this).closest("li").is(".ui-state-disabled") && this.blur() }), this.tabs = this.tablist.find("> li:has(a[href])").addClass("ui-state-default ui-corner-top").attr({ role: "tab", tabIndex: -1 }), this.anchors = this.tabs.map(function () { return e("a", this)[0] }).addClass("ui-tabs-anchor").attr({ role: "presentation", tabIndex: -1 }), this.panels = e(), this.anchors.each(function (i, s) { var n, a, o, r = e(s).uniqueId().attr("id"), h = e(s).closest("li"), l = h.attr("aria-controls"); t._isLocal(s) ? (n = s.hash, o = n.substring(1), a = t.element.find(t._sanitizeSelector(n))) : (o = h.attr("aria-controls") || e({}).uniqueId()[0].id, n = "#" + o, a = t.element.find(n), a.length || (a = t._createPanel(o), a.insertAfter(t.panels[i - 1] || t.tablist)), a.attr("aria-live", "polite")), a.length && (t.panels = t.panels.add(a)), l && h.data("ui-tabs-aria-controls", l), h.attr({ "aria-controls": o, "aria-labelledby": r }), a.attr("aria-labelledby", r) }), this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").attr("role", "tabpanel"), i && (this._off(i.not(this.tabs)), this._off(s.not(this.anchors)), this._off(n.not(this.panels))) }, _getList: function () { return this.tablist || this.element.find("ol,ul").eq(0) }, _createPanel: function (t) { return e("<div>").attr("id", t).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").data("ui-tabs-destroy", !0) }, _setupDisabled: function (t) { e.isArray(t) && (t.length ? t.length === this.anchors.length && (t = !0) : t = !1); for (var i, s = 0; i = this.tabs[s]; s++)t === !0 || -1 !== e.inArray(s, t) ? e(i).addClass("ui-state-disabled").attr("aria-disabled", "true") : e(i).removeClass("ui-state-disabled").removeAttr("aria-disabled"); this.options.disabled = t }, _setupEvents: function (t) { var i = {}; t && e.each(t.split(" "), function (e, t) { i[t] = "_eventHandler" }), this._off(this.anchors.add(this.tabs).add(this.panels)), this._on(!0, this.anchors, { click: function (e) { e.preventDefault() } }), this._on(this.anchors, i), this._on(this.tabs, { keydown: "_tabKeydown" }), this._on(this.panels, { keydown: "_panelKeydown" }), this._focusable(this.tabs), this._hoverable(this.tabs) }, _setupHeightStyle: function (t) { var i, s = this.element.parent(); "fill" === t ? (i = s.height(), i -= this.element.outerHeight() - this.element.height(), this.element.siblings(":visible").each(function () { var t = e(this), s = t.css("position"); "absolute" !== s && "fixed" !== s && (i -= t.outerHeight(!0)) }), this.element.children().not(this.panels).each(function () { i -= e(this).outerHeight(!0) }), this.panels.each(function () { e(this).height(Math.max(0, i - e(this).innerHeight() + e(this).height())) }).css("overflow", "auto")) : "auto" === t && (i = 0, this.panels.each(function () { i = Math.max(i, e(this).height("").height()) }).height(i)) }, _eventHandler: function (t) { var i = this.options, s = this.active, n = e(t.currentTarget), a = n.closest("li"), o = a[0] === s[0], r = o && i.collapsible, h = r ? e() : this._getPanelForTab(a), l = s.length ? this._getPanelForTab(s) : e(), u = { oldTab: s, oldPanel: l, newTab: r ? e() : a, newPanel: h }; t.preventDefault(), a.hasClass("ui-state-disabled") || a.hasClass("ui-tabs-loading") || this.running || o && !i.collapsible || this._trigger("beforeActivate", t, u) === !1 || (i.active = r ? !1 : this.tabs.index(a), this.active = o ? e() : a, this.xhr && this.xhr.abort(), l.length || h.length || e.error("jQuery UI Tabs: Mismatching fragment identifier."), h.length && this.load(this.tabs.index(a), t), this._toggle(t, u)) }, _toggle: function (t, i) { function s() { a.running = !1, a._trigger("activate", t, i) } function n() { i.newTab.closest("li").addClass("ui-tabs-active ui-state-active"), o.length && a.options.show ? a._show(o, a.options.show, s) : (o.show(), s()) } var a = this, o = i.newPanel, r = i.oldPanel; this.running = !0, r.length && this.options.hide ? this._hide(r, this.options.hide, function () { i.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active"), n() }) : (i.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active"), r.hide(), n()), r.attr("aria-hidden", "true"), i.oldTab.attr({ "aria-selected": "false", "aria-expanded": "false" }), o.length && r.length ? i.oldTab.attr("tabIndex", -1) : o.length && this.tabs.filter(function () { return 0 === e(this).attr("tabIndex") }).attr("tabIndex", -1), o.attr("aria-hidden", "false"), i.newTab.attr({ "aria-selected": "true", "aria-expanded": "true", tabIndex: 0 }) }, _activate: function (t) { var i, s = this._findActive(t); s[0] !== this.active[0] && (s.length || (s = this.active), i = s.find(".ui-tabs-anchor")[0], this._eventHandler({ target: i, currentTarget: i, preventDefault: e.noop })) }, _findActive: function (t) { return t === !1 ? e() : this.tabs.eq(t) }, _getIndex: function (e) { return "string" == typeof e && (e = this.anchors.index(this.anchors.filter("[href$='" + e + "']"))), e }, _destroy: function () { this.xhr && this.xhr.abort(), this.element.removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible"), this.tablist.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all").removeAttr("role"), this.anchors.removeClass("ui-tabs-anchor").removeAttr("role").removeAttr("tabIndex").removeUniqueId(), this.tablist.unbind(this.eventNamespace), this.tabs.add(this.panels).each(function () { e.data(this, "ui-tabs-destroy") ? e(this).remove() : e(this).removeClass("ui-state-default ui-state-active ui-state-disabled ui-corner-top ui-corner-bottom ui-widget-content ui-tabs-active ui-tabs-panel").removeAttr("tabIndex").removeAttr("aria-live").removeAttr("aria-busy").removeAttr("aria-selected").removeAttr("aria-labelledby").removeAttr("aria-hidden").removeAttr("aria-expanded").removeAttr("role") }), this.tabs.each(function () { var t = e(this), i = t.data("ui-tabs-aria-controls"); i ? t.attr("aria-controls", i).removeData("ui-tabs-aria-controls") : t.removeAttr("aria-controls") }), this.panels.show(), "content" !== this.options.heightStyle && this.panels.css("height", "") }, enable: function (t) { var i = this.options.disabled; i !== !1 && (void 0 === t ? i = !1 : (t = this._getIndex(t), i = e.isArray(i) ? e.map(i, function (e) { return e !== t ? e : null }) : e.map(this.tabs, function (e, i) { return i !== t ? i : null })), this._setupDisabled(i)) }, disable: function (t) { var i = this.options.disabled; if (i !== !0) { if (void 0 === t) i = !0; else { if (t = this._getIndex(t), -1 !== e.inArray(t, i)) return; i = e.isArray(i) ? e.merge([t], i).sort() : [t] } this._setupDisabled(i) } }, load: function (t, i) { t = this._getIndex(t); var s = this, n = this.tabs.eq(t), a = n.find(".ui-tabs-anchor"), o = this._getPanelForTab(n), r = { tab: n, panel: o }, h = function (e, t) { "abort" === t && s.panels.stop(!1, !0), n.removeClass("ui-tabs-loading"), o.removeAttr("aria-busy"), e === s.xhr && delete s.xhr }; this._isLocal(a[0]) || (this.xhr = e.ajax(this._ajaxSettings(a, i, r)), this.xhr && "canceled" !== this.xhr.statusText && (n.addClass("ui-tabs-loading"), o.attr("aria-busy", "true"), this.xhr.done(function (e, t, n) { setTimeout(function () { o.html(e), s._trigger("load", i, r), h(n, t) }, 1) }).fail(function (e, t) { setTimeout(function () { h(e, t) }, 1) }))) }, _ajaxSettings: function (t, i, s) { var n = this; return { url: t.attr("href"), beforeSend: function (t, a) { return n._trigger("beforeLoad", i, e.extend({ jqXHR: t, ajaxSettings: a }, s)) } } }, _getPanelForTab: function (t) { var i = e(t).attr("aria-controls"); return this.element.find(this._sanitizeSelector("#" + i)) } }), e.widget("ui.tooltip", { version: "1.11.4", options: { content: function () { var t = e(this).attr("title") || ""; return e("<a>").text(t).html() }, hide: !0, items: "[title]:not([disabled])", position: { my: "left top+15", at: "left bottom", collision: "flipfit flip" }, show: !0, tooltipClass: null, track: !1, close: null, open: null }, _addDescribedBy: function (t, i) { var s = (t.attr("aria-describedby") || "").split(/\s+/); s.push(i), t.data("ui-tooltip-id", i).attr("aria-describedby", e.trim(s.join(" "))) }, _removeDescribedBy: function (t) { var i = t.data("ui-tooltip-id"), s = (t.attr("aria-describedby") || "").split(/\s+/), n = e.inArray(i, s); -1 !== n && s.splice(n, 1), t.removeData("ui-tooltip-id"), s = e.trim(s.join(" ")), s ? t.attr("aria-describedby", s) : t.removeAttr("aria-describedby") }, _create: function () { this._on({ mouseover: "open", focusin: "open" }), this.tooltips = {}, this.parents = {}, this.options.disabled && this._disable(), this.liveRegion = e("<div>").attr({ role: "log", "aria-live": "assertive", "aria-relevant": "additions" }).addClass("ui-helper-hidden-accessible").appendTo(this.document[0].body) }, _setOption: function (t, i) { var s = this; return "disabled" === t ? (this[i ? "_disable" : "_enable"](), this.options[t] = i, void 0) : (this._super(t, i), "content" === t && e.each(this.tooltips, function (e, t) { s._updateContent(t.element) }), void 0) }, _disable: function () { var t = this; e.each(this.tooltips, function (i, s) { var n = e.Event("blur"); n.target = n.currentTarget = s.element[0], t.close(n, !0) }), this.element.find(this.options.items).addBack().each(function () { var t = e(this); t.is("[title]") && t.data("ui-tooltip-title", t.attr("title")).removeAttr("title") }) }, _enable: function () { this.element.find(this.options.items).addBack().each(function () { var t = e(this); t.data("ui-tooltip-title") && t.attr("title", t.data("ui-tooltip-title")) }) }, open: function (t) { var i = this, s = e(t ? t.target : this.element).closest(this.options.items); s.length && !s.data("ui-tooltip-id") && (s.attr("title") && s.data("ui-tooltip-title", s.attr("title")), s.data("ui-tooltip-open", !0), t && "mouseover" === t.type && s.parents().each(function () { var t, s = e(this); s.data("ui-tooltip-open") && (t = e.Event("blur"), t.target = t.currentTarget = this, i.close(t, !0)), s.attr("title") && (s.uniqueId(), i.parents[this.id] = { element: this, title: s.attr("title") }, s.attr("title", "")) }), this._registerCloseHandlers(t, s), this._updateContent(s, t)) }, _updateContent: function (e, t) { var i, s = this.options.content, n = this, a = t ? t.type : null; return "string" == typeof s ? this._open(t, e, s) : (i = s.call(e[0], function (i) { n._delay(function () { e.data("ui-tooltip-open") && (t && (t.type = a), this._open(t, e, i)) }) }), i && this._open(t, e, i), void 0) }, _open: function (t, i, s) { function n(e) { l.of = e, o.is(":hidden") || o.position(l) } var a, o, r, h, l = e.extend({}, this.options.position); if (s) { if (a = this._find(i)) return a.tooltip.find(".ui-tooltip-content").html(s), void 0; i.is("[title]") && (t && "mouseover" === t.type ? i.attr("title", "") : i.removeAttr("title")), a = this._tooltip(i), o = a.tooltip, this._addDescribedBy(i, o.attr("id")), o.find(".ui-tooltip-content").html(s), this.liveRegion.children().hide(), s.clone ? (h = s.clone(), h.removeAttr("id").find("[id]").removeAttr("id")) : h = s, e("<div>").html(h).appendTo(this.liveRegion), this.options.track && t && /^mouse/.test(t.type) ? (this._on(this.document, { mousemove: n }), n(t)) : o.position(e.extend({ of: i }, this.options.position)), o.hide(), this._show(o, this.options.show), this.options.show && this.options.show.delay && (r = this.delayedShow = setInterval(function () { o.is(":visible") && (n(l.of), clearInterval(r)) }, e.fx.interval)), this._trigger("open", t, { tooltip: o }) } }, _registerCloseHandlers: function (t, i) { var s = { keyup: function (t) { if (t.keyCode === e.ui.keyCode.ESCAPE) { var s = e.Event(t); s.currentTarget = i[0], this.close(s, !0) } } }; i[0] !== this.element[0] && (s.remove = function () { this._removeTooltip(this._find(i).tooltip) }), t && "mouseover" !== t.type || (s.mouseleave = "close"), t && "focusin" !== t.type || (s.focusout = "close"), this._on(!0, i, s) }, close: function (t) { var i, s = this, n = e(t ? t.currentTarget : this.element), a = this._find(n); return a ? (i = a.tooltip, a.closing || (clearInterval(this.delayedShow), n.data("ui-tooltip-title") && !n.attr("title") && n.attr("title", n.data("ui-tooltip-title")), this._removeDescribedBy(n), a.hiding = !0, i.stop(!0), this._hide(i, this.options.hide, function () { s._removeTooltip(e(this)) }), n.removeData("ui-tooltip-open"), this._off(n, "mouseleave focusout keyup"), n[0] !== this.element[0] && this._off(n, "remove"), this._off(this.document, "mousemove"), t && "mouseleave" === t.type && e.each(this.parents, function (t, i) { e(i.element).attr("title", i.title), delete s.parents[t] }), a.closing = !0, this._trigger("close", t, { tooltip: i }), a.hiding || (a.closing = !1)), void 0) : (n.removeData("ui-tooltip-open"), void 0) }, _tooltip: function (t) { var i = e("<div>").attr("role", "tooltip").addClass("ui-tooltip ui-widget ui-corner-all ui-widget-content " + (this.options.tooltipClass || "")), s = i.uniqueId().attr("id"); return e("<div>").addClass("ui-tooltip-content").appendTo(i), i.appendTo(this.document[0].body), this.tooltips[s] = { element: t, tooltip: i } }, _find: function (e) { var t = e.data("ui-tooltip-id"); return t ? this.tooltips[t] : null }, _removeTooltip: function (e) { e.remove(), delete this.tooltips[e.attr("id")] }, _destroy: function () { var t = this; e.each(this.tooltips, function (i, s) { var n = e.Event("blur"), a = s.element; n.target = n.currentTarget = a[0], t.close(n, !0), e("#" + i).remove(), a.data("ui-tooltip-title") && (a.attr("title") || a.attr("title", a.data("ui-tooltip-title")), a.removeData("ui-tooltip-title")) }), this.liveRegion.remove() } }); var y = "ui-effects-", b = e; e.effects = { effect: {} }, function (e, t) { function i(e, t, i) { var s = d[t.type] || {}; return null == e ? i || !t.def ? null : t.def : (e = s.floor ? ~~e : parseFloat(e), isNaN(e) ? t.def : s.mod ? (e + s.mod) % s.mod : 0 > e ? 0 : e > s.max ? s.max : e) } function s(i) { var s = l(), n = s._rgba = []; return i = i.toLowerCase(), f(h, function (e, a) { var o, r = a.re.exec(i), h = r && a.parse(r), l = a.space || "rgba"; return h ? (o = s[l](h), s[u[l].cache] = o[u[l].cache], n = s._rgba = o._rgba, !1) : t }), n.length ? ("0,0,0,0" === n.join() && e.extend(n, a.transparent), s) : a[i] } function n(e, t, i) { return i = (i + 1) % 1, 1 > 6 * i ? e + 6 * (t - e) * i : 1 > 2 * i ? t : 2 > 3 * i ? e + 6 * (t - e) * (2 / 3 - i) : e } var a, o = "backgroundColor borderBottomColor borderLeftColor borderRightColor borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor", r = /^([\-+])=\s*(\d+\.?\d*)/, h = [{ re: /rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/, parse: function (e) { return [e[1], e[2], e[3], e[4]] } }, { re: /rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/, parse: function (e) { return [2.55 * e[1], 2.55 * e[2], 2.55 * e[3], e[4]] } }, { re: /#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})/, parse: function (e) { return [parseInt(e[1], 16), parseInt(e[2], 16), parseInt(e[3], 16)] } }, { re: /#([a-f0-9])([a-f0-9])([a-f0-9])/, parse: function (e) { return [parseInt(e[1] + e[1], 16), parseInt(e[2] + e[2], 16), parseInt(e[3] + e[3], 16)] } }, { re: /hsla?\(\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/, space: "hsla", parse: function (e) { return [e[1], e[2] / 100, e[3] / 100, e[4]] } }], l = e.Color = function (t, i, s, n) { return new e.Color.fn.parse(t, i, s, n) }, u = { rgba: { props: { red: { idx: 0, type: "byte" }, green: { idx: 1, type: "byte" }, blue: { idx: 2, type: "byte" } } }, hsla: { props: { hue: { idx: 0, type: "degrees" }, saturation: { idx: 1, type: "percent" }, lightness: { idx: 2, type: "percent" } } } }, d = { "byte": { floor: !0, max: 255 }, percent: { max: 1 }, degrees: { mod: 360, floor: !0 } }, c = l.support = {}, p = e("<p>")[0], f = e.each; p.style.cssText = "background-color:rgba(1,1,1,.5)", c.rgba = p.style.backgroundColor.indexOf("rgba") > -1, f(u, function (e, t) { t.cache = "_" + e, t.props.alpha = { idx: 3, type: "percent", def: 1 } }), l.fn = e.extend(l.prototype, { parse: function (n, o, r, h) { if (n === t) return this._rgba = [null, null, null, null], this; (n.jquery || n.nodeType) && (n = e(n).css(o), o = t); var d = this, c = e.type(n), p = this._rgba = []; return o !== t && (n = [n, o, r, h], c = "array"), "string" === c ? this.parse(s(n) || a._default) : "array" === c ? (f(u.rgba.props, function (e, t) { p[t.idx] = i(n[t.idx], t) }), this) : "object" === c ? (n instanceof l ? f(u, function (e, t) { n[t.cache] && (d[t.cache] = n[t.cache].slice()) }) : f(u, function (t, s) { var a = s.cache; f(s.props, function (e, t) { if (!d[a] && s.to) { if ("alpha" === e || null == n[e]) return; d[a] = s.to(d._rgba) } d[a][t.idx] = i(n[e], t, !0) }), d[a] && 0 > e.inArray(null, d[a].slice(0, 3)) && (d[a][3] = 1, s.from && (d._rgba = s.from(d[a]))) }), this) : t }, is: function (e) { var i = l(e), s = !0, n = this; return f(u, function (e, a) { var o, r = i[a.cache]; return r && (o = n[a.cache] || a.to && a.to(n._rgba) || [], f(a.props, function (e, i) { return null != r[i.idx] ? s = r[i.idx] === o[i.idx] : t })), s }), s }, _space: function () { var e = [], t = this; return f(u, function (i, s) { t[s.cache] && e.push(i) }), e.pop() }, transition: function (e, t) { var s = l(e), n = s._space(), a = u[n], o = 0 === this.alpha() ? l("transparent") : this, r = o[a.cache] || a.to(o._rgba), h = r.slice(); return s = s[a.cache], f(a.props, function (e, n) { var a = n.idx, o = r[a], l = s[a], u = d[n.type] || {}; null !== l && (null === o ? h[a] = l : (u.mod && (l - o > u.mod / 2 ? o += u.mod : o - l > u.mod / 2 && (o -= u.mod)), h[a] = i((l - o) * t + o, n))) }), this[n](h) }, blend: function (t) { if (1 === this._rgba[3]) return this; var i = this._rgba.slice(), s = i.pop(), n = l(t)._rgba; return l(e.map(i, function (e, t) { return (1 - s) * n[t] + s * e })) }, toRgbaString: function () { var t = "rgba(", i = e.map(this._rgba, function (e, t) { return null == e ? t > 2 ? 1 : 0 : e }); return 1 === i[3] && (i.pop(), t = "rgb("), t + i.join() + ")" }, toHslaString: function () { var t = "hsla(", i = e.map(this.hsla(), function (e, t) { return null == e && (e = t > 2 ? 1 : 0), t && 3 > t && (e = Math.round(100 * e) + "%"), e }); return 1 === i[3] && (i.pop(), t = "hsl("), t + i.join() + ")" }, toHexString: function (t) { var i = this._rgba.slice(), s = i.pop(); return t && i.push(~~(255 * s)), "#" + e.map(i, function (e) { return e = (e || 0).toString(16), 1 === e.length ? "0" + e : e }).join("") }, toString: function () { return 0 === this._rgba[3] ? "transparent" : this.toRgbaString() } }), l.fn.parse.prototype = l.fn, u.hsla.to = function (e) { if (null == e[0] || null == e[1] || null == e[2]) return [null, null, null, e[3]]; var t, i, s = e[0] / 255, n = e[1] / 255, a = e[2] / 255, o = e[3], r = Math.max(s, n, a), h = Math.min(s, n, a), l = r - h, u = r + h, d = .5 * u; return t = h === r ? 0 : s === r ? 60 * (n - a) / l + 360 : n === r ? 60 * (a - s) / l + 120 : 60 * (s - n) / l + 240, i = 0 === l ? 0 : .5 >= d ? l / u : l / (2 - u), [Math.round(t) % 360, i, d, null == o ? 1 : o] }, u.hsla.from = function (e) { if (null == e[0] || null == e[1] || null == e[2]) return [null, null, null, e[3]]; var t = e[0] / 360, i = e[1], s = e[2], a = e[3], o = .5 >= s ? s * (1 + i) : s + i - s * i, r = 2 * s - o; return [Math.round(255 * n(r, o, t + 1 / 3)), Math.round(255 * n(r, o, t)), Math.round(255 * n(r, o, t - 1 / 3)), a] }, f(u, function (s, n) { var a = n.props, o = n.cache, h = n.to, u = n.from; l.fn[s] = function (s) { if (h && !this[o] && (this[o] = h(this._rgba)), s === t) return this[o].slice(); var n, r = e.type(s), d = "array" === r || "object" === r ? s : arguments, c = this[o].slice(); return f(a, function (e, t) { var s = d["object" === r ? e : t.idx]; null == s && (s = c[t.idx]), c[t.idx] = i(s, t) }), u ? (n = l(u(c)), n[o] = c, n) : l(c) }, f(a, function (t, i) { l.fn[t] || (l.fn[t] = function (n) { var a, o = e.type(n), h = "alpha" === t ? this._hsla ? "hsla" : "rgba" : s, l = this[h](), u = l[i.idx]; return "undefined" === o ? u : ("function" === o && (n = n.call(this, u), o = e.type(n)), null == n && i.empty ? this : ("string" === o && (a = r.exec(n), a && (n = u + parseFloat(a[2]) * ("+" === a[1] ? 1 : -1))), l[i.idx] = n, this[h](l))) }) }) }), l.hook = function (t) { var i = t.split(" "); f(i, function (t, i) { e.cssHooks[i] = { set: function (t, n) { var a, o, r = ""; if ("transparent" !== n && ("string" !== e.type(n) || (a = s(n)))) { if (n = l(a || n), !c.rgba && 1 !== n._rgba[3]) { for (o = "backgroundColor" === i ? t.parentNode : t; ("" === r || "transparent" === r) && o && o.style;)try { r = e.css(o, "backgroundColor"), o = o.parentNode } catch (h) { } n = n.blend(r && "transparent" !== r ? r : "_default") } n = n.toRgbaString() } try { t.style[i] = n } catch (h) { } } }, e.fx.step[i] = function (t) { t.colorInit || (t.start = l(t.elem, i), t.end = l(t.end), t.colorInit = !0), e.cssHooks[i].set(t.elem, t.start.transition(t.end, t.pos)) } }) }, l.hook(o), e.cssHooks.borderColor = { expand: function (e) { var t = {}; return f(["Top", "Right", "Bottom", "Left"], function (i, s) { t["border" + s + "Color"] = e }), t } }, a = e.Color.names = { aqua: "#00ffff", black: "#000000", blue: "#0000ff", fuchsia: "#ff00ff", gray: "#808080", green: "#008000", lime: "#00ff00", maroon: "#800000", navy: "#000080", olive: "#808000", purple: "#800080", red: "#ff0000", silver: "#c0c0c0", teal: "#008080", white: "#ffffff", yellow: "#ffff00", transparent: [null, null, null, 0], _default: "#ffffff" } }(b), function () { function t(t) { var i, s, n = t.ownerDocument.defaultView ? t.ownerDocument.defaultView.getComputedStyle(t, null) : t.currentStyle, a = {}; if (n && n.length && n[0] && n[n[0]]) for (s = n.length; s--;)i = n[s], "string" == typeof n[i] && (a[e.camelCase(i)] = n[i]); else for (i in n) "string" == typeof n[i] && (a[i] = n[i]); return a } function i(t, i) { var s, a, o = {}; for (s in i) a = i[s], t[s] !== a && (n[s] || (e.fx.step[s] || !isNaN(parseFloat(a))) && (o[s] = a)); return o } var s = ["add", "remove", "toggle"], n = { border: 1, borderBottom: 1, borderColor: 1, borderLeft: 1, borderRight: 1, borderTop: 1, borderWidth: 1, margin: 1, padding: 1 }; e.each(["borderLeftStyle", "borderRightStyle", "borderBottomStyle", "borderTopStyle"], function (t, i) { e.fx.step[i] = function (e) { ("none" !== e.end && !e.setAttr || 1 === e.pos && !e.setAttr) && (b.style(e.elem, i, e.end), e.setAttr = !0) } }), e.fn.addBack || (e.fn.addBack = function (e) { return this.add(null == e ? this.prevObject : this.prevObject.filter(e)) }), e.effects.animateClass = function (n, a, o, r) { var h = e.speed(a, o, r); return this.queue(function () { var a, o = e(this), r = o.attr("class") || "", l = h.children ? o.find("*").addBack() : o; l = l.map(function () { var i = e(this); return { el: i, start: t(this) } }), a = function () { e.each(s, function (e, t) { n[t] && o[t + "Class"](n[t]) }) }, a(), l = l.map(function () { return this.end = t(this.el[0]), this.diff = i(this.start, this.end), this }), o.attr("class", r), l = l.map(function () { var t = this, i = e.Deferred(), s = e.extend({}, h, { queue: !1, complete: function () { i.resolve(t) } }); return this.el.animate(this.diff, s), i.promise() }), e.when.apply(e, l.get()).done(function () { a(), e.each(arguments, function () { var t = this.el; e.each(this.diff, function (e) { t.css(e, "") }) }), h.complete.call(o[0]) }) }) }, e.fn.extend({ addClass: function (t) { return function (i, s, n, a) { return s ? e.effects.animateClass.call(this, { add: i }, s, n, a) : t.apply(this, arguments) } }(e.fn.addClass), removeClass: function (t) { return function (i, s, n, a) { return arguments.length > 1 ? e.effects.animateClass.call(this, { remove: i }, s, n, a) : t.apply(this, arguments) } }(e.fn.removeClass), toggleClass: function (t) { return function (i, s, n, a, o) { return "boolean" == typeof s || void 0 === s ? n ? e.effects.animateClass.call(this, s ? { add: i } : { remove: i }, n, a, o) : t.apply(this, arguments) : e.effects.animateClass.call(this, { toggle: i }, s, n, a) } }(e.fn.toggleClass), switchClass: function (t, i, s, n, a) { return e.effects.animateClass.call(this, { add: i, remove: t }, s, n, a) } }) }(), function () { function t(t, i, s, n) { return e.isPlainObject(t) && (i = t, t = t.effect), t = { effect: t }, null == i && (i = {}), e.isFunction(i) && (n = i, s = null, i = {}), ("number" == typeof i || e.fx.speeds[i]) && (n = s, s = i, i = {}), e.isFunction(s) && (n = s, s = null), i && e.extend(t, i), s = s || i.duration, t.duration = e.fx.off ? 0 : "number" == typeof s ? s : s in e.fx.speeds ? e.fx.speeds[s] : e.fx.speeds._default, t.complete = n || i.complete, t } function i(t) { return !t || "number" == typeof t || e.fx.speeds[t] ? !0 : "string" != typeof t || e.effects.effect[t] ? e.isFunction(t) ? !0 : "object" != typeof t || t.effect ? !1 : !0 : !0 } e.extend(e.effects, { version: "1.11.4", save: function (e, t) { for (var i = 0; t.length > i; i++)null !== t[i] && e.data(y + t[i], e[0].style[t[i]]) }, restore: function (e, t) { var i, s; for (s = 0; t.length > s; s++)null !== t[s] && (i = e.data(y + t[s]), void 0 === i && (i = ""), e.css(t[s], i)) }, setMode: function (e, t) { return "toggle" === t && (t = e.is(":hidden") ? "show" : "hide"), t }, getBaseline: function (e, t) { var i, s; switch (e[0]) { case "top": i = 0; break; case "middle": i = .5; break; case "bottom": i = 1; break; default: i = e[0] / t.height }switch (e[1]) { case "left": s = 0; break; case "center": s = .5; break; case "right": s = 1; break; default: s = e[1] / t.width }return { x: s, y: i } }, createWrapper: function (t) { if (t.parent().is(".ui-effects-wrapper")) return t.parent(); var i = { width: t.outerWidth(!0), height: t.outerHeight(!0), "float": t.css("float") }, s = e("<div></div>").addClass("ui-effects-wrapper").css({ fontSize: "100%", background: "transparent", border: "none", margin: 0, padding: 0 }), n = { width: t.width(), height: t.height() }, a = document.activeElement; try { a.id } catch (o) { a = document.body } return t.wrap(s), (t[0] === a || e.contains(t[0], a)) && e(a).focus(), s = t.parent(), "static" === t.css("position") ? (s.css({ position: "relative" }), t.css({ position: "relative" })) : (e.extend(i, { position: t.css("position"), zIndex: t.css("z-index") }), e.each(["top", "left", "bottom", "right"], function (e, s) { i[s] = t.css(s), isNaN(parseInt(i[s], 10)) && (i[s] = "auto") }), t.css({ position: "relative", top: 0, left: 0, right: "auto", bottom: "auto" })), t.css(n), s.css(i).show() }, removeWrapper: function (t) { var i = document.activeElement; return t.parent().is(".ui-effects-wrapper") && (t.parent().replaceWith(t), (t[0] === i || e.contains(t[0], i)) && e(i).focus()), t }, setTransition: function (t, i, s, n) { return n = n || {}, e.each(i, function (e, i) { var a = t.cssUnit(i); a[0] > 0 && (n[i] = a[0] * s + a[1]) }), n } }), e.fn.extend({ effect: function () { function i(t) { function i() { e.isFunction(a) && a.call(n[0]), e.isFunction(t) && t() } var n = e(this), a = s.complete, r = s.mode; (n.is(":hidden") ? "hide" === r : "show" === r) ? (n[r](), i()) : o.call(n[0], s, i) } var s = t.apply(this, arguments), n = s.mode, a = s.queue, o = e.effects.effect[s.effect]; return e.fx.off || !o ? n ? this[n](s.duration, s.complete) : this.each(function () { s.complete && s.complete.call(this) }) : a === !1 ? this.each(i) : this.queue(a || "fx", i) }, show: function (e) { return function (s) { if (i(s)) return e.apply(this, arguments); var n = t.apply(this, arguments); return n.mode = "show", this.effect.call(this, n) } }(e.fn.show), hide: function (e) { return function (s) { if (i(s)) return e.apply(this, arguments); var n = t.apply(this, arguments); return n.mode = "hide", this.effect.call(this, n) } }(e.fn.hide), toggle: function (e) { return function (s) { if (i(s) || "boolean" == typeof s) return e.apply(this, arguments); var n = t.apply(this, arguments); return n.mode = "toggle", this.effect.call(this, n) } }(e.fn.toggle), cssUnit: function (t) { var i = this.css(t), s = []; return e.each(["em", "px", "%", "pt"], function (e, t) { i.indexOf(t) > 0 && (s = [parseFloat(i), t]) }), s } }) }(), function () { var t = {}; e.each(["Quad", "Cubic", "Quart", "Quint", "Expo"], function (e, i) { t[i] = function (t) { return Math.pow(t, e + 2) } }), e.extend(t, { Sine: function (e) { return 1 - Math.cos(e * Math.PI / 2) }, Circ: function (e) { return 1 - Math.sqrt(1 - e * e) }, Elastic: function (e) { return 0 === e || 1 === e ? e : -Math.pow(2, 8 * (e - 1)) * Math.sin((80 * (e - 1) - 7.5) * Math.PI / 15) }, Back: function (e) { return e * e * (3 * e - 2) }, Bounce: function (e) { for (var t, i = 4; ((t = Math.pow(2, --i)) - 1) / 11 > e;); return 1 / Math.pow(4, 3 - i) - 7.5625 * Math.pow((3 * t - 2) / 22 - e, 2) } }), e.each(t, function (t, i) { e.easing["easeIn" + t] = i, e.easing["easeOut" + t] = function (e) { return 1 - i(1 - e) }, e.easing["easeInOut" + t] = function (e) { return .5 > e ? i(2 * e) / 2 : 1 - i(-2 * e + 2) / 2 } }) }(), e.effects, e.effects.effect.blind = function (t, i) { var s, n, a, o = e(this), r = /up|down|vertical/, h = /up|left|vertical|horizontal/, l = ["position", "top", "bottom", "left", "right", "height", "width"], u = e.effects.setMode(o, t.mode || "hide"), d = t.direction || "up", c = r.test(d), p = c ? "height" : "width", f = c ? "top" : "left", m = h.test(d), g = {}, v = "show" === u; o.parent().is(".ui-effects-wrapper") ? e.effects.save(o.parent(), l) : e.effects.save(o, l), o.show(), s = e.effects.createWrapper(o).css({ overflow: "hidden" }), n = s[p](), a = parseFloat(s.css(f)) || 0, g[p] = v ? n : 0, m || (o.css(c ? "bottom" : "right", 0).css(c ? "top" : "left", "auto").css({ position: "absolute" }), g[f] = v ? a : n + a), v && (s.css(p, 0), m || s.css(f, a + n)), s.animate(g, { duration: t.duration, easing: t.easing, queue: !1, complete: function () { "hide" === u && o.hide(), e.effects.restore(o, l), e.effects.removeWrapper(o), i() } }) }, e.effects.effect.bounce = function (t, i) { var s, n, a, o = e(this), r = ["position", "top", "bottom", "left", "right", "height", "width"], h = e.effects.setMode(o, t.mode || "effect"), l = "hide" === h, u = "show" === h, d = t.direction || "up", c = t.distance, p = t.times || 5, f = 2 * p + (u || l ? 1 : 0), m = t.duration / f, g = t.easing, v = "up" === d || "down" === d ? "top" : "left", y = "up" === d || "left" === d, b = o.queue(), _ = b.length; for ((u || l) && r.push("opacity"), e.effects.save(o, r), o.show(), e.effects.createWrapper(o), c || (c = o["top" === v ? "outerHeight" : "outerWidth"]() / 3), u && (a = { opacity: 1 }, a[v] = 0, o.css("opacity", 0).css(v, y ? 2 * -c : 2 * c).animate(a, m, g)), l && (c /= Math.pow(2, p - 1)), a = {}, a[v] = 0, s = 0; p > s; s++)n = {}, n[v] = (y ? "-=" : "+=") + c, o.animate(n, m, g).animate(a, m, g), c = l ? 2 * c : c / 2; l && (n = { opacity: 0 }, n[v] = (y ? "-=" : "+=") + c, o.animate(n, m, g)), o.queue(function () { l && o.hide(), e.effects.restore(o, r), e.effects.removeWrapper(o), i() }), _ > 1 && b.splice.apply(b, [1, 0].concat(b.splice(_, f + 1))), o.dequeue() }, e.effects.effect.clip = function (t, i) { var s, n, a, o = e(this), r = ["position", "top", "bottom", "left", "right", "height", "width"], h = e.effects.setMode(o, t.mode || "hide"), l = "show" === h, u = t.direction || "vertical", d = "vertical" === u, c = d ? "height" : "width", p = d ? "top" : "left", f = {}; e.effects.save(o, r), o.show(), s = e.effects.createWrapper(o).css({ overflow: "hidden" }), n = "IMG" === o[0].tagName ? s : o, a = n[c](), l && (n.css(c, 0), n.css(p, a / 2)), f[c] = l ? a : 0, f[p] = l ? 0 : a / 2, n.animate(f, { queue: !1, duration: t.duration, easing: t.easing, complete: function () { l || o.hide(), e.effects.restore(o, r), e.effects.removeWrapper(o), i() } }) }, e.effects.effect.drop = function (t, i) { var s, n = e(this), a = ["position", "top", "bottom", "left", "right", "opacity", "height", "width"], o = e.effects.setMode(n, t.mode || "hide"), r = "show" === o, h = t.direction || "left", l = "up" === h || "down" === h ? "top" : "left", u = "up" === h || "left" === h ? "pos" : "neg", d = { opacity: r ? 1 : 0 }; e.effects.save(n, a), n.show(), e.effects.createWrapper(n), s = t.distance || n["top" === l ? "outerHeight" : "outerWidth"](!0) / 2, r && n.css("opacity", 0).css(l, "pos" === u ? -s : s), d[l] = (r ? "pos" === u ? "+=" : "-=" : "pos" === u ? "-=" : "+=") + s, n.animate(d, { queue: !1, duration: t.duration, easing: t.easing, complete: function () { "hide" === o && n.hide(), e.effects.restore(n, a), e.effects.removeWrapper(n), i() } }) }, e.effects.effect.explode = function (t, i) { function s() { b.push(this), b.length === d * c && n() } function n() { p.css({ visibility: "visible" }), e(b).remove(), m || p.hide(), i() } var a, o, r, h, l, u, d = t.pieces ? Math.round(Math.sqrt(t.pieces)) : 3, c = d, p = e(this), f = e.effects.setMode(p, t.mode || "hide"), m = "show" === f, g = p.show().css("visibility", "hidden").offset(), v = Math.ceil(p.outerWidth() / c), y = Math.ceil(p.outerHeight() / d), b = []; for (a = 0; d > a; a++)for (h = g.top + a * y, u = a - (d - 1) / 2, o = 0; c > o; o++)r = g.left + o * v, l = o - (c - 1) / 2, p.clone().appendTo("body").wrap("<div></div>").css({ position: "absolute", visibility: "visible", left: -o * v, top: -a * y }).parent().addClass("ui-effects-explode").css({ position: "absolute", overflow: "hidden", width: v, height: y, left: r + (m ? l * v : 0), top: h + (m ? u * y : 0), opacity: m ? 0 : 1 }).animate({ left: r + (m ? 0 : l * v), top: h + (m ? 0 : u * y), opacity: m ? 1 : 0 }, t.duration || 500, t.easing, s) }, e.effects.effect.fade = function (t, i) { var s = e(this), n = e.effects.setMode(s, t.mode || "toggle"); s.animate({ opacity: n }, { queue: !1, duration: t.duration, easing: t.easing, complete: i }) }, e.effects.effect.fold = function (t, i) { var s, n, a = e(this), o = ["position", "top", "bottom", "left", "right", "height", "width"], r = e.effects.setMode(a, t.mode || "hide"), h = "show" === r, l = "hide" === r, u = t.size || 15, d = /([0-9]+)%/.exec(u), c = !!t.horizFirst, p = h !== c, f = p ? ["width", "height"] : ["height", "width"], m = t.duration / 2, g = {}, v = {}; e.effects.save(a, o), a.show(), s = e.effects.createWrapper(a).css({ overflow: "hidden" }), n = p ? [s.width(), s.height()] : [s.height(), s.width()], d && (u = parseInt(d[1], 10) / 100 * n[l ? 0 : 1]), h && s.css(c ? { height: 0, width: u } : { height: u, width: 0 }), g[f[0]] = h ? n[0] : u, v[f[1]] = h ? n[1] : 0, s.animate(g, m, t.easing).animate(v, m, t.easing, function () { l && a.hide(), e.effects.restore(a, o), e.effects.removeWrapper(a), i() }) }, e.effects.effect.highlight = function (t, i) { var s = e(this), n = ["backgroundImage", "backgroundColor", "opacity"], a = e.effects.setMode(s, t.mode || "show"), o = { backgroundColor: s.css("backgroundColor") }; "hide" === a && (o.opacity = 0), e.effects.save(s, n), s.show().css({ backgroundImage: "none", backgroundColor: t.color || "#ffff99" }).animate(o, { queue: !1, duration: t.duration, easing: t.easing, complete: function () { "hide" === a && s.hide(), e.effects.restore(s, n), i() } }) }, e.effects.effect.size = function (t, i) { var s, n, a, o = e(this), r = ["position", "top", "bottom", "left", "right", "width", "height", "overflow", "opacity"], h = ["position", "top", "bottom", "left", "right", "overflow", "opacity"], l = ["width", "height", "overflow"], u = ["fontSize"], d = ["borderTopWidth", "borderBottomWidth", "paddingTop", "paddingBottom"], c = ["borderLeftWidth", "borderRightWidth", "paddingLeft", "paddingRight"], p = e.effects.setMode(o, t.mode || "effect"), f = t.restore || "effect" !== p, m = t.scale || "both", g = t.origin || ["middle", "center"], v = o.css("position"), y = f ? r : h, b = { height: 0, width: 0, outerHeight: 0, outerWidth: 0 }; "show" === p && o.show(), s = { height: o.height(), width: o.width(), outerHeight: o.outerHeight(), outerWidth: o.outerWidth() }, "toggle" === t.mode && "show" === p ? (o.from = t.to || b, o.to = t.from || s) : (o.from = t.from || ("show" === p ? b : s), o.to = t.to || ("hide" === p ? b : s)), a = { from: { y: o.from.height / s.height, x: o.from.width / s.width }, to: { y: o.to.height / s.height, x: o.to.width / s.width } }, ("box" === m || "both" === m) && (a.from.y !== a.to.y && (y = y.concat(d), o.from = e.effects.setTransition(o, d, a.from.y, o.from), o.to = e.effects.setTransition(o, d, a.to.y, o.to)), a.from.x !== a.to.x && (y = y.concat(c), o.from = e.effects.setTransition(o, c, a.from.x, o.from), o.to = e.effects.setTransition(o, c, a.to.x, o.to))), ("content" === m || "both" === m) && a.from.y !== a.to.y && (y = y.concat(u).concat(l), o.from = e.effects.setTransition(o, u, a.from.y, o.from), o.to = e.effects.setTransition(o, u, a.to.y, o.to)), e.effects.save(o, y), o.show(), e.effects.createWrapper(o), o.css("overflow", "hidden").css(o.from), g && (n = e.effects.getBaseline(g, s), o.from.top = (s.outerHeight - o.outerHeight()) * n.y, o.from.left = (s.outerWidth - o.outerWidth()) * n.x, o.to.top = (s.outerHeight - o.to.outerHeight) * n.y, o.to.left = (s.outerWidth - o.to.outerWidth) * n.x), o.css(o.from), ("content" === m || "both" === m) && (d = d.concat(["marginTop", "marginBottom"]).concat(u), c = c.concat(["marginLeft", "marginRight"]), l = r.concat(d).concat(c), o.find("*[width]").each(function () { var i = e(this), s = { height: i.height(), width: i.width(), outerHeight: i.outerHeight(), outerWidth: i.outerWidth() }; f && e.effects.save(i, l), i.from = { height: s.height * a.from.y, width: s.width * a.from.x, outerHeight: s.outerHeight * a.from.y, outerWidth: s.outerWidth * a.from.x }, i.to = { height: s.height * a.to.y, width: s.width * a.to.x, outerHeight: s.height * a.to.y, outerWidth: s.width * a.to.x }, a.from.y !== a.to.y && (i.from = e.effects.setTransition(i, d, a.from.y, i.from), i.to = e.effects.setTransition(i, d, a.to.y, i.to)), a.from.x !== a.to.x && (i.from = e.effects.setTransition(i, c, a.from.x, i.from), i.to = e.effects.setTransition(i, c, a.to.x, i.to)), i.css(i.from), i.animate(i.to, t.duration, t.easing, function () { f && e.effects.restore(i, l) }) })), o.animate(o.to, { queue: !1, duration: t.duration, easing: t.easing, complete: function () { 0 === o.to.opacity && o.css("opacity", o.from.opacity), "hide" === p && o.hide(), e.effects.restore(o, y), f || ("static" === v ? o.css({ position: "relative", top: o.to.top, left: o.to.left }) : e.each(["top", "left"], function (e, t) { o.css(t, function (t, i) { var s = parseInt(i, 10), n = e ? o.to.left : o.to.top; return "auto" === i ? n + "px" : s + n + "px" }) })), e.effects.removeWrapper(o), i() } }) }, e.effects.effect.scale = function (t, i) { var s = e(this), n = e.extend(!0, {}, t), a = e.effects.setMode(s, t.mode || "effect"), o = parseInt(t.percent, 10) || (0 === parseInt(t.percent, 10) ? 0 : "hide" === a ? 0 : 100), r = t.direction || "both", h = t.origin, l = { height: s.height(), width: s.width(), outerHeight: s.outerHeight(), outerWidth: s.outerWidth() }, u = { y: "horizontal" !== r ? o / 100 : 1, x: "vertical" !== r ? o / 100 : 1 }; n.effect = "size", n.queue = !1, n.complete = i, "effect" !== a && (n.origin = h || ["middle", "center"], n.restore = !0), n.from = t.from || ("show" === a ? { height: 0, width: 0, outerHeight: 0, outerWidth: 0 } : l), n.to = { height: l.height * u.y, width: l.width * u.x, outerHeight: l.outerHeight * u.y, outerWidth: l.outerWidth * u.x }, n.fade && ("show" === a && (n.from.opacity = 0, n.to.opacity = 1), "hide" === a && (n.from.opacity = 1, n.to.opacity = 0)), s.effect(n) }, e.effects.effect.puff = function (t, i) { var s = e(this), n = e.effects.setMode(s, t.mode || "hide"), a = "hide" === n, o = parseInt(t.percent, 10) || 150, r = o / 100, h = { height: s.height(), width: s.width(), outerHeight: s.outerHeight(), outerWidth: s.outerWidth() }; e.extend(t, { effect: "scale", queue: !1, fade: !0, mode: n, complete: i, percent: a ? o : 100, from: a ? h : { height: h.height * r, width: h.width * r, outerHeight: h.outerHeight * r, outerWidth: h.outerWidth * r } }), s.effect(t) }, e.effects.effect.pulsate = function (t, i) { var s, n = e(this), a = e.effects.setMode(n, t.mode || "show"), o = "show" === a, r = "hide" === a, h = o || "hide" === a, l = 2 * (t.times || 5) + (h ? 1 : 0), u = t.duration / l, d = 0, c = n.queue(), p = c.length; for ((o || !n.is(":visible")) && (n.css("opacity", 0).show(), d = 1), s = 1; l > s; s++)n.animate({ opacity: d }, u, t.easing), d = 1 - d; n.animate({ opacity: d }, u, t.easing), n.queue(function () { r && n.hide(), i() }), p > 1 && c.splice.apply(c, [1, 0].concat(c.splice(p, l + 1))), n.dequeue() }, e.effects.effect.shake = function (t, i) { var s, n = e(this), a = ["position", "top", "bottom", "left", "right", "height", "width"], o = e.effects.setMode(n, t.mode || "effect"), r = t.direction || "left", h = t.distance || 20, l = t.times || 3, u = 2 * l + 1, d = Math.round(t.duration / u), c = "up" === r || "down" === r ? "top" : "left", p = "up" === r || "left" === r, f = {}, m = {}, g = {}, v = n.queue(), y = v.length; for (e.effects.save(n, a), n.show(), e.effects.createWrapper(n), f[c] = (p ? "-=" : "+=") + h, m[c] = (p ? "+=" : "-=") + 2 * h, g[c] = (p ? "-=" : "+=") + 2 * h, n.animate(f, d, t.easing), s = 1; l > s; s++)n.animate(m, d, t.easing).animate(g, d, t.easing); n.animate(m, d, t.easing).animate(f, d / 2, t.easing).queue(function () { "hide" === o && n.hide(), e.effects.restore(n, a), e.effects.removeWrapper(n), i() }), y > 1 && v.splice.apply(v, [1, 0].concat(v.splice(y, u + 1))), n.dequeue() }, e.effects.effect.slide = function (t, i) { var s, n = e(this), a = ["position", "top", "bottom", "left", "right", "width", "height"], o = e.effects.setMode(n, t.mode || "show"), r = "show" === o, h = t.direction || "left", l = "up" === h || "down" === h ? "top" : "left", u = "up" === h || "left" === h, d = {}; e.effects.save(n, a), n.show(), s = t.distance || n["top" === l ? "outerHeight" : "outerWidth"](!0), e.effects.createWrapper(n).css({ overflow: "hidden" }), r && n.css(l, u ? isNaN(s) ? "-" + s : -s : s), d[l] = (r ? u ? "+=" : "-=" : u ? "-=" : "+=") + s, n.animate(d, { queue: !1, duration: t.duration, easing: t.easing, complete: function () { "hide" === o && n.hide(), e.effects.restore(n, a), e.effects.removeWrapper(n), i() } }) }, e.effects.effect.transfer = function (t, i) { var s = e(this), n = e(t.to), a = "fixed" === n.css("position"), o = e("body"), r = a ? o.scrollTop() : 0, h = a ? o.scrollLeft() : 0, l = n.offset(), u = { top: l.top - r, left: l.left - h, height: n.innerHeight(), width: n.innerWidth() }, d = s.offset(), c = e("<div class='ui-effects-transfer'></div>").appendTo(document.body).addClass(t.className).css({ top: d.top - r, left: d.left - h, height: s.innerHeight(), width: s.innerWidth(), position: a ? "fixed" : "absolute" }).animate(u, t.duration, t.easing, function () { c.remove(), i() }) } }); </script> <script defer> !function (e) { e.fn.flexisel = function (i) { var t, n, s, l = e.extend({ visibleItems: 4, animationSpeed: 1e3, autoPlay: !1, autoPlaySpeed: 5e3, pauseOnHover: !1, setMaxWidthAndHeight: !1, enableResponsiveBreakpoints: !0, flipPage: !0, clone: !1, responsiveBreakpoints: { portrait: { changePoint: 480, visibleItems: 1 }, landscape: { changePoint: 640, visibleItems: 2 }, tablet: { changePoint: 768, visibleItems: 3 }, desktop: { changePoint: 900, visibleItems: 3 }, laptop: { changePoint: 1e3, visibleItems: 4 } } }, i), a = e(this), o = e.extend(l, i), r = !0, u = o.visibleItems, d = a.children("li").length, f = d, c = [], h = 0, v = { init: function () { return this.each(function () { v.appendHTML(), v.setEventHandlers(), v.initializeItems() }) }, initializeItems: function () { var i = a.parent(), s = a.children("li"); v.sortResponsiveObject(o.responsiveBreakpoints); var l = i.width(); t = l / u, s.width(t), n = s.outerWidth(), h = 0, a.fadeIn(), e(window).trigger("resize") }, appendHTML: function () { a.addClass("nbs-flexisel-ul"), a.wrap("<div class='nbs-flexisel-container'><div class='nbs-flexisel-inner'></div></div>"), a.find("li").addClass("nbs-flexisel-item"), a.find("li").css("width", "auto !important"); var i = a.parent(); if (o.setMaxWidthAndHeight) { var t = e(".nbs-flexisel-item img").width(), n = e(".nbs-flexisel-item img").height(); e(".nbs-flexisel-item img").css("max-width", t), e(".nbs-flexisel-item img").css("max-height", n) } e("<div class='nbs-flexisel-nav-left'></div><div class='nbs-flexisel-nav-right'></div>").insertAfter(i) }, setEventHandlers: function () { var i = a.parent(), s = i.parent(), l = a.children("li"), c = s.find(".nbs-flexisel-nav-left"), p = s.find(".nbs-flexisel-nav-right"); e(window).on("resize", function (s) { v.setResponsiveEvents(); var r = e(i).width(), m = e(i).height(); t = r / u, u && d % u != 0 && (o.flipPage = !1), l.width(t), n = l.outerWidth(); var g = 0; if (1 == u && (l = a.children("li"), l.last().insertBefore(l.first()), g += (r - l.outerWidth()) / 2, g -= l.outerWidth()), a.css({ left: g }), h = 0, f = d, !o.clone && u >= d) c.add(p).css("visibility", "hidden"); else { c.add(p).css("visibility", "visible"); var b = c.height() / 2, x = m / 2 - b; c.css("top", x + "px"), p.css("top", x + "px") } }), e(c).on("click", function (e) { v.scrollLeft() }), e(p).on("click", function (e) { v.scrollRight() }), o.pauseOnHover === !0 && e(".nbs-flexisel-item").on({ mouseenter: function () { r = !1 }, mouseleave: function () { r = !0 } }), o.autoPlay === !0 && (r = !0, setTimeout(function () { v.scrollRight() }, o.autoPlaySpeed)) }, setResponsiveEvents: function () { var i = e("html").width(); if (o.enableResponsiveBreakpoints) { var t = c[c.length - 1].changePoint; for (var n in c) { if (i >= t) { u = o.visibleItems; break } if (i < c[n].changePoint) { u = c[n].visibleItems; break } } } }, sortResponsiveObject: function (e) { var i = []; for (var t in e) i.push(e[t]); i.sort(function (e, i) { return e.changePoint - i.changePoint }), c = i }, scrollLeft: function () { if (r === !1) return void v.autoScroll(); var e = a.parent(), i = e.width(); t = i / u; var n = a.children("li"), s = u; if (0 == o.flipPage && (s = 1), 1 == u) return s = 1, n = a.children("li"), n.last().insertBefore(n.first()), a.css("left", "-=" + n.outerWidth()), r = !1, h--, void a.animate({ left: "+=" + n.outerWidth() }, { queue: !1, duration: o.animationSpeed, easing: "easeOutQuad", complete: function () { r = !0, v.autoScroll() } }); if (a.position().left >= 0) { for (var l = 0; s > l; l++)n = a.children("li"), n.last().insertBefore(n.first()); a.css("left", -Number(s * n.outerWidth())) } a.position().left < 0 && (r = !1, h--, a.animate({ left: "+=" + Number(s * n.outerWidth()) }, { queue: !1, duration: o.animationSpeed, easing: "easeOutQuad", complete: function () { r = !0, v.autoScroll() } })), 0 == o.flipPage && 0 > h && (h = 0, f = d) }, autoScroll: function () { 1 == r && o.autoPlay === !0 && (clearInterval(s), s = setInterval(function () { v.scrollRight() }, o.autoPlaySpeed)) }, scrollRight: function () { if (r === !1) return void v.autoScroll(); var e = a.parent(), i = e.width(); t = i / u; var n = a.children("li"), s = u; if (1 == u) return s = 1, n = a.children("li"), n.first().insertAfter(n.last()), a.css("left", "+=" + n.outerWidth()), r = !1, h++, void a.animate({ left: "-=" + n.outerWidth() }, { queue: !1, duration: o.animationSpeed, easing: "easeOutQuad", complete: function () { r = !0, v.autoScroll() } }); if (0 == o.flipPage) { s = 1; var l = h + 1, c = h + u; (c >= f || l >= f || f > d) && (n = a.children("li"), n.first().insertAfter(n.last()), a.css("left", "+=" + Number(s * n.outerWidth()))), r = !1, h++; var p = Number(s * n.outerWidth()); return 1 == u && (p = n.outerWidth()), a.animate({ left: "-=" + p }, { queue: !1, duration: o.animationSpeed, easing: "easeOutQuad", complete: function () { r = !0, v.autoScroll() } }), void (l >= f && (f += d)) } var m = t - i, g = a.position().left + (d - u) * t - i; if (m > Math.ceil(g)) { for (var b = 0; s > b; b++)n = a.children("li"), n.first().insertAfter(n.last()), h = 0; a.css("left", "+=" + Number(s * n.outerWidth())), m = t - i, g = a.position().left + (d - s) * n.outerWidth() - i } m <= Math.ceil(g) && !o.clone && (h++, r = !1, a.animate({ left: "-=" + Number(s * n.outerWidth()) }, { queue: !1, duration: o.animationSpeed, easing: "easeOutQuad", complete: function () { r = !0, v.autoScroll() } })) } }; return v[i] ? v[i].apply(this, Array.prototype.slice.call(arguments, 1)) : "object" != typeof i && i ? void e.error('Method "' + method + '" does not exist in flexisel plugin!') : v.init.apply(this) } }(jQuery); </script> <script defer> /*! * Bootstrap v3.3.5 (http://getbootstrap.com) * Copyright 2011-2015 Twitter, Inc. * Licensed under the MIT license */ if ("undefined" == typeof jQuery) throw new Error("Bootstrap's JavaScript requires jQuery"); +function (a) { "use strict"; var b = a.fn.jquery.split(" ")[0].split("."); if (b[0] < 2 && b[1] < 9 || 1 == b[0] && 9 == b[1] && b[2] < 1) throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher") }(jQuery), +function (a) { "use strict"; function b() { var a = document.createElement("bootstrap"), b = { WebkitTransition: "webkitTransitionEnd", MozTransition: "transitionend", OTransition: "oTransitionEnd otransitionend", transition: "transitionend" }; for (var c in b) if (void 0 !== a.style[c]) return { end: b[c] }; return !1 } a.fn.emulateTransitionEnd = function (b) { var c = !1, d = this; a(this).one("bsTransitionEnd", function () { c = !0 }); var e = function () { c || a(d).trigger(a.support.transition.end) }; return setTimeout(e, b), this }, a(function () { a.support.transition = b(), a.support.transition && (a.event.special.bsTransitionEnd = { bindType: a.support.transition.end, delegateType: a.support.transition.end, handle: function (b) { return a(b.target).is(this) ? b.handleObj.handler.apply(this, arguments) : void 0 } }) }) }(jQuery), +function (a) { "use strict"; function b(b) { return this.each(function () { var c = a(this), e = c.data("bs.alert"); e || c.data("bs.alert", e = new d(this)), "string" == typeof b && e[b].call(c) }) } var c = '[data-dismiss="alert"]', d = function (b) { a(b).on("click", c, this.close) }; d.VERSION = "3.3.5", d.TRANSITION_DURATION = 150, d.prototype.close = function (b) { function c() { g.detach().trigger("closed.bs.alert").remove() } var e = a(this), f = e.attr("data-target"); f || (f = e.attr("href"), f = f && f.replace(/.*(?=#[^\s]*$)/, "")); var g = a(f); b && b.preventDefault(), g.length || (g = e.closest(".alert")), g.trigger(b = a.Event("close.bs.alert")), b.isDefaultPrevented() || (g.removeClass("in"), a.support.transition && g.hasClass("fade") ? g.one("bsTransitionEnd", c).emulateTransitionEnd(d.TRANSITION_DURATION) : c()) }; var e = a.fn.alert; a.fn.alert = b, a.fn.alert.Constructor = d, a.fn.alert.noConflict = function () { return a.fn.alert = e, this }, a(document).on("click.bs.alert.data-api", c, d.prototype.close) }(jQuery), +function (a) { "use strict"; function b(b) { return this.each(function () { var d = a(this), e = d.data("bs.button"), f = "object" == typeof b && b; e || d.data("bs.button", e = new c(this, f)), "toggle" == b ? e.toggle() : b && e.setState(b) }) } var c = function (b, d) { this.$element = a(b), this.options = a.extend({}, c.DEFAULTS, d), this.isLoading = !1 }; c.VERSION = "3.3.5", c.DEFAULTS = { loadingText: "loading..." }, c.prototype.setState = function (b) { var c = "disabled", d = this.$element, e = d.is("input") ? "val" : "html", f = d.data(); b += "Text", null == f.resetText && d.data("resetText", d[e]()), setTimeout(a.proxy(function () { d[e](null == f[b] ? this.options[b] : f[b]), "loadingText" == b ? (this.isLoading = !0, d.addClass(c).attr(c, c)) : this.isLoading && (this.isLoading = !1, d.removeClass(c).removeAttr(c)) }, this), 0) }, c.prototype.toggle = function () { var a = !0, b = this.$element.closest('[data-toggle="buttons"]'); if (b.length) { var c = this.$element.find("input"); "radio" == c.prop("type") ? (c.prop("checked") && (a = !1), b.find(".active").removeClass("active"), this.$element.addClass("active")) : "checkbox" == c.prop("type") && (c.prop("checked") !== this.$element.hasClass("active") && (a = !1), this.$element.toggleClass("active")), c.prop("checked", this.$element.hasClass("active")), a && c.trigger("change") } else this.$element.attr("aria-pressed", !this.$element.hasClass("active")), this.$element.toggleClass("active") }; var d = a.fn.button; a.fn.button = b, a.fn.button.Constructor = c, a.fn.button.noConflict = function () { return a.fn.button = d, this }, a(document).on("click.bs.button.data-api", '[data-toggle^="button"]', function (c) { var d = a(c.target); d.hasClass("btn") || (d = d.closest(".btn")), b.call(d, "toggle"), a(c.target).is('input[type="radio"]') || a(c.target).is('input[type="checkbox"]') || c.preventDefault() }).on("focus.bs.button.data-api blur.bs.button.data-api", '[data-toggle^="button"]', function (b) { a(b.target).closest(".btn").toggleClass("focus", /^focus(in)?$/.test(b.type)) }) }(jQuery), +function (a) { "use strict"; function b(b) { return this.each(function () { var d = a(this), e = d.data("bs.carousel"), f = a.extend({}, c.DEFAULTS, d.data(), "object" == typeof b && b), g = "string" == typeof b ? b : f.slide; e || d.data("bs.carousel", e = new c(this, f)), "number" == typeof b ? e.to(b) : g ? e[g]() : f.interval && e.pause().cycle() }) } var c = function (b, c) { this.$element = a(b), this.$indicators = this.$element.find(".carousel-indicators"), this.options = c, this.paused = null, this.sliding = null, this.interval = null, this.$active = null, this.$items = null, this.options.keyboard && this.$element.on("keydown.bs.carousel", a.proxy(this.keydown, this)), "hover" == this.options.pause && !("ontouchstart" in document.documentElement) && this.$element.on("mouseenter.bs.carousel", a.proxy(this.pause, this)).on("mouseleave.bs.carousel", a.proxy(this.cycle, this)) }; c.VERSION = "3.3.5", c.TRANSITION_DURATION = 600, c.DEFAULTS = { interval: 5e3, pause: "hover", wrap: !0, keyboard: !0 }, c.prototype.keydown = function (a) { if (!/input|textarea/i.test(a.target.tagName)) { switch (a.which) { case 37: this.prev(); break; case 39: this.next(); break; default: return }a.preventDefault() } }, c.prototype.cycle = function (b) { return b || (this.paused = !1), this.interval && clearInterval(this.interval), this.options.interval && !this.paused && (this.interval = setInterval(a.proxy(this.next, this), this.options.interval)), this }, c.prototype.getItemIndex = function (a) { return this.$items = a.parent().children(".item"), this.$items.index(a || this.$active) }, c.prototype.getItemForDirection = function (a, b) { var c = this.getItemIndex(b), d = "prev" == a && 0 === c || "next" == a && c == this.$items.length - 1; if (d && !this.options.wrap) return b; var e = "prev" == a ? -1 : 1, f = (c + e) % this.$items.length; return this.$items.eq(f) }, c.prototype.to = function (a) { var b = this, c = this.getItemIndex(this.$active = this.$element.find(".item.active")); return a > this.$items.length - 1 || 0 > a ? void 0 : this.sliding ? this.$element.one("slid.bs.carousel", function () { b.to(a) }) : c == a ? this.pause().cycle() : this.slide(a > c ? "next" : "prev", this.$items.eq(a)) }, c.prototype.pause = function (b) { return b || (this.paused = !0), this.$element.find(".next, .prev").length && a.support.transition && (this.$element.trigger(a.support.transition.end), this.cycle(!0)), this.interval = clearInterval(this.interval), this }, c.prototype.next = function () { return this.sliding ? void 0 : this.slide("next") }, c.prototype.prev = function () { return this.sliding ? void 0 : this.slide("prev") }, c.prototype.slide = function (b, d) { var e = this.$element.find(".item.active"), f = d || this.getItemForDirection(b, e), g = this.interval, h = "next" == b ? "left" : "right", i = this; if (f.hasClass("active")) return this.sliding = !1; var j = f[0], k = a.Event("slide.bs.carousel", { relatedTarget: j, direction: h }); if (this.$element.trigger(k), !k.isDefaultPrevented()) { if (this.sliding = !0, g && this.pause(), this.$indicators.length) { this.$indicators.find(".active").removeClass("active"); var l = a(this.$indicators.children()[this.getItemIndex(f)]); l && l.addClass("active") } var m = a.Event("slid.bs.carousel", { relatedTarget: j, direction: h }); return a.support.transition && this.$element.hasClass("slide") ? (f.addClass(b), f[0].offsetWidth, e.addClass(h), f.addClass(h), e.one("bsTransitionEnd", function () { f.removeClass([b, h].join(" ")).addClass("active"), e.removeClass(["active", h].join(" ")), i.sliding = !1, setTimeout(function () { i.$element.trigger(m) }, 0) }).emulateTransitionEnd(c.TRANSITION_DURATION)) : (e.removeClass("active"), f.addClass("active"), this.sliding = !1, this.$element.trigger(m)), g && this.cycle(), this } }; var d = a.fn.carousel; a.fn.carousel = b, a.fn.carousel.Constructor = c, a.fn.carousel.noConflict = function () { return a.fn.carousel = d, this }; var e = function (c) { var d, e = a(this), f = a(e.attr("data-target") || (d = e.attr("href")) && d.replace(/.*(?=#[^\s]+$)/, "")); if (f.hasClass("carousel")) { var g = a.extend({}, f.data(), e.data()), h = e.attr("data-slide-to"); h && (g.interval = !1), b.call(f, g), h && f.data("bs.carousel").to(h), c.preventDefault() } }; a(document).on("click.bs.carousel.data-api", "[data-slide]", e).on("click.bs.carousel.data-api", "[data-slide-to]", e), a(window).on("load", function () { a('[data-ride="carousel"]').each(function () { var c = a(this); b.call(c, c.data()) }) }) }(jQuery), +function (a) { "use strict"; function b(b) { var c, d = b.attr("data-target") || (c = b.attr("href")) && c.replace(/.*(?=#[^\s]+$)/, ""); return a(d) } function c(b) { return this.each(function () { var c = a(this), e = c.data("bs.collapse"), f = a.extend({}, d.DEFAULTS, c.data(), "object" == typeof b && b); !e && f.toggle && /show|hide/.test(b) && (f.toggle = !1), e || c.data("bs.collapse", e = new d(this, f)), "string" == typeof b && e[b]() }) } var d = function (b, c) { this.$element = a(b), this.options = a.extend({}, d.DEFAULTS, c), this.$trigger = a('[data-toggle="collapse"][href="#' + b.id + '"],[data-toggle="collapse"][data-target="#' + b.id + '"]'), this.transitioning = null, this.options.parent ? this.$parent = this.getParent() : this.addAriaAndCollapsedClass(this.$element, this.$trigger), this.options.toggle && this.toggle() }; d.VERSION = "3.3.5", d.TRANSITION_DURATION = 350, d.DEFAULTS = { toggle: !0 }, d.prototype.dimension = function () { var a = this.$element.hasClass("width"); return a ? "width" : "height" }, d.prototype.show = function () { if (!this.transitioning && !this.$element.hasClass("in")) { var b, e = this.$parent && this.$parent.children(".panel").children(".in, .collapsing"); if (!(e && e.length && (b = e.data("bs.collapse"), b && b.transitioning))) { var f = a.Event("show.bs.collapse"); if (this.$element.trigger(f), !f.isDefaultPrevented()) { e && e.length && (c.call(e, "hide"), b || e.data("bs.collapse", null)); var g = this.dimension(); this.$element.removeClass("collapse").addClass("collapsing")[g](0).attr("aria-expanded", !0), this.$trigger.removeClass("collapsed").attr("aria-expanded", !0), this.transitioning = 1; var h = function () { this.$element.removeClass("collapsing").addClass("collapse in")[g](""), this.transitioning = 0, this.$element.trigger("shown.bs.collapse") }; if (!a.support.transition) return h.call(this); var i = a.camelCase(["scroll", g].join("-")); this.$element.one("bsTransitionEnd", a.proxy(h, this)).emulateTransitionEnd(d.TRANSITION_DURATION)[g](this.$element[0][i]) } } } }, d.prototype.hide = function () { if (!this.transitioning && this.$element.hasClass("in")) { var b = a.Event("hide.bs.collapse"); if (this.$element.trigger(b), !b.isDefaultPrevented()) { var c = this.dimension(); this.$element[c](this.$element[c]())[0].offsetHeight, this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded", !1), this.$trigger.addClass("collapsed").attr("aria-expanded", !1), this.transitioning = 1; var e = function () { this.transitioning = 0, this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse") }; return a.support.transition ? void this.$element[c](0).one("bsTransitionEnd", a.proxy(e, this)).emulateTransitionEnd(d.TRANSITION_DURATION) : e.call(this) } } }, d.prototype.toggle = function () { this[this.$element.hasClass("in") ? "hide" : "show"]() }, d.prototype.getParent = function () { return a(this.options.parent).find('[data-toggle="collapse"][data-parent="' + this.options.parent + '"]').each(a.proxy(function (c, d) { var e = a(d); this.addAriaAndCollapsedClass(b(e), e) }, this)).end() }, d.prototype.addAriaAndCollapsedClass = function (a, b) { var c = a.hasClass("in"); a.attr("aria-expanded", c), b.toggleClass("collapsed", !c).attr("aria-expanded", c) }; var e = a.fn.collapse; a.fn.collapse = c, a.fn.collapse.Constructor = d, a.fn.collapse.noConflict = function () { return a.fn.collapse = e, this }, a(document).on("click.bs.collapse.data-api", '[data-toggle="collapse"]', function (d) { var e = a(this); e.attr("data-target") || d.preventDefault(); var f = b(e), g = f.data("bs.collapse"), h = g ? "toggle" : e.data(); c.call(f, h) }) }(jQuery), +function (a) { "use strict"; function b(b) { var c = b.attr("data-target"); c || (c = b.attr("href"), c = c && /#[A-Za-z]/.test(c) && c.replace(/.*(?=#[^\s]*$)/, "")); var d = c && a(c); return d && d.length ? d : b.parent() } function c(c) { c && 3 === c.which || (a(e).remove(), a(f).each(function () { var d = a(this), e = b(d), f = { relatedTarget: this }; e.hasClass("open") && (c && "click" == c.type && /input|textarea/i.test(c.target.tagName) && a.contains(e[0], c.target) || (e.trigger(c = a.Event("hide.bs.dropdown", f)), c.isDefaultPrevented() || (d.attr("aria-expanded", "false"), e.removeClass("open").trigger("hidden.bs.dropdown", f)))) })) } function d(b) { return this.each(function () { var c = a(this), d = c.data("bs.dropdown"); d || c.data("bs.dropdown", d = new g(this)), "string" == typeof b && d[b].call(c) }) } var e = ".dropdown-backdrop", f = '[data-toggle="dropdown"]', g = function (b) { a(b).on("click.bs.dropdown", this.toggle) }; g.VERSION = "3.3.5", g.prototype.toggle = function (d) { var e = a(this); if (!e.is(".disabled, :disabled")) { var f = b(e), g = f.hasClass("open"); if (c(), !g) { "ontouchstart" in document.documentElement && !f.closest(".navbar-nav").length && a(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(a(this)).on("click", c); var h = { relatedTarget: this }; if (f.trigger(d = a.Event("show.bs.dropdown", h)), d.isDefaultPrevented()) return; e.trigger("focus").attr("aria-expanded", "true"), f.toggleClass("open").trigger("shown.bs.dropdown", h) } return !1 } }, g.prototype.keydown = function (c) { if (/(38|40|27|32)/.test(c.which) && !/input|textarea/i.test(c.target.tagName)) { var d = a(this); if (c.preventDefault(), c.stopPropagation(), !d.is(".disabled, :disabled")) { var e = b(d), g = e.hasClass("open"); if (!g && 27 != c.which || g && 27 == c.which) return 27 == c.which && e.find(f).trigger("focus"), d.trigger("click"); var h = " li:not(.disabled):visible a", i = e.find(".dropdown-menu" + h); if (i.length) { var j = i.index(c.target); 38 == c.which && j > 0 && j--, 40 == c.which && j < i.length - 1 && j++, ~j || (j = 0), i.eq(j).trigger("focus") } } } }; var h = a.fn.dropdown; a.fn.dropdown = d, a.fn.dropdown.Constructor = g, a.fn.dropdown.noConflict = function () { return a.fn.dropdown = h, this }, a(document).on("click.bs.dropdown.data-api", c).on("click.bs.dropdown.data-api", ".dropdown form", function (a) { a.stopPropagation() }).on("click.bs.dropdown.data-api", f, g.prototype.toggle).on("keydown.bs.dropdown.data-api", f, g.prototype.keydown).on("keydown.bs.dropdown.data-api", ".dropdown-menu", g.prototype.keydown) }(jQuery), +function (a) { "use strict"; function b(b, d) { return this.each(function () { var e = a(this), f = e.data("bs.modal"), g = a.extend({}, c.DEFAULTS, e.data(), "object" == typeof b && b); f || e.data("bs.modal", f = new c(this, g)), "string" == typeof b ? f[b](d) : g.show && f.show(d) }) } var c = function (b, c) { this.options = c, this.$body = a(document.body), this.$element = a(b), this.$dialog = this.$element.find(".modal-dialog"), this.$backdrop = null, this.isShown = null, this.originalBodyPad = null, this.scrollbarWidth = 0, this.ignoreBackdropClick = !1, this.options.remote && this.$element.find(".modal-content").load(this.options.remote, a.proxy(function () { this.$element.trigger("loaded.bs.modal") }, this)) }; c.VERSION = "3.3.5", c.TRANSITION_DURATION = 300, c.BACKDROP_TRANSITION_DURATION = 150, c.DEFAULTS = { backdrop: !0, keyboard: !0, show: !0 }, c.prototype.toggle = function (a) { return this.isShown ? this.hide() : this.show(a) }, c.prototype.show = function (b) { var d = this, e = a.Event("show.bs.modal", { relatedTarget: b }); this.$element.trigger(e), this.isShown || e.isDefaultPrevented() || (this.isShown = !0, this.checkScrollbar(), this.setScrollbar(), this.$body.addClass("modal-open"), this.escape(), this.resize(), this.$element.on("click.dismiss.bs.modal", '[data-dismiss="modal"]', a.proxy(this.hide, this)), this.$dialog.on("mousedown.dismiss.bs.modal", function () { d.$element.one("mouseup.dismiss.bs.modal", function (b) { a(b.target).is(d.$element) && (d.ignoreBackdropClick = !0) }) }), this.backdrop(function () { var e = a.support.transition && d.$element.hasClass("fade"); d.$element.parent().length || d.$element.appendTo(d.$body), d.$element.show().scrollTop(0), d.adjustDialog(), e && d.$element[0].offsetWidth, d.$element.addClass("in"), d.enforceFocus(); var f = a.Event("shown.bs.modal", { relatedTarget: b }); e ? d.$dialog.one("bsTransitionEnd", function () { d.$element.trigger("focus").trigger(f) }).emulateTransitionEnd(c.TRANSITION_DURATION) : d.$element.trigger("focus").trigger(f) })) }, c.prototype.hide = function (b) { b && b.preventDefault(), b = a.Event("hide.bs.modal"), this.$element.trigger(b), this.isShown && !b.isDefaultPrevented() && (this.isShown = !1, this.escape(), this.resize(), a(document).off("focusin.bs.modal"), this.$element.removeClass("in").off("click.dismiss.bs.modal").off("mouseup.dismiss.bs.modal"), this.$dialog.off("mousedown.dismiss.bs.modal"), a.support.transition && this.$element.hasClass("fade") ? this.$element.one("bsTransitionEnd", a.proxy(this.hideModal, this)).emulateTransitionEnd(c.TRANSITION_DURATION) : this.hideModal()) }, c.prototype.enforceFocus = function () { a(document).off("focusin.bs.modal").on("focusin.bs.modal", a.proxy(function (a) { this.$element[0] === a.target || this.$element.has(a.target).length || this.$element.trigger("focus") }, this)) }, c.prototype.escape = function () { this.isShown && this.options.keyboard ? this.$element.on("keydown.dismiss.bs.modal", a.proxy(function (a) { 27 == a.which && this.hide() }, this)) : this.isShown || this.$element.off("keydown.dismiss.bs.modal") }, c.prototype.resize = function () { this.isShown ? a(window).on("resize.bs.modal", a.proxy(this.handleUpdate, this)) : a(window).off("resize.bs.modal") }, c.prototype.hideModal = function () { var a = this; this.$element.hide(), this.backdrop(function () { a.$body.removeClass("modal-open"), a.resetAdjustments(), a.resetScrollbar(), a.$element.trigger("hidden.bs.modal") }) }, c.prototype.removeBackdrop = function () { this.$backdrop && this.$backdrop.remove(), this.$backdrop = null }, c.prototype.backdrop = function (b) { var d = this, e = this.$element.hasClass("fade") ? "fade" : ""; if (this.isShown && this.options.backdrop) { var f = a.support.transition && e; if (this.$backdrop = a(document.createElement("div")).addClass("modal-backdrop " + e).appendTo(this.$body), this.$element.on("click.dismiss.bs.modal", a.proxy(function (a) { return this.ignoreBackdropClick ? void (this.ignoreBackdropClick = !1) : void (a.target === a.currentTarget && ("static" == this.options.backdrop ? this.$element[0].focus() : this.hide())) }, this)), f && this.$backdrop[0].offsetWidth, this.$backdrop.addClass("in"), !b) return; f ? this.$backdrop.one("bsTransitionEnd", b).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION) : b() } else if (!this.isShown && this.$backdrop) { this.$backdrop.removeClass("in"); var g = function () { d.removeBackdrop(), b && b() }; a.support.transition && this.$element.hasClass("fade") ? this.$backdrop.one("bsTransitionEnd", g).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION) : g() } else b && b() }, c.prototype.handleUpdate = function () { this.adjustDialog() }, c.prototype.adjustDialog = function () { var a = this.$element[0].scrollHeight > document.documentElement.clientHeight; this.$element.css({ paddingLeft: !this.bodyIsOverflowing && a ? this.scrollbarWidth : "", paddingRight: this.bodyIsOverflowing && !a ? this.scrollbarWidth : "" }) }, c.prototype.resetAdjustments = function () { this.$element.css({ paddingLeft: "", paddingRight: "" }) }, c.prototype.checkScrollbar = function () { var a = window.innerWidth; if (!a) { var b = document.documentElement.getBoundingClientRect(); a = b.right - Math.abs(b.left) } this.bodyIsOverflowing = document.body.clientWidth < a, this.scrollbarWidth = this.measureScrollbar() }, c.prototype.setScrollbar = function () { var a = parseInt(this.$body.css("padding-right") || 0, 10); this.originalBodyPad = document.body.style.paddingRight || "", this.bodyIsOverflowing && this.$body.css("padding-right", a + this.scrollbarWidth) }, c.prototype.resetScrollbar = function () { this.$body.css("padding-right", this.originalBodyPad) }, c.prototype.measureScrollbar = function () { var a = document.createElement("div"); a.className = "modal-scrollbar-measure", this.$body.append(a); var b = a.offsetWidth - a.clientWidth; return this.$body[0].removeChild(a), b }; var d = a.fn.modal; a.fn.modal = b, a.fn.modal.Constructor = c, a.fn.modal.noConflict = function () { return a.fn.modal = d, this }, a(document).on("click.bs.modal.data-api", '[data-toggle="modal"]', function (c) { var d = a(this), e = d.attr("href"), f = a(d.attr("data-target") || e && e.replace(/.*(?=#[^\s]+$)/, "")), g = f.data("bs.modal") ? "toggle" : a.extend({ remote: !/#/.test(e) && e }, f.data(), d.data()); d.is("a") && c.preventDefault(), f.one("show.bs.modal", function (a) { a.isDefaultPrevented() || f.one("hidden.bs.modal", function () { d.is(":visible") && d.trigger("focus") }) }), b.call(f, g, this) }) }(jQuery), +function (a) { "use strict"; function b(b) { return this.each(function () { var d = a(this), e = d.data("bs.tooltip"), f = "object" == typeof b && b; (e || !/destroy|hide/.test(b)) && (e || d.data("bs.tooltip", e = new c(this, f)), "string" == typeof b && e[b]()) }) } var c = function (a, b) { this.type = null, this.options = null, this.enabled = null, this.timeout = null, this.hoverState = null, this.$element = null, this.inState = null, this.init("tooltip", a, b) }; c.VERSION = "3.3.5", c.TRANSITION_DURATION = 150, c.DEFAULTS = { animation: !0, placement: "top", selector: !1, template: '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>', trigger: "hover focus", title: "", delay: 0, html: !1, container: !1, viewport: { selector: "body", padding: 0 } }, c.prototype.init = function (b, c, d) { if (this.enabled = !0, this.type = b, this.$element = a(c), this.options = this.getOptions(d), this.$viewport = this.options.viewport && a(a.isFunction(this.options.viewport) ? this.options.viewport.call(this, this.$element) : this.options.viewport.selector || this.options.viewport), this.inState = { click: !1, hover: !1, focus: !1 }, this.$element[0] instanceof document.constructor && !this.options.selector) throw new Error("`selector` option must be specified when initializing " + this.type + " on the window.document object!"); for (var e = this.options.trigger.split(" "), f = e.length; f--;) { var g = e[f]; if ("click" == g) this.$element.on("click." + this.type, this.options.selector, a.proxy(this.toggle, this)); else if ("manual" != g) { var h = "hover" == g ? "mouseenter" : "focusin", i = "hover" == g ? "mouseleave" : "focusout"; this.$element.on(h + "." + this.type, this.options.selector, a.proxy(this.enter, this)), this.$element.on(i + "." + this.type, this.options.selector, a.proxy(this.leave, this)) } } this.options.selector ? this._options = a.extend({}, this.options, { trigger: "manual", selector: "" }) : this.fixTitle() }, c.prototype.getDefaults = function () { return c.DEFAULTS }, c.prototype.getOptions = function (b) { return b = a.extend({}, this.getDefaults(), this.$element.data(), b), b.delay && "number" == typeof b.delay && (b.delay = { show: b.delay, hide: b.delay }), b }, c.prototype.getDelegateOptions = function () { var b = {}, c = this.getDefaults(); return this._options && a.each(this._options, function (a, d) { c[a] != d && (b[a] = d) }), b }, c.prototype.enter = function (b) { var c = b instanceof this.constructor ? b : a(b.currentTarget).data("bs." + this.type); return c || (c = new this.constructor(b.currentTarget, this.getDelegateOptions()), a(b.currentTarget).data("bs." + this.type, c)), b instanceof a.Event && (c.inState["focusin" == b.type ? "focus" : "hover"] = !0), c.tip().hasClass("in") || "in" == c.hoverState ? void (c.hoverState = "in") : (clearTimeout(c.timeout), c.hoverState = "in", c.options.delay && c.options.delay.show ? void (c.timeout = setTimeout(function () { "in" == c.hoverState && c.show() }, c.options.delay.show)) : c.show()) }, c.prototype.isInStateTrue = function () { for (var a in this.inState) if (this.inState[a]) return !0; return !1 }, c.prototype.leave = function (b) { var c = b instanceof this.constructor ? b : a(b.currentTarget).data("bs." + this.type); return c || (c = new this.constructor(b.currentTarget, this.getDelegateOptions()), a(b.currentTarget).data("bs." + this.type, c)), b instanceof a.Event && (c.inState["focusout" == b.type ? "focus" : "hover"] = !1), c.isInStateTrue() ? void 0 : (clearTimeout(c.timeout), c.hoverState = "out", c.options.delay && c.options.delay.hide ? void (c.timeout = setTimeout(function () { "out" == c.hoverState && c.hide() }, c.options.delay.hide)) : c.hide()) }, c.prototype.show = function () { var b = a.Event("show.bs." + this.type); if (this.hasContent() && this.enabled) { this.$element.trigger(b); var d = a.contains(this.$element[0].ownerDocument.documentElement, this.$element[0]); if (b.isDefaultPrevented() || !d) return; var e = this, f = this.tip(), g = this.getUID(this.type); this.setContent(), f.attr("id", g), this.$element.attr("aria-describedby", g), this.options.animation && f.addClass("fade"); var h = "function" == typeof this.options.placement ? this.options.placement.call(this, f[0], this.$element[0]) : this.options.placement, i = /\s?auto?\s?/i, j = i.test(h); j && (h = h.replace(i, "") || "top"), f.detach().css({ top: 0, left: 0, display: "block" }).addClass(h).data("bs." + this.type, this), this.options.container ? f.appendTo(this.options.container) : f.insertAfter(this.$element), this.$element.trigger("inserted.bs." + this.type); var k = this.getPosition(), l = f[0].offsetWidth, m = f[0].offsetHeight; if (j) { var n = h, o = this.getPosition(this.$viewport); h = "bottom" == h && k.bottom + m > o.bottom ? "top" : "top" == h && k.top - m < o.top ? "bottom" : "right" == h && k.right + l > o.width ? "left" : "left" == h && k.left - l < o.left ? "right" : h, f.removeClass(n).addClass(h) } var p = this.getCalculatedOffset(h, k, l, m); this.applyPlacement(p, h); var q = function () { var a = e.hoverState; e.$element.trigger("shown.bs." + e.type), e.hoverState = null, "out" == a && e.leave(e) }; a.support.transition && this.$tip.hasClass("fade") ? f.one("bsTransitionEnd", q).emulateTransitionEnd(c.TRANSITION_DURATION) : q() } }, c.prototype.applyPlacement = function (b, c) { var d = this.tip(), e = d[0].offsetWidth, f = d[0].offsetHeight, g = parseInt(d.css("margin-top"), 10), h = parseInt(d.css("margin-left"), 10); isNaN(g) && (g = 0), isNaN(h) && (h = 0), b.top += g, b.left += h, a.offset.setOffset(d[0], a.extend({ using: function (a) { d.css({ top: Math.round(a.top), left: Math.round(a.left) }) } }, b), 0), d.addClass("in"); var i = d[0].offsetWidth, j = d[0].offsetHeight; "top" == c && j != f && (b.top = b.top + f - j); var k = this.getViewportAdjustedDelta(c, b, i, j); k.left ? b.left += k.left : b.top += k.top; var l = /top|bottom/.test(c), m = l ? 2 * k.left - e + i : 2 * k.top - f + j, n = l ? "offsetWidth" : "offsetHeight"; d.offset(b), this.replaceArrow(m, d[0][n], l) }, c.prototype.replaceArrow = function (a, b, c) { this.arrow().css(c ? "left" : "top", 50 * (1 - a / b) + "%").css(c ? "top" : "left", "") }, c.prototype.setContent = function () { var a = this.tip(), b = this.getTitle(); a.find(".tooltip-inner")[this.options.html ? "html" : "text"](b), a.removeClass("fade in top bottom left right") }, c.prototype.hide = function (b) { function d() { "in" != e.hoverState && f.detach(), e.$element.removeAttr("aria-describedby").trigger("hidden.bs." + e.type), b && b() } var e = this, f = a(this.$tip), g = a.Event("hide.bs." + this.type); return this.$element.trigger(g), g.isDefaultPrevented() ? void 0 : (f.removeClass("in"), a.support.transition && f.hasClass("fade") ? f.one("bsTransitionEnd", d).emulateTransitionEnd(c.TRANSITION_DURATION) : d(), this.hoverState = null, this) }, c.prototype.fixTitle = function () { var a = this.$element; (a.attr("title") || "string" != typeof a.attr("data-original-title")) && a.attr("data-original-title", a.attr("title") || "").attr("title", "") }, c.prototype.hasContent = function () { return this.getTitle() }, c.prototype.getPosition = function (b) { b = b || this.$element; var c = b[0], d = "BODY" == c.tagName, e = c.getBoundingClientRect(); null == e.width && (e = a.extend({}, e, { width: e.right - e.left, height: e.bottom - e.top })); var f = d ? { top: 0, left: 0 } : b.offset(), g = { scroll: d ? document.documentElement.scrollTop || document.body.scrollTop : b.scrollTop() }, h = d ? { width: a(window).width(), height: a(window).height() } : null; return a.extend({}, e, g, h, f) }, c.prototype.getCalculatedOffset = function (a, b, c, d) { return "bottom" == a ? { top: b.top + b.height, left: b.left + b.width / 2 - c / 2 } : "top" == a ? { top: b.top - d, left: b.left + b.width / 2 - c / 2 } : "left" == a ? { top: b.top + b.height / 2 - d / 2, left: b.left - c } : { top: b.top + b.height / 2 - d / 2, left: b.left + b.width } }, c.prototype.getViewportAdjustedDelta = function (a, b, c, d) { var e = { top: 0, left: 0 }; if (!this.$viewport) return e; var f = this.options.viewport && this.options.viewport.padding || 0, g = this.getPosition(this.$viewport); if (/right|left/.test(a)) { var h = b.top - f - g.scroll, i = b.top + f - g.scroll + d; h < g.top ? e.top = g.top - h : i > g.top + g.height && (e.top = g.top + g.height - i) } else { var j = b.left - f, k = b.left + f + c; j < g.left ? e.left = g.left - j : k > g.right && (e.left = g.left + g.width - k) } return e }, c.prototype.getTitle = function () { var a, b = this.$element, c = this.options; return a = b.attr("data-original-title") || ("function" == typeof c.title ? c.title.call(b[0]) : c.title) }, c.prototype.getUID = function (a) { do a += ~~(1e6 * Math.random()); while (document.getElementById(a)); return a }, c.prototype.tip = function () { if (!this.$tip && (this.$tip = a(this.options.template), 1 != this.$tip.length)) throw new Error(this.type + " `template` option must consist of exactly 1 top-level element!"); return this.$tip }, c.prototype.arrow = function () { return this.$arrow = this.$arrow || this.tip().find(".tooltip-arrow") }, c.prototype.enable = function () { this.enabled = !0 }, c.prototype.disable = function () { this.enabled = !1 }, c.prototype.toggleEnabled = function () { this.enabled = !this.enabled }, c.prototype.toggle = function (b) { var c = this; b && (c = a(b.currentTarget).data("bs." + this.type), c || (c = new this.constructor(b.currentTarget, this.getDelegateOptions()), a(b.currentTarget).data("bs." + this.type, c))), b ? (c.inState.click = !c.inState.click, c.isInStateTrue() ? c.enter(c) : c.leave(c)) : c.tip().hasClass("in") ? c.leave(c) : c.enter(c) }, c.prototype.destroy = function () { var a = this; clearTimeout(this.timeout), this.hide(function () { a.$element.off("." + a.type).removeData("bs." + a.type), a.$tip && a.$tip.detach(), a.$tip = null, a.$arrow = null, a.$viewport = null }) }; var d = a.fn.tooltip; a.fn.tooltip = b, a.fn.tooltip.Constructor = c, a.fn.tooltip.noConflict = function () { return a.fn.tooltip = d, this } }(jQuery), +function (a) { "use strict"; function b(b) { return this.each(function () { var d = a(this), e = d.data("bs.popover"), f = "object" == typeof b && b; (e || !/destroy|hide/.test(b)) && (e || d.data("bs.popover", e = new c(this, f)), "string" == typeof b && e[b]()) }) } var c = function (a, b) { this.init("popover", a, b) }; if (!a.fn.tooltip) throw new Error("Popover requires tooltip.js"); c.VERSION = "3.3.5", c.DEFAULTS = a.extend({}, a.fn.tooltip.Constructor.DEFAULTS, { placement: "right", trigger: "click", content: "", template: '<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>' }), c.prototype = a.extend({}, a.fn.tooltip.Constructor.prototype), c.prototype.constructor = c, c.prototype.getDefaults = function () { return c.DEFAULTS }, c.prototype.setContent = function () { var a = this.tip(), b = this.getTitle(), c = this.getContent(); a.find(".popover-title")[this.options.html ? "html" : "text"](b), a.find(".popover-content").children().detach().end()[this.options.html ? "string" == typeof c ? "html" : "append" : "text"](c), a.removeClass("fade top bottom left right in"), a.find(".popover-title").html() || a.find(".popover-title").hide() }, c.prototype.hasContent = function () { return this.getTitle() || this.getContent() }, c.prototype.getContent = function () { var a = this.$element, b = this.options; return a.attr("data-content") || ("function" == typeof b.content ? b.content.call(a[0]) : b.content) }, c.prototype.arrow = function () { return this.$arrow = this.$arrow || this.tip().find(".arrow") }; var d = a.fn.popover; a.fn.popover = b, a.fn.popover.Constructor = c, a.fn.popover.noConflict = function () { return a.fn.popover = d, this } }(jQuery), +function (a) { "use strict"; function b(c, d) { this.$body = a(document.body), this.$scrollElement = a(a(c).is(document.body) ? window : c), this.options = a.extend({}, b.DEFAULTS, d), this.selector = (this.options.target || "") + " .nav li > a", this.offsets = [], this.targets = [], this.activeTarget = null, this.scrollHeight = 0, this.$scrollElement.on("scroll.bs.scrollspy", a.proxy(this.process, this)), this.refresh(), this.process() } function c(c) { return this.each(function () { var d = a(this), e = d.data("bs.scrollspy"), f = "object" == typeof c && c; e || d.data("bs.scrollspy", e = new b(this, f)), "string" == typeof c && e[c]() }) } b.VERSION = "3.3.5", b.DEFAULTS = { offset: 10 }, b.prototype.getScrollHeight = function () { return this.$scrollElement[0].scrollHeight || Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight) }, b.prototype.refresh = function () { var b = this, c = "offset", d = 0; this.offsets = [], this.targets = [], this.scrollHeight = this.getScrollHeight(), a.isWindow(this.$scrollElement[0]) || (c = "position", d = this.$scrollElement.scrollTop()), this.$body.find(this.selector).map(function () { var b = a(this), e = b.data("target") || b.attr("href"), f = /^#./.test(e) && a(e); return f && f.length && f.is(":visible") && [[f[c]().top + d, e]] || null }).sort(function (a, b) { return a[0] - b[0] }).each(function () { b.offsets.push(this[0]), b.targets.push(this[1]) }) }, b.prototype.process = function () { var a, b = this.$scrollElement.scrollTop() + this.options.offset, c = this.getScrollHeight(), d = this.options.offset + c - this.$scrollElement.height(), e = this.offsets, f = this.targets, g = this.activeTarget; if (this.scrollHeight != c && this.refresh(), b >= d) return g != (a = f[f.length - 1]) && this.activate(a); if (g && b < e[0]) return this.activeTarget = null, this.clear(); for (a = e.length; a--;)g != f[a] && b >= e[a] && (void 0 === e[a + 1] || b < e[a + 1]) && this.activate(f[a]) }, b.prototype.activate = function (b) { this.activeTarget = b, this.clear(); var c = this.selector + '[data-target="' + b + '"],' + this.selector + '[href="' + b + '"]', d = a(c).parents("li").addClass("active"); d.parent(".dropdown-menu").length && (d = d.closest("li.dropdown").addClass("active")), d.trigger("activate.bs.scrollspy") }, b.prototype.clear = function () { a(this.selector).parentsUntil(this.options.target, ".active").removeClass("active") }; var d = a.fn.scrollspy; a.fn.scrollspy = c, a.fn.scrollspy.Constructor = b, a.fn.scrollspy.noConflict = function () { return a.fn.scrollspy = d, this }, a(window).on("load.bs.scrollspy.data-api", function () { a('[data-spy="scroll"]').each(function () { var b = a(this); c.call(b, b.data()) }) }) }(jQuery), +function (a) { "use strict"; function b(b) { return this.each(function () { var d = a(this), e = d.data("bs.tab"); e || d.data("bs.tab", e = new c(this)), "string" == typeof b && e[b]() }) } var c = function (b) { this.element = a(b) }; c.VERSION = "3.3.5", c.TRANSITION_DURATION = 150, c.prototype.show = function () { var b = this.element, c = b.closest("ul:not(.dropdown-menu)"), d = b.data("target"); if (d || (d = b.attr("href"), d = d && d.replace(/.*(?=#[^\s]*$)/, "")), !b.parent("li").hasClass("active")) { var e = c.find(".active:last a"), f = a.Event("hide.bs.tab", { relatedTarget: b[0] }), g = a.Event("show.bs.tab", { relatedTarget: e[0] }); if (e.trigger(f), b.trigger(g), !g.isDefaultPrevented() && !f.isDefaultPrevented()) { var h = a(d); this.activate(b.closest("li"), c), this.activate(h, h.parent(), function () { e.trigger({ type: "hidden.bs.tab", relatedTarget: b[0] }), b.trigger({ type: "shown.bs.tab", relatedTarget: e[0] }) }) } } }, c.prototype.activate = function (b, d, e) { function f() { g.removeClass("active").find("> .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded", !1), b.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded", !0), h ? (b[0].offsetWidth, b.addClass("in")) : b.removeClass("fade"), b.parent(".dropdown-menu").length && b.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded", !0), e && e() } var g = d.find("> .active"), h = e && a.support.transition && (g.length && g.hasClass("fade") || !!d.find("> .fade").length); g.length && h ? g.one("bsTransitionEnd", f).emulateTransitionEnd(c.TRANSITION_DURATION) : f(), g.removeClass("in") }; var d = a.fn.tab; a.fn.tab = b, a.fn.tab.Constructor = c, a.fn.tab.noConflict = function () { return a.fn.tab = d, this }; var e = function (c) { c.preventDefault(), b.call(a(this), "show") }; a(document).on("click.bs.tab.data-api", '[data-toggle="tab"]', e).on("click.bs.tab.data-api", '[data-toggle="pill"]', e) }(jQuery), +function (a) { "use strict"; function b(b) { return this.each(function () { var d = a(this), e = d.data("bs.affix"), f = "object" == typeof b && b; e || d.data("bs.affix", e = new c(this, f)), "string" == typeof b && e[b]() }) } var c = function (b, d) { this.options = a.extend({}, c.DEFAULTS, d), this.$target = a(this.options.target).on("scroll.bs.affix.data-api", a.proxy(this.checkPosition, this)).on("click.bs.affix.data-api", a.proxy(this.checkPositionWithEventLoop, this)), this.$element = a(b), this.affixed = null, this.unpin = null, this.pinnedOffset = null, this.checkPosition() }; c.VERSION = "3.3.5", c.RESET = "affix affix-top affix-bottom", c.DEFAULTS = { offset: 0, target: window }, c.prototype.getState = function (a, b, c, d) { var e = this.$target.scrollTop(), f = this.$element.offset(), g = this.$target.height(); if (null != c && "top" == this.affixed) return c > e ? "top" : !1; if ("bottom" == this.affixed) return null != c ? e + this.unpin <= f.top ? !1 : "bottom" : a - d >= e + g ? !1 : "bottom"; var h = null == this.affixed, i = h ? e : f.top, j = h ? g : b; return null != c && c >= e ? "top" : null != d && i + j >= a - d ? "bottom" : !1 }, c.prototype.getPinnedOffset = function () { if (this.pinnedOffset) return this.pinnedOffset; this.$element.removeClass(c.RESET).addClass("affix"); var a = this.$target.scrollTop(), b = this.$element.offset(); return this.pinnedOffset = b.top - a }, c.prototype.checkPositionWithEventLoop = function () { setTimeout(a.proxy(this.checkPosition, this), 1) }, c.prototype.checkPosition = function () { if (this.$element.is(":visible")) { var b = this.$element.height(), d = this.options.offset, e = d.top, f = d.bottom, g = Math.max(a(document).height(), a(document.body).height()); "object" != typeof d && (f = e = d), "function" == typeof e && (e = d.top(this.$element)), "function" == typeof f && (f = d.bottom(this.$element)); var h = this.getState(g, b, e, f); if (this.affixed != h) { null != this.unpin && this.$element.css("top", ""); var i = "affix" + (h ? "-" + h : ""), j = a.Event(i + ".bs.affix"); if (this.$element.trigger(j), j.isDefaultPrevented()) return; this.affixed = h, this.unpin = "bottom" == h ? this.getPinnedOffset() : null, this.$element.removeClass(c.RESET).addClass(i).trigger(i.replace("affix", "affixed") + ".bs.affix") } "bottom" == h && this.$element.offset({ top: g - b - f }) } }; var d = a.fn.affix; a.fn.affix = b, a.fn.affix.Constructor = c, a.fn.affix.noConflict = function () { return a.fn.affix = d, this }, a(window).on("load", function () { a('[data-spy="affix"]').each(function () { var c = a(this), d = c.data(); d.offset = d.offset || {}, null != d.offsetBottom && (d.offset.bottom = d.offsetBottom), null != d.offsetTop && (d.offset.top = d.offsetTop), b.call(c, d) }) }) }(jQuery); </script> <script defer> !function (t, e, i, s) { function n(e, i) { this.settings = null, this.options = t.extend({}, n.Defaults, i), this.$element = t(e), this._handlers = {}, this._plugins = {}, this._supress = {}, this._current = null, this._speed = null, this._coordinates = [], this._breakpoint = null, this._width = null, this._items = [], this._clones = [], this._mergers = [], this._widths = [], this._invalidated = {}, this._pipe = [], this._drag = { time: null, target: null, pointer: null, stage: { start: null, current: null }, direction: null }, this._states = { current: {}, tags: { initializing: ["busy"], animating: ["busy"], dragging: ["interacting"] } }, t.each(["onResize", "onThrottledResize"], t.proxy(function (e, i) { this._handlers[i] = t.proxy(this[i], this) }, this)), t.each(n.Plugins, t.proxy(function (t, e) { this._plugins[t.charAt(0).toLowerCase() + t.slice(1)] = new e(this) }, this)), t.each(n.Workers, t.proxy(function (e, i) { this._pipe.push({ filter: i.filter, run: t.proxy(i.run, this) }) }, this)), this.setup(), this.initialize() } n.Defaults = { items: 3, loop: !1, center: !1, rewind: !1, checkVisibility: !0, mouseDrag: !0, touchDrag: !0, pullDrag: !0, freeDrag: !1, margin: 0, stagePadding: 0, merge: !1, mergeFit: !0, autoWidth: !1, startPosition: 0, rtl: !1, smartSpeed: 250, fluidSpeed: !1, dragEndSpeed: !1, responsive: {}, responsiveRefreshRate: 200, responsiveBaseElement: e, fallbackEasing: "swing", slideTransition: "", info: !1, nestedItemSelector: !1, itemElement: "div", stageElement: "div", refreshClass: "owl-refresh", loadedClass: "owl-loaded", loadingClass: "owl-loading", rtlClass: "owl-rtl", responsiveClass: "owl-responsive", dragClass: "owl-drag", itemClass: "owl-item", stageClass: "owl-stage", stageOuterClass: "owl-stage-outer", grabClass: "owl-grab" }, n.Width = { Default: "default", Inner: "inner", Outer: "outer" }, n.Type = { Event: "event", State: "state" }, n.Plugins = {}, n.Workers = [{ filter: ["width", "settings"], run: function () { this._width = this.$element.width() } }, { filter: ["width", "items", "settings"], run: function (t) { t.current = this._items && this._items[this.relative(this._current)] } }, { filter: ["items", "settings"], run: function () { this.$stage.children(".cloned").remove() } }, { filter: ["width", "items", "settings"], run: function (t) { var e = this.settings.margin || "", i = !this.settings.autoWidth, s = this.settings.rtl, n = { width: "auto", "margin-left": s ? e : "", "margin-right": s ? "" : e }; i || this.$stage.children().css(n), t.css = n } }, { filter: ["width", "items", "settings"], run: function (t) { var e = (this.width() / this.settings.items).toFixed(3) - this.settings.margin, i = null, s = this._items.length, n = !this.settings.autoWidth, o = []; for (t.items = { merge: !1, width: e }; s--;)i = this._mergers[s], i = this.settings.mergeFit && Math.min(i, this.settings.items) || i, t.items.merge = i > 1 || t.items.merge, o[s] = n ? e * i : this._items[s].width(); this._widths = o } }, { filter: ["items", "settings"], run: function () { var e = [], i = this._items, s = this.settings, n = Math.max(2 * s.items, 4), o = 2 * Math.ceil(i.length / 2), r = s.loop && i.length ? s.rewind ? n : Math.max(n, o) : 0, a = "", h = ""; for (r /= 2; r > 0;)e.push(this.normalize(e.length / 2, !0)), a += i[e[e.length - 1]][0].outerHTML, e.push(this.normalize(i.length - 1 - (e.length - 1) / 2, !0)), h = i[e[e.length - 1]][0].outerHTML + h, r -= 1; this._clones = e, t(a).addClass("cloned").appendTo(this.$stage), t(h).addClass("cloned").prependTo(this.$stage) } }, { filter: ["width", "items", "settings"], run: function () { for (var t = this.settings.rtl ? 1 : -1, e = this._clones.length + this._items.length, i = -1, s = 0, n = 0, o = []; ++i < e;)s = o[i - 1] || 0, o.push(s + (n = this._widths[this.relative(i)] + this.settings.margin) * t); this._coordinates = o } }, { filter: ["width", "items", "settings"], run: function () { var t = this.settings.stagePadding, e = this._coordinates, i = { width: Math.ceil(Math.abs(e[e.length - 1])) + 2 * t, "padding-left": t || "", "padding-right": t || "" }; this.$stage.css(i) } }, { filter: ["width", "items", "settings"], run: function (t) { var e = this._coordinates.length, i = !this.settings.autoWidth, s = this.$stage.children(); if (i && t.items.merge) for (; e--;)t.css.width = this._widths[this.relative(e)], s.eq(e).css(t.css); else i && (t.css.width = t.items.width, s.css(t.css)) } }, { filter: ["items"], run: function () { this._coordinates.length < 1 && this.$stage.removeAttr("style") } }, { filter: ["width", "items", "settings"], run: function (t) { t.current = t.current ? this.$stage.children().index(t.current) : 0, t.current = Math.max(this.minimum(), Math.min(this.maximum(), t.current)), this.reset(t.current) } }, { filter: ["position"], run: function () { this.animate(this.coordinates(this._current)) } }, { filter: ["width", "position", "items", "settings"], run: function () { var t, e, i, s, n = this.settings.rtl ? 1 : -1, o = 2 * this.settings.stagePadding, r = this.coordinates(this.current()) + o, a = r + this.width() * n, h = []; for (i = 0, s = this._coordinates.length; i < s; i++)t = this._coordinates[i - 1] || 0, e = Math.abs(this._coordinates[i]) + o * n, (this.op(t, "<=", r) && this.op(t, ">", a) || this.op(e, "<", r) && this.op(e, ">", a)) && h.push(i); this.$stage.children(".active").removeClass("active"), this.$stage.children(":eq(" + h.join("), :eq(") + ")").addClass("active"), this.$stage.children(".center").removeClass("center"), this.settings.center && this.$stage.children().eq(this.current()).addClass("center") } }], n.prototype.initializeStage = function () { this.$stage = this.$element.find("." + this.settings.stageClass), !this.$stage.length && (this.$element.addClass(this.options.loadingClass), this.$stage = t("<" + this.settings.stageElement + ">", { class: this.settings.stageClass }).wrap(t("<div/>", { class: this.settings.stageOuterClass })), this.$element.append(this.$stage.parent())) }, n.prototype.initializeItems = function () { var e = this.$element.find(".owl-item"); if (e.length) { this._items = e.get().map(function (e) { return t(e) }), this._mergers = this._items.map(function () { return 1 }), this.refresh(); return } this.replace(this.$element.children().not(this.$stage.parent())), this.isVisible() ? this.refresh() : this.invalidate("width"), this.$element.removeClass(this.options.loadingClass).addClass(this.options.loadedClass) }, n.prototype.initialize = function () { if (this.enter("initializing"), this.trigger("initialize"), this.$element.toggleClass(this.settings.rtlClass, this.settings.rtl), this.settings.autoWidth && !this.is("pre-loading")) { var t, e, i; t = this.$element.find("img"), e = this.settings.nestedItemSelector ? "." + this.settings.nestedItemSelector : s, i = this.$element.children(e).width(), t.length && i <= 0 && this.preloadAutoWidthImages(t) } this.initializeStage(), this.initializeItems(), this.registerEventHandlers(), this.leave("initializing"), this.trigger("initialized") }, n.prototype.isVisible = function () { return !this.settings.checkVisibility || this.$element.is(":visible") }, n.prototype.setup = function () { var e = this.viewport(), i = this.options.responsive, s = -1, n = null; i ? (t.each(i, function (t) { t <= e && t > s && (s = Number(t)) }), "function" == typeof (n = t.extend({}, this.options, i[s])).stagePadding && (n.stagePadding = n.stagePadding()), delete n.responsive, n.responsiveClass && this.$element.attr("class", this.$element.attr("class").replace(RegExp("(" + this.options.responsiveClass + "-)\\S+\\s", "g"), "$1" + s))) : n = t.extend({}, this.options), this.trigger("change", { property: { name: "settings", value: n } }), this._breakpoint = s, this.settings = n, this.invalidate("settings"), this.trigger("changed", { property: { name: "settings", value: this.settings } }) }, n.prototype.optionsLogic = function () { this.settings.autoWidth && (this.settings.stagePadding = !1, this.settings.merge = !1) }, n.prototype.prepare = function (e) { var i = this.trigger("prepare", { content: e }); return i.data || (i.data = t("<" + this.settings.itemElement + "/>").addClass(this.options.itemClass).append(e)), this.trigger("prepared", { content: i.data }), i.data }, n.prototype.update = function () { for (var e = 0, i = this._pipe.length, s = t.proxy(function (t) { return this[t] }, this._invalidated), n = {}; e < i;)(this._invalidated.all || t.grep(this._pipe[e].filter, s).length > 0) && this._pipe[e].run(n), e++; this._invalidated = {}, this.is("valid") || this.enter("valid") }, n.prototype.width = function (t) { switch (t = t || n.Width.Default) { case n.Width.Inner: case n.Width.Outer: return this._width; default: return this._width - 2 * this.settings.stagePadding + this.settings.margin } }, n.prototype.refresh = function () { this.enter("refreshing"), this.trigger("refresh"), this.setup(), this.optionsLogic(), this.$element.addClass(this.options.refreshClass), this.update(), this.$element.removeClass(this.options.refreshClass), this.leave("refreshing"), this.trigger("refreshed") }, n.prototype.onThrottledResize = function () { e.clearTimeout(this.resizeTimer), this.resizeTimer = e.setTimeout(this._handlers.onResize, this.settings.responsiveRefreshRate) }, n.prototype.onResize = function () { return !!(this._items.length && this._width !== this.$element.width() && this.isVisible()) && ((this.enter("resizing"), this.trigger("resize").isDefaultPrevented()) ? (this.leave("resizing"), !1) : void (this.invalidate("width"), this.refresh(), this.leave("resizing"), this.trigger("resized"))) }, n.prototype.registerEventHandlers = function () { t.support.transition && this.$stage.on(t.support.transition.end + ".owl.core", t.proxy(this.onTransitionEnd, this)), !1 !== this.settings.responsive && this.on(e, "resize", this._handlers.onThrottledResize), this.settings.mouseDrag && (this.$element.addClass(this.options.dragClass), this.$stage.on("mousedown.owl.core", t.proxy(this.onDragStart, this)), this.$stage.on("dragstart.owl.core selectstart.owl.core", function () { return !1 })), this.settings.touchDrag && (this.$stage.on("touchstart.owl.core", t.proxy(this.onDragStart, this)), this.$stage.on("touchcancel.owl.core", t.proxy(this.onDragEnd, this))) }, n.prototype.onDragStart = function (e) { var s = null; 3 !== e.which && (t.support.transform ? s = { x: (s = this.$stage.css("transform").replace(/.*\(|\)| /g, "").split(","))[16 === s.length ? 12 : 4], y: s[16 === s.length ? 13 : 5] } : (s = this.$stage.position(), s = { x: this.settings.rtl ? s.left + this.$stage.width() - this.width() + this.settings.margin : s.left, y: s.top }), this.is("animating") && (t.support.transform ? this.animate(s.x) : this.$stage.stop(), this.invalidate("position")), this.$element.toggleClass(this.options.grabClass, "mousedown" === e.type), this.speed(0), this._drag.time = new Date().getTime(), this._drag.target = t(e.target), this._drag.stage.start = s, this._drag.stage.current = s, this._drag.pointer = this.pointer(e), t(i).on("mouseup.owl.core touchend.owl.core", t.proxy(this.onDragEnd, this)), t(i).one("mousemove.owl.core touchmove.owl.core", t.proxy(function (e) { var s = this.difference(this._drag.pointer, this.pointer(e)); t(i).on("mousemove.owl.core touchmove.owl.core", t.proxy(this.onDragMove, this)), !(Math.abs(s.x) < Math.abs(s.y) && this.is("valid")) && (e.preventDefault(), this.enter("dragging"), this.trigger("drag")) }, this))) }, n.prototype.onDragMove = function (t) { var e = null, i = null, s = null, n = this.difference(this._drag.pointer, this.pointer(t)), o = this.difference(this._drag.stage.start, n); this.is("dragging") && (t.preventDefault(), this.settings.loop ? (e = this.coordinates(this.minimum()), i = this.coordinates(this.maximum() + 1) - e, o.x = ((o.x - e) % i + i) % i + e) : (e = this.settings.rtl ? this.coordinates(this.maximum()) : this.coordinates(this.minimum()), i = this.settings.rtl ? this.coordinates(this.minimum()) : this.coordinates(this.maximum()), s = this.settings.pullDrag ? -1 * n.x / 5 : 0, o.x = Math.max(Math.min(o.x, e + s), i + s)), this._drag.stage.current = o, this.animate(o.x)) }, n.prototype.onDragEnd = function (e) { var s = this.difference(this._drag.pointer, this.pointer(e)), n = this._drag.stage.current, o = s.x > 0 ^ this.settings.rtl ? "left" : "right"; t(i).off(".owl.core"), this.$element.removeClass(this.options.grabClass), (0 !== s.x && this.is("dragging") || !this.is("valid")) && (this.speed(this.settings.dragEndSpeed || this.settings.smartSpeed), this.current(this.closest(n.x, 0 !== s.x ? o : this._drag.direction)), this.invalidate("position"), this.update(), this._drag.direction = o, (Math.abs(s.x) > 3 || new Date().getTime() - this._drag.time > 300) && this._drag.target.one("click.owl.core", function () { return !1 })), this.is("dragging") && (this.leave("dragging"), this.trigger("dragged")) }, n.prototype.closest = function (e, i) { var n = -1, o = this.width(), r = this.coordinates(); return this.settings.freeDrag || t.each(r, t.proxy(function (t, a) { return "left" === i && e > a - 30 && e < a + 30 ? n = t : "right" === i && e > a - o - 30 && e < a - o + 30 ? n = t + 1 : this.op(e, "<", a) && this.op(e, ">", s !== r[t + 1] ? r[t + 1] : a - o) && (n = "left" === i ? t + 1 : t), -1 === n }, this)), !this.settings.loop && (this.op(e, ">", r[this.minimum()]) ? n = e = this.minimum() : this.op(e, "<", r[this.maximum()]) && (n = e = this.maximum())), n }, n.prototype.animate = function (e) { var i = this.speed() > 0; this.is("animating") && this.onTransitionEnd(), i && (this.enter("animating"), this.trigger("translate")), t.support.transform3d && t.support.transition ? this.$stage.css({ transform: "translate3d(" + e + "px,0px,0px)", transition: this.speed() / 1e3 + "s" + (this.settings.slideTransition ? " " + this.settings.slideTransition : "") }) : i ? this.$stage.animate({ left: e + "px" }, this.speed(), this.settings.fallbackEasing, t.proxy(this.onTransitionEnd, this)) : this.$stage.css({ left: e + "px" }) }, n.prototype.is = function (t) { return this._states.current[t] && this._states.current[t] > 0 }, n.prototype.current = function (t) { if (t === s) return this._current; if (0 !== this._items.length) { if (t = this.normalize(t), this._current !== t) { var e = this.trigger("change", { property: { name: "position", value: t } }); s !== e.data && (t = this.normalize(e.data)), this._current = t, this.invalidate("position"), this.trigger("changed", { property: { name: "position", value: this._current } }) } return this._current } }, n.prototype.invalidate = function (e) { return "string" === t.type(e) && (this._invalidated[e] = !0, this.is("valid") && this.leave("valid")), t.map(this._invalidated, function (t, e) { return e }) }, n.prototype.reset = function (t) { s !== (t = this.normalize(t)) && (this._speed = 0, this._current = t, this.suppress(["translate", "translated"]), this.animate(this.coordinates(t)), this.release(["translate", "translated"])) }, n.prototype.normalize = function (t, e) { var i = this._items.length, n = e ? 0 : this._clones.length; return !this.isNumeric(t) || i < 1 ? t = s : (t < 0 || t >= i + n) && (t = ((t - n / 2) % i + i) % i + n / 2), t }, n.prototype.relative = function (t) { return t -= this._clones.length / 2, this.normalize(t, !0) }, n.prototype.maximum = function (t) { var e, i, s, n = this.settings, o = this._coordinates.length; if (n.loop) o = this._clones.length / 2 + this._items.length - 1; else if (n.autoWidth || n.merge) { if (e = this._items.length) for (i = this._items[--e].width(), s = this.$element.width(); e-- && !((i += this._items[e].width() + this.settings.margin) > s);); o = e + 1 } else o = n.center ? this._items.length - 1 : this._items.length - n.items; return t && (o -= this._clones.length / 2), Math.max(o, 0) }, n.prototype.minimum = function (t) { return t ? 0 : this._clones.length / 2 }, n.prototype.items = function (t) { return t === s ? this._items.slice() : (t = this.normalize(t, !0), this._items[t]) }, n.prototype.mergers = function (t) { return t === s ? this._mergers.slice() : (t = this.normalize(t, !0), this._mergers[t]) }, n.prototype.clones = function (e) { var i = this._clones.length / 2, n = i + this._items.length, o = function (t) { return t % 2 == 0 ? n + t / 2 : i - (t + 1) / 2 }; return e === s ? t.map(this._clones, function (t, e) { return o(e) }) : t.map(this._clones, function (t, i) { return t === e ? o(i) : null }) }, n.prototype.speed = function (t) { return t !== s && (this._speed = t), this._speed }, n.prototype.coordinates = function (e) { var i, n = 1, o = e - 1; return e === s ? t.map(this._coordinates, t.proxy(function (t, e) { return this.coordinates(e) }, this)) : (this.settings.center ? (this.settings.rtl && (n = -1, o = e + 1), i = this._coordinates[e], i += (this.width() - i + (this._coordinates[o] || 0)) / 2 * n) : i = this._coordinates[o] || 0, i = Math.ceil(i)) }, n.prototype.duration = function (t, e, i) { return 0 === i ? 0 : Math.min(Math.max(Math.abs(e - t), 1), 6) * Math.abs(i || this.settings.smartSpeed) }, n.prototype.to = function (t, e) { var i = this.current(), s = null, n = t - this.relative(i), o = (n > 0) - (n < 0), r = this._items.length, a = this.minimum(), h = this.maximum(); this.settings.loop ? (!this.settings.rewind && Math.abs(n) > r / 2 && (n += -1 * o * r), (s = (((t = i + n) - a) % r + r) % r + a) !== t && s - n <= h && s - n > 0 && (i = s - n, t = s, this.reset(i))) : this.settings.rewind ? (h += 1, t = (t % h + h) % h) : t = Math.max(a, Math.min(h, t)), this.speed(this.duration(i, t, e)), this.current(t), this.isVisible() && this.update() }, n.prototype.next = function (t) { t = t || !1, this.to(this.relative(this.current()) + 1, t) }, n.prototype.prev = function (t) { t = t || !1, this.to(this.relative(this.current()) - 1, t) }, n.prototype.onTransitionEnd = function (t) { if (t !== s && (t.stopPropagation(), (t.target || t.srcElement || t.originalTarget) !== this.$stage.get(0))) return !1; this.leave("animating"), this.trigger("translated") }, n.prototype.viewport = function () { var s; return this.options.responsiveBaseElement !== e ? s = t(this.options.responsiveBaseElement).width() : e.innerWidth ? s = e.innerWidth : i.documentElement && i.documentElement.clientWidth ? s = i.documentElement.clientWidth : console.warn("Can not detect viewport width."), s }, n.prototype.replace = function (e) { this.$stage.empty(), this._items = [], e && (e = e instanceof jQuery ? e : t(e)), this.settings.nestedItemSelector && (e = e.find("." + this.settings.nestedItemSelector)), e.filter(function () { return 1 === this.nodeType }).each(t.proxy(function (t, e) { e = this.prepare(e), this.$stage.append(e), this._items.push(e), this._mergers.push(1 * e.find("[data-merge]").addBack("[data-merge]").attr("data-merge") || 1) }, this)), this.reset(this.isNumeric(this.settings.startPosition) ? this.settings.startPosition : 0), this.invalidate("items") }, n.prototype.add = function (e, i) { var n = this.relative(this._current); i = i === s ? this._items.length : this.normalize(i, !0), e = e instanceof jQuery ? e : t(e), this.trigger("add", { content: e, position: i }), e = this.prepare(e), 0 === this._items.length || i === this._items.length ? (0 === this._items.length && this.$stage.append(e), 0 !== this._items.length && this._items[i - 1].after(e), this._items.push(e), this._mergers.push(1 * e.find("[data-merge]").addBack("[data-merge]").attr("data-merge") || 1)) : (this._items[i].before(e), this._items.splice(i, 0, e), this._mergers.splice(i, 0, 1 * e.find("[data-merge]").addBack("[data-merge]").attr("data-merge") || 1)), this._items[n] && this.reset(this._items[n].index()), this.invalidate("items"), this.trigger("added", { content: e, position: i }) }, n.prototype.remove = function (t) { s !== (t = this.normalize(t, !0)) && (this.trigger("remove", { content: this._items[t], position: t }), this._items[t].remove(), this._items.splice(t, 1), this._mergers.splice(t, 1), this.invalidate("items"), this.trigger("removed", { content: null, position: t })) }, n.prototype.preloadAutoWidthImages = function (e) { e.each(t.proxy(function (e, i) { this.enter("pre-loading"), i = t(i), t(new Image).one("load", t.proxy(function (t) { i.attr("src", t.target.src), i.css("opacity", 1), this.leave("pre-loading"), this.is("pre-loading") || this.is("initializing") || this.refresh() }, this)).attr("src", i.attr("src") || i.attr("data-src") || i.attr("data-src-retina")) }, this)) }, n.prototype.destroy = function () { for (var s in this.$element.off(".owl.core"), this.$stage.off(".owl.core"), t(i).off(".owl.core"), !1 !== this.settings.responsive && (e.clearTimeout(this.resizeTimer), this.off(e, "resize", this._handlers.onThrottledResize)), this._plugins) this._plugins[s].destroy(); this.$stage.children(".cloned").remove(), this.$stage.unwrap(), this.$stage.children().contents().unwrap(), this.$stage.children().unwrap(), this.$stage.remove(), this.$element.removeClass(this.options.refreshClass).removeClass(this.options.loadingClass).removeClass(this.options.loadedClass).removeClass(this.options.rtlClass).removeClass(this.options.dragClass).removeClass(this.options.grabClass).attr("class", this.$element.attr("class").replace(RegExp(this.options.responsiveClass + "-\\S+\\s", "g"), "")).removeData("owl.carousel") }, n.prototype.op = function (t, e, i) { var s = this.settings.rtl; switch (e) { case "<": return s ? t > i : t < i; case ">": return s ? t < i : t > i; case ">=": return s ? t <= i : t >= i; case "<=": return s ? t >= i : t <= i } }, n.prototype.on = function (t, e, i, s) { t.addEventListener ? t.addEventListener(e, i, s) : t.attachEvent && t.attachEvent("on" + e, i) }, n.prototype.off = function (t, e, i, s) { t.removeEventListener ? t.removeEventListener(e, i, s) : t.detachEvent && t.detachEvent("on" + e, i) }, n.prototype.trigger = function (e, i, s, o, r) { var a = { item: { count: this._items.length, index: this.current() } }, h = t.camelCase(t.grep(["on", e, s], function (t) { return t }).join("-").toLowerCase()), l = t.Event([e, "owl", s || "carousel"].join(".").toLowerCase(), t.extend({ relatedTarget: this }, a, i)); return !this._supress[e] && (t.each(this._plugins, function (t, e) { e.onTrigger && e.onTrigger(l) }), this.register({ type: n.Type.Event, name: e }), this.$element.trigger(l), this.settings && "function" == typeof this.settings[h] && this.settings[h].call(this, l)), l }, n.prototype.enter = function (e) { t.each([e].concat(this._states.tags[e] || []), t.proxy(function (t, e) { s === this._states.current[e] && (this._states.current[e] = 0), this._states.current[e]++ }, this)) }, n.prototype.leave = function (e) { t.each([e].concat(this._states.tags[e] || []), t.proxy(function (t, e) { this._states.current[e]-- }, this)) }, n.prototype.register = function (e) { if (e.type === n.Type.Event) { if (t.event.special[e.name] || (t.event.special[e.name] = {}), !t.event.special[e.name].owl) { var i = t.event.special[e.name]._default; t.event.special[e.name]._default = function (t) { return i && i.apply && (!t.namespace || -1 === t.namespace.indexOf("owl")) ? i.apply(this, arguments) : t.namespace && t.namespace.indexOf("owl") > -1 }, t.event.special[e.name].owl = !0 } } else e.type === n.Type.State && (this._states.tags[e.name] ? this._states.tags[e.name] = this._states.tags[e.name].concat(e.tags) : this._states.tags[e.name] = e.tags, this._states.tags[e.name] = t.grep(this._states.tags[e.name], t.proxy(function (i, s) { return t.inArray(i, this._states.tags[e.name]) === s }, this))) }, n.prototype.suppress = function (e) { t.each(e, t.proxy(function (t, e) { this._supress[e] = !0 }, this)) }, n.prototype.release = function (e) { t.each(e, t.proxy(function (t, e) { delete this._supress[e] }, this)) }, n.prototype.pointer = function (t) { var i = { x: null, y: null }; return (t = (t = t.originalEvent || t || e.event).touches && t.touches.length ? t.touches[0] : t.changedTouches && t.changedTouches.length ? t.changedTouches[0] : t).pageX ? (i.x = t.pageX, i.y = t.pageY) : (i.x = t.clientX, i.y = t.clientY), i }, n.prototype.isNumeric = function (t) { return !isNaN(parseFloat(t)) }, n.prototype.difference = function (t, e) { return { x: t.x - e.x, y: t.y - e.y } }, t.fn.owlCarousel = function (e) { var i = Array.prototype.slice.call(arguments, 1); return this.each(function () { var s = t(this), o = s.data("owl.carousel"); o || (o = new n(this, "object" == typeof e && e), s.data("owl.carousel", o), t.each(["next", "prev", "to", "destroy", "refresh", "replace", "add", "remove"], function (e, i) { o.register({ type: n.Type.Event, name: i }), o.$element.on(i + ".owl.carousel.core", t.proxy(function (t) { t.namespace && t.relatedTarget !== this && (this.suppress([i]), o[i].apply(this, [].slice.call(arguments, 1)), this.release([i])) }, o)) })), "string" == typeof e && "_" !== e.charAt(0) && o[e].apply(o, i) }) }, t.fn.owlCarousel.Constructor = n }(window.Zepto || window.jQuery, window, document), function (t, e, i, s) { var n = function (e) { this._core = e, this._interval = null, this._visible = null, this._handlers = { "initialized.owl.carousel": t.proxy(function (t) { t.namespace && this._core.settings.autoRefresh && this.watch() }, this) }, this._core.options = t.extend({}, n.Defaults, this._core.options), this._core.$element.on(this._handlers) }; n.Defaults = { autoRefresh: !0, autoRefreshInterval: 500 }, n.prototype.watch = function () { !this._interval && (this._visible = this._core.isVisible(), this._interval = e.setInterval(t.proxy(this.refresh, this), this._core.settings.autoRefreshInterval)) }, n.prototype.refresh = function () { this._core.isVisible() !== this._visible && (this._visible = !this._visible, this._core.$element.toggleClass("owl-hidden", !this._visible), this._visible && this._core.invalidate("width") && this._core.refresh()) }, n.prototype.destroy = function () { var t, i; for (t in e.clearInterval(this._interval), this._handlers) this._core.$element.off(t, this._handlers[t]); for (i in Object.getOwnPropertyNames(this)) "function" != typeof this[i] && (this[i] = null) }, t.fn.owlCarousel.Constructor.Plugins.AutoRefresh = n }(window.Zepto || window.jQuery, window, document), function (t, e, i, s) { var n = function (e) { this._core = e, this._loaded = [], this._handlers = { "initialized.owl.carousel change.owl.carousel resized.owl.carousel": t.proxy(function (e) { if (e.namespace && this._core.settings && this._core.settings.lazyLoad && (e.property && "position" == e.property.name || "initialized" == e.type)) { var i = this._core.settings, s = i.center && Math.ceil(i.items / 2) || i.items, n = i.center && -1 * s || 0, o = (e.property && void 0 !== e.property.value ? e.property.value : this._core.current()) + n, r = this._core.clones().length, a = t.proxy(function (t, e) { this.load(e) }, this); for (i.lazyLoadEager > 0 && (s += i.lazyLoadEager, i.loop && (o -= i.lazyLoadEager, s++)); n++ < s;)this.load(r / 2 + this._core.relative(o)), r && t.each(this._core.clones(this._core.relative(o)), a), o++ } }, this) }, this._core.options = t.extend({}, n.Defaults, this._core.options), this._core.$element.on(this._handlers) }; n.Defaults = { lazyLoad: !1, lazyLoadEager: 0 }, n.prototype.load = function (i) { var s = this._core.$stage.children().eq(i), n = s && s.find(".owl-lazy"); !(!n || t.inArray(s.get(0), this._loaded) > -1) && (n.each(t.proxy(function (i, s) { var n, o = t(s), r = e.devicePixelRatio > 1 && o.attr("data-src-retina") || o.attr("data-src") || o.attr("data-srcset"); this._core.trigger("load", { element: o, url: r }, "lazy"), o.is("img") ? o.one("load.owl.lazy", t.proxy(function () { o.css("opacity", 1), this._core.trigger("loaded", { element: o, url: r }, "lazy") }, this)).attr("src", r) : o.is("source") ? o.one("load.owl.lazy", t.proxy(function () { this._core.trigger("loaded", { element: o, url: r }, "lazy") }, this)).attr("srcset", r) : ((n = new Image).onload = t.proxy(function () { o.css({ "background-image": 'url("' + r + '")', opacity: "1" }), this._core.trigger("loaded", { element: o, url: r }, "lazy") }, this), n.src = r) }, this)), this._loaded.push(s.get(0))) }, n.prototype.destroy = function () { var t, e; for (t in this.handlers) this._core.$element.off(t, this.handlers[t]); for (e in Object.getOwnPropertyNames(this)) "function" != typeof this[e] && (this[e] = null) }, t.fn.owlCarousel.Constructor.Plugins.Lazy = n }(window.Zepto || window.jQuery, window, document), function (t, e, i, s) { var n = function (i) { this._core = i, this._previousHeight = null, this._handlers = { "initialized.owl.carousel refreshed.owl.carousel": t.proxy(function (t) { t.namespace && this._core.settings.autoHeight && this.update() }, this), "changed.owl.carousel": t.proxy(function (t) { t.namespace && this._core.settings.autoHeight && "position" === t.property.name && this.update() }, this), "loaded.owl.lazy": t.proxy(function (t) { t.namespace && this._core.settings.autoHeight && t.element.closest("." + this._core.settings.itemClass).index() === this._core.current() && this.update() }, this) }, this._core.options = t.extend({}, n.Defaults, this._core.options), this._core.$element.on(this._handlers), this._intervalId = null; var s = this; t(e).on("load", function () { s._core.settings.autoHeight && s.update() }), t(e).resize(function () { s._core.settings.autoHeight && (null != s._intervalId && clearTimeout(s._intervalId), s._intervalId = setTimeout(function () { s.update() }, 250)) }) }; n.Defaults = { autoHeight: !1, autoHeightClass: "owl-height" }, n.prototype.update = function () { var e = this._core._current, i = e + this._core.settings.items, s = this._core.settings.lazyLoad, n = this._core.$stage.children().toArray().slice(e, i), o = [], r = 0; t.each(n, function (e, i) { o.push(t(i).height()) }), (r = Math.max.apply(null, o)) <= 1 && s && this._previousHeight && (r = this._previousHeight), this._previousHeight = r, this._core.$stage.parent().height(r).addClass(this._core.settings.autoHeightClass) }, n.prototype.destroy = function () { var t, e; for (t in this._handlers) this._core.$element.off(t, this._handlers[t]); for (e in Object.getOwnPropertyNames(this)) "function" != typeof this[e] && (this[e] = null) }, t.fn.owlCarousel.Constructor.Plugins.AutoHeight = n }(window.Zepto || window.jQuery, window, document), function (t, e, i, s) { var n = function (e) { this._core = e, this._videos = {}, this._playing = null, this._handlers = { "initialized.owl.carousel": t.proxy(function (t) { t.namespace && this._core.register({ type: "state", name: "playing", tags: ["interacting"] }) }, this), "resize.owl.carousel": t.proxy(function (t) { t.namespace && this._core.settings.video && this.isInFullScreen() && t.preventDefault() }, this), "refreshed.owl.carousel": t.proxy(function (t) { t.namespace && this._core.is("resizing") && this._core.$stage.find(".cloned .owl-video-frame").remove() }, this), "changed.owl.carousel": t.proxy(function (t) { t.namespace && "position" === t.property.name && this._playing && this.stop() }, this), "prepared.owl.carousel": t.proxy(function (e) { if (e.namespace) { var i = t(e.content).find(".owl-video"); i.length && (i.css("display", "none"), this.fetch(i, t(e.content))) } }, this) }, this._core.options = t.extend({}, n.Defaults, this._core.options), this._core.$element.on(this._handlers), this._core.$element.on("click.owl.video", ".owl-video-play-icon", t.proxy(function (t) { this.play(t) }, this)) }; n.Defaults = { video: !1, videoHeight: !1, videoWidth: !1 }, n.prototype.fetch = function (t, e) { var i = t.attr("data-vimeo-id") ? "vimeo" : t.attr("data-vzaar-id") ? "vzaar" : "youtube", s = t.attr("data-vimeo-id") || t.attr("data-youtube-id") || t.attr("data-vzaar-id"), n = t.attr("data-width") || this._core.settings.videoWidth, o = t.attr("data-height") || this._core.settings.videoHeight, r = t.attr("href"); if (r) { if ((s = r.match(/(http:|https:|)\/\/(player.|www.|app.)?(vimeo\.com|youtu(be\.com|\.be|be\.googleapis\.com|be\-nocookie\.com)|vzaar\.com)\/(video\/|videos\/|embed\/|channels\/.+\/|groups\/.+\/|watch\?v=|v\/)?([A-Za-z0-9._%-]*)(\&\S+)?/))[3].indexOf("youtu") > -1) i = "youtube"; else if (s[3].indexOf("vimeo") > -1) i = "vimeo"; else if (s[3].indexOf("vzaar") > -1) i = "vzaar"; else throw Error("Video URL not supported."); s = s[6] } else throw Error("Missing video URL."); this._videos[r] = { type: i, id: s, width: n, height: o }, e.attr("data-video", r), this.thumbnail(t, this._videos[r]) }, n.prototype.thumbnail = function (e, i) { var s, n, o, r = i.width && i.height ? "width:" + i.width + "px;height:" + i.height + "px;" : "", a = e.find("img"), h = "src", l = "", c = this._core.settings, p = function (i) { n = '<div class="owl-video-play-icon"></div>', s = c.lazyLoad ? t("<div/>", { class: "owl-video-tn " + l, srcType: i }) : t("<div/>", { class: "owl-video-tn", style: "opacity:1;background-image:url(" + i + ")" }), e.after(s), e.after(n) }; if (e.wrap(t("<div/>", { class: "owl-video-wrapper", style: r })), this._core.settings.lazyLoad && (h = "data-src", l = "owl-lazy"), a.length) return p(a.attr(h)), a.remove(), !1; "youtube" === i.type ? p(o = "//img.youtube.com/vi/" + i.id + "/hqdefault.jpg") : "vimeo" === i.type ? t.ajax({ type: "GET", url: "//vimeo.com/api/v2/video/" + i.id + ".json", jsonp: "callback", dataType: "jsonp", success: function (t) { p(o = t[0].thumbnail_large) } }) : "vzaar" === i.type && t.ajax({ type: "GET", url: "//vzaar.com/api/videos/" + i.id + ".json", jsonp: "callback", dataType: "jsonp", success: function (t) { p(o = t.framegrab_url) } }) }, n.prototype.stop = function () { this._core.trigger("stop", null, "video"), this._playing.find(".owl-video-frame").remove(), this._playing.removeClass("owl-video-playing"), this._playing = null, this._core.leave("playing"), this._core.trigger("stopped", null, "video") }, n.prototype.play = function (e) { var i, s, n = t(e.target).closest("." + this._core.settings.itemClass), o = this._videos[n.attr("data-video")], r = o.width || "100%", a = o.height || this._core.$stage.height(); !this._playing && (this._core.enter("playing"), this._core.trigger("play", null, "video"), n = this._core.items(this._core.relative(n.index())), this._core.reset(n.index()), (i = t('<iframe frameborder="0" allowfullscreen mozallowfullscreen webkitAllowFullScreen ></iframe>')).attr("height", a), i.attr("width", r), "youtube" === o.type ? i.attr("src", "//www.youtube.com/embed/" + o.id + "?autoplay=1&rel=0&v=" + o.id) : "vimeo" === o.type ? i.attr("src", "//player.vimeo.com/video/" + o.id + "?autoplay=1") : "vzaar" === o.type && i.attr("src", "//view.vzaar.com/" + o.id + "/player?autoplay=true"), s = t(i).wrap('<div class="owl-video-frame" />').insertAfter(n.find(".owl-video")), this._playing = n.addClass("owl-video-playing")) }, n.prototype.isInFullScreen = function () { var e = i.fullscreenElement || i.mozFullScreenElement || i.webkitFullscreenElement; return e && t(e).parent().hasClass("owl-video-frame") }, n.prototype.destroy = function () { var t, e; for (t in this._core.$element.off("click.owl.video"), this._handlers) this._core.$element.off(t, this._handlers[t]); for (e in Object.getOwnPropertyNames(this)) "function" != typeof this[e] && (this[e] = null) }, t.fn.owlCarousel.Constructor.Plugins.Video = n }(window.Zepto || window.jQuery, window, document), function (t, e, i, s) { var n = function (e) { this.core = e, this.core.options = t.extend({}, n.Defaults, this.core.options), this.swapping = !0, this.previous = s, this.next = s, this.handlers = { "change.owl.carousel": t.proxy(function (t) { t.namespace && "position" == t.property.name && (this.previous = this.core.current(), this.next = t.property.value) }, this), "drag.owl.carousel dragged.owl.carousel translated.owl.carousel": t.proxy(function (t) { t.namespace && (this.swapping = "translated" == t.type) }, this), "translate.owl.carousel": t.proxy(function (t) { t.namespace && this.swapping && (this.core.options.animateOut || this.core.options.animateIn) && this.swap() }, this) }, this.core.$element.on(this.handlers) }; n.Defaults = { animateOut: !1, animateIn: !1 }, n.prototype.swap = function () { if (1 === this.core.settings.items && t.support.animation && t.support.transition) { this.core.speed(0); var e, i = t.proxy(this.clear, this), s = this.core.$stage.children().eq(this.previous), n = this.core.$stage.children().eq(this.next), o = this.core.settings.animateIn, r = this.core.settings.animateOut; this.core.current() !== this.previous && (r && (e = this.core.coordinates(this.previous) - this.core.coordinates(this.next), s.one(t.support.animation.end, i).css({ left: e + "px" }).addClass("animated owl-animated-out").addClass(r)), o && n.one(t.support.animation.end, i).addClass("animated owl-animated-in").addClass(o)) } }, n.prototype.clear = function (e) { t(e.target).css({ left: "" }).removeClass("animated owl-animated-out owl-animated-in").removeClass(this.core.settings.animateIn).removeClass(this.core.settings.animateOut), this.core.onTransitionEnd() }, n.prototype.destroy = function () { var t, e; for (t in this.handlers) this.core.$element.off(t, this.handlers[t]); for (e in Object.getOwnPropertyNames(this)) "function" != typeof this[e] && (this[e] = null) }, t.fn.owlCarousel.Constructor.Plugins.Animate = n }(window.Zepto || window.jQuery, window, document), function (t, e, i, s) { var n = function (e) { this._core = e, this._call = null, this._time = 0, this._timeout = 0, this._paused = !0, this._handlers = { "changed.owl.carousel": t.proxy(function (t) { t.namespace && "settings" === t.property.name ? this._core.settings.autoplay ? this.play() : this.stop() : t.namespace && "position" === t.property.name && this._paused && (this._time = 0) }, this), "initialized.owl.carousel": t.proxy(function (t) { t.namespace && this._core.settings.autoplay && this.play() }, this), "play.owl.autoplay": t.proxy(function (t, e, i) { t.namespace && this.play(e, i) }, this), "stop.owl.autoplay": t.proxy(function (t) { t.namespace && this.stop() }, this), "mouseover.owl.autoplay": t.proxy(function () { this._core.settings.autoplayHoverPause && this._core.is("rotating") && this.pause() }, this), "mouseleave.owl.autoplay": t.proxy(function () { this._core.settings.autoplayHoverPause && this._core.is("rotating") && this.play() }, this), "touchstart.owl.core": t.proxy(function () { this._core.settings.autoplayHoverPause && this._core.is("rotating") && this.pause() }, this), "touchend.owl.core": t.proxy(function () { this._core.settings.autoplayHoverPause && this.play() }, this) }, this._core.$element.on(this._handlers), this._core.options = t.extend({}, n.Defaults, this._core.options) }; n.Defaults = { autoplay: !1, autoplayTimeout: 5e3, autoplayHoverPause: !1, autoplaySpeed: !1 }, n.prototype._next = function (s) { this._call = e.setTimeout(t.proxy(this._next, this, s), this._timeout * (Math.round(this.read() / this._timeout) + 1) - this.read()), !this._core.is("interacting") && !i.hidden && this._core.next(s || this._core.settings.autoplaySpeed) }, n.prototype.read = function () { return new Date().getTime() - this._time }, n.prototype.play = function (i, s) { var n; this._core.is("rotating") || this._core.enter("rotating"), i = i || this._core.settings.autoplayTimeout, n = Math.min(this._time % (this._timeout || i), i), this._paused ? (this._time = this.read(), this._paused = !1) : e.clearTimeout(this._call), this._time += this.read() % i - n, this._timeout = i, this._call = e.setTimeout(t.proxy(this._next, this, s), i - n) }, n.prototype.stop = function () { this._core.is("rotating") && (this._time = 0, this._paused = !0, e.clearTimeout(this._call), this._core.leave("rotating")) }, n.prototype.pause = function () { this._core.is("rotating") && !this._paused && (this._time = this.read(), this._paused = !0, e.clearTimeout(this._call)) }, n.prototype.destroy = function () { var t, e; for (t in this.stop(), this._handlers) this._core.$element.off(t, this._handlers[t]); for (e in Object.getOwnPropertyNames(this)) "function" != typeof this[e] && (this[e] = null) }, t.fn.owlCarousel.Constructor.Plugins.autoplay = n }(window.Zepto || window.jQuery, window, document), function (t, e, i, s) { "use strict"; var n = function (e) { this._core = e, this._initialized = !1, this._pages = [], this._controls = {}, this._templates = [], this.$element = this._core.$element, this._overrides = { next: this._core.next, prev: this._core.prev, to: this._core.to }, this._handlers = { "prepared.owl.carousel": t.proxy(function (e) { e.namespace && this._core.settings.dotsData && this._templates.push('<div class="' + this._core.settings.dotClass + '">' + t(e.content).find("[data-dot]").addBack("[data-dot]").attr("data-dot") + "</div>") }, this), "added.owl.carousel": t.proxy(function (t) { t.namespace && this._core.settings.dotsData && this._templates.splice(t.position, 0, this._templates.pop()) }, this), "remove.owl.carousel": t.proxy(function (t) { t.namespace && this._core.settings.dotsData && this._templates.splice(t.position, 1) }, this), "changed.owl.carousel": t.proxy(function (t) { t.namespace && "position" == t.property.name && this.draw() }, this), "initialized.owl.carousel": t.proxy(function (t) { t.namespace && !this._initialized && (this._core.trigger("initialize", null, "navigation"), this.initialize(), this.update(), this.draw(), this._initialized = !0, this._core.trigger("initialized", null, "navigation")) }, this), "refreshed.owl.carousel": t.proxy(function (t) { t.namespace && this._initialized && (this._core.trigger("refresh", null, "navigation"), this.update(), this.draw(), this._core.trigger("refreshed", null, "navigation")) }, this) }, this._core.options = t.extend({}, n.Defaults, this._core.options), this.$element.on(this._handlers) }; n.Defaults = { nav: !1, navText: ['<span aria-label="Previous"><img width=8 height=14 src="https://static.fibre2fashion.com/staticresources/images/arrow-left.png"/></span>', '<span aria-label="Next"><img width=8 height=14 src="https://static.fibre2fashion.com/staticresources/images/arrow-right.png"/></span>'], navSpeed: !1, navElement: 'button type="button" role="presentation"', navContainer: !1, navContainerClass: "owl-nav", navClass: ["owl-prev", "owl-next"], slideBy: 1, dotClass: "owl-dot", dotsClass: "owl-dots", dots: !0, dotsEach: !1, dotsData: !1, dotsSpeed: !1, dotsContainer: !1 }, n.prototype.initialize = function () { var e, i = this._core.settings; for (e in this._controls.$relative = (i.navContainer ? t(i.navContainer) : t("<div>").addClass(i.navContainerClass).appendTo(this.$element)).addClass("disabled"), this._controls.$previous = t("<" + i.navElement + ">").addClass(i.navClass[0]).html(i.navText[0]).prependTo(this._controls.$relative).on("click", t.proxy(function (t) { this.prev(i.navSpeed) }, this)), this._controls.$next = t("<" + i.navElement + ">").addClass(i.navClass[1]).html(i.navText[1]).appendTo(this._controls.$relative).on("click", t.proxy(function (t) { this.next(i.navSpeed) }, this)), i.dotsData || (this._templates = [t('<button role="button">').addClass(i.dotClass).append(t("<span>")).prop("outerHTML")]), this._controls.$absolute = (i.dotsContainer ? t(i.dotsContainer) : t("<div>").addClass(i.dotsClass).appendTo(this.$element)).addClass("disabled"), this._controls.$absolute.on("click", "button", t.proxy(function (e) { var s = t(e.target).parent().is(this._controls.$absolute) ? t(e.target).index() : t(e.target).parent().index(); e.preventDefault(), this.to(s, i.dotsSpeed) }, this)), this._overrides) this._core[e] = t.proxy(this[e], this) }, n.prototype.destroy = function () { var t, e, i, s, n; for (t in n = this._core.settings, this._handlers) this.$element.off(t, this._handlers[t]); for (e in this._controls) "$relative" === e && n.navContainer ? this._controls[e].html("") : this._controls[e].remove(); for (s in this.overides) this._core[s] = this._overrides[s]; for (i in Object.getOwnPropertyNames(this)) "function" != typeof this[i] && (this[i] = null) }, n.prototype.update = function () { var t, e, i, s = this._core.clones().length / 2, n = s + this._core.items().length, o = this._core.maximum(!0), r = this._core.settings, a = r.center || r.autoWidth || r.dotsData ? 1 : r.dotsEach || r.items; if ("page" !== r.slideBy && (r.slideBy = Math.min(r.slideBy, r.items)), r.dots || "page" == r.slideBy) for (this._pages = [], t = s, e = 0, i = 0; t < n; t++) { if (e >= a || 0 === e) { if (this._pages.push({ start: Math.min(o, t - s), end: t - s + a - 1 }), Math.min(o, t - s) === o) break; e = 0, ++i } e += this._core.mergers(this._core.relative(t)) } }, n.prototype.draw = function () { var e, i = this._core.settings, s = this._core.items().length <= i.items, n = this._core.relative(this._core.current()), o = i.loop || i.rewind; this._controls.$relative.toggleClass("disabled", !i.nav || s), i.nav && (this._controls.$previous.toggleClass("disabled", !o && n <= this._core.minimum(!0)), this._controls.$next.toggleClass("disabled", !o && n >= this._core.maximum(!0))), this._controls.$absolute.toggleClass("disabled", !i.dots || s), i.dots && (e = this._pages.length - this._controls.$absolute.children().length, i.dotsData && 0 !== e ? this._controls.$absolute.html(this._templates.join("")) : e > 0 ? this._controls.$absolute.append(Array(e + 1).join(this._templates[0])) : e < 0 && this._controls.$absolute.children().slice(e).remove(), this._controls.$absolute.find(".active").removeClass("active"), this._controls.$absolute.children().eq(t.inArray(this.current(), this._pages)).addClass("active")) }, n.prototype.onTrigger = function (e) { var i = this._core.settings; e.page = { index: t.inArray(this.current(), this._pages), count: this._pages.length, size: i && (i.center || i.autoWidth || i.dotsData ? 1 : i.dotsEach || i.items) } }, n.prototype.current = function () { var e = this._core.relative(this._core.current()); return t.grep(this._pages, t.proxy(function (t, i) { return t.start <= e && t.end >= e }, this)).pop() }, n.prototype.getPosition = function (e) { var i, s, n = this._core.settings; return "page" == n.slideBy ? (i = t.inArray(this.current(), this._pages), s = this._pages.length, e ? ++i : --i, i = this._pages[(i % s + s) % s].start) : (i = this._core.relative(this._core.current()), s = this._core.items().length, e ? i += n.slideBy : i -= n.slideBy), i }, n.prototype.next = function (e) { t.proxy(this._overrides.to, this._core)(this.getPosition(!0), e) }, n.prototype.prev = function (e) { t.proxy(this._overrides.to, this._core)(this.getPosition(!1), e) }, n.prototype.to = function (e, i, s) { var n; !s && this._pages.length ? (n = this._pages.length, t.proxy(this._overrides.to, this._core)(this._pages[(e % n + n) % n].start, i)) : t.proxy(this._overrides.to, this._core)(e, i) }, t.fn.owlCarousel.Constructor.Plugins.Navigation = n }(window.Zepto || window.jQuery, window, document), function (t, e, i, s) { "use strict"; var n = function (i) { this._core = i, this._hashes = {}, this.$element = this._core.$element, this._handlers = { "initialized.owl.carousel": t.proxy(function (i) { i.namespace && "URLHash" === this._core.settings.startPosition && t(e).trigger("hashchange.owl.navigation") }, this), "prepared.owl.carousel": t.proxy(function (e) { if (e.namespace) { var i = t(e.content).find("[data-hash]").addBack("[data-hash]").attr("data-hash"); i && (this._hashes[i] = e.content) } }, this), "changed.owl.carousel": t.proxy(function (i) { if (i.namespace && "position" === i.property.name) { var s = this._core.items(this._core.relative(this._core.current())), n = t.map(this._hashes, function (t, e) { return t === s ? e : null }).join(); n && e.location.hash.slice(1) !== n && (e.location.hash = n) } }, this) }, this._core.options = t.extend({}, n.Defaults, this._core.options), this.$element.on(this._handlers), t(e).on("hashchange.owl.navigation", t.proxy(function (t) { var i = e.location.hash.substring(1), s = this._core.$stage.children(), n = this._hashes[i] && s.index(this._hashes[i]); void 0 !== n && n !== this._core.current() && this._core.to(this._core.relative(n), !1, !0) }, this)) }; n.Defaults = { URLhashListener: !1 }, n.prototype.destroy = function () { var i, s; for (i in t(e).off("hashchange.owl.navigation"), this._handlers) this._core.$element.off(i, this._handlers[i]); for (s in Object.getOwnPropertyNames(this)) "function" != typeof this[s] && (this[s] = null) }, t.fn.owlCarousel.Constructor.Plugins.Hash = n }(window.Zepto || window.jQuery, window, document), function (t, e, i, s) { var n = t("<support>").get(0).style, o = "Webkit Moz O ms".split(" "), r = { transition: { end: { WebkitTransition: "webkitTransitionEnd", MozTransition: "transitionend", OTransition: "oTransitionEnd", transition: "transitionend" } }, animation: { end: { WebkitAnimation: "webkitAnimationEnd", MozAnimation: "animationend", OAnimation: "oAnimationEnd", animation: "animationend" } } }, a = { csstransforms: function () { return !!h("transform") }, csstransforms3d: function () { return !!h("perspective") }, csstransitions: function () { return !!h("transition") }, cssanimations: function () { return !!h("animation") } }; function h(e, i) { var s = !1, r = e.charAt(0).toUpperCase() + e.slice(1); return t.each((e + " " + o.join(r + " ") + r).split(" "), function (t, e) { if (void 0 !== n[e]) return s = !i || e, !1 }), s } function l(t) { return h(t, !0) } a.csstransitions() && (t.support.transition = new String(l("transition")), t.support.transition.end = r.transition.end[t.support.transition]), a.cssanimations() && (t.support.animation = new String(l("animation")), t.support.animation.end = r.animation.end[t.support.animation]), a.csstransforms() && (t.support.transform = new String(l("transform")), t.support.transform3d = a.csstransforms3d()) }(window.Zepto || window.jQuery, window, document); </script> <script src="https://static.fibre2fashion.com/staticresources/js/f2f/plugins/B2BCommon.min.js?v=1.8"></script> <script defer> !function (t, e, o, n) { "use strict"; var r = t.fn.popover, i = function (e, o) { return this.$el = t(e), this.options = this.getOptions(o), this.$wrapper = this.$el.parents(".popover-wrapper").eq(0), this.$body = this.$wrapper.find(".popover-body"), this.listenEvents(), this }; i.DEFAULTS = { trigger: "click" }, i.prototype.getDefaults = function () { return i.DEFAULTS }, i.prototype.getOptions = function (e) { return e = t.extend({}, this.getDefaults(), this.$el.data(), e) }, i.prototype.listenEvents = function (e) { var n = this, r = this.$el; t(o).click(function (e) { if (this.$wrapper.hasClass("open")) { var o = !t.contains(this.$wrapper[0], e.target) && this.$wrapper[0] !== e.target; o && this.close() } }.bind(this)); var i = this.options.trigger; return "click" === i ? r.on("click", function (t) { t.preventDefault(), n.toggle() }) : "hover" === i && (r.on("mouseenter", function (t) { t.preventDefault(), n.open() }), r.on("mouseleave", function (t) { t.preventDefault(), n.close() }), r.on("click", function (t) { t.preventDefault(), n.toggle() })), this.$wrapper.find('[data-toggle-role="close"]').on("click", function (t) { t.preventDefault(), n.close() }), this }, i.prototype.open = function () { return this.$wrapper && this.$wrapper.addClass("open"), this }, i.prototype.close = function () { return this.$wrapper && this.$wrapper.removeClass("open"), this }, i.prototype.toggle = function () { return this.$wrapper && this.$wrapper.toggleClass("open"), this }; var p = function (e) { return this.each(function () { var o = t(this), n = o.data("gb.popover"); n || (n = new i(this, e), o.data("gb.popover", n)) }) }; t.fn.popover = p, t.fn.popover.Constructor = i, t.fn.popover.noConflict = function () { return t.fn.popover = r, this } }(jQuery, window, document); </script> <script defer> function StickyChat() { isElementLocatedInVisibleArea() ? ($("#susinquirysticker").removeClass("sticky-nVis"), $("#susinquirysticker").addClass("sticky")) : ($("#susinquirysticker").addClass("sticky-nVis"), $("#susinquirysticker").removeClass("sticky")) } function PopUpLeadProduct(e) { var t = $(e).attr("id"), a = $(e).attr("parentid"), r = $("#" + t + "-display"), o = $(r).attr("parentId"); $("#" + o + " .menu").hide(), $(r).show(), $("#" + a + " ul li.b2bproducts").removeClass("active"), $(e).addClass("active") } function NoImage(e, t) { e.onerror = "", e.src = t + "Content/css/Images/no-image.jpg" } function CompanyLogoNoImage(e, t) { e.onerror = "", e.src = t + "Content/css/Images/Companynologo.jpg" } function GetCertificateDetailsProcess(e) { $.colorbox({ href: "#f2fcertificatedetails", scrolling: !1, inline: !0, width: "60%", height: "auto", onClosed: function () { $.colorbox.remove(), $("#f2fcertificatedetails").html("") } }), GetCertificateDetails(e) } function GetCertificateDetails(e) { AjaxCall(BASEPATHURL + "Lead/GetCertificateDetailUrl", { CertUrl: e }, "POST", "HTML", "GetCertificateDetailsSuccess") } function GetCertificateDetailsSuccess(e) { $("#f2fcertificatedetails").html(e) } function SetListRecordMessage() { $("#HideListRecordMessage").text().includes("Search Criteria :") ? ($("#ListRecordSearchMessage").html($("#HideListRecordMessage").html()), $("#ListRecordMessage").html("Search Result")) : $("#ListRecordMessage").html($("#HideListRecordMessage").html()) } function RegisterProductCompareSlider() { $(".b2b-compare-new").length || ($(".b2b-compare").prepend('<div class="b2b-compare-new"></div>'), $("#compareproducts").appendTo(".b2b-compare-new"), $(".b2b-compare > .nbs-flexisel-container").remove(), $("#compareproducts").appendTo(".b2b-compare"), $(".b2b-compare-new").remove()), $("#compareproducts").flexisel({ clone: !1, visibleItems: 3, animationSpeed: 1300, autoPlay: !1, autoPlaySpeed: 3600, pauseOnHover: !0, enableResponsiveBreakpoints: !0, responsiveBreakpoints: { portrait: { changePoint: 481, visibleItems: 1 }, landscape: { changePoint: 680, visibleItems: 2 }, tablet: { changePoint: 768, visibleItems: 3 }, desktop: { changePoint: 900, visibleItems: 3 }, laptop: { changePoint: 1e3, visibleItems: 3 } } }) } function AddToCompareBasket(e, t, a, r) { if ($("#CompareLeadBasket ul#compareproducts li").length < r) { var o = { enqIdRefno: $(e).attr("compareid"), leadType: a }; AjaxCall(t, o, "POST", "HTML", "AddToCompareBasketSuccess", null, !1), $(e).siblings('span[data-productcompare="compareproduct"]').html("<strong>Remove Compare</strong>") } else $(e).removeAttr("checked"), alert("Maximum " + r + " products are allow to compare.") } function AddToCompareBasketSuccess(e) { $("#compareproducts").append(e), $(e).attr("data-productleadvalue"), CheckCompareBasketLead(), RegisterProductCompareSlider() } function DeleteCompareBasket(e, t, a) { AjaxCall(t, { enqIdRefno: e, leadType: a }, "POST", "JSON", "DeleteCompareBasketSuccess", null, !1) } function DeleteCompareBasketSuccess(e) { if ("" != e.enqIdRefno && e.enqIdRefno > 0) { $("#CompareLeadBasket ul#compareproducts li[data-productleadvalue='" + e.enqIdRefno + "']").remove(); var t = $("#tab1default input[type='checkbox'][compareid='" + e.enqIdRefno + "']"); t.siblings('span[data-productcompare="compareproduct"]').html("<strong>Add to Compare</strong>"), t.removeAttr("checked") } CheckCompareBasketLead() } function CheckCompareBasketLead() { var e = $("#CompareLeadBasket ul#compareproducts li").length; e > 0 ? $("#CompareLeadBasket").show() : $("#CompareLeadBasket").hide(), $("#productcomparecount").text(e) } function ClearAllCompareProduct(e, t) { AjaxCall(e, { leadType: t }, "POST", "HTML", "ClearAllCompareProductSuccess") } function ClearAllCompareProductSuccess(e) { $("#CompareLeadBasket ul#compareproducts li").remove(), $("#CompareLeadBasket").hide(), $("#tab1default input[type='checkbox'][addToCompare='AddToCompare']").removeAttr("checked"), $('#tab1default span[data-productcompare="compareproduct"]').html("<strong>Add to Compare</strong>") } function DeleteCompareProductList(e, t, a) { AjaxCall(t, { enqIdRefno: e, leadType: a }, "POST", "JSON", "DeleteCompareProductListSuccess") } function DeleteCompareProductListSuccess(e) { "" != e.enqIdRefno && e.enqIdRefno > 0 && $("#ProductCompareList td[data-productleadvalue='" + e.enqIdRefno + "']").remove() } function AddToInquiryBasket(e, t, a, r) { if ($("#InquiryLeadBasket div.inquiry-basket").length < r) { var o = $(e).attr("InquiryId"); AjaxCall(t, { enqIdRefno: o, leadType: a }, "POST", "HTML", "AddToInquiryBasketSuccess", null, !1); var n = $("#InquiryIcon_" + o); n.removeClass(), n.addClass("fa-li fa fa-check"), $(e).attr("InInquiryBasket", "True"), $(e).text("Remove Inquiry Basket") } else alert("Up to " + r + " products can be added to the Inquiry basket") } function AddToInquiryBasketSuccess(e) { $("#InquiryLeadBasket").append(e), $(e).attr("data-inquiryBasketleadvalue"), CheckInquiryBasketLead() } function DeleteInquiryBasket(e, t, a) { AjaxCall(t, { enqIdRefno: e, leadType: a }, "POST", "JSON", "DeleteInquiryBasketSuccess", null, !1) } function DeleteInquiryBasketSuccess(e) { if ("" != e.enqIdRefno && e.enqIdRefno > 0) { $("#InquiryLeadBasket #Inquiryleadvalue_" + e.enqIdRefno).remove(); var t = $("#InquiryIcon_" + e.enqIdRefno); t.removeClass(), t.addClass("fa-li fa fa-plus"), $("#tab1default a[InquiryId='" + e.enqIdRefno + "']").attr("InInquiryBasket", "False"), $("#tab1default a[InquiryId='" + e.enqIdRefno + "']").text("Add to Inquiry Basket") } CheckInquiryBasketLead() } function ClearAllInquiryBasket(e, t) { var a = []; if ($("#InquiryLeadBasket input:checkbox[name='chkInquiry']").each(function () { $(this).is(":checked") && a.push($(this).attr("EnqIdrefNo")) }), !(a.length > 0)) return alert("Please select atleast one lead to remove inquiry."), $.colorbox.remove(), !1; AjaxCall(e, { enqIdRefno: a, leadType: t }, "POST", "JSON", "ClearAllInquiryBasketSuccess", null, !1) } function ClearAllInquiryBasketSuccess(e) { if ("" != e.enqIdRefno) for (var t = e.enqIdRefno.toString().split(","), a = 0; a < t.length; a++) { var r = t[a]; $("#InquiryLeadBasket #Inquiryleadvalue_" + r).remove(); var o = $("#InquiryIcon_" + r); o.removeClass(), o.addClass("fa-li fa fa-plus"), $("#tab1default a[InquiryId='" + r + "']").attr("InInquiryBasket", "False"), $("#tab1default a[InquiryId='" + r + "']").text("Add to Inquiry Basket") } CheckInquiryBasketLead() } function CheckInquiryBasketLead() { var e = $("#InquiryLeadBasket div.inquiry-basket").length; e > 0 ? ($("#hlSendInquiry").show(), $("#hlcompareProduct").show(), $("#hlRemoveSendInquiry").show()) : ($("#hlSendInquiry").hide(), $("#hlcompareProduct").hide(), $("#hlRemoveSendInquiry").hide()), $("#InquiryListcount").text(e), $("#InquiryListNumbers").text(e) } function SmartSearchValidate() { var e, t, a, r = $("#ddlSearchCategory").val(), o = $("#ddlSearchLeadType").val(), n = $("#ddlSearchSubCategory").val(), i = $("#ddlSearchProduct").val(), c = $("#ddlSearchCountry").val(), s = $("#txtSearchCity").val(), u = $("#txtSearchEnqIdRefNo").val(), e = $("#ddlcertificate").val(), e = $("#tag-sel-ctn-0 .tag-sel-item").map(function () { return $(this).text() }).get().join(","); if ("" != e && (document.getElementById("hdncertificate").value = e), $("#RdoCountry").is(":checked") && (t = $("#RdoCountry").val()), void 0 === t & "" == c && (c = "NON", a = "NON"), ("India" == t || "nonindia" == t) && "" == c ? (c = t, a = t) : a = $("#ddlSearchCountry option:selected").text(), ("" == o || "" == r) && "" == u) return alert("Please select lead type and category."), !1; if ("" != n || "" != i || "" != c && "NON" != c || "" != s || "" != u || "" != e) { var d = MixpanelF2FSearchEventAttributes; return d.F2FSearchCategory = $("#ddlSearchCategory option:selected").text(), d.F2FSearchSubcategory = $("#ddlSearchSubCategory option:selected").text(), d.F2FSearchIsAdvanced = !0, d.F2FSearchLeadType = $("#ddlSearchLeadType option:selected").text(), d.F2FSearchCertificates = e, d.F2FSearchCountry = a, d.F2FSearchCity = s, d.F2FSearchRefrenceNo = u, d.F2FSearchProduct = $("#ddlSearchProduct option:selected").text(), MixpanelWrapper.track(JSConstants.SearchStarted, d), !0 } return alert("Please select atleast one Subcategory, Product, Country, City, Certificate or RefNo."), !1 } function GetSearchProduct(e, t) { var a = $(t).val(), r = $("#hdnSearchCategoryName").val(); "" != a ? $("#hdnSearchSubCategoryName").val($("#" + $(t).attr("id") + " option:selected").text()) : $("#hdnSearchSubCategoryName").val(""), AjaxCall(e, { categoryName: r, subCategoryId: a }, "POST", "JSON", "GetSearchProductSuccess") } function GetSearchProductSuccess(e) { var t = "", a = e; t += "<option value=''>Select Products</option>"; for (var r = 0; r < a.length; r++)t += "<option value='" + a[r].ProductId + "'>" + a[r].ProductName + "</option>"; $("#ddlSearchProduct").html(t), $("#hdnSearchProductName").val("") } function GetSearchSubCategoryProduct(e, t) { var a = "", r = $(t).val(); "" != r ? (a = $("#" + $(t).attr("id") + " option:selected").text(), $("#hdnSearchCategoryName").val(a), $("#hdnSearchCategoryId").val(r)) : ($("#hdnSearchCategoryName").val(""), $("#hdnSearchCategoryId").val("")); var o = { categoryName: a, categoryId: r }; AjaxCall(e, o, "POST", "JSON", "GetSearchSubCategoryProductSuccess") } function GetSearchSubCategoryProductSuccess(e) { var t = "", a = e.SubCategories; t += "<option value=''>Select Sub Category</option>"; for (var r = 0; r < a.length; r++)t += "<option value='" + a[r].SubCategoryId + "'>" + a[r].SubCategoryName + "</option>"; $("#ddlSearchSubCategory").html(t), $("#hdnSearchSubCategoryName").val(""); var o = "", n = e.Products; o += "<option value=''>Select Products</option>"; for (var r = 0; r < n.length; r++)o += "<option value='" + n[r].ProductId + "'>" + n[r].ProductName + "</option>"; $("#ddlSearchProduct").html(o), $("#hdnSearchProductName").val("") } function SetSearchProductName(e) { "" != $(e).val() ? $("#hdnSearchProductName").val($("#" + $(e).attr("id") + " option:selected").text()) : $("#hdnSearchProductName").val("") } function SetSearchCountryName(e) { "" != $(e).val() ? $("#hdnSearchCountryName").val($("#" + $(e).attr("id") + " option:selected").text()) : $("#hdnSearchCountryName").val("") } function AddFavorite(e, t, a, r, o, n) { AjaxCall(a, { EnqidRefno: t, LeadType: r, LeadDetailsUrl: o, ProductDisplyName: n }, "POST", "JSON", "AddFavoriteSuccess") } function AddFavoriteSuccess(e) { null != e && "OK" == e.Status ? ($("#favourite-" + e.Data).attr("IsFavoriteLead", "True"), $("#favouritediv-" + e.Data).removeClass(), $("#favouritediv-" + e.Data).addClass("hot-star-smallSelected cursor")) : null != e && "Error" == e.Status && alert(e.Message) } function DeleteFavorite(e, t, a, r) { AjaxCall(a, { EnqidRefno: t, LeadType: r }, "POST", "JSON", "DeleteFavoriteSuccess") } function DeleteFavoriteSuccess(e) { null != e && "OK" == e.Status ? ($("#favourite-" + e.Data).attr("IsFavoriteLead", "False"), $("#favouritediv-" + e.Data).removeClass(), $("#favouritediv-" + e.Data).addClass("hot-star-small cursor")) : null != e && "Error" == e.Status && alert(e.Message) } function RegisterSendInquiryPopUp(e) { "buyers" == e.toLowerCase() ? $("#hlSendInquiry").colorbox({ href: "#sendInquiryPopup", scrolling: !0, inline: !0, width: "550px", height: "550px", onClosed: function () { $("#sendInquiryPopup").html("") } }) : $("#hlSendInquiry").colorbox({ href: "#sendInquiryPopup", scrolling: !0, inline: !0, width: "550px", height: "650px", fixed: !0, onClosed: function () { $("#sendInquiryPopup").html("") } }) } function SendInquiryProcess(e, t, a) { var r = []; if ($("#InquiryLeadBasket input:checkbox[name='chkInquiry']").each(function () { $(this).is(":checked") && r.push($(this).attr("EnqIdrefNo")) }), !(r.length > 0)) return alert("Please select atleast one lead to send inquiry."), $.colorbox.remove(), !1; SendInquiryAjaxCall(e, t, r, a), RegisterSendInquiryPopUp(t) } function SendInquiryForContact(e, t, a, r) { "" != a && "#sendinquiry" == r && (SendInquiryAjaxCall(e, t, a, ""), "buyers" == t.toLowerCase() ? $.colorbox({ href: "#sendInquiryPopup", scrolling: !0, inline: !0, width: "550px", height: "550px", fixed: !0, onClosed: function () { $("#sendInquiryPopup").html(""), $.colorbox.remove() } }) : "suppliers" == t.toLowerCase() ? $.colorbox({ href: "#sendInquiryPopup", scrolling: !0, inline: !0, width: "550px", height: "550px", fixed: !0, onClosed: function () { $("#sendInquiryPopup").html(""), $.colorbox.remove() } }) : "wholesalebuyers" == t.toLowerCase() ? $.colorbox({ href: "#sendInquiryPopup", scrolling: !0, inline: !0, width: "550px", height: "550px", fixed: !0, onClosed: function () { $("#sendInquiryPopup").html(""), $.colorbox.remove() } }) : "wholesalesuppliers" == t.toLowerCase() && $.colorbox({ href: "#sendInquiryPopup", scrolling: !0, inline: !0, width: "550px", height: "550px", fixed: !0, onClosed: function () { $("#sendInquiryPopup").html(""), $.colorbox.remove() } })) } function SendInquiryAjaxCall(e, t, a, r) { AjaxCall(e, { EnqIdRefnos: a, leadType: t, callFrom: r }, "POST", "HTML", "SendInquiryProcessSuccess") } function SendInquiryProcessSuccess(e) { "Redirect" == e ? (alert("You are not logged in."), $.colorbox.close()) : $("#sendInquiryPopup").html(e) } function SelectAllInquiry(e) { var t = $(e).is(":checked"); $("#SendInquiryWrapper input:checkbox[name='chkSelectInquiryLead']").each(function () { t ? $(this).prop("checked", !0) : $(this).prop("checked", !1) }) } function SaveInquiry() { if (ValidateSaveInquiry()) { $("#btnSendInquiry").prop("disabled", !0); var e = GetSerializeModel(); AjaxCall(BASEPATHURL + "Lead/SaveInquiry", e, "POST", "JSON", "SaveInquirySuccess") } } function SaveInquirySuccess(e) { if ($("#btnSendInquiry").prop("disabled", !1), "OK" == e.Status) { $("#SendInquirySuccess").html(e.Message), $("#SendInquiryWrapper").html(""); var t = ""; null != e.Data && (t = e.Data.toLowerCase()), "inquirybasket" == t && ResetInquiryBasket(), CreateLocalSrorage(e.LocalStorageData, e.Email, e.F2FLeadFormUserEventData, e.F2FLeadFormEventData) } } function ResetInquiryBasket() { $("#InquiryLeadBasket").html(""), CheckInquiryBasketLead() } function ValidateSaveInquiry() { return $("#frmSendInquiry").valid() } function GetSerializeModel() { TrimInputs("#frmSendInquiry"); var e = []; $("#SendInquiryWrapper input:checkbox[name='chkSelectInquiryLead']:checked").each(function () { e.push($(this).attr("EnqIdrefNo")) }); var t = e.join("~"), a = $("#ddlInquiryQuantityUnitId option:selected").text(); $("#hdnInquiryQuantityUnit").val(a); var r = $("#frmSendInquiry").serialize(); return r + ("&EnqIdRefNo=" + t + "&CurrentUrl=" + encodeURIComponent(window.location.href) + "&ReferralUrl=" + encodeURIComponent(document.referrer)) } function UploadInquiryFile() { var e = new FormData; if ("undefined" == $("#flusendinquiry")[0].files) return !1; var t = $("#flusendinquiry")[0].files[0]; e.append("file1", t), jQuery.ajax({ type: "POST", url: BASEPATHURL + "Lead/UploadInquiryFile", data: e, contentType: !1, processData: !1, cache: !1, success: function (e) { UploadInquiryFileSuccess(e) }, error: function (e, t, a) { alert("some error occure during upload") } }) } function UploadInquiryFileSuccess(e) { "OK" == e.Status ? $("#UploadedFileName").val(e.Data) : alert(e.Message) } function FreeTrialReloadCaptcha() { AjaxCall(BASEPATHURL + "Lead/Captcha", "", "POST", "HTML", "FreeTrialReloadCaptchaSuccess") } function FreeTrialReloadCaptchaSuccess(e) { e = AttachCaptchaClickEventOnReloadSuccess(e, "captchadivFT", "FreeTrialReloadCaptcha"), jQuery("#captchadivFT").html(e) } function SendInquiryProcessForCompare(e, t) { var a = []; if ($("#ProductCompareWrapper input:checkbox[name='chkSelectInquiryLead']:checked").each(function () { a.push($(this).attr("EnqIdrefNo")) }), !(a.length > 0)) return alert("Please select atleast one lead to send inquiry."), $.colorbox.remove(), !1; SendInquiryAjaxCall(e, t, a, ""), RegisterSendInquiryPopUp(t) } function SelectAllInquiryForCompare(e) { var t = $(e).is(":checked"); $("#ProductCompareWrapper input:checkbox[name='chkSelectInquiryLead']").each(function () { t ? $(this).prop("checked", !0) : $(this).prop("checked", !1) }) } function ValidateCompareProduct(e) { return $("#CompareLeadBasket ul#compareproducts li").length > 1 ? (window.location.href = e, !0) : (alert("Minimum 2 products are require to compare!"), !1) } function PopUpAdvanceSearch() { $("#hlB2BAdvanceSearch").click(function () { $.colorbox({ href: "#divAdvanceSearch", scrolling: !1, speed: 600, inline: !0, width: "auto", height: "auto", onClosed: function () { $.colorbox.remove() } }) }) } function stickyexpposting(e) { "0px" == $("#" + e).css("right") ? $("#" + e).animate({ right: "400" }, 400) : $("#" + e).animate({ right: "0" }, 500) } function ProductInfoscrolltop() { $("html, body").animate({ scrollTop: $("#Productinfo").offset().top - 40 }, 1e3) } function test() { alert() } function StickyChat() { isElementLocatedInVisibleArea() ? ($("#susinquirysticker").removeClass("sticky-nVis"), $("#susinquirysticker").addClass("sticky")) : ($("#susinquirysticker").addClass("sticky-nVis"), $("#susinquirysticker").removeClass("sticky")) } function PopUpLeadProduct(e) { var t = $(e).attr("id"), a = $(e).attr("parentid"), r = $("#" + t + "-display"), o = $(r).attr("parentId"); $("#" + o + " .menu").hide(), $(r).show(), $("#" + a + " ul li.b2bproducts").removeClass("active"), $(e).addClass("active") } function NoImage(e, t) { e.onerror = "", e.src = t + "Content/css/Images/no-image.jpg" } function CompanyLogoNoImage(e, t) { e.onerror = "", e.src = t + "Content/css/Images/Companynologo.jpg" } function GetCertificateDetailsProcess(e) { $.colorbox({ href: "#f2fcertificatedetails", scrolling: !1, inline: !0, width: "60%", height: "auto", onClosed: function () { $.colorbox.remove(), $("#f2fcertificatedetails").html("") } }), GetCertificateDetails(e) } function GetCertificateDetails(e) { AjaxCall(BASEPATHURL + "Lead/GetCertificateDetailUrl", { CertUrl: e }, "POST", "HTML", "GetCertificateDetailsSuccess") } function GetCertificateDetailsSuccess(e) { $("#f2fcertificatedetails").html(e) } function AddToCompareBasket(e, t, a, r) { if ($("#CompareLeadBasket ul#compareproducts li").length < r) { var o = { enqIdRefno: $(e).attr("compareid"), leadType: a }; AjaxCall(t, o, "POST", "HTML", "AddToCompareBasketSuccess", null, !1), $(e).siblings('span[data-productcompare="compareproduct"]').html("<strong>Remove Compare</strong>") } else $(e).removeAttr("checked"), alert("Maximum " + r + " products are allow to compare.") } function AddToCompareBasketSuccess(e) { $("#compareproducts").append(e), $(e).attr("data-productleadvalue"), CheckCompareBasketLead(), RegisterProductCompareSlider() } function DeleteCompareBasket(e, t, a) { AjaxCall(t, { enqIdRefno: e, leadType: a }, "POST", "JSON", "DeleteCompareBasketSuccess", null, !1) } function DeleteCompareBasketSuccess(e) { if ("" != e.enqIdRefno && e.enqIdRefno > 0) { $("#CompareLeadBasket ul#compareproducts li[data-productleadvalue='" + e.enqIdRefno + "']").remove(); var t = $("#tab1default input[type='checkbox'][compareid='" + e.enqIdRefno + "']"); t.siblings('span[data-productcompare="compareproduct"]').html("<strong>Add to Compare</strong>"), t.removeAttr("checked") } CheckCompareBasketLead() } function CheckCompareBasketLead() { var e = $("#CompareLeadBasket ul#compareproducts li").length; e > 0 ? $("#CompareLeadBasket").show() : $("#CompareLeadBasket").hide(), $("#productcomparecount").text(e) } function ClearAllCompareProduct(e, t) { AjaxCall(e, { leadType: t }, "POST", "HTML", "ClearAllCompareProductSuccess") } function ClearAllCompareProductSuccess(e) { $("#CompareLeadBasket ul#compareproducts li").remove(), $("#CompareLeadBasket").hide(), $("#tab1default input[type='checkbox'][addToCompare='AddToCompare']").removeAttr("checked"), $('#tab1default span[data-productcompare="compareproduct"]').html("<strong>Add to Compare</strong>") } function DeleteCompareProductList(e, t, a) { AjaxCall(t, { enqIdRefno: e, leadType: a }, "POST", "JSON", "DeleteCompareProductListSuccess") } function DeleteCompareProductListSuccess(e) { "" != e.enqIdRefno && e.enqIdRefno > 0 && $("#ProductCompareList td[data-productleadvalue='" + e.enqIdRefno + "']").remove() } function AddToInquiryBasket(e, t, a, r) { if ($("#InquiryLeadBasket div.inquiry-basket").length < r) { var o = $(e).attr("InquiryId"); AjaxCall(t, { enqIdRefno: o, leadType: a }, "POST", "HTML", "AddToInquiryBasketSuccess", null, !1); var n = $("#InquiryIcon_" + o); n.removeClass(), n.addClass("fa-li fa fa-check"), $(e).attr("InInquiryBasket", "True"), $(e).text("Remove Inquiry Basket") } else alert("Up to " + r + " products can be added to the Inquiry basket") } function AddToInquiryBasketSuccess(e) { $("#InquiryLeadBasket").append(e), $(e).attr("data-inquiryBasketleadvalue"), CheckInquiryBasketLead() } function DeleteInquiryBasket(e, t, a) { AjaxCall(t, { enqIdRefno: e, leadType: a }, "POST", "JSON", "DeleteInquiryBasketSuccess", null, !1) } function DeleteInquiryBasketSuccess(e) { if ("" != e.enqIdRefno && e.enqIdRefno > 0) { $("#InquiryLeadBasket #Inquiryleadvalue_" + e.enqIdRefno).remove(); var t = $("#InquiryIcon_" + e.enqIdRefno); t.removeClass(), t.addClass("fa-li fa fa-plus"), $("#tab1default a[InquiryId='" + e.enqIdRefno + "']").attr("InInquiryBasket", "False"), $("#tab1default a[InquiryId='" + e.enqIdRefno + "']").text("Add to Inquiry Basket") } CheckInquiryBasketLead() } function ClearAllInquiryBasket(e, t) { var a = []; if ($("#InquiryLeadBasket input:checkbox[name='chkInquiry']").each(function () { $(this).is(":checked") && a.push($(this).attr("EnqIdrefNo")) }), !(a.length > 0)) return alert("Please select atleast one lead to remove inquiry."), $.colorbox.remove(), !1; AjaxCall(e, { enqIdRefno: a, leadType: t }, "POST", "JSON", "ClearAllInquiryBasketSuccess", null, !1) } function ClearAllInquiryBasketSuccess(e) { if ("" != e.enqIdRefno) for (var t = e.enqIdRefno.toString().split(","), a = 0; a < t.length; a++) { var r = t[a]; $("#InquiryLeadBasket #Inquiryleadvalue_" + r).remove(); var o = $("#InquiryIcon_" + r); o.removeClass(), o.addClass("fa-li fa fa-plus"), $("#tab1default a[InquiryId='" + r + "']").attr("InInquiryBasket", "False"), $("#tab1default a[InquiryId='" + r + "']").text("Add to Inquiry Basket") } CheckInquiryBasketLead() } function CheckInquiryBasketLead() { var e = $("#InquiryLeadBasket div.inquiry-basket").length; e > 0 ? ($("#hlSendInquiry").show(), $("#hlcompareProduct").show(), $("#hlRemoveSendInquiry").show()) : ($("#hlSendInquiry").hide(), $("#hlcompareProduct").hide(), $("#hlRemoveSendInquiry").hide()), $("#InquiryListcount").text(e), $("#InquiryListNumbers").text(e) } function SmartSearchValidate() { var e, t, a, r = $("#ddlSearchCategory").val(), o = $("#ddlSearchLeadType").val(), n = $("#ddlSearchSubCategory").val(), i = $("#ddlSearchProduct").val(), c = $("#ddlSearchCountry").val(), s = $("#txtSearchCity").val(), u = $("#txtSearchEnqIdRefNo").val(), e = $("#ddlcertificate").val(), e = $("#tag-sel-ctn-0 .tag-sel-item").map(function () { return $(this).text() }).get().join(","); if ("" != e && (document.getElementById("hdncertificate").value = e), $("#RdoCountry").is(":checked") && (t = $("#RdoCountry").val()), void 0 === t & "" == c && (c = "NON", a = "NON"), ("India" == t || "nonindia" == t) && "" == c ? (c = t, a = t) : a = $("#ddlSearchCountry option:selected").text(), ("" == o || "" == r) && "" == u) return alert("Please select lead type and category."), !1; if ("" != n || "" != i || "" != c && "NON" != c || "" != s || "" != u || "" != e) { var d = MixpanelF2FSearchEventAttributes; return d.F2FSearchCategory = $("#ddlSearchCategory option:selected").text(), d.F2FSearchSubcategory = $("#ddlSearchSubCategory option:selected").text(), d.F2FSearchIsAdvanced = !0, d.F2FSearchLeadType = $("#ddlSearchLeadType option:selected").text(), d.F2FSearchCertificates = e, d.F2FSearchCountry = a, d.F2FSearchCity = s, d.F2FSearchRefrenceNo = u, d.F2FSearchProduct = $("#ddlSearchProduct option:selected").text(), MixpanelWrapper.track(JSConstants.SearchStarted, d), !0 } return alert("Please select atleast one Subcategory, Product, Country, City, Certificate or RefNo."), !1 } function GetSearchProduct(e, t) { var a = $(t).val(), r = $("#hdnSearchCategoryName").val(); "" != a ? $("#hdnSearchSubCategoryName").val($("#" + $(t).attr("id") + " option:selected").text()) : $("#hdnSearchSubCategoryName").val(""), AjaxCall(e, { categoryName: r, subCategoryId: a }, "POST", "JSON", "GetSearchProductSuccess") } function GetSearchProductSuccess(e) { var t = "", a = e; t += "<option value=''>Select Products</option>"; for (var r = 0; r < a.length; r++)t += "<option value='" + a[r].ProductId + "'>" + a[r].ProductName + "</option>"; $("#ddlSearchProduct").html(t), $("#hdnSearchProductName").val("") } function GetSearchSubCategoryProduct(e, t) { var a = "", r = $(t).val(); "" != r ? (a = $("#" + $(t).attr("id") + " option:selected").text(), $("#hdnSearchCategoryName").val(a), $("#hdnSearchCategoryId").val(r)) : ($("#hdnSearchCategoryName").val(""), $("#hdnSearchCategoryId").val("")), AjaxCall(e, { categoryName: a, categoryId: r }, "POST", "JSON", "GetSearchSubCategoryProductSuccess") } function GetSearchSubCategoryProductSuccess(e) { var t = "", a = e.SubCategories; t += "<option value=''>Select Sub Category</option>"; for (var r = 0; r < a.length; r++)t += "<option value='" + a[r].SubCategoryId + "'>" + a[r].SubCategoryName + "</option>"; $("#ddlSearchSubCategory").html(t), $("#hdnSearchSubCategoryName").val(""); var o = "", n = e.Products; for (o += "<option value=''>Select Products</option>", r = 0; r < n.length; r++)o += "<option value='" + n[r].ProductId + "'>" + n[r].ProductName + "</option>"; $("#ddlSearchProduct").html(o), $("#hdnSearchProductName").val("") } function SetSearchProductName(e) { "" != $(e).val() ? $("#hdnSearchProductName").val($("#" + $(e).attr("id") + " option:selected").text()) : $("#hdnSearchProductName").val("") } function SetSearchCountryName(e) { "" != $(e).val() ? $("#hdnSearchCountryName").val($("#" + $(e).attr("id") + " option:selected").text()) : $("#hdnSearchCountryName").val("") } function AddFavorite(e, t, a, r, o, n) { AjaxCall(a, { EnqidRefno: t, LeadType: r, LeadDetailsUrl: o, ProductDisplyName: n }, "POST", "JSON", "AddFavoriteSuccess") } function AddFavoriteSuccess(e) { null != e && "OK" == e.Status ? ($("#favourite-" + e.Data).attr("IsFavoriteLead", "True"), $("#favouritediv-" + e.Data).removeClass(), $("#favouritediv-" + e.Data).addClass("hot-star-smallSelected cursor")) : null != e && "Error" == e.Status && alert(e.Message) } function DeleteFavorite(e, t, a, r) { AjaxCall(a, { EnqidRefno: t, LeadType: r }, "POST", "JSON", "DeleteFavoriteSuccess") } function DeleteFavoriteSuccess(e) { null != e && "OK" == e.Status ? ($("#favourite-" + e.Data).attr("IsFavoriteLead", "False"), $("#favouritediv-" + e.Data).removeClass(), $("#favouritediv-" + e.Data).addClass("hot-star-small cursor")) : null != e && "Error" == e.Status && alert(e.Message) } function RegisterSendInquiryPopUp(e) { "buyers" == e.toLowerCase() ? $("#hlSendInquiry").colorbox({ href: "#sendInquiryPopup", scrolling: !0, inline: !0, width: "550px", height: "550px", fixed: !0, onClosed: function () { $("#sendInquiryPopup").html("") } }) : $("#hlSendInquiry").colorbox({ href: "#sendInquiryPopup", scrolling: !0, inline: !0, width: "550px", height: "650px", fixed: !0, onClosed: function () { $("#sendInquiryPopup").html("") } }) } function SendInquiryProcess(e, t, a) { var r = []; if ($("#InquiryLeadBasket input:checkbox[name='chkInquiry']").each(function () { $(this).is(":checked") && r.push($(this).attr("EnqIdrefNo")) }), !(r.length > 0)) return alert("Please select atleast one lead to send inquiry."), $.colorbox.remove(), !1; SendInquiryAjaxCall(e, t, r, a), RegisterSendInquiryPopUp(t) } function SendInquiryForContact(e, t, a, r) { "" != a && "#sendinquiry" == r && (SendInquiryAjaxCall(e, t, a, ""), t.toLowerCase(), $.colorbox({ href: "#sendInquiryPopup", scrolling: !0, inline: !0, width: "550px", height: "550px", fixed: !0, onClosed: function () { $("#sendInquiryPopup").html(""), $.colorbox.remove() } })) } function SendInquiryAjaxCall(e, t, a, r) { AjaxCall(e, { EnqIdRefnos: a, leadType: t, callFrom: r }, "POST", "HTML", "SendInquiryProcessSuccess") } function SendInquiryProcessSuccess(e) { "Redirect" == e ? (alert("You are not logged in."), $.colorbox.close()) : $("#sendInquiryPopup").html(e) } function SelectAllInquiry(e) { var t = $(e).is(":checked"); $("#SendInquiryWrapper input:checkbox[name='chkSelectInquiryLead']").each(function () { t ? $(this).prop("checked", !0) : $(this).prop("checked", !1) }) } function SaveInquirySuccess(e) { if ("OK" == e.Status) { var t = e.Name, a = e.ExtraData, r = $("#LeadType").val(), o = [{ key: "ProductName", value: t }, { key: "Checkbox", value: a }, { key: "Company", value: $("#txtCompanyName").val() }]; "suppliers" == r.toLowerCase() ? DataLayerTracking("Supplier Inquiry form", "Business", "Supplier inquiry form", o) : "wholesalesuppliers" == r.toLowerCase() ? DataLayerTracking("WholesaleSupplier Inquiry form", "Business", "WholesaleSupplier inquiry form", o) : "buyers" == r.toLowerCase() ? DataLayerTracking("Buyer Inquiry form", "Business", "Buyer inquiry form", o) : "wholesalebuyers" == r.toLowerCase() && DataLayerTracking("WholesaleBuyer Inquiry form", "Business", "WholesaleBuyer inquiry form", o), $("#SendInquirySuccess").html(e.Message), $("#SendInquiryWrapper").html(""); var n = ""; null != e.Data && (n = e.Data.toLowerCase()), "inquirybasket" == n && ResetInquiryBasket(), CreateLocalSrorage(e.LocalStorageData, e.Email, e.F2FLeadFormUserEventData, e.F2FLeadFormEventData) } } function ManageDemoUserLead() { var e = BASEPATHURL + "Lead/ManageDemoUserLeadVisit", t = $("#hdnEnqIdRefno").val(); AjaxCall(e, { EnqIdRefNo: t }, "POST", "JSON", "ManageDemoUserLeadVisitSuccess") } function ManageDemoUserLeadVisitSuccess(e) { if ("OK" == e.Status) { $("#contactDiv").show(), $("#otherInfoDiv").show(), $("#btnManageDemoUser").hide(); var t = $("#hdnMaxLeadForDMuser").val(), a = $("#hdnLeadCount").val(), r = parseInt(a) + parseInt(1); $(".leadmsg").text("You've already seen " + r + "/" + t + " open leads during your Free Trial period.") } else alert(e.Message) } function ManageDemoUserLeadVisitMobileSuccess(e) { "OK" == e.Status ? ($("#MobileContactDivSeller").show(), $("#MobileContactDivBuyer").show(), $("#btnManageDemoUser").hide()) : alert(e.Message) } function StickyExpressPostingFromView(e) { AjaxCall(BASEPATHURL + "Lead/StickyExpressPosting", { fromView: e }, "POST", "HTML", "StickyExpressPostingSuccess") } function StickyExpressPostingSuccess(e) { $("#StickyExpressPostingDiv").html(e), jQuery(".EP-form").show(), jQuery("#expresspostingHead").show(), jQuery("#EP-formthankyou").hide(), $("#express-posting-popup").modal("show"), $("#StickyExpressPostForm").removeData("validator"), $("#StickyExpressPostForm").removeData("unobtrusiveValidation"), $.validator.unobtrusive.parse("#StickyExpressPostForm") } function SendInquiryForWSLead(e, t, a, r, o, n) { var i = chkLocalStorageInquiryData(); void 0 !== i ? SaveWSInquiryFromLocalStorage(t, a, r) : void 0 == i && "True" == o ? SaveWSInquiryWithLogin(a, r, t) : void 0 === i && "False" == o && "" != a && "#sendinquiryforwslead" == n && (SendInquiryForWSLeadAjaxCall(e, t, a, r, ""), "wholesalebuyers" == t.toLowerCase() ? $.colorbox({ href: "#sendInquiryWSPopup", scrolling: !0, inline: !0, width: "550px", height: "400px", fixed: !0, onClosed: function () { $("#sendInquiryWSPopup").html(""), $.colorbox.remove() } }) : "wholesalesuppliers" == t.toLowerCase() && $.colorbox({ href: "#sendInquiryWSPopup", scrolling: !0, inline: !0, width: "550px", height: "400px", fixed: !0, onClosed: function () { $("#sendInquiryWSPopup").html(""), $.colorbox.remove() } })) } function SendInquiryForWSLeadAjaxCall(e, t, a, r, o) { AjaxCall(e, { EnqIdRefnos: a, leadType: t, CartURL: r, callFrom: o }, "POST", "HTML", "SendInquiryForWSLeadSuccess") } function SendInquiryForWSLeadSuccess(e) { "Redirect" == e ? (alert("You are not logged in."), $.colorbox.close()) : ($("#sendInquiryWSPopup").html(e), $("#frmWSSendInquiry").removeData("validator"), $("#frmWSSendInquiry").removeData("unobtrusiveValidation"), $.validator.unobtrusive.parse("#frmWSSendInquiry")) } function chkLocalStorageInquiryData() { var e = 0; return (null !== localStorage.hasOwnProperty("wsonname") && !1 != localStorage.hasOwnProperty("wsonname") && (strwsonname = localStorage.getItem("wsonname"), e++), null !== localStorage.hasOwnProperty("wsoncompany") && !1 != localStorage.hasOwnProperty("wsoncompany") && (strwsoncompany = localStorage.getItem("wsoncompany"), e++), null !== localStorage.hasOwnProperty("wsoncontact") && !1 != localStorage.hasOwnProperty("wsoncontact") && (strwsoncontact = localStorage.getItem("wsoncontact"), e++), null !== localStorage.hasOwnProperty("wsonemail") && !1 != localStorage.hasOwnProperty("wsonemail") && (strwsonemail = localStorage.getItem("wsonemail"), e++), null !== localStorage.hasOwnProperty("wsoncountry") && !1 != localStorage.hasOwnProperty("wsoncountry") && (strwsoncountry = localStorage.getItem("wsoncountry"), e++), e > 0) ? e : void 0 } function SaveWSInquiryFromLocalStorage(e, t, a) { null !== localStorage.hasOwnProperty("wsonname") && !1 != localStorage.hasOwnProperty("wsonname") && (strwsonname = localStorage.getItem("wsonname")), null !== localStorage.hasOwnProperty("wsoncompany") && !1 != localStorage.hasOwnProperty("wsoncompany") && (strwsoncompany = localStorage.getItem("wsoncompany")), null !== localStorage.hasOwnProperty("wsoncontact") && !1 != localStorage.hasOwnProperty("wsoncontact") && (strwsoncontact = localStorage.getItem("wsoncontact")), null !== localStorage.hasOwnProperty("wsonemail") && !1 != localStorage.hasOwnProperty("wsonemail") && (strwsonemail = localStorage.getItem("wsonemail")), null !== localStorage.hasOwnProperty("wsoncountry") && !1 != localStorage.hasOwnProperty("wsoncountry") && (strwsoncountry = localStorage.getItem("wsoncountry")), AjaxCall(BASEPATHURL + "Lead/SaveWSInquiryFromLocalStorage", { Name: strwsonname, Company: strwsoncompany, Contact: strwsoncontact, email: strwsonemail, country: strwsoncountry, EnqIdRefNo: t, CartURL: a, LeadType: e }, "POST", "JSON", "SaveWSInquirySuccess", null, null, !1) } function SaveWSInquiryWithLogin(e, t, a) { AjaxCall(BASEPATHURL + "Lead/SaveWSInquiryWithLogin", { EnqIdRefNo: e, CartURL: t, LeadType: a }, "POST", "JSON", "SaveWSInquirySuccess", null, null, !1) } function SaveWSInquiry() { if (ValidateSaveWSInquiry()) { var e = GetSerializeWSModel(); AjaxCall(BASEPATHURL + "Lead/SaveWSInquiry", e, "POST", "JSON", "SaveWSInquirySuccess", null, null, !1) } } function ValidateSaveWSInquiry() { return $("#frmWSSendInquiry").valid(), $("#frmWSSendInquiry").valid() } function GetSerializeWSModel() { TrimInputs("#frmWSSendInquiry"); var e = []; $("#SendWSInquiryWrapper input:checkbox[name='chkSelectInquiryLead']:checked").each(function () { e.push($(this).attr("EnqIdrefNo")) }); var t = e.join("~"), a = $("#hdnCartURL").val(), r = $("#frmWSSendInquiry").serialize(); return r + ("&EnqIdRefNo=" + t + "&CartURL=" + a) } function SaveWSInquirySuccess(e) { if ("OK" == e.Status && ($("#SendWSInquiryWrapper").html(""), null != e.Data)) { for (var t = e.Data.split("~"), a = null, r = 0; r < t.length; r++)t[r] = t[r].replace(/^\s*/, "").replace(/\s*$/, ""), 0 == r && localStorage.setItem("wsonname", t[r]), 1 == r && localStorage.setItem("wsoncompany", t[r]), 2 == r && localStorage.setItem("wsoncontact", t[r]), 3 == r && localStorage.setItem("wsonemail", t[r]), 4 == r && localStorage.setItem("wsoncountry", t[r]), a = "f2fcN=" + t[0] + "&f2fcCN=" + t[1] + "&f2fcP=" + t[2] + "&f2fcE=" + t[3] + "&f2fcC=" + t[4]; if (null != e.RedirectTo) { var o = e.RedirectTo, n = BASEPATHURL + "/splash?redirect=" + (o = o.indexOf("?") > 0 ? o + "&" + a : o + "?" + a); window.open(n), $.colorbox.close() } } } $(document).ready(function () { stickyexpposting("stickyexpposting") }); </script> <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --> <!-- WARNING: Respond.js doesn't work if you view the page via file:// --> <!--[if lt IE 9]> <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script> <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> <![endif]--> <script type="text/javascript" defer> function ReadCookie(cookieName) { var re = new RegExp('[; ]' + cookieName + '=([^\\s;]*)'); var sMatch = (' ' + document.cookie).match(re); if (cookieName && sMatch) return unescape(sMatch[1]); return ''; } function SetCookie(cookieName, cookieValue, nDays) { var today = new Date(); var expire = new Date(); if (nDays === null || nDays === 0) nDays = 1; expire.setTime(today.getTime() + 3600000 * 24 * nDays); document.cookie = cookieName + "=" + escape(cookieValue) + ";path=/;domain=.fibre2fashion.com;expires=" + expire.toGMTString(); } function makeid() { var text = ""; var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; for (var i = 0; i < 9; i++) text += possible.charAt(Math.floor(Math.random() * possible.length)); return text; } uival = ReadCookie("flthiga") if (uival == "") { var jcval = makeid() SetCookie("flthiga", jcval, 365); uival = jcval; } Psection = ReadCookie("paidsection") </script> <script defer type="text/javascript" language="javascript" src="https://static.fibre2fashion.com//VirtualPageView/SetVirtualPageView.js?V=1.4"></script> <!-- Google Tag Manager --> <script defer> (function (w, d, s, l, i) { w[l] = w[l] || []; w[l].push({ 'gtm.start': new Date().getTime(), event: 'gtm.js' }); var f = d.getElementsByTagName(s)[0], j = d.createElement(s), dl = l != 'dataLayer' ? '&l=' + l : ''; j.async = true; j.src = '//www.googletagmanager.com/gtm.js?id=' + i + dl; f.parentNode.insertBefore(j, f); })(window, document, 'script', 'dataLayer', 'GTM-NDR3B7');</script> <!-- End Google Tag Manager --> <!-- Webengage Script Start --> <script defer id="_webengage_script_tag" type="text/javascript" language="javascript" src="https://static.fibre2fashion.com/staticresources/js/externalplugin/f2fwebengage.min.js?var=1.0"></script> <script defer type="text/javascript" async language="javascript" src="https://static.fibre2fashion.com/staticresources/js/externalplugin/webengagecookie.min.js"></script> <!-- Webengage Script End --> <style> div.zsiq_custommain { z-index: 9999999 !important; } .load-wraper.not-loaded .load-element { opacity: 0; } .load-wraper.not-loaded { position: relative; background-color: rgb(238 238 238); z-index: 44; overflow: hidden; height: 330px; } .load-wraper.not-loaded:after { content: ""; position: absolute; left: -45%; height: 100%; width: 45%; top: 0px; background-image: linear-gradient(to left, rgba(251,251,251, .05), rgba(251,251,251, .3), rgba(251,251,251, .6), rgba(251,251,251, .3), rgba(251,251,251, .05)); background-image: -moz-linear-gradient(to left, rgba(251,251,251, .05), rgba(251,251,251, .3), rgba(251,251,251, .6), rgba(251,251,251, .3), rgba(251,251,251, .05)); background-image: -webkit-linear-gradient(to left, rgba(251,251,251, .05), rgba(251,251,251, .3), rgba(251,251,251, .6), rgba(251,251,251, .3), rgba(251,251,251, .05)); animation: loading 1s infinite; z-index: 45; } @keyframes loading { 0% { left: -45%; } 100% { left: 100%; } } .estimeclients.load-wraper.not-loaded { max-height: 265px; overflow: hidden; } .premium-suppliers-slider:not(.owl-loaded) { justify-content: flex-start; } .premium-suppliers-slider:not(.owl-loaded) .premium-suppliers-group { margin: 0px 15px 0px 0px; } </style> </head> <body> <!-- Google Tag Manager --> <noscript> <iframe src="//www.googletagmanager.com/ns.html?id=GTM-NDR3B7" height="0" width="0" style="display:none;visibility:hidden"></iframe> </noscript> <!-- End Google Tag Manager --> <style> .hide { display: none !important; } </style> <style> #advsearchhide a, #advsearchhide1 a, .selectric .label { text-transform: uppercase; font-family: var(--boldfonts) } .newsletter-main { width: 80% !important } .footercheckbox { width: 100% !important; margin: 20px auto !important } .search-icon { width: 22px; height: 22px; float: left; margin-right: 10px; cursor: pointer } .search-icon:last-child { margin-right: 0 } .search-icon .fa-angle-down { position: absolute; color: #0f275f; top: 5px; right: -8px; font-size: 18px } .bordernone { border-left: 0 !important } .search-close-icon { position: absolute; right: 22px; top: 0; font-size: 36px; color: #8d98b3; font-weight: 400; opacity: .6; cursor: pointer } .icon-group { margin-top: 18px } .new-search { border: 1px solid #ccc; border-radius: 5px; display: flex; align-items: center; justify-content: space-between; padding: 5px 10px } .new-search .input-group-addon { border: none; width: 6% } .stylish-input-group .headersearch.f2fsearchtext { border: none } .greyscale img { -webkit-filter: grayscale(100%); filter: grayscale(100%); opacity: .4 } .searchicon { width: 36px; height: 36px; display: inline-block; background: 0 0; border: 0 } .searchicon img { opacity: .5; padding-right: 10px } .m-auto { margin: 0 auto; float: none } .space-none { padding-top: 0 !important; height: 390px !important } .hidden-menu { width: 100%; position: absolute; display: none; left: 0; background-color: #fff; box-shadow: 0 1px 13px 0 rgba(24,26,31,.16); top: 100%; border-top: 1px solid #c9c9c9; right: 0; padding-bottom: 3%; padding-top: 3%; z-index: 9999 } .hidden-menuheight { height: 360px } .esAutoSuggest.ui-widget { font-size: var(--smallfontsize) !important; font-family: var(--regularfonts) !important } .stylish-input-group .headersearch { width: 75% !important } .esAutoSuggest .f2fsection { color: #999; font-size: 12px } .selectric .label, .selectric-items li, .selectric-items ul { font-size: var(--smallfontsize); font-size: var(--smallfontsize) } .show { position: fixed; top: 0; left: 0; z-index: 1039; width: 100vw; height: 100vh; opacity: .5; background-color: #000 } .selectric { background: 0 0 !important } .selectric .label { margin: 0 !important; text-align: left; color: #777 } .selectric-esCategory { width: 170px !important; float: left } .selectric .button:after { border-width: 6px !important } .searchadvertisement ul { margin: 0; padding: 0; list-style-type: none } .searchadvertisement li { float: left; width: 25%; padding: 0 15px } .commontopspace { margin-top: 85px } .esAutoSuggest.ui-menu .ui-menu-item { padding: 10px 1em 8px .8em !important; line-height: 1.4 !important } .searchadvertisement { width: 68%; margin: 20px auto } .advancesearchmenu { width: 65%; margin: 10px auto } .advancesearchmenu .advance-search-title { text-align: right; width: 100%; text-transform: uppercase } a#advanceSearch { text-decoration: underline; color: #000; cursor: pointer } a:hover#advanceSearch { color: #000 } .advancesearchmenu .form-control { padding: 6px 3px; font-size: 13px; box-shadow: none; border-color: #ebebeb } .advancesearchmenu label { font-weight: 400; color: #000; font-size: 13px } .advancesearchmenu .express-postingbtn { border: 0; font-family: var(--boldfonts); font-size: 16px; padding: 6px 30px; text-align: center; width: auto } .advancesearchmenu #divAdvanceSearch .tag-ctn { height: 35px !important; min-height: inherit; border-color: #ebebeb } #advanceSearch .middle-container { width: 100%; margin: 0 } .advancesearchmenu #advsearchhide, .advancesearchmenu #divAdvanceSearch { width: 100% !important } #advsearchhide a, #advsearchhide1 a { float: left; width: 100%; text-align: left; font-size: 16px; margin: 0 0 30px; color: #000; cursor: pointer } #advsearchhide a .fa, #advsearchhide1 a .fa { font-size: 25px; color: #b2bacc; margin-right: 8px; vertical-align: bottom } @media (max-width:1024px) { .searchadvertisement { width: 86% } .hidden-menu .col-md-8 { width: 85% } .advancesearchmenu { width: 82% } .icon-group { margin-right: 20px } .newsletter-main .col-md-6.first-section { width: 85%; margin: 0 auto; float: none } .newsletter-main .col-md-6 { width: 100% } } @media (max-width:992px) { .commontopspace { margin-top: 135px } } @media (max-width:800px) { .hidden-menu .col-md-8, .searchadvertisement { width: 100% } .advancesearchmenu { width: 98% } .search-icon.btn3 { padding-top: 1px } } nav.sponsored-alert { z-index: 1040 !important } .navbar-fixed-bottom, .navbar-fixed-top { z-index: 1040 } @media (max-width:768px) { .commontopspace { margin-top: 43px } } </style> <script defer> !function () { "use strict"; var e, a = function (s, i) { function r(e) { return Math.floor(e) } function n() { var e = T.params.autoplay, a = T.slides.eq(T.activeIndex); a.attr("data-swiper-autoplay") && (e = a.attr("data-swiper-autoplay") || T.params.autoplay), T.autoplayTimeoutId = setTimeout(function () { T.params.loop ? (T.fixLoop(), T._slideNext(), T.emit("onAutoplay", T)) : T.isEnd ? i.autoplayStopOnLast ? T.stopAutoplay() : (T._slideTo(0), T.emit("onAutoplay", T)) : (T._slideNext(), T.emit("onAutoplay", T)) }, e) } function o(a, t) { var s = e(a.target); if (!s.is(t)) if ("string" == typeof t) s = s.parents(t); else if (t.nodeType) { var i; return s.parents().each(function (e, a) { a === t && (i = t) }), i ? t : void 0 } if (0 !== s.length) return s[0] } function l(e, a) { a = a || {}; var t = window.MutationObserver || window.WebkitMutationObserver, s = new t(function (e) { e.forEach(function (e) { T.onResize(!0), T.emit("onObserverUpdate", T, e) }) }); s.observe(e, { attributes: void 0 === a.attributes || a.attributes, childList: void 0 === a.childList || a.childList, characterData: void 0 === a.characterData || a.characterData }), T.observers.push(s) } function p(e) { e.originalEvent && (e = e.originalEvent); var a = e.keyCode || e.charCode; if (!T.params.allowSwipeToNext && (T.isHorizontal() && 39 === a || !T.isHorizontal() && 40 === a)) return !1; if (!T.params.allowSwipeToPrev && (T.isHorizontal() && 37 === a || !T.isHorizontal() && 38 === a)) return !1; if (!(e.shiftKey || e.altKey || e.ctrlKey || e.metaKey || document.activeElement && document.activeElement.nodeName && ("input" === document.activeElement.nodeName.toLowerCase() || "textarea" === document.activeElement.nodeName.toLowerCase()))) { if (37 === a || 39 === a || 38 === a || 40 === a) { var t = !1; if (T.container.parents("." + T.params.slideClass).length > 0 && 0 === T.container.parents("." + T.params.slideActiveClass).length) return; var s = { left: window.pageXOffset, top: window.pageYOffset }, i = window.innerWidth, r = window.innerHeight, n = T.container.offset(); T.rtl && (n.left = n.left - T.container[0].scrollLeft); for (var o = [[n.left, n.top], [n.left + T.width, n.top], [n.left, n.top + T.height], [n.left + T.width, n.top + T.height]], l = 0; l < o.length; l++) { var p = o[l]; p[0] >= s.left && p[0] <= s.left + i && p[1] >= s.top && p[1] <= s.top + r && (t = !0) } if (!t) return } T.isHorizontal() ? (37 !== a && 39 !== a || (e.preventDefault ? e.preventDefault() : e.returnValue = !1), (39 === a && !T.rtl || 37 === a && T.rtl) && T.slideNext(), (37 === a && !T.rtl || 39 === a && T.rtl) && T.slidePrev()) : (38 !== a && 40 !== a || (e.preventDefault ? e.preventDefault() : e.returnValue = !1), 40 === a && T.slideNext(), 38 === a && T.slidePrev()), T.emit("onKeyPress", T, a) } } function d(e) { var a = 0, t = 0, s = 0, i = 0; return "detail" in e && (t = e.detail), "wheelDelta" in e && (t = -e.wheelDelta / 120), "wheelDeltaY" in e && (t = -e.wheelDeltaY / 120), "wheelDeltaX" in e && (a = -e.wheelDeltaX / 120), "axis" in e && e.axis === e.HORIZONTAL_AXIS && (a = t, t = 0), s = 10 * a, i = 10 * t, "deltaY" in e && (i = e.deltaY), "deltaX" in e && (s = e.deltaX), (s || i) && e.deltaMode && (1 === e.deltaMode ? (s *= 40, i *= 40) : (s *= 800, i *= 800)), s && !a && (a = s < 1 ? -1 : 1), i && !t && (t = i < 1 ? -1 : 1), { spinX: a, spinY: t, pixelX: s, pixelY: i } } function u(e) { e.originalEvent && (e = e.originalEvent); var a = 0, t = T.rtl ? -1 : 1, s = d(e); if (T.params.mousewheelForceToAxis) if (T.isHorizontal()) { if (!(Math.abs(s.pixelX) > Math.abs(s.pixelY))) return; a = s.pixelX * t } else { if (!(Math.abs(s.pixelY) > Math.abs(s.pixelX))) return; a = s.pixelY } else a = Math.abs(s.pixelX) > Math.abs(s.pixelY) ? -s.pixelX * t : -s.pixelY; if (0 !== a) { if (T.params.mousewheelInvert && (a = -a), T.params.freeMode) { var i = T.getWrapperTranslate() + a * T.params.mousewheelSensitivity, r = T.isBeginning, n = T.isEnd; if (i >= T.minTranslate() && (i = T.minTranslate()), i <= T.maxTranslate() && (i = T.maxTranslate()), T.setWrapperTransition(0), T.setWrapperTranslate(i), T.updateProgress(), T.updateActiveIndex(), (!r && T.isBeginning || !n && T.isEnd) && T.updateClasses(), T.params.freeModeSticky ? (clearTimeout(T.mousewheel.timeout), T.mousewheel.timeout = setTimeout(function () { T.slideReset() }, 300)) : T.params.lazyLoading && T.lazy && T.lazy.load(), T.emit("onScroll", T, e), T.params.autoplay && T.params.autoplayDisableOnInteraction && T.stopAutoplay(), 0 === i || i === T.maxTranslate()) return } else { if ((new window.Date).getTime() - T.mousewheel.lastScrollTime > 60) if (a < 0) if (T.isEnd && !T.params.loop || T.animating) { if (T.params.mousewheelReleaseOnEdges) return !0 } else T.slideNext(), T.emit("onScroll", T, e); else if (T.isBeginning && !T.params.loop || T.animating) { if (T.params.mousewheelReleaseOnEdges) return !0 } else T.slidePrev(), T.emit("onScroll", T, e); T.mousewheel.lastScrollTime = (new window.Date).getTime() } return e.preventDefault ? e.preventDefault() : e.returnValue = !1, !1 } } function c(a, t) { a = e(a); var s, i, r, n = T.rtl ? -1 : 1; s = a.attr("data-swiper-parallax") || "0", i = a.attr("data-swiper-parallax-x"), r = a.attr("data-swiper-parallax-y"), i || r ? (i = i || "0", r = r || "0") : T.isHorizontal() ? (i = s, r = "0") : (r = s, i = "0"), i = i.indexOf("%") >= 0 ? parseInt(i, 10) * t * n + "%" : i * t * n + "px", r = r.indexOf("%") >= 0 ? parseInt(r, 10) * t + "%" : r * t + "px", a.transform("translate3d(" + i + ", " + r + ",0px)") } function m(e) { return 0 !== e.indexOf("on") && (e = e[0] !== e[0].toUpperCase() ? "on" + e[0].toUpperCase() + e.substring(1) : "on" + e), e } if (!(this instanceof a)) return new a(s, i); var h = { direction: "horizontal", touchEventsTarget: "container", initialSlide: 0, speed: 300, autoplay: !1, autoplayDisableOnInteraction: !0, autoplayStopOnLast: !1, iOSEdgeSwipeDetection: !1, iOSEdgeSwipeThreshold: 20, freeMode: !1, freeModeMomentum: !0, freeModeMomentumRatio: 1, freeModeMomentumBounce: !0, freeModeMomentumBounceRatio: 1, freeModeMomentumVelocityRatio: 1, freeModeSticky: !1, freeModeMinimumVelocity: .02, autoHeight: !1, setWrapperSize: !1, virtualTranslate: !1, effect: "slide", coverflow: { rotate: 50, stretch: 0, depth: 100, modifier: 1, slideShadows: !0 }, flip: { slideShadows: !0, limitRotation: !0 }, cube: { slideShadows: !0, shadow: !0, shadowOffset: 20, shadowScale: .94 }, fade: { crossFade: !1 }, parallax: !1, zoom: !1, zoomMax: 3, zoomMin: 1, zoomToggle: !0, scrollbar: null, scrollbarHide: !0, scrollbarDraggable: !1, scrollbarSnapOnRelease: !1, keyboardControl: !1, mousewheelControl: !1, mousewheelReleaseOnEdges: !1, mousewheelInvert: !1, mousewheelForceToAxis: !1, mousewheelSensitivity: 1, mousewheelEventsTarged: "container", hashnav: !1, hashnavWatchState: !1, history: !1, replaceState: !1, breakpoints: void 0, spaceBetween: 0, slidesPerView: 1, slidesPerColumn: 1, slidesPerColumnFill: "column", slidesPerGroup: 1, centeredSlides: !1, slidesOffsetBefore: 0, slidesOffsetAfter: 0, roundLengths: !1, touchRatio: 1, touchAngle: 45, simulateTouch: !0, shortSwipes: !0, longSwipes: !0, longSwipesRatio: .5, longSwipesMs: 300, followFinger: !0, onlyExternal: !1, threshold: 0, touchMoveStopPropagation: !0, touchReleaseOnEdges: !1, uniqueNavElements: !0, pagination: null, paginationElement: "span", paginationClickable: !1, paginationHide: !1, paginationBulletRender: null, paginationProgressRender: null, paginationFractionRender: null, paginationCustomRender: null, paginationType: "bullets", resistance: !0, resistanceRatio: .85, nextButton: null, prevButton: null, watchSlidesProgress: !1, watchSlidesVisibility: !1, grabCursor: !1, preventClicks: !0, preventClicksPropagation: !0, slideToClickedSlide: !1, lazyLoading: !1, lazyLoadingInPrevNext: !1, lazyLoadingInPrevNextAmount: 1, lazyLoadingOnTransitionStart: !1, preloadImages: !0, updateOnImagesReady: !0, loop: !1, loopAdditionalSlides: 0, loopedSlides: null, control: void 0, controlInverse: !1, controlBy: "slide", normalizeSlideIndex: !0, allowSwipeToPrev: !0, allowSwipeToNext: !0, swipeHandler: null, noSwiping: !0, noSwipingClass: "swiper-no-swiping", passiveListeners: !0, containerModifierClass: "swiper-container-", slideClass: "swiper-slide", slideActiveClass: "swiper-slide-active", slideDuplicateActiveClass: "swiper-slide-duplicate-active", slideVisibleClass: "swiper-slide-visible", slideDuplicateClass: "swiper-slide-duplicate", slideNextClass: "swiper-slide-next", slideDuplicateNextClass: "swiper-slide-duplicate-next", slidePrevClass: "swiper-slide-prev", slideDuplicatePrevClass: "swiper-slide-duplicate-prev", wrapperClass: "swiper-wrapper", bulletClass: "swiper-pagination-bullet", bulletActiveClass: "swiper-pagination-bullet-active", buttonDisabledClass: "swiper-button-disabled", paginationCurrentClass: "swiper-pagination-current", paginationTotalClass: "swiper-pagination-total", paginationHiddenClass: "swiper-pagination-hidden", paginationProgressbarClass: "swiper-pagination-progressbar", paginationClickableClass: "swiper-pagination-clickable", paginationModifierClass: "swiper-pagination-", lazyLoadingClass: "swiper-lazy", lazyStatusLoadingClass: "swiper-lazy-loading", lazyStatusLoadedClass: "swiper-lazy-loaded", lazyPreloaderClass: "swiper-lazy-preloader", notificationClass: "swiper-notification", preloaderClass: "preloader", zoomContainerClass: "swiper-zoom-container", observer: !1, observeParents: !1, a11y: !1, prevSlideMessage: "Previous slide", nextSlideMessage: "Next slide", firstSlideMessage: "This is the first slide", lastSlideMessage: "This is the last slide", paginationBulletMessage: "Go to slide {{index}}", runCallbacksOnInit: !0 }, g = i && i.virtualTranslate; i = i || {}; var f = {}; for (var v in i) if ("object" != typeof i[v] || null === i[v] || (i[v].nodeType || i[v] === window || i[v] === document || void 0 !== t && i[v] instanceof t || "undefined" != typeof jQuery && i[v] instanceof jQuery)) f[v] = i[v]; else { f[v] = {}; for (var w in i[v]) f[v][w] = i[v][w] } for (var y in h) if (void 0 === i[y]) i[y] = h[y]; else if ("object" == typeof i[y]) for (var x in h[y]) void 0 === i[y][x] && (i[y][x] = h[y][x]); var T = this; if (T.params = i, T.originalParams = f, T.classNames = [], void 0 !== e && void 0 !== t && (e = t), (void 0 !== e || (e = void 0 === t ? window.Dom7 || window.Zepto || window.jQuery : t)) && (T.$ = e, T.currentBreakpoint = void 0, T.getActiveBreakpoint = function () { if (!T.params.breakpoints) return !1; var e, a = !1, t = []; for (e in T.params.breakpoints) T.params.breakpoints.hasOwnProperty(e) && t.push(e); t.sort(function (e, a) { return parseInt(e, 10) > parseInt(a, 10) }); for (var s = 0; s < t.length; s++)(e = t[s]) >= window.innerWidth && !a && (a = e); return a || "max" }, T.setBreakpoint = function () { var e = T.getActiveBreakpoint(); if (e && T.currentBreakpoint !== e) { var a = e in T.params.breakpoints ? T.params.breakpoints[e] : T.originalParams, t = T.params.loop && a.slidesPerView !== T.params.slidesPerView; for (var s in a) T.params[s] = a[s]; T.currentBreakpoint = e, t && T.destroyLoop && T.reLoop(!0) } }, T.params.breakpoints && T.setBreakpoint(), T.container = e(s), 0 !== T.container.length)) { if (T.container.length > 1) { var b = []; return T.container.each(function () { b.push(new a(this, i)) }), b } T.container[0].swiper = T, T.container.data("swiper", T), T.classNames.push(T.params.containerModifierClass + T.params.direction), T.params.freeMode && T.classNames.push(T.params.containerModifierClass + "free-mode"), T.support.flexbox || (T.classNames.push(T.params.containerModifierClass + "no-flexbox"), T.params.slidesPerColumn = 1), T.params.autoHeight && T.classNames.push(T.params.containerModifierClass + "autoheight"), (T.params.parallax || T.params.watchSlidesVisibility) && (T.params.watchSlidesProgress = !0), T.params.touchReleaseOnEdges && (T.params.resistanceRatio = 0), ["cube", "coverflow", "flip"].indexOf(T.params.effect) >= 0 && (T.support.transforms3d ? (T.params.watchSlidesProgress = !0, T.classNames.push(T.params.containerModifierClass + "3d")) : T.params.effect = "slide"), "slide" !== T.params.effect && T.classNames.push(T.params.containerModifierClass + T.params.effect), "cube" === T.params.effect && (T.params.resistanceRatio = 0, T.params.slidesPerView = 1, T.params.slidesPerColumn = 1, T.params.slidesPerGroup = 1, T.params.centeredSlides = !1, T.params.spaceBetween = 0, T.params.virtualTranslate = !0), "fade" !== T.params.effect && "flip" !== T.params.effect || (T.params.slidesPerView = 1, T.params.slidesPerColumn = 1, T.params.slidesPerGroup = 1, T.params.watchSlidesProgress = !0, T.params.spaceBetween = 0, void 0 === g && (T.params.virtualTranslate = !0)), T.params.grabCursor && T.support.touch && (T.params.grabCursor = !1), T.wrapper = T.container.children("." + T.params.wrapperClass), T.params.pagination && (T.paginationContainer = e(T.params.pagination), T.params.uniqueNavElements && "string" == typeof T.params.pagination && T.paginationContainer.length > 1 && 1 === T.container.find(T.params.pagination).length && (T.paginationContainer = T.container.find(T.params.pagination)), "bullets" === T.params.paginationType && T.params.paginationClickable ? T.paginationContainer.addClass(T.params.paginationModifierClass + "clickable") : T.params.paginationClickable = !1, T.paginationContainer.addClass(T.params.paginationModifierClass + T.params.paginationType)), (T.params.nextButton || T.params.prevButton) && (T.params.nextButton && (T.nextButton = e(T.params.nextButton), T.params.uniqueNavElements && "string" == typeof T.params.nextButton && T.nextButton.length > 1 && 1 === T.container.find(T.params.nextButton).length && (T.nextButton = T.container.find(T.params.nextButton))), T.params.prevButton && (T.prevButton = e(T.params.prevButton), T.params.uniqueNavElements && "string" == typeof T.params.prevButton && T.prevButton.length > 1 && 1 === T.container.find(T.params.prevButton).length && (T.prevButton = T.container.find(T.params.prevButton)))), T.isHorizontal = function () { return "horizontal" === T.params.direction }, T.rtl = T.isHorizontal() && ("rtl" === T.container[0].dir.toLowerCase() || "rtl" === T.container.css("direction")), T.rtl && T.classNames.push(T.params.containerModifierClass + "rtl"), T.rtl && (T.wrongRTL = "-webkit-box" === T.wrapper.css("display")), T.params.slidesPerColumn > 1 && T.classNames.push(T.params.containerModifierClass + "multirow"), T.device.android && T.classNames.push(T.params.containerModifierClass + "android"), T.container.addClass(T.classNames.join(" ")), T.translate = 0, T.progress = 0, T.velocity = 0, T.lockSwipeToNext = function () { T.params.allowSwipeToNext = !1, T.params.allowSwipeToPrev === !1 && T.params.grabCursor && T.unsetGrabCursor() }, T.lockSwipeToPrev = function () { T.params.allowSwipeToPrev = !1, T.params.allowSwipeToNext === !1 && T.params.grabCursor && T.unsetGrabCursor() }, T.lockSwipes = function () { T.params.allowSwipeToNext = T.params.allowSwipeToPrev = !1, T.params.grabCursor && T.unsetGrabCursor() }, T.unlockSwipeToNext = function () { T.params.allowSwipeToNext = !0, T.params.allowSwipeToPrev === !0 && T.params.grabCursor && T.setGrabCursor() }, T.unlockSwipeToPrev = function () { T.params.allowSwipeToPrev = !0, T.params.allowSwipeToNext === !0 && T.params.grabCursor && T.setGrabCursor() }, T.unlockSwipes = function () { T.params.allowSwipeToNext = T.params.allowSwipeToPrev = !0, T.params.grabCursor && T.setGrabCursor() }, T.setGrabCursor = function (e) { T.container[0].style.cursor = "move", T.container[0].style.cursor = e ? "-webkit-grabbing" : "-webkit-grab", T.container[0].style.cursor = e ? "-moz-grabbin" : "-moz-grab", T.container[0].style.cursor = e ? "grabbing" : "grab" }, T.unsetGrabCursor = function () { T.container[0].style.cursor = "" }, T.params.grabCursor && T.setGrabCursor(), T.imagesToLoad = [], T.imagesLoaded = 0, T.loadImage = function (e, a, t, s, i, r) { function n() { r && r() } var o; e.complete && i ? n() : a ? (o = new window.Image, o.onload = n, o.onerror = n, s && (o.sizes = s), t && (o.srcset = t), a && (o.src = a)) : n() }, T.preloadImages = function () { function e() { void 0 !== T && null !== T && T && (void 0 !== T.imagesLoaded && T.imagesLoaded++, T.imagesLoaded === T.imagesToLoad.length && (T.params.updateOnImagesReady && T.update(), T.emit("onImagesReady", T))) } T.imagesToLoad = T.container.find("img"); for (var a = 0; a < T.imagesToLoad.length; a++)T.loadImage(T.imagesToLoad[a], T.imagesToLoad[a].currentSrc || T.imagesToLoad[a].getAttribute("src"), T.imagesToLoad[a].srcset || T.imagesToLoad[a].getAttribute("srcset"), T.imagesToLoad[a].sizes || T.imagesToLoad[a].getAttribute("sizes"), !0, e) }, T.autoplayTimeoutId = void 0, T.autoplaying = !1, T.autoplayPaused = !1, T.startAutoplay = function () { return void 0 === T.autoplayTimeoutId && (!!T.params.autoplay && (!T.autoplaying && (T.autoplaying = !0, T.emit("onAutoplayStart", T), void n()))) }, T.stopAutoplay = function (e) { T.autoplayTimeoutId && (T.autoplayTimeoutId && clearTimeout(T.autoplayTimeoutId), T.autoplaying = !1, T.autoplayTimeoutId = void 0, T.emit("onAutoplayStop", T)) }, T.pauseAutoplay = function (e) { T.autoplayPaused || (T.autoplayTimeoutId && clearTimeout(T.autoplayTimeoutId), T.autoplayPaused = !0, 0 === e ? (T.autoplayPaused = !1, n()) : T.wrapper.transitionEnd(function () { T && (T.autoplayPaused = !1, T.autoplaying ? n() : T.stopAutoplay()) })) }, T.minTranslate = function () { return -T.snapGrid[0] }, T.maxTranslate = function () { return -T.snapGrid[T.snapGrid.length - 1] }, T.updateAutoHeight = function () { var e, a = [], t = 0; if ("auto" !== T.params.slidesPerView && T.params.slidesPerView > 1) for (e = 0; e < Math.ceil(T.params.slidesPerView); e++) { var s = T.activeIndex + e; if (s > T.slides.length) break; a.push(T.slides.eq(s)[0]) } else a.push(T.slides.eq(T.activeIndex)[0]); for (e = 0; e < a.length; e++)if (void 0 !== a[e]) { var i = a[e].offsetHeight; t = i > t ? i : t } t && T.wrapper.css("height", t + "px") }, T.updateContainerSize = function () { var e, a; e = void 0 !== T.params.width ? T.params.width : T.container[0].clientWidth, a = void 0 !== T.params.height ? T.params.height : T.container[0].clientHeight, 0 === e && T.isHorizontal() || 0 === a && !T.isHorizontal() || (e = e - parseInt(T.container.css("padding-left"), 10) - parseInt(T.container.css("padding-right"), 10), a = a - parseInt(T.container.css("padding-top"), 10) - parseInt(T.container.css("padding-bottom"), 10), T.width = e, T.height = a, T.size = T.isHorizontal() ? T.width : T.height) }, T.updateSlidesSize = function () { T.slides = T.wrapper.children("." + T.params.slideClass), T.snapGrid = [], T.slidesGrid = [], T.slidesSizesGrid = []; var e, a = T.params.spaceBetween, t = -T.params.slidesOffsetBefore, s = 0, i = 0; if (void 0 !== T.size) { "string" == typeof a && a.indexOf("%") >= 0 && (a = parseFloat(a.replace("%", "")) / 100 * T.size), T.virtualSize = -a, T.rtl ? T.slides.css({ marginLeft: "", marginTop: "" }) : T.slides.css({ marginRight: "", marginBottom: "" }); var n; T.params.slidesPerColumn > 1 && (n = Math.floor(T.slides.length / T.params.slidesPerColumn) === T.slides.length / T.params.slidesPerColumn ? T.slides.length : Math.ceil(T.slides.length / T.params.slidesPerColumn) * T.params.slidesPerColumn, "auto" !== T.params.slidesPerView && "row" === T.params.slidesPerColumnFill && (n = Math.max(n, T.params.slidesPerView * T.params.slidesPerColumn))); var o, l = T.params.slidesPerColumn, p = n / l, d = p - (T.params.slidesPerColumn * p - T.slides.length); for (e = 0; e < T.slides.length; e++) { o = 0; var u = T.slides.eq(e); if (T.params.slidesPerColumn > 1) { var c, m, h; "column" === T.params.slidesPerColumnFill ? (m = Math.floor(e / l), h = e - m * l, (m > d || m === d && h === l - 1) && ++h >= l && (h = 0, m++), c = m + h * n / l, u.css({ "-webkit-box-ordinal-group": c, "-moz-box-ordinal-group": c, "-ms-flex-order": c, "-webkit-order": c, order: c })) : (h = Math.floor(e / p), m = e - h * p), u.css("margin-" + (T.isHorizontal() ? "top" : "left"), 0 !== h && T.params.spaceBetween && T.params.spaceBetween + "px").attr("data-swiper-column", m).attr("data-swiper-row", h) } "none" !== u.css("display") && ("auto" === T.params.slidesPerView ? (o = T.isHorizontal() ? u.outerWidth(!0) : u.outerHeight(!0), T.params.roundLengths && (o = r(o))) : (o = (T.size - (T.params.slidesPerView - 1) * a) / T.params.slidesPerView, T.params.roundLengths && (o = r(o)), T.isHorizontal() ? T.slides[e].style.width = o + "px" : T.slides[e].style.height = o + "px"), T.slides[e].swiperSlideSize = o, T.slidesSizesGrid.push(o), T.params.centeredSlides ? (t = t + o / 2 + s / 2 + a, 0 === s && 0 !== e && (t = t - T.size / 2 - a), 0 === e && (t = t - T.size / 2 - a), Math.abs(t) < .001 && (t = 0), i % T.params.slidesPerGroup == 0 && T.snapGrid.push(t), T.slidesGrid.push(t)) : (i % T.params.slidesPerGroup == 0 && T.snapGrid.push(t), T.slidesGrid.push(t), t = t + o + a), T.virtualSize += o + a, s = o, i++) } T.virtualSize = Math.max(T.virtualSize, T.size) + T.params.slidesOffsetAfter; var g; if (T.rtl && T.wrongRTL && ("slide" === T.params.effect || "coverflow" === T.params.effect) && T.wrapper.css({ width: T.virtualSize + T.params.spaceBetween + "px" }), T.support.flexbox && !T.params.setWrapperSize || (T.isHorizontal() ? T.wrapper.css({ width: T.virtualSize + T.params.spaceBetween + "px" }) : T.wrapper.css({ height: T.virtualSize + T.params.spaceBetween + "px" })), T.params.slidesPerColumn > 1 && (T.virtualSize = (o + T.params.spaceBetween) * n, T.virtualSize = Math.ceil(T.virtualSize / T.params.slidesPerColumn) - T.params.spaceBetween, T.isHorizontal() ? T.wrapper.css({ width: T.virtualSize + T.params.spaceBetween + "px" }) : T.wrapper.css({ height: T.virtualSize + T.params.spaceBetween + "px" }), T.params.centeredSlides)) { for (g = [], e = 0; e < T.snapGrid.length; e++)T.snapGrid[e] < T.virtualSize + T.snapGrid[0] && g.push(T.snapGrid[e]); T.snapGrid = g } if (!T.params.centeredSlides) { for (g = [], e = 0; e < T.snapGrid.length; e++)T.snapGrid[e] <= T.virtualSize - T.size && g.push(T.snapGrid[e]); T.snapGrid = g, Math.floor(T.virtualSize - T.size) - Math.floor(T.snapGrid[T.snapGrid.length - 1]) > 1 && T.snapGrid.push(T.virtualSize - T.size) } 0 === T.snapGrid.length && (T.snapGrid = [0]), 0 !== T.params.spaceBetween && (T.isHorizontal() ? T.rtl ? T.slides.css({ marginLeft: a + "px" }) : T.slides.css({ marginRight: a + "px" }) : T.slides.css({ marginBottom: a + "px" })), T.params.watchSlidesProgress && T.updateSlidesOffset() } }, T.updateSlidesOffset = function () { for (var e = 0; e < T.slides.length; e++)T.slides[e].swiperSlideOffset = T.isHorizontal() ? T.slides[e].offsetLeft : T.slides[e].offsetTop }, T.currentSlidesPerView = function () { var e, a, t = 1; if (T.params.centeredSlides) { var s, i = T.slides[T.activeIndex].swiperSlideSize; for (e = T.activeIndex + 1; e < T.slides.length; e++)T.slides[e] && !s && (i += T.slides[e].swiperSlideSize, t++, i > T.size && (s = !0)); for (a = T.activeIndex - 1; a >= 0; a--)T.slides[a] && !s && (i += T.slides[a].swiperSlideSize, t++, i > T.size && (s = !0)) } else for (e = T.activeIndex + 1; e < T.slides.length; e++)T.slidesGrid[e] - T.slidesGrid[T.activeIndex] < T.size && t++; return t }, T.updateSlidesProgress = function (e) { if (void 0 === e && (e = T.translate || 0), 0 !== T.slides.length) { void 0 === T.slides[0].swiperSlideOffset && T.updateSlidesOffset(); var a = -e; T.rtl && (a = e), T.slides.removeClass(T.params.slideVisibleClass); for (var t = 0; t < T.slides.length; t++) { var s = T.slides[t], i = (a + (T.params.centeredSlides ? T.minTranslate() : 0) - s.swiperSlideOffset) / (s.swiperSlideSize + T.params.spaceBetween); if (T.params.watchSlidesVisibility) { var r = -(a - s.swiperSlideOffset), n = r + T.slidesSizesGrid[t]; (r >= 0 && r < T.size || n > 0 && n <= T.size || r <= 0 && n >= T.size) && T.slides.eq(t).addClass(T.params.slideVisibleClass) } s.progress = T.rtl ? -i : i } } }, T.updateProgress = function (e) { void 0 === e && (e = T.translate || 0); var a = T.maxTranslate() - T.minTranslate(), t = T.isBeginning, s = T.isEnd; 0 === a ? (T.progress = 0, T.isBeginning = T.isEnd = !0) : (T.progress = (e - T.minTranslate()) / a, T.isBeginning = T.progress <= 0, T.isEnd = T.progress >= 1), T.isBeginning && !t && T.emit("onReachBeginning", T), T.isEnd && !s && T.emit("onReachEnd", T), T.params.watchSlidesProgress && T.updateSlidesProgress(e), T.emit("onProgress", T, T.progress) }, T.updateActiveIndex = function () { var e, a, t, s = T.rtl ? T.translate : -T.translate; for (a = 0; a < T.slidesGrid.length; a++)void 0 !== T.slidesGrid[a + 1] ? s >= T.slidesGrid[a] && s < T.slidesGrid[a + 1] - (T.slidesGrid[a + 1] - T.slidesGrid[a]) / 2 ? e = a : s >= T.slidesGrid[a] && s < T.slidesGrid[a + 1] && (e = a + 1) : s >= T.slidesGrid[a] && (e = a); T.params.normalizeSlideIndex && (e < 0 || void 0 === e) && (e = 0), t = Math.floor(e / T.params.slidesPerGroup), t >= T.snapGrid.length && (t = T.snapGrid.length - 1), e !== T.activeIndex && (T.snapIndex = t, T.previousIndex = T.activeIndex, T.activeIndex = e, T.updateClasses(), T.updateRealIndex()) }, T.updateRealIndex = function () { T.realIndex = parseInt(T.slides.eq(T.activeIndex).attr("data-swiper-slide-index") || T.activeIndex, 10) }, T.updateClasses = function () { T.slides.removeClass(T.params.slideActiveClass + " " + T.params.slideNextClass + " " + T.params.slidePrevClass + " " + T.params.slideDuplicateActiveClass + " " + T.params.slideDuplicateNextClass + " " + T.params.slideDuplicatePrevClass); var a = T.slides.eq(T.activeIndex); a.addClass(T.params.slideActiveClass), i.loop && (a.hasClass(T.params.slideDuplicateClass) ? T.wrapper.children("." + T.params.slideClass + ":not(." + T.params.slideDuplicateClass + ')[data-swiper-slide-index="' + T.realIndex + '"]').addClass(T.params.slideDuplicateActiveClass) : T.wrapper.children("." + T.params.slideClass + "." + T.params.slideDuplicateClass + '[data-swiper-slide-index="' + T.realIndex + '"]').addClass(T.params.slideDuplicateActiveClass)); var t = a.next("." + T.params.slideClass).addClass(T.params.slideNextClass); T.params.loop && 0 === t.length && (t = T.slides.eq(0), t.addClass(T.params.slideNextClass)); var s = a.prev("." + T.params.slideClass).addClass(T.params.slidePrevClass); if (T.params.loop && 0 === s.length && (s = T.slides.eq(-1), s.addClass(T.params.slidePrevClass)), i.loop && (t.hasClass(T.params.slideDuplicateClass) ? T.wrapper.children("." + T.params.slideClass + ":not(." + T.params.slideDuplicateClass + ')[data-swiper-slide-index="' + t.attr("data-swiper-slide-index") + '"]').addClass(T.params.slideDuplicateNextClass) : T.wrapper.children("." + T.params.slideClass + "." + T.params.slideDuplicateClass + '[data-swiper-slide-index="' + t.attr("data-swiper-slide-index") + '"]').addClass(T.params.slideDuplicateNextClass), s.hasClass(T.params.slideDuplicateClass) ? T.wrapper.children("." + T.params.slideClass + ":not(." + T.params.slideDuplicateClass + ')[data-swiper-slide-index="' + s.attr("data-swiper-slide-index") + '"]').addClass(T.params.slideDuplicatePrevClass) : T.wrapper.children("." + T.params.slideClass + "." + T.params.slideDuplicateClass + '[data-swiper-slide-index="' + s.attr("data-swiper-slide-index") + '"]').addClass(T.params.slideDuplicatePrevClass)), T.paginationContainer && T.paginationContainer.length > 0) { var r, n = T.params.loop ? Math.ceil((T.slides.length - 2 * T.loopedSlides) / T.params.slidesPerGroup) : T.snapGrid.length; if (T.params.loop ? (r = Math.ceil((T.activeIndex - T.loopedSlides) / T.params.slidesPerGroup), r > T.slides.length - 1 - 2 * T.loopedSlides && (r -= T.slides.length - 2 * T.loopedSlides), r > n - 1 && (r -= n), r < 0 && "bullets" !== T.params.paginationType && (r = n + r)) : r = void 0 !== T.snapIndex ? T.snapIndex : T.activeIndex || 0, "bullets" === T.params.paginationType && T.bullets && T.bullets.length > 0 && (T.bullets.removeClass(T.params.bulletActiveClass), T.paginationContainer.length > 1 ? T.bullets.each(function () { e(this).index() === r && e(this).addClass(T.params.bulletActiveClass) }) : T.bullets.eq(r).addClass(T.params.bulletActiveClass)), "fraction" === T.params.paginationType && (T.paginationContainer.find("." + T.params.paginationCurrentClass).text(r + 1), T.paginationContainer.find("." + T.params.paginationTotalClass).text(n)), "progress" === T.params.paginationType) { var o = (r + 1) / n, l = o, p = 1; T.isHorizontal() || (p = o, l = 1), T.paginationContainer.find("." + T.params.paginationProgressbarClass).transform("translate3d(0,0,0) scaleX(" + l + ") scaleY(" + p + ")").transition(T.params.speed) } "custom" === T.params.paginationType && T.params.paginationCustomRender && (T.paginationContainer.html(T.params.paginationCustomRender(T, r + 1, n)), T.emit("onPaginationRendered", T, T.paginationContainer[0])) } T.params.loop || (T.params.prevButton && T.prevButton && T.prevButton.length > 0 && (T.isBeginning ? (T.prevButton.addClass(T.params.buttonDisabledClass), T.params.a11y && T.a11y && T.a11y.disable(T.prevButton)) : (T.prevButton.removeClass(T.params.buttonDisabledClass), T.params.a11y && T.a11y && T.a11y.enable(T.prevButton))), T.params.nextButton && T.nextButton && T.nextButton.length > 0 && (T.isEnd ? (T.nextButton.addClass(T.params.buttonDisabledClass), T.params.a11y && T.a11y && T.a11y.disable(T.nextButton)) : (T.nextButton.removeClass(T.params.buttonDisabledClass), T.params.a11y && T.a11y && T.a11y.enable(T.nextButton)))) }, T.updatePagination = function () { if (T.params.pagination && T.paginationContainer && T.paginationContainer.length > 0) { var e = ""; if ("bullets" === T.params.paginationType) { for (var a = T.params.loop ? Math.ceil((T.slides.length - 2 * T.loopedSlides) / T.params.slidesPerGroup) : T.snapGrid.length, t = 0; t < a; t++)e += T.params.paginationBulletRender ? T.params.paginationBulletRender(T, t, T.params.bulletClass) : "<" + T.params.paginationElement + ' class="' + T.params.bulletClass + '"></' + T.params.paginationElement + ">"; T.paginationContainer.html(e), T.bullets = T.paginationContainer.find("." + T.params.bulletClass), T.params.paginationClickable && T.params.a11y && T.a11y && T.a11y.initPagination() } "fraction" === T.params.paginationType && (e = T.params.paginationFractionRender ? T.params.paginationFractionRender(T, T.params.paginationCurrentClass, T.params.paginationTotalClass) : '<span class="' + T.params.paginationCurrentClass + '"></span> / <span class="' + T.params.paginationTotalClass + '"></span>', T.paginationContainer.html(e)), "progress" === T.params.paginationType && (e = T.params.paginationProgressRender ? T.params.paginationProgressRender(T, T.params.paginationProgressbarClass) : '<span class="' + T.params.paginationProgressbarClass + '"></span>', T.paginationContainer.html(e)), "custom" !== T.params.paginationType && T.emit("onPaginationRendered", T, T.paginationContainer[0]) } }, T.update = function (e) { function a() { T.rtl, T.translate; t = Math.min(Math.max(T.translate, T.maxTranslate()), T.minTranslate()), T.setWrapperTranslate(t), T.updateActiveIndex(), T.updateClasses() } if (T) { T.updateContainerSize(), T.updateSlidesSize(), T.updateProgress(), T.updatePagination(), T.updateClasses(), T.params.scrollbar && T.scrollbar && T.scrollbar.set(); var t; if (e) { T.controller && T.controller.spline && (T.controller.spline = void 0), T.params.freeMode ? (a(), T.params.autoHeight && T.updateAutoHeight()) : (("auto" === T.params.slidesPerView || T.params.slidesPerView > 1) && T.isEnd && !T.params.centeredSlides ? T.slideTo(T.slides.length - 1, 0, !1, !0) : T.slideTo(T.activeIndex, 0, !1, !0)) || a() } else T.params.autoHeight && T.updateAutoHeight() } }, T.onResize = function (e) { T.params.onBeforeResize && T.params.onBeforeResize(T), T.params.breakpoints && T.setBreakpoint(); var a = T.params.allowSwipeToPrev, t = T.params.allowSwipeToNext; T.params.allowSwipeToPrev = T.params.allowSwipeToNext = !0, T.updateContainerSize(), T.updateSlidesSize(), ("auto" === T.params.slidesPerView || T.params.freeMode || e) && T.updatePagination(), T.params.scrollbar && T.scrollbar && T.scrollbar.set(), T.controller && T.controller.spline && (T.controller.spline = void 0); var s = !1; if (T.params.freeMode) { var i = Math.min(Math.max(T.translate, T.maxTranslate()), T.minTranslate()); T.setWrapperTranslate(i), T.updateActiveIndex(), T.updateClasses(), T.params.autoHeight && T.updateAutoHeight() } else T.updateClasses(), s = ("auto" === T.params.slidesPerView || T.params.slidesPerView > 1) && T.isEnd && !T.params.centeredSlides ? T.slideTo(T.slides.length - 1, 0, !1, !0) : T.slideTo(T.activeIndex, 0, !1, !0); T.params.lazyLoading && !s && T.lazy && T.lazy.load(), T.params.allowSwipeToPrev = a, T.params.allowSwipeToNext = t, T.params.onAfterResize && T.params.onAfterResize(T) }, T.touchEventsDesktop = { start: "mousedown", move: "mousemove", end: "mouseup" }, window.navigator.pointerEnabled ? T.touchEventsDesktop = { start: "pointerdown", move: "pointermove", end: "pointerup" } : window.navigator.msPointerEnabled && (T.touchEventsDesktop = { start: "MSPointerDown", move: "MSPointerMove", end: "MSPointerUp" }), T.touchEvents = { start: T.support.touch || !T.params.simulateTouch ? "touchstart" : T.touchEventsDesktop.start, move: T.support.touch || !T.params.simulateTouch ? "touchmove" : T.touchEventsDesktop.move, end: T.support.touch || !T.params.simulateTouch ? "touchend" : T.touchEventsDesktop.end }, (window.navigator.pointerEnabled || window.navigator.msPointerEnabled) && ("container" === T.params.touchEventsTarget ? T.container : T.wrapper).addClass("swiper-wp8-" + T.params.direction), T.initEvents = function (e) { var a = e ? "off" : "on", t = e ? "removeEventListener" : "addEventListener", s = "container" === T.params.touchEventsTarget ? T.container[0] : T.wrapper[0], r = T.support.touch ? s : document, n = !!T.params.nested; if (T.browser.ie) s[t](T.touchEvents.start, T.onTouchStart, !1), r[t](T.touchEvents.move, T.onTouchMove, n), r[t](T.touchEvents.end, T.onTouchEnd, !1); else { if (T.support.touch) { var o = !("touchstart" !== T.touchEvents.start || !T.support.passiveListener || !T.params.passiveListeners) && { passive: !0, capture: !1 }; s[t](T.touchEvents.start, T.onTouchStart, o), s[t](T.touchEvents.move, T.onTouchMove, n), s[t](T.touchEvents.end, T.onTouchEnd, o) } (i.simulateTouch && !T.device.ios && !T.device.android || i.simulateTouch && !T.support.touch && T.device.ios) && (s[t]("mousedown", T.onTouchStart, !1), document[t]("mousemove", T.onTouchMove, n), document[t]("mouseup", T.onTouchEnd, !1)) } window[t]("resize", T.onResize), T.params.nextButton && T.nextButton && T.nextButton.length > 0 && (T.nextButton[a]("click", T.onClickNext), T.params.a11y && T.a11y && T.nextButton[a]("keydown", T.a11y.onEnterKey)), T.params.prevButton && T.prevButton && T.prevButton.length > 0 && (T.prevButton[a]("click", T.onClickPrev), T.params.a11y && T.a11y && T.prevButton[a]("keydown", T.a11y.onEnterKey)), T.params.pagination && T.params.paginationClickable && (T.paginationContainer[a]("click", "." + T.params.bulletClass, T.onClickIndex), T.params.a11y && T.a11y && T.paginationContainer[a]("keydown", "." + T.params.bulletClass, T.a11y.onEnterKey)), (T.params.preventClicks || T.params.preventClicksPropagation) && s[t]("click", T.preventClicks, !0) }, T.attachEvents = function () { T.initEvents() }, T.detachEvents = function () { T.initEvents(!0) }, T.allowClick = !0, T.preventClicks = function (e) { T.allowClick || (T.params.preventClicks && e.preventDefault(), T.params.preventClicksPropagation && T.animating && (e.stopPropagation(), e.stopImmediatePropagation())) }, T.onClickNext = function (e) { e.preventDefault(), T.isEnd && !T.params.loop || T.slideNext() }, T.onClickPrev = function (e) { e.preventDefault(), T.isBeginning && !T.params.loop || T.slidePrev() }, T.onClickIndex = function (a) { a.preventDefault(); var t = e(this).index() * T.params.slidesPerGroup; T.params.loop && (t += T.loopedSlides), T.slideTo(t) }, T.updateClickedSlide = function (a) { var t = o(a, "." + T.params.slideClass), s = !1; if (t) for (var i = 0; i < T.slides.length; i++)T.slides[i] === t && (s = !0); if (!t || !s) return T.clickedSlide = void 0, void (T.clickedIndex = void 0); if (T.clickedSlide = t, T.clickedIndex = e(t).index(), T.params.slideToClickedSlide && void 0 !== T.clickedIndex && T.clickedIndex !== T.activeIndex) { var r, n = T.clickedIndex, l = "auto" === T.params.slidesPerView ? T.currentSlidesPerView() : T.params.slidesPerView; if (T.params.loop) { if (T.animating) return; r = parseInt(e(T.clickedSlide).attr("data-swiper-slide-index"), 10), T.params.centeredSlides ? n < T.loopedSlides - l / 2 || n > T.slides.length - T.loopedSlides + l / 2 ? (T.fixLoop(), n = T.wrapper.children("." + T.params.slideClass + '[data-swiper-slide-index="' + r + '"]:not(.' + T.params.slideDuplicateClass + ")").eq(0).index(), setTimeout(function () { T.slideTo(n) }, 0)) : T.slideTo(n) : n > T.slides.length - l ? (T.fixLoop(), n = T.wrapper.children("." + T.params.slideClass + '[data-swiper-slide-index="' + r + '"]:not(.' + T.params.slideDuplicateClass + ")").eq(0).index(), setTimeout(function () { T.slideTo(n) }, 0)) : T.slideTo(n) } else T.slideTo(n) } }; var S, C, z, M, E, P, I, k, L, D, B = "input, select, textarea, button, video", H = Date.now(), G = []; T.animating = !1, T.touches = { startX: 0, startY: 0, currentX: 0, currentY: 0, diff: 0 }; var X, A; T.onTouchStart = function (a) { if (a.originalEvent && (a = a.originalEvent), (X = "touchstart" === a.type) || !("which" in a) || 3 !== a.which) { if (T.params.noSwiping && o(a, "." + T.params.noSwipingClass)) return void (T.allowClick = !0); if (!T.params.swipeHandler || o(a, T.params.swipeHandler)) { var t = T.touches.currentX = "touchstart" === a.type ? a.targetTouches[0].pageX : a.pageX, s = T.touches.currentY = "touchstart" === a.type ? a.targetTouches[0].pageY : a.pageY; if (!(T.device.ios && T.params.iOSEdgeSwipeDetection && t <= T.params.iOSEdgeSwipeThreshold)) { if (S = !0, C = !1, z = !0, E = void 0, A = void 0, T.touches.startX = t, T.touches.startY = s, M = Date.now(), T.allowClick = !0, T.updateContainerSize(), T.swipeDirection = void 0, T.params.threshold > 0 && (k = !1), "touchstart" !== a.type) { var i = !0; e(a.target).is(B) && (i = !1), document.activeElement && e(document.activeElement).is(B) && document.activeElement.blur(), i && a.preventDefault() } T.emit("onTouchStart", T, a) } } } }, T.onTouchMove = function (a) { if (a.originalEvent && (a = a.originalEvent), !X || "mousemove" !== a.type) { if (a.preventedByNestedSwiper) return T.touches.startX = "touchmove" === a.type ? a.targetTouches[0].pageX : a.pageX, void (T.touches.startY = "touchmove" === a.type ? a.targetTouches[0].pageY : a.pageY); if (T.params.onlyExternal) return T.allowClick = !1, void (S && (T.touches.startX = T.touches.currentX = "touchmove" === a.type ? a.targetTouches[0].pageX : a.pageX, T.touches.startY = T.touches.currentY = "touchmove" === a.type ? a.targetTouches[0].pageY : a.pageY, M = Date.now())); if (X && T.params.touchReleaseOnEdges && !T.params.loop) if (T.isHorizontal()) { if (T.touches.currentX < T.touches.startX && T.translate <= T.maxTranslate() || T.touches.currentX > T.touches.startX && T.translate >= T.minTranslate()) return } else if (T.touches.currentY < T.touches.startY && T.translate <= T.maxTranslate() || T.touches.currentY > T.touches.startY && T.translate >= T.minTranslate()) return; if (X && document.activeElement && a.target === document.activeElement && e(a.target).is(B)) return C = !0, void (T.allowClick = !1); if (z && T.emit("onTouchMove", T, a), !(a.targetTouches && a.targetTouches.length > 1)) { if (T.touches.currentX = "touchmove" === a.type ? a.targetTouches[0].pageX : a.pageX, T.touches.currentY = "touchmove" === a.type ? a.targetTouches[0].pageY : a.pageY, void 0 === E) { var t; T.isHorizontal() && T.touches.currentY === T.touches.startY || !T.isHorizontal() && T.touches.currentX === T.touches.startX ? E = !1 : (t = 180 * Math.atan2(Math.abs(T.touches.currentY - T.touches.startY), Math.abs(T.touches.currentX - T.touches.startX)) / Math.PI, E = T.isHorizontal() ? t > T.params.touchAngle : 90 - t > T.params.touchAngle) } if (E && T.emit("onTouchMoveOpposite", T, a), void 0 === A && (T.touches.currentX === T.touches.startX && T.touches.currentY === T.touches.startY || (A = !0)), S) { if (E) return void (S = !1); if (A) { T.allowClick = !1, T.emit("onSliderMove", T, a), a.preventDefault(), T.params.touchMoveStopPropagation && !T.params.nested && a.stopPropagation(), C || (i.loop && T.fixLoop(), I = T.getWrapperTranslate(), T.setWrapperTransition(0), T.animating && T.wrapper.trigger("webkitTransitionEnd transitionend oTransitionEnd MSTransitionEnd msTransitionEnd"), T.params.autoplay && T.autoplaying && (T.params.autoplayDisableOnInteraction ? T.stopAutoplay() : T.pauseAutoplay()), D = !1, !T.params.grabCursor || T.params.allowSwipeToNext !== !0 && T.params.allowSwipeToPrev !== !0 || T.setGrabCursor(!0)), C = !0; var s = T.touches.diff = T.isHorizontal() ? T.touches.currentX - T.touches.startX : T.touches.currentY - T.touches.startY; s *= T.params.touchRatio, T.rtl && (s = -s), T.swipeDirection = s > 0 ? "prev" : "next", P = s + I; var r = !0; if (s > 0 && P > T.minTranslate() ? (r = !1, T.params.resistance && (P = T.minTranslate() - 1 + Math.pow(-T.minTranslate() + I + s, T.params.resistanceRatio))) : s < 0 && P < T.maxTranslate() && (r = !1, T.params.resistance && (P = T.maxTranslate() + 1 - Math.pow(T.maxTranslate() - I - s, T.params.resistanceRatio))), r && (a.preventedByNestedSwiper = !0), !T.params.allowSwipeToNext && "next" === T.swipeDirection && P < I && (P = I), !T.params.allowSwipeToPrev && "prev" === T.swipeDirection && P > I && (P = I), T.params.threshold > 0) { if (!(Math.abs(s) > T.params.threshold || k)) return void (P = I); if (!k) return k = !0, T.touches.startX = T.touches.currentX, T.touches.startY = T.touches.currentY, P = I, void (T.touches.diff = T.isHorizontal() ? T.touches.currentX - T.touches.startX : T.touches.currentY - T.touches.startY) } T.params.followFinger && ((T.params.freeMode || T.params.watchSlidesProgress) && T.updateActiveIndex(), T.params.freeMode && (0 === G.length && G.push({ position: T.touches[T.isHorizontal() ? "startX" : "startY"], time: M }), G.push({ position: T.touches[T.isHorizontal() ? "currentX" : "currentY"], time: (new window.Date).getTime() })), T.updateProgress(P), T.setWrapperTranslate(P)) } } } } }, T.onTouchEnd = function (a) { if (a.originalEvent && (a = a.originalEvent), z && T.emit("onTouchEnd", T, a), z = !1, S) { T.params.grabCursor && C && S && (T.params.allowSwipeToNext === !0 || T.params.allowSwipeToPrev === !0) && T.setGrabCursor(!1); var t = Date.now(), s = t - M; if (T.allowClick && (T.updateClickedSlide(a), T.emit("onTap", T, a), s < 300 && t - H > 300 && (L && clearTimeout(L), L = setTimeout(function () { T && (T.params.paginationHide && T.paginationContainer.length > 0 && !e(a.target).hasClass(T.params.bulletClass) && T.paginationContainer.toggleClass(T.params.paginationHiddenClass), T.emit("onClick", T, a)) }, 300)), s < 300 && t - H < 300 && (L && clearTimeout(L), T.emit("onDoubleTap", T, a))), H = Date.now(), setTimeout(function () { T && (T.allowClick = !0) }, 0), !S || !C || !T.swipeDirection || 0 === T.touches.diff || P === I) return void (S = C = !1); S = C = !1; var i; if (i = T.params.followFinger ? T.rtl ? T.translate : -T.translate : -P, T.params.freeMode) { if (i < -T.minTranslate()) return void T.slideTo(T.activeIndex); if (i > -T.maxTranslate()) return void (T.slides.length < T.snapGrid.length ? T.slideTo(T.snapGrid.length - 1) : T.slideTo(T.slides.length - 1)); if (T.params.freeModeMomentum) { if (G.length > 1) { var r = G.pop(), n = G.pop(), o = r.position - n.position, l = r.time - n.time; T.velocity = o / l, T.velocity = T.velocity / 2, Math.abs(T.velocity) < T.params.freeModeMinimumVelocity && (T.velocity = 0), (l > 150 || (new window.Date).getTime() - r.time > 300) && (T.velocity = 0) } else T.velocity = 0; T.velocity = T.velocity * T.params.freeModeMomentumVelocityRatio, G.length = 0; var p = 1e3 * T.params.freeModeMomentumRatio, d = T.velocity * p, u = T.translate + d; T.rtl && (u = -u); var c, m = !1, h = 20 * Math.abs(T.velocity) * T.params.freeModeMomentumBounceRatio; if (u < T.maxTranslate()) T.params.freeModeMomentumBounce ? (u + T.maxTranslate() < -h && (u = T.maxTranslate() - h), c = T.maxTranslate(), m = !0, D = !0) : u = T.maxTranslate(); else if (u > T.minTranslate()) T.params.freeModeMomentumBounce ? (u - T.minTranslate() > h && (u = T.minTranslate() + h), c = T.minTranslate(), m = !0, D = !0) : u = T.minTranslate(); else if (T.params.freeModeSticky) { var g, f = 0; for (f = 0; f < T.snapGrid.length; f += 1)if (T.snapGrid[f] > -u) { g = f; break } u = Math.abs(T.snapGrid[g] - u) < Math.abs(T.snapGrid[g - 1] - u) || "next" === T.swipeDirection ? T.snapGrid[g] : T.snapGrid[g - 1], T.rtl || (u = -u) } if (0 !== T.velocity) p = T.rtl ? Math.abs((-u - T.translate) / T.velocity) : Math.abs((u - T.translate) / T.velocity); else if (T.params.freeModeSticky) return void T.slideReset(); T.params.freeModeMomentumBounce && m ? (T.updateProgress(c), T.setWrapperTransition(p), T.setWrapperTranslate(u), T.onTransitionStart(), T.animating = !0, T.wrapper.transitionEnd(function () { T && D && (T.emit("onMomentumBounce", T), T.setWrapperTransition(T.params.speed), T.setWrapperTranslate(c), T.wrapper.transitionEnd(function () { T && T.onTransitionEnd() })) })) : T.velocity ? (T.updateProgress(u), T.setWrapperTransition(p), T.setWrapperTranslate(u), T.onTransitionStart(), T.animating || (T.animating = !0, T.wrapper.transitionEnd(function () { T && T.onTransitionEnd() }))) : T.updateProgress(u), T.updateActiveIndex() } return void ((!T.params.freeModeMomentum || s >= T.params.longSwipesMs) && (T.updateProgress(), T.updateActiveIndex())) } var v, w = 0, y = T.slidesSizesGrid[0]; for (v = 0; v < T.slidesGrid.length; v += T.params.slidesPerGroup)void 0 !== T.slidesGrid[v + T.params.slidesPerGroup] ? i >= T.slidesGrid[v] && i < T.slidesGrid[v + T.params.slidesPerGroup] && (w = v, y = T.slidesGrid[v + T.params.slidesPerGroup] - T.slidesGrid[v]) : i >= T.slidesGrid[v] && (w = v, y = T.slidesGrid[T.slidesGrid.length - 1] - T.slidesGrid[T.slidesGrid.length - 2]); var x = (i - T.slidesGrid[w]) / y; if (s > T.params.longSwipesMs) { if (!T.params.longSwipes) return void T.slideTo(T.activeIndex); "next" === T.swipeDirection && (x >= T.params.longSwipesRatio ? T.slideTo(w + T.params.slidesPerGroup) : T.slideTo(w)), "prev" === T.swipeDirection && (x > 1 - T.params.longSwipesRatio ? T.slideTo(w + T.params.slidesPerGroup) : T.slideTo(w)) } else { if (!T.params.shortSwipes) return void T.slideTo(T.activeIndex); "next" === T.swipeDirection && T.slideTo(w + T.params.slidesPerGroup), "prev" === T.swipeDirection && T.slideTo(w) } } }, T._slideTo = function (e, a) { return T.slideTo(e, a, !0, !0) }, T.slideTo = function (e, a, t, s) { void 0 === t && (t = !0), void 0 === e && (e = 0), e < 0 && (e = 0), T.snapIndex = Math.floor(e / T.params.slidesPerGroup), T.snapIndex >= T.snapGrid.length && (T.snapIndex = T.snapGrid.length - 1); var i = -T.snapGrid[T.snapIndex]; if (T.params.autoplay && T.autoplaying && (s || !T.params.autoplayDisableOnInteraction ? T.pauseAutoplay(a) : T.stopAutoplay()), T.updateProgress(i), T.params.normalizeSlideIndex) for (var r = 0; r < T.slidesGrid.length; r++)-Math.floor(100 * i) >= Math.floor(100 * T.slidesGrid[r]) && (e = r); return !(!T.params.allowSwipeToNext && i < T.translate && i < T.minTranslate()) && (!(!T.params.allowSwipeToPrev && i > T.translate && i > T.maxTranslate() && (T.activeIndex || 0) !== e) && (void 0 === a && (a = T.params.speed), T.previousIndex = T.activeIndex || 0, T.activeIndex = e, T.updateRealIndex(), T.rtl && -i === T.translate || !T.rtl && i === T.translate ? (T.params.autoHeight && T.updateAutoHeight(), T.updateClasses(), "slide" !== T.params.effect && T.setWrapperTranslate(i), !1) : (T.updateClasses(), T.onTransitionStart(t), 0 === a || T.browser.lteIE9 ? (T.setWrapperTranslate(i), T.setWrapperTransition(0), T.onTransitionEnd(t)) : (T.setWrapperTranslate(i), T.setWrapperTransition(a), T.animating || (T.animating = !0, T.wrapper.transitionEnd(function () { T && T.onTransitionEnd(t) }))), !0))) }, T.onTransitionStart = function (e) { void 0 === e && (e = !0), T.params.autoHeight && T.updateAutoHeight(), T.lazy && T.lazy.onTransitionStart(), e && (T.emit("onTransitionStart", T), T.activeIndex !== T.previousIndex && (T.emit("onSlideChangeStart", T), T.activeIndex > T.previousIndex ? T.emit("onSlideNextStart", T) : T.emit("onSlidePrevStart", T))) }, T.onTransitionEnd = function (e) { T.animating = !1, T.setWrapperTransition(0), void 0 === e && (e = !0), T.lazy && T.lazy.onTransitionEnd(), e && (T.emit("onTransitionEnd", T), T.activeIndex !== T.previousIndex && (T.emit("onSlideChangeEnd", T), T.activeIndex > T.previousIndex ? T.emit("onSlideNextEnd", T) : T.emit("onSlidePrevEnd", T))), T.params.history && T.history && T.history.setHistory(T.params.history, T.activeIndex), T.params.hashnav && T.hashnav && T.hashnav.setHash() }, T.slideNext = function (e, a, t) { if (T.params.loop) { if (T.animating) return !1; T.fixLoop(); T.container[0].clientLeft; return T.slideTo(T.activeIndex + T.params.slidesPerGroup, a, e, t) } return T.slideTo(T.activeIndex + T.params.slidesPerGroup, a, e, t) }, T._slideNext = function (e) { return T.slideNext(!0, e, !0) }, T.slidePrev = function (e, a, t) { if (T.params.loop) { if (T.animating) return !1; T.fixLoop(); T.container[0].clientLeft; return T.slideTo(T.activeIndex - 1, a, e, t) } return T.slideTo(T.activeIndex - 1, a, e, t) }, T._slidePrev = function (e) { return T.slidePrev(!0, e, !0) }, T.slideReset = function (e, a, t) { return T.slideTo(T.activeIndex, a, e) }, T.disableTouchControl = function () { return T.params.onlyExternal = !0, !0 }, T.enableTouchControl = function () { return T.params.onlyExternal = !1, !0 }, T.setWrapperTransition = function (e, a) { T.wrapper.transition(e), "slide" !== T.params.effect && T.effects[T.params.effect] && T.effects[T.params.effect].setTransition(e), T.params.parallax && T.parallax && T.parallax.setTransition(e), T.params.scrollbar && T.scrollbar && T.scrollbar.setTransition(e), T.params.control && T.controller && T.controller.setTransition(e, a), T.emit("onSetTransition", T, e) }, T.setWrapperTranslate = function (e, a, t) { var s = 0, i = 0; T.isHorizontal() ? s = T.rtl ? -e : e : i = e, T.params.roundLengths && (s = r(s), i = r(i)), T.params.virtualTranslate || (T.support.transforms3d ? T.wrapper.transform("translate3d(" + s + "px, " + i + "px, 0px)") : T.wrapper.transform("translate(" + s + "px, " + i + "px)")), T.translate = T.isHorizontal() ? s : i; var n, o = T.maxTranslate() - T.minTranslate(); n = 0 === o ? 0 : (e - T.minTranslate()) / o, n !== T.progress && T.updateProgress(e), a && T.updateActiveIndex(), "slide" !== T.params.effect && T.effects[T.params.effect] && T.effects[T.params.effect].setTranslate(T.translate), T.params.parallax && T.parallax && T.parallax.setTranslate(T.translate), T.params.scrollbar && T.scrollbar && T.scrollbar.setTranslate(T.translate), T.params.control && T.controller && T.controller.setTranslate(T.translate, t), T.emit("onSetTranslate", T, T.translate) }, T.getTranslate = function (e, a) { var t, s, i, r; return void 0 === a && (a = "x"), T.params.virtualTranslate ? T.rtl ? -T.translate : T.translate : (i = window.getComputedStyle(e, null), window.WebKitCSSMatrix ? (s = i.transform || i.webkitTransform, s.split(",").length > 6 && (s = s.split(", ").map(function (e) { return e.replace(",", ".") }).join(", ")), r = new window.WebKitCSSMatrix("none" === s ? "" : s)) : (r = i.MozTransform || i.OTransform || i.MsTransform || i.msTransform || i.transform || i.getPropertyValue("transform").replace("translate(", "matrix(1, 0, 0, 1,"), t = r.toString().split(",")), "x" === a && (s = window.WebKitCSSMatrix ? r.m41 : 16 === t.length ? parseFloat(t[12]) : parseFloat(t[4])), "y" === a && (s = window.WebKitCSSMatrix ? r.m42 : 16 === t.length ? parseFloat(t[13]) : parseFloat(t[5])), T.rtl && s && (s = -s), s || 0) }, T.getWrapperTranslate = function (e) { return void 0 === e && (e = T.isHorizontal() ? "x" : "y"), T.getTranslate(T.wrapper[0], e) }, T.observers = [], T.initObservers = function () { if (T.params.observeParents) for (var e = T.container.parents(), a = 0; a < e.length; a++)l(e[a]); l(T.container[0], { childList: !1 }), l(T.wrapper[0], { attributes: !1 }) }, T.disconnectObservers = function () { for (var e = 0; e < T.observers.length; e++)T.observers[e].disconnect(); T.observers = [] }, T.createLoop = function () { T.wrapper.children("." + T.params.slideClass + "." + T.params.slideDuplicateClass).remove(); var a = T.wrapper.children("." + T.params.slideClass); "auto" !== T.params.slidesPerView || T.params.loopedSlides || (T.params.loopedSlides = a.length), T.loopedSlides = parseInt(T.params.loopedSlides || T.params.slidesPerView, 10), T.loopedSlides = T.loopedSlides + T.params.loopAdditionalSlides, T.loopedSlides > a.length && (T.loopedSlides = a.length); var t, s = [], i = []; for (a.each(function (t, r) { var n = e(this); t < T.loopedSlides && i.push(r), t < a.length && t >= a.length - T.loopedSlides && s.push(r), n.attr("data-swiper-slide-index", t) }), t = 0; t < i.length; t++)T.wrapper.append(e(i[t].cloneNode(!0)).addClass(T.params.slideDuplicateClass)); for (t = s.length - 1; t >= 0; t--)T.wrapper.prepend(e(s[t].cloneNode(!0)).addClass(T.params.slideDuplicateClass)) }, T.destroyLoop = function () { T.wrapper.children("." + T.params.slideClass + "." + T.params.slideDuplicateClass).remove(), T.slides.removeAttr("data-swiper-slide-index") }, T.reLoop = function (e) { var a = T.activeIndex - T.loopedSlides; T.destroyLoop(), T.createLoop(), T.updateSlidesSize(), e && T.slideTo(a + T.loopedSlides, 0, !1) }, T.fixLoop = function () { var e; T.activeIndex < T.loopedSlides ? (e = T.slides.length - 3 * T.loopedSlides + T.activeIndex, e += T.loopedSlides, T.slideTo(e, 0, !1, !0)) : ("auto" === T.params.slidesPerView && T.activeIndex >= 2 * T.loopedSlides || T.activeIndex > T.slides.length - 2 * T.params.slidesPerView) && (e = -T.slides.length + T.activeIndex + T.loopedSlides, e += T.loopedSlides, T.slideTo(e, 0, !1, !0)) }, T.appendSlide = function (e) { if (T.params.loop && T.destroyLoop(), "object" == typeof e && e.length) for (var a = 0; a < e.length; a++)e[a] && T.wrapper.append(e[a]); else T.wrapper.append(e); T.params.loop && T.createLoop(), T.params.observer && T.support.observer || T.update(!0) }, T.prependSlide = function (e) { T.params.loop && T.destroyLoop(); var a = T.activeIndex + 1; if ("object" == typeof e && e.length) { for (var t = 0; t < e.length; t++)e[t] && T.wrapper.prepend(e[t]); a = T.activeIndex + e.length } else T.wrapper.prepend(e); T.params.loop && T.createLoop(), T.params.observer && T.support.observer || T.update(!0), T.slideTo(a, 0, !1) }, T.removeSlide = function (e) { T.params.loop && (T.destroyLoop(), T.slides = T.wrapper.children("." + T.params.slideClass)); var a, t = T.activeIndex; if ("object" == typeof e && e.length) { for (var s = 0; s < e.length; s++)a = e[s], T.slides[a] && T.slides.eq(a).remove(), a < t && t--; t = Math.max(t, 0) } else a = e, T.slides[a] && T.slides.eq(a).remove(), a < t && t--, t = Math.max(t, 0); T.params.loop && T.createLoop(), T.params.observer && T.support.observer || T.update(!0), T.params.loop ? T.slideTo(t + T.loopedSlides, 0, !1) : T.slideTo(t, 0, !1) }, T.removeAllSlides = function () { for (var e = [], a = 0; a < T.slides.length; a++)e.push(a); T.removeSlide(e) }, T.effects = { fade: { setTranslate: function () { for (var e = 0; e < T.slides.length; e++) { var a = T.slides.eq(e), t = a[0].swiperSlideOffset, s = -t; T.params.virtualTranslate || (s -= T.translate); var i = 0; T.isHorizontal() || (i = s, s = 0); var r = T.params.fade.crossFade ? Math.max(1 - Math.abs(a[0].progress), 0) : 1 + Math.min(Math.max(a[0].progress, -1), 0); a.css({ opacity: r }).transform("translate3d(" + s + "px, " + i + "px, 0px)") } }, setTransition: function (e) { if (T.slides.transition(e), T.params.virtualTranslate && 0 !== e) { var a = !1; T.slides.transitionEnd(function () { if (!a && T) { a = !0, T.animating = !1; for (var e = ["webkitTransitionEnd", "transitionend", "oTransitionEnd", "MSTransitionEnd", "msTransitionEnd"], t = 0; t < e.length; t++)T.wrapper.trigger(e[t]) } }) } } }, flip: { setTranslate: function () { for (var a = 0; a < T.slides.length; a++) { var t = T.slides.eq(a), s = t[0].progress; T.params.flip.limitRotation && (s = Math.max(Math.min(t[0].progress, 1), -1)); var i = t[0].swiperSlideOffset, r = -180 * s, n = r, o = 0, l = -i, p = 0; if (T.isHorizontal() ? T.rtl && (n = -n) : (p = l, l = 0, o = -n, n = 0), t[0].style.zIndex = -Math.abs(Math.round(s)) + T.slides.length, T.params.flip.slideShadows) { var d = T.isHorizontal() ? t.find(".swiper-slide-shadow-left") : t.find(".swiper-slide-shadow-top"), u = T.isHorizontal() ? t.find(".swiper-slide-shadow-right") : t.find(".swiper-slide-shadow-bottom"); 0 === d.length && (d = e('<div class="swiper-slide-shadow-' + (T.isHorizontal() ? "left" : "top") + '"></div>'), t.append(d)), 0 === u.length && (u = e('<div class="swiper-slide-shadow-' + (T.isHorizontal() ? "right" : "bottom") + '"></div>'), t.append(u)), d.length && (d[0].style.opacity = Math.max(-s, 0)), u.length && (u[0].style.opacity = Math.max(s, 0)) } t.transform("translate3d(" + l + "px, " + p + "px, 0px) rotateX(" + o + "deg) rotateY(" + n + "deg)") } }, setTransition: function (a) { if (T.slides.transition(a).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(a), T.params.virtualTranslate && 0 !== a) { var t = !1; T.slides.eq(T.activeIndex).transitionEnd(function () { if (!t && T && e(this).hasClass(T.params.slideActiveClass)) { t = !0, T.animating = !1; for (var a = ["webkitTransitionEnd", "transitionend", "oTransitionEnd", "MSTransitionEnd", "msTransitionEnd"], s = 0; s < a.length; s++)T.wrapper.trigger(a[s]) } }) } } }, cube: { setTranslate: function () { var a, t = 0; T.params.cube.shadow && (T.isHorizontal() ? (a = T.wrapper.find(".swiper-cube-shadow"), 0 === a.length && (a = e('<div class="swiper-cube-shadow"></div>'), T.wrapper.append(a)), a.css({ height: T.width + "px" })) : (a = T.container.find(".swiper-cube-shadow"), 0 === a.length && (a = e('<div class="swiper-cube-shadow"></div>'), T.container.append(a)))); for (var s = 0; s < T.slides.length; s++) { var i = T.slides.eq(s), r = 90 * s, n = Math.floor(r / 360); T.rtl && (r = -r, n = Math.floor(-r / 360)); var o = Math.max(Math.min(i[0].progress, 1), -1), l = 0, p = 0, d = 0; s % 4 == 0 ? (l = 4 * -n * T.size, d = 0) : (s - 1) % 4 == 0 ? (l = 0, d = 4 * -n * T.size) : (s - 2) % 4 == 0 ? (l = T.size + 4 * n * T.size, d = T.size) : (s - 3) % 4 == 0 && (l = -T.size, d = 3 * T.size + 4 * T.size * n), T.rtl && (l = -l), T.isHorizontal() || (p = l, l = 0); var u = "rotateX(" + (T.isHorizontal() ? 0 : -r) + "deg) rotateY(" + (T.isHorizontal() ? r : 0) + "deg) translate3d(" + l + "px, " + p + "px, " + d + "px)"; if (o <= 1 && o > -1 && (t = 90 * s + 90 * o, T.rtl && (t = 90 * -s - 90 * o)), i.transform(u), T.params.cube.slideShadows) { var c = T.isHorizontal() ? i.find(".swiper-slide-shadow-left") : i.find(".swiper-slide-shadow-top"), m = T.isHorizontal() ? i.find(".swiper-slide-shadow-right") : i.find(".swiper-slide-shadow-bottom"); 0 === c.length && (c = e('<div class="swiper-slide-shadow-' + (T.isHorizontal() ? "left" : "top") + '"></div>'), i.append(c)), 0 === m.length && (m = e('<div class="swiper-slide-shadow-' + (T.isHorizontal() ? "right" : "bottom") + '"></div>'), i.append(m)), c.length && (c[0].style.opacity = Math.max(-o, 0)), m.length && (m[0].style.opacity = Math.max(o, 0)) } } if (T.wrapper.css({ "-webkit-transform-origin": "50% 50% -" + T.size / 2 + "px", "-moz-transform-origin": "50% 50% -" + T.size / 2 + "px", "-ms-transform-origin": "50% 50% -" + T.size / 2 + "px", "transform-origin": "50% 50% -" + T.size / 2 + "px" }), T.params.cube.shadow) if (T.isHorizontal()) a.transform("translate3d(0px, " + (T.width / 2 + T.params.cube.shadowOffset) + "px, " + -T.width / 2 + "px) rotateX(90deg) rotateZ(0deg) scale(" + T.params.cube.shadowScale + ")"); else { var h = Math.abs(t) - 90 * Math.floor(Math.abs(t) / 90), g = 1.5 - (Math.sin(2 * h * Math.PI / 360) / 2 + Math.cos(2 * h * Math.PI / 360) / 2), f = T.params.cube.shadowScale, v = T.params.cube.shadowScale / g, w = T.params.cube.shadowOffset; a.transform("scale3d(" + f + ", 1, " + v + ") translate3d(0px, " + (T.height / 2 + w) + "px, " + -T.height / 2 / v + "px) rotateX(-90deg)") } var y = T.isSafari || T.isUiWebView ? -T.size / 2 : 0; T.wrapper.transform("translate3d(0px,0," + y + "px) rotateX(" + (T.isHorizontal() ? 0 : t) + "deg) rotateY(" + (T.isHorizontal() ? -t : 0) + "deg)") }, setTransition: function (e) { T.slides.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e), T.params.cube.shadow && !T.isHorizontal() && T.container.find(".swiper-cube-shadow").transition(e) } }, coverflow: { setTranslate: function () { for (var a = T.translate, t = T.isHorizontal() ? -a + T.width / 2 : -a + T.height / 2, s = T.isHorizontal() ? T.params.coverflow.rotate : -T.params.coverflow.rotate, i = T.params.coverflow.depth, r = 0, n = T.slides.length; r < n; r++) { var o = T.slides.eq(r), l = T.slidesSizesGrid[r], p = o[0].swiperSlideOffset, d = (t - p - l / 2) / l * T.params.coverflow.modifier, u = T.isHorizontal() ? s * d : 0, c = T.isHorizontal() ? 0 : s * d, m = -i * Math.abs(d), h = T.isHorizontal() ? 0 : T.params.coverflow.stretch * d, g = T.isHorizontal() ? T.params.coverflow.stretch * d : 0; Math.abs(g) < .001 && (g = 0), Math.abs(h) < .001 && (h = 0), Math.abs(m) < .001 && (m = 0), Math.abs(u) < .001 && (u = 0), Math.abs(c) < .001 && (c = 0); var f = "translate3d(" + g + "px," + h + "px," + m + "px) rotateX(" + c + "deg) rotateY(" + u + "deg)"; if (o.transform(f), o[0].style.zIndex = 1 - Math.abs(Math.round(d)), T.params.coverflow.slideShadows) { var v = T.isHorizontal() ? o.find(".swiper-slide-shadow-left") : o.find(".swiper-slide-shadow-top"), w = T.isHorizontal() ? o.find(".swiper-slide-shadow-right") : o.find(".swiper-slide-shadow-bottom"); 0 === v.length && (v = e('<div class="swiper-slide-shadow-' + (T.isHorizontal() ? "left" : "top") + '"></div>'), o.append(v)), 0 === w.length && (w = e('<div class="swiper-slide-shadow-' + (T.isHorizontal() ? "right" : "bottom") + '"></div>'), o.append(w)), v.length && (v[0].style.opacity = d > 0 ? d : 0), w.length && (w[0].style.opacity = -d > 0 ? -d : 0) } } if (T.browser.ie) { T.wrapper[0].style.perspectiveOrigin = t + "px 50%" } }, setTransition: function (e) { T.slides.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e) } } }, T.lazy = { initialImageLoaded: !1, loadImageInSlide: function (a, t) { if (void 0 !== a && (void 0 === t && (t = !0), 0 !== T.slides.length)) { var s = T.slides.eq(a), i = s.find("." + T.params.lazyLoadingClass + ":not(." + T.params.lazyStatusLoadedClass + "):not(." + T.params.lazyStatusLoadingClass + ")"); !s.hasClass(T.params.lazyLoadingClass) || s.hasClass(T.params.lazyStatusLoadedClass) || s.hasClass(T.params.lazyStatusLoadingClass) || (i = i.add(s[0])), 0 !== i.length && i.each(function () { var a = e(this); a.addClass(T.params.lazyStatusLoadingClass); var i = a.attr("data-background"), r = a.attr("data-src"), n = a.attr("data-srcset"), o = a.attr("data-sizes"); T.loadImage(a[0], r || i, n, o, !1, function () { if (void 0 !== T && null !== T && T) { if (i ? (a.css("background-image", 'url("' + i + '")'), a.removeAttr("data-background")) : (n && (a.attr("srcset", n), a.removeAttr("data-srcset")), o && (a.attr("sizes", o), a.removeAttr("data-sizes")), r && (a.attr("src", r), a.removeAttr("data-src"))), a.addClass(T.params.lazyStatusLoadedClass).removeClass(T.params.lazyStatusLoadingClass), s.find("." + T.params.lazyPreloaderClass + ", ." + T.params.preloaderClass).remove(), T.params.loop && t) { var e = s.attr("data-swiper-slide-index"); if (s.hasClass(T.params.slideDuplicateClass)) { var l = T.wrapper.children('[data-swiper-slide-index="' + e + '"]:not(.' + T.params.slideDuplicateClass + ")"); T.lazy.loadImageInSlide(l.index(), !1) } else { var p = T.wrapper.children("." + T.params.slideDuplicateClass + '[data-swiper-slide-index="' + e + '"]'); T.lazy.loadImageInSlide(p.index(), !1) } } T.emit("onLazyImageReady", T, s[0], a[0]) } }), T.emit("onLazyImageLoad", T, s[0], a[0]) }) } }, load: function () { var a, t = T.params.slidesPerView; if ("auto" === t && (t = 0), T.lazy.initialImageLoaded || (T.lazy.initialImageLoaded = !0), T.params.watchSlidesVisibility) T.wrapper.children("." + T.params.slideVisibleClass).each(function () { T.lazy.loadImageInSlide(e(this).index()) }); else if (t > 1) for (a = T.activeIndex; a < T.activeIndex + t; a++)T.slides[a] && T.lazy.loadImageInSlide(a); else T.lazy.loadImageInSlide(T.activeIndex); if (T.params.lazyLoadingInPrevNext) if (t > 1 || T.params.lazyLoadingInPrevNextAmount && T.params.lazyLoadingInPrevNextAmount > 1) { var s = T.params.lazyLoadingInPrevNextAmount, i = t, r = Math.min(T.activeIndex + i + Math.max(s, i), T.slides.length), n = Math.max(T.activeIndex - Math.max(i, s), 0); for (a = T.activeIndex + t; a < r; a++)T.slides[a] && T.lazy.loadImageInSlide(a); for (a = n; a < T.activeIndex; a++)T.slides[a] && T.lazy.loadImageInSlide(a) } else { var o = T.wrapper.children("." + T.params.slideNextClass); o.length > 0 && T.lazy.loadImageInSlide(o.index()); var l = T.wrapper.children("." + T.params.slidePrevClass); l.length > 0 && T.lazy.loadImageInSlide(l.index()) } }, onTransitionStart: function () { T.params.lazyLoading && (T.params.lazyLoadingOnTransitionStart || !T.params.lazyLoadingOnTransitionStart && !T.lazy.initialImageLoaded) && T.lazy.load() }, onTransitionEnd: function () { T.params.lazyLoading && !T.params.lazyLoadingOnTransitionStart && T.lazy.load() } }, T.scrollbar = { isTouched: !1, setDragPosition: function (e) { var a = T.scrollbar, t = T.isHorizontal() ? "touchstart" === e.type || "touchmove" === e.type ? e.targetTouches[0].pageX : e.pageX || e.clientX : "touchstart" === e.type || "touchmove" === e.type ? e.targetTouches[0].pageY : e.pageY || e.clientY, s = t - a.track.offset()[T.isHorizontal() ? "left" : "top"] - a.dragSize / 2, i = -T.minTranslate() * a.moveDivider, r = -T.maxTranslate() * a.moveDivider; s < i ? s = i : s > r && (s = r), s = -s / a.moveDivider, T.updateProgress(s), T.setWrapperTranslate(s, !0) }, dragStart: function (e) { var a = T.scrollbar; a.isTouched = !0, e.preventDefault(), e.stopPropagation(), a.setDragPosition(e), clearTimeout(a.dragTimeout), a.track.transition(0), T.params.scrollbarHide && a.track.css("opacity", 1), T.wrapper.transition(100), a.drag.transition(100), T.emit("onScrollbarDragStart", T) }, dragMove: function (e) { var a = T.scrollbar; a.isTouched && (e.preventDefault ? e.preventDefault() : e.returnValue = !1, a.setDragPosition(e), T.wrapper.transition(0), a.track.transition(0), a.drag.transition(0), T.emit("onScrollbarDragMove", T)) }, dragEnd: function (e) { var a = T.scrollbar; a.isTouched && (a.isTouched = !1, T.params.scrollbarHide && (clearTimeout(a.dragTimeout), a.dragTimeout = setTimeout(function () { a.track.css("opacity", 0), a.track.transition(400) }, 1e3)), T.emit("onScrollbarDragEnd", T), T.params.scrollbarSnapOnRelease && T.slideReset()) }, draggableEvents: function () { return T.params.simulateTouch !== !1 || T.support.touch ? T.touchEvents : T.touchEventsDesktop }(), enableDraggable: function () { var a = T.scrollbar, t = T.support.touch ? a.track : document; e(a.track).on(a.draggableEvents.start, a.dragStart), e(t).on(a.draggableEvents.move, a.dragMove), e(t).on(a.draggableEvents.end, a.dragEnd) }, disableDraggable: function () { var a = T.scrollbar, t = T.support.touch ? a.track : document; e(a.track).off(a.draggableEvents.start, a.dragStart), e(t).off(a.draggableEvents.move, a.dragMove), e(t).off(a.draggableEvents.end, a.dragEnd) }, set: function () { if (T.params.scrollbar) { var a = T.scrollbar; a.track = e(T.params.scrollbar), T.params.uniqueNavElements && "string" == typeof T.params.scrollbar && a.track.length > 1 && 1 === T.container.find(T.params.scrollbar).length && (a.track = T.container.find(T.params.scrollbar)), a.drag = a.track.find(".swiper-scrollbar-drag"), 0 === a.drag.length && (a.drag = e('<div class="swiper-scrollbar-drag"></div>'), a.track.append(a.drag)), a.drag[0].style.width = "", a.drag[0].style.height = "", a.trackSize = T.isHorizontal() ? a.track[0].offsetWidth : a.track[0].offsetHeight, a.divider = T.size / T.virtualSize, a.moveDivider = a.divider * (a.trackSize / T.size), a.dragSize = a.trackSize * a.divider, T.isHorizontal() ? a.drag[0].style.width = a.dragSize + "px" : a.drag[0].style.height = a.dragSize + "px", a.divider >= 1 ? a.track[0].style.display = "none" : a.track[0].style.display = "", T.params.scrollbarHide && (a.track[0].style.opacity = 0) } }, setTranslate: function () { if (T.params.scrollbar) { var e, a = T.scrollbar, t = (T.translate, a.dragSize); e = (a.trackSize - a.dragSize) * T.progress, T.rtl && T.isHorizontal() ? (e = -e, e > 0 ? (t = a.dragSize - e, e = 0) : -e + a.dragSize > a.trackSize && (t = a.trackSize + e)) : e < 0 ? (t = a.dragSize + e, e = 0) : e + a.dragSize > a.trackSize && (t = a.trackSize - e), T.isHorizontal() ? (T.support.transforms3d ? a.drag.transform("translate3d(" + e + "px, 0, 0)") : a.drag.transform("translateX(" + e + "px)"), a.drag[0].style.width = t + "px") : (T.support.transforms3d ? a.drag.transform("translate3d(0px, " + e + "px, 0)") : a.drag.transform("translateY(" + e + "px)"), a.drag[0].style.height = t + "px"), T.params.scrollbarHide && (clearTimeout(a.timeout), a.track[0].style.opacity = 1, a.timeout = setTimeout(function () { a.track[0].style.opacity = 0, a.track.transition(400) }, 1e3)) } }, setTransition: function (e) { T.params.scrollbar && T.scrollbar.drag.transition(e) } }, T.controller = { LinearSpline: function (e, a) { var t = function () { var e, a, t; return function (s, i) { for (a = -1, e = s.length; e - a > 1;)s[t = e + a >> 1] <= i ? a = t : e = t; return e } }(); this.x = e, this.y = a, this.lastIndex = e.length - 1; var s, i; this.x.length; this.interpolate = function (e) { return e ? (i = t(this.x, e), s = i - 1, (e - this.x[s]) * (this.y[i] - this.y[s]) / (this.x[i] - this.x[s]) + this.y[s]) : 0 } }, getInterpolateFunction: function (e) { T.controller.spline || (T.controller.spline = T.params.loop ? new T.controller.LinearSpline(T.slidesGrid, e.slidesGrid) : new T.controller.LinearSpline(T.snapGrid, e.snapGrid)) }, setTranslate: function (e, t) { function s(a) { e = a.rtl && "horizontal" === a.params.direction ? -T.translate : T.translate, "slide" === T.params.controlBy && (T.controller.getInterpolateFunction(a), r = -T.controller.spline.interpolate(-e)), r && "container" !== T.params.controlBy || (i = (a.maxTranslate() - a.minTranslate()) / (T.maxTranslate() - T.minTranslate()), r = (e - T.minTranslate()) * i + a.minTranslate()), T.params.controlInverse && (r = a.maxTranslate() - r), a.updateProgress(r), a.setWrapperTranslate(r, !1, T), a.updateActiveIndex() } var i, r, n = T.params.control; if (Array.isArray(n)) for (var o = 0; o < n.length; o++)n[o] !== t && n[o] instanceof a && s(n[o]); else n instanceof a && t !== n && s(n) }, setTransition: function (e, t) { function s(a) { a.setWrapperTransition(e, T), 0 !== e && (a.onTransitionStart(), a.wrapper.transitionEnd(function () { r && (a.params.loop && "slide" === T.params.controlBy && a.fixLoop(), a.onTransitionEnd()) })) } var i, r = T.params.control; if (Array.isArray(r)) for (i = 0; i < r.length; i++)r[i] !== t && r[i] instanceof a && s(r[i]); else r instanceof a && t !== r && s(r) } }, T.hashnav = { onHashCange: function (e, a) { var t = document.location.hash.replace("#", ""); t !== T.slides.eq(T.activeIndex).attr("data-hash") && T.slideTo(T.wrapper.children("." + T.params.slideClass + '[data-hash="' + t + '"]').index()) }, attachEvents: function (a) { var t = a ? "off" : "on"; e(window)[t]("hashchange", T.hashnav.onHashCange) }, setHash: function () { if (T.hashnav.initialized && T.params.hashnav) if (T.params.replaceState && window.history && window.history.replaceState) window.history.replaceState(null, null, "#" + T.slides.eq(T.activeIndex).attr("data-hash") || ""); else { var e = T.slides.eq(T.activeIndex), a = e.attr("data-hash") || e.attr("data-history"); document.location.hash = a || "" } }, init: function () { if (T.params.hashnav && !T.params.history) { T.hashnav.initialized = !0; var e = document.location.hash.replace("#", ""); if (e) for (var a = 0, t = T.slides.length; a < t; a++) { var s = T.slides.eq(a), i = s.attr("data-hash") || s.attr("data-history"); if (i === e && !s.hasClass(T.params.slideDuplicateClass)) { var r = s.index(); T.slideTo(r, 0, T.params.runCallbacksOnInit, !0) } } T.params.hashnavWatchState && T.hashnav.attachEvents() } }, destroy: function () { T.params.hashnavWatchState && T.hashnav.attachEvents(!0) } }, T.history = { init: function () { if (T.params.history) { if (!window.history || !window.history.pushState) return T.params.history = !1, void (T.params.hashnav = !0); T.history.initialized = !0, this.paths = this.getPathValues(), (this.paths.key || this.paths.value) && (this.scrollToSlide(0, this.paths.value, T.params.runCallbacksOnInit), T.params.replaceState || window.addEventListener("popstate", this.setHistoryPopState)) } }, setHistoryPopState: function () { T.history.paths = T.history.getPathValues(), T.history.scrollToSlide(T.params.speed, T.history.paths.value, !1) }, getPathValues: function () { var e = window.location.pathname.slice(1).split("/"), a = e.length; return { key: e[a - 2], value: e[a - 1] } }, setHistory: function (e, a) { if (T.history.initialized && T.params.history) { var t = T.slides.eq(a), s = this.slugify(t.attr("data-history")); window.location.pathname.includes(e) || (s = e + "/" + s), T.params.replaceState ? window.history.replaceState(null, null, s) : window.history.pushState(null, null, s) } }, slugify: function (e) { return e.toString().toLowerCase().replace(/\s+/g, "-").replace(/[^\w\-]+/g, "").replace(/\-\-+/g, "-").replace(/^-+/, "").replace(/-+$/, "") }, scrollToSlide: function (e, a, t) { if (a) for (var s = 0, i = T.slides.length; s < i; s++) { var r = T.slides.eq(s), n = this.slugify(r.attr("data-history")); if (n === a && !r.hasClass(T.params.slideDuplicateClass)) { var o = r.index(); T.slideTo(o, e, t) } } else T.slideTo(0, e, t) } }, T.disableKeyboardControl = function () { T.params.keyboardControl = !1, e(document).off("keydown", p) }, T.enableKeyboardControl = function () { T.params.keyboardControl = !0, e(document).on("keydown", p) }, T.mousewheel = { event: !1, lastScrollTime: (new window.Date).getTime() }, T.params.mousewheelControl && (T.mousewheel.event = navigator.userAgent.indexOf("firefox") > -1 ? "DOMMouseScroll" : function () { var e = "onwheel" in document; if (!e) { var a = document.createElement("div"); a.setAttribute("onwheel", "return;"), e = "function" == typeof a.onwheel } return !e && document.implementation && document.implementation.hasFeature && document.implementation.hasFeature("", "") !== !0 && (e = document.implementation.hasFeature("Events.wheel", "3.0")), e }() ? "wheel" : "mousewheel"), T.disableMousewheelControl = function () { if (!T.mousewheel.event) return !1; var a = T.container; return "container" !== T.params.mousewheelEventsTarged && (a = e(T.params.mousewheelEventsTarged)), a.off(T.mousewheel.event, u), T.params.mousewheelControl = !1, !0 }, T.enableMousewheelControl = function () { if (!T.mousewheel.event) return !1; var a = T.container; return "container" !== T.params.mousewheelEventsTarged && (a = e(T.params.mousewheelEventsTarged)), a.on(T.mousewheel.event, u), T.params.mousewheelControl = !0, !0 }, T.parallax = { setTranslate: function () { T.container.children("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]").each(function () { c(this, T.progress) }), T.slides.each(function () { var a = e(this); a.find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]").each(function () { c(this, Math.min(Math.max(a[0].progress, -1), 1)) }) }) }, setTransition: function (a) { void 0 === a && (a = T.params.speed), T.container.find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]").each(function () { var t = e(this), s = parseInt(t.attr("data-swiper-parallax-duration"), 10) || a; 0 === a && (s = 0), t.transition(s) }) } }, T.zoom = { scale: 1, currentScale: 1, isScaling: !1, gesture: { slide: void 0, slideWidth: void 0, slideHeight: void 0, image: void 0, imageWrap: void 0, zoomMax: T.params.zoomMax }, image: { isTouched: void 0, isMoved: void 0, currentX: void 0, currentY: void 0, minX: void 0, minY: void 0, maxX: void 0, maxY: void 0, width: void 0, height: void 0, startX: void 0, startY: void 0, touchesStart: {}, touchesCurrent: {} }, velocity: { x: void 0, y: void 0, prevPositionX: void 0, prevPositionY: void 0, prevTime: void 0 }, getDistanceBetweenTouches: function (e) { if (e.targetTouches.length < 2) return 1; var a = e.targetTouches[0].pageX, t = e.targetTouches[0].pageY, s = e.targetTouches[1].pageX, i = e.targetTouches[1].pageY; return Math.sqrt(Math.pow(s - a, 2) + Math.pow(i - t, 2)) }, onGestureStart: function (a) { var t = T.zoom; if (!T.support.gestures) { if ("touchstart" !== a.type || "touchstart" === a.type && a.targetTouches.length < 2) return; t.gesture.scaleStart = t.getDistanceBetweenTouches(a) } if (!(t.gesture.slide && t.gesture.slide.length || (t.gesture.slide = e(this), 0 === t.gesture.slide.length && (t.gesture.slide = T.slides.eq(T.activeIndex)), t.gesture.image = t.gesture.slide.find("img, svg, canvas"), t.gesture.imageWrap = t.gesture.image.parent("." + T.params.zoomContainerClass), t.gesture.zoomMax = t.gesture.imageWrap.attr("data-swiper-zoom") || T.params.zoomMax, 0 !== t.gesture.imageWrap.length))) return void (t.gesture.image = void 0); t.gesture.image.transition(0), t.isScaling = !0 }, onGestureChange: function (e) { var a = T.zoom; if (!T.support.gestures) { if ("touchmove" !== e.type || "touchmove" === e.type && e.targetTouches.length < 2) return; a.gesture.scaleMove = a.getDistanceBetweenTouches(e) } a.gesture.image && 0 !== a.gesture.image.length && (T.support.gestures ? a.scale = e.scale * a.currentScale : a.scale = a.gesture.scaleMove / a.gesture.scaleStart * a.currentScale, a.scale > a.gesture.zoomMax && (a.scale = a.gesture.zoomMax - 1 + Math.pow(a.scale - a.gesture.zoomMax + 1, .5)), a.scale < T.params.zoomMin && (a.scale = T.params.zoomMin + 1 - Math.pow(T.params.zoomMin - a.scale + 1, .5)), a.gesture.image.transform("translate3d(0,0,0) scale(" + a.scale + ")")) }, onGestureEnd: function (e) { var a = T.zoom; !T.support.gestures && ("touchend" !== e.type || "touchend" === e.type && e.changedTouches.length < 2) || a.gesture.image && 0 !== a.gesture.image.length && (a.scale = Math.max(Math.min(a.scale, a.gesture.zoomMax), T.params.zoomMin), a.gesture.image.transition(T.params.speed).transform("translate3d(0,0,0) scale(" + a.scale + ")"), a.currentScale = a.scale, a.isScaling = !1, 1 === a.scale && (a.gesture.slide = void 0)) }, onTouchStart: function (e, a) { var t = e.zoom; t.gesture.image && 0 !== t.gesture.image.length && (t.image.isTouched || ("android" === e.device.os && a.preventDefault(), t.image.isTouched = !0, t.image.touchesStart.x = "touchstart" === a.type ? a.targetTouches[0].pageX : a.pageX, t.image.touchesStart.y = "touchstart" === a.type ? a.targetTouches[0].pageY : a.pageY)) }, onTouchMove: function (e) { var a = T.zoom; if (a.gesture.image && 0 !== a.gesture.image.length && (T.allowClick = !1, a.image.isTouched && a.gesture.slide)) { a.image.isMoved || (a.image.width = a.gesture.image[0].offsetWidth, a.image.height = a.gesture.image[0].offsetHeight, a.image.startX = T.getTranslate(a.gesture.imageWrap[0], "x") || 0, a.image.startY = T.getTranslate(a.gesture.imageWrap[0], "y") || 0, a.gesture.slideWidth = a.gesture.slide[0].offsetWidth, a.gesture.slideHeight = a.gesture.slide[0].offsetHeight, a.gesture.imageWrap.transition(0), T.rtl && (a.image.startX = -a.image.startX), T.rtl && (a.image.startY = -a.image.startY)); var t = a.image.width * a.scale, s = a.image.height * a.scale; if (!(t < a.gesture.slideWidth && s < a.gesture.slideHeight)) { if (a.image.minX = Math.min(a.gesture.slideWidth / 2 - t / 2, 0), a.image.maxX = -a.image.minX, a.image.minY = Math.min(a.gesture.slideHeight / 2 - s / 2, 0), a.image.maxY = -a.image.minY, a.image.touchesCurrent.x = "touchmove" === e.type ? e.targetTouches[0].pageX : e.pageX, a.image.touchesCurrent.y = "touchmove" === e.type ? e.targetTouches[0].pageY : e.pageY, !a.image.isMoved && !a.isScaling) { if (T.isHorizontal() && Math.floor(a.image.minX) === Math.floor(a.image.startX) && a.image.touchesCurrent.x < a.image.touchesStart.x || Math.floor(a.image.maxX) === Math.floor(a.image.startX) && a.image.touchesCurrent.x > a.image.touchesStart.x) return void (a.image.isTouched = !1); if (!T.isHorizontal() && Math.floor(a.image.minY) === Math.floor(a.image.startY) && a.image.touchesCurrent.y < a.image.touchesStart.y || Math.floor(a.image.maxY) === Math.floor(a.image.startY) && a.image.touchesCurrent.y > a.image.touchesStart.y) return void (a.image.isTouched = !1) } e.preventDefault(), e.stopPropagation(), a.image.isMoved = !0, a.image.currentX = a.image.touchesCurrent.x - a.image.touchesStart.x + a.image.startX, a.image.currentY = a.image.touchesCurrent.y - a.image.touchesStart.y + a.image.startY, a.image.currentX < a.image.minX && (a.image.currentX = a.image.minX + 1 - Math.pow(a.image.minX - a.image.currentX + 1, .8)), a.image.currentX > a.image.maxX && (a.image.currentX = a.image.maxX - 1 + Math.pow(a.image.currentX - a.image.maxX + 1, .8)), a.image.currentY < a.image.minY && (a.image.currentY = a.image.minY + 1 - Math.pow(a.image.minY - a.image.currentY + 1, .8)), a.image.currentY > a.image.maxY && (a.image.currentY = a.image.maxY - 1 + Math.pow(a.image.currentY - a.image.maxY + 1, .8)), a.velocity.prevPositionX || (a.velocity.prevPositionX = a.image.touchesCurrent.x), a.velocity.prevPositionY || (a.velocity.prevPositionY = a.image.touchesCurrent.y), a.velocity.prevTime || (a.velocity.prevTime = Date.now()), a.velocity.x = (a.image.touchesCurrent.x - a.velocity.prevPositionX) / (Date.now() - a.velocity.prevTime) / 2, a.velocity.y = (a.image.touchesCurrent.y - a.velocity.prevPositionY) / (Date.now() - a.velocity.prevTime) / 2, Math.abs(a.image.touchesCurrent.x - a.velocity.prevPositionX) < 2 && (a.velocity.x = 0), Math.abs(a.image.touchesCurrent.y - a.velocity.prevPositionY) < 2 && (a.velocity.y = 0), a.velocity.prevPositionX = a.image.touchesCurrent.x, a.velocity.prevPositionY = a.image.touchesCurrent.y, a.velocity.prevTime = Date.now(), a.gesture.imageWrap.transform("translate3d(" + a.image.currentX + "px, " + a.image.currentY + "px,0)") } } }, onTouchEnd: function (e, a) { var t = e.zoom; if (t.gesture.image && 0 !== t.gesture.image.length) { if (!t.image.isTouched || !t.image.isMoved) return t.image.isTouched = !1, void (t.image.isMoved = !1); t.image.isTouched = !1, t.image.isMoved = !1; var s = 300, i = 300, r = t.velocity.x * s, n = t.image.currentX + r, o = t.velocity.y * i, l = t.image.currentY + o; 0 !== t.velocity.x && (s = Math.abs((n - t.image.currentX) / t.velocity.x)), 0 !== t.velocity.y && (i = Math.abs((l - t.image.currentY) / t.velocity.y)); var p = Math.max(s, i); t.image.currentX = n, t.image.currentY = l; var d = t.image.width * t.scale, u = t.image.height * t.scale; t.image.minX = Math.min(t.gesture.slideWidth / 2 - d / 2, 0), t.image.maxX = -t.image.minX, t.image.minY = Math.min(t.gesture.slideHeight / 2 - u / 2, 0), t.image.maxY = -t.image.minY, t.image.currentX = Math.max(Math.min(t.image.currentX, t.image.maxX), t.image.minX), t.image.currentY = Math.max(Math.min(t.image.currentY, t.image.maxY), t.image.minY), t.gesture.imageWrap.transition(p).transform("translate3d(" + t.image.currentX + "px, " + t.image.currentY + "px,0)") } }, onTransitionEnd: function (e) { var a = e.zoom; a.gesture.slide && e.previousIndex !== e.activeIndex && (a.gesture.image.transform("translate3d(0,0,0) scale(1)"), a.gesture.imageWrap.transform("translate3d(0,0,0)"), a.gesture.slide = a.gesture.image = a.gesture.imageWrap = void 0, a.scale = a.currentScale = 1) }, toggleZoom: function (a, t) { var s = a.zoom; if (s.gesture.slide || (s.gesture.slide = a.clickedSlide ? e(a.clickedSlide) : a.slides.eq(a.activeIndex), s.gesture.image = s.gesture.slide.find("img, svg, canvas"), s.gesture.imageWrap = s.gesture.image.parent("." + a.params.zoomContainerClass)), s.gesture.image && 0 !== s.gesture.image.length) { var i, r, n, o, l, p, d, u, c, m, h, g, f, v, w, y, x, T; void 0 === s.image.touchesStart.x && t ? (i = "touchend" === t.type ? t.changedTouches[0].pageX : t.pageX, r = "touchend" === t.type ? t.changedTouches[0].pageY : t.pageY) : (i = s.image.touchesStart.x, r = s.image.touchesStart.y), s.scale && 1 !== s.scale ? (s.scale = s.currentScale = 1, s.gesture.imageWrap.transition(300).transform("translate3d(0,0,0)"), s.gesture.image.transition(300).transform("translate3d(0,0,0) scale(1)"), s.gesture.slide = void 0) : (s.scale = s.currentScale = s.gesture.imageWrap.attr("data-swiper-zoom") || a.params.zoomMax, t ? (x = s.gesture.slide[0].offsetWidth, T = s.gesture.slide[0].offsetHeight, n = s.gesture.slide.offset().left, o = s.gesture.slide.offset().top, l = n + x / 2 - i, p = o + T / 2 - r, c = s.gesture.image[0].offsetWidth, m = s.gesture.image[0].offsetHeight, h = c * s.scale, g = m * s.scale, f = Math.min(x / 2 - h / 2, 0), v = Math.min(T / 2 - g / 2, 0), w = -f, y = -v, d = l * s.scale, u = p * s.scale, d < f && (d = f), d > w && (d = w), u < v && (u = v), u > y && (u = y)) : (d = 0, u = 0), s.gesture.imageWrap.transition(300).transform("translate3d(" + d + "px, " + u + "px,0)"), s.gesture.image.transition(300).transform("translate3d(0,0,0) scale(" + s.scale + ")")) } }, attachEvents: function (a) { var t = a ? "off" : "on"; if (T.params.zoom) { var s = (T.slides, !("touchstart" !== T.touchEvents.start || !T.support.passiveListener || !T.params.passiveListeners) && { passive: !0, capture: !1 }); T.support.gestures ? (T.slides[t]("gesturestart", T.zoom.onGestureStart, s), T.slides[t]("gesturechange", T.zoom.onGestureChange, s), T.slides[t]("gestureend", T.zoom.onGestureEnd, s)) : "touchstart" === T.touchEvents.start && (T.slides[t](T.touchEvents.start, T.zoom.onGestureStart, s), T.slides[t](T.touchEvents.move, T.zoom.onGestureChange, s), T.slides[t](T.touchEvents.end, T.zoom.onGestureEnd, s)), T[t]("touchStart", T.zoom.onTouchStart), T.slides.each(function (a, s) { e(s).find("." + T.params.zoomContainerClass).length > 0 && e(s)[t](T.touchEvents.move, T.zoom.onTouchMove) }), T[t]("touchEnd", T.zoom.onTouchEnd), T[t]("transitionEnd", T.zoom.onTransitionEnd), T.params.zoomToggle && T.on("doubleTap", T.zoom.toggleZoom) } }, init: function () { T.zoom.attachEvents() }, destroy: function () { T.zoom.attachEvents(!0) } }, T._plugins = []; for (var Y in T.plugins) { var O = T.plugins[Y](T, T.params[Y]); O && T._plugins.push(O) } return T.callPlugins = function (e) { for (var a = 0; a < T._plugins.length; a++)e in T._plugins[a] && T._plugins[a][e](arguments[1], arguments[2], arguments[3], arguments[4], arguments[5]) }, T.emitterEventListeners = {}, T.emit = function (e) { T.params[e] && T.params[e](arguments[1], arguments[2], arguments[3], arguments[4], arguments[5]); var a; if (T.emitterEventListeners[e]) for (a = 0; a < T.emitterEventListeners[e].length; a++)T.emitterEventListeners[e][a](arguments[1], arguments[2], arguments[3], arguments[4], arguments[5]); T.callPlugins && T.callPlugins(e, arguments[1], arguments[2], arguments[3], arguments[4], arguments[5]) }, T.on = function (e, a) { return e = m(e), T.emitterEventListeners[e] || (T.emitterEventListeners[e] = []), T.emitterEventListeners[e].push(a), T }, T.off = function (e, a) { var t; if (e = m(e), void 0 === a) return T.emitterEventListeners[e] = [], T; if (T.emitterEventListeners[e] && 0 !== T.emitterEventListeners[e].length) { for (t = 0; t < T.emitterEventListeners[e].length; t++)T.emitterEventListeners[e][t] === a && T.emitterEventListeners[e].splice(t, 1); return T } }, T.once = function (e, a) { e = m(e); var t = function () { a(arguments[0], arguments[1], arguments[2], arguments[3], arguments[4]), T.off(e, t) }; return T.on(e, t), T }, T.a11y = { makeFocusable: function (e) { return e.attr("tabIndex", "0"), e }, addRole: function (e, a) { return e.attr("role", a), e }, addLabel: function (e, a) { return e.attr("aria-label", a), e }, disable: function (e) { return e.attr("aria-disabled", !0), e }, enable: function (e) { return e.attr("aria-disabled", !1), e }, onEnterKey: function (a) { 13 === a.keyCode && (e(a.target).is(T.params.nextButton) ? (T.onClickNext(a), T.isEnd ? T.a11y.notify(T.params.lastSlideMessage) : T.a11y.notify(T.params.nextSlideMessage)) : e(a.target).is(T.params.prevButton) && (T.onClickPrev(a), T.isBeginning ? T.a11y.notify(T.params.firstSlideMessage) : T.a11y.notify(T.params.prevSlideMessage)), e(a.target).is("." + T.params.bulletClass) && e(a.target)[0].click()) }, liveRegion: e('<span class="' + T.params.notificationClass + '" aria-live="assertive" aria-atomic="true"></span>'), notify: function (e) { var a = T.a11y.liveRegion; 0 !== a.length && (a.html(""), a.html(e)) }, init: function () { T.params.nextButton && T.nextButton && T.nextButton.length > 0 && (T.a11y.makeFocusable(T.nextButton), T.a11y.addRole(T.nextButton, "button"), T.a11y.addLabel(T.nextButton, T.params.nextSlideMessage)), T.params.prevButton && T.prevButton && T.prevButton.length > 0 && (T.a11y.makeFocusable(T.prevButton), T.a11y.addRole(T.prevButton, "button"), T.a11y.addLabel(T.prevButton, T.params.prevSlideMessage)), e(T.container).append(T.a11y.liveRegion) }, initPagination: function () { T.params.pagination && T.params.paginationClickable && T.bullets && T.bullets.length && T.bullets.each(function () { var a = e(this); T.a11y.makeFocusable(a), T.a11y.addRole(a, "button"), T.a11y.addLabel(a, T.params.paginationBulletMessage.replace(/{{index}}/, a.index() + 1)) }) }, destroy: function () { T.a11y.liveRegion && T.a11y.liveRegion.length > 0 && T.a11y.liveRegion.remove() } }, T.init = function () { T.params.loop && T.createLoop(), T.updateContainerSize(), T.updateSlidesSize(), T.updatePagination(), T.params.scrollbar && T.scrollbar && (T.scrollbar.set(), T.params.scrollbarDraggable && T.scrollbar.enableDraggable()), "slide" !== T.params.effect && T.effects[T.params.effect] && (T.params.loop || T.updateProgress(), T.effects[T.params.effect].setTranslate()), T.params.loop ? T.slideTo(T.params.initialSlide + T.loopedSlides, 0, T.params.runCallbacksOnInit) : (T.slideTo(T.params.initialSlide, 0, T.params.runCallbacksOnInit), 0 === T.params.initialSlide && (T.parallax && T.params.parallax && T.parallax.setTranslate(), T.lazy && T.params.lazyLoading && (T.lazy.load(), T.lazy.initialImageLoaded = !0))), T.attachEvents(), T.params.observer && T.support.observer && T.initObservers(), T.params.preloadImages && !T.params.lazyLoading && T.preloadImages(), T.params.zoom && T.zoom && T.zoom.init(), T.params.autoplay && T.startAutoplay(), T.params.keyboardControl && T.enableKeyboardControl && T.enableKeyboardControl(), T.params.mousewheelControl && T.enableMousewheelControl && T.enableMousewheelControl(), T.params.hashnavReplaceState && (T.params.replaceState = T.params.hashnavReplaceState), T.params.history && T.history && T.history.init(), T.params.hashnav && T.hashnav && T.hashnav.init(), T.params.a11y && T.a11y && T.a11y.init(), T.emit("onInit", T) }, T.cleanupStyles = function () { T.container.removeClass(T.classNames.join(" ")).removeAttr("style"), T.wrapper.removeAttr("style"), T.slides && T.slides.length && T.slides.removeClass([T.params.slideVisibleClass, T.params.slideActiveClass, T.params.slideNextClass, T.params.slidePrevClass].join(" ")).removeAttr("style").removeAttr("data-swiper-column").removeAttr("data-swiper-row"), T.paginationContainer && T.paginationContainer.length && T.paginationContainer.removeClass(T.params.paginationHiddenClass), T.bullets && T.bullets.length && T.bullets.removeClass(T.params.bulletActiveClass), T.params.prevButton && e(T.params.prevButton).removeClass(T.params.buttonDisabledClass), T.params.nextButton && e(T.params.nextButton).removeClass(T.params.buttonDisabledClass), T.params.scrollbar && T.scrollbar && (T.scrollbar.track && T.scrollbar.track.length && T.scrollbar.track.removeAttr("style"), T.scrollbar.drag && T.scrollbar.drag.length && T.scrollbar.drag.removeAttr("style")) }, T.destroy = function (e, a) { T.detachEvents(), T.stopAutoplay(), T.params.scrollbar && T.scrollbar && T.params.scrollbarDraggable && T.scrollbar.disableDraggable(), T.params.loop && T.destroyLoop(), a && T.cleanupStyles(), T.disconnectObservers(), T.params.zoom && T.zoom && T.zoom.destroy(), T.params.keyboardControl && T.disableKeyboardControl && T.disableKeyboardControl(), T.params.mousewheelControl && T.disableMousewheelControl && T.disableMousewheelControl(), T.params.a11y && T.a11y && T.a11y.destroy(), T.params.history && !T.params.replaceState && window.removeEventListener("popstate", T.history.setHistoryPopState), T.params.hashnav && T.hashnav && T.hashnav.destroy(), T.emit("onDestroy"), e !== !1 && (T = null) }, T.init(), T } }; a.prototype = { isSafari: function () { var e = window.navigator.userAgent.toLowerCase(); return e.indexOf("safari") >= 0 && e.indexOf("chrome") < 0 && e.indexOf("android") < 0 }(), isUiWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent), isArray: function (e) { return "[object Array]" === Object.prototype.toString.apply(e) }, browser: { ie: window.navigator.pointerEnabled || window.navigator.msPointerEnabled, ieTouch: window.navigator.msPointerEnabled && window.navigator.msMaxTouchPoints > 1 || window.navigator.pointerEnabled && window.navigator.maxTouchPoints > 1, lteIE9: function () { var e = document.createElement("div"); return e.innerHTML = "<!--[if lte IE 9]><i></i><![endif]-->", 1 === e.getElementsByTagName("i").length }() }, device: function () { var e = window.navigator.userAgent, a = e.match(/(Android);?[\s\/]+([\d.]+)?/), t = e.match(/(iPad).*OS\s([\d_]+)/), s = e.match(/(iPod)(.*OS\s([\d_]+))?/), i = !t && e.match(/(iPhone\sOS|iOS)\s([\d_]+)/); return { ios: t || i || s, android: a } }(), support: { touch: window.Modernizr && Modernizr.touch === !0 || function () { return !!("ontouchstart" in window || window.DocumentTouch && document instanceof DocumentTouch) }(), transforms3d: window.Modernizr && Modernizr.csstransforms3d === !0 || function () { var e = document.createElement("div").style; return "webkitPerspective" in e || "MozPerspective" in e || "OPerspective" in e || "MsPerspective" in e || "perspective" in e }(), flexbox: function () { for (var e = document.createElement("div").style, a = "alignItems webkitAlignItems webkitBoxAlign msFlexAlign mozBoxAlign webkitFlexDirection msFlexDirection mozBoxDirection mozBoxOrient webkitBoxDirection webkitBoxOrient".split(" "), t = 0; t < a.length; t++)if (a[t] in e) return !0 }(), observer: function () { return "MutationObserver" in window || "WebkitMutationObserver" in window }(), passiveListener: function () { var e = !1; try { var a = Object.defineProperty({}, "passive", { get: function () { e = !0 } }); window.addEventListener("testPassiveListener", null, a) } catch (e) { } return e }(), gestures: function () { return "ongesturestart" in window }() }, plugins: {} }; for (var t = (function () { var e = function (e) { var a = this, t = 0; for (t = 0; t < e.length; t++)a[t] = e[t]; return a.length = e.length, this }, a = function (a, t) { var s = [], i = 0; if (a && !t && a instanceof e) return a; if (a) if ("string" == typeof a) { var r, n, o = a.trim(); if (o.indexOf("<") >= 0 && o.indexOf(">") >= 0) { var l = "div"; for (0 === o.indexOf("<li") && (l = "ul"), 0 === o.indexOf("<tr") && (l = "tbody"), 0 !== o.indexOf("<td") && 0 !== o.indexOf("<th") || (l = "tr"), 0 === o.indexOf("<tbody") && (l = "table"), 0 === o.indexOf("<option") && (l = "select"), n = document.createElement(l), n.innerHTML = a, i = 0; i < n.childNodes.length; i++)s.push(n.childNodes[i]) } else for (r = t || "#" !== a[0] || a.match(/[ .<>:~]/) ? (t || document).querySelectorAll(a) : [document.getElementById(a.split("#")[1])], i = 0; i < r.length; i++)r[i] && s.push(r[i]) } else if (a.nodeType || a === window || a === document) s.push(a); else if (a.length > 0 && a[0].nodeType) for (i = 0; i < a.length; i++)s.push(a[i]); return new e(s) }; return e.prototype = { addClass: function (e) { if (void 0 === e) return this; for (var a = e.split(" "), t = 0; t < a.length; t++)for (var s = 0; s < this.length; s++)this[s].classList.add(a[t]); return this }, removeClass: function (e) { for (var a = e.split(" "), t = 0; t < a.length; t++)for (var s = 0; s < this.length; s++)this[s].classList.remove(a[t]); return this }, hasClass: function (e) { return !!this[0] && this[0].classList.contains(e) }, toggleClass: function (e) { for (var a = e.split(" "), t = 0; t < a.length; t++)for (var s = 0; s < this.length; s++)this[s].classList.toggle(a[t]); return this }, attr: function (e, a) { if (1 === arguments.length && "string" == typeof e) return this[0] ? this[0].getAttribute(e) : void 0; for (var t = 0; t < this.length; t++)if (2 === arguments.length) this[t].setAttribute(e, a); else for (var s in e) this[t][s] = e[s], this[t].setAttribute(s, e[s]); return this }, removeAttr: function (e) { for (var a = 0; a < this.length; a++)this[a].removeAttribute(e); return this }, data: function (e, a) { if (void 0 !== a) { for (var t = 0; t < this.length; t++) { var s = this[t]; s.dom7ElementDataStorage || (s.dom7ElementDataStorage = {}), s.dom7ElementDataStorage[e] = a } return this } if (this[0]) { var i = this[0].getAttribute("data-" + e); return i ? i : this[0].dom7ElementDataStorage && e in this[0].dom7ElementDataStorage ? this[0].dom7ElementDataStorage[e] : void 0 } }, transform: function (e) { for (var a = 0; a < this.length; a++) { var t = this[a].style; t.webkitTransform = t.MsTransform = t.msTransform = t.MozTransform = t.OTransform = t.transform = e } return this }, transition: function (e) { "string" != typeof e && (e += "ms"); for (var a = 0; a < this.length; a++) { var t = this[a].style; t.webkitTransitionDuration = t.MsTransitionDuration = t.msTransitionDuration = t.MozTransitionDuration = t.OTransitionDuration = t.transitionDuration = e } return this }, on: function (e, t, s, i) { function r(e) { var i = e.target; if (a(i).is(t)) s.call(i, e); else for (var r = a(i).parents(), n = 0; n < r.length; n++)a(r[n]).is(t) && s.call(r[n], e) } var n, o, l = e.split(" "); for (n = 0; n < this.length; n++)if ("function" == typeof t || t === !1) for ("function" == typeof t && (s = arguments[1], i = arguments[2] || !1), o = 0; o < l.length; o++)this[n].addEventListener(l[o], s, i); else for (o = 0; o < l.length; o++)this[n].dom7LiveListeners || (this[n].dom7LiveListeners = []), this[n].dom7LiveListeners.push({ listener: s, liveListener: r }), this[n].addEventListener(l[o], r, i); return this }, off: function (e, a, t, s) { for (var i = e.split(" "), r = 0; r < i.length; r++)for (var n = 0; n < this.length; n++)if ("function" == typeof a || a === !1) "function" == typeof a && (t = arguments[1], s = arguments[2] || !1), this[n].removeEventListener(i[r], t, s); else if (this[n].dom7LiveListeners) for (var o = 0; o < this[n].dom7LiveListeners.length; o++)this[n].dom7LiveListeners[o].listener === t && this[n].removeEventListener(i[r], this[n].dom7LiveListeners[o].liveListener, s); return this }, once: function (e, a, t, s) { function i(n) { t(n), r.off(e, a, i, s) } var r = this; "function" == typeof a && (a = !1, t = arguments[1], s = arguments[2]), r.on(e, a, i, s) }, trigger: function (e, a) { for (var t = 0; t < this.length; t++) { var s; try { s = new window.CustomEvent(e, { detail: a, bubbles: !0, cancelable: !0 }) } catch (t) { s = document.createEvent("Event"), s.initEvent(e, !0, !0), s.detail = a } this[t].dispatchEvent(s) } return this }, transitionEnd: function (e) { function a(r) { if (r.target === this) for (e.call(this, r), t = 0; t < s.length; t++)i.off(s[t], a) } var t, s = ["webkitTransitionEnd", "transitionend", "oTransitionEnd", "MSTransitionEnd", "msTransitionEnd"], i = this; if (e) for (t = 0; t < s.length; t++)i.on(s[t], a); return this }, width: function () { return this[0] === window ? window.innerWidth : this.length > 0 ? parseFloat(this.css("width")) : null }, outerWidth: function (e) { return this.length > 0 ? e ? this[0].offsetWidth + parseFloat(this.css("margin-right")) + parseFloat(this.css("margin-left")) : this[0].offsetWidth : null }, height: function () { return this[0] === window ? window.innerHeight : this.length > 0 ? parseFloat(this.css("height")) : null }, outerHeight: function (e) { return this.length > 0 ? e ? this[0].offsetHeight + parseFloat(this.css("margin-top")) + parseFloat(this.css("margin-bottom")) : this[0].offsetHeight : null }, offset: function () { if (this.length > 0) { var e = this[0], a = e.getBoundingClientRect(), t = document.body, s = e.clientTop || t.clientTop || 0, i = e.clientLeft || t.clientLeft || 0, r = window.pageYOffset || e.scrollTop, n = window.pageXOffset || e.scrollLeft; return { top: a.top + r - s, left: a.left + n - i } } return null }, css: function (e, a) { var t; if (1 === arguments.length) { if ("string" != typeof e) { for (t = 0; t < this.length; t++)for (var s in e) this[t].style[s] = e[s]; return this } if (this[0]) return window.getComputedStyle(this[0], null).getPropertyValue(e) } if (2 === arguments.length && "string" == typeof e) { for (t = 0; t < this.length; t++)this[t].style[e] = a; return this } return this }, each: function (e) { for (var a = 0; a < this.length; a++)e.call(this[a], a, this[a]); return this }, html: function (e) { if (void 0 === e) return this[0] ? this[0].innerHTML : void 0; for (var a = 0; a < this.length; a++)this[a].innerHTML = e; return this }, text: function (e) { if (void 0 === e) return this[0] ? this[0].textContent.trim() : null; for (var a = 0; a < this.length; a++)this[a].textContent = e; return this }, is: function (t) { if (!this[0]) return !1; var s, i; if ("string" == typeof t) { var r = this[0]; if (r === document) return t === document; if (r === window) return t === window; if (r.matches) return r.matches(t); if (r.webkitMatchesSelector) return r.webkitMatchesSelector(t); if (r.mozMatchesSelector) return r.mozMatchesSelector(t); if (r.msMatchesSelector) return r.msMatchesSelector(t); for (s = a(t), i = 0; i < s.length; i++)if (s[i] === this[0]) return !0; return !1 } if (t === document) return this[0] === document; if (t === window) return this[0] === window; if (t.nodeType || t instanceof e) { for (s = t.nodeType ? [t] : t, i = 0; i < s.length; i++)if (s[i] === this[0]) return !0; return !1 } return !1 }, index: function () { if (this[0]) { for (var e = this[0], a = 0; null !== (e = e.previousSibling);)1 === e.nodeType && a++; return a } }, eq: function (a) { if (void 0 === a) return this; var t, s = this.length; return a > s - 1 ? new e([]) : a < 0 ? (t = s + a, new e(t < 0 ? [] : [this[t]])) : new e([this[a]]) }, append: function (a) { var t, s; for (t = 0; t < this.length; t++)if ("string" == typeof a) { var i = document.createElement("div"); for (i.innerHTML = a; i.firstChild;)this[t].appendChild(i.firstChild) } else if (a instanceof e) for (s = 0; s < a.length; s++)this[t].appendChild(a[s]); else this[t].appendChild(a); return this }, prepend: function (a) { var t, s; for (t = 0; t < this.length; t++)if ("string" == typeof a) { var i = document.createElement("div"); for (i.innerHTML = a, s = i.childNodes.length - 1; s >= 0; s--)this[t].insertBefore(i.childNodes[s], this[t].childNodes[0]) } else if (a instanceof e) for (s = 0; s < a.length; s++)this[t].insertBefore(a[s], this[t].childNodes[0]); else this[t].insertBefore(a, this[t].childNodes[0]); return this }, insertBefore: function (e) { for (var t = a(e), s = 0; s < this.length; s++)if (1 === t.length) t[0].parentNode.insertBefore(this[s], t[0]); else if (t.length > 1) for (var i = 0; i < t.length; i++)t[i].parentNode.insertBefore(this[s].cloneNode(!0), t[i]) }, insertAfter: function (e) { for (var t = a(e), s = 0; s < this.length; s++)if (1 === t.length) t[0].parentNode.insertBefore(this[s], t[0].nextSibling); else if (t.length > 1) for (var i = 0; i < t.length; i++)t[i].parentNode.insertBefore(this[s].cloneNode(!0), t[i].nextSibling) }, next: function (t) { return new e(this.length > 0 ? t ? this[0].nextElementSibling && a(this[0].nextElementSibling).is(t) ? [this[0].nextElementSibling] : [] : this[0].nextElementSibling ? [this[0].nextElementSibling] : [] : []) }, nextAll: function (t) { var s = [], i = this[0]; if (!i) return new e([]); for (; i.nextElementSibling;) { var r = i.nextElementSibling; t ? a(r).is(t) && s.push(r) : s.push(r), i = r } return new e(s) }, prev: function (t) { return new e(this.length > 0 ? t ? this[0].previousElementSibling && a(this[0].previousElementSibling).is(t) ? [this[0].previousElementSibling] : [] : this[0].previousElementSibling ? [this[0].previousElementSibling] : [] : []) }, prevAll: function (t) { var s = [], i = this[0]; if (!i) return new e([]); for (; i.previousElementSibling;) { var r = i.previousElementSibling; t ? a(r).is(t) && s.push(r) : s.push(r), i = r } return new e(s) }, parent: function (e) { for (var t = [], s = 0; s < this.length; s++)e ? a(this[s].parentNode).is(e) && t.push(this[s].parentNode) : t.push(this[s].parentNode); return a(a.unique(t)) }, parents: function (e) { for (var t = [], s = 0; s < this.length; s++)for (var i = this[s].parentNode; i;)e ? a(i).is(e) && t.push(i) : t.push(i), i = i.parentNode; return a(a.unique(t)) }, find: function (a) { for (var t = [], s = 0; s < this.length; s++)for (var i = this[s].querySelectorAll(a), r = 0; r < i.length; r++)t.push(i[r]); return new e(t) }, children: function (t) { for (var s = [], i = 0; i < this.length; i++)for (var r = this[i].childNodes, n = 0; n < r.length; n++)t ? 1 === r[n].nodeType && a(r[n]).is(t) && s.push(r[n]) : 1 === r[n].nodeType && s.push(r[n]); return new e(a.unique(s)) }, remove: function () { for (var e = 0; e < this.length; e++)this[e].parentNode && this[e].parentNode.removeChild(this[e]); return this }, add: function () { var e, t, s = this; for (e = 0; e < arguments.length; e++) { var i = a(arguments[e]); for (t = 0; t < i.length; t++)s[s.length] = i[t], s.length++ } return s } }, a.fn = e.prototype, a.unique = function (e) { for (var a = [], t = 0; t < e.length; t++)a.indexOf(e[t]) === -1 && a.push(e[t]); return a }, a }()), s = ["jQuery", "Zepto", "Dom7"], i = 0; i < s.length; i++)window[s[i]] && function (e) { e.fn.swiper = function (t) { var s; return e(this).each(function () { var e = new a(this, t); s || (s = e) }), s } }(window[s[i]]); var r; r = void 0 === t ? window.Dom7 || window.Zepto || window.jQuery : t, r && ("transitionEnd" in r.fn || (r.fn.transitionEnd = function (e) { function a(r) { if (r.target === this) for (e.call(this, r), t = 0; t < s.length; t++)i.off(s[t], a) } var t, s = ["webkitTransitionEnd", "transitionend", "oTransitionEnd", "MSTransitionEnd", "msTransitionEnd"], i = this; if (e) for (t = 0; t < s.length; t++)i.on(s[t], a); return this }), "transform" in r.fn || (r.fn.transform = function (e) { for (var a = 0; a < this.length; a++) { var t = this[a].style; t.webkitTransform = t.MsTransform = t.msTransform = t.MozTransform = t.OTransform = t.transform = e } return this }), "transition" in r.fn || (r.fn.transition = function (e) { "string" != typeof e && (e += "ms"); for (var a = 0; a < this.length; a++) { var t = this[a].style; t.webkitTransitionDuration = t.MsTransitionDuration = t.msTransitionDuration = t.MozTransitionDuration = t.OTransitionDuration = t.transitionDuration = e } return this }), "outerWidth" in r.fn || (r.fn.outerWidth = function (e) { return this.length > 0 ? e ? this[0].offsetWidth + parseFloat(this.css("margin-right")) + parseFloat(this.css("margin-left")) : this[0].offsetWidth : null })), window.Swiper = a }(), "undefined" != typeof module ? module.exports = window.Swiper : "function" == typeof define && define.amd && define([], function () { "use strict"; return window.Swiper }); //# sourceMappingURL=maps/swiper.min.js.map </script> <style> #slideshow1.swiper-container, .swiper-wrapper, .swiper-slide { /*width: 100%; height: 18px;*/ } #slideshow1 .swiper-slide { text-align: center; /*font-size: 18px;*/ background: #fff; display: flex; } #slideshow1 .swiper-container { margin-left: auto; margin-right: auto; position: relative; overflow: hidden; z-index: 1; left: 10px; } </style> <style> .social-icons ul li,.sustainability-social .pipe,.sustainability-social a{display:inline-block;list-style-type:none}#HelloBarTextAds .social-icons ul li i{background-color:#b9b9b9}nav.sponsored-alert{display:block;position:fixed;top:0;left:0;width:100%;padding:0;height:auto;min-height:auto;line-height:normal;background:#fff;z-index:9999;border-radius:0;border-bottom:1px solid #e5e5e5!important;border:0}#slideshow1 .swiper-container-vertical>.swiper-wrapper{width:100%;height:18px}.left-tag{background:#7d663f;background:-moz-linear-gradient(left,#7d663f 0,#7d663f 6%,#c29c66 50%,#896d43 89%,#896d43 100%);background:-webkit-gradient(left top,right top,color-stop(0,#7d663f),color-stop(6%,#7d663f),color-stop(50%,#c29c66),color-stop(89%,#896d43),color-stop(100%,#896d43));background:-webkit-linear-gradient(left,#7d663f 0,#7d663f 6%,#c29c66 50%,#896d43 89%,#896d43 100%);background:-o-linear-gradient(left,#7d663f 0,#7d663f 6%,#c29c66 50%,#896d43 89%,#896d43 100%);background:-ms-linear-gradient(left,#7d663f 0,#7d663f 6%,#c29c66 50%,#896d43 89%,#896d43 100%);background:linear-gradient(to right,#7d663f 0,#7d663f 6%,#c29c66 50%,#896d43 89%,#896d43 100%);float:left;padding:13px 30px 13px 10px;color:#fff;position:relative;background-color:#c5dff9;overflow:hidden}.left-tag:before{width:0;height:0;border-top:60px solid #a88656;border-right:34px solid transparent;position:absolute;content:"";top:0;right:0;z-index:9;background:#fff;display:none}.left-tag span{position:relative;z-index:99;font-size:14px;font-family:oxygenbold}.text-content{color:rgba(0,0,0,.7);padding:12px 15px}.text-content a{color:#004c5c;font-size:13px;font-family:oxygenbold}.text-content span{color:#c6c6c6}.text-content span a{color:#b3b3b3!important}.f2ftopmenu .navbar.navbar50{top:42px}.f2ftopmenu .navbar,body.body50{margin-top:42px}.social-icons li,.social-icons-top.toprightsocialheader li{position:relative;margin:0 auto!important;display:inline-block}nav.sponsored-alert .social-icons ul{padding:0;margin:0}nav.sponsored-alert .social-icons ul li i{padding:5px 7px;width:25px;height:25px;line-height:15px;font-size:13px}.sponsored-left-content{width:calc(100% - 285px)}.nav.sponsored-alert{border:0!important;border-bottom:1px solid #e5e5e5!important}.pattern-bg{margin-top:105px}@media screen and (max-width:991px){.pattern-bg{margin-top:135px}.sponsored-left-content{width:calc(100% - 250px)}.sponsored-alert .social-icons{width:250px}nav.sponsored-alert .container{width:100%;padding:0}nav.sponsored-alert .container>div:first-child{padding:0}nav.sponsored-alert .container>div:last-child{padding-left:0}.text-content{padding:13px 0}nav.sponsored-alert .social-icons ul li i{font-size:13px;width:24px;height:24px;line-height:15px}}#textadsdisplay .text-content a{color:#2f2f2f}#slideshow>div{position:absolute;top:12px;left:10px;right:10px;bottom:10px}.social-icons-top.toprightsocialheader li .fa{padding:4px 0;color:#868686;width:22px;height:22px;font-size:12px;background-color:#fff;border-radius:50%;transition:.5s;border:1px solid #595959;text-align:center}.social-icons-top.toprightsocialheader li{padding:0 1px}.social-icons-top li .fa.fa-facebook{padding:4px 8px}.left-tag.leftheadertag span{position:relative;z-index:99;font-size:12px;font-family:oxygenregular;font-weight:400;border-right:1px solid #e5e5e5;padding:5px 10px 5px 0}.left-tag.leftheadertag{background:#fff;float:left;padding:13px 0 10px 10px;color:#000;position:relative;overflow:hidden}.social-icons-top.toprightsocialheader li:before{border:0;display:none}.welcometext{margin-top:3px!important}.sponsored-alert .social-icons{padding:0 5px!important;border-left:0 solid #e5e5e5!important;text-align:right!important;float:right!important;width:auto!important}.social-icons li{padding:0 10px}.social-icons li:before{content:"";position:absolute;left:0;width:1px;height:100%;border-left:1px solid #e5e5e5}.sourcing-btn{text-align:right;display:inline-block}.sourcing-btn a{background:#c46bd6;float:left;border-radius:10px;padding:3px 17px;color:#fff;margin-top:11px;font-size:11px;margin-left:0;background:linear-gradient(92deg,#30478a -19%,#007cad 61%,#d09203 95%)}.social-icons-top.toprightsocialheader{margin-right:1.5%;padding-top:10px;text-align:right;display:inline-block;float:right}.social-icons-top ul{margin:0;padding:0}@media only screen and (max-width:1280px){.sourcing-btn a{margin-left:-18px}}@media (max-width:1024px){.text-content a{font-size:10px}#textadsdisplay .text-content a{margin-top:4px}.sourcing-btn a{display:none}}@media only screen and (max-width:991px){.sponsored-alert .social-icons{width:300px!important}.sponsored-alert .social-icons ul li{max-width:90px;padding:0}} </style> <div class="wrapper"> <div class="top-header"> <div class="container"> <div class="top-header-details"> <div class="top-header-left"> <div class="top-header-btn"> <span class="sponsored-btn">Sponsored</span> </div> <span> <div id="slideshow1"> <div class="swiper-container"> <div class="swiper-wrapper"> <div class="swiper-slide" id="slide-0"> <a class="gaclicktracking" href='https://adsclick.fibre2fashion.com/app/clk/?q=07lrR3Iex48lWl+gszBH7x8K0JeON8Mqlw8ipGGIbh7S4/J+X7DaTMbFQE93Yfr88HN8IqXhOTGK79GiRL8t8A0OiE9i+xMJ/LHDhTrrzvh06F0CGFsfykcGWgZ5nM5gmfK691cvx1cDo+H8tVXhWAqE+yhcqKubcqgexADOKLR9BFNJe8+cFmCtaVIcXjOZKcoUCylfyabyUQ2LnxdzzJIxaug6P3t+GBHZwXfR3gj6HCR4dOz0kXI2yx8Ooxel3SzgMgM+6hepW6yoh+sF95SmAOWjooinyQDwAjQvC0kACAb7D3DKs5oDJ0eTeczDHhGzWhcLRHsoT3BPd2IgbPKEmQfKzyBWARIWD9QLtFPV7HNEiMIWWKiS7NFh/w6uTZZIpJDkusEE/8v5zwcBRpDleoB1dOQEEMa6FrFplMJVqFW1L9gn9UBixNtWBVWbGaN7ZK/OtLjUipJXgt5d+nMylo1+kByJvsS4egCoK+M=' target='_blank' title="Ensure product quality with Testex&#39;s wide range of testing solutions | Know More" placementid="14395" adsid="2575" displayorder="3" pcstartdate="29/10/2024" pcenddate="29/10/2024" platform="Desktop" channel="F2F" region="All" zone="TextAd" campaigncode="TESTEX AG_ Swiss Textile Testing Institute - 2024" companyname="TESTEX AG, Swiss Textile Testing Institute" uid="800632" country="Switzerland" zonedesc="Text Ads"> Ensure product quality with Testex&#39;s wide range of testing solutions | Know More <img style='display: block; height:1px !important; width:1px !important;' src='https://adsclick.fibre2fashion.com/Images/spacer.gif' class='gaTracking' /> </a> </div> <div class="swiper-slide" id="slide-1"> <a class="gaclicktracking" href='https://adsclick.fibre2fashion.com/app/clk/?q=07lrR3Iex48lWl+gszBH7x8K0JeON8MqdvA3kOGpXB05uRU5AsVSezjFGqtnIhOukTYitR7xKul9JX4/XrV8Z2Qdnf50Rwr9AxD8/7/au13Kawoh8x4OHymN5WkBt20GnRCYDyWLoq8LV0xgbZZEQYq+KdaVWJPXwPnfIImY4Fm3YWIK+ICPl88WZ9XRMAEX0Q4OwrluwW9y2JaMIpEsmhQK9OSXMrdRfTEkp8uMj2s4uGorEgrRDwgdyPumFIbW05xF9co65PEpEV7jKsrbI/EqzgCydvjL5B6lO65R9RVGNP4iq+2SXYkPZBjXRPtCGfQb68fnoXpX6qU3nmzqL1vwtJ/Il/LRZZLf0vn+/CXU0rm7vhSs4BgupxWVIGSUpmZc8vZBLQzO+SbWkOE2pbwT1bo3AEXrd89jcv0Vo0os3Au0cDi7TxFdwjG8gR2YM9vhtZTE8L0aaPOs5QvntIiUc2EjOeH47kVnrZjogp8W7nJZTCItC3ZtVg8BXZ3xobz97vDeG64=' target='_blank' title="Texworld Apparel Sourcing Paris Weaving the Future | Get Your Free Badge" placementid="14446" adsid="2596" displayorder="2" pcstartdate="14/11/2024" pcenddate="14/11/2024" platform="Desktop" channel="F2F" region="All" zone="TextAd" campaigncode="Messe Frankfurt France - 24-25" companyname="Messe Frankfurt France" uid="884755" country="France" zonedesc="Text Ads"> Texworld Apparel Sourcing Paris Weaving the Future | Get Your Free Badge <img style='display: block; height:1px !important; width:1px !important;' src='https://adsclick.fibre2fashion.com/Images/spacer.gif' class='gaTracking' /> </a> </div> <div class="swiper-slide" id="slide-2"> <a class="gaclicktracking" href='https://adsclick.fibre2fashion.com/app/clk/?q=07lrR3Iex48lWl+gszBH7x8K0JeON8MqTeVhOocKBic23uKdQd6WIar2vuftX9BkVLvCw7aL4yHeD55WSVjMvxZv7T0gOlBWQw16N7PUqtbJu90o/vfZmRsj2tn3sAZtCdeuafdfz69jGK9+HWAlJ9WnpXwto2iERjr8WlX0NpeThrAyCsIf/fk5cmEw6zrvWsG8hH9Hv3a77/rIRs5pFuapNXY65A9fmR2c8oDOh0+k3+3e9/d4ZbpvME0vM37io+1+zWrKtzOg4mAWkPKsF0UpB28Tvi8ISb+BJ/jNyvw4e4vf1TS50lUq1+43xqm906+O3lQPkujETU4I/dT6lH5Gdjv8U1LKXiYCsPtvseZ/cPCIClXgI+/Y0smb7/e9QoP3eom4F38BITo9HD6ZZAnmrvM7Aa0ifOMXEGsm0jO3wWTgtbsD3DVrsWn8o2uei3QEDeitOuM8roVzw0a0oGJe6ufxgWhDLM+oOjiNifEiZIlVcCtHDv1auAq12O9l1g9x1mzM/qa0thzoZi1wBVvb/mjdqO2v9bBLWTPPMolwow+1HSR10e9/6R8FMWtPdOMRJ/4yG5yNSLhMfqJLwIg9ptJP+Qq29ivhZnrDjTY=' target='_blank' title="Discover the Oeko-Tex Labelling Guide for Your Products | Learn More" placementid="14471" adsid="2587" displayorder="1" pcstartdate="19/11/2024" pcenddate="19/11/2024" platform="Desktop" channel="F2F" region="All" zone="TextAd" campaigncode="OEKO-TEX Service GmbH - 24" companyname="OEKO-TEX Service GmbH" uid="908805" country="Switzerland" zonedesc="Text Ads"> Discover the Oeko-Tex Labelling Guide for Your Products | Learn More <img style='display: block; height:1px !important; width:1px !important;' src='https://adsclick.fibre2fashion.com/Images/spacer.gif' class='gaTracking' /> </a> </div> <script> var swiper = new Swiper('#slideshow1 .swiper-container', { direction: 'vertical', mousewheelControl: true, loop: true, autoplay: { delay: 5, disableOnInteraction: false }, slidesPerView: 'auto', grabCursor: true, mousewheelControl: true, keyboardControl: true, speed: 1000, autoplay: 10000, slidesPerView: 'auto', parallax: false, // freeMode: true, // freeModeSticky: true }); </script> </div> </div> </div> </span> </div> <div class="top-header-right"> <ul> <li> <a data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Icon Clicked&quot;,&quot;F2FEventType&quot;:&quot;Icon&quot;,&quot;F2FSection&quot;:&quot;Header&quot;,&quot;F2FType&quot;:&quot;Static&quot;,&quot;F2FText&quot;:&quot;LinkedIn&quot;}" target="_blank" itemprop="sameAs" href="https://adsclick.fibre2fashion.com/app/clk/?q=07lrR3Iex48lWl+gszBH7x8K0JeON8MqMRZW4UcT4tJyXrC7wetq2g/f5PxccIrdSTgubU0MnWNAtMjRQhpzFV1mCe2QDZXSGeTGRENhpRN/7SKysz2j6mam+U0z1DDKqXzaBDMYfBMgAJ0GcoO2xIJnrtoRLz0a3zeoljvBpdVZhjpqT6MOoJ3UnioFRyg/tjYuDcWbGVu46pD8gmgj3quhb/OKM+sqccgn8wfayouL1UXZy+UW6jEYgOWplbbPRP2PetZ2oRxR5H1u4rCcif/EPBBAazPI6uy8uswS4rqoyd0br4rx7QoQzL90X1anSsfAZNELU82dun+xfwiDIeC2gr9QsOpUWdsIL+DWeSxqur95wi2n/rGnZImZVNggOZcRMO0LDTqy3Tm4+5AFFVTx/GJ7aurUA6UfN0obFA6yYbEhYqCoN7GMz3M+sf3abePoxRbacnfmDKmj1HKmMeG8n54iUlAHRfc2W1a48Ek="> <img width="122" height="27" src="https://static.fibre2fashion.com/staticresources/images/followusonlinkedin.png" alt="Linkdin" title="Linkdin"> </a> </li> <li class="weglotdiv multilanguage"></li> <script defer> var Weglot = function () { "use strict"; var e = { v1: [], v2: ["ABBR", "ACRONYM", "B", "BDO", "BIG", "CITE", "EM", "I", "KBD", "Q", "SMALL", "STRONG", "SUB", "SUP", "U"], v3: ["A", "BDI", "BR", "DEL", "DFN", "INS", "S", "SPAN"] }; e.v2.unshift("#text"); var t = e, n = { excluded_blocks: [], media_enabled: !1, external_enabled: !1, extra_definitions: [], translation_engine: 2, noTranslateAttribute: "data-wg-notranslate", mergeNodes: [] }, r = { ddtags: "env:prod", clientToken: "pub4efaec96ce2494088ba70a2049d58dc3", site: "datadoghq.com" }, o = { "dd-api-key": "pub4efaec96ce2494088ba70a2049d58dc3", ddsource: "browser" }, a = "prod"; function i(e) { var t = e.service; function n(e, n, i) { var c = i.sendToConsole; void 0 === c && (c = !0); var s = i.consoleOverride, l = i.sendToDatadog; if (void 0 === l && (l = !0), l && "dev" !== a && function (e, t, n) { "string" == typeof t && (t = { message: t }); var a = Object.assign({}, t, { service: e, status: n }, window.location && { view: { url: window.location.href } }, t.message && { message: t.message }, t.stack && { stack: t.stack }, t.status && { logStatus: t.status }, r); window.Weglot && window.Weglot.options && (a.projectInfo = ["host", "api_key", "url_type", "technology_name", "technology_id", "is_connect", "auto_switch"].reduce((function (e, t) { var n; return Object.assign({}, e, ((n = {})[t] = window.Weglot.options[t], n)) }), {})); var i = Object.keys(o).map((function (e) { return e + "=" + o[e] })).join("&"); fetch("https://http-intake.logs.datadoghq.com/api/v2/logs?" + i, { method: "POST", body: JSON.stringify(a), headers: { "Content-Type": "application/json" } }) }(t, e, n), c) { var u = s || e, f = ["notice", "info"].includes(n) ? "log" : n; console[f]("[Weglot]", u) } } var i = function (e) { return function (t, r) { return void 0 === r && (r = {}), n(t, e, r) } }; return { log: i("info"), info: i("info"), notice: i("notice"), warn: i("warn"), error: i("error") } } var c = i({ service: "html-parser-engine" }), s = function () { try { return JSON.parse('{"TRANSLATION":"translations.weglot.io","SWITCHER":"switchers.weglot.io","EXCLUSION":"exclusions.weglot.io","DEFINITION":"definitions.weglot.io"}') } catch (e) { return {} } }(), l = Object.keys(s).map((function (e) { return s[e] })); function u(e) { for (var t = 0, n = l; t < n.length; t += 1) { var r = n[t]; if (-1 !== e.indexOf(r)) return !0 } return !1 } function f(e, t, n) { var r = t && t[e]; if (r && r.textContent === t.textContent) return r.result; var o = n(t); return t ? (t[e] = { result: o, textContent: t.textContent }, o) : o } function d(e) { return f("__validMergeNodes", e, (function (e) { return e && p(e) && g(e) && !function (e) { return f("__containsNoTranslateNodes", e, (function (e) { return 1 === e.nodeType && (!!e.querySelector("[" + n.noTranslateAttribute + "]") || h(e)) })) }(e) })) } function g(e, t) { return void 0 === t && (t = !0), f("__validTextNodes", e, (function (e) { return !(!e.textContent || t && !e.textContent.trim() || -1 !== e.textContent.indexOf("BESbswy") || e.parentNode && e.parentNode.nodeName && -1 !== ["script", "style", "noscript"].indexOf(e.parentNode.nodeName.toLowerCase()) || function (e) { if (!(e = e.trim())) return !1; var t = e.charAt(0); if ("[" !== t && "{" !== t) return !1; var n = e[e.length - 1]; if ("]" !== n && "}" !== n) return !1; return e = e.replace(/\\(?:["\\/bfnrt]|u[0-9a-fA-F]{4})/g, "@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+-]?\d+)?/g, "]").replace(/(?:^|:|,)(?:\s*\[)+/g, ""), /^[\],:{}\s]*$/.test(e) }(e.textContent)) })) } function _(e) { try { if (n.mergedSelectorRemove && e.closest && e.closest(n.mergedSelectorRemove)) return !1 } catch (e) { } return !(!n.mergeNodes || -1 === n.mergeNodes.indexOf(e.nodeName)) || (e.dataset && e.dataset.wgMerge || n.selectorMerging && e.matches && e.matches(n.selectorMerging)) } function p(e) { return f("__onlyInlineChildsNodes", e, (function (e) { if (!e.childNodes) return !0; for (var t = 0, n = e.childNodes; t < n.length; t += 1) { var r = n[t]; if (r.weglot || !_(r) || !p(r)) return !1 } return !0 })) } function h(e) { if (!e.children) return !1; for (var t = 0, n = e.children; t < n.length; t += 1) { var r = n[t]; if (r.wgNoTranslate || h(r)) return !0 } return !1 } function m(e) { return !!e && (!!e.wgNoTranslate || m(e.parentNode)) } function v(e) { if (!e) return !1; var t = e.closest ? e : e.parentNode; return !!(t && t.closest && t.closest("[" + n.noTranslateAttribute + "]")) || m(e) } var w = function (e, t) { return function (n, r) { try { var o = r; return -1 !== o.indexOf(":") && (o = o.replace(/([^\\]):/g, "$1\\:")), n[e] ? n[e](o) : t } catch (o) { try { return n[e] ? n[e](r) : t } catch (e) { c.warn(e, { consoleOverride: "Your CSS rules are incorrect: " + r, sendToDatadog: !1 }) } } return t } }, y = w("querySelectorAll", []), b = w("matches", !1); var k = new WeakMap; function E(e) { if (!e) return []; var t = e.querySelectorAll ? e : e.parentNode; if (!t) return []; if (function (e) { var t = n.excluded_blocks; if (t && t.length) { var r = t.map((function (e) { return e.value })), o = r.join(","); if (b(e, o)) { if (n.private_mode) { var a = r.find((function (t) { return b(e, t) })); e.wgNoTranslate = "Excluded by selector: " + a } else e.wgNoTranslate = !0; return } var i = y(e, o); if (i) for (var c = function () { var e = l[s]; if (n.private_mode) { var t = r.find((function (t) { return b(e, t) })); e.wgNoTranslate = "Excluded by selector: " + t } else e.wgNoTranslate = !0 }, s = 0, l = i; s < l.length; s += 1)c() } }(t), !n.whitelist || !n.whitelist.length) return [].concat(function (e) { var t = document.getElementsByTagName("title")[0]; if (e !== document.documentElement || !document.title || !t || v(t)) return []; return [{ element: t.firstChild, type: 9, words: t.textContent, properties: {} }] }(t), C(t)); var r = n.whitelist.map((function (e) { return e.value })).join(","); if (t.closest && t.closest(r)) return C(t); for (var o = [], a = 0, i = y(t, r); a < i.length; a += 1) { var c = i[a];[].push.apply(o, C(c)) } return o } function C(e) { return [].concat(function (e) { var t = []; return U.forEach((function (n) { for (var r, o, a, i = n.attribute, c = n.type, s = n.selectors, l = 0, u = (r = e, o = [], a = s.join(","), r.matches && r.matches(a) && o.push(r), r.childElementCount > 0 && o.push.apply(o, r.querySelectorAll(a)), o); l < u.length; l += 1) { var f = u[l]; if (!v(f)) { var d = i.get(f); L(d) || t.push({ element: f, words: d, type: c, attrSetter: i.set, attrName: i.name }) } } })), t }(e), function (e) { var t, r = [], o = n.translation_engine >= 2, a = document.createTreeWalker(e, 4, x, !1); for (; t = a.nextNode();) { var i = (o && (_(t.parentNode) || t.parentNode.childNodes.length > 1) ? S : O)(t, a); i && r.push(i) } return r }(e)) } function x(e) { return !g(e) || v(e) ? NodeFilter.FILTER_REJECT : NodeFilter.FILTER_ACCEPT } function S(e, t) { var r = function (e) { if (e.wgResolved) return !1; var t = e; do { if (t.wgResolved) return t; t = t.parentElement || t.parentNode } while (null !== t && 1 === t.nodeType); return !1 }(e); if (r && k.has(r)) { var o = k.get(r); return { element: o[0], words: o[1], type: 1, properties: o[2] } } var a = function (e, t) { var r = [], o = e; for (; d(e.parentNode);)e = e.parentNode, o.textContent.trim() !== e.textContent.trim() && (o = e); o.textContent.trim() === e.textContent.trim() && (e = o); for (; t.nextNode();)if (!e.contains || !e.contains(t.currentNode)) { t.previousNode(); break } var a = e.cloneNode(!0); if (n.translation_engine > 2) { N(e, (function (e) { if (1 === e.nodeType) { var t = function (e) { for (var t = [], n = 0, r = e.attributes; n < r.length; n += 1) { var o = r[n]; t.push(o) } return t }(e); r.push({ attributes: t, child: e }) } })); var i = 1; N(a, (function (e) { 1 === e.nodeType && (!function (e) { if (!e.attributes) return e; for (; e.attributes.length > 0;)e.removeAttribute(e.attributes[0].name) }(e), e.setAttribute("wg-" + i++, "")) })) } if (e) { return e.wgResolved = !0, [e, (a.innerHTML || a.textContent || "").replace(/<!--[^>]*-->/g, ""), r] } }(e, t); if (a) { var i = a[0], c = a[1], s = a[2]; if (!L(c)) return k.set(i, a), { element: i, words: c, type: 1, properties: s } } } function O(e) { var t = e.textContent; if (!L(t)) return { element: e, words: t, type: 1, properties: {} } } function N(e, t) { if (e.childNodes) for (var n = 0, r = e.childNodes; n < r.length; n += 1) { var o = r[n]; if (!o) return; t(o), N(o, t) } } function L(e) { return !e || !e.trim() || !isNaN(e) || "​" === e } function T(e, t) { for (var n = 0, r = e; n < r.length; n += 1) { var o = r[n], a = o.weglot.content; if (a && o.isConnected) { for (var i = 0, c = a; i < c.length; i += 1) { var s = c[i], l = s.original, u = s.properties, f = s.attrSetter, d = s.translations[t] || l; u && (o.weglot.setted = !0, A(o, d, u, e)), f && (o.weglot.setted = !0, f(o, d, l)) } o.wgResolved = !1 } } } function A(e, t, n, r) { if (1 === e.nodeType) { var o = function (e, t, n) { var r = document.createElement("div"); return r.innerHTML = e, j(t, r, n) }(t, e, n); return e.innerHTML = "", void e.appendChild(o) } if (-1 !== t.indexOf("<") && -1 !== t.indexOf(">")) { if (!e.parentNode) return c.warn("Unable to translate some words, please contact support@weglot.com."), void c.warn(e, { sendToDatadog: !1 }); if (1 === e.parentNode.childNodes.length) return e.parentNode.weglot = e.weglot, void (r ? r.push(e.parentNode) : A(e.parentNode, t, n)); var a = e.closest && e.closest("[data-wg-translation-wrapper]") || e.parentNode.closest("[data-wg-translation-wrapper]"); if (!a || a.innerHTML !== t) { var i = document.createElement("span"); i.dataset.wgTranslationWrapper = "", i.weglot = e.weglot, e.parentNode.replaceChild(i, e), r ? r.push(i) : A(e.parentNode, t, n) } } else e.textContent = t } function j(e, t, n) { var r = document.createDocumentFragment(); if (1 !== e.nodeType) return r.appendChild(t), r; for (var o = t.childNodes.length, a = 0; a < o; a++) { var i, s = t.firstChild; if (i = P(s)) { var l = n[i - 1]; if (!l) continue; var u = l.used ? l.child.cloneNode(!0) : l.child, f = j(u, s, n); if (f.contains(u)) return c.error("There is an HTML error in the translation of: " + e.innerHTML), r; u.innerHTML = "", u.appendChild(f), r.appendChild(u), document.createDocumentFragment().appendChild(s), l.used = !0 } else r.appendChild(s) } return r } function P(e) { if (e && 1 === e.nodeType && e.attributes && e.attributes[0]) { var t = parseInt(e.attributes[0].name.split("wg-")[1]); return isNaN(t) ? void 0 : t } } function I(e) { return { name: e, get: function (t) { return t.getAttribute(e) }, set: function (t, n) { return t.setAttribute(e, n) } } } function R(e, t) { if (e.parentNode && "PICTURE" === e.parentNode.tagName) for (var n = 0, r = e.parentNode.children; n < r.length; n += 1) { var o = r[n]; "SOURCE" === o.tagName && (o.getAttribute("srcset") && o.setAttribute("srcset", t)) } } function D(e) { return e && e.split && e.split("www.")[1] || e } function W(e) { var t = [{ type: 1, selectors: ["[title]"], attribute: I("title") }, { type: 2, selectors: ["input[type='submit']", "input[type='button']", "button"], attribute: I("value") }, { type: 3, selectors: ["input[placeholder]", "textarea[placeholder]"], attribute: I("placeholder") }, { type: 4, selectors: ["meta[name='description']", "meta[property='og:description']", "meta[property='og:site_name']", "meta[property='og:image:alt']", "meta[name='twitter:description']", "meta[itemprop='description']", "meta[itemprop='name']"], attribute: I("content") }, { type: 7, selectors: ["img"], attribute: I("alt") }, { type: 8, selectors: ["[href$='.pdf']", "[href$='.docx']", "[href$='.doc']"], attribute: I("href") }, { type: 9, selectors: ["meta[property='og:title']", "meta[name='twitter:title']"], attribute: I("content") }]; if (!e) return t; if (e.media_enabled && t.push({ type: 5, selectors: ["youtube.com", "youtu.be", "vimeo.com", "dailymotion.com"].map((function (e) { return "iframe[src*='" + e + "']" })), attribute: I("src") }, { type: 6, selectors: ["img", "source"], attribute: { name: "src", get: function (e) { var t = e.getAttribute("src"); if (!t || !t.split) return ""; if (0 === t.indexOf("data:image")) return ""; var n = t.split("?"); return n[1] && (e.queryString = n[1]), n[0] }, set: function (e, t, n) { var r = e.getAttribute("src"), o = e.getAttribute("srcset"); if (t === n) { if (e.removeAttribute("data-wgtranslated"), e.isChanged) { var a = "" + t + (e.queryString ? "?" + e.queryString : ""); e.setAttribute("src", a), R(e, a), e.hasAttribute("wgsrcset") && (e.setAttribute("srcset", e.getAttribute("wgsrcset") || e.dataset.srcset), e.removeAttribute("wgsrcset")) } } else r.split("?")[0] !== t && n !== t && (e.setAttribute("src", t), R(e, t), e.hasAttribute("srcset") && (e.setAttribute("wgsrcset", o), e.setAttribute("srcset", "")), e.dataset.wgtranslated = !0, e.isChanged = !0) } } }, { type: 6, selectors: ["meta[property='og:image']", "meta[property='og:logo']"], attribute: I("content") }, { type: 6, selectors: ["img"], attribute: I("srcset") }), e.translate_aria && t.push({ type: 1, selectors: ["[aria-label]"], attribute: I("aria-label") }), e.external_enabled) { var n = D(function () { var e = window.location, t = e.hostname, n = e.search; if (!u(t) || !n) return t; var r = decodeURIComponent(n).match(/url=https?:\/\/([^/]+)/); return r ? r[1] : (c.warn("[Weglot] Unable to get current hostname"), t) }()); t.push({ type: 10, selectors: ["iframe"], attribute: I("src") }, { type: 10, selectors: ["a[rel=external]"], attribute: I("href") }, { type: 10, selectors: ['[href^="mailto"]'], attribute: I("href") }, { type: 10, selectors: ['[href^="tel"]'], attribute: I("href") }, { type: 10, selectors: ["http:", "https:", "//"].map((function (e) { return '[href^="' + e + '"]:not(link)' })), attribute: { name: "href", get: function (e) { if (!e.href || !e.href.split) return ""; var t = e.href.split("/")[2]; return t && D(t) !== n ? e.getAttribute("href") : "" }, set: function (e, t) { return e.setAttribute("href", t) } } }) } if (e.extra_definitions && e.extra_definitions.length) for (var r = function () { var e = a[o], n = e.type, r = e.selector, i = e.attribute; i && r ? t.push({ type: n, selectors: [r], attribute: { name: i, get: function (e) { return e.getAttribute(i) }, set: function (e, t) { return e.setAttribute(i, t) } } }) : c.warn("Each extra definition option needs at least {attribute,selector} https://bit.ly/2yDsLxy", { sendToDatadog: !1 }) }, o = 0, a = e.extra_definitions; o < a.length; o += 1)r(); return t } x.acceptNode = x; var U = []; function H(e, r) { if (!r || !r.translation_engine) throw "translation_engine is required"; var o; return Object.assign(n, r), n.document = e, n.mergeNodes = (o = r.translation_engine, t.v2.unshift("#text", "#comment"), Object.keys(t).reduce((function (e, n, r) { return o >= r + 1 && [].push.apply(e, t[n]), e }), [])), Array.isArray(n.extra_merged_selectors) && (n.selectorMerging = r.extra_merged_selectors.filter((function (e) { return e && "string" == typeof e })).join(",")), r.merged_selectors_remove && (n.mergedSelectorRemove = r.merged_selectors_remove.map((function (e) { return e.value })).join(",")), { getTextNodes: E, setTextNodes: T, definitions: U = W(n) } } var M = i({ service: "js-library" }), q = "https://cdn.weglot.com/projects-settings/", z = "preview.weglot.io", F = "wglang", B = "wg-style-trans", $ = "data-wg-notranslate", V = "wg-translations", G = "wg-slugs", J = "Shopify", Y = "BigCommerce", K = "Jimdo", X = "Squarespace", Z = "Wix", Q = "Webflow", ee = "Square Online", te = "Bubble", ne = "Salesforce", re = ["excluded_blocks", "excluded_blocks_remove", "dynamics", "excluded_paths", "dangerously_force_dynamic", "extra_definitions", "translate_event"], oe = ["polyfillReady", "languageChanged", "initialized", "start", "switchersReady"], ae = { button_style: { full_name: !0, with_name: !0, is_dropdown: !0, with_flags: !1, flag_type: "" }, switchers: [], auto_switch: !1, auto_switch_fallback: "", excluded_blocks: [], excluded_blocks_remove: [], whitelist: [], translate_event: [{ selector: "[data-wg-translate-event]", eventName: null }], customer_tag: !1, order_tag: !0, dynamics: [], excluded_paths: [], wait_transition: !0, hide_switcher: !1, translate_search: !1, media_enabled: !1, search_forms: "", cache: !1, live: !0, loading_bar: !0, search_parameter: "", translation_engine: 2, override_hreflang: !0 }, ie = ["none", "shiny", "square", "circle", "rectangle_mat"], ce = {}; !function (e) { var t = function () { try { return !!Symbol.iterator } catch (e) { return !1 } }(), n = function (e) { var n = { next: function () { var t = e.shift(); return { done: void 0 === t, value: t } } }; return t && (n[Symbol.iterator] = function () { return n }), n }, r = function (e) { try { return encodeURIComponent(e).replace(/%20/g, "+") } catch (t) { return e } }, o = function (e) { try { return decodeURIComponent(String(e).replace(/\+/g, " ")) } catch (t) { return e } }; (function () { try { var t = e.URLSearchParams; return "a=1" === new t("?a=1").toString() && "function" == typeof t.prototype.set && "function" == typeof t.prototype.entries } catch (e) { return !1 } })() || function () { var o = function (e) { Object.defineProperty(this, "_entries", { writable: !0, value: {} }); var t = typeof e; if ("undefined" === t); else if ("string" === t) "" !== e && this._fromString(e); else if (e instanceof o) { var n = this; e.forEach((function (e, t) { n.append(t, e) })) } else { if (null === e || "object" !== t) throw new TypeError("Unsupported input's type for URLSearchParams"); if ("[object Array]" === Object.prototype.toString.call(e)) for (var r = 0; r < e.length; r++) { var a = e[r]; if ("[object Array]" !== Object.prototype.toString.call(a) && 2 === a.length) throw new TypeError("Expected [string, any] as entry at index " + r + " of URLSearchParams's input"); this.append(a[0], a[1]) } else for (var i in e) e.hasOwnProperty(i) && this.append(i, e[i]) } }, a = o.prototype; a.append = function (e, t) { e in this._entries ? this._entries[e].push(String(t)) : this._entries[e] = [String(t)] }, a.delete = function (e) { delete this._entries[e] }, a.get = function (e) { return e in this._entries ? this._entries[e][0] : null }, a.getAll = function (e) { return e in this._entries ? this._entries[e].slice(0) : [] }, a.has = function (e) { return e in this._entries }, a.set = function (e, t) { this._entries[e] = [String(t)] }, a.forEach = function (e, t) { var n; for (var r in this._entries) if (this._entries.hasOwnProperty(r)) { n = this._entries[r]; for (var o = 0; o < n.length; o++)e.call(t, n[o], r, this) } }, a.keys = function () { var e = []; return this.forEach((function (t, n) { e.push(n) })), n(e) }, a.values = function () { var e = []; return this.forEach((function (t) { e.push(t) })), n(e) }, a.entries = function () { var e = []; return this.forEach((function (t, n) { e.push([n, t]) })), n(e) }, t && (a[Symbol.iterator] = a.entries), a.toString = function () { var e = []; return this.forEach((function (t, n) { e.push(r(n) + "=" + r(t)) })), e.join("&") }, e.URLSearchParams = o }(); var a = e.URLSearchParams.prototype; "function" != typeof a.sort && (a.sort = function () { var e = this, t = []; this.forEach((function (n, r) { t.push([r, n]), e._entries || e.delete(r) })), t.sort((function (e, t) { return e[0] < t[0] ? -1 : e[0] > t[0] ? 1 : 0 })), e._entries && (e._entries = {}); for (var n = 0; n < t.length; n++)this.append(t[n][0], t[n][1]) }), "function" != typeof a._fromString && Object.defineProperty(a, "_fromString", { enumerable: !1, configurable: !1, writable: !1, value: function (e) { if (this._entries) this._entries = {}; else { var t = []; this.forEach((function (e, n) { t.push(n) })); for (var n = 0; n < t.length; n++)this.delete(t[n]) } var r, a = (e = e.replace(/^\?/, "")).split("&"); for (n = 0; n < a.length; n++)r = a[n].split("="), this.append(o(r[0]), r.length > 1 ? o(r[1]) : "") } }) }(ce), function (e) { if (function () { try { var t = new e.URL("b", "http://a"); return t.pathname = "c d", "http://a/c%20d" === t.href && t.searchParams } catch (e) { return !1 } }() || function () { var t = e.URL, n = function (t, n) { "string" != typeof t && (t = String(t)), n && "string" != typeof n && (n = String(n)); var r, o = document; if (n && (void 0 === e.location || n !== e.location.href)) { n = n.toLowerCase(), (r = (o = document.implementation.createHTMLDocument("")).createElement("base")).href = n, o.head.appendChild(r); try { if (0 !== r.href.indexOf(n)) throw new Error(r.href) } catch (e) { throw new Error("URL unable to set base " + n + " due to " + e) } } var a = o.createElement("a"); a.href = t, r && (o.body.appendChild(a), a.href = a.href); var i = o.createElement("input"); if (i.type = "url", i.value = t, ":" === a.protocol || !/:/.test(a.href) || !i.checkValidity() && !n) throw new TypeError("Invalid URL"); Object.defineProperty(this, "_anchorElement", { value: a }); var c = new e.URLSearchParams(this.search), s = !0, l = !0, u = this;["append", "delete", "set"].forEach((function (e) { var t = c[e]; c[e] = function () { t.apply(c, arguments), s && (l = !1, u.search = c.toString(), l = !0) } })), Object.defineProperty(this, "searchParams", { value: c, enumerable: !0 }); var f = void 0; Object.defineProperty(this, "_updateSearchParams", { enumerable: !1, configurable: !1, writable: !1, value: function () { this.search !== f && (f = this.search, l && (s = !1, this.searchParams._fromString(this.search), s = !0)) } }) }, r = n.prototype;["hash", "host", "hostname", "port", "protocol"].forEach((function (e) { !function (e) { Object.defineProperty(r, e, { get: function () { return this._anchorElement[e] }, set: function (t) { this._anchorElement[e] = t }, enumerable: !0 }) }(e) })), Object.defineProperty(r, "search", { get: function () { return this._anchorElement.search }, set: function (e) { this._anchorElement.search = e, this._updateSearchParams() }, enumerable: !0 }), Object.defineProperties(r, { toString: { get: function () { var e = this; return function () { return e.href } } }, href: { get: function () { return this._anchorElement.href.replace(/\?$/, "") }, set: function (e) { this._anchorElement.href = e, this._updateSearchParams() }, enumerable: !0 }, pathname: { get: function () { return this._anchorElement.pathname.replace(/(^\/?)/, "/") }, set: function (e) { this._anchorElement.pathname = e }, enumerable: !0 }, origin: { get: function () { var e = { "http:": 80, "https:": 443, "ftp:": 21 }[this._anchorElement.protocol], t = this._anchorElement.port != e && "" !== this._anchorElement.port; return this._anchorElement.protocol + "//" + this._anchorElement.hostname + (t ? ":" + this._anchorElement.port : "") }, enumerable: !0 }, password: { get: function () { return "" }, set: function (e) { }, enumerable: !0 }, username: { get: function () { return "" }, set: function (e) { }, enumerable: !0 } }), n.createObjectURL = function (e) { return t.createObjectURL.apply(t, arguments) }, n.revokeObjectURL = function (e) { return t.revokeObjectURL.apply(t, arguments) }, e.URL = n }(), void 0 !== e.location && !("origin" in e.location)) { var t = function () { return e.location.protocol + "//" + e.location.hostname + (e.location.port ? ":" + e.location.port : "") }; try { Object.defineProperty(e.location, "origin", { get: t, enumerable: !0 }) } catch (n) { setInterval((function () { e.location.origin = t() }), 100) } } }(ce); var se = ce.URL, le = function (e, t) { return function (n, r) { if (!n || !n[e] || !r) return t; try { return n[e](r) } catch (e) { M.error(e, { consoleOverride: "The CSS selectors that you provided are incorrect: " + r, sendToDatadog: !1 }) } return t } }, ue = le("querySelectorAll", []), fe = le("querySelector", null), de = le("closest", null), ge = function (e) { return document.getElementById(e) }; function _e(e) { e && e.parentNode && e.parentNode.removeChild(e) } function pe(e) { e = "" + e; return ["&nbsp;", "&amp;", "&quot;", "&lt;", "&gt;"].some((function (t) { return -1 !== e.indexOf(t) })) ? e.replace(/&nbsp;/g, " ").replace(/&amp;/g, "&").replace(/&quot;/g, '"').replace(/&lt;/g, "<").replace(/&gt;/g, ">") : e } function he(e) { var t = window.location.search.slice(1).split("&").map((function (e) { return e && e.split("=") })).find((function (t) { return t[0] === e })); return t && t[1] } function me() { try { if (window.frameElement || window.self !== window.top) return "with-window-top" } catch (e) { return "no-window-top" } } function ve(e, t) { var n = document.createElement("style"); _e(ge(t)), n.id = t, n.type = "text/css", n.styleSheet ? n.styleSheet.cssText = e : n.appendChild(document.createTextNode(e)), document.head.appendChild(n) } var we = function () { return /google|facebook|bing|yahoo|baidu|yandex|lighthouse/i.test(navigator.userAgent) }; function ye(e) { try { document.createDocumentFragment().querySelector(e) } catch (e) { return !1 } return !0 } var be = function (e, t, n) { var r = new se(e, location.href); return r.searchParams.set(t, n), "" + r.pathname + r.search }; function ke(e) { "loading" !== document.readyState ? e() : document.addEventListener("DOMContentLoaded", (function () { return e() })) } var Ee = function (e, t) { var n; return void 0 === t && (t = 1e3), function () { for (var r = this, o = [], a = arguments.length; a--;)o[a] = arguments[a]; clearTimeout(n), n = setTimeout((function () { e.apply(r, o) }), t) } }, Ce = function (e) { var t = (new Date).getTime().toString(); try { var n = e.contentWindow; return n[t] = "asd", "asd" === n[t] } catch (e) { return !1 } }; var xe = {}, Se = function (e, t) { xe[e] = t }, Oe = function (e, t) { if (xe[e]) return xe[e](t) }; var Ne, Le = {}; try { document.cookie, Ne = !0 } catch (lr) { Ne = !1 } Le.set = function (e, t, n, r, o) { Ne && (e = e.replace(/[^+#$&^`|]/g, encodeURIComponent).replace("(", "%28").replace(")", "%29"), t = t.toString().replace(/[^+#$&/:<-[\]-}]/g, encodeURIComponent), !n && xt.is_connect && (xt.subdomain ? n = xt.host.split("www.").pop() : xt.subdirectory && (n = xt.host)), n = n ? ";domain=" + n : "", o = o ? ";expires=" + o : "", r = r || "", document.cookie = e + "=" + t + n + ";path=/" + r + o + ";SameSite=None;Secure") }, Le.get = function (e) { if (!Ne) return null; for (var t = document.cookie.split(";"); t.length;) { var n = t.pop(), r = n.indexOf("="); if (r = r < 0 ? n.length : r, decodeURIComponent(n.slice(0, r).replace(/^\s+/, "")) === e) return decodeURIComponent(n.slice(r + 1)) } return null }, Le.erase = function (e, t, n) { Le.set(e, "", t, n, "Thu, 01 Jan 1970 00:00:00 GMT") }; var Te = []; function Ae(e, t, n) { if (e) return n(); je(t, n, !0) } function je(e, t, n) { return "function" != typeof t ? (M.error("You should provide a callback function as second argument", { sendToDatadog: n }), !1) : !n && oe.indexOf(e) < 0 ? (M.error("No Weglot event is named " + e, { sendToDatadog: !1 }), !1) : (Te.push({ name: e, callback: t, internal: n }), !0) } function Pe(e) { for (var t = [], n = arguments.length - 1; n-- > 0;)t[n] = arguments[n + 1]; for (var r = Te.filter((function (t) { return t.name === e })), o = 0, a = r; o < a.length; o += 1) { var i = a[o]; try { i.callback.apply(i, t) } catch (e) { if (i.internal) throw e; M.error("Error triggering callback function: " + e, { sendToDatadog: !1 }) } } } function Ie() { if (!u(window.location.hostname) || !document.baseURI) { var e = window.location; return { url: e.href, hostname: e.hostname, pathname: e.pathname, search: e.search } } var t = new se(document.baseURI), n = t.hostname, r = t.pathname, o = t.search; return { url: document.baseURI, hostname: n, pathname: r, search: o } } var Re = Ie(); Ae(xt && Object.keys(xt).length > 0, "onOptionsReady", (function () { if (xt.dynamicPushState) { var e = history.pushState; history.pushState = function () { for (var t = [], n = arguments.length; n--;)t[n] = arguments[n]; e.apply(history, t); var r = Ie(); Re.hostname = r.hostname, Re.pathname = r.pathname, Re.url = r.url, Pe("onCurrentLocationChanged") } } })); var De, We = {}; function Ue(e) { var t = 1; return e.replace(/\((.*?)\)/g, (function () { return "$" + t++ })) } function He() { var e = Re.pathname, t = xt.localeRules; void 0 === t && (t = []); var n = xt.languages, r = { position: 0, translatedFormat: "CODE", originalFormat: "", addedByDefault: !0 }, o = xt.language_from; if (t.length) { var a = []; t.map((function (e) { var t = e.position, n = e.translatedFormat; n && "CODE" !== n && a.push(t || 0) })); var i = a.filter((function (e, t, n) { return n.indexOf(e) === t })).map((function (e) { return Object.assign({}, r, { position: e }) })); t.unshift.apply(t, i) } else t.push(r); var c = null, s = null, l = t.find((function (t) { var r = t.position; void 0 === r && (r = 0); var a = t.translatedFormat; void 0 === a && (a = "CODE"); var i = t.originalFormat; void 0 === i && (i = ""); var l = t.addedByDefault; if (!a.includes("CODE")) return !1; var u = e.split("/"); if (u.length <= r) return !1; var f = u[r + 1], d = n.find((function (e) { var t = e.custom_code || e.language_to, n = a.replace("CODE", t), r = new RegExp("^" + n + "$", "g"); return !!r.test(f) && (s = r, !0) })); if (d) return c = d.custom_code || d.language_to, !0; if (i) { var g = i.replace("CODE", o); return new RegExp("^" + g + "$", "g").test(f) } return !l })) || r; return We.convertLocale = function (t, n, r, a) { if (void 0 === n && (n = e), void 0 === r && (r = c || o), void 0 === a && (a = null), r === t) return n; var i = l.position; void 0 === i && (i = 0); var u = l.originalFormat; void 0 === u && (u = ""); var f = l.translatedFormat; void 0 === f && (f = "CODE"); var d = n.split("/"); if (d.length <= i) return n; var g = d[i + 1]; if (r === o) { var _ = f.replace(/CODE/g, t), p = !1; if (u) { var h = u.replace(/CODE/g, o), m = new RegExp("^" + h + "$", "g"), v = Ue(_); _ = g.replace(m, v), a && !m.test(g) && (p = !0, _ = a.split("/")[i + 1]) } var w = u && !p ? 2 : 1; return d.slice(0, i + 1).concat([_], d.slice(i + w)).join("/") } if (t === o && !u) return d.slice(0, i + 1).concat(d.slice(i + 2)).join("/"); var y = Ue((t === o ? u : f).replace(/CODE/g, t)), b = g.replace(s, y); return d.slice(0, i + 1).concat([b], d.slice(i + 2)).join("/") }, We.language = c || o, We } function Me() { var e = Re.hostname, t = xt.languages.find((function (t) { return t.connect_host_destination && t.connect_host_destination.host === e })); return t ? t.custom_code || t.language_to : xt.language_from } function qe() { return He().language } function ze() { if (De) return De; if (xt.is_connect) { var e = document.documentElement.dataset.wgTranslated; return e ? (De = e, e) : De = xt.subdirectory ? qe() : Me() } return De = xt.language_from } function Fe(e, t) { var n = t; n || (n = ze()); for (var r = 0, o = e; r < o.length; r += 1) { var a = o[r]; if (!a || !a.dataset || !a.dataset.wgOnlyDisplay) return; a.hidden = a.dataset.wgOnlyDisplay !== n } } je("onCurrentLocationChanged", (function () { We = {} }), !0); var Be = { getItem: function (e) { return Le.get(e) }, setItem: function (e, t, n) { void 0 === n && (n = {}); var r = n.domain, o = n.path, a = n.expires; Le.set(e, t, r, o, a) }, removeItem: function (e) { return Le.erase(e) } }, $e = { getItem: function () { }, setItem: function () { }, removeItem: function () { } }; function Ve(e) { void 0 === e && (e = {}); var t = e.type || "local"; try { return "cookie" === t ? Be : window[t + "Storage"] } catch (e) { } return e.type ? $e : Ve({ type: "local" === t ? "cookie" : "local" }) } var Ge = { slugs: {}, version: 0, network: void 0 }; function Je() { return new Promise((function (e) { for (var t = xt.languages, n = {}, r = function () { var r = a[o], i = r.custom_code, c = r.language_to; (function (e) { var t = xt.api_key, n = xt.versions; if (!n || !n.slugTranslation) return Promise.resolve({}); var r = "https://cdn-api-weglot.com/translations/slugs?api_key=" + t + "&language_to=" + e + "&v=" + n.slugTranslation; return fetch(r).then((function (e) { return e.json() })).then((function (e) { return Array.isArray(e) ? {} : e })).catch((function (e) { return M.error(e), {} })) })(c).then((function (r) { n[i || c] = r, Object.keys(n).length === t.length && e(n) })) }, o = 0, a = t; o < a.length; o += 1)r() })) } function Ye(e) { return e ? Object.keys(e).reduce((function (t, n) { return t[n] = function (e) { return Object.keys(e).reduce((function (t, n) { return e[n] && (t.original[n] = e[n], t.translated[e[n]] = n), t }), { original: {}, translated: {} }) }(e[n]), t }), {}) : {} } function Ke(e) { var t = xt.versions; if (t && t.slugTranslation) { var n = t.slugTranslation; Ge.version < n && (Ge.network ? Ge.network.resolved || Ge.network.then((function (t) { return e(Ye(t)) })) : Ge.network = Je().then((function (t) { return Ge.network.resolved = !0, function (e) { var t = xt.versions, n = { version: t ? t.slugTranslation : 1, slugs: e }; try { var r = Ve({ type: "local" }); r && r.setItem(G, JSON.stringify(n)) } catch (e) { M.warn(e) } Ge = Object.assign({}, Ge, n) }(t), e(Ye(t)), t })).catch((function () { return e({}), {} }))), e(Ye(Ge.slugs)) } else e({}) } !function () { if (Object.keys(Ge.slugs).length) return Ge.slugs; try { var e = Ve({ type: "local" }); if (!e) return {}; var t = e.getItem(G); t && (Object.assign(Ge, JSON.parse(t)), Ge.slugs) } catch (e) { return {} } }(); var Xe = {}; function Ze(e, t) { return e.split("/").map((function (e) { return t[decodeURIComponent(e)] || e })).join("/") } function Qe(e, t) { xt.is_tld && xt.auto_switch && (e === xt.language_from ? t.searchParams.set("no_redirect", "true") : t.searchParams.delete("no_redirect")) } function et(e, t) { var n = ze(), r = new se(Re.url); r.searchParams.has("lang") && r.searchParams.delete("lang"), Qe(e, r); var o = function (e) { if (xt.subdirectory) return !1; var t = xt.language_from, n = xt.host, r = xt.languages; if (e === t) return n; var o = r.find((function (t) { return t.custom_code === e || t.language_to === e })) || {}, a = o.connect_host_destination; return a && a.host }(e); return o && (r.hostname = o), r.pathname = function (e, t, n, r) { if (!Object.keys(e).length) return t; if (!Xe.originalPath) if (n !== xt.language_from && e[n]) { var o = e[n].translated; Xe.originalPath = Ze(t, o) } else Xe.originalPath = t; return r === xt.language_from ? Xe.originalPath : e[r] && e[r].original ? Ze(Xe.originalPath, e[r].original) : t }(t, r.pathname, n, e), xt.subdirectory && e && (r.pathname = He().convertLocale(e, r.pathname)), r.toString() } function tt(e, t) { if (!xt.is_connect || !e) return t("#"); var n = xt.dynamicPushState, r = xt.injectedData; void 0 === r && (r = {}); var o = r.allLanguageUrls; if (void 0 === o && (o = {}), !n && o && o[e]) { var a = new se(o[e]); return Qe(e, a), t(a.toString()) } Ke((function (n) { return t(et(e, n)) })) } je("onCurrentLocationChanged", (function () { Xe = {} }), !0); var nt = {}; function rt() { var e = xt.host; return void 0 === e && (e = window.location.hostname), 0 === e.indexOf("www.") ? e.slice(3) : "." + e } function ot() { var e = document.cookie.match(/(^cart=[^;]+|[\W]cart=[^;]+)/g); if (e) { var t = e.map((function (e) { return e.split("=").pop() })); 1 !== t.length && t[0] === t[1] || Le.set("cart", t[0], rt()) } else setTimeout(ot, 100) } function at(e) { var t = "/checkout?locale=" + e + (xt.shopify_skip_shop_pay ? "&skip_shop_pay=true" : ""); fetch(t).then((function (e) { document.location.href = e.url })).catch((function () { document.location.href = t })) } function it(e) { var t = e || ze(), n = ct(t), r = [{ name: "locale", value: n }].concat(xt.shopify_skip_shop_pay ? [{ name: "skip_shop_pay", value: "true" }] : []);[{ name: "action", selector: ['form[method="post"][action*="/cart"]', 'form[method="post"][action*="/checkout"]'], testRegex: /\/(cart|checkout|)\/?(\?|$)/, event: "submit" }, { name: "href", selector: ['a[href*="/checkout"]', 'a[href*="/cart/checkout"]'], testRegex: /\/(cart\/)?checkout\/?(\?|$)/, event: "click" }].forEach((function (e) { for (var o = e.name, a = e.selector, i = e.testRegex, c = e.event, s = document.querySelectorAll(a.join(",")), l = function () { var e = f[u], a = e.getAttribute(o); if (i.test(a) && !r.every((function (e) { return a.includes(e.name + "=" + e.value) }))) { for (var s = 0, l = r; s < l.length; s += 1) { var d = l[s]; a = be(a, d.name, d.value) } e.setAttribute(o, a), e.wgCheckoutListener && e.removeEventListener(c, e.wgCheckoutListener), t !== xt.language_from && xt.fix_shopify_checkout_locale && (e.wgCheckoutListener = function (e) { return e.preventDefault(), e.stopPropagation(), xt.is_connect && !xt.subdirectory ? (Ve({ type: "cookie" }).setItem("wg_checkout_redirect", t), document.location.href = (xt.is_https ? "https:" : "http:") + "//" + xt.host) : at(n), !1 }, e.addEventListener(c, e.wgCheckoutListener)) } }, u = 0, f = s; u < f.length; u += 1)l() })) } function ct(e) { var t = { pt: "pt-PT", ro: "ro-RO", fl: "fil", zh: "zh-CN", tw: "zh-TW" }; return t[e] ? t[e] : e.substr(0, 2) } function st(e) { var t, n, r, o = e || ze(), a = document.getElementById("create_customer") || document.querySelector('form[action="' + (t = o, n = "/account", (xt.is_connect && t !== xt.language_from ? nt[n] ? nt[n] : (Ke((function (e) { var o = e && e[t] ? Ze(n, e[t].original) : n; r = xt.subdirectory ? He().convertLocale(t, o, xt.language_from) : o })), nt[n] = r, r) : n) + '"]')) || "string" == typeof xt.customer_tag && fe(document, xt.customer_tag); if (a) { var i = document.getElementById("weglot-lang-form"); i && i.parentNode.removeChild(i); var c = document.createElement("input"); Object.assign(c, { type: "hidden", id: "weglot-lang-form", name: "customer[tags]", value: "#wg" + o + "#wg" }), a.appendChild(c) } } function lt(e) { var t = function () { var e = document.getElementById("shopify-features"); if (!e) return null; var t = e.textContent.match(/"shopId":(\d*)/); return t ? t[1] : null }(); t && Le.set("checkout_locale", ct(e), null, t) } function ut(e) { var t = e || ze(); if (!xt.visual_editor && !me()) { var n = xt.cart_attributes, r = xt.is_connect, o = xt.original_shopify_checkout, a = xt.subdirectory, i = xt.language_from, c = Ve({ type: "cookie" }).getItem("cart"), s = Ve({ type: "session" }).getItem("wg-cart-update-token"); if (Ve({ type: "session" }).getItem("wg-cart-update-lang") !== ct(t) || c !== s) { var l = n.map((function (e) { return "attributes[" + e + "]=" + ct(t) })).join("&"), u = fetch("/cart/update.js", { method: "POST", body: l, headers: { "Content-Type": "application/x-www-form-urlencoded" }, credentials: "same-origin" }); !1 !== o && r && !a && i === ze() && u.then((function (e) { return e.json() })).then((function (e) { var t = e.token; return Le.set("cart", t, rt()) })), Ve({ type: "session" }).setItem("wg-cart-update-token", c), Ve({ type: "session" }).setItem("wg-cart-update-lang", ct(t)) } for (var f = document.querySelectorAll('a[href*="/cart/"]'), d = "attributes[lang]=" + t, g = 0, _ = f; g < _.length; g += 1) { var p = _[g], h = p.getAttribute("href"); if (h) { var m = h.match(/\/cart\/\d+:\d+(\?)?/); m && (h = h.replace(/&?attributes\[lang\]=([a-zA-Z-]+)/g, ""), p.setAttribute("href", h + (m[1] ? "&" : "?") + d)) } } } } function ft(e) { if (xt.language_from !== e) { window.Shopify && (window.Shopify.locale = e), !we() && xt.order_tag && ut(e), it(e), lt(e); var t = document.querySelectorAll("[data-wg-only-display]"); t.length && Fe(t, e), xt.customer_tag && st(e) } } je("onCurrentLocationChanged", (function () { nt = {} }), !0), Se("onWeglotSetup", (function () { !1 !== xt.original_shopify_checkout && xt.is_connect && !xt.subdirectory && xt.language_from === ze() && ot() })); var dt = ["#isp_search_result_page_container", ".snize-ac-results", "#snize_results", ".snize-recommendation", ".snize-modal", ".snize-search-results-header", "div>span.cc-message", ".hc-widget", ".jdgm-rev-widg__header", ".jdgm-rev__body", ".jdgm-rev-title", ".yotpo-main-widget", "#swell-popup", ".swell-tab", ".yotpo-widget-override-css", ".cw-row", ".mini-popup-container", "email-field cw-form-control", "phone-field cw-form-control", ".sms-policy-text", ".wlo-content-holder", ".wlo-wheel-holder", ".yotpo-smsbump-modal__content", ".cw-compliance-text", "#saso-notifications", ".saso-cross-sell-popup", ".saso-cart-item-discount-notes", ".saso-cart-item-upsell-notes", ".saso-volume-discount-tiers", ".opw-leading-normal", ".opw-my-2.opw-leading-normal.opw-text-lg.opw-text-left", ".opinew-navbar.opw-flex.opw-items-center.opw-justify-between.opw-flex-wrap.opw-py-4.opw-px-6", ".main-content-container.opw--mx-1", ".opw-text-center.opw-text-sm.opw-border-solid.opw-border-0.opw-mt-3", ".summary-card-container.opw-mx-1", ".opw-reviews-container.opw-mt-3.opw--mx-1", ".opinew-reviews-title.opw-flex.opw-items-center.opw-flex-no-shrink.opw-mr-6", ".opw-flex.opw-flex-row-reverse", "#opinew-app-container", ".gem_dynamic-content", ".pp_tracking_content", ".pp_all_form_div", ".pp_tracking_result_title", ".progress-bar-style", ".pp_tracking_left", ".pp_num_status_show", ".pp_tracking_status_tips", ".pp_page_map_div", ".pp_tracking_result_parent", ".pp_tracking_right", ".pp_recommend_product_parent", ".currency-converter-cart-note", ".cbb-shipping-rates-calculator", ".cbb-frequently-bought-container", ".cbb-frequently-bought-discount-applied-message", ".cbb-also-bought-container", "#zonos", ".buddha-menu-item", ".R-GlobalModal", ".ruk-rating-snippet-count", ".R-ContentList-container", ".R-ReviewsList-container", ".R-SliderIndicator-group", ".R-TextBody", ".widgetId-reviewsio-carousel-widget", ".REVIEWSIO-FloatingMinimised", ".REVIEWSIO-FloatingMinimised__Container", ".reviewsio-carousel-widget", ".reviews-io-floating-widget", ".reviews_container", ".site-nav.style--sidebar .site-nav-container .subtitle", ".search-more", ".variant-quantity", ".lion-claimed-rewards-list", ".lion-header", ".lion-header__join-buttons", ".lion-header__join-today", ".lion-history-table", ".lion-integrated-page-section__heading-text", ".lion-loyalty-panel", ".lion-loyalty-splash", ".lion-loyalty-widget", ".lion-modal__content", ".lion-modal__header", ".lion-referral-widget", ".lion-rewards-list", ".lion-rules-list", ".lion-tier-overview", ".ccpops-popup__content__bottom-text", ".ccpops-popup__content__top-text", ".ccpops-trigger__text", ".ks-table-row", ".klaviyo-form"]; var gt = {}; function _t(e) { return e ? "string" != typeof e ? e : e.split(",").map((function (e) { return { value: e } })) : [] } function pt(e, t) { if (void 0 === t && (t = ""), !e) return ae.button_style; var n = e.classF || "", r = n.match(/flag-(\d)/), o = { with_name: e.withname, full_name: !!e.fullname, is_dropdown: !!e.is_dropdown, with_flags: -1 !== n.indexOf("wg-flags"), flag_type: r && r[1] ? ie[r[1]] : "", invert_flags: !0 }; return t && (o.custom_css = t), o } function ht(e) { var t = e.styleOpt, n = e.containerCss, r = e.target, o = e.sibling; return { style: pt(t, n), location: { target: r, sibling: o } } } gt[J] = function () { je("initialized", (function () { var e = Ve({ type: "cookie" }).getItem("wg_checkout_redirect"); e && (Ve({ type: "cookie" }).removeItem("wg_checkout_redirect"), Ve({ type: "cookie" }).setItem("wg_checkout_language", e), at(e)), window.langify && M.log("%c Please, uninstall langify to properly use Weglot", { sendToDatadog: !1 }), we() || !xt.order_tag || xt.is_connect && xt.language_from !== ze() || ut(), it(); var t, n = document.querySelectorAll("[data-wg-only-display]"); n.length && Fe(n), xt.customer_tag && st(), document.getElementsByClassName("shopify-payment-button").length && (t = window.fetch, window.fetch = function () { if ("/wallets/checkouts.json" === arguments[0]) try { var e = JSON.parse(arguments[1].body), n = ct(ze()); e.checkout.attributes = {}, xt.cart_attributes.forEach((function (t) { return e.checkout.attributes[t] = n })), arguments[1].body = JSON.stringify(e) } catch (e) { } return t.apply(window, arguments) }) }), !0), Se("onConnectPageLoad", (function (e) { return ft(e) })), Se("onPageLanguageSet", (function (e) { return ft(e) })), Se("onDynamicDetected", (function () { it(ze()) })), Se("startWhen", (function () { return ge("admin-bar-iframe") || ge("preview-bar-iframe") || xt.private_mode || function () { for (var e = 0, t = document.scripts; e < t.length; e += 1)if (-1 !== t[e].src.indexOf("preview_bar_injector")) return !0; return !1 }() })); var e = [".shopify-payment-button button"].concat(dt).concat(xt.is_connect ? [] : ["form.cart.ajaxcart", "form.cart-drawer", "#cross-sell", ".wheelio_holder", ".mini-cart", "#shopify-product-reviews", "#esc-oos-form", ".product__add-to-cart-button", "select.product-variants>option:not([value])", ".ui-autocomplete", ".shopify-payment-button__button", "#shopify-section-static-recently-viewed-products", "#recently-viewed-products", "#shopify-section-product-recommendations", ".action_button.add_to_cart"]), t = /^\/(\d+\/checkouts|checkouts\/[a-z]{1,2})\/(?:\w{2}-)?\w{32}/.test(document.location.pathname), n = "loox.io" === document.location.hostname && me(); return Object.assign({}, { cart_attributes: ["lang", "Invoice Language"], excluded_blocks: ["input[type='radio']", "span.money", ".price", ".product__prices", "#admin-bar-iframe", ".notranslate", ".skiptranslate", "#isp_refine_nevigation", "#isp_header_subtitle", ".isp_sorting_and_result_view_wrapper", "#isp_results_did_you_mean > span", ".isp_facet_show_hide_values", "#isp_main_search_box", ".snize-filter-variant-count", ".snize-search-results-header a", ".snize-search-results-header b", ".hc-author__text", ".hc-avatar__initials", ".hc-rating-chart__count", ".hc-rating-chart__percentage-value", ".yotpo-review-date", ".yotpo-user-name", ".yotpo-user-letter", ".yotpo .avg-score", ".yotpo .sr-only", ".yotpo-mandatory-mark"].map((function (e) { return { value: e } })), search_forms: "form[action='/pages/search-results'],form[action='/search']", search_parameter: "q" }, n && xt.is_connect && { dynamicPushState: !0 }, { dynamics: e.map((function (e) { return { value: e } })), extra_definitions: [{ type: 1, selector: ".snize-color-swatch", attribute: "data-sntooltip" }, { type: 1, selector: "button[data-pf-type=ProductATC]", attribute: "data-soldout" }, { type: 1, selector: "button[data-pf-type=ProductATC]", attribute: "data-adding" }, { type: 1, selector: "button[data-pf-type=ProductATC]", attribute: "data-added" }], shopifyCheckout: t }) }, gt[Y] = function () { return Se("onPageLanguageSet", (function (e) { !function (e) { for (var t = 0, n = document.querySelectorAll('[href*="/checkout.php"],[href*="/cart.php"]'); t < n.length; t += 1) { var r = n[t]; r.setAttribute("href", be(r.getAttribute("href"), "lang", e)) } }(e) })), { dynamics: [".quick-shop-details", "#QuickViewProductDetails", ".QuickViewModal", ".modalContainer", ".ng-checkout-container", ".previewCartAction", "#checkout-app"].map((function (e) { return { value: e } })), search_forms: "form[action='/search.php']", search_parameter: "search_query" } }, gt[te] = function () { return xt.is_connect ? {} : { dynamics: [{ value: ".content" }] } }, gt[K] = function () { return { excluded_blocks: ['[data-display="cms-only"]', ".j-admin-links", ".cc-m-status-empty"].map((function (e) { return { value: e } })) } }, gt[X] = function () { var e = [], t = ["body.sqs-is-page-editing"]; document.getElementById("sqs-cart-root") && (e.push("#sqs-cart-container"), t.push("#sqs-cart-container [class*=subtotalPrice]", "#sqs-cart-container .cart-container .item-price")), document.getElementById("sqs-standard-checkout") && (e.push("#checkout"), t.push("#checkout span.money", "#checkout [data-test*=incomplete] [class^=PaymentCard-container]", "#checkout [data-test*=incomplete] [class^=CustomerAddress-container]", "#checkout [class^=CustomerInfoSection-email]", "#checkout [class^=GoogleResultsList]")); var n = window.location.host.endsWith("squarespace.com"); if (je("initialized", (function () { try { var e = window.ExtensionScriptsSDK; if (!e) return; e["1.0"].page.events.dispatchScriptLoadEvent("Weglot") } catch (e) { } })), !xt.is_connect) try { document.querySelectorAll(".animation-segment-wrapper").forEach((function (e) { e.parentNode.dataset.dynamicStrings = e.textContent })), document.querySelectorAll(".animation-segment-parent-hidden").forEach((function (e) { e.dataset.dynamicStrings = "" })), t.push(".animation-segment-wrapper"), t.push(".animation-segment-parent-hidden > *") } catch (e) { } return { force_translation: e.join(","), dynamics: ["#sqs-cart-container", "#checkout", ".sqs-widgets-confirmation", ".video-player", ".jdgm-widget", ".calendar-block", ".opentable-v2-block", ".blog-item-comments"].map((function (e) { return { value: e } })).concat(xt.is_connect ? [{ value: ".sqs-add-to-cart-button.cart-adding" }, { value: ".sqs-add-to-cart-button.cart-added" }] : [{ value: "[data-dynamic-strings]" }, { value: ".sqs-add-to-cart-button" }, { value: ".variant-select-wrapper" }]), excluded_blocks: t.map((function (e) { return { value: e } })).concat(xt.is_connect ? [{ value: ".comment-body" }] : []), forceDisableConnect: n, merged_selectors_remove: [{ value: ".plyr__menu__container" }, { value: ".product-price .original-price" }, { value: ".comment-btn-wrapper" }], extra_definitions: [{ type: 1, selector: ".variant-select-wrapper", attribute: "data-text" }] } }, gt[Z] = function () { var e = { dynamics: document.documentElement.getAttribute("data-wg-translated") ? [] : [{ value: "#SITE_CONTAINER" }], dynamicPushState: !0 }; if (window.wixBiSession && "bolt" !== window.wixBiSession.renderType && !xt.visual_editor && (document.addEventListener("DOMContentLoaded", (function () { new MutationObserver((function (e) { for (var t = 0; t < e.length; t++) { "SUCCESS" === e[t].target.getAttribute("data-santa-render-status") && (this.disconnect(), Pe("start")) } })).observe(document.getElementById("SITE_CONTAINER"), { attributes: !0, attributeFilter: ["data-santa-render-status"] }) })), e.delayStart = !0, e.wait_transition = !1), window.wixBiSession && "bolt" === window.wixBiSession.renderType) { var t = 0, n = setInterval((function () { (document.body && window.sssr || 40 === t) && (Pe("start"), clearInterval(n)), t++ }), 100); e.delayStart = !0, e.wait_transition = !1 } return e }, gt[Q] = function () { return je("switchersReady", (function () { var e = document.querySelector(".weglot-container"); e && e.classList.add("weglot-container--left") })), { forceDisableConnect: window.Webflow && window.Webflow.env && !!window.Webflow.env("editor"), excluded_blocks: [".wg-element-wrapper"].map((function (e) { return { value: e } })), linkHooksConfig: { additionalCheckSelectors: [".weglot-switcher-component a[lang]"], buildAdditionalSelectors: function (e) { return ['.weglot-switcher-component a[lang="' + e + '"]'] }, onLinkActive: function (e) { e.classList.add("w--current"), e.setAttribute("aria-current", "lang") }, offLinkActive: function (e) { e.classList.remove("w--current"), e.removeAttribute("aria-current") } } } }, gt[ee] = function () { return { dynamics: [".w-container", ".w-wrapper", ".product-header", ".product-messages", ".error", "button"].map((function (e) { return { value: e } })) } }, gt[ne] = function () { return { ignoreDynamicFragments: !0, dynamicPushState: !0, merged_selectors_remove: [{ value: ".themeProfileMenu" }] } }; var mt = [{ from: "originalLanguage", to: "language_from" }, { from: "autoSwitch", to: "auto_switch" }, { from: "autoSwitchFallback", to: "auto_switch_fallback" }, { from: "waitTransition", to: "wait_transition" }, { from: "subDomain", to: "subdomain" }, { from: "translateSearch", to: "translate_search" }, { from: "searchsForms", to: "search_forms" }, { from: "searchParameter", to: "search_parameter" }, { from: "hideSwitcher", to: "hide_switcher" }, { from: "dangerouslyForceDynamic", to: "dangerously_force_dynamic" }, { from: "loadingBar", to: "loading_bar" }, { from: "customerTag", to: "customer_tag" }, { from: "orderTag", to: "order_tag" }, { from: "translateImages", to: "media_enabled" }, { from: "extraDefinitions", to: "extra_definitions" }, { from: "excludePaths", to: "excluded_paths", func: function (e) { return e ? "string" != typeof e ? e : e.split(",").filter((function (e) { return !!e })).map((function (e) { return { value: e, type: "CONTAIN" } })) : [] } }, { from: "exceptions", to: "excluded_blocks", func: _t }, { from: "whiteList", to: "whitelist", func: _t }, { from: "styleOpt", to: "button_style", func: pt }, { from: "destinationLanguages", to: "languages", func: function (e) { return "string" != typeof e ? e : e.split(",").map((function (e) { return { language_to: e, provider: null, automatic_translation_enabled: !0 } })) } }]; function vt(e) { var t = Object.assign({}, e); return t.switchers && ("string" == typeof t.switchers && (t.switchers = JSON.parse(t.switchers)), t.switchers.length && t.switchers[0].styleOpt && (t.switchers = t.switchers.map(ht)), t.scriptParamSwitcher = !0), Array.isArray(t.dynamic) && (t.dynamic = t.dynamic.join(",")), Array.isArray(t.translate_iframes) && (t.translate_iframes = t.translate_iframes.join(",")), t.translate_images && (t.media_enabled = !0), mt.forEach((function (e) { var n = e.from, r = e.to, o = e.func; void 0 !== t[n] && (t[r] = o ? o(t[n]) : t[n], delete t[n]) })), t } function wt(e, t) { var n = {}; for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && -1 === t.indexOf(r) && (n[r] = e[r]); return n } var yt = {}; function bt(e) { if (!e || !e.api_key) throw Error("You have to provide at least a key"); var t = e.api_key.split("wg_").pop(), n = vt(e); return function (e) { if (u(window.location.hostname)) return fetch("https://api.weglot.com/projects/settings?api_key=wg_" + e).then((function (e) { return e.json() })); var t = kt(); if (t) { var n = t.settings, r = wt(t, ["settings"]); return n.injectedData = r, Promise.resolve(n) } var o = function (e) { if (!e.includes(z)) return null; var t = e.split(".")[0]; if (t.includes("-")) { return t.split("-").reverse()[0] } return t }(window.location.hostname); if (o) return fetch("" + q + o + ".json").then((function (e) { return e.json() })).then((function (e) { return "SUBDOMAIN" === e.url_type && (e.languages = e.languages.map((function (e) { return Object.assign({}, e, { connect_host_destination: Object.assign({}, e.connect_host_destination, { is_dns_set: !0, created_on_aws: 1, host: (e.custom_code || e.language_to) + "-" + o + "." + z }) }) }))), e.is_dns_set = !0, e.previewHash = o, e })); return fetch("" + q + e + ".json").then((function (e) { return e.json() })) }(t).then((function (e) { var t = e.custom_settings, r = wt(e, ["custom_settings"]); n.button_style = Object.assign(t ? t.button_style : {}, n.button_style); var o = r.language_from, a = r.languages; o && (n.language_from = o), a && (n.languages = a), t && t.localeRules && (n.localeRules = t.localeRules); var i = Ct(Object.assign({}, r, t, n)); return Pe("onOptionsReady"), i })).catch((function (e) { M.error(e, { consoleOverride: e && e.wgErrMsg || "Cannot fetch Weglot options. Is your key correct?", sendToDatadog: !1 }) })) } function kt() { var e = ge("weglot-data"); if (!e) return null; try { var t = JSON.parse(e.innerHTML); return t.settings ? t : null } catch (e) { return null } } function Et() { var e = kt(); e && (delete e.settings, yt.injectedData = e) } function Ct(e) { if (e.deleted_at) throw { wgErrMsg: "Cannot load Weglot because the project has been deleted" }; e.injectedData || ke(Et), "SUBDIRECTORY" === e.url_type && e.is_dns_set && (e.subdirectory = !0), e.languages.length || (e.languages = []), yt.is_connect = e.subdirectory || e.languages.some((function (e) { return e.connect_host_destination && e.connect_host_destination.is_dns_set && e.connect_host_destination.created_on_aws })), e.subdomain = !e.subdirectory && (e.subdomain || yt.is_connect), e.dynamic && (e.dynamics || (e.dynamics = e.dynamic.split(",").map((function (e) { return { value: e.trim() } }))), delete e.dynamic), u(window.location.hostname) && (yt.visual_editor = !0), (function () { -1 !== location.search.indexOf("weglot-private=0") && Ve().removeItem("wg-private-mode"); var e = document.getElementById("admin-bar-iframe") || document.getElementById("preview-bar-iframe") || -1 !== location.search.indexOf("weglot-private=1") || "1" === Ve({ type: "cookie" }).getItem("wg-private-mode"); return e && Ve({ type: "cookie" }).setItem("wg-private-mode", "1"), e }() || yt.switcher_editor || yt.visual_editor) && (yt.private_mode = !0); var t, n, r, o = e.technology_name || yt.technology_name, a = (t = o) && gt[t] ? gt[t]() : {}, i = Object.assign({}, ae, a); if (Object.assign(yt, i, e), re.forEach((function (e) { var t, n; yt[e] !== i[e] && (yt[e] = (t = yt[e], (n = i[e]) ? Array.isArray(t) ? [].concat(t, n) : "object" == typeof t ? Object.assign({}, t, n) : (t = t.split(",").filter((function (e) { return e })).join(",")) && t.length > 0 && t !== n ? t += "," + n : t = n : t)) })), n = "https://cdn.weglot.com/weglot.min.css?v=4", (r = document.createElement("link")).rel = "stylesheet", r.type = "text/css", r.href = n, document.head.appendChild(r), yt.button_style && yt.button_style.custom_css && ve(yt.button_style.custom_css, "weglot-custom-style"), yt.switchers && 0 !== yt.switchers.length ? yt.switchers = yt.switchers.map((function (e) { var t = e.button_style, n = wt(e, ["button_style"]); return Object.assign({}, { style: n.style || t }, n) })) : yt.switchers = [{ style: yt.button_style, location: {}, default: !0 }], yt.cache && yt.visual_editor && (yt.cache = !1), yt.api_key.length < 36 && (yt.translation_engine = 1), yt.excluded_blocks_remove && (yt.excluded_blocks = yt.excluded_blocks.filter((function (e) { return !yt.excluded_blocks_remove.includes(e.value) }))), yt.dangerously_force_dynamic && (yt.dynamics = yt.dynamics.concat(yt.dangerously_force_dynamic.split(",").map((function (e) { return { value: e.trim() } })))), yt.excluded_blocks = yt.excluded_blocks.filter((function (e) { return ye(e.value) })), yt.dynamics = yt.dynamics.filter((function (e) { return ye(e.value) })), yt.dynamics_remove && (yt.dynamics = yt.dynamics.filter((function (e) { return !yt.dynamics_remove.includes(e.value) }))), yt.is_tld = !1, a.forceDisableConnect && (yt.is_connect = !1), yt.is_connect && !yt.previewHash) { var c = yt.host.split("www.").pop(); yt.is_tld = yt.languages.some((function (e) { if (e.connect_host_destination && e.connect_host_destination.host) return -1 === e.connect_host_destination.host.indexOf(c) })) } return yt.whitelist && !Array.isArray(yt.whitelist) && (yt.whitelist = [{ value: String(yt.whitelist) }]), yt } var xt = yt; var St = { "Node.prototype.contains": document.contains, "Element.prototype.cloneNode": "document" in self && "cloneNode" in document.documentElement, "location.origin": "location" in self && "origin" in self.location, MutationObserver: "MutationObserver" in self, Promise: "Promise" in self && "resolve" in Promise, "Element.prototype.matches": "document" in self && "matches" in document.documentElement, "Element.prototype.closest": "document" in self && "closest" in document.documentElement, "Element.prototype.classList": "document" in self && "classList" in document.documentElement && function () { var e = document.createElement("div"); if (!(e.classList && e.classList.add && e.classList.remove && e.classList.contains && e.classList.toggle)) return !1; var t = !0; e.classList.add("add1", "add2"), t = t && e.className.indexOf("add1") >= 0 && e.className.indexOf("add2") >= 0, e.className = "remove1 remove2 remove3", e.classList.remove("remove1", "remove3"), t = t && -1 === e.className.indexOf("remove1") && e.className.indexOf("remove2") >= 0 && -1 === e.className.indexOf("remove3"); try { e.remove() } catch (t) { e = null } return t }(), "String.prototype.includes": "includes" in String.prototype, fetch: "fetch" in self, "Array.prototype.find": "find" in Array.prototype, "Array.prototype.findIndex": "findIndex" in Array.prototype, "Object.assign": "assign" in Object, "Array.prototype.includes": "includes" in Array.prototype, URL: function (e) { try { var t = new e.URL("http://weglot.com"); if ("href" in t && "searchParams" in t) { var n = new URL("http://weglot.com"); if (n.search = "a=1&b=2", "http://weglot.com/?a=1&b=2" === n.href && (n.search = "", "http://weglot.com/" === n.href)) { var r = new e.URLSearchParams("a=1"), o = new e.URLSearchParams(r); if ("a=1" === String(o)) return !0 } } return !1 } catch (e) { return !1 } }(self) }, Ot = !1; function Nt() { Ot = !0, Pe("polyfillReady") } function Lt() { return Ot } !function (e) { window.Prototype && (delete Object.prototype.toJSON, delete Array.prototype.toJSON); var t = Object.keys(St).filter((function (e) { return !St[e] })); if (t.length) { !function (e, t, n) { var r = !1; function o() { r || (r = !0, setTimeout((function () { return t(n) }), 20)) } var a = document.getElementsByTagName("head")[0] || document.documentElement, i = document.createElement("script"); i.type = "text/javascript", i.src = e, i.addEventListener ? (i.addEventListener("load", o, !1), i.addEventListener("error", o, !1)) : i.readyState && (i.onreadystatechange = o), a.insertBefore(i, a.firstChild) }("https://cdn.polyfill.io/v2/polyfill.min.js?callback=Weglot.polyReady&features=" + t.join(","), (function () { })) } else e() }(Nt); var Tt = [{ condition: [{ type: "TECHNOLOGY_ID", payload: 2 }], value: [{ original: "^/checkouts/(?:[\\w]{32})(/.*)?$", formatted: "/checkouts$1" }, { original: "^/account/(orders|activate)/(?:[\\w]{32})$", formatted: "/account/$1/" }, { original: "^/orders/(?:[\\w]{32})$", formatted: "/orders/" }, { original: "^/wallets/checkouts/(?:.*)$", formatted: "/wallets/checkouts/" }, { original: "^/(.+)\\.(json|xml)$", formatted: "/$1" }] }], At = !1, jt = {}, Pt = {}, It = Ve({ type: "local" }); if (It.getItem(V)) try { jt = JSON.parse(It.getItem(V)), Object.keys(jt).forEach((function (e) { Object.keys(jt[e]).forEach((function (t) { if (2 === t.length) { Pt[t] || (Pt[t] = {}); var n = jt[e][t]; Pt[t][n] = e } })) })), At = !0 } catch (lr) { At = !0 } function Rt(e) { return jt[e] } function Dt(e, t, n, r) { var o, a = Rt(e); a ? (a[r] = n, a.createdTime = (new Date).getTime(), a.t = t) : jt[e] = ((o = {})[r] = n, o.createdTime = (new Date).getTime(), o.t = t, o), Pt[r] || (Pt[r] = {}), Pt[r][n] = e, xt.cache && Ee(Wt)() } var Wt = function () { return jt && It.setItem(V, JSON.stringify(jt)) }; var Ut = [], Ht = new Set, Mt = !1, qt = function (e) { return Ht.has(pe(e).trim()) }, zt = function (e) { return Ht.add(pe(e).trim()) }; function Ft(e, t) { void 0 === e && (e = document.documentElement); var n = ze(); return E(e).filter((function (e) { return (t || Bt)(e) })).map(function (e) { return function (t) { var n = t.element, r = t.words, o = t.type, a = t.properties, i = t.attrSetter; n.weglot || (n.weglot = { content: [] }); var c, s, l = n.weglot, u = {}, f = (c = r, !!Pt[s = e] && Pt[s][c]); if (f && (u[e] = r, r = f), a) { var d = l.content.find((function (e) { return e.html })); d ? Object.assign(d, { original: r, properties: a, translations: u }) : l.content.push({ html: !0, original: r, type: o, properties: a, translations: u }) } if (i) { var g = l.content.find((function (e) { return e.attrSetter === i })), _ = { attrSetter: i, original: r, type: o, translations: u }; g ? Object.assign(g, _) : l.content.push(_) } return n } }(n)) } function Bt(e) { var t = e.element, n = e.words; return !t.weglot || !t.weglot.content || !t.weglot.content.some((function (e) { var t, r = e.original, o = e.translations; return r === n || (t = o, Object.keys(t).map((function (e) { return t[e] }))).includes(pe(n)) })) } function $t(e) { for (var t = [], n = 0, r = e; n < r.length; n += 1) { var o = r[n]; -1 === Ut.indexOf(o) && t.push(o) } return [].push.apply(Ut, t), t } function Vt(e, t) { void 0 === e && (e = Ut), void 0 === t && (t = {}); var n = xt.prevent_retranslation, r = xt.injectedData; void 0 === r && (r = {}); var o = xt.is_connect; if (n && o && !Mt) { var a = r.translatedWordsList; void 0 === a && (a = []), a.forEach((function (e) { return zt(e) })), Mt = !0 } for (var i = [], c = {}, s = 0, l = e; s < l.length; s += 1)for (var u = 0, f = l[s].weglot.content; u < f.length; u += 1) { var d = f[u], g = d.original, _ = d.type; c[g] || (n && qt(g) || (c[g] = !0, i.push(Object.assign({}, { t: _, w: g }, t.label && { l: t.label })))) } return i } function Gt(e, t, n) { if (void 0 === t && (t = ze()), void 0 === n && (n = Ut), e && e.to_words && e.to_words.length) for (var r = e.from_words, o = e.to_words, a = 0, i = n; a < i.length; a += 1)for (var c = 0, s = i[a].weglot.content || {}; c < s.length; c += 1) { var l = s[c], u = l.original, f = l.translations, d = r.indexOf(pe(u)); if (-1 !== d && !f[t]) { var g = (_ = o[d]) && _.replace && _.replace(/wg-(\d+)=""(\s*)\/(\s*)>/g, 'wg-$1="">'); xt.prevent_retranslation && zt(g), f[t] = g } } var _; try { T(n, t) } catch (e) { M.error(e) } } function Jt(e) { if (e && e.toLowerCase) { var t = e.toLowerCase(), n = xt.languages.find((function (e) { var n = e.language_to, r = e.custom_code; return n === t || (r ? r.toLowerCase() === t : void 0) })); return n ? n.language_to : e } } function Yt(e, t) { var n; void 0 === t && (t = { cdn: !1, search: !1 }); var r = e.l_to, o = e.words; e.l_to = Jt(r); var a, i = o; if (!xt.visual_editor) { if (n = function (e, t) { var n = [], r = [], o = []; return e.forEach((function (e) { var a = Rt(e.w); a && a[t] ? (n.push(a[t]), r.push(pe(e.w))) : o.push(e) })), { cachedWords: { to_words: n, from_words: r }, newWords: o } }(o, r), i = n.newWords, (a = n.cachedWords).to_words.length && !t.search) { if (!i.length) return Promise.resolve(a); Gt(a, r, t.nodes) } At && [].push.apply(i, function () { At = !1; var e = (new Date).getTime(); return Object.keys(jt).filter((function (t) { return jt[t].createdTime + 216e5 < e })).map((function (e) { return { t: jt[e].t, w: e } })) }()) } return i.length ? (e.words = i, e.request_url = function () { var e = function () { if (xt.visual_editor) return new se(Re.url); var e = xt.technology_name, t = xt.injectedData; if (e === Z) return new se(window.location.href); if (t && t.originalCanonicalUrl) try { return new se(t.originalCanonicalUrl) } catch (e) { } var n = document.querySelector("link[rel='canonical'][href]"); if (n) try { return new se(n.href) } catch (e) { } return new se(window.location.href) }(); e.pathname = (t = e.pathname, t.split("/").filter((function (e) { return !e || isNaN(Number(e)) })).join("/")); var t; for (var n = 0, r = Tt.filter((function (e) { return e.condition.some((function (e) { var t = e.type, n = e.payload; return "TECHNOLOGY_ID" === t && n === xt.technology_id })) })); n < r.length; n += 1) { var o = r[n].value; try { for (var a = 0, i = o; a < i.length; a += 1) { var c = i[a], s = c.original, l = c.formatted, u = e.pathname.replace(new RegExp(s), l); if (u !== e.pathname) return e.pathname = u, e.toString() } } catch (e) { M.warn(e, { consoleOverride: "Invalid URL regex, " + e.stack }) } } return e.toString() }(), function (e) { var t = xt.versions && xt.versions.translation || 1, n = ["api_key=" + xt.api_key, "v=" + t], r = "https://" + (xt.bypass_cdn_api ? "api.weglot.com" : "cdn-api-weglot.com") + "/translate?" + n.join("&"); return fetch(r, { method: "POST", body: Kt(JSON.stringify(e)) }).then(Xt).then((function (e) { return e.json() })).then((function (e) { if (!e || !e.to_words) throw M.warn(e), Error("An error occurred, please try again later"); return e })) }(e).then((function (e) { return i.forEach((function (t, n) { var o = e.to_words[n]; Dt(t.w, t.t, o, r) })), e }))) : t.search && a ? Promise.resolve(a) : Promise.resolve({ to_words: [], from_words: [] }) } function Kt(e) { return e.replace(/[\u007F-\uFFFF]/g, (function (e) { return "\\u" + ("0000" + e.charCodeAt(0).toString(16)).substr(-4) })) } function Xt(e) { if (400 === e.status) throw Error("You reached Weglot limitation. Please upgrade your plan."); if (401 === e.status) throw Error("Your Weglot API key seems wrong."); if (e.status >= 402) throw Error(e.statusText); return e } function Zt(e) { var t = xt.api_key; return fetch("https://api.weglot.com/pageviews?api_key=" + t, { method: "POST", body: JSON.stringify({ url: e || Re.url, language: ze(), browser_language: navigator.language }) }) } var Qt, en = {}; function tn(e) { return { START_WITH: function (t) { return 0 === e.indexOf(t) }, NOT_START_WITH: function (t) { return 0 !== e.indexOf(t) }, END_WITH: function (t) { return -1 !== e.indexOf(t, e.length - t.length) }, NOT_END_WITH: function (t) { return -1 === e.indexOf(t, e.length - t.length) }, CONTAIN: function (t) { return -1 !== e.indexOf(t) }, NOT_CONTAIN: function (t) { return -1 === e.indexOf(t) }, IS_EXACTLY: function (t) { return e === t }, NOT_IS_EXACTLY: function (t) { return e !== t }, MATCH_REGEX: function (t) { try { return new RegExp(t, "i").test(e) } catch (e) { return M.warn(e, { consoleOverride: t + " is an invalid regex", sendToDatadog: !1 }), !1 } } } } function nn(e) { var t = xt.excluded_paths, n = Re.pathname; if (n = n.toLowerCase(), "shopify.weglot.com" === window.location.host || !t || !t.length) return !1; if ("string" == typeof t && t.split(",").some((function (e) { return new RegExp(e, "i").test(n) }))) return { allExcluded: !0, language_button_displayed: !0 }; var r = e || Jt(ze()); return void 0 !== en[r] && en.currentLang === r || (en.currentLang = r, xt.injectedData && xt.injectedData.originalPath && (n = xt.injectedData.originalPath.toLowerCase()), t.some((function (e) { var t = e.type, o = e.value, a = e.excluded_languages, i = e.language_button_displayed, c = e.regex; o = o.toLowerCase(); var s = { language_button_displayed: i, allExcluded: !(!a || !(0 === a.length || a.length >= xt.languages.length)) }; if (a && a.length && !a.includes(r)) return !1; var l = tn(n); if (c && !t.startsWith("NOT") ? l.MATCH_REGEX(c) : l[t](o)) return en[r] = s, !0; var u = n; try { u = decodeURIComponent(n) } catch (e) { return } if (u !== n) { var f = tn(u); return (c && !t.startsWith("NOT") ? f.MATCH_REGEX(c) : f[t](o)) ? (en[r] = s, !0) : void 0 } }))), en[r] } function rn() { if (Qt) return Qt; if (!xt.api_key) return M.warn("Weglot must be initialized to use it.", { sendToDatadog: !1 }), []; var e = (xt.languages || []).filter((function (e) { var t = nn(e.language_to), n = !t || t.language_button_displayed; return (!1 !== e.enabled || xt.private_mode) && n && (xt.subdirectory || !xt.is_connect || e.connect_host_destination && e.connect_host_destination.created_on_aws) })).map((function (e) { return e.custom_code || e.language_to })), t = [xt.language_from].concat(e); return Qt = t.filter((function (e, n) { return e && t.indexOf(e) == n })), e.length || M.log("No public language available.", { sendToDatadog: !1 }), Qt } je("onCurrentLocationChanged", (function () { en = {} }), !0), je("onCurrentLocationChanged", (function () { Qt = null }), !0); var on = [{ codes: ["no"], pattern: /^(nn|nb)(-[a-z]+)?$/i }, { codes: ["zh"], pattern: /^zh(-hans(-\w{2})?)?(-(cn|sg))?$/i }, { codes: ["tw", "zh-TW"], pattern: /^zh-(hant)?-?(tw|hk|mo)?$/i }, { codes: ["br"], pattern: /^pt-br$/i }, { codes: ["fl"], pattern: /^fil$/i }]; function an(e) { void 0 === e && (e = rn()); for (var t = {}, n = {}, r = 0, o = e; r < o.length; r += 1) { var a = o[r], i = a.toLowerCase(), c = i.substring(0, 2); t[c] || (t[c] = []), t[c].push(i), n[i] = a } for (var s = 0, l = navigator.languages || [navigator.language]; s < l.length; s += 1) { var u = l[s], f = u.toLowerCase(), d = f.substring(0, 2); if (n[f]) return n[f]; for (var g = 0, _ = on; g < _.length; g += 1) { var p = _[g], h = p.codes, m = p.pattern, v = h.find((function (t) { return e.includes(t) })); if (v && m.test(u)) return v } if (t[d]) { if ("zh" === d) continue; var w = t[d].indexOf(d); return w >= 0 ? n[t[d][w]] : n[t[d].shift()] } } } function cn() { var e = window.location.search.indexOf("no_redirect=true") > -1; if (!(!xt.auto_switch || xt.subdirectory || e || Ve({ type: "cookie" }).getItem("WG_CHOOSE_ORIGINAL") || we() || xt.visual_editor)) { var t = an(); return t && !nn(t) ? t : xt.auto_switch_fallback && !nn(xt.auto_switch_fallback) ? xt.auto_switch_fallback : void 0 } e && sn(ze()) } function sn(e) { if (e === xt.language_from) { var t = new Date; t.setTime(t.getTime() + 2592e6), Ve({ type: "cookie" }).setItem("WG_CHOOSE_ORIGINAL", "1", { expires: t.toUTCString() }) } else Ve({ type: "cookie" }).removeItem("WG_CHOOSE_ORIGINAL") } function ln() { var e = Ve().getItem(F); if (e && rn().includes(e)) return e } var un = function (e) { return e && Ve().setItem(F, e) }; function fn() { _e(ge(B)) } function dn(e, t, n) { void 0 === n && (n = {}); n = Object.assign({}, { title: !0, cdn: !1, search: !1 }, n); var r = { l_from: xt.language_from, l_to: t, words: e }; return n.title && (r.title = document.title), Yt(r, n) } function gn(e, t) { if ("string" != typeof e || "function" != typeof t) return !1; var n = ze(); return n === xt.language_from ? (t(e), !1) : (Yt({ l_from: n, l_to: xt.language_from, words: [{ t: 2, w: e }] }, { cdn: !0, search: !0 }).then((function (e) { return e.to_words[0].toLowerCase().trim() })).then(t), !0) } var _n = []; function pn(e) { var t = e.langTo; void 0 === t && (t = ze()); var n = e.node; void 0 === n && (n = document.documentElement); var r = xt.proxify_iframes, o = xt.api_key, a = xt.language_from; if (r && r.length && Array.isArray(r)) for (var i = 0, c = ue(n, r.join(",")); i < c.length; i += 1) { var s = c[i], l = s.src; if (!l) return; if (s.weglot || (s.weglot = {}), !l.includes("proxy.weglot.com/")) { if (s.weglot.originalFrameSrc || (s.weglot.originalFrameSrc = l), t === a) return; try { s.src = l.replace("://", "://proxy.weglot.com/" + o + "/" + a + "/" + t + "/") } catch (e) { } return } if (!t || t === a) { var u = (s.weglot || {}).originalFrameSrc; return void (u && (s.src = u)) } var f = new RegExp(o + "/" + a + "/[^/]+/"); return void (s.src = l.replace(f, o + "/" + a + "/" + t + "/")) } } function hn(e) { void 0 === e && (e = ze()), function (e) { void 0 === e && (e = ze()); for (var t = { message: "Weglot.setLanguage", payload: e }, n = 0, r = _n; n < r.length; n += 1) { var o = r[n]; try { o.postMessage(t, "*") } catch (e) { console.warn(e) } } }(e), pn({ langTo: e }) } function mn(e) { if (e.data && "null" !== e.origin) { var t = e.data, n = t.message, r = t.payload; if (n) { if ("Weglot.iframe" === n) { var o = { message: "Weglot.setLanguage", payload: ze() }; return e.source.postMessage(o, e.origin), void _n.push(e.source) } "Weglot.setLanguage" !== n || ia(r) } } } function vn(e) { var t = xt.linkHooksConfig && xt.linkHooksConfig.buildAdditionalSelectors; return ["a[href='#Weglot-" + e + "']", "a[href*='change-language.weglot.com/" + e + "']"].concat(t ? t(e) : []).join(",") } var wn, yn, bn, kn, En, Cn, xn, Sn, On = {}, Nn = [], Ln = /acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i; function Tn(e, t) { for (var n in t) e[n] = t[n]; return e } function An(e) { var t = e.parentNode; t && t.removeChild(e) } function jn(e, t, n) { var r, o, a, i = {}; for (a in t) "key" == a ? r = t[a] : "ref" == a ? o = t[a] : i[a] = t[a]; if (arguments.length > 2 && (i.children = arguments.length > 3 ? wn.call(arguments, 2) : n), "function" == typeof e && null != e.defaultProps) for (a in e.defaultProps) void 0 === i[a] && (i[a] = e.defaultProps[a]); return Pn(e, i, r, o, null) } function Pn(e, t, n, r, o) { var a = { type: e, props: t, key: n, ref: r, __k: null, __: null, __b: 0, __e: null, __d: void 0, __c: null, __h: null, constructor: void 0, __v: null == o ? ++bn : o }; return null == o && null != yn.vnode && yn.vnode(a), a } function In(e) { return e.children } function Rn(e, t) { this.props = e, this.context = t } function Dn(e, t) { if (null == t) return e.__ ? Dn(e.__, e.__.__k.indexOf(e) + 1) : null; for (var n; t < e.__k.length; t++)if (null != (n = e.__k[t]) && null != n.__e) return n.__e; return "function" == typeof e.type ? Dn(e) : null } function Wn(e) { var t, n; if (null != (e = e.__) && null != e.__c) { for (e.__e = e.__c.base = null, t = 0; t < e.__k.length; t++)if (null != (n = e.__k[t]) && null != n.__e) { e.__e = e.__c.base = n.__e; break } return Wn(e) } } function Un(e) { (!e.__d && (e.__d = !0) && kn.push(e) && !Hn.__r++ || En !== yn.debounceRendering) && ((En = yn.debounceRendering) || Cn)(Hn) } function Hn() { var e, t, n, r, o, a, i, c; for (kn.sort(xn); e = kn.shift();)e.__d && (t = kn.length, r = void 0, o = void 0, i = (a = (n = e).__v).__e, (c = n.__P) && (r = [], (o = Tn({}, a)).__v = a.__v + 1, Yn(c, a, o, n.__n, void 0 !== c.ownerSVGElement, null != a.__h ? [i] : null, r, null == i ? Dn(a) : i, a.__h), Kn(r, a), a.__e != i && Wn(a)), kn.length > t && kn.sort(xn)); Hn.__r = 0 } function Mn(e, t, n, r, o, a, i, c, s, l) { var u, f, d, g, _, p, h, m = r && r.__k || Nn, v = m.length; for (n.__k = [], u = 0; u < t.length; u++)if (null != (g = n.__k[u] = null == (g = t[u]) || "boolean" == typeof g || "function" == typeof g ? null : "string" == typeof g || "number" == typeof g || "bigint" == typeof g ? Pn(null, g, null, null, g) : Array.isArray(g) ? Pn(In, { children: g }, null, null, null) : g.__b > 0 ? Pn(g.type, g.props, g.key, g.ref ? g.ref : null, g.__v) : g)) { if (g.__ = n, g.__b = n.__b + 1, null === (d = m[u]) || d && g.key == d.key && g.type === d.type) m[u] = void 0; else for (f = 0; f < v; f++) { if ((d = m[f]) && g.key == d.key && g.type === d.type) { m[f] = void 0; break } d = null } Yn(e, g, d = d || On, o, a, i, c, s, l), _ = g.__e, (f = g.ref) && d.ref != f && (h || (h = []), d.ref && h.push(d.ref, null, g), h.push(f, g.__c || _, g)), null != _ ? (null == p && (p = _), "function" == typeof g.type && g.__k === d.__k ? g.__d = s = qn(g, s, e) : s = Fn(e, g, d, m, _, s), "function" == typeof n.type && (n.__d = s)) : s && d.__e == s && s.parentNode != e && (s = Dn(d)) } for (n.__e = p, u = v; u--;)null != m[u] && ("function" == typeof n.type && null != m[u].__e && m[u].__e == n.__d && (n.__d = Bn(r).nextSibling), Qn(m[u], m[u])); if (h) for (u = 0; u < h.length; u++)Zn(h[u], h[++u], h[++u]) } function qn(e, t, n) { for (var r, o = e.__k, a = 0; o && a < o.length; a++)(r = o[a]) && (r.__ = e, t = "function" == typeof r.type ? qn(r, t, n) : Fn(n, r, r, o, r.__e, t)); return t } function zn(e, t) { return t = t || [], null == e || "boolean" == typeof e || (Array.isArray(e) ? e.some((function (e) { zn(e, t) })) : t.push(e)), t } function Fn(e, t, n, r, o, a) { var i, c, s; if (void 0 !== t.__d) i = t.__d, t.__d = void 0; else if (null == n || o != a || null == o.parentNode) e: if (null == a || a.parentNode !== e) e.appendChild(o), i = null; else { for (c = a, s = 0; (c = c.nextSibling) && s < r.length; s += 1)if (c == o) break e; e.insertBefore(o, a), i = a } return void 0 !== i ? i : o.nextSibling } function Bn(e) { var t, n, r; if (null == e.type || "string" == typeof e.type) return e.__e; if (e.__k) for (t = e.__k.length - 1; t >= 0; t--)if ((n = e.__k[t]) && (r = Bn(n))) return r; return null } function $n(e, t, n) { "-" === t[0] ? e.setProperty(t, null == n ? "" : n) : e[t] = null == n ? "" : "number" != typeof n || Ln.test(t) ? n : n + "px" } function Vn(e, t, n, r, o) { var a; e: if ("style" === t) if ("string" == typeof n) e.style.cssText = n; else { if ("string" == typeof r && (e.style.cssText = r = ""), r) for (t in r) n && t in n || $n(e.style, t, ""); if (n) for (t in n) r && n[t] === r[t] || $n(e.style, t, n[t]) } else if ("o" === t[0] && "n" === t[1]) a = t !== (t = t.replace(/Capture$/, "")), t = t.toLowerCase() in e ? t.toLowerCase().slice(2) : t.slice(2), e.l || (e.l = {}), e.l[t + a] = n, n ? r || e.addEventListener(t, a ? Jn : Gn, a) : e.removeEventListener(t, a ? Jn : Gn, a); else if ("dangerouslySetInnerHTML" !== t) { if (o) t = t.replace(/xlink(H|:h)/, "h").replace(/sName$/, "s"); else if ("width" !== t && "height" !== t && "href" !== t && "list" !== t && "form" !== t && "tabIndex" !== t && "download" !== t && t in e) try { e[t] = null == n ? "" : n; break e } catch (e) { } "function" == typeof n || (null == n || !1 === n && "-" !== t[4] ? e.removeAttribute(t) : e.setAttribute(t, n)) } } function Gn(e) { return this.l[e.type + !1](yn.event ? yn.event(e) : e) } function Jn(e) { return this.l[e.type + !0](yn.event ? yn.event(e) : e) } function Yn(e, t, n, r, o, a, i, c, s) { var l, u, f, d, g, _, p, h, m, v, w, y, b, k, E, C = t.type; if (void 0 !== t.constructor) return null; null != n.__h && (s = n.__h, c = t.__e = n.__e, t.__h = null, a = [c]), (l = yn.__b) && l(t); try { e: if ("function" == typeof C) { if (h = t.props, m = (l = C.contextType) && r[l.__c], v = l ? m ? m.props.value : l.__ : r, n.__c ? p = (u = t.__c = n.__c).__ = u.__E : ("prototype" in C && C.prototype.render ? t.__c = u = new C(h, v) : (t.__c = u = new Rn(h, v), u.constructor = C, u.render = er), m && m.sub(u), u.props = h, u.state || (u.state = {}), u.context = v, u.__n = r, f = u.__d = !0, u.__h = [], u._sb = []), null == u.__s && (u.__s = u.state), null != C.getDerivedStateFromProps && (u.__s == u.state && (u.__s = Tn({}, u.__s)), Tn(u.__s, C.getDerivedStateFromProps(h, u.__s))), d = u.props, g = u.state, u.__v = t, f) null == C.getDerivedStateFromProps && null != u.componentWillMount && u.componentWillMount(), null != u.componentDidMount && u.__h.push(u.componentDidMount); else { if (null == C.getDerivedStateFromProps && h !== d && null != u.componentWillReceiveProps && u.componentWillReceiveProps(h, v), !u.__e && null != u.shouldComponentUpdate && !1 === u.shouldComponentUpdate(h, u.__s, v) || t.__v === n.__v) { for (t.__v !== n.__v && (u.props = h, u.state = u.__s, u.__d = !1), u.__e = !1, t.__e = n.__e, t.__k = n.__k, t.__k.forEach((function (e) { e && (e.__ = t) })), w = 0; w < u._sb.length; w++)u.__h.push(u._sb[w]); u._sb = [], u.__h.length && i.push(u); break e } null != u.componentWillUpdate && u.componentWillUpdate(h, u.__s, v), null != u.componentDidUpdate && u.__h.push((function () { u.componentDidUpdate(d, g, _) })) } if (u.context = v, u.props = h, u.__P = e, y = yn.__r, b = 0, "prototype" in C && C.prototype.render) { for (u.state = u.__s, u.__d = !1, y && y(t), l = u.render(u.props, u.state, u.context), k = 0; k < u._sb.length; k++)u.__h.push(u._sb[k]); u._sb = [] } else do { u.__d = !1, y && y(t), l = u.render(u.props, u.state, u.context), u.state = u.__s } while (u.__d && ++b < 25); u.state = u.__s, null != u.getChildContext && (r = Tn(Tn({}, r), u.getChildContext())), f || null == u.getSnapshotBeforeUpdate || (_ = u.getSnapshotBeforeUpdate(d, g)), E = null != l && l.type === In && null == l.key ? l.props.children : l, Mn(e, Array.isArray(E) ? E : [E], t, n, r, o, a, i, c, s), u.base = t.__e, t.__h = null, u.__h.length && i.push(u), p && (u.__E = u.__ = null), u.__e = !1 } else null == a && t.__v === n.__v ? (t.__k = n.__k, t.__e = n.__e) : t.__e = Xn(n.__e, t, n, r, o, a, i, s); (l = yn.diffed) && l(t) } catch (e) { t.__v = null, (s || null != a) && (t.__e = c, t.__h = !!s, a[a.indexOf(c)] = null), yn.__e(e, t, n) } } function Kn(e, t) { yn.__c && yn.__c(t, e), e.some((function (t) { try { e = t.__h, t.__h = [], e.some((function (e) { e.call(t) })) } catch (e) { yn.__e(e, t.__v) } })) } function Xn(e, t, n, r, o, a, i, c) { var s, l, u, f = n.props, d = t.props, g = t.type, _ = 0; if ("svg" === g && (o = !0), null != a) for (; _ < a.length; _++)if ((s = a[_]) && "setAttribute" in s == !!g && (g ? s.localName === g : 3 === s.nodeType)) { e = s, a[_] = null; break } if (null == e) { if (null === g) return document.createTextNode(d); e = o ? document.createElementNS("http://www.w3.org/2000/svg", g) : document.createElement(g, d.is && d), a = null, c = !1 } if (null === g) f === d || c && e.data === d || (e.data = d); else { if (a = a && wn.call(e.childNodes), l = (f = n.props || On).dangerouslySetInnerHTML, u = d.dangerouslySetInnerHTML, !c) { if (null != a) for (f = {}, _ = 0; _ < e.attributes.length; _++)f[e.attributes[_].name] = e.attributes[_].value; (u || l) && (u && (l && u.__html == l.__html || u.__html === e.innerHTML) || (e.innerHTML = u && u.__html || "")) } if (function (e, t, n, r, o) { var a; for (a in n) "children" === a || "key" === a || a in t || Vn(e, a, null, n[a], r); for (a in t) o && "function" != typeof t[a] || "children" === a || "key" === a || "value" === a || "checked" === a || n[a] === t[a] || Vn(e, a, t[a], n[a], r) }(e, d, f, o, c), u) t.__k = []; else if (_ = t.props.children, Mn(e, Array.isArray(_) ? _ : [_], t, n, r, o && "foreignObject" !== g, a, i, a ? a[0] : n.__k && Dn(n, 0), c), null != a) for (_ = a.length; _--;)null != a[_] && An(a[_]); c || ("value" in d && void 0 !== (_ = d.value) && (_ !== e.value || "progress" === g && !_ || "option" === g && _ !== f.value) && Vn(e, "value", _, f.value, !1), "checked" in d && void 0 !== (_ = d.checked) && _ !== e.checked && Vn(e, "checked", _, f.checked, !1)) } return e } function Zn(e, t, n) { try { "function" == typeof e ? e(t) : e.current = t } catch (e) { yn.__e(e, n) } } function Qn(e, t, n) { var r, o; if (yn.unmount && yn.unmount(e), (r = e.ref) && (r.current && r.current !== e.__e || Zn(r, null, t)), null != (r = e.__c)) { if (r.componentWillUnmount) try { r.componentWillUnmount() } catch (e) { yn.__e(e, t) } r.base = r.__P = null, e.__c = void 0 } if (r = e.__k) for (o = 0; o < r.length; o++)r[o] && Qn(r[o], t, n || "function" != typeof e.type); n || null == e.__e || An(e.__e), e.__ = e.__e = e.__d = void 0 } function er(e, t, n) { return this.constructor(e, n) } function tr(e) { var t, n, r = ""; if ("string" == typeof e || "number" == typeof e) r += e; else if ("object" == typeof e) if (Array.isArray(e)) for (t = 0; t < e.length; t++)e[t] && (n = tr(e[t])) && (r && (r += " "), r += n); else for (t in e) e[t] && (r && (r += " "), r += t); return r } wn = Nn.slice, yn = { __e: function (e, t, n, r) { for (var o, a, i; t = t.__;)if ((o = t.__c) && !o.__) try { if ((a = o.constructor) && null != a.getDerivedStateFromError && (o.setState(a.getDerivedStateFromError(e)), i = o.__d), null != o.componentDidCatch && (o.componentDidCatch(e, r || {}), i = o.__d), i) return o.__E = o } catch (t) { e = t } throw e } }, bn = 0, Rn.prototype.setState = function (e, t) { var n; n = null != this.__s && this.__s !== this.state ? this.__s : this.__s = Tn({}, this.state), "function" == typeof e && (e = e(Tn({}, n), this.props)), e && Tn(n, e), null != e && this.__v && (t && this._sb.push(t), Un(this)) }, Rn.prototype.forceUpdate = function (e) { this.__v && (this.__e = !0, e && this.__h.push(e), Un(this)) }, Rn.prototype.render = In, kn = [], Cn = "function" == typeof Promise ? Promise.prototype.then.bind(Promise.resolve()) : setTimeout, xn = function (e, t) { return e.__v.__b - t.__v.__b }, Hn.__r = 0, Sn = 0; var nr, rr, or, ar, ir = 0, cr = [], sr = [], lr = yn.__b, ur = yn.__r, fr = yn.diffed, dr = yn.__c, gr = yn.unmount; function _r(e, t) { yn.__h && yn.__h(rr, e, ir || t), ir = 0; var n = rr.__H || (rr.__H = { __: [], __h: [] }); return e >= n.__.length && n.__.push({ __V: sr }), n.__[e] } function pr(e) { return ir = 1, function (e, t, n) { var r = _r(nr++, 2); if (r.t = e, !r.__c && (r.__ = [n ? n(t) : Cr(void 0, t), function (e) { var t = r.__N ? r.__N[0] : r.__[0], n = r.t(t, e); t !== n && (r.__N = [n, r.__[1]], r.__c.setState({})) }], r.__c = rr, !rr.u)) { var o = function (e, t, n) { if (!r.__c.__H) return !0; var o = r.__c.__H.__.filter((function (e) { return e.__c })); if (o.every((function (e) { return !e.__N }))) return !a || a.call(this, e, t, n); var i = !1; return o.forEach((function (e) { if (e.__N) { var t = e.__[0]; e.__ = e.__N, e.__N = void 0, t !== e.__[0] && (i = !0) } })), !(!i && r.__c.props === e) && (!a || a.call(this, e, t, n)) }; rr.u = !0; var a = rr.shouldComponentUpdate, i = rr.componentWillUpdate; rr.componentWillUpdate = function (e, t, n) { if (this.__e) { var r = a; a = void 0, o(e, t, n), a = r } i && i.call(this, e, t, n) }, rr.shouldComponentUpdate = o } return r.__N || r.__ }(Cr, e) } function hr(e, t) { var n = _r(nr++, 3); !yn.__s && Er(n.__H, t) && (n.__ = e, n.i = t, rr.__H.__h.push(n)) } function mr(e) { return ir = 5, function (e, t) { var n = _r(nr++, 7); return Er(n.__H, t) ? (n.__V = e(), n.i = t, n.__h = e, n.__V) : n.__ }((function () { return { current: e } }), []) } function vr() { for (var e; e = cr.shift();)if (e.__P && e.__H) try { e.__H.__h.forEach(br), e.__H.__h.forEach(kr), e.__H.__h = [] } catch (t) { e.__H.__h = [], yn.__e(t, e.__v) } } yn.__b = function (e) { rr = null, lr && lr(e) }, yn.__r = function (e) { ur && ur(e), nr = 0; var t = (rr = e.__c).__H; t && (or === rr ? (t.__h = [], rr.__h = [], t.__.forEach((function (e) { e.__N && (e.__ = e.__N), e.__V = sr, e.__N = e.i = void 0 }))) : (t.__h.forEach(br), t.__h.forEach(kr), t.__h = [])), or = rr }, yn.diffed = function (e) { fr && fr(e); var t = e.__c; t && t.__H && (t.__H.__h.length && (1 !== cr.push(t) && ar === yn.requestAnimationFrame || ((ar = yn.requestAnimationFrame) || yr)(vr)), t.__H.__.forEach((function (e) { e.i && (e.__H = e.i), e.__V !== sr && (e.__ = e.__V), e.i = void 0, e.__V = sr }))), or = rr = null }, yn.__c = function (e, t) { t.some((function (e) { try { e.__h.forEach(br), e.__h = e.__h.filter((function (e) { return !e.__ || kr(e) })) } catch (n) { t.some((function (e) { e.__h && (e.__h = []) })), t = [], yn.__e(n, e.__v) } })), dr && dr(e, t) }, yn.unmount = function (e) { gr && gr(e); var t, n = e.__c; n && n.__H && (n.__H.__.forEach((function (e) { try { br(e) } catch (e) { t = e } })), n.__H = void 0, t && yn.__e(t, n.__v)) }; var wr = "function" == typeof requestAnimationFrame; function yr(e) { var t, n = function () { clearTimeout(r), wr && cancelAnimationFrame(t), setTimeout(e) }, r = setTimeout(n, 100); wr && (t = requestAnimationFrame(n)) } function br(e) { var t = rr, n = e.__c; "function" == typeof n && (e.__c = void 0, n()), rr = t } function kr(e) { var t = rr; e.__c = e.__(), rr = t } function Er(e, t) { return !e || e.length !== t.length || t.some((function (t, n) { return t !== e[n] })) } function Cr(e, t) { return "function" == typeof t ? t(e) : t } function xr(e, t) { for (var n in t) e[n] = t[n]; return e } function Sr(e, t) { for (var n in e) if ("__source" !== n && !(n in t)) return !0; for (var r in t) if ("__source" !== r && e[r] !== t[r]) return !0; return !1 } function Or(e) { this.props = e } (Or.prototype = new Rn).isPureReactComponent = !0, Or.prototype.shouldComponentUpdate = function (e, t) { return Sr(this.props, e) || Sr(this.state, t) }; var Nr = yn.__b; yn.__b = function (e) { e.type && e.type.__f && e.ref && (e.props.ref = e.ref, e.ref = null), Nr && Nr(e) }; var Lr = "undefined" != typeof Symbol && Symbol.for && Symbol.for("react.forward_ref") || 3911; var Tr = yn.__e; yn.__e = function (e, t, n, r) { if (e.then) for (var o, a = t; a = a.__;)if ((o = a.__c) && o.__c) return null == t.__e && (t.__e = n.__e, t.__k = n.__k), o.__c(e, t); Tr(e, t, n, r) }; var Ar = yn.unmount; function jr(e, t, n) { return e && (e.__c && e.__c.__H && (e.__c.__H.__.forEach((function (e) { "function" == typeof e.__c && e.__c() })), e.__c.__H = null), null != (e = xr({}, e)).__c && (e.__c.__P === n && (e.__c.__P = t), e.__c = null), e.__k = e.__k && e.__k.map((function (e) { return jr(e, t, n) }))), e } function Pr(e, t, n) { return e && (e.__v = null, e.__k = e.__k && e.__k.map((function (e) { return Pr(e, t, n) })), e.__c && e.__c.__P === t && (e.__e && n.insertBefore(e.__e, e.__d), e.__c.__e = !0, e.__c.__P = n)), e } function Ir() { this.__u = 0, this.t = null, this.__b = null } function Rr(e) { var t = e.__.__c; return t && t.__a && t.__a(e) } function Dr() { this.u = null, this.o = null } yn.unmount = function (e) { var t = e.__c; t && t.__R && t.__R(), t && !0 === e.__h && (e.type = null), Ar && Ar(e) }, (Ir.prototype = new Rn).__c = function (e, t) { var n = t.__c, r = this; null == r.t && (r.t = []), r.t.push(n); var o = Rr(r.__v), a = !1, i = function () { a || (a = !0, n.__R = null, o ? o(c) : c()) }; n.__R = i; var c = function () { if (!--r.__u) { if (r.state.__a) { var e = r.state.__a; r.__v.__k[0] = Pr(e, e.__c.__P, e.__c.__O) } var t; for (r.setState({ __a: r.__b = null }); t = r.t.pop();)t.forceUpdate() } }, s = !0 === t.__h; r.__u++ || s || r.setState({ __a: r.__b = r.__v.__k[0] }), e.then(i, i) }, Ir.prototype.componentWillUnmount = function () { this.t = [] }, Ir.prototype.render = function (e, t) { if (this.__b) { if (this.__v.__k) { var n = document.createElement("div"), r = this.__v.__k[0].__c; this.__v.__k[0] = jr(this.__b, n, r.__O = r.__P) } this.__b = null } var o = t.__a && jn(In, null, e.fallback); return o && (o.__h = null), [jn(In, null, t.__a ? null : e.children), o] }; var Wr = function (e, t, n) { if (++n[1] === n[0] && e.o.delete(t), e.props.revealOrder && ("t" !== e.props.revealOrder[0] || !e.o.size)) for (n = e.u; n;) { for (; n.length > 3;)n.pop()(); if (n[1] < n[0]) break; e.u = n = n[2] } }; (Dr.prototype = new Rn).__a = function (e) { var t = this, n = Rr(t.__v), r = t.o.get(e); return r[0]++, function (o) { var a = function () { t.props.revealOrder ? (r.push(o), Wr(t, e, r)) : o() }; n ? n(a) : a() } }, Dr.prototype.render = function (e) { this.u = null, this.o = new Map; var t = zn(e.children); e.revealOrder && "b" === e.revealOrder[0] && t.reverse(); for (var n = t.length; n--;)this.o.set(t[n], this.u = [1, 0, this.u]); return e.children }, Dr.prototype.componentDidUpdate = Dr.prototype.componentDidMount = function () { var e = this; this.o.forEach((function (t, n) { Wr(e, n, t) })) }; var Ur = "undefined" != typeof Symbol && Symbol.for && Symbol.for("react.element") || 60103, Hr = /^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|image|letter|lighting|marker(?!H|W|U)|overline|paint|pointer|shape|stop|strikethrough|stroke|text(?!L)|transform|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/, Mr = /^on(Ani|Tra|Tou|BeforeInp|Compo)/, qr = /[A-Z0-9]/g, zr = "undefined" != typeof document, Fr = function (e) { return ("undefined" != typeof Symbol && "symbol" == typeof Symbol() ? /fil|che|rad/ : /fil|che|ra/).test(e) }; Rn.prototype.isReactComponent = {}, ["componentWillMount", "componentWillReceiveProps", "componentWillUpdate"].forEach((function (e) { Object.defineProperty(Rn.prototype, e, { configurable: !0, get: function () { return this["UNSAFE_" + e] }, set: function (t) { Object.defineProperty(this, e, { configurable: !0, writable: !0, value: t }) } }) })); var Br = yn.event; function $r() { } function Vr() { return this.cancelBubble } function Gr() { return this.defaultPrevented } yn.event = function (e) { return Br && (e = Br(e)), e.persist = $r, e.isPropagationStopped = Vr, e.isDefaultPrevented = Gr, e.nativeEvent = e }; var Jr = { enumerable: !1, configurable: !0, get: function () { return this.class } }, Yr = yn.vnode; yn.vnode = function (e) { "string" == typeof e.type && function (e) { var t = e.props, n = e.type, r = {}; for (var o in t) { var a = t[o]; if (!("value" === o && "defaultValue" in t && null == a || zr && "children" === o && "noscript" === n || "class" === o || "className" === o)) { var i = o.toLowerCase(); "defaultValue" === o && "value" in t && null == t.value ? o = "value" : "download" === o && !0 === a ? a = "" : "ondoubleclick" === i ? o = "ondblclick" : "onchange" !== i || "input" !== n && "textarea" !== n || Fr(t.type) ? "onfocus" === i ? o = "onfocusin" : "onblur" === i ? o = "onfocusout" : Mr.test(o) ? o = i : -1 === n.indexOf("-") && Hr.test(o) ? o = o.replace(qr, "-$&").toLowerCase() : null === a && (a = void 0) : i = o = "oninput", "oninput" === i && r[o = i] && (o = "oninputCapture"), r[o] = a } } "select" == n && r.multiple && Array.isArray(r.value) && (r.value = zn(t.children).forEach((function (e) { e.props.selected = -1 != r.value.indexOf(e.props.value) }))), "select" == n && null != r.defaultValue && (r.value = zn(t.children).forEach((function (e) { e.props.selected = r.multiple ? -1 != r.defaultValue.indexOf(e.props.value) : r.defaultValue == e.props.value }))), t.class && !t.className ? (r.class = t.class, Object.defineProperty(r, "className", Jr)) : (t.className && !t.class || t.class && t.className) && (r.class = r.className = t.className), e.props = r }(e), e.$$typeof = Ur, Yr && Yr(e) }; var Kr = yn.__r; yn.__r = function (e) { Kr && Kr(e), e.__c }; var Xr = yn.diffed; yn.diffed = function (e) { Xr && Xr(e); var t = e.props, n = e.__e; null != n && "textarea" === e.type && "value" in t && t.value !== n.value && (n.value = null == t.value ? "" : t.value) }; var Zr = function (e, t) { var n = { __c: t = "__cC" + Sn++, __: e, Consumer: function (e, t) { return e.children(t) }, Provider: function (e) { var n, r; return this.getChildContext || (n = [], (r = {})[t] = this, this.getChildContext = function () { return r }, this.shouldComponentUpdate = function (e) { this.props.value !== e.value && n.some((function (e) { e.__e = !0, Un(e) })) }, this.sub = function (e) { n.push(e); var t = e.componentWillUnmount; e.componentWillUnmount = function () { n.splice(n.indexOf(e), 1), t && t.call(e) } }), e.children } }; return n.Provider.__ = n.Consumer.contextType = n }({}), Qr = function (e, t) { return function (n) { var r = t || {}, o = r.shouldForwardProp, a = r.label; var i = function (e, t) { function n(e) { var n = this.props.ref, r = n == e.ref; return !r && n && (n.call ? n(null) : n.current = null), t ? !t(this.props, e) || !r : Sr(this.props, e) } function r(t) { return this.shouldComponentUpdate = n, jn(e, t) } return r.displayName = "Memo(" + (e.displayName || e.name) + ")", r.prototype.isReactComponent = !0, r.__f = !0, r }(function (e) { function t(t) { var n = xr({}, t); return delete n.ref, e(n, t.ref || null) } return t.$$typeof = Lr, t.render = t, t.prototype.isReactComponent = t.__f = !0, t.displayName = "ForwardRef(" + (e.displayName || e.name) + ")", t }((function (t, r) { var a = t || {}, i = a.children, c = a.as; void 0 === c && (c = e); var s = a.style; void 0 === s && (s = {}); var l = function (e, t) { var n = {}; for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && -1 === t.indexOf(r) && (n[r] = e[r]); return n }(a, ["children", "as", "style"]), u = l, f = function (e) { var t = rr.context[e.__c], n = _r(nr++, 9); return n.c = e, t ? (null == n.__ && (n.__ = !0, t.sub(rr)), t.props.value) : e.__ }(Zr); return jn(c, Object.assign({}, { ref: r, style: Object.assign({}, n(Object.assign({}, u, { theme: f })), "function" == typeof s ? s(Object.assign({}, u, { theme: f })) : s) }, o ? function (e, t) { return Object.keys(e).filter(t).reduce((function (t, n) { return t[n] = e[n], t }), {}) }(u, o) : u), i) }))); return i.displayName = (a || e) + "💅", i } }("div")((function () { return { display: "flex", alignItems: "center", justifyContent: "center", height: "100vh" } })); function eo(e) { var t = e.displayError; void 0 === t && (t = !0); var n = e.logger; void 0 === n && (n = function () { }); var r = e.children, o = function (e) { var t = _r(nr++, 10), n = pr(); return t.__ = e, rr.componentDidCatch || (rr.componentDidCatch = function (e, r) { t.__ && t.__(e, r), n[1](e) }), [n[0], function () { n[1](void 0) }] }((function (e) { return n(e.message) })); return o[0] && t ? jn(Qr, null, jn("p", null, "An error has occurred, we apologise for the inconvenience. ", jn("br", null), jn("br", null), "We have been notified and will rectify the situation as soon as possible. ", jn("br", null), jn("br", null), "Please try again later or contact support@weglot.com directly.")) : r } var to = [{ name: "default", editorDropdown: !0, editableProps: ["flag_type", "with_flags", "is_dropdown", "with_name", "full_name", "invert_flags", "open_hover", "close_outside_click"], defaultValues: { style: { with_name: !0, with_flags: !0, full_name: !0, is_dropdown: !0, invert_flags: !0, flag_type: "rectangle_mat" }, opts: { open_hover: !1, close_outside_click: !1 } } }, { name: "toggle", editableProps: ["color"], defaultValues: { style: { full_name: !1, color: "#3D46FB" } } }, { name: "bubble", editorDropdown: !0, editableProps: ["flag_type", "with_flags", "full_name", "color", "open_hover", "close_outside_click"], defaultValues: { style: { with_name: !0, with_flags: !0, full_name: !0, flag_type: "rectangle_mat", color: "#555555" }, opts: { open_hover: !1, close_outside_click: !0 } } }, { name: "vertical_expand", editorDropdown: !0, editableProps: ["with_flags", "full_name", "color", "open_hover", "close_outside_click", "bg_transparent"], defaultValues: { style: { with_name: !0, with_flags: !0, full_name: !1, flag_type: "square", color: "#3D46FB", bg_transparent: !1 }, opts: { open_hover: !0, close_outside_click: !1 } } }, { name: "horizontal_expand", editorDropdown: !1, editableProps: ["color", "open_hover", "close_outside_click"], defaultValues: { style: { with_name: !0, with_flags: !1, full_name: !1, flag_type: "square", color: "#3D46FB" }, opts: { open_hover: !0, close_outside_click: !1 } } }, { name: "underline_edge", editableProps: ["full_name", "color"], maxLanguages: 10, minLanguages: null, defaultValues: { style: { full_name: !1, color: "#FA8072" } } }, { name: "skewed", editorDropdown: !0, editableProps: ["with_flags", "full_name", "color", "open_hover", "close_outside_click", "bg_transparent"], defaultValues: { style: { with_name: !0, with_flags: !0, full_name: !1, flag_type: "square", color: "#3D46FB" }, opts: { open_hover: !0, close_outside_click: !1 } } }, { name: "underline_full", maxLanguages: 10, minLanguages: null, editableProps: ["with_flags", "flag_type", "color"], defaultValues: { style: { full_name: !0, color: "#3D46FB", with_flags: !0, flag_type: "rectangle_mat" } } }].map((function (e) { return Object.assign({}, e, { defaultValues: Object.assign({}, e.defaultValues, { opts: Object.assign({}, e.defaultValues.opts, { is_responsive: !1, display_device: "mobile", pixel_cutoff: 768 }), style: Object.assign({}, e.defaultValues.style, { size_scale: 1 }) }), editableProps: e.editableProps.concat(["is_responsive", "display_device", "pixel_cutoff", "size_scale"]) }) })); function no(e) { var t = function (e) { return void 0 === e && (e = "default"), to.find((function (t) { return t.name === (e || "default") })) }(e), n = t.defaultValues; void 0 === n && (n = {}); var r = n, o = r.style; void 0 === o && (o = {}); var a = r.opts; return void 0 === a && (a = {}), { style: o, opts: a } } var ro = i({ service: "switcher-templates" }), oo = { af: { name: "Afrikaans", flag: "za" }, am: { name: "አማርኛ", flag: "et" }, ar: { name: "العربية‏", flag: "sa" }, az: { name: "Azərbaycan dili", flag: "az" }, ba: { name: "башҡорт теле", flag: "ru" }, be: { name: "Беларуская", flag: "by" }, bg: { name: "Български", flag: "bg" }, bn: { name: "বাংলা", flag: "bd" }, br: { name: "Português Brasileiro", flag: "br" }, bs: { name: "Bosanski", flag: "ba" }, ca: { name: "Català", flag: "es-ca" }, co: { name: "Corsu", flag: "fr-co" }, cs: { name: "Čeština", flag: "cz" }, cy: { name: "Cymraeg", flag: "gb-wls" }, da: { name: "Dansk", flag: "dk" }, de: { name: "Deutsch", flag: "de" }, el: { name: "Ελληνικά", flag: "gr" }, en: { name: "English", flag: "gb" }, eo: { name: "Esperanto", flag: "eo" }, es: { name: "Español", flag: "es" }, et: { name: "Eesti", flag: "ee" }, eu: { name: "Euskara", flag: "eus" }, fa: { name: "فارسی", flag: "ir" }, fi: { name: "Suomi", flag: "fi" }, fj: { name: "Vosa Vakaviti", flag: "fj" }, fl: { name: "Filipino", flag: "ph" }, fr: { name: "Français", flag: "fr" }, fy: { name: "frysk", flag: "nl" }, ga: { name: "Gaeilge", flag: "ie" }, gd: { name: "Gàidhlig", flag: "gb-sct" }, gl: { name: "Galego", flag: "es-ga" }, gu: { name: "ગુજરાતી", flag: "in" }, ha: { name: "هَوُسَ", flag: "ne" }, he: { name: "עברית", flag: "il" }, hi: { name: "हिंदी", flag: "in" }, hr: { name: "Hrvatski", flag: "hr" }, ht: { name: "Kreyòl ayisyen", flag: "ht" }, hu: { name: "Magyar", flag: "hu" }, hw: { name: "‘Ōlelo Hawai‘i", flag: "hw" }, hy: { name: "հայերեն", flag: "am" }, id: { name: "Bahasa Indonesia", flag: "id" }, ig: { name: "Igbo", flag: "ne" }, is: { name: "Íslenska", flag: "is" }, it: { name: "Italiano", flag: "it" }, ja: { name: "日本語", flag: "jp" }, jv: { name: "Wong Jawa", flag: "id" }, ka: { name: "ქართული", flag: "ge" }, kk: { name: "Қазақша", flag: "kz" }, km: { name: "ភាសាខ្មែរ", flag: "kh" }, kn: { name: "ಕನ್ನಡ", flag: "in" }, ko: { name: "한국어", flag: "kr" }, ku: { name: "كوردی", flag: "iq" }, ky: { name: "кыргызча", flag: "kg" }, la: { name: "Latine", flag: "it" }, lb: { name: "Lëtzebuergesch", flag: "lu" }, lo: { name: "ພາສາລາວ", flag: "la" }, lt: { name: "Lietuvių", flag: "lt" }, lv: { name: "Latviešu", flag: "lv" }, lg: { name: "Oluganda", flag: "ug" }, mg: { name: "Malagasy", flag: "mg" }, mi: { name: "te reo Māori", flag: "nz" }, mk: { name: "Македонски", flag: "mk" }, ml: { name: "മലയാളം", flag: "in" }, mn: { name: "Монгол", flag: "mn" }, mr: { name: "मराठी", flag: "in" }, ms: { name: "Bahasa Melayu", flag: "my" }, mt: { name: "Malti", flag: "mt" }, my: { name: "မျန္မာစာ", flag: "mm" }, ne: { name: "नेपाली", flag: "np" }, nl: { name: "Nederlands", flag: "nl" }, no: { name: "Norsk", flag: "no" }, ny: { name: "chiCheŵa", flag: "mw" }, pa: { name: "ਪੰਜਾਬੀ", flag: "in" }, pl: { name: "Polski", flag: "pl" }, ps: { name: "پښت", flag: "af" }, pt: { name: "Português", flag: "pt" }, ro: { name: "Română", flag: "ro" }, ru: { name: "Русский", flag: "ru" }, sd: { name: '"سنڌي، سندھی, सिन्धी"', flag: "pk" }, si: { name: "සිංහල", flag: "lk" }, sk: { name: "Slovenčina", flag: "sk" }, sl: { name: "Slovenščina", flag: "si" }, sm: { name: '"gagana fa\'a Samoa"', flag: "ws" }, sn: { name: "chiShona", flag: "zw" }, so: { name: "Soomaaliga", flag: "so" }, sq: { name: "Shqip", flag: "al" }, sr: { name: "Српски", flag: "rs" }, st: { name: "seSotho", flag: "ng" }, su: { name: "Sundanese", flag: "sd" }, sv: { name: "Svenska", flag: "se" }, sw: { name: "Kiswahili", flag: "ke" }, ta: { name: "தமிழ்", flag: "in" }, te: { name: "తెలుగు", flag: "in" }, tg: { name: "Тоҷикӣ", flag: "tj" }, th: { name: "ภาษาไทย", flag: "th" }, tl: { name: "Tagalog", flag: "ph" }, to: { name: "faka-Tonga", flag: "to" }, tr: { name: "Türkçe", flag: "tr" }, tt: { name: "Tatar", flag: "tr" }, tw: { name: "中文 (繁體)", flag: "tw" }, ty: { name: '"te reo Tahiti, te reo Māʼohi"', flag: "pf" }, uk: { name: "Українська", flag: "ua" }, ur: { name: "اردو", flag: "pk" }, uz: { name: '"O\'zbek"', flag: "uz" }, vi: { name: "Tiếng Việt", flag: "vn" }, xh: { name: "isiXhosa", flag: "za" }, yi: { name: "ייִדיש", flag: "il" }, yo: { name: "Yorùbá", flag: "ng" }, zh: { name: "中文 (简体)", flag: "cn" }, zu: { name: "isiZulu", flag: "za" }, hm: { name: "Hmoob", flag: "hmn" }, cb: { name: "Sugbuanon", flag: "ph" }, or: { name: "ଓଡ଼ିଆ", flag: "in" }, tk: { name: "Türkmen", flag: "tr" }, ug: { name: "ئۇيغۇر", flag: "uig" }, fc: { name: "Français (Canada)", flag: "ca" }, as: { name: "অসমীয়া", flag: "in" }, sa: { name: "Srpski", flag: "rs" }, om: { name: "Afaan Oromoo", flag: "et" }, iu: { name: "ᐃᓄᒃᑎᑐᑦ", flag: "ca" }, ti: { name: "ቲግሪንያ", flag: "er" }, bm: { name: "Bamanankan", flag: "ml" }, bo: { name: "བོད་ཡིག", flag: "cn" }, ak: { name: "Baoulé", flag: "gh" }, rw: { name: "Kinyarwanda", flag: "rw" } }; function ao(e) { if (!e || !e.toLowerCase) return "Unknown"; var t = e.toLowerCase(), n = xt.languages.find((function (e) { var n = e.language_to, r = e.custom_code; return n === t || (r ? r.toLowerCase() === t : void 0) })); return n && n.custom_local_name ? n.custom_local_name : n && n.custom_name ? n.custom_name : t === xt.language_from && xt.language_from_custom_name ? xt.language_from_custom_name : oo[t].name } function io(e, t) { return t[e] ? t[e].flag : "" } function co(e) { return function (e, t, n) { if (!e || !e.toLowerCase) return ""; if (t.language_from === e) return t.language_from_custom_flag || io(e, n); var r = e.toLowerCase(), o = t.languages.find((function (e) { var t = e.language_to, n = e.custom_code; return t === r || n && n.toLowerCase() === r })); return o ? o.custom_flag || io(o.language_to, n) : "" }(e, xt, oo) } function so(e, t, n) { return t < e ? e : t > n ? n : t } function lo(e, t) { return t && 1 !== t ? Math.round(e * t * 100) / 100 : e } function uo(e, t) { return "WordPress" === xt.technology_name && xt.injectedData && !xt.is_connect ? t(xt.injectedData.switcher_links[e]) : tt(e, t) } var fo = 13, go = 27, _o = 38, po = 40; var ho = ["none", "shiny", "square", "circle", "rectangle_mat"]; function mo(e) { return e ? e.getBoundingClientRect() : { bottom: 0, height: 0, left: 0, right: 0, top: 0, width: 0 } } function vo() { var e = pr("WordPress" === xt.technology_name && xt.injectedData && !xt.is_connect ? xt.injectedData.current_language : xt.switcher_editor ? xt.language_from : window.Weglot.getCurrentLang()), t = e[0], n = e[1]; return hr((function () { xt.is_connect || "WordPress" === xt.technology_name || xt.switcher_editor || window.Weglot.on("languageChanged", (function (e) { n(e) })) }), []), [t, n] } function wo(e, t) { var n = window.innerWidth > 0 ? window.innerWidth : screen.width, r = t || 768; return "mobile" === e ? n <= r : n > r } function yo(e, t, n) { var r = pr(!1), o = r[0], a = r[1]; return hr((function () { var r = e.size_scale; if ("default" !== n || r && 1 !== r) { var o, i, c, s, l, u = (o = t(e), i = n, c = xt.button_style && xt.button_style.custom_css, s = "default" === i, l = o.map((function (e) { var t = e.selector, n = e.declarations; return [(s ? "aside.country-selector" : "") + ".weglot_switcher." + i + t + " {", Object.keys(n).map((function (e) { return "\t" + e.replace(/([a-z0-9]|(?=[A-Z]))([A-Z])/g, "$1-$2").toLowerCase() + ": " + n[e] + ";" })).join("\n"), "}"].join("\n") })).join("\n\n"), !c || xt.switcher_gallery ? l : l + "\n\n" + c); !function (e, t) { if (e) { var n = document.querySelector("style#weglot-switcher-" + t); if (n) n.textContent = e; else { var r = document.createElement("style"); r.id = "weglot-switcher-" + t, r.textContent = e, document.head.appendChild(r) } } }(u, n), a(!0) } }), []), o } function bo(e) { var t = e.close_outside_click; void 0 === t && (t = !1); var n = e.open_hover; void 0 === n && (n = !1); var r = vo(), o = r[0], a = r[1], i = pr(!1), c = i[0], s = i[1], l = function (e) { var t = mr(null); return hr((function () { if (e) return document.addEventListener("mousedown", n), function () { document.removeEventListener("mousedown", n) }; function n(n) { t.current && !t.current.contains(n.target) && e() } }), [t]), t }(t && !n && E), f = mr(null), d = rn().filter((function (e) { return e !== o })), g = pr(null), _ = g[0], p = g[1], h = pr(!1), m = h[0], v = h[1], w = pr(!1), y = w[0], b = w[1]; function k() { var e = mo(l.current), t = e.bottom; void 0 === t && (t = 0); var n = e.left; void 0 === n && (n = 0), b(t > window.innerHeight / 2), v(n > window.innerWidth / 2), s(!0) } function E() { s(!1), p(null) } function C() { return c ? E() : k() } function x(e) { if (xt.switcher_editor) return s(!1); var t; a(e), t = e, "WordPress" === xt.technology_name && xt.injectedData && !xt.is_connect ? uo(t, (function (e) { u(window.location.hostname) ? window.dispatchEvent(new CustomEvent("veLanguageChangeUrl", { detail: { targetUrl: e } })) : window.location.replace(e) })) : window.Weglot.switchTo(t), s(!1) } return hr((function () { _ && f.current.scrollIntoView({ block: "center" }) }), [_]), { open: c, opensUpward: y, opensLeftward: m, language: o, otherLanguages: d, focusedLanguage: _, switcherContainerRef: l, focusedLanguageRef: f, handleMouseEnter: function () { n && k() }, handleMouseLeave: function () { n && E() }, handleKeyDown: function (e) { return e.keyCode === fo ? (e.preventDefault(), _ && x(_), C()) : e.keyCode === po || e.keyCode === _o ? (e.preventDefault(), void function (e) { var t = e === po ? "down" : "up", n = d.slice(-1).pop(), r = d[0], o = mo(l.current).bottom; void 0 === o && (o = 0); var a = o > window.innerHeight / 2; if (!_ || !c) { return p("down" === t ? r : n), void (!c && ("up" === t && a || "down" === t && !a) && k()) } if (!a && "up" === t && _ === r || a && "down" === t && _ === n) return void C(); var i = "up" === t ? -1 : 1, s = d.indexOf(_) + i; if (s === d.length || -1 === s) return; p(d[s]) }(e.keyCode)) : void (e.keyCode === go && c && (e.preventDefault(), C())) }, switchLanguage: x, toggleOpen: C } } var ko = { rectangle_mat: { width: 30, height: 20 }, shiny: { width: 30, height: 20 }, circle: { width: 24, height: 24 }, square: { width: 24, height: 24 } }, Eo = function (e) { var t = e.language, n = e.flagType; void 0 === n && (n = "circle"); var r = e.size_scale, o = co(t), a = ko[n] || {}, i = a.width, c = a.height; if (o) return jn("img", { src: o.indexOf("http") > -1 ? o : "https://cdn.weglot.com/flags/" + n + "/" + o + ".svg", width: lo(i, r), height: lo(c, r), className: "wg-flag", role: "none", alt: ao(t) + " flag" }) }, Co = function (e) { var t = e.styleOpts, n = e.language, r = e.onClick, o = e.legacyFlags, a = e.open; void 0 === a && (a = !1); var i = e.url, c = e.focusedLanguage, s = e.isSelected; void 0 === s && (s = !1); var l = e.focusRef; void 0 === l && (l = null); var u = t.with_name; void 0 === u && (u = !0); var f = t.full_name; void 0 === f && (f = !0); var d = t.with_flags, g = t.size_scale, _ = t.flag_type, p = !!c && n === c, h = f ? ao(n) : n.toUpperCase(), m = s ? "div" : "li", v = ho.indexOf(_ || "rectangle_mat"), w = d ? " wg-flags" + (o ? " flag-" + v + " legacy" : "") : "", y = p && !s ? " focus" : "", b = s ? " wgcurrent" : ""; return jn(m, Object.assign({}, { "data-l": n, onClick: function (e) { return function (e, t) { e.preventDefault(), r(t) }(e, n) }, className: "wg-li " + n + b + w + y }, s ? { role: "combobox", "aria-activedescendant": c ? "weglot-language-" + c : "", "aria-label": "Language", tabindex: "0", "aria-expanded": a, "aria-controls": "weglot-listbox" } : { role: "none", id: "wg-" + n }), jn("a", Object.assign({}, s ? { target: "_self" } : { role: "option" }, { href: i }, !u && { "aria-label": h }, p && !s && { ref: l }, { id: "weglot-language-" + n, tabIndex: -1 }), d && !o && jn(Eo, { language: n, flagType: _, size_scale: g }), u && h)) }; function xo(e) { var t = e.size_scale, n = function (e) { return lo(e, t) }; return [{ selector: ".wg-drop ul", declarations: { top: n(38) + "px", bottom: "auto" } }, { selector: ".wg-drop.weg-openup ul", declarations: { bottom: n(38) + "px", top: "auto" } }, { selector: " a", declarations: { fontSize: n(13) + "px" } }, { selector: ".wg-drop a img.wg-flag", declarations: { height: n(30) + "px" } }, { selector: ".wg-drop .wg-li.wgcurrent", declarations: { height: n(38) + "px", display: "flex", alignItems: "center" } }, { selector: ".wg-drop a", declarations: { height: n(38) + "px" } }, { selector: " .wgcurrent:after", declarations: { height: n(38) + "px", backgroundSize: n(9) + "px" } }, { selector: ".wg-drop .wgcurrent a", declarations: { paddingRight: so(22, n(40), 40) + "px", paddingLeft: so(5, n(10), 10) + "px" } }] } var So, Oo, No, Lo = "default", To = function (e, t) { return function (n) { var r = n || {}, o = r.style; void 0 === o && (o = {}); var a = r.opts; void 0 === a && (a = {}); var i = no(t), c = i.style, s = i.opts, l = document.createElement("div"); return function (e, t, n) { var r, o, a; yn.__ && yn.__(e, t), o = (r = "function" == typeof n) ? null : n && n.__k || t.__k, a = [], Yn(t, e = (!r && n || t).__k = jn(In, null, [e]), o || On, On, void 0 !== t.ownerSVGElement, !r && n ? [n] : o ? null : t.firstChild ? wn.call(t.childNodes) : null, a, !r && n ? n : o ? o.__e : t.firstChild, r), Kn(a, e) }(jn(eo, { logger: ro.error, displayError: !1 }, jn(e, { style: Object.assign({}, c, o), opts: Object.assign({}, s, a) })), l), l.classList.add("weglot-container"), l } }((function (e) { var t = e.style, n = e.opts, r = bo(n), o = r.open, a = r.opensUpward, i = r.opensLeftward, c = r.language, s = r.focusedLanguage, l = r.switcherContainerRef, u = r.focusedLanguageRef, f = r.handleMouseEnter, d = r.handleMouseLeave, g = r.handleKeyDown, _ = r.switchLanguage, p = r.toggleOpen, h = function () { var e = rn(), t = pr(e.reduce((function (e, t) { var n; return Object.assign({}, e, ((n = {})[t] = "", n)) }), {})), n = t[0], r = t[1]; return hr((function () { Promise.all(e.map((function (e) { return new Promise((function (t) { return uo(e, (function (n) { return t({ l: e, url: n }) })) })) }))).then((function (e) { return r(e.reduce((function (e, t) { var n, r = t.l, o = t.url; return Object.assign({}, e, ((n = {})[r] = o, n)) }), {})) })) }), []), n }(), m = function (e) { var t = e.is_responsive, n = e.display_device, r = e.pixel_cutoff, o = pr(!t || wo(n, r)), a = o[0], i = o[1], c = function () { return i(wo(n, r)) }; return hr((function () { if (t) return window.addEventListener("resize", c), function () { window.removeEventListener("resize", c) } }), [t, n, r]), a }(n); yo(t, xo, Lo); var v = xt.switcher_editor, w = t.is_dropdown, y = t.invert_flags, b = w || y, k = rn().filter((function (e) { return !b || e !== c })), E = /background-position/i.test(xt.button_style.custom_css) && !xt.languages.some((function (e) { return e.custom_flag })), C = function () { for (var e, t, n = arguments, r = 0, o = ""; r < arguments.length;)(e = n[r++]) && (t = tr(e)) && (o && (o += " "), o += t); return o }({ open: o, closed: !o, "wg-drop": w, "wg-list": !w, "weg-openup": a && o, "weg-openleft": i && o, "wg-editor": v }); return m ? jn("aside", { ref: l, "data-wg-notranslate": !0, onKeyDown: g, onMouseEnter: f, onMouseLeave: d, className: "weglot_switcher wg-mouse-click country-selector default " + C, "aria-label": "Language selected: " + ao(c) }, b && jn(Co, { styleOpts: t, open: o, focusedLanguage: s, language: c, isSelected: !0, onClick: p, legacyFlags: E, url: "#" }), jn("ul", { role: "listbox", id: "weglot-listbox", style: !o && t.is_dropdown && { display: "none" } }, k.map((function (e) { return jn(Co, { language: e, url: e === c ? "#" : h[e], onClick: _, isSelected: e === c, focusedLanguage: s, key: "wg-" + e, focusRef: u, styleOpts: t, legacyFlags: E }) })))) : jn(In, null) }), Lo), Ao = 0, jo = []; function Po(e, t) { if (void 0 === t && (t = document.documentElement), e && !e.ready) { var n = e.style || xt.button_style, r = e.location; void 0 === r && (r = {}); var o = function (e, t) { void 0 === e && (e = {}); var n = e.target, r = e.sibling; if (!n) return { defaultPosition: !0 }; var o = ue(t, n); if (!o.length) return { error: ye(n) ? "The provided target is not on this page." : "The provided target is not a valid CSS selector." }; var a = ue(t, r); if (!r || !a.length) return { targetNode: o[0], siblingNode: null }; var i = Array.from(o), c = Array.from(a), s = null, l = c.find((function (e) { return s = i.find((function (t) { return e.parentNode === t })), !!s })); return l && s ? { targetNode: s, siblingNode: l } : { error: "The provided sibling selector does not belong to target element." } }(r, t), a = o.error, i = o.targetNode, c = o.siblingNode, s = o.defaultPosition; if (!a) { var l = To(Object.assign({}, e, !xt.switcher_editor && { style: n })); if (l.weglotSwitcher = e, jo.push(l), s) return l.classList.add("wg-default"), document.body.appendChild(l), e.ready = !0, l; l.setAttribute("data-switcher-id", String(++Ao)), l.id = "weglot-switcher-" + Ao, l.setAttribute("data-switcher-style-opt", JSON.stringify(n)), i.insertBefore(l, c), e.ready = !0; for (var u = 0, f = t.querySelectorAll(".weglot-container:empty"); u < f.length; u += 1) { _e(f[u]) } return l } M.warn(a, { sendToDatadog: !1 }) } } function Io(e) { var t = e.name, n = e.hash, r = e.interactive; if (void 0 === r && (r = !1), fe(document.documentElement, "script#weglot-switcher-" + t)) return !1; var o = !xt.switcher_editor && n ? t + "." + n : t, a = document.getElementsByTagName("head")[0] || document.documentElement, i = document.createElement("script"); return i.type = "text/javascript", i.src = "https://cdn.weglot.com/switchers/" + o + ".min.js", i.id = "weglot-switcher-" + t, r && i.setAttribute("interactive", "true"), a.insertBefore(i, a.firstChild), !0 } function Ro() { So || Pe("switchersReady", ze()), So = !0, clearTimeout(No), Oo && Oo.parentNode.removeChild(Oo) } function Do(e) { if (void 0 === e && (e = document), !(rn().length < 2 || xt.hide_switcher)) { var t = e.isConnected ? e : document; (function (e) { void 0 === e && (e = document.body); var t = xt.linkHooksConfig && xt.linkHooksConfig.additionalCheckSelectors || []; if (0 !== ue(e, ['a[href^="#Weglot-"]', 'a[href*="change-language.weglot.com/"]'].concat(t).join(",")).length) { for (var n = rn(), r = ze(), o = !1, a = [], i = function () { var t = s[c], n = ue(e, vn(t)); if (0 !== n.length) { o = !0; for (var i = function () { var e = u[l]; e.setAttribute($, ""), e.classList.add("weglot-link", "weglot-link-" + t), t === r && (e.classList.add("weglot-link--active"), xt.linkHooksConfig && xt.linkHooksConfig.onLinkActive && xt.linkHooksConfig.onLinkActive(e)), tt(t, (function (t) { return e.setAttribute("href", t) })), e.addEventListener("click", (function (e) { e.preventDefault(), e.stopPropagation(), ia(t) })) }, l = 0, u = n; l < u.length; l += 1)i(); a.push({ language: t, links: n }) } }, c = 0, s = n; c < s.length; c += 1)i(); return je("languageChanged", (function (e) { for (var t = 0, n = a; t < n.length; t += 1) { var r = n[t], o = r.language, i = r.links; if (o === e) for (var c = 0, s = i; c < s.length; c += 1) { var l = s[c]; l.classList.add("weglot-link--active"), xt.linkHooksConfig && xt.linkHooksConfig.onLinkActive && xt.linkHooksConfig.onLinkActive(l) } else for (var u = 0, f = i; u < f.length; u += 1) { var d = f[u]; d.classList.remove("weglot-link--active"), xt.linkHooksConfig && xt.linkHooksConfig.offLinkActive && xt.linkHooksConfig.offLinkActive(d) } } }), !0), o } })(t) && Ro(); var n = t.querySelectorAll("#weglot_here:not(.weglot-container),.weglot_here:not(.weglot-container)"); if (n.length) { for (var r = 0, o = n; r < o.length; r += 1) { var a = o[r], i = To({ style: xt.button_style }); i.classList.add("weglot_here"), a.parentNode.insertBefore(i, a), _e(a) } Ro() } for (var c = 0, s = xt.switchers; c < s.length; c += 1) { var l = s[c]; if (!l.default) { var u = l.template; if (u) { if (u.name) { if (!Io(u)) { var f = window.Weglot.switchers && window.Weglot.switchers[u.name]; f && f.addSwitchers(t) } Ro() } } else Po(l, t) && Ro() } } if (!So && !Oo) { var d = xt.switchers.find((function (e) { return e.default })) || { style: xt.button_style }; No = setTimeout((function () { Oo = Po(d), Pe("switchersReady", ze()) })) } } } je("onCurrentLocationChanged", (function () { jo.forEach((function (e) { return e.parentNode && e.parentNode.removeChild(e) })), jo.splice(0), function () { for (var e = window.Weglot.switchers || {}, t = 0, n = Object.keys(e); t < n.length; t += 1)e[n[t]].removeSwitchers() }(), So = null, Oo = null, Ao = 0, xt.button_style.ready = !1, xt.switchers.map((function (e) { return e.ready = !1 })), Do() }), !0); var Wo = 0; function Uo() { var e = ["name", "value"]; xt.translate_event.forEach((function (t) { for (var n = ue(document.body, t.selector), r = function () { var n = a[o]; if (n.alreadyListeningEventInput) return !n.alreadyListeningEventInput.isConnected && Wo < 10 && (Wo++, n.parentNode.insertBefore(n.alreadyListeningEventInput, n.nextSibling)), {}; var r = n.cloneNode(!0); if (!r) return {}; r.name = "", n.alreadyListeningEventInput = r, n.parentNode.insertBefore(r, n.nextSibling), n.style.display = "none", new MutationObserver((function (t) { for (var o = 0, a = t; o < a.length; o += 1) { var i = a[o], c = n.getAttribute(i.attributeName); e.includes(i.attributeName) && r.setAttribute(i.attributeName, c) } })).observe(n, { attributes: !0 }); var i = Ee((function (e) { 13 === e.keyCode && e.target.form ? e.target.form.dispatchEvent(new Event("submit")) : gn(e.target.value, (function (e) { Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype, "value").set.call(n, e); var r = t.eventName || n.getAttribute("data-wg-translate-event"), o = document.createEvent("HTMLEvents"); o.initEvent("focus", !0, !1), n.dispatchEvent(o), o.initEvent(r, !0, !1), n.dispatchEvent(o) })) }), 400); r.addEventListener("keydown", i) }, o = 0, a = n; o < a.length; o += 1) { var i = r(); if (i) return i.v } })) } try { var Ho = Element.prototype.attachShadow; Element.prototype.attachShadow = function (e) { var t = Ho.call(this, e); return Mo([this]), t } } catch (mr) { } function Mo(e) { if (xt.translate_shadow_roots) { e || (e = ue(document, xt.dynamics.map((function (e) { return e.value })).join(","))); for (var t = 0, n = e; t < n.length; t += 1) { var r = n[t]; if (r.shadowRoot && !r.shadowRoot.wgTranslated) { r.shadowRoot.wgTranslated = !0, Ko(r.shadowRoot); var o = Ft(r.shadowRoot); o.length && ($t(o), na(o)) } } } } var qo, zo = null, Fo = [], Bo = [$, "class", "id"], $o = [], Vo = []; function Go(e, t) { qo && clearTimeout(qo); for (var n = 0, r = t; n < r.length; n += 1) { var o = r[n]; 1 === o.nodeType && Fo.push(o) } Fo.length && (qo = setTimeout((function () { Do(e), Uo(), xt.subdomain && function (e) { var t = window.location.hostname; if (-1 !== [xt.host].concat(l).indexOf(t)) return; for (var n = 0, r = e; n < r.length; n += 1)for (var o = r[n], a = 0, i = ue(o, "[href]"); a < i.length; a += 1) { var c = i[a]; if (!v(c)) { var s = c.getAttribute("href"); s && s.includes("//" + xt.host) && c.setAttribute("href", s.replace(xt.host, t)) } } }(Fo), xt.proxify_iframes && xt.proxify_iframes.length && Fo.forEach((function (e) { return pn({ node: e }) })), Mo(Fo), Oe("onDynamicDetected"), Fo = [] }), 100)) } function Jo(e, t) { var n = xt.dynamics, r = Xo; t !== document ? r = function () { return !0 } : n && 0 !== n.length || (r = function () { return !1 }); try { if (nn()) return; if (e = function (e, t) { var n = [], r = e.filter((function (e) { var r = e.addedNodes, o = e.type, a = e.target; "attributes" === o && function (e) { "IMG" === e.nodeName && e.srcset && e.dataset.wgtranslated && (e.setAttribute("wgsrcset", e.srcset), e.srcset = "") }(a); var i = function (e) { do { if (e.weglot && e.weglot.setted) return e; e = e.parentElement || e.parentNode } while (e) }(a); return i ? (n.push(i), !1) : r.length ? (setTimeout((function () { return Go(a, r) })), !zo || !a || !de(a, zo)) : !Bo.includes(e.attributeName) && t(a) && ("characterData" === o || "attributes" === o) })); if (n.length) for (var o = 0, a = n; o < a.length; o += 1) { a[o].weglot.setted = !1 } return r }(e, r), !n || 0 === n.length) return; if (e.length) try { !function (e, t, n) { void 0 === n && (n = !0); for (var r = [], o = function (e) { var n = e.outerHTML || e.textContent; if (e.wgParsed !== n) { e.wgParsed = n; for (var o = Ft(e, (function (e) { var n = e.element; return !function (e) { return e.weglot && e.weglot.dynamic > 20 }(n) && t(n) })), a = 0, i = o; a < i.length; a += 1) { var c = i[a]; xt.ignoreDynamicFragments && !document.body.contains(c) || (c.weglot.dynamic || (c.weglot.dynamic = 0), c.weglot.dynamic++, r.push(c)) } } }, a = [], i = 0, c = e; i < c.length; i += 1) { var s = c[i], l = s.type, u = s.target, f = s.addedNodes; switch (l) { case "attributes": case "characterData": if (a.includes(u)) break; a.push(u), o(u); break; case "childList": var d = f.length > 1 ? u : f[0]; if (a.includes(d)) break; if (o(d), a.push(d), !n) break; for (var g = 0, _ = f; g < _.length; g += 1) { var p = _[g], h = []; "IFRAME" === p.tagName ? h = [p] : p.querySelectorAll && (h = p.querySelectorAll("iframe")); for (var m = 0; m < h.length; m++) { var w = h[m]; t(w) && Ce(w) && !v(w) && (o(w.contentWindow.document), Ko(w.contentWindow.document)) } } } } r.length && ($t(r), na(r)) }(e, r) } catch (e) { M.warn(e) } } catch (e) { M.warn(e, { consoleOverride: "Error in MutationObserver" }) } } var Yo = !1; function Ko(e) { var t = e !== document ? e : e.body || e, n = new MutationObserver((function (t) { var n; if (Yo) Jo(t, e); else { var r = $o.find((function (t) { return t.documentElement === e })); r ? (n = r.mutations).push.apply(n, t) : $o.push({ documentElement: e, mutations: [].concat(t) }) } })); n.observe(t, { childList: !0, subtree: !0, characterData: !0, attributes: !0 }), Vo.push(n) } function Xo(e) { return !(!xt.dynamics || 0 === xt.dynamics.length) && (e && e.closest || (e = e.parentNode), e && e.closest && de(e, xt.dynamics.map((function (e) { return e.value })).join(", "))) } var Zo, Qo, ea, ta = { times: [], timeout: null, nodes: [] }; function na(e) { void 0 === e && (e = []), clearTimeout(ta.timeout); var t = ze(); if (t !== xt.language_from) { if (ta.times = ta.times.filter((function (e) { return e > Date.now() - 1e3 })), ta.times.length && (ta.timeout || ta.times.length >= 10)) return ta.nodes = ta.nodes.concat(e), void (ta.timeout = setTimeout((function () { return na() }), 1e3)); ta.timeout = null, ta.times.push(Date.now()); var n = ta.nodes.concat(e); return ta.nodes = [], dn(Vt(n), t, { title: !1, cdn: !0, nodes: n }).then((function (e) { return Gt(e, t, n) })) } } function ra() { var e = ge("wg_progress").firstElementChild, t = e.getAttribute("aria-valuenow"), n = parseInt(t) + (4 * Math.random() + 2); n <= 100 && (e.setAttribute("aria-valuenow", n.toString()), e.style.width = n + "%") } function oa(e) { clearInterval(e), _e(ge("wg_progress")) } function aa(e, t, n) { if (n || !e || window.top !== window || !sa(e)) { var r = []; try { $t(r = Ft()) } catch (e) { M.warn(e) } var o = nn(); if (e && t && !o && un(e), !xt.is_connect || xt.dynamicPushState || !o && e !== xt.language_from ? function (e) { void 0 === e && (e = !0); var t = xt.excluded_blocks, n = xt.is_connect; if (Yo = e) if (zo = t && t.length && t.map((function (e) { return e.value })).join(","), n && $o.length > 0) for (var r = function () { var e = a[o], t = e.mutations, n = e.documentElement, r = function () { var e = t.splice(0, 100); e.length > 0 && (Jo(e, n), setTimeout(r, 0)) }; r() }, o = 0, a = $o; o < a.length; o += 1)r(); else $o = [] }() : function () { if (0 !== Vo.length) { for (var e = 0, t = Vo; e < t.length; e += 1)t[e].disconnect(); $o = [] } }(), n || o) ca(e); else if (xt.is_connect && !o && Oe("onConnectPageLoad", e), xt.force_translation) { for (var a = [], i = 0, c = r; i < c.length; i += 1) { var s = c[i]; (s.closest && s.closest(xt.force_translation) || !s.closest && s.parentNode && s.parentNode.closest && s.parentNode.closest(xt.force_translation)) && a.push(s) } na(a) } o && !o.language_button_displayed && o.allExcluded || Do(), o || (xt.remove_unused_link_hooks && function () { var e = rn(), t = xt.languages.map((function (e) { return e.custom_code || e.language_to })).filter((function (t) { return !e.includes(t) })); 1 === e.length && t.push(xt.language_from); for (var n = t.map((function (e) { return vn(e) })).join(","), r = 0, o = ue(document, n); r < o.length; r += 1)_e(o[r]) }(), Mo(), Uo(), function () { window.addEventListener("message", mn, !1); var e = xt.translate_iframes; if (e) for (var t = 0, n = ue(document.body, e); t < n.length; t += 1) { var r = n[t]; r.contentWindow && _n.push(r.contentWindow) } pn({}), Se("onPageLanguageSet", hn), "with-window-top" === me() && window.top.postMessage({ message: "Weglot.iframe" }, "*") }(), ["alert"].forEach((function (e) { var t = window[e]; window[e] = function () { var e = arguments; if ("string" == typeof arguments[0]) { var n = ze(); return xt.language_from === n ? t.apply(window, arguments) : dn([{ t: 2, w: arguments[0] }], n, { title: !1, cdn: !0 }).then((function (n) { return e[0] = n.to_words[0], t.apply(window, e) })) } } }))), Pe("initialized", e) } } function ia(e) { var t = ze(); e !== t && (xt.visual_editor ? tt(e, (function (n) { if ("#" === n) return ca(e, t); window.dispatchEvent(new CustomEvent("veLanguageChangeUrl", { detail: { targetUrl: n } })) })) : ca(e, t)) } function ca(e, t) { if (!rn().includes(e)) return fn(), void M.warn(e + " isn't a language you have added", { sendToDatadog: !1 }); xt.auto_switch && sn(e); var n = nn(); if (xt.is_connect || n || un(e), !sa(e)) { if (xt.loading_bar) var r = function () { try { var e = document.createElement("div"); return e.className = "wg-progress", e.id = "wg_progress", e.innerHTML = '<div class="wg-progress-bar" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100" style="width:0"></div>', document.body.appendChild(e), setInterval(ra, 100) } catch (e) { } }(); if (function (e) { var t = he("lang"); if (t && t !== e) { var n = window.location.search.replace("lang=" + t, "lang=" + e); try { window.history.replaceState(null, "", window.location.pathname + n) } catch (e) { } } De = e }(e), nn()) return fn(), void oa(r); if (e === xt.language_from) return Oe("onPageLanguageSet", e), fn(), Gt(null, e), xt.loading_bar && oa(r), document.documentElement.setAttribute("lang", e), void Pe("languageChanged", e, t || ""); dn(Vt(), e).then((function (n) { fn(), Gt(n, e), document.documentElement.setAttribute("lang", e), Pe("languageChanged", e, t || ""), xt.loading_bar && oa(r) })).catch((function (e) { throw xt.loading_bar && oa(r), fn(), Ve().removeItem(F), e })), Oe("onPageLanguageSet", e) } } function sa(e) { return !(!xt.is_connect || ze() === e) && (!xt.host || xt.previewHash && window.location.hostname.includes(z) || function () { if (xt.subdirectory) return [xt.host].concat(l); return xt.languages.map((function (e) { return e.connect_host_destination && e.connect_host_destination.host })).concat([xt.host].concat(l)) }().includes(window.location.hostname) ? (tt(e, (function (e) { return window.location.replace(e) })), !0) : (me() || M.warn('"' + window.location.hostname + '" is not configured with Weglot. Please contact support@weglot.com', { sendToDatadog: !1 }), !1)) } je("initialized", (function () { xt.translate_search && !xt.switcher_editor && function () { var e = xt.search_forms, t = xt.search_parameter; if (t) { for (var n = 0, r = ue(document, e); n < r.length; n += 1) { var o = r[n]; o.addEventListener("submit", (function (e) { e.preventDefault(); var n = e.target.elements[t].value; gn(n, (function (e) { Le.set("wg-search-form", n), o.elements[t].value = e, o.submit() })) })); var a = void 0; -1 !== window.location.search.indexOf(t + "=") && o.elements && o.elements[t] && (a = Le.get("wg-search-form")) && (o.elements[t].value = a) } Le.erase("wg-search-form") } else M.warn("Search parameter name required for search translation.", { sendToDatadog: !1 }) }() }), !0); var la = !1; function ua() { window.addEventListener("message", ga, !1); var e = document.createElement("meta"); e.name = "google", e.content = "notranslate", document.head && document.head.appendChild(e); document.documentElement && -1 === ["cms.e.jimdo.com", "proxy.weglot.com"].indexOf(window.location.host) && document.documentElement.setAttribute("translate", "no"); var t = document.head.querySelector("link[href*=weglot_shopify]"); t && document.head.removeChild(t) } function fa() { if (xt.api_key) { je("initialized", (function () { xt.page_views_enabled && (xt.is_connect ? tt(xt.language_from, (function (e) { return Zt(e) })) : Zt()) }), !0); try { H(document, xt) } catch (e) { M.error(e) } if (Oe("onWeglotSetup"), !pa.initialized || window.Turbolinks) { Qo = function () { var e = rn(); if (xt.is_connect) { var t = document.documentElement.dataset.wgTranslated || (xt.subdirectory ? qe() : Me()); if (t !== xt.language_from) return t; if (xt.technology_name === J) { if (Le.get("wg_checkout_redirect")) return xt.language_from; var n = Le.get("wg_checkout_language"); if (n && !xt.shopifyCheckout && !me() && e.includes(n)) return Le.erase("wg_checkout_language"), n } var r = cn(); return t === xt.language_from && r && e.includes(r) ? r : xt.language_from } var o = he("lang"); if (o && e.includes(o)) return la = !0, o; var a = ln(); if (a && e.includes(a)) return a; var i = cn(); if (i && e.includes(i)) return la = !0, i; return xt.language_from }(), ze(); var e = nn(); if ((ea = Qo && Qo !== xt.language_from && document.documentElement.dataset.wgTranslated !== Qo && !e && !document.documentElement.dataset.wgExcludedUrl && !xt.switcher_editor) && xt.wait_transition ? ve("@keyframes wg{from{color:transparent;}to{color:transparent;}}body *{color:transparent!important;animation:1s linear infinite wg!important;}", B) : fn(), xt.delayStart) return je("start", (function () { return da() }), !0); ke(da) } } } function da() { if (!document.querySelector("#has-script-tags") || document.querySelector("#has-script-tags") && (document.head.innerHTML.indexOf("weglot_script_tag") > 0 || document.documentElement.innerHTML.indexOf("weglot_script_tag") > 0)) try { aa(Qo, la, ea) } catch (e) { fn(), M.error(e, { consoleOverride: "There has been an error initializing, " + e.stack }) } else fn(); Zo = !1, pa.initialized = !0 } function ga(e) { if (e.data) try { var t = JSON.parse(e.data); switch (t.message) { case "Weglot.detect": e.source.postMessage(JSON.stringify({ message: "Weglot.ready", data: { initialized: pa.initialized, options: xt } }), e.origin); break; case "Weglot.switchTo": ia(t.language) } } catch (e) { } } function _a(e) { try { for (var t = null, n = 0, r = [/cdn(?:-staging)?\.weglot\.(?:com|us)\/weglot\.min\.js\?([^#]+)/, /cdn(?:-staging)?\.weglot\.(?:com|us)\/weglot-switcher-editor\.js\?([^#]+)/, /cdn(?:-staging)?\.weglot\.(?:com|us)\/weglot_squarespace-[0-9]+\.min\.js\?([^#]+)/]; n < r.length; n += 1) { if (t = r[n].exec(e)) break } if (!t) return null; var o = t[1].split("&").map((function (e) { var t = e.split("="), n = t[0], r = t[1]; try { return [n, decodeURIComponent(r)] } catch (e) { return [n, r] } })).reduce((function (e, t) { var n, r = t[0], o = t[1]; return Object.assign({}, e, ((n = {})[r] = "true" === o || "false" !== o && o, n)) }), { api_key: "" }); return o.api_key ? o : null } catch (e) { console.log(e), M.warn(e) } } var pa = window.Weglot || { initialized: !1, options: xt, dynamic: "", switchTo: ia, setup: function (e) { ua(), Zo || (Zo = !0, Ae(Lt(), "polyfillReady", (function () { bt(e).then((function () { return fa() })).catch((function () { M.warn("Your setup is deprecated, please save settings in your dashboard to hide this message.", { sendToDatadog: !1 }); var t = e.api_key; e.translation_engine = t && t.length >= 36 ? 2 : 1, function (e) { try { var t = ["api_key", "originalLanguage", "destinationLanguages"]; if (!e || t.some((function (t) { return !e[t] }))) throw { wgErrMsg: "You have to provide at least: " + t.join(", ") }; Ct(vt(e)) } catch (e) { throw new Error(e && e.wgErrMsg || "Error while reading Weglot options") } }(e), fa() })) }))) }, initialize: function (e) { ua(), Zo || (Zo = !0, Ae(Lt(), "polyfillReady", (function () { bt(e).then((function () { return fa() })) }))) }, on: function (e, t) { return je(e, t, !1) }, off: function (e, t) { var n, r = !1, o = function (t) { return Te[t].name === e && !Te[t].internal }; n = "function" == typeof t ? function (e) { return o(e) && Te[e].callback === t } : function (e) { return o(e) }; for (var a = Te.length - 1; a >= 0; a--)n(a) && (Te.splice(a, 1), r = !0); return r }, getStoredLang: ln, getLanguageName: ao, getCurrentLang: ze, polyReady: Nt, getCache: function () { return jt }, addNodes: function (e) { var t = Ft(e); return $t(t), na(t) }, search: gn, translate: function (e, t) { void 0 === e && (e = {}); var n = e.words, r = e.languageTo; if (void 0 === r && (r = ze()), !Array.isArray(n) || "object" != typeof n[0]) { var o = "Weglot.translate: 1st arg must be an array of objects"; return M.error(o, { sendToDatadog: !1 }), t && t(null, o), Promise.reject() } return r === xt.language_from ? (t && t(n.map((function (e) { return e.w }))), Promise.resolve(n.map((function (e) { return e.w })))) : new Promise((function (e, o) { dn(n, r, { title: !1, cdn: !0 }).then((function (n) { if (!n || !n.to_words) throw n; t && t(n.to_words), e(n.to_words) })).catch((function (e) { o(e), t && t(null, e) })) })) }, getBestAvailableLanguage: an, getAvailableLanguages: rn }; return Ae(Lt(), "polyfillReady", (function () { Ko(document); for (var e = 0, t = [document.currentScript].concat(Array.from(document.scripts)); e < t.length; e += 1) { var n = t[e], r = n && (n.src || n.getAttribute && n.getAttribute("data-src")); if (r) { var o = _a(r); if (o) return void pa.initialize(o) } } })), pa }(); </script> <script> $(document).ready(function () { Weglot.initialize({ api_key: 'wg_fa101db2d708598edbe4bfdc026b0c555', /*api_key: 'wg_ae00a96caabda8b822622dba8af3b7402',*/ switchers: [ { // Your first language switcher design button_style: { full_name: false, with_name: true, is_dropdown: true, with_flags: true, flag_type: "circle", invert_flags: false }, // Your first language switcher position location: { target: ".weglotdiv", sibling: null } }, { // Your second language switcher design button_style: { full_name: true, with_name: true, is_dropdown: true, with_flags: true, flag_type: "circle", invert_flags: false }, // Your second language switcher position location: { target: ".weglotnavdiv", sibling: null } } ] }); $(".weglotdiv").hover( function () { $(".weglotdiv > .weglot-container > .wg-drop > ul").slideDown('fast'); $('.country-selector .closed').toggleClass('wgcurrent'); }, function () { $(".weglotdiv .weglot-container > .wg-drop > ul").slideUp('fast'); } ); $(".weglotnavdiv").hover( function () { $(".weglotnavdiv > .weglot-container > .wg-drop > ul").slideDown('fast'); $(".weglotnavdiv > .weglot-container > .wg-drop > ul").css("display", "block"); }, function () { $(".weglotnavdiv > .weglot-container > .wg-drop > ul").slideUp('fast'); } ); }); </script> <style> .weglotdiv.multilanguage { top: -5px; margin-left: 12px; position: relative; height: 29px; } .multilanguage .wg-drop.country-selector .wgcurrent { /*background-color: #000;*/ border-radius: 0px; /* padding-right: 18px; width: 140px;*/ } .weglotdiv.multilanguage .wgcurrent a { margin-left:0px; } .multilanguage .wg-drop.country-selector .wgcurrent a { padding: 7px 15px 8px 0px; height: inherit; color: #000; font-size: 13px; } .multilanguage .wg-drop.country-selector .wgcurrent { border: 0px; } .country-selector { display: inline-block; font-size: 13px; position: relative; text-align: left; width: auto; margin-right: 15px; } .multilanguage .wg-drop.weg-openleft ul { right: 0; padding-top: 0px; border-radius: 0px; } .wg-flags a img.wg-flag { height: 24px; margin-right: 2px; border: solid 2px #fff; border-radius: 100%; } .wg-drop.country-selector .wgcurrent:after { /* filter: invert(1);*/ right:0px; } .wg-drop.country-selector:hover .wgcurrent.wg-li.wg-flags:after { transform: rotate(-180deg); } .wg-drop.country-selector .wgcurrent.wg-li.wg-flags:after { transform: rotate(0deg); } .wg-drop ul { right: 0; padding-top: 0px; border-radius: 0px; } .multilanguage .weglot-container ul li a:first-child { padding-left: 0px; font-size: 13px; } <!-- for sticky header --> .weglotnavdiv .wg-drop.country-selector .wgcurrent a { padding: 0; } .weglotnavdiv .wg-drop.country-selector .wgcurrent { border: 0; padding: 10px 0; } .weglotnavdiv #weglot-language-en .wg-flag { margin-right: 0; } .weglotnavdiv .wg-flags a img.wg-flag { height: 24px; margin-right: 10px; border: solid 2px #fff; border-radius: 100%; margin-right: 0; } .weglotnavdiv .wg-drop.weg-openleft ul { text-align: center; display: block; flex-direction: column; -webkit-box-shadow: 0 2px 2px 0 rgb(0 0 0 / 14%), 0 3px 1px -2px rgb(0 0 0 / 12%), 0 1px 5px 0 rgb(0 0 0 / 20%); box-shadow: 0 2px 2px 0 rgb(0 0 0 / 14%), 0 3px 1px -2px rgb(0 0 0 / 12%), 0 1px 5px 0 rgb(0 0 0 / 20%); padding: 10px; border-radius: 5px; border: 0; } .weglotnavdiv .wg-drop.country-selector ul { padding: 5px; width: 130px; flex-direction: column; -webkit-box-shadow: 0 2px 2px 0 rgb(0 0 0 / 14%), 0 3px 1px -2px rgb(0 0 0 / 12%), 0 1px 5px 0 rgb(0 0 0 / 20%); box-shadow: 0 2px 2px 0 rgb(0 0 0 / 14%), 0 3px 1px -2px rgb(0 0 0 / 12%), 0 1px 5px 0 rgb(0 0 0 / 20%); border-radius: 5px; border: 0; } .weglotnavdiv .wg-drop.country-selector li { margin: 5px auto; } .weglotnavdiv .wg-flags a {padding:10px; } .weglotnavdiv .wg-drop.country-selector li a { display: flex; flex-wrap: nowrap; flex-direction: row; padding: 5px; /*height: 30px;*/ justify-content:flex-start; } .wg-flag { height: unset !important; } .weglotnavdiv .wg-drop.country-selector .wgcurrent a { padding-right: 10px; } .wg-drop.country-selector :not(.wgcurrent) a { width: unset; padding: 10px; justify-content: flex-start; margin-left: 5px; } .weglotnavdiv .wg-drop.country-selector li a img { margin-right: 10px; } .country-selector .wg-li { font-size: 13px; } @media screen and (min-width: 1200px) and (max-width: 1300px) { .multilanguage { margin-top: 8px !important; } .multilanguage .weglot-container ul li a { padding-top: 0px; padding-bottom: 0px; } } @media (max-width:1024px) { /* .multilanguage { margin-top: 8px !important; position: absolute; right: 34px; }*/ .weglotnavdiv .wg-drop.weg-openleft ul { right: 0; } } @media (max-width: 800px) { /* .multilanguage { margin-top: 14px !important; position: absolute; right: 32px; }*/ } </style> </ul> </div> </div> </div> </div> </div> <style> .advtbannerimg { margin-top: 8px; margin-right: 2%; position: absolute; z-index: 9999; right: 0px; width: 160px; } .advtbanner { max-width: 1280px; margin: 0px auto; right: 0px; position: relative; z-index: 9999; } .loginadvt { margin-right: 1%; } @media only screen and (max-width: 1024px) { .advtbannerimg { margin-right: 3%; } .loginadvt { margin-right: 2%; } } </style> <!-- header start --> <div class="news-header"> <div class="container"> <div class="row" style="display:flex;align-items: center;"> <div class="col-lg-3 col-md-4 col-sm-5"> <div class="navbar-logo"> <a data-f2feventlogoclicktrack="{&quot;F2FEventName&quot;:&quot;Icon Clicked&quot;,&quot;F2FEventType&quot;:&quot;Logo&quot;,&quot;F2FSection&quot;:&quot;Header&quot;,&quot;F2FType&quot;:&quot;Static&quot;,&quot;F2FText&quot;:&quot;F2F Icon&quot;}" href="https://www.fibre2fashion.com/"><img class="front-logo" width="300" height="40" src="https://static.fibre2fashion.com/f2flogo/f2flogo-black.svg" class="img-fluid" alt="logo" title=""></a> <a data-f2feventlogoclicktrack="{&quot;F2FEventName&quot;:&quot;Icon Clicked&quot;,&quot;F2FEventType&quot;:&quot;Logo&quot;,&quot;F2FSection&quot;:&quot;Header&quot;,&quot;F2FType&quot;:&quot;Static&quot;,&quot;F2FText&quot;:&quot;F2F Icon&quot;}" href="https://www.fibre2fashion.com/"><img class="sticky-logo" width="300" height="40" src="https://static.fibre2fashion.com/f2flogo/f2flogo-black.svg" class="img-fluid" alt="logo" title=""></a> </div> </div> <div class="col-lg-6 col-md-7 col-sm-5"> <div class="navbar-menu"> <div class="Other-Header"> <ul> <li><a data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Header Clicked&quot;,&quot;F2FEventType&quot;:&quot;Header&quot;}" href="https://www.fibre2fashion.com/garments">Business</a></li> <li><a data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Header Clicked&quot;,&quot;F2FEventType&quot;:&quot;Header&quot;}" href="https://www.fibre2fashion.com/market-intelligence">Market Intelligence</a></li> <li><a data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Header Clicked&quot;,&quot;F2FEventType&quot;:&quot;Header&quot;}" href="https://www.fibre2fashion.com/news/">News</a></li> <li> <a data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Header Clicked&quot;,&quot;F2FEventType&quot;:&quot;Header&quot;}" href="javascript:void(0);">Services <i class="fa fa-angle-down" aria-hidden="true"></i></a> <ul class="other-sab-menu services-sub-menu"> <div> <li class="sub-menu-title"><a data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Header Clicked&quot;,&quot;F2FEventType&quot;:&quot;Header&quot;}" href="https://www.fibre2fashion.com/business-solutions/b2b-membership/">B2B Membership</a></li> <li class="sub-menu-title">Media</li> <li><a class="sublink" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Header Clicked&quot;,&quot;F2FEventType&quot;:&quot;Header&quot;}" href="https://www.fibre2fashion.com/business-solutions/prime-content">Prime News</a></li> <li><a class="sublink" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Header Clicked&quot;,&quot;F2FEventType&quot;:&quot;Header&quot;}" href="https://www.fibre2fashion.com/business-solutions/media-booster-press-release-packages">Media Booster</a></li> <li><a class="sublink" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Header Clicked&quot;,&quot;F2FEventType&quot;:&quot;Header&quot;}" href="https://www.fibre2fashion.com/business-solutions/magazine/">Magazine Subscription</a></li> <li class="sub-menu-title"><a data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Header Clicked&quot;,&quot;F2FEventType&quot;:&quot;Header&quot;}" href="https://emerge.fibre2fashion.com/" target="_blank">Emerge - Fashion Accelerator</a></li> <li class="sub-menu-title border-none"><a style="text-decoration: none; display: flex; align-items: center;" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Header Clicked&quot;,&quot;F2FEventType&quot;:&quot;Header&quot;}" href="https://streamevent.tech/" target="_blank">Stream Event</a></li> </div> <div> <li class="sub-menu-title">Market Intelligence</li> <li><a class="sublink" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Header Clicked&quot;,&quot;F2FEventType&quot;:&quot;Header&quot;}" target="_blank" href="https://www.fibre2fashion.com/market-intelligence/texpro-textile-and-apparel/">TexPro</a></li> <li><a class="sublink" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Header Clicked&quot;,&quot;F2FEventType&quot;:&quot;Header&quot;}" target="_blank" href="https://www.fibre2fashion.com/market-intelligence/customized-research/">Custom Market Research</a></li> <li><a class="sublink" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Header Clicked&quot;,&quot;F2FEventType&quot;:&quot;Header&quot;}" target="_blank" href="https://alchempro.com/">ALCHEMPro</a></li> <li class="sub-menu-title">Advertisement</li> <li><a class="sublink" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Header Clicked&quot;,&quot;F2FEventType&quot;:&quot;Header&quot;}" href="https://www.fibre2fashion.com/business-solutions/digital-advertisement-solutions/">Digital Advertisement</a></li> <li><a class="sublink" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Header Clicked&quot;,&quot;F2FEventType&quot;:&quot;Header&quot;}" href="https://www.fibre2fashion.com/business-solutions/magazine#PrintAdvertisement">Print Advertisement</a></li> <li><a class="sublink" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Header Clicked&quot;,&quot;F2FEventType&quot;:&quot;Header&quot;}" href="https://www.fibre2fashion.com/knowledge/webinar">Webinar</a></li> </div> </ul> </li> <li> <a data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Header Clicked&quot;,&quot;F2FEventType&quot;:&quot;Header&quot;}" href="javascript:void(0);">More <i class="fa fa-angle-down" aria-hidden="true"></i></a> <ul class="other-sab-menu"> <li><a data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Header Clicked&quot;,&quot;F2FEventType&quot;:&quot;Header&quot;}" href="https://www.fibre2fashion.com/industry-article/">Articles</a></li> <li><a data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Header Clicked&quot;,&quot;F2FEventType&quot;:&quot;Header&quot;}" href="https://www.fibre2fashion.com/trade-fairs/">Trade Fairs</a> </li> <li><a data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Header Clicked&quot;,&quot;F2FEventType&quot;:&quot;Header&quot;}" href="https://www.fibre2fashion.com/interviews">Interviews</a></li> <li><a data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Header Clicked&quot;,&quot;F2FEventType&quot;:&quot;Header&quot;}" href="https://www.technicaltextile.net/" target="_blank">Technical Textiles</a></li> <li><a data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Header Clicked&quot;,&quot;F2FEventType&quot;:&quot;Header&quot;}" href="https://www.fibre2fashion.com/web-stories">Web Stories</a></li> </ul> </li> </ul> </div> </div> <header class="header-re" id="header"> <nav class="navbar-re "> <div class="burger" id="burger"> <span class="burger-line"></span> <span class="burger-line"></span> <span class="burger-line"></span> </div> <span class="overlay"></span> <div class="menu" id="menu"> <div class="close-sidebar-wrapper"> <img src="https://static.fibre2fashion.com/staticresources/images/search-close-icon.png"> </div> <div class="clearfix"></div> <a data-f2feventhamburgerlogoclicktrack="{&quot;F2FEventName&quot;:&quot;Icon Clicked&quot;,&quot;F2FEventType&quot;:&quot;Logo&quot;,&quot;F2FSection&quot;:&quot;Hambourger Slider&quot;,&quot;F2FType&quot;:&quot;Static&quot;,&quot;F2FText&quot;:&quot;F2F Icon&quot;}" class="front-logo-wrapper" href="https://www.fibre2fashion.com/"><img class="front-logo" src="https://static.fibre2fashion.com/f2flogo/f2flogo-black.svg" class="img-fluid" alt="logo" title=""></a> <ul class="menu-inner"> <li class="menu-item"><a data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Header Clicked&quot;,&quot;F2FEventType&quot;:&quot;Header&quot;}" href="https://www.fibre2fashion.com/garments">Business</a></li> <li class="menu-item"><a data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Header Clicked&quot;,&quot;F2FEventType&quot;:&quot;Header&quot;}" href="https://www.fibre2fashion.com/market-intelligence">Market Intelligence</a></li> <li class="menu-item"><a data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Header Clicked&quot;,&quot;F2FEventType&quot;:&quot;Header&quot;}" href="https://www.fibre2fashion.com/news/">News</a></li> <li class="menu-item"> <a data-toggle="collapse" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Header Clicked&quot;,&quot;F2FEventType&quot;:&quot;Header&quot;}" href="#sab-menu-1" role="button" aria-expanded="false" aria-controls="sab-menu-1">Services <i class="pull-right fa fa-angle-down" aria-hidden="true"></i></a> <ul id="sab-menu-1" class="sab-menu-item collapse new-submenu"> <li class="submenutitle">Advertisement</li> <li><a data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Header Clicked&quot;,&quot;F2FEventType&quot;:&quot;Header&quot;}" href="https://www.fibre2fashion.com/business-solutions/digital-advertisement-solutions/">Digital Advertisement</a></li> <li><a data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Header Clicked&quot;,&quot;F2FEventType&quot;:&quot;Header&quot;}" href="https://www.fibre2fashion.com/business-solutions/magazine#PrintAdvertisement">Print Advertisement</a></li> <li><a data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Header Clicked&quot;,&quot;F2FEventType&quot;:&quot;Header&quot;}" href="https://www.fibre2fashion.com/knowledge/webinar">Webinar</a></li> <li class="submenutitle">Market Intelligence</li> <li><a target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Header Clicked&quot;,&quot;F2FEventType&quot;:&quot;Header&quot;}" href="https://www.fibre2fashion.com/market-intelligence/texpro-textile-and-apparel/">TexPro</a></li> <li><a target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Header Clicked&quot;,&quot;F2FEventType&quot;:&quot;Header&quot;}" href="https://www.fibre2fashion.com/market-intelligence/customized-research/">Custom Market Research</a></li> <li class="submenutitle">Media</li> <li><a data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Header Clicked&quot;,&quot;F2FEventType&quot;:&quot;Header&quot;}" href="https://www.fibre2fashion.com/business-solutions/prime-content">Prime News</a></li> <li><a data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Header Clicked&quot;,&quot;F2FEventType&quot;:&quot;Header&quot;}" href="https://www.fibre2fashion.com/business-solutions/media-booster-press-release-packages">Media Booster</a></li> <li><a data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Header Clicked&quot;,&quot;F2FEventType&quot;:&quot;Header&quot;}" href="https://www.fibre2fashion.com/business-solutions/magazine/">Magazine Subscription</a></li> <li class="submenutitle border-none"><a data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Header Clicked&quot;,&quot;F2FEventType&quot;:&quot;Header&quot;}" href="https://www.fibre2fashion.com/business-solutions/b2b-membership/"> B2B Membership</a></li> <li class="submenutitle border-none"><a data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Header Clicked&quot;,&quot;F2FEventType&quot;:&quot;Header&quot;}" href="https://emerge.fibre2fashion.com/" target="_blank">Emerge - Fashion Accelerator</a></li> <li class="submenutitle border-none"><a style="text-decoration: none; display: flex; align-items: center;" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Header Clicked&quot;,&quot;F2FEventType&quot;:&quot;Header&quot;}" href="https://streamevent.tech/" target="_blank">Stream Event <span class="newtag">NEW</span></a></li> </ul> </li> <li class="menu-item"> <a data-toggle="collapse" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Header Clicked&quot;,&quot;F2FEventType&quot;:&quot;Header&quot;}" href="#sab-menu-2" role="button" aria-expanded="false" aria-controls="sab-menu-2">More <i class="pull-right fa fa-angle-down" aria-hidden="true"></i></a> <ul id="sab-menu-2" class="sab-menu-item collapse"> <li><a data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Header Clicked&quot;,&quot;F2FEventType&quot;:&quot;Header&quot;}" href="https://www.fibre2fashion.com/industry-article/">Articles</a></li> <li><a data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Header Clicked&quot;,&quot;F2FEventType&quot;:&quot;Header&quot;}" href="https://www.fibre2fashion.com/interviews">Interviews</a></li> <li><a data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Header Clicked&quot;,&quot;F2FEventType&quot;:&quot;Header&quot;}" href="https://www.fibre2fashion.com/trade-fairs/">Trade Fairs</a> </li> <li><a data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Header Clicked&quot;,&quot;F2FEventType&quot;:&quot;Header&quot;}" href="https://www.technicaltextile.net/" target="_blank">Technical Textiles</a></li> </ul> </li> </ul> </div> </nav> </header> </div> <div class="col-lg-3 col-md-2 col-sm-3"> <div class="navbar-login icon-angle icon-color"> <ul> <li> <a id="search" onclick="HideShow('searchicon')" style="cursor:pointer"> <img alt="search" class="front-icon" width="21" height="21" src="https://static.fibre2fashion.com/staticresources/images/search.svg" /> <img alt="search" class="back-icon" width="21" height="21" src="https://static.fibre2fashion.com/staticresources/images/search.svg" /> Search </a> </li> <li class="user-menu"> <a data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Header Clicked&quot;,&quot;F2FEventType&quot;:&quot;Header&quot;,&quot;F2FText&quot;:&quot;Sign In&quot;}" href="//members.fibre2fashion.com/login?myurl=https%3a%2f%2fwww.fibre2fashion.com%2fdyes%2fdyes-suppliers-s64"> <svg class="front-icon" width="16" height="22" viewBox="0 0 16 22" fill="none" xmlns="https://www.w3.org/2000/svg"> <path d="M16 21.5002H14V19.5002C14 18.7046 13.6839 17.9415 13.1213 17.3789C12.5587 16.8163 11.7956 16.5002 11 16.5002H5C4.20435 16.5002 3.44129 16.8163 2.87868 17.3789C2.31607 17.9415 2 18.7046 2 19.5002V21.5002H0V19.5002C0 18.1742 0.526784 16.9024 1.46447 15.9647C2.40215 15.027 3.67392 14.5002 5 14.5002H11C12.3261 14.5002 13.5979 15.027 14.5355 15.9647C15.4732 16.9024 16 18.1742 16 19.5002V21.5002ZM8 12.5002C7.21207 12.5002 6.43185 12.345 5.7039 12.0435C4.97595 11.742 4.31451 11.3 3.75736 10.7429C3.20021 10.1857 2.75825 9.5243 2.45672 8.79634C2.15519 8.06839 2 7.28818 2 6.50024C2 5.71231 2.15519 4.9321 2.45672 4.20414C2.75825 3.47619 3.20021 2.81475 3.75736 2.2576C4.31451 1.70045 4.97595 1.2585 5.7039 0.956967C6.43185 0.655439 7.21207 0.500244 8 0.500244C9.5913 0.500244 11.1174 1.13239 12.2426 2.2576C13.3679 3.38282 14 4.90895 14 6.50024C14 8.09154 13.3679 9.61767 12.2426 10.7429C11.1174 11.8681 9.5913 12.5002 8 12.5002V12.5002ZM8 10.5002C9.06087 10.5002 10.0783 10.0788 10.8284 9.32867C11.5786 8.57853 12 7.56111 12 6.50024C12 5.43938 11.5786 4.42196 10.8284 3.67182C10.0783 2.92167 9.06087 2.50024 8 2.50024C6.93913 2.50024 5.92172 2.92167 5.17157 3.67182C4.42143 4.42196 4 5.43938 4 6.50024C4 7.56111 4.42143 8.57853 5.17157 9.32867C5.92172 10.0788 6.93913 10.5002 8 10.5002V10.5002Z" fill="#1A2755" /> </svg> <svg class="back-icon" width="16" height="21" viewBox="0 0 16 21" fill="none" xmlns="https://www.w3.org/2000/svg"> <path d="M16 21H14V19C14 18.2044 13.6839 17.4413 13.1213 16.8787C12.5587 16.3161 11.7956 16 11 16H5C4.20435 16 3.44129 16.3161 2.87868 16.8787C2.31607 17.4413 2 18.2044 2 19V21H0V19C0 17.6739 0.526784 16.4021 1.46447 15.4645C2.40215 14.5268 3.67392 14 5 14H11C12.3261 14 13.5979 14.5268 14.5355 15.4645C15.4732 16.4021 16 17.6739 16 19V21ZM8 12C7.21207 12 6.43185 11.8448 5.7039 11.5433C4.97595 11.2417 4.31451 10.7998 3.75736 10.2426C3.20021 9.68549 2.75825 9.02405 2.45672 8.2961C2.15519 7.56815 2 6.78793 2 6C2 5.21207 2.15519 4.43185 2.45672 3.7039C2.75825 2.97595 3.20021 2.31451 3.75736 1.75736C4.31451 1.20021 4.97595 0.758251 5.7039 0.456723C6.43185 0.155195 7.21207 -1.17411e-08 8 0C9.5913 2.37122e-08 11.1174 0.632141 12.2426 1.75736C13.3679 2.88258 14 4.4087 14 6C14 7.5913 13.3679 9.11742 12.2426 10.2426C11.1174 11.3679 9.5913 12 8 12ZM8 10C9.06087 10 10.0783 9.57857 10.8284 8.82843C11.5786 8.07828 12 7.06087 12 6C12 4.93913 11.5786 3.92172 10.8284 3.17157C10.0783 2.42143 9.06087 2 8 2C6.93913 2 5.92172 2.42143 5.17157 3.17157C4.42143 3.92172 4 4.93913 4 6C4 7.06087 4.42143 8.07828 5.17157 8.82843C5.92172 9.57857 6.93913 10 8 10Z" fill="#1A2755" /> </svg> Sign In </a> </li> <li style="display:none" class="weglotnavdiv" id="navbarweglot"></li> </ul> </div> </div> <div class="hidden-menu searchblockhideshow" style="display:none;"> <a onclick="HideShow('closeicon');"> <div class="search-close-icon" id="searchclose"> <img src="https://static.fibre2fashion.com/staticresources/images/search-close-icon.png"> </div> </a> <div class="container searchbox"> <div class="col-md-8 m-auto"> <div class="input-group stylish-input-group search-box new-search" id="essearchbox"> <select id="esCategory" name="esCategory" class="esCategory" style="display: none;"> <option class="icon-all" selected="selected" value="" data-url="" data-text="Answer to all your Textile needs">All Categories</option> <option class="icon-articles" value="articles" data-url="//www.fibre2fashion.com/industry-article/search" data-text="Search for well researched articles by industry experts">Articles</option> <option class="icon-news" value="news" data-url="//www.fibre2fashion.com/news/allnews.aspx" data-text="Search For Top News Stories">News</option> <option class="icon-buyer" value="buyer" data-url="https://www.fibre2fashion.com/garments/SearchResult.aspx" data-text="Looking to buy - sell or connect?">Buyers</option> <option class="icon-supplier" value="seller" data-url="https://www.fibre2fashion.com/garments/SearchResult.aspx" data-text="Looking to buy - sell or connect?">Suppliers</option> <option class="icon-trade-fairs" value="tradefairs" data-url="https://www.fibre2fashion.com/trade-fairs/CommonSearchResult.aspx" data-text="Search For Upcoming Tradefairs and Events">Trade Fairs</option> <option class="icon-interview" value="interview" data-url="//www.fibre2fashion.com/interviews/search" data-text="Search For Interview">Interview</option> <option class="icon-mi" value="mi" data-url="//www.fibre2fashion.com/market-intelligence/SearchResult.aspx?page=1" data-text="Search for price trends, trade data and more">Market Intelligence</option> </select> <!-- Uncomment following line if you want to enable auto complete functionality --> <div id="new-ui-container"> <input onkeypress="handle(event);" id="esQuery" name="esQuery" type="text" style="width:150px; visibility:hidden;" class="headersearch f2fsearchtext" placeholder="Answer to all your Textile needs"> <input type="hidden" id="hdnQueryCode" /> <span class="input-group-addon input-group-addon icon-search bordernone"> <a id="esSearch" href="javascript:void(0);"> <button type="submit" class="searchicon"> <span class="f2f-icons icon-search"></span> </button> </a> </span> <div id="f2fAutoSearching"></div><ul id="localStorageData" class="ui-autocomplete ui-front ui-menu ui-widget ui-widget-content esAutoSuggest" style="display:none;"></ul> </div> </div> <input type="hidden" value="no" id="hdnIsMobileSite" /> <input type="hidden" id="hdnUrl" value='https://search.fibre2fashion.com/handler/ESResult.ashx' /> <input type="hidden" id="hdnTrackerUrl" value='https://search.fibre2fashion.com/handler/ESSearchTracker.ashx' /> <link rel='preload' media='all' as="style" onload="this.rel='stylesheet'" type="text/css" href="https://static.fibre2fashion.com/StaticResources/cssv1/search-new-ui.min.css?var=2.4"> <style> @font-face{font-family:icomoon;src:url('https://static.fibre2fashion.com/fonts/category-fonts/fonts/icomoon.eot?auryy8');src:url('https://static.fibre2fashion.com/fonts/category-fonts/fonts/icomoon.eot?auryy8#iefix') format('embedded-opentype'),url('https://static.fibre2fashion.com/fonts/category-fonts/fonts/icomoon.ttf?auryy8') format('truetype'),url('https://static.fibre2fashion.com/fonts/category-fonts/fonts/icomoon.woff?auryy8') format('woff'),url('https://static.fibre2fashion.com/fonts/category-fonts/fonts/icomoon.svg?auryy8#icomoon') format('svg');font-weight:400;font-style:normal;font-display:block}[class*=" f2f-icons"],[class^=f2f-icons]{font-family:icomoon!important;speak:never;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.f2f-icons.icon-search:before{content:"\e909"}.f2f-icons.icon-recruitment:before{content:"\e900"}.f2f-icons.icon-all:before{content:"\e901"}.f2f-icons.icon-trade-fairs:before{content:"\e902"}.f2f-icons.icon-news:before{content:"\e903"}.f2f-icons.icon-articles:before{content:"\e904"}.f2f-icons.icon-interview:before{content:"\e905"}.f2f-icons.icon-buyer:before{content:"\e906"}.f2f-icons.icon-supplier:before{content:"\e907"}.f2f-icons.icon-mi:before{content:"\e908"} </style> <script> !function (e) { "use strict"; var t = "selectric", s = "Input Items Open Disabled TempShow HideSelect Wrapper Hover Responsive Above Scroll Group GroupLabel", o = ".sl", i = { onChange: function (t) { e(t).change() }, maxHeight: 345, keySearchTimeout: 500, arrowButtonMarkup: '<b class="button">&#x25be;</b>', disableOnMobile: !0, openOnHover: !1, hoverIntentTimeout: 500, expandToItemText: !1, responsive: !1, preventWindowScroll: !0, inheritOriginalWidth: !1, allowWrap: !0, customClass: { prefix: t, camelCase: !1, overwrite: !0 }, optionsItemBuilder: "{text}", labelBuilder: "{text}" }, n = { add: function (e, t, s) { this[e] || (this[e] = {}), this[e][t] = s }, remove: function (e, t) { delete this[e][t] } }, l = { replaceDiacritics: function (e) { for (var t = "40-46 50-53 54-57 62-70 71-74 61 47 77".replace(/\d+/g, "\\3$&").split(" "), s = t.length; s--;)e = e.toLowerCase().replace(RegExp("[" + t[s] + "]", "g"), "aeiouncy".charAt(s)); return e }, format: function (e) { var t = arguments; return ("" + e).replace(/{(\d+|(\w+))}/g, function (e, s, o) { return o && t[1] ? t[1][o] : t[s] }) }, nextEnabledItem: function (e, t) { for (; e[t = (t + 1) % e.length].disabled;); return t }, previousEnabledItem: function (e, t) { for (; e[t = (t > 0 ? t : e.length) - 1].disabled;); return t }, toDash: function (e) { return e.replace(/([a-z])([A-Z])/g, "$1-$2").toLowerCase() }, triggerCallback: function (s, o) { var i = o.element, a = o.options["on" + s]; e.isFunction(a) && a.call(i, i, o), n[s] && e.each(n[s], function () { this.call(i, i, o) }), e(i).trigger(t + "-" + l.toDash(s), o) } }, a = e(document), r = e(window), c = function (n, c) { function d(t) { if (j.options = e.extend(!0, {}, i, j.options, t), j.classes = {}, j.element = n, l.triggerCallback("BeforeInit", j), j.options.disableOnMobile && Y) return void (j.disableOnMobile = !0); C(!0); var o = j.options.customClass, a = s.split(" "), r = F.width(); e.each(a, function (e, t) { var s = o.prefix + t; j.classes[t.toLowerCase()] = o.camelCase ? s : l.toDash(s) }), x = e("<input/>", { "class": j.classes.input, readonly: Y }), k = e("<div/>", { "class": j.classes.items, tabindex: -1 }), T = e("<div/>", { "class": j.classes.scroll }), D = e("<div/>", { "class": o.prefix, html: j.options.arrowButtonMarkup }), I = e('<p class="label"/>'), y = F.wrap("<div>").parent().append(D.prepend(I), k, x), A = { open: m, close: g, destroy: C, refresh: u, init: d }, F.on(A).wrap('<div class="' + j.classes.hideselect + '">'), e.extend(j, A), $ = j.options.labelBuilder, j.options.inheritOriginalWidth && r > 0 && y.width(r), p() } function p() { j.items = []; var t = F.children(), s = "<ul>", i = F.find("option"), n = i.index(i.filter(":selected")), a = 0; B = S = ~n ? n : 0, (E = t.length) && (t.each(function () { function t() { var t = e(this), o = t.html(), i = t.prop("disabled"), n = j.options.optionsItemBuilder; j.items[a] = { element: t, value: t.val(), text: o, slug: l.replaceDiacritics(o), disabled: i }, s += l.format('<li data-index="{1}" class="{2}">{3}</li>', a, e.trim([a == B ? "selected" : "", a == E - 1 ? "last" : "", i ? "disabled" : ""].join(" ")), e.isFunction(n) ? n(j.items[a], t, a) : l.format(n, j.items[a])), a++ } var o = e(this); if (o.is("optgroup")) { var i = o.prop("disabled"), n = o.children(); s += l.format('<ul class="{1}"><li class="{2}">{3}</li>', e.trim([j.classes.group, i ? "disabled" : "", o.prop("class")].join(" ")), j.classes.grouplabel, o.prop("label")), i && n.prop("disabled", !0), n.each(t), s += "</ul>" } else t.call(o) }), k.append(T.html(s + "</ul>")), I.html(e.isFunction($) ? $(j.items[B]) : l.format($, j.items[B]))), D.add(F).add(y).add(x).off(o), y.prop("class", [j.classes.wrapper, j.options.customClass.overwrite ? F.prop("class").replace(/\S+/g, j.options.customClass.prefix + "-$&") : F.prop("class"), j.options.responsive ? j.classes.responsive : ""].join(" ")), F.prop("disabled") ? (y.addClass(j.classes.disabled), x.prop("disabled", !0)) : (R = !0, y.removeClass(j.classes.disabled).on("mouseenter" + o + " mouseleave" + o, function (t) { e(this).toggleClass(j.classes.hover), j.options.openOnHover && (clearTimeout(j.closeTimer), "mouseleave" == t.type ? j.closeTimer = setTimeout(g, j.options.hoverIntentTimeout) : m()) }), D.on("click" + o, function (e) { L ? g() : m(e) }), x.prop({ tabindex: P, disabled: !1 }).on("keypress" + o, h).on("keydown" + o, function (e) { h(e), clearTimeout(j.resetStr), j.resetStr = setTimeout(function () { x.val("") }, j.options.keySearchTimeout); var t = e.keyCode || e.which; if (t > 36 && 41 > t) { if (!j.options.allowWrap && (39 > t && 0 == S || t > 38 && S + 1 == j.items.length)) return; b(l[(39 > t ? "previous" : "next") + "EnabledItem"](j.items, S)) } }).on("focusin" + o, function (e) { x.one("blur", function () { x.blur() }), L || m(e) }).on("oninput" in x[0] ? "input" : "keyup", function () { x.val().length && e.each(j.items, function (e, t) { return RegExp("^" + x.val(), "i").test(t.slug) && !t.disabled ? (b(e), !1) : void 0 }) }), F.prop("tabindex", !1), O = e("li", k.removeAttr("style")).on({ mousedown: function (e) { e.preventDefault(), e.stopPropagation() }, click: function () { return b(e(this).data("index"), !0), !1 } }).filter("[data-index]")), l.triggerCallback("Init", j) } function u() { l.triggerCallback("Refresh", j), p() } function h(e) { var t = e.keyCode || e.which; 13 == t && e.preventDefault(), /^(9|13|27)$/.test(t) && (e.stopPropagation(), b(S, !0)) } function f() { var e = k.closest(":visible").children(":hidden").addClass(j.classes.tempshow), t = j.options.maxHeight, s = k.outerWidth(), o = D.outerWidth() - (s - k.width()); !j.options.expandToItemText || o > s ? M = o : (k.css("overflow", "scroll"), y.width(9e4), M = k.width(), k.css("overflow", ""), y.width("")), k.width(M).height() > t && k.height(t), e.removeClass(j.classes.tempshow) } function m(s) { l.triggerCallback("BeforeOpen", j), s && (s.preventDefault(), s.stopPropagation()), R && (f(), e("." + j.classes.hideselect, "." + j.classes.open).children()[t]("close"), L = !0, H = k.outerHeight(), W = k.height(), y.addClass(j.classes.open), x.val("").is(":focus") || x.focus(), a.on("click" + o, g).on("scroll" + o, v), v(), j.options.preventWindowScroll && a.on("mousewheel" + o + " DOMMouseScroll" + o, "." + j.classes.scroll, function (t) { var s = t.originalEvent, o = e(this).scrollTop(), i = 0; "detail" in s && (i = -1 * s.detail), "wheelDelta" in s && (i = s.wheelDelta), "wheelDeltaY" in s && (i = s.wheelDeltaY), "deltaY" in s && (i = -1 * s.deltaY), (o == this.scrollHeight - W && 0 > i || 0 == o && i > 0) && t.preventDefault() }), w(S), l.triggerCallback("Open", j)) } function v() { y.toggleClass(j.classes.above, y.offset().top + y.outerHeight() + H > r.scrollTop() + r.height()) } function g() { if (l.triggerCallback("BeforeClose", j), B != S) { l.triggerCallback("BeforeChange", j); var t = j.items[S].text; F.prop("selectedIndex", B = S).data("value", t), I.html(e.isFunction($) ? $(j.items[S]) : l.format($, j.items[S])), l.triggerCallback("Change", j) } a.off(o), y.removeClass(j.classes.open), L = !1, l.triggerCallback("Close", j) } function b(e, t) { void 0 != e && (j.items[e].disabled || (O.removeClass("selected").eq(S = e).addClass("selected"), w(e), t && g())) } function w(e) { var t = O.eq(e).outerHeight(), s = O[e].offsetTop, o = T.scrollTop(), i = s + 2 * t; T.scrollTop(i > o + H ? i - H : o > s - t ? s - t : o) } function C(e) { R && (k.add(D).add(x).remove(), !e && F.removeData(t).removeData("value"), F.prop("tabindex", P).off(o).off(A).unwrap().unwrap(), R = !1) } var x, k, T, D, I, y, O, S, B, H, W, M, E, A, $, j = this, F = e(n), L = !1, R = !1, Y = /android|ip(hone|od|ad)/i.test(navigator.userAgent), P = F.prop("tabindex"); d(c) }; e.fn[t] = function (s) { return this.each(function () { var o = e.data(this, t); o && !o.disableOnMobile ? "" + s === s && o[s] ? o[s]() : o.init(s) : e.data(this, t, new c(this, s)) }) }, e.fn[t].hooks = n }(jQuery); </script> <script defer type="text/javascript" src="https://static.fibre2fashion.com/StaticResources/js/jquery/plugins/jquery.highlight.min.js"></script> <script defer type="text/javascript" src="https://static.fibre2fashion.com/js/jquery/plugins/underscore.min.js"></script> <script type="text/javascript" src="https://static.fibre2fashion.com/staticresources/js/f2f/autosuggestionv5.min.js?v=4.8"></script> <script> $("#esQuery").click(function () { $(".hidden-menu").addClass("hidden-menuheight"); }); $(".searchblockhideshow").click(function (e) { $(".hidden-menu").removeClass("hidden-menuheight"); $("#localStorageData").empty(); $(".esAutoSuggest").empty(); $(".esAutoSuggest").css("display", "none"); }); </script> </div> <div class="clearfix"></div> <div class="advancesearchmenu"> <div class="advance-search-title" id="B2BAdvaceSearch"><a style="cursor:pointer;" onclick="B2BSearchshow();">Advanced Search</a></div> <span id="advsearchhide1" style="display:none;"><a onclick="HideAdvanceSearch();"> <i class="fa fa-angle-left" aria-hidden="true"></i> Advanced Search </a></span> <span id="advsearchhideB2B" style="display:none;"> Advanced Search</span> <div id="divAdvanceSearch" style="display:none;"> <div> <div id="smartsearch"> <div class="middle-container"> <form action="/dyes/Lead/SmartSearchPost" method="post" role="form"><input name="__RequestVerificationToken" type="hidden" value="9o9VC_zrsEv-D00wCAS8SKMsCbHEWlv0eJIDbu3Fc93zrcFQMiQcjOAwXSpuJTutXLReSiwwMN-Pxk3mKdu312GEP401" /> <div class="form-group"> <div class="row"> <div id="SearchBasicDN"> <div class="col-sm-3"> <select class="form-control" id="ddlSearchLeadType" name="LeadType"><option value="">Select Lead Type</option> <option value="Buyers">Buyers</option> <option value="Suppliers">Suppliers</option> </select> </div> <div class="col-sm-3"> <select class="form-control" data-val="true" data-val-number="The field Select Category must be a number." id="ddlSearchCategory" name="CategoryId" onchange="javascript:GetSearchSubCategoryProducts(this);"><option value="">Select Category</option> <option value="2">Clothing Accessory</option> <option selected="selected" value="3">Dyes &amp; Chemical</option> <option value="8">Fabric</option> <option value="6">Fashion Accessory</option> <option value="10">Fibre &amp; FeedStock</option> <option value="1">Garment</option> <option value="7">Home Textiles</option> <option value="4">Leather &amp; Footwear</option> <option value="5">Machinery</option> <option value="9">Yarn</option> </select> <input id="hdnSearchCategoryId" name="CategoryId" type="hidden" value="3" /> <input id="hdnSearchCategoryName" name="CategoryName" type="hidden" value="Dyes &amp; Chemical" /> </div> <div class="col-sm-3"> <select class="form-control" data-val="true" data-val-number="The field Select Sub Category must be a number." id="ddlSearchSubCategory" name="SubCategoryId" onchange="javascript:GetSearchProducts(this);"><option value="">Select Sub Category</option> <option value="68">Dye Intermediates</option> <option value="64">Dyes</option> <option value="67">Finishing Chemicals</option> <option value="69">Pigments</option> <option value="65">Preparatory Chemicals</option> <option value="66">Processing Chemicals</option> </select> <input id="hdnSearchSubCategoryName" name="SubCategoryName" type="hidden" value="" /> </div> </div> <div class="col-sm-3"> <select class="form-control" data-val="true" data-val-number="The field Select Products must be a number." id="ddlSearchProduct" name="ProductId" onchange="javascript:SetSearchProductName(this);"><option value="">Select Products</option> <option value="761">Acid Dyes</option> <option value="762">Acrylic Dyes</option> <option value="1987">Alpha-Naphthol</option> <option value="1988">Anthraquinone</option> <option value="1990">Anticorrosive Chemicals</option> <option value="773">Antifoaming Agents</option> <option value="1989">Anti-microbial finishes</option> <option value="765">Basic Dyes</option> <option value="1991">Beta-Naphthol</option> <option value="1381">Binders</option> <option value="766">Bleaching Agents</option> <option value="1371">Bleaching Powder</option> <option value="1372">Calcium hypochlorite</option> <option value="1802">Caustic Soda</option> <option value="1992">Chrome Yellow</option> <option value="1829">Cyanuric chloride</option> <option value="1814">Desizing agents</option> <option value="1806">DI AMINO SULFANILAMIDE (DASA)</option> <option value="777">Direct Dyes</option> <option value="1993">Disperse Dyes</option> <option value="1994">Dispersing Agent</option> <option value="1995">Dye Carriers&#160;</option> <option value="1996">Dyes Fixing Agents</option> <option value="1388">Emulsifiers</option> <option value="1376">Flame Retardants</option> <option value="2379">Flocking Powder</option> <option value="1836">Foaming Agents</option> <option value="1831">G salt</option> <option value="1832">Gamma Acid</option> <option value="1804">Glacial acetic acid</option> <option value="1998">H acid</option> <option value="1373">Hydrogen peroxide</option> <option value="783">Indigo</option> <option value="908">Ink</option> <option value="1369">Inorganic pigments</option> <option value="1833">J acid</option> <option value="1834">K acid</option> <option value="785">Levelling Agents</option> <option value="1999">Lubricants</option> <option value="2219">Masterbatch</option> <option value="2000">Mercirizing Chemicals</option> <option value="786">Metal Complex Dyes</option> <option value="1827">Naphthalene</option> <option value="789">Natural Dyes</option> <option value="2001">Optical Brightners</option> <option value="1370">Organic Pigments</option> <option value="1824">Polyvinyl Alcohol (PVA)</option> <option value="794">Reactive Dyes</option> <option value="1830">Resist salt</option> <option value="796">Scouring Agents</option> <option value="1818">Silicone Chemicals</option> <option value="1812">Sizing Agents</option> <option value="1813">Soaping Agents</option> <option value="1801">Soda Ash</option> <option value="1825">Sodium alginate</option> <option value="1385">Sodium Chemicals</option> <option value="1374">Sodium hypochlorite</option> <option value="798">Softeners</option> <option value="1368">Solvent Dyes</option> <option value="801">Starch</option> <option value="1828">Steric Acid</option> <option value="2013">Sulphur Dyes</option> <option value="1386">Surfactants</option> <option value="1387">Textile Coatings</option> <option value="2223">Textile Printing Thickeners</option> <option value="806">Thickening Agents</option> <option value="2014">Titanium Dioxide</option> <option value="2015">Ultramarine blue</option> <option value="810">Vat Dyes</option> <option value="811">Vegetable Dyes</option> <option value="1807">Vinyl sulphone</option> <option value="2016">Washing Off Agents</option> <option value="813">Water Repellants</option> <option value="814">Wetting Agent</option> <option value="2017">Zinc Oxide</option> </select> <input id="hdnSearchProductName" name="ProductName" type="hidden" value="" /> </div> </div> <br> <div class="row"> <div class="col-sm-3 countryselection"> <input id="RdoCountry" name="RdoCountry" type="radio" value="India" /> India <br /> <input id="RdoCountry" name="RdoCountry" type="radio" value="nonindia" /> Other than India </div> <div class="col-sm-3" id="divselectcountry"> <select class="form-control" data-val="true" data-val-number="The field Select Country must be a number." id="ddlSearchCountry" name="CountryId" onchange="javascript:SetSearchCountryName(this);"><option value="">Select Country</option> <option value="1">Afghanistan</option> <option value="2">Albania</option> <option value="3">Algeria</option> <option value="4">Andorra</option> <option value="5">Angola</option> <option value="196">Antigua and Barbuda</option> <option value="6">Argentina</option> <option value="7">Armenia</option> <option value="8">Aruba</option> <option value="9">Australia</option> <option value="10">Austria</option> <option value="11">Azerbaijan</option> <option value="12">Bahamas</option> <option value="13">Bahrain</option> <option value="14">Bangladesh</option> <option value="15">Barbados </option> <option value="16">Belarus</option> <option value="17">Belgium</option> <option value="18">Belize</option> <option value="19">Benin</option> <option value="20">Bhutan </option> <option value="21">Bolivia</option> <option value="22">Bosnia and Herzegovina</option> <option value="23">Botswana</option> <option value="24">Brazil</option> <option value="25">Brunei</option> <option value="26">Bulgaria</option> <option value="189">Burkina Faso</option> <option value="27">Burundi</option> <option value="28">Cambodia</option> <option value="29">Cameroon</option> <option value="30">Canada</option> <option value="197">Cayman Islands</option> <option value="32">Chad</option> <option value="33">Chile</option> <option value="34">China</option> <option value="35">Colombia</option> <option value="36">Congo</option> <option value="37">Costa Rica</option> <option value="38">Cote d Ivoire</option> <option value="39">Croatia</option> <option value="40">Cuba</option> <option value="41">Cyprus</option> <option value="42">Czech Republic</option> <option value="43">Denmark</option> <option value="44">Djibouti</option> <option value="198">Dominica</option> <option value="45">Dominican Republic</option> <option value="46">Ecuador</option> <option value="47">Egypt</option> <option value="48">El Salvador</option> <option value="49">Eritrea</option> <option value="50">Estonia</option> <option value="51">Ethiopia</option> <option value="52">Fiji</option> <option value="53">Finland</option> <option value="54">France</option> <option value="55">French Polynesia</option> <option value="56">Gabon</option> <option value="57">Gambia</option> <option value="58">Georgia</option> <option value="59">Germany</option> <option value="60">Ghana</option> <option value="61">Greece</option> <option value="62">Grenada</option> <option value="63">Guatemala</option> <option value="64">Guinea</option> <option value="65">Guyana</option> <option value="66">Haiti</option> <option value="67">Honduras</option> <option value="68">Hong Kong</option> <option value="69">Hungary</option> <option value="70">Iceland</option> <option value="71">India</option> <option value="72">Indonesia</option> <option value="73">Iran</option> <option value="74">Iraq</option> <option value="75">Ireland</option> <option value="76">Israel</option> <option value="77">Italy</option> <option value="79">Jamaica</option> <option value="80">Japan</option> <option value="81">Jordan</option> <option value="82">Kazakhstan</option> <option value="83">Kenya</option> <option value="84">Korea</option> <option value="194">kosovo</option> <option value="86">Kuwait</option> <option value="87">Kyrgyzstan</option> <option value="88">Laos</option> <option value="89">Latvia</option> <option value="90">Lebanon</option> <option value="91">Lesotho</option> <option value="92">Liberia</option> <option value="93">Libya</option> <option value="94">Liechtenstein</option> <option value="95">Lithuania</option> <option value="96">Luxembourg</option> <option value="97">Macau</option> <option value="98">Macedonia</option> <option value="99">Madagascar</option> <option value="100">Malawi</option> <option value="101">Malaysia</option> <option value="102">Maldives </option> <option value="103">Mali</option> <option value="104">Malta</option> <option value="105">Mauritania</option> <option value="106">Mauritius</option> <option value="107">Mexico</option> <option value="108">Micronesia</option> <option value="109">Moldova</option> <option value="110">Monaco </option> <option value="111">Mongolia</option> <option value="112">Morocco</option> <option value="113">Mozambique</option> <option value="114">Myanmar</option> <option value="115">Namibia</option> <option value="116">Nepal</option> <option value="117">Netherlands</option> <option value="118">Netherlands Antilles</option> <option value="119">New Caledonia</option> <option value="120">New Zealand</option> <option value="121">Nicaragua</option> <option value="122">Niger</option> <option value="123">Nigeria</option> <option value="124">Norway</option> <option value="125">Oman</option> <option value="126">Pakistan</option> <option value="127">Palestine</option> <option value="128">Panama</option> <option value="129">Papua New Guinea</option> <option value="130">Paraguay</option> <option value="131">Peru</option> <option value="132">Philippines</option> <option value="133">Poland</option> <option value="134">Portugal</option> <option value="135">Puerto Rico</option> <option value="136">Qatar</option> <option value="137">Romania</option> <option value="138">Russia</option> <option value="139">Rwanda</option> <option value="140">Sahara</option> <option value="142">Samoa </option> <option value="143">San Marino</option> <option value="144">Saudi Arabia</option> <option value="146">Senegal</option> <option value="147">Serbia</option> <option value="148">Seychelles </option> <option value="149">Sierra Leone</option> <option value="150">Singapore</option> <option value="151">Slovakia</option> <option value="152">Slovenia</option> <option value="153">Somalia</option> <option value="154">South Africa</option> <option value="155">Spain</option> <option value="156">Sri Lanka</option> <option value="157">Sudan</option> <option value="158">Surinam</option> <option value="159">Swaziland</option> <option value="160">Sweden</option> <option value="161">Switzerland</option> <option value="162">Syria</option> <option value="163">Taiwan</option> <option value="164">Tajikistan</option> <option value="165">Tanzania</option> <option value="166">Thailand</option> <option value="167">Togo</option> <option value="168">Trinidad &amp; Tobago</option> <option value="169">Tunisia</option> <option value="170">Turkey</option> <option value="171">Turkmenistan</option> <option value="172">Uganda</option> <option value="173">Ukraine</option> <option value="174">United Arab Emirates</option> <option value="175">United Kingdom</option> <option value="176">United States Of America</option> <option value="177">Uruguay</option> <option value="178">Uzbekistan</option> <option value="179">Vanuatu</option> <option value="180">Vatican city</option> <option value="181">Venezuela</option> <option value="182">Vietnam</option> <option value="184">Yemen</option> <option value="185">Yugoslavia</option> <option value="186">Zambia</option> <option value="187">Zimbabwe</option> </select> <input id="hdnSearchCountryName" name="CountryName" type="hidden" value="" /> </div> <div class="col-sm-3"> <input class="form-control" id="txtSearchCity" name="CityName" placeholder="City" type="text" value="" /> </div> <div class="col-sm-3"> <input class="form-control" data-val="true" data-val-number="The field Search Using Ref Numbers must be a number." id="txtSearchEnqIdRefNo" name="EnqIdrefNo" placeholder="Ref. Numbers" type="text" valtype="PositiveInteger" value="" /> </div> </div> <br> <div class="row"> <div class="col-sm-6 certificatepostition"> <input id="hdncertificate" name="CertificateCodeName" type="hidden" value="" /> <input id="ddlcertificate" class="certificatepostition" style="height:40px;" type="text" name="ddlcertificate" /> <input type="hidden" id="HidDDLCertificate" value="WRAP,SA8000,OHSAS,Oeko-Tex,ISO,GOTS,Fairtrade,BSCI,BCI,D&B,REACH,Cradle to Cradle,Bluesign,Global recycle standard,Ecocert,Sedex" /> </div> <div class="col-sm-3"> <input type="submit" class="express-postingbtn Smartsearchbtn" value="Search" id="btnSearchSubmit" onclick="javascript:return SmartSearchValidate();" /> </div> </div> </div> </form> </div> </div> <script src="/dyes/Scripts/js/dropdownmultiple.min.js?var=1.2"></script> <script> $("input[type=radio][name=RdoCountry]").click(function () { if ($('input[type=radio][name=RdoCountry]:checked').val() == "India") { $('#ddlSearchCountry').val(""); $('#hdnSearchCountryName').val(""); $("#divselectcountry").css("display", "none"); } else { $("#divselectcountry").css("display", "block"); } }); $(document).ready(function () { if ($('input[type=radio][name=RdoCountry]:checked').val() == "India" || $('input[type=radio][name=RdoCountry]:checked').val()== undefined) { $("#divselectcountry").css("display", "none"); } else { $("#divselectcountry").css("display", "block"); } }); </script> </div> </div> </div> <script> function B2BSearchshow() { $("#B2BAdvaceSearch").hide(); $("#divAdvanceSearch").show(); //$("#searchbanner").hide(); $("#essearchbox").hide() //$("#advsearchshow1").hide() $("#advsearchhide1").show(); $(".hidden-menu").addClass("space-none"); } function HideAdvanceSearch() { $("#divAdvanceSearch").hide(); $("#essearchbox").show() //$("#searchbanner").show(); //$("#advsearchshow1").show() $("#advsearchhide1").hide() $("#B2BAdvaceSearch").show(); $(".hidden-menu").removeClass("space-none"); } </script> </div> </div> </div> </div> </div> <script> $(window).scroll(function () { if ($(this).scrollTop() > 50) { $('.header').addClass('sticky'); } else { $('.header').removeClass('sticky'); } }); $(".togal-menu").click(function () { $('.navbar-menu ul').slideToggle(); }); </script> <script> var Searchboxopen = false; function HideShow(val) { if (val == "searchicon") { $("#essearchbox").show() $("#search").hide(); $("#searchclose").show(); $('.hidden-menu').slideToggle("slow"); $("#divAdvanceSearch").hide(); $("#inline_content").hide(); $("#advsearchhide").hide(); $("#advanceSearch").show(); Searchboxopen = true; $("#B2BAdvaceSearch").show(); $("#advsearchhide1").hide(); $("#esQuery").addClass("searchtxt"); $(".hidden-menu").removeClass("hidden-menuheight"); $(".hidden-menu").removeClass("space-none"); $("#bgheadersearch").addClass("show"); $(".wrapper").addClass("search-active"); var FinalObject = {}; FinalObject.F2FEventName = JSConstants.SearchClicked; MixpanelWrapper.EventTracking(FinalObject); } if (val == "closeicon") { if (Searchboxopen) { var FinalObject = {}; FinalObject.F2FEventName = JSConstants.SearchDismissed; MixpanelWrapper.EventTracking(FinalObject); } $('.hidden-menu').slideUp("slow"); $("#searchclose").hide(); $("#search").show(); Searchboxopen = false; $("#esQuery").removeClass("searchtxt"); $("#bgheadersearch").removeClass("show"); $(".hidden-menu").removeClass("space-none"); $(".wrapper").removeClass("search-active"); $(".hidden-menu").removeClass("hidden-menuheight"); $("#advsearchhideB2B").css("display", "none"); } } //$(document).on("click", ".section", function () { // HideShow('closeicon'); //}); $(document).on("click", "#bgheadersearch", function () { HideShow('closeicon'); $(".hidden-menu").removeClass("hidden-menuheight"); }); $(".searchbox").click(function (e) { $("#localStorageData").css("display", "none"); $("#esCategory").css("display", "none"); }); $(".searchblockhideshow").click(function (event) { event.stopPropagation(); }); $('.user-icon').hover(function () { $(this).find('.dropdown-menu').stop(true, true).delay(200).fadeIn(500); }, function () { $(this).find('.dropdown-menu').stop(true, true).delay(200).fadeOut(500); }); $(".close-sidebar-wrapper").click(function () { navbarMenu.classList.remove("is-active"); bgOverlay.classList.remove("is-active"); var myObject = { F2FEventType: JSConstants.EventType.Icon, F2FEventName: JSConstants.EventName.HamburgerCollapsed }; MixpanelWrapper.EventTracking(myObject); }); </script> <script> $(window).scroll(function () { if ($(this).scrollTop() > 50) { $('.header').addClass('sticky'); $('#navbarweglot').show(); } else { $('.header').removeClass('sticky'); $('#navbarweglot').hide(); } }); $(".togal-menu").click(function () { $('.Other-Header-navbar-menu ul').slideToggle(); }); </script> <script type="application/ld+json"> { "@context": "https://schema.org", "@type": "Organization", "name": "Fibre2Fashion", "legalName" : "Fibre2Fashion Private Limited", "url": "https://www.fibre2fashion.com", "logo": "https://static.fibre2fashion.com/f2flogo/f2flogo-black.svg", "foundingDate": "2000", "founders": [ { "@type": "Person", "name": "Mr. Sanjiv Shah" } ], "address": { "@type": "PostalAddress", "streetAddress": "B-3, Abhishree Corporate Park", "addressLocality": "Iskcon-Ambli Road, Bopal, Ahmedabad", "addressRegion": "Gujarat", "postalCode": "380058", "addressCountry": "India" }, "contactPoint": { "@type": "ContactPoint", "contactType": "Customer Support", "telephone": "[+91-79-71888555]", "email": "inquiry@fibre2fashion.com" }, "sameAs": [ "https://www.linkedin.com/company/fibre2fashion", "https://www.facebook.com/fibre2fashion", "https://twitter.com/fibre2fashion", "https://www.youtube.com/c/Fibre2FashionPvtLtd", "https://www.instagram.com/fibre2fashion" ]} </script> <script> // Show Navbar Menu on Burger Click // Hide Navbar Menu on Overlay Click const navbarMenu = document.getElementById("menu"); const burgerMenu = document.getElementById("burger"); const bgOverlay = document.querySelector(".overlay"); if (burgerMenu && bgOverlay) { burgerMenu.addEventListener("click", () => { navbarMenu.classList.add("is-active"); HideShow('closeicon'); bgOverlay.classList.toggle("is-active"); var myObject = { F2FEventType: JSConstants.EventType.Icon, F2FEventName: JSConstants.EventName.HamburgerClicked }; MixpanelWrapper.EventTracking(myObject); }); bgOverlay.addEventListener("click", () => { navbarMenu.classList.remove("is-active"); bgOverlay.classList.toggle("is-active"); }); } // Hide Navbar Menu on Links Click document.querySelectorAll(".menu-link").forEach((link) => { link.addEventListener("click", () => { navbarMenu.classList.remove("is-active"); bgOverlay.classList.remove("is-active"); }); }); // Open and Hide Search Bar on Toggle Click const searchBlock = document.querySelector(".search-block"); const searchToggle = document.querySelector(".search-toggle"); const searchCancel = document.querySelector(".search-cancel"); if (searchToggle && searchCancel) { searchToggle.addEventListener("click", () => { searchBlock.classList.add("is-active"); }); searchCancel.addEventListener("click", () => { searchBlock.classList.remove("is-active"); }); } $('[data-f2feventlogoclicktrack]').click(function (event) { var myObject = JSON.parse("{}"); if ($(this).attr('data-f2feventlogoclicktrack') != "") { myObject = JSON.parse($(this).attr('data-f2feventlogoclicktrack')); } MixpanelWrapper.EventTracking(myObject); }); $('[data-f2feventhamburgerlogoclicktrack]').click(function (event) { var myObject = JSON.parse("{}"); if ($(this).attr('data-f2feventhamburgerlogoclicktrack') != "") { myObject = JSON.parse($(this).attr('data-f2feventhamburgerlogoclicktrack')); } MixpanelWrapper.EventTracking(myObject); }); </script> <!-- top banner start --> <div class="new-top-banner"> <div class="top-banner-simple-box"> </div> </div> <!-- top banner end --> <!-- product-menu start --> <div class="garment-product-menu"> <div class="container"> <ul class="menu"> <li class=""> <a href="https://www.fibre2fashion.com/garments/" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Icon Clicked&quot;,&quot;F2FEventType&quot;:&quot;Icon Clicked&quot;,&quot;F2FSection&quot;:&quot;Middle&quot;,&quot;F2FType&quot;:&quot;Static&quot;,&quot;F2FText&quot;:&quot;Garment&quot;}"> <div class="garment-icon"> <img src="https://static.fibre2fashion.com/staticresources/images/garments.svg" width="30" height="31" /> </div> Garment </a> </li> <li class=""> <a href="https://www.fibre2fashion.com/fabrics/" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Icon Clicked&quot;,&quot;F2FEventType&quot;:&quot;Icon Clicked&quot;,&quot;F2FSection&quot;:&quot;Middle&quot;,&quot;F2FType&quot;:&quot;Static&quot;,&quot;F2FText&quot;:&quot;Fabric&quot;}"> <div class="garment-icon"> <img src="https://static.fibre2fashion.com/staticresources/images/fabric.svg" width="30" height="30" /> </div> Fabric </a> </li> <li class=""> <a href="https://www.fibre2fashion.com/yarns/" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Icon Clicked&quot;,&quot;F2FEventType&quot;:&quot;Icon Clicked&quot;,&quot;F2FSection&quot;:&quot;Middle&quot;,&quot;F2FType&quot;:&quot;Static&quot;,&quot;F2FText&quot;:&quot;Yarn&quot;}"> <div class="garment-icon"> <img src="https://static.fibre2fashion.com/staticresources/images/yarn.svg" width="30" height="31" /> </div> Yarn </a> </li> <li class=""> <a href="https://www.fibre2fashion.com/hometextiles/" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Icon Clicked&quot;,&quot;F2FEventType&quot;:&quot;Icon Clicked&quot;,&quot;F2FSection&quot;:&quot;Middle&quot;,&quot;F2FType&quot;:&quot;Static&quot;,&quot;F2FText&quot;:&quot;Home Textiles&quot;}"> <div class="garment-icon"> <img src="https://static.fibre2fashion.com/staticresources/images/home-textile.svg" width="30" height="31" /> </div> Home Textiles </a> </li> <li class=""> <a href="https://www.fibre2fashion.com/clothingaccessories/" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Icon Clicked&quot;,&quot;F2FEventType&quot;:&quot;Icon Clicked&quot;,&quot;F2FSection&quot;:&quot;Middle&quot;,&quot;F2FType&quot;:&quot;Static&quot;,&quot;F2FText&quot;:&quot;Clothing Accessory&quot;}"> <div class="garment-icon"> <img src="https://static.fibre2fashion.com/staticresources/images/clothing.svg" width="30" height="26" /> </div> Clothing Accessory </a> </li> <li class=""> <a href="https://www.fibre2fashion.com/fibres/" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Icon Clicked&quot;,&quot;F2FEventType&quot;:&quot;Icon Clicked&quot;,&quot;F2FSection&quot;:&quot;Middle&quot;,&quot;F2FType&quot;:&quot;Static&quot;,&quot;F2FText&quot;:&quot;Fibre &amp; FeedStock&quot;}"> <div class="garment-icon"> <img src="https://static.fibre2fashion.com/staticresources/images/feedstock.svg" width="30" height="29" /> </div> Fibre &amp; FeedStock </a> </li> <li class="active"> <a href="https://www.fibre2fashion.com/dyes/" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Icon Clicked&quot;,&quot;F2FEventType&quot;:&quot;Icon Clicked&quot;,&quot;F2FSection&quot;:&quot;Middle&quot;,&quot;F2FType&quot;:&quot;Static&quot;,&quot;F2FText&quot;:&quot;Dyes &amp; Chemical&quot;}"> <div class="garment-icon"> <img src="https://static.fibre2fashion.com/staticresources/images/dyes.svg" width="30" height="31" /> </div> Dyes &amp; Chemical </a> </li> <li class=""> <a href="https://www.fibre2fashion.com/leatherfootwears/" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Icon Clicked&quot;,&quot;F2FEventType&quot;:&quot;Icon Clicked&quot;,&quot;F2FSection&quot;:&quot;Middle&quot;,&quot;F2FType&quot;:&quot;Static&quot;,&quot;F2FText&quot;:&quot;Leather &amp; Footwear&quot;}"> <div class="garment-icon"> <img src="https://static.fibre2fashion.com/staticresources/images/footwear.svg" width="30" height="25" /> </div> Leather &amp; Footwear </a> </li> <li class=""> <a href="https://www.fibre2fashion.com/accessories/" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Icon Clicked&quot;,&quot;F2FEventType&quot;:&quot;Icon Clicked&quot;,&quot;F2FSection&quot;:&quot;Middle&quot;,&quot;F2FType&quot;:&quot;Static&quot;,&quot;F2FText&quot;:&quot;Fashion Accessory&quot;}"> <div class="garment-icon"> <img src="https://static.fibre2fashion.com/staticresources/images/fashion-accessary.svg" width="26" height="29" /> </div> Fashion Accessory </a> </li> <li class=""> <a href="https://www.fibre2fashion.com/machines/" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Icon Clicked&quot;,&quot;F2FEventType&quot;:&quot;Icon Clicked&quot;,&quot;F2FSection&quot;:&quot;Middle&quot;,&quot;F2FType&quot;:&quot;Static&quot;,&quot;F2FText&quot;:&quot;Machinery&quot;}"> <div class="garment-icon"> <img src="https://static.fibre2fashion.com/staticresources/images/machinery.svg" width="30" height="31" /> </div> Machinery </a> </li> </ul> </div> <!-- /.nav-collapse --> </div> <!-- product-menu end --> <!-- breadcrumb start --> <div class="breadcrumb-main"> <div class="container"> <nav aria-label="breadcrumb"> <ol class="breadcrumb"> <ol class="breadcrumb"><a href="https://www.fibre2fashion.com/">Home / </a><a href="https://www.fibre2fashion.com/dyes/">Dyes & Chemical / </a>Dyes</ol> </ol> </nav> </div> </div> <!-- breadcrumb end --> <div class="section"> <div class="garment-suppliers-main garment-details"> <div class="container"> <div class="row"> <div class="col-md-12 "> <div class="garment-suppliers-menu"> <ul> <li><a href="https://www.fibre2fashion.com/dyes/dye-intermediates-suppliers-s68" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Textlink Clicked&quot;,&quot;F2FEventType&quot;:&quot;Text Link&quot;,&quot;F2FSection&quot;:&quot;Middle&quot;,&quot;F2FType&quot;:&quot;Static&quot;}">Dye Intermediates </a></li> <li><a href="https://www.fibre2fashion.com/dyes/dyes-suppliers-s64" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Textlink Clicked&quot;,&quot;F2FEventType&quot;:&quot;Text Link&quot;,&quot;F2FSection&quot;:&quot;Middle&quot;,&quot;F2FType&quot;:&quot;Static&quot;}">Dyes </a></li> <li><a href="https://www.fibre2fashion.com/dyes/finishing-chemicals-suppliers-s67" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Textlink Clicked&quot;,&quot;F2FEventType&quot;:&quot;Text Link&quot;,&quot;F2FSection&quot;:&quot;Middle&quot;,&quot;F2FType&quot;:&quot;Static&quot;}">Finishing Chemicals </a></li> <li><a href="/dyes/Products" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Textlink Clicked&quot;,&quot;F2FEventType&quot;:&quot;Text Link&quot;,&quot;F2FSection&quot;:&quot;Middle&quot;,&quot;F2FType&quot;:&quot;Static&quot;}">All Products &nbsp;<i class="fa fa-angle-double-right"></i></a></li> </ul> <div class="garment-started-btn"> <a href="https://dashboard.fibre2fashion.com/b2b/#/user-profile/dashboard" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Textlink Clicked&quot;,&quot;F2FEventType&quot;:&quot;Text Link&quot;,&quot;F2FSection&quot;:&quot;Middle&quot;,&quot;F2FType&quot;:&quot;Static&quot;}" target="_blank"> Dashboard </a> </div> </div> </div> </div> </div> </div> <div class="container garment-details"> <div class="row"> <div class="col-lg-8 col-md-8 "> <div class="row"> <div class="col-md-12"> <div id="ListRecordSearchMessage"></div> <div class="main-title"> <div class="editor-title"> <h1 class="section-title"> Dyes Suppliers </h1> </div> <div class="latest-view-btn postrequirement"> <a href="https://dashboard.fibre2fashion.com/b2b/#/b2b/post-lead" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;CTA Clicked&quot;,&quot;F2FEventType&quot;:&quot;CTA Clicked&quot;,&quot;F2FSection&quot;:&quot;Middle&quot;,&quot;F2FType&quot;:&quot;Static&quot;}" class="inline" target="_blank"> Post Your Requirement </a> </div> </div> <div class="clearfix"></div> </div> </div> <div class="clearfix"></div> <div class="clearfix"></div> <div class="white-box compareproducts" id="CompareLeadBasket"> <div class="b2b-compare"> <ul id="compareproducts"> </ul> <div class="clearfix"></div> </div> <div class="b2b-product-compare"> <div class="productmain"> <span id="productcomparecount"></span> Products to Compare</div> <div class="main-btn"> <a onclick="javascript: return ValidateCompareProduct('/dyes/Supplier/CompareProducts');" class="cursor"> &nbsp;Compare&nbsp;</a> <a href="#" class="second-button" onclick="javascript:RemoveAllCompareBasket()">Cancel</a> </div> </div> <div class="clearfix"></div> </div> <div class="clearfix"></div> <div class="white-box"> <div class="row"> <div class="col-md-12"> <div class="maketoorder-main"> <div class="text-left b2bwholesale-tabs"> <div> <ul class="nav nav-tabs"> <li class="active"> <a href="https://www.fibre2fashion.com/dyes/dyes-suppliers-s64">Supplier</a> </li> <li> <a href="https://www.fibre2fashion.com/dyes/dyes-buyers-s64" target="_blank">Buyer</a> </li> </ul> </div> </div> <div class="advancesearch"> <div class="searchbar"> <a onclick="ShowAdvanceSearch()" style="cursor:pointer"> <img class="advancesearch-icon" width="21" height="21" src="https://static.fibre2fashion.com/staticresources/images/search.svg">Advance Search </a> </div> <div class="basket1"> <div id="InquiryListNumbers" class="basket-numbers">0</div> <span class="popover-wrapper right text-left pull-right"> <a href="#" id="InquiryBasketpopover" data-target="example-popover-2" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Icon Clicked&quot;,&quot;F2FEventType&quot;:&quot;Icon Clicked&quot;,&quot;F2FSection&quot;:&quot;Middle&quot;,&quot;F2FType&quot;:&quot;Static&quot;}"> <img src="https://static.fibre2fashion.com/staticresources/images/cart-icon.svg"> </a> <div class="popover-modal example-popover-2"> <div class="popover-body"> <a href="#" data-toggle-role="close" class="close-btn">×</a> <h4><strong>Inquiry Basket</strong></h4> <small><span id="InquiryListcount">0</span>&nbsp;Products in Inquiry</small><br> <div id="InquiryLeadBasket"> </div> <a class="btn blue-bigbtn inline cboxElement" href="https://members.fibre2fashion.com/login?myurl=https%3a%2f%2fwww.fibre2fashion.com%2fdyes%2fdyes-suppliers-s64" id="hlSendInquiry" onclick="javascript:void();"><small>Send Inquiry</small></a> &nbsp;&nbsp;&nbsp; <a class="btn blue-bigbtn inline cboxElement" id="hlRemoveSendInquiry" onclick="javascript:RemoveAllInquiryBasket();"><small>Remove Inquiry</small></a> <div class="clearfix"></div> </div> </div> </span> </div> </div> </div> <div class="text-left product-tab"> <div> </div> <div id="SupplierList"> <script> $(document).ready(function () { MixpanelF2FEventAttributes.F2FPageName = "Dyes &amp; Chemical"; MixpanelF2FEventAttributes.F2FIsDomainOnly = "False"; MixpanelF2FEventAttributes.F2FIsSubdomainOnly = "False"; MixpanelF2FEventAttributes.F2FIsTopPage = "False"; MixpanelF2FEventAttributes.F2FIsHome = "False"; MixpanelF2FEventAttributes.F2FIsList = "True"; MixpanelF2FEventAttributes.F2FIsDetail = "False"; MixpanelF2FEventAttributes.F2FIsLeadType = "True"; MixpanelF2FEventAttributes.F2FLeadType = "Suppliers"; MixpanelF2FEventAttributes.F2FIsCategory = "True"; MixpanelF2FEventAttributes.F2FCategory = "Dyes &amp; Chemical"; MixpanelF2FEventAttributes.F2FIsSubcategory = "True"; MixpanelF2FEventAttributes.F2FSubCategory = "Dyes"; MixpanelF2FEventAttributes.F2FIsProductList = "False"; MixpanelF2FEventAttributes.F2FIsProduct = "False"; MixpanelF2FEventAttributes.F2FIsCountryIndia = "False"; MixpanelF2FEventAttributes.F2FCountry = ""; MixpanelF2FEventAttributes.F2FProduct = ""; MixpanelF2FEventAttributes.F2FIsCompany = ""; MixpanelF2FEventAttributes.F2FCompany = ""; }); </script> <div id="HideListRecordMessage" style="display:none;"> <span class="mens-wear-greyheading"></span> </div> <div class="row"> <div class="tab-content"> <div class="tab-pane active in fade" id="tab1default"> <div class="col-md-12 details-about-content"> <div class="cat-listing-box"> <div class="catlistingbx"> <div class="category-img"> <div class="LeadListImage"> <a href="/dyes/reactive-dyes-in-powder-form-suppliers-24221286" target="_blank"><img alt="Reactive Dyes in Powder Form" class="img-responsive onscrollloading" data_src="https://static.fibre2fashion.com/MemberResources/LeadResources/3/2024/7/Seller/24221286/Images/24221286_0_reactive-dyes.jpg?tr=w-175,h-175,c-at_max,cm-pad_resize,bg-ffffff" height="143" onerror="NoImage(this,&#39;/dyes/&#39;)" src="https://static.fibre2fashion.com/spacer.gif" title="Reactive Dyes in Powder Form" width="152" /></a> </div> </div> <div class="supplierdetails"> <p class="blocktitle"> <a href="/dyes/reactive-dyes-in-powder-form-suppliers-24221286" target="_blank"><span style='font-weight: normal;'>Reactive Dyes in Powder Form</span></a> </p> <div class="col-xs-6"> <div class="row"> <div class="fobprice"> <strong> Price : </strong> Price on request </div> </div> </div> <div class="col-xs-6"> <div class="fobprice"> <strong> Min Order : </strong> 500 Kgs. </div> </div> <div class="clear"></div> <p class="discription-txt"> We are reckoned as an established manufacturer and exporter of Reactive Dyes in Powder Form .&#160;We are a manufacturer of reactive dyes in powder...</p> <div class="supplier-txt"> <a href="https://www.fibre2fashion.com/dyes/suppliers?q=Inpp1kgYTn5P0/2fhrHzysHA9SL5Z6R7" target="_blank"> <strong> Other products from this Supplier <i class="fa fa-angle-right" aria-hidden="true"></i> </strong> </a> </div> <div class="supplier-txt"> </div> <div class="clearfix"></div> </div> <div class="no-desktop"></div> <div class="supplierdetailslisting text-left"> <div class="membertxt">Member since <strong>1 Year</strong></div> <h5> <strong> Alfa Industries </strong><br> <small>ahmedabad, India</small> </h5> <div class="membericon"> <a href="https://www.fibre2fashion.com/business-solutions/b2b-membership/" target="_blank"><img alt="Premium Member" data_f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Icon Clicked&quot;,&quot;F2FEventType&quot;:&quot;Icon Clicked&quot;,&quot;F2FSection&quot;:&quot;Middle&quot;,&quot;F2FType&quot;:&quot;Static&quot;}" src="https://images.fibre2fashion.com/shared/membership/pm-icon.png" title="Premium Member" /></a> </div> <div class="clear"></div> </div> <div class="clear"></div> </div> <div class="bottom-link"> <label class="checkbox-inline"> <input addToCompare="AddToCompare" class="squarebox" compareid="24221286" id="chkAddToCompare" name="chkAddToCompare" onclick="javascript:ManageCompareBasket(this)" type="checkbox" value="true" /><input name="chkAddToCompare" type="hidden" value="false" /> <span data-productcompare="compareproduct" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Icon Clicked&quot;,&quot;F2FEventType&quot;:&quot;Icon Clicked&quot;,&quot;F2FSection&quot;:&quot;Middle&quot;,&quot;F2FType&quot;:&quot;Static&quot;,&quot;F2FProductName&quot;:&quot;Reactive Dyes in Powder Form&quot;}"> <strong> Add to Compare </strong> </span> <div id="ListCompareProductLoading_24221286" class="HideLoading"></div> </label> <div> <div class="check-btl"> <ul class="fa-ul check-btl"> <li> <i class="fa-li fa fa-plus" data-inquiryicon="InquiryIcon" id="InquiryIcon_24221286"></i> <strong> <a InInquiryBasket="False" InquiryId="24221286" onclick="javascript:ManageInquiryBasket(this);" style="cursor:pointer">Add to Inquiry Basket</a> </strong> <div id="ListInquiryBasketLoading_24221286" class="HideLoadingInquiryBasket"></div> </li> </ul> </div> </div> <div class="contacts"> <img src="https://static.fibre2fashion.com/staticresources/images/Subtract.svg"> <strong> <a class="contactxt" data_f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;CTA Clicked&quot;,&quot;F2FEventType&quot;:&quot;CTA Clicked&quot;,&quot;F2FSection&quot;:&quot;Middle&quot;,&quot;F2FType&quot;:&quot;Static&quot;}" onclick="javascript:ManageSendInquiryForContact(&#39;24221286&#39;,&#39;#sendinquiry&#39;);">Contact</a> </strong> </div> </div> <div class="clear"></div> </div> <div class="cat-listing-box"> <div class="catlistingbx"> <div class="category-img"> <div class="LeadListImage"> <a href="/dyes/disperse-dyes-suppliers-21200122" target="_blank"><img alt="Disperse Dyes" class="img-responsive onscrollloading" data_src="https://static.fibre2fashion.com/MemberResources/LeadResources/3/2021/10/Seller/21200122/Images/21200122_0_lonsperse-brill-violet-bn.jpg?tr=w-175,h-175,c-at_max,cm-pad_resize,bg-ffffff" height="143" onerror="NoImage(this,&#39;/dyes/&#39;)" src="https://static.fibre2fashion.com/spacer.gif" title="Disperse Dyes" width="152" /></a> </div> </div> <div class="supplierdetails"> <p class="blocktitle"> <a href="/dyes/disperse-dyes-suppliers-21200122" target="_blank"><span style='font-weight: normal;'>Disperse Dyes</span></a> </p> <div class="col-xs-6"> <div class="row"> <div class="fobprice"> <strong> FOB Price : </strong> 2 USD / Kgs. </div> <small> <strong> Place of origin : </strong> China </small> </div> </div> <div class="col-xs-6"> <div class="fobprice"> <strong> Min Order : </strong> 100 Kgs. </div> </div> <div class="clear"></div> <p class="discription-txt"> Our company is a trustworthy and a dependable supplier of Disperse Dyes .&#160;Our company adheres to professional technology, excellent quality and...</p> <div class="supplier-txt"> <a href="https://www.fibre2fashion.com/dyes/suppliers?q=Inpp1kgYTn588eVQmgVqhmIJkV4nNvDS" target="_blank"> <strong> Other products from this Supplier <i class="fa fa-angle-right" aria-hidden="true"></i> </strong> </a> </div> <div class="supplier-txt"> </div> <div class="clearfix"></div> </div> <div class="no-desktop"></div> <div class="supplierdetailslisting text-left"> <h5> <small>Xiaoshan, China</small> </h5> <div class="membericon"> </div> <div class="clear"></div> <div class="alert alert-warning" style="text-align:center"> <a href="https://members.fibre2fashion.com/login?myurl=https%3a%2f%2fwww.fibre2fashion.com%2fdyes%2fdyes-suppliers-s64&utm_source=b2blisting&utm_medium=button&utm_campaign=MemberLogin_2017" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Textlink Clicked&quot;,&quot;F2FEventType&quot;:&quot;Text Link&quot;,&quot;F2FSection&quot;:&quot;Middle&quot;,&quot;F2FType&quot;:&quot;Static&quot;}"><strong>Log in</strong></a> to view more information.<br /><strong> Not a member? <a href="https://members.fibre2fashion.com/signup?myurl=https%3a%2f%2fwww.fibre2fashion.com%2fdyes%2fdyes-suppliers-s64">Register</a> for free</strong> </div> </div> <div class="clear"></div> </div> <div class="bottom-link"> <label class="checkbox-inline"> <input addToCompare="AddToCompare" class="squarebox" compareid="21200122" id="chkAddToCompare" name="chkAddToCompare" onclick="javascript:ManageCompareBasket(this)" type="checkbox" value="true" /><input name="chkAddToCompare" type="hidden" value="false" /> <span data-productcompare="compareproduct" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Icon Clicked&quot;,&quot;F2FEventType&quot;:&quot;Icon Clicked&quot;,&quot;F2FSection&quot;:&quot;Middle&quot;,&quot;F2FType&quot;:&quot;Static&quot;,&quot;F2FProductName&quot;:&quot;Disperse Dyes&quot;}"> <strong> Add to Compare </strong> </span> <div id="ListCompareProductLoading_21200122" class="HideLoading"></div> </label> <div> <div class="check-btl"> <ul class="fa-ul check-btl"> <li> <i class="fa-li fa fa-plus" data-inquiryicon="InquiryIcon" id="InquiryIcon_21200122"></i> <strong> <a InInquiryBasket="False" InquiryId="21200122" onclick="javascript:ManageInquiryBasket(this);" style="cursor:pointer">Add to Inquiry Basket</a> </strong> <div id="ListInquiryBasketLoading_21200122" class="HideLoadingInquiryBasket"></div> </li> </ul> </div> </div> <div class="contacts"> <img src="https://static.fibre2fashion.com/staticresources/images/Subtract.svg"> <strong> <a class="contactxt" data_f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;CTA Clicked&quot;,&quot;F2FEventType&quot;:&quot;CTA Clicked&quot;,&quot;F2FSection&quot;:&quot;Middle&quot;,&quot;F2FType&quot;:&quot;Static&quot;}" onclick="javascript:ManageSendInquiryForContact(&#39;21200122&#39;,&#39;#sendinquiry&#39;);">Contact</a> </strong> </div> </div> <div class="clear"></div> </div> <div class="cat-listing-box"> <div class="catlistingbx"> <div class="category-img"> <div class="LeadListImage"> <a href="/dyes/direct-dyes-suppliers-22202819" target="_blank"><img alt="Direct Dyes" class="img-responsive onscrollloading" data_src="https://static.fibre2fashion.com/MemberResources/LeadResources/3/2022/5/Seller/22202819/Images/22202819_0_direct-dyes.jpg?tr=w-175,h-175,c-at_max,cm-pad_resize,bg-ffffff" height="143" onerror="NoImage(this,&#39;/dyes/&#39;)" src="https://static.fibre2fashion.com/spacer.gif" title="Direct Dyes" width="152" /></a> </div> </div> <div class="supplierdetails"> <p class="blocktitle"> <a href="/dyes/direct-dyes-suppliers-22202819" target="_blank"><span style='font-weight: normal;'>Direct Dyes</span></a> </p> <div class="col-xs-6"> <div class="row"> <div class="fobprice"> <strong> DDU Price : </strong> 400 INR / Kgs. </div> <small> <strong> Place of origin : </strong> India </small> </div> </div> <div class="col-xs-6"> <div class="fobprice"> <strong> Min Order : </strong> 500 Kgs. </div> </div> <div class="clear"></div> <p class="discription-txt"> We introduce our self as a pioneer in the field of Direct Dyes .&#160;These dyes are composed of superlative compounds that are procured from the...</p> <div class="supplier-txt"> </div> <div class="supplier-txt"> </div> <div class="clearfix"></div> </div> <div class="no-desktop"></div> <div class="supplierdetailslisting text-left"> <h5> <small>Palghar, India</small> </h5> <div class="membericon"> </div> <div class="clear"></div> <div class="alert alert-warning" style="text-align:center"> <a href="https://members.fibre2fashion.com/login?myurl=https%3a%2f%2fwww.fibre2fashion.com%2fdyes%2fdyes-suppliers-s64&utm_source=b2blisting&utm_medium=button&utm_campaign=MemberLogin_2017" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Textlink Clicked&quot;,&quot;F2FEventType&quot;:&quot;Text Link&quot;,&quot;F2FSection&quot;:&quot;Middle&quot;,&quot;F2FType&quot;:&quot;Static&quot;}"><strong>Log in</strong></a> to view more information.<br /><strong> Not a member? <a href="https://members.fibre2fashion.com/signup?myurl=https%3a%2f%2fwww.fibre2fashion.com%2fdyes%2fdyes-suppliers-s64">Register</a> for free</strong> </div> </div> <div class="clear"></div> </div> <div class="bottom-link"> <label class="checkbox-inline"> <input addToCompare="AddToCompare" class="squarebox" compareid="22202819" id="chkAddToCompare" name="chkAddToCompare" onclick="javascript:ManageCompareBasket(this)" type="checkbox" value="true" /><input name="chkAddToCompare" type="hidden" value="false" /> <span data-productcompare="compareproduct" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Icon Clicked&quot;,&quot;F2FEventType&quot;:&quot;Icon Clicked&quot;,&quot;F2FSection&quot;:&quot;Middle&quot;,&quot;F2FType&quot;:&quot;Static&quot;,&quot;F2FProductName&quot;:&quot;Direct Dyes&quot;}"> <strong> Add to Compare </strong> </span> <div id="ListCompareProductLoading_22202819" class="HideLoading"></div> </label> <div> <div class="check-btl"> <ul class="fa-ul check-btl"> <li> <i class="fa-li fa fa-plus" data-inquiryicon="InquiryIcon" id="InquiryIcon_22202819"></i> <strong> <a InInquiryBasket="False" InquiryId="22202819" onclick="javascript:ManageInquiryBasket(this);" style="cursor:pointer">Add to Inquiry Basket</a> </strong> <div id="ListInquiryBasketLoading_22202819" class="HideLoadingInquiryBasket"></div> </li> </ul> </div> </div> <div class="contacts"> <img src="https://static.fibre2fashion.com/staticresources/images/Subtract.svg"> <strong> <a class="contactxt" data_f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;CTA Clicked&quot;,&quot;F2FEventType&quot;:&quot;CTA Clicked&quot;,&quot;F2FSection&quot;:&quot;Middle&quot;,&quot;F2FType&quot;:&quot;Static&quot;}" onclick="javascript:ManageSendInquiryForContact(&#39;22202819&#39;,&#39;#sendinquiry&#39;);">Contact</a> </strong> </div> </div> <div class="clear"></div> </div> <div class="cat-listing-box"> <div class="catlistingbx"> <div class="category-img"> <div class="LeadListImage"> <a href="/dyes/natural-dyes-suppliers-22202845" target="_blank"><img alt="Natural Dyes" class="img-responsive onscrollloading" data_src="https://static.fibre2fashion.com/MemberResources/LeadResources/3/2022/5/Seller/22202845/Images/22202845_0_banne2.jpeg?tr=w-175,h-175,c-at_max,cm-pad_resize,bg-ffffff" height="143" onerror="NoImage(this,&#39;/dyes/&#39;)" src="https://static.fibre2fashion.com/spacer.gif" title="Natural Dyes" width="152" /></a> </div> </div> <div class="supplierdetails"> <p class="blocktitle"> <a href="/dyes/natural-dyes-suppliers-22202845" target="_blank"><span style='font-weight: normal;'>Natural Dyes</span></a> </p> <div class="col-xs-6"> <div class="row"> <div class="fobprice"> <strong> DDU Price : </strong> 10 USD / Kgs. </div> <small> <strong> Place of origin : </strong> India </small> </div> </div> <div class="col-xs-6"> <div class="fobprice"> <strong> Min Order : </strong> 1 Kgs. </div> </div> <div class="clear"></div> <p class="discription-txt"> We are reckoned as an established manufacturer and exporter of Natural Dyes .&#160;The genus is also recognized as a potential source of very...</p> <div class="supplier-txt"> </div> <div class="supplier-txt"> </div> <div class="clearfix"></div> </div> <div class="no-desktop"></div> <div class="supplierdetailslisting text-left"> <h5> <small>Jaipur, India</small> </h5> <div class="membericon"> </div> <div class="clear"></div> <div class="alert alert-warning" style="text-align:center"> <a href="https://members.fibre2fashion.com/login?myurl=https%3a%2f%2fwww.fibre2fashion.com%2fdyes%2fdyes-suppliers-s64&utm_source=b2blisting&utm_medium=button&utm_campaign=MemberLogin_2017" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Textlink Clicked&quot;,&quot;F2FEventType&quot;:&quot;Text Link&quot;,&quot;F2FSection&quot;:&quot;Middle&quot;,&quot;F2FType&quot;:&quot;Static&quot;}"><strong>Log in</strong></a> to view more information.<br /><strong> Not a member? <a href="https://members.fibre2fashion.com/signup?myurl=https%3a%2f%2fwww.fibre2fashion.com%2fdyes%2fdyes-suppliers-s64">Register</a> for free</strong> </div> </div> <div class="clear"></div> </div> <div class="bottom-link"> <label class="checkbox-inline"> <input addToCompare="AddToCompare" class="squarebox" compareid="22202845" id="chkAddToCompare" name="chkAddToCompare" onclick="javascript:ManageCompareBasket(this)" type="checkbox" value="true" /><input name="chkAddToCompare" type="hidden" value="false" /> <span data-productcompare="compareproduct" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Icon Clicked&quot;,&quot;F2FEventType&quot;:&quot;Icon Clicked&quot;,&quot;F2FSection&quot;:&quot;Middle&quot;,&quot;F2FType&quot;:&quot;Static&quot;,&quot;F2FProductName&quot;:&quot;Natural Dyes&quot;}"> <strong> Add to Compare </strong> </span> <div id="ListCompareProductLoading_22202845" class="HideLoading"></div> </label> <div> <div class="check-btl"> <ul class="fa-ul check-btl"> <li> <i class="fa-li fa fa-plus" data-inquiryicon="InquiryIcon" id="InquiryIcon_22202845"></i> <strong> <a InInquiryBasket="False" InquiryId="22202845" onclick="javascript:ManageInquiryBasket(this);" style="cursor:pointer">Add to Inquiry Basket</a> </strong> <div id="ListInquiryBasketLoading_22202845" class="HideLoadingInquiryBasket"></div> </li> </ul> </div> </div> <div class="contacts"> <img src="https://static.fibre2fashion.com/staticresources/images/Subtract.svg"> <strong> <a class="contactxt" data_f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;CTA Clicked&quot;,&quot;F2FEventType&quot;:&quot;CTA Clicked&quot;,&quot;F2FSection&quot;:&quot;Middle&quot;,&quot;F2FType&quot;:&quot;Static&quot;}" onclick="javascript:ManageSendInquiryForContact(&#39;22202845&#39;,&#39;#sendinquiry&#39;);">Contact</a> </strong> </div> </div> <div class="clear"></div> </div> <div class="cat-listing-box"> <div class="catlistingbx"> <div class="category-img"> <div class="LeadListImage"> <a href="/dyes/natural-dyes-suppliers-20184283" target="_blank"><img alt="Natural dyes " class="img-responsive onscrollloading" data_src="https://static.fibre2fashion.com/MemberResources/LeadResources/3/2020/8/Seller/20184283/Images/20184283_0_natural-dyes.png?tr=w-175,h-175,c-at_max,cm-pad_resize,bg-ffffff" height="143" onerror="NoImage(this,&#39;/dyes/&#39;)" src="https://static.fibre2fashion.com/spacer.gif" title="Natural dyes " width="152" /></a> </div> </div> <div class="supplierdetails"> <p class="blocktitle"> <a href="/dyes/natural-dyes-suppliers-20184283" target="_blank"><span style='font-weight: normal;'>Natural dyes</span></a> </p> <div class="col-xs-6"> <div class="row"> <div class="fobprice"> <strong> FOB Price : </strong> 15 USD / Kgs. </div> <small> <strong> Place of origin : </strong> Turkey </small> </div> </div> <div class="col-xs-6"> <div class="fobprice"> <strong> Min Order : </strong> 1 Kgs. </div> </div> <div class="clear"></div> <p class="discription-txt"> We are Natural dyes&#160; supplier from Turkey. Natural dyes been collected by locals and tested by experts. We are able to sell as a bulk natural dyes...</p> <div class="supplier-txt"> <a href="https://www.fibre2fashion.com/dyes/suppliers?q=Inpp1kgYTn4l1uDxS+DByHjhGR9//jbb" target="_blank"> <strong> Other products from this Supplier <i class="fa fa-angle-right" aria-hidden="true"></i> </strong> </a> </div> <div class="supplier-txt"> </div> <div class="clearfix"></div> </div> <div class="no-desktop"></div> <div class="supplierdetailslisting text-left"> <h5> <small>Antalya, Turkey</small> </h5> <div class="membericon"> </div> <div class="clear"></div> <div class="alert alert-warning" style="text-align:center"> <a href="https://members.fibre2fashion.com/login?myurl=https%3a%2f%2fwww.fibre2fashion.com%2fdyes%2fdyes-suppliers-s64&utm_source=b2blisting&utm_medium=button&utm_campaign=MemberLogin_2017" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Textlink Clicked&quot;,&quot;F2FEventType&quot;:&quot;Text Link&quot;,&quot;F2FSection&quot;:&quot;Middle&quot;,&quot;F2FType&quot;:&quot;Static&quot;}"><strong>Log in</strong></a> to view more information.<br /><strong> Not a member? <a href="https://members.fibre2fashion.com/signup?myurl=https%3a%2f%2fwww.fibre2fashion.com%2fdyes%2fdyes-suppliers-s64">Register</a> for free</strong> </div> </div> <div class="clear"></div> </div> <div class="bottom-link"> <label class="checkbox-inline"> <input addToCompare="AddToCompare" class="squarebox" compareid="20184283" id="chkAddToCompare" name="chkAddToCompare" onclick="javascript:ManageCompareBasket(this)" type="checkbox" value="true" /><input name="chkAddToCompare" type="hidden" value="false" /> <span data-productcompare="compareproduct" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Icon Clicked&quot;,&quot;F2FEventType&quot;:&quot;Icon Clicked&quot;,&quot;F2FSection&quot;:&quot;Middle&quot;,&quot;F2FType&quot;:&quot;Static&quot;,&quot;F2FProductName&quot;:&quot;Natural dyes&quot;}"> <strong> Add to Compare </strong> </span> <div id="ListCompareProductLoading_20184283" class="HideLoading"></div> </label> <div> <div class="check-btl"> <ul class="fa-ul check-btl"> <li> <i class="fa-li fa fa-plus" data-inquiryicon="InquiryIcon" id="InquiryIcon_20184283"></i> <strong> <a InInquiryBasket="False" InquiryId="20184283" onclick="javascript:ManageInquiryBasket(this);" style="cursor:pointer">Add to Inquiry Basket</a> </strong> <div id="ListInquiryBasketLoading_20184283" class="HideLoadingInquiryBasket"></div> </li> </ul> </div> </div> <div class="contacts"> <img src="https://static.fibre2fashion.com/staticresources/images/Subtract.svg"> <strong> <a class="contactxt" data_f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;CTA Clicked&quot;,&quot;F2FEventType&quot;:&quot;CTA Clicked&quot;,&quot;F2FSection&quot;:&quot;Middle&quot;,&quot;F2FType&quot;:&quot;Static&quot;}" onclick="javascript:ManageSendInquiryForContact(&#39;20184283&#39;,&#39;#sendinquiry&#39;);">Contact</a> </strong> </div> </div> <div class="clear"></div> </div> <div class="cat-listing-box"> <div class="catlistingbx"> <div class="category-img"> <div class="LeadListImage"> <a href="/dyes/sulphur-dyes-suppliers-21200809" target="_blank"><img alt="Sulphur Dyes" class="img-responsive onscrollloading" data_src="https://static.fibre2fashion.com/MemberResources/LeadResources/3/2021/12/Seller/21200809/Images/21200809_1_6585f5e2340b6bbaa50d0f9585570e2.jpg?tr=w-175,h-175,c-at_max,cm-pad_resize,bg-ffffff" height="143" onerror="NoImage(this,&#39;/dyes/&#39;)" src="https://static.fibre2fashion.com/spacer.gif" title="Sulphur Dyes" width="152" /></a> </div> </div> <div class="supplierdetails"> <p class="blocktitle"> <a href="/dyes/sulphur-dyes-suppliers-21200809" target="_blank"><span style='font-weight: normal;'>Sulphur Dyes</span></a> </p> <div class="col-xs-6"> <div class="row"> <div class="fobprice"> <strong> CFR Price : </strong> 14 CNY / Kgs. </div> <small> <strong> Place of origin : </strong> China </small> </div> </div> <div class="col-xs-6"> <div class="fobprice"> <strong> Min Order : </strong> 5 Metric Ton </div> </div> <div class="clear"></div> <p class="discription-txt"> We are a top-ranking company which is specialized in&#160; Sulphur Dyes .&#160;They are suitable for cotton, wool, leather, paper, plastic, ink and other...</p> <div class="supplier-txt"> </div> <div class="supplier-txt"> </div> <div class="clearfix"></div> </div> <div class="no-desktop"></div> <div class="supplierdetailslisting text-left"> <h5> <small>Shijiazhuang, China</small> </h5> <div class="membericon"> </div> <div class="clear"></div> <div class="alert alert-warning" style="text-align:center"> <a href="https://members.fibre2fashion.com/login?myurl=https%3a%2f%2fwww.fibre2fashion.com%2fdyes%2fdyes-suppliers-s64&utm_source=b2blisting&utm_medium=button&utm_campaign=MemberLogin_2017" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Textlink Clicked&quot;,&quot;F2FEventType&quot;:&quot;Text Link&quot;,&quot;F2FSection&quot;:&quot;Middle&quot;,&quot;F2FType&quot;:&quot;Static&quot;}"><strong>Log in</strong></a> to view more information.<br /><strong> Not a member? <a href="https://members.fibre2fashion.com/signup?myurl=https%3a%2f%2fwww.fibre2fashion.com%2fdyes%2fdyes-suppliers-s64">Register</a> for free</strong> </div> </div> <div class="clear"></div> </div> <div class="bottom-link"> <label class="checkbox-inline"> <input addToCompare="AddToCompare" class="squarebox" compareid="21200809" id="chkAddToCompare" name="chkAddToCompare" onclick="javascript:ManageCompareBasket(this)" type="checkbox" value="true" /><input name="chkAddToCompare" type="hidden" value="false" /> <span data-productcompare="compareproduct" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Icon Clicked&quot;,&quot;F2FEventType&quot;:&quot;Icon Clicked&quot;,&quot;F2FSection&quot;:&quot;Middle&quot;,&quot;F2FType&quot;:&quot;Static&quot;,&quot;F2FProductName&quot;:&quot;Sulphur Dyes&quot;}"> <strong> Add to Compare </strong> </span> <div id="ListCompareProductLoading_21200809" class="HideLoading"></div> </label> <div> <div class="check-btl"> <ul class="fa-ul check-btl"> <li> <i class="fa-li fa fa-plus" data-inquiryicon="InquiryIcon" id="InquiryIcon_21200809"></i> <strong> <a InInquiryBasket="False" InquiryId="21200809" onclick="javascript:ManageInquiryBasket(this);" style="cursor:pointer">Add to Inquiry Basket</a> </strong> <div id="ListInquiryBasketLoading_21200809" class="HideLoadingInquiryBasket"></div> </li> </ul> </div> </div> <div class="contacts"> <img src="https://static.fibre2fashion.com/staticresources/images/Subtract.svg"> <strong> <a class="contactxt" data_f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;CTA Clicked&quot;,&quot;F2FEventType&quot;:&quot;CTA Clicked&quot;,&quot;F2FSection&quot;:&quot;Middle&quot;,&quot;F2FType&quot;:&quot;Static&quot;}" onclick="javascript:ManageSendInquiryForContact(&#39;21200809&#39;,&#39;#sendinquiry&#39;);">Contact</a> </strong> </div> </div> <div class="clear"></div> </div> <div class="cat-listing-box"> <div class="catlistingbx"> <div class="category-img"> <div class="LeadListImage"> <a href="/dyes/brown-acid-dyes-suppliers-21195620" target="_blank"><img alt="Brown Acid Dyes" class="img-responsive onscrollloading" data_src="https://static.fibre2fashion.com/MemberResources/LeadResources/3/2021/6/Seller/21195620/Images/21195620_1_acid-dyes.png?tr=w-175,h-175,c-at_max,cm-pad_resize,bg-ffffff" height="143" onerror="NoImage(this,&#39;/dyes/&#39;)" src="https://static.fibre2fashion.com/spacer.gif" title="Brown Acid Dyes" width="152" /></a> </div> </div> <div class="supplierdetails"> <p class="blocktitle"> <a href="/dyes/brown-acid-dyes-suppliers-21195620" target="_blank"><span style='font-weight: normal;'>Brown Acid Dyes</span></a> </p> <div class="col-xs-6"> <div class="row"> <div class="fobprice"> <strong> CIF Price : </strong> 0 USD / Kgs. </div> <small> <strong> Place of origin : </strong> India </small> </div> </div> <div class="col-xs-6"> <div class="fobprice"> <strong> Min Order : </strong> 50 Kgs. </div> </div> <div class="clear"></div> <p class="discription-txt"> We are counted in the league of distinguished and renowned manufacturer and exporter of Brown Acid Dyes . Acid Brown 98 yellow light brown....</p> <div class="supplier-txt"> <a href="https://www.fibre2fashion.com/dyes/suppliers?q=Inpp1kgYTn5ANTjzkiLOich2yPsWffOL" target="_blank"> <strong> Other products from this Supplier <i class="fa fa-angle-right" aria-hidden="true"></i> </strong> </a> </div> <div class="supplier-txt"> <a href="https://www.fibre2fashion.com/dyes/suppliers?q=Inpp1kgYTn5ANTjzkiLOibLpdv5pm4swMtIXPBrqW/Y=" target="_blank"> <strong> Similar product from this Supplier <i class="fa fa-angle-right" aria-hidden="true"></i> </strong> </a> </div> <div class="clearfix"></div> </div> <div class="no-desktop"></div> <div class="supplierdetailslisting text-left"> <h5> <small>Ahmedabad, India</small> </h5> <div class="membericon"> </div> <div class="clear"></div> <div class="alert alert-warning" style="text-align:center"> <a href="https://members.fibre2fashion.com/login?myurl=https%3a%2f%2fwww.fibre2fashion.com%2fdyes%2fdyes-suppliers-s64&utm_source=b2blisting&utm_medium=button&utm_campaign=MemberLogin_2017" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Textlink Clicked&quot;,&quot;F2FEventType&quot;:&quot;Text Link&quot;,&quot;F2FSection&quot;:&quot;Middle&quot;,&quot;F2FType&quot;:&quot;Static&quot;}"><strong>Log in</strong></a> to view more information.<br /><strong> Not a member? <a href="https://members.fibre2fashion.com/signup?myurl=https%3a%2f%2fwww.fibre2fashion.com%2fdyes%2fdyes-suppliers-s64">Register</a> for free</strong> </div> </div> <div class="clear"></div> </div> <div class="bottom-link"> <label class="checkbox-inline"> <input addToCompare="AddToCompare" class="squarebox" compareid="21195620" id="chkAddToCompare" name="chkAddToCompare" onclick="javascript:ManageCompareBasket(this)" type="checkbox" value="true" /><input name="chkAddToCompare" type="hidden" value="false" /> <span data-productcompare="compareproduct" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Icon Clicked&quot;,&quot;F2FEventType&quot;:&quot;Icon Clicked&quot;,&quot;F2FSection&quot;:&quot;Middle&quot;,&quot;F2FType&quot;:&quot;Static&quot;,&quot;F2FProductName&quot;:&quot;Brown Acid Dyes&quot;}"> <strong> Add to Compare </strong> </span> <div id="ListCompareProductLoading_21195620" class="HideLoading"></div> </label> <div> <div class="check-btl"> <ul class="fa-ul check-btl"> <li> <i class="fa-li fa fa-plus" data-inquiryicon="InquiryIcon" id="InquiryIcon_21195620"></i> <strong> <a InInquiryBasket="False" InquiryId="21195620" onclick="javascript:ManageInquiryBasket(this);" style="cursor:pointer">Add to Inquiry Basket</a> </strong> <div id="ListInquiryBasketLoading_21195620" class="HideLoadingInquiryBasket"></div> </li> </ul> </div> </div> <div class="contacts"> <img src="https://static.fibre2fashion.com/staticresources/images/Subtract.svg"> <strong> <a class="contactxt" data_f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;CTA Clicked&quot;,&quot;F2FEventType&quot;:&quot;CTA Clicked&quot;,&quot;F2FSection&quot;:&quot;Middle&quot;,&quot;F2FType&quot;:&quot;Static&quot;}" onclick="javascript:ManageSendInquiryForContact(&#39;21195620&#39;,&#39;#sendinquiry&#39;);">Contact</a> </strong> </div> </div> <div class="clear"></div> </div> <div class="cat-listing-box"> <div class="catlistingbx"> <div class="category-img"> <div class="LeadListImage"> <a href="/dyes/acid-dyes-suppliers-19164705" target="_blank"><img alt="Acid Dyes-Dyes" class="img-responsive onscrollloading" data_src="https://static.fibre2fashion.com/MemberResources/LeadResources/3/2019/6/Seller/19164705/Images/19164705_0_acid-dyes.jpg?tr=w-175,h-175,c-at_max,cm-pad_resize,bg-ffffff" height="143" onerror="NoImage(this,&#39;/dyes/&#39;)" src="https://static.fibre2fashion.com/spacer.gif" title="Acid Dyes-Dyes" width="152" /></a> </div> </div> <div class="supplierdetails"> <p class="blocktitle"> <a href="/dyes/acid-dyes-suppliers-19164705" target="_blank"><span style='font-weight: normal;'>Acid Dyes</span></a> </p> <div class="col-xs-6"> <div class="row"> <div class="fobprice"> <strong> CIF Price : </strong> 120 USD / Boxes </div> <small> <strong> Place of origin : </strong> India </small> </div> </div> <div class="col-xs-6"> <div class="fobprice"> <strong> Min Order : </strong> 5 Boxes </div> </div> <div class="clear"></div> <p class="discription-txt"> We are leading manufacturer and exporter of Acid Dyes and dyes intermediates.&#160;Our expertise lies in sourcing the best suited chemical compounds...</p> <div class="supplier-txt"> </div> <div class="supplier-txt"> </div> <div class="clearfix"></div> </div> <div class="no-desktop"></div> <div class="supplierdetailslisting text-left"> <h5> <small>Ahmedabad, India</small> </h5> <div class="membericon"> </div> <div class="clear"></div> <div class="alert alert-warning" style="text-align:center"> <a href="https://members.fibre2fashion.com/login?myurl=https%3a%2f%2fwww.fibre2fashion.com%2fdyes%2fdyes-suppliers-s64&utm_source=b2blisting&utm_medium=button&utm_campaign=MemberLogin_2017" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Textlink Clicked&quot;,&quot;F2FEventType&quot;:&quot;Text Link&quot;,&quot;F2FSection&quot;:&quot;Middle&quot;,&quot;F2FType&quot;:&quot;Static&quot;}"><strong>Log in</strong></a> to view more information.<br /><strong> Not a member? <a href="https://members.fibre2fashion.com/signup?myurl=https%3a%2f%2fwww.fibre2fashion.com%2fdyes%2fdyes-suppliers-s64">Register</a> for free</strong> </div> </div> <div class="clear"></div> </div> <div class="bottom-link"> <label class="checkbox-inline"> <input addToCompare="AddToCompare" class="squarebox" compareid="19164705" id="chkAddToCompare" name="chkAddToCompare" onclick="javascript:ManageCompareBasket(this)" type="checkbox" value="true" /><input name="chkAddToCompare" type="hidden" value="false" /> <span data-productcompare="compareproduct" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Icon Clicked&quot;,&quot;F2FEventType&quot;:&quot;Icon Clicked&quot;,&quot;F2FSection&quot;:&quot;Middle&quot;,&quot;F2FType&quot;:&quot;Static&quot;,&quot;F2FProductName&quot;:&quot;Acid Dyes&quot;}"> <strong> Add to Compare </strong> </span> <div id="ListCompareProductLoading_19164705" class="HideLoading"></div> </label> <div> <div class="check-btl"> <ul class="fa-ul check-btl"> <li> <i class="fa-li fa fa-plus" data-inquiryicon="InquiryIcon" id="InquiryIcon_19164705"></i> <strong> <a InInquiryBasket="False" InquiryId="19164705" onclick="javascript:ManageInquiryBasket(this);" style="cursor:pointer">Add to Inquiry Basket</a> </strong> <div id="ListInquiryBasketLoading_19164705" class="HideLoadingInquiryBasket"></div> </li> </ul> </div> </div> <div class="contacts"> <img src="https://static.fibre2fashion.com/staticresources/images/Subtract.svg"> <strong> <a class="contactxt" data_f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;CTA Clicked&quot;,&quot;F2FEventType&quot;:&quot;CTA Clicked&quot;,&quot;F2FSection&quot;:&quot;Middle&quot;,&quot;F2FType&quot;:&quot;Static&quot;}" onclick="javascript:ManageSendInquiryForContact(&#39;19164705&#39;,&#39;#sendinquiry&#39;);">Contact</a> </strong> </div> </div> <div class="clear"></div> </div> <div class="cat-listing-box"> <div class="catlistingbx"> <div class="category-img"> <div class="LeadListImage"> <a href="/dyes/acid-dyes-suppliers-19168695" target="_blank"><img alt="Acid Dyes" class="img-responsive onscrollloading" data_src="https://static.fibre2fashion.com/MemberResources/LeadResources/3/2019/9/Seller/19168695/Images/19168695_0_acid-dye-dyestuff-anhard-export-5.jpg?tr=w-175,h-175,c-at_max,cm-pad_resize,bg-ffffff" height="143" onerror="NoImage(this,&#39;/dyes/&#39;)" src="https://static.fibre2fashion.com/spacer.gif" title="Acid Dyes" width="152" /></a> </div> </div> <div class="supplierdetails"> <p class="blocktitle"> <a href="/dyes/acid-dyes-suppliers-19168695" target="_blank"><span style='font-weight: normal;'>Acid Dyes</span></a> </p> <div class="col-xs-6"> <div class="row"> <div class="fobprice"> <strong> FOB Price : </strong> 129 INR / Kgs. </div> <small> <strong> Place of origin : </strong> India </small> </div> </div> <div class="col-xs-6"> <div class="fobprice"> <strong> Min Order : </strong> 100 Kgs. </div> </div> <div class="clear"></div> <p class="discription-txt"> We are a professional exporter and our expertise in Acid Dyes . An Acid Dye is a dye that is typically applied to a textile at low pH. Our core...</p> <div class="supplier-txt"> <a href="https://www.fibre2fashion.com/dyes/suppliers?q=Inpp1kgYTn7HvlMLdnKhQnK/gp1NVVLu" target="_blank"> <strong> Other products from this Supplier <i class="fa fa-angle-right" aria-hidden="true"></i> </strong> </a> </div> <div class="supplier-txt"> <a href="https://www.fibre2fashion.com/dyes/suppliers?q=Inpp1kgYTn7HvlMLdnKhQkDMvrmz65ov0RDxe42C5Sc=" target="_blank"> <strong> Similar product from this Supplier <i class="fa fa-angle-right" aria-hidden="true"></i> </strong> </a> </div> <div class="clearfix"></div> </div> <div class="no-desktop"></div> <div class="supplierdetailslisting text-left"> <h5> <small>Surat, India</small> </h5> <div class="membericon"> </div> <div class="clear"></div> <div class="alert alert-warning" style="text-align:center"> <a href="https://members.fibre2fashion.com/login?myurl=https%3a%2f%2fwww.fibre2fashion.com%2fdyes%2fdyes-suppliers-s64&utm_source=b2blisting&utm_medium=button&utm_campaign=MemberLogin_2017" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Textlink Clicked&quot;,&quot;F2FEventType&quot;:&quot;Text Link&quot;,&quot;F2FSection&quot;:&quot;Middle&quot;,&quot;F2FType&quot;:&quot;Static&quot;}"><strong>Log in</strong></a> to view more information.<br /><strong> Not a member? <a href="https://members.fibre2fashion.com/signup?myurl=https%3a%2f%2fwww.fibre2fashion.com%2fdyes%2fdyes-suppliers-s64">Register</a> for free</strong> </div> </div> <div class="clear"></div> </div> <div class="bottom-link"> <label class="checkbox-inline"> <input addToCompare="AddToCompare" class="squarebox" compareid="19168695" id="chkAddToCompare" name="chkAddToCompare" onclick="javascript:ManageCompareBasket(this)" type="checkbox" value="true" /><input name="chkAddToCompare" type="hidden" value="false" /> <span data-productcompare="compareproduct" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Icon Clicked&quot;,&quot;F2FEventType&quot;:&quot;Icon Clicked&quot;,&quot;F2FSection&quot;:&quot;Middle&quot;,&quot;F2FType&quot;:&quot;Static&quot;,&quot;F2FProductName&quot;:&quot;Acid Dyes&quot;}"> <strong> Add to Compare </strong> </span> <div id="ListCompareProductLoading_19168695" class="HideLoading"></div> </label> <div> <div class="check-btl"> <ul class="fa-ul check-btl"> <li> <i class="fa-li fa fa-plus" data-inquiryicon="InquiryIcon" id="InquiryIcon_19168695"></i> <strong> <a InInquiryBasket="False" InquiryId="19168695" onclick="javascript:ManageInquiryBasket(this);" style="cursor:pointer">Add to Inquiry Basket</a> </strong> <div id="ListInquiryBasketLoading_19168695" class="HideLoadingInquiryBasket"></div> </li> </ul> </div> </div> <div class="contacts"> <img src="https://static.fibre2fashion.com/staticresources/images/Subtract.svg"> <strong> <a class="contactxt" data_f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;CTA Clicked&quot;,&quot;F2FEventType&quot;:&quot;CTA Clicked&quot;,&quot;F2FSection&quot;:&quot;Middle&quot;,&quot;F2FType&quot;:&quot;Static&quot;}" onclick="javascript:ManageSendInquiryForContact(&#39;19168695&#39;,&#39;#sendinquiry&#39;);">Contact</a> </strong> </div> </div> <div class="clear"></div> </div> <div class="cat-listing-box"> <div class="catlistingbx"> <div class="category-img"> <div class="LeadListImage"> <a href="/dyes/sulphur-dyes-suppliers-18142714" target="_blank"><img alt="Sulphur Dyes" class="img-responsive onscrollloading" data_src="https://static.fibre2fashion.com/MemberResources/LeadResources/3/2018/3/Seller/18142714/Images/18142714_0_mastone.jpg?tr=w-175,h-175,c-at_max,cm-pad_resize,bg-ffffff" height="143" onerror="NoImage(this,&#39;/dyes/&#39;)" src="https://static.fibre2fashion.com/spacer.gif" title="Sulphur Dyes" width="152" /></a> </div> </div> <div class="supplierdetails"> <p class="blocktitle"> <a href="/dyes/sulphur-dyes-suppliers-18142714" target="_blank"><span style='font-weight: normal;'>Sulphur Dyes</span></a> </p> <div class="col-xs-6"> <div class="row"> <div class="fobprice"> <strong> CIF Price : </strong> 1.5 USD / Kgs. </div> <small> <strong> Place of origin : </strong> China </small> </div> </div> <div class="col-xs-6"> <div class="fobprice"> <strong> Min Order : </strong> 100 Kgs. </div> </div> <div class="clear"></div> <p class="discription-txt"> We are one of the largest suppliers of Sulphur Dyes for both liquid and powder form.&#160; our company is instrumental in presenting an excellent...</p> <div class="supplier-txt"> <a href="https://www.fibre2fashion.com/dyes/suppliers?q=mgo/3/AMuitHVrr31IlVc707bNm05egP" target="_blank"> <strong> Other products from this Supplier <i class="fa fa-angle-right" aria-hidden="true"></i> </strong> </a> </div> <div class="supplier-txt"> <a href="https://www.fibre2fashion.com/dyes/suppliers?q=mgo/3/AMuitHVrr31IlVc7Rcud9o4Tq1ML5mCqVSbME=" target="_blank"> <strong> Similar product from this Supplier <i class="fa fa-angle-right" aria-hidden="true"></i> </strong> </a> </div> <div class="clearfix"></div> </div> <div class="no-desktop"></div> <div class="supplierdetailslisting text-left"> <h5> <small>Tianjin, China</small> </h5> <div class="membericon"> </div> <div class="clear"></div> <div class="alert alert-warning" style="text-align:center"> <a href="https://members.fibre2fashion.com/login?myurl=https%3a%2f%2fwww.fibre2fashion.com%2fdyes%2fdyes-suppliers-s64&utm_source=b2blisting&utm_medium=button&utm_campaign=MemberLogin_2017" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Textlink Clicked&quot;,&quot;F2FEventType&quot;:&quot;Text Link&quot;,&quot;F2FSection&quot;:&quot;Middle&quot;,&quot;F2FType&quot;:&quot;Static&quot;}"><strong>Log in</strong></a> to view more information.<br /><strong> Not a member? <a href="https://members.fibre2fashion.com/signup?myurl=https%3a%2f%2fwww.fibre2fashion.com%2fdyes%2fdyes-suppliers-s64">Register</a> for free</strong> </div> </div> <div class="clear"></div> </div> <div class="bottom-link"> <label class="checkbox-inline"> <input addToCompare="AddToCompare" class="squarebox" compareid="18142714" id="chkAddToCompare" name="chkAddToCompare" onclick="javascript:ManageCompareBasket(this)" type="checkbox" value="true" /><input name="chkAddToCompare" type="hidden" value="false" /> <span data-productcompare="compareproduct" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Icon Clicked&quot;,&quot;F2FEventType&quot;:&quot;Icon Clicked&quot;,&quot;F2FSection&quot;:&quot;Middle&quot;,&quot;F2FType&quot;:&quot;Static&quot;,&quot;F2FProductName&quot;:&quot;Sulphur Dyes&quot;}"> <strong> Add to Compare </strong> </span> <div id="ListCompareProductLoading_18142714" class="HideLoading"></div> </label> <div> <div class="check-btl"> <ul class="fa-ul check-btl"> <li> <i class="fa-li fa fa-plus" data-inquiryicon="InquiryIcon" id="InquiryIcon_18142714"></i> <strong> <a InInquiryBasket="False" InquiryId="18142714" onclick="javascript:ManageInquiryBasket(this);" style="cursor:pointer">Add to Inquiry Basket</a> </strong> <div id="ListInquiryBasketLoading_18142714" class="HideLoadingInquiryBasket"></div> </li> </ul> </div> </div> <div class="contacts"> <img src="https://static.fibre2fashion.com/staticresources/images/Subtract.svg"> <strong> <a class="contactxt" data_f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;CTA Clicked&quot;,&quot;F2FEventType&quot;:&quot;CTA Clicked&quot;,&quot;F2FSection&quot;:&quot;Middle&quot;,&quot;F2FType&quot;:&quot;Static&quot;}" onclick="javascript:ManageSendInquiryForContact(&#39;18142714&#39;,&#39;#sendinquiry&#39;);">Contact</a> </strong> </div> </div> <div class="clear"></div> </div> <div class="cat-listing-box"> <div class="catlistingbx"> <div class="category-img"> <div class="LeadListImage"> <a href="/dyes/reactive-dyes-suppliers-15103461" target="_blank"><img alt="reactive dyes" class="img-responsive onscrollloading" data_src="https://static.fibre2fashion.com/MemberResources/LeadResources/3/2015/9/Seller/15103461/Images/15103461_1_reactive dyes.jpeg?tr=w-175,h-175,c-at_max,cm-pad_resize,bg-ffffff" height="143" onerror="NoImage(this,&#39;/dyes/&#39;)" src="https://static.fibre2fashion.com/spacer.gif" title="reactive dyes" width="152" /></a> </div> </div> <div class="supplierdetails"> <p class="blocktitle"> <a href="/dyes/reactive-dyes-suppliers-15103461" target="_blank"><span style='font-weight: normal;'>Reactive Dyes : For cotton and wool silk dying, Powder form</span></a> </p> <div class="col-xs-6"> <div class="row"> <div class="fobprice"> <strong> FOB Price : </strong> 6.00 USD / Kgs. </div> <small> <strong> Place of origin : </strong> India </small> </div> </div> <div class="col-xs-6"> <div class="fobprice"> <strong> Min Order : </strong> 100 Kgs. </div> </div> <div class="clear"></div> <p class="discription-txt"> We are considered as one of the most remarkable and renowned manufacturer &amp;amp; exporter of Reactive Dyes in powder form. End use of the dyes for...</p> <div class="supplier-txt"> <a href="https://www.fibre2fashion.com/dyes/suppliers?q=bS5u2uTkwPz4BdrcQ0nY4w==" target="_blank"> <strong> Other products from this Supplier <i class="fa fa-angle-right" aria-hidden="true"></i> </strong> </a> </div> <div class="supplier-txt"> </div> <div class="clearfix"></div> </div> <div class="no-desktop"></div> <div class="supplierdetailslisting text-left"> <h5> <small>AHMEDABAD, India</small> </h5> <div class="membericon"> </div> <div class="clear"></div> <div class="alert alert-warning" style="text-align:center"> <a href="https://members.fibre2fashion.com/login?myurl=https%3a%2f%2fwww.fibre2fashion.com%2fdyes%2fdyes-suppliers-s64&utm_source=b2blisting&utm_medium=button&utm_campaign=MemberLogin_2017" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Textlink Clicked&quot;,&quot;F2FEventType&quot;:&quot;Text Link&quot;,&quot;F2FSection&quot;:&quot;Middle&quot;,&quot;F2FType&quot;:&quot;Static&quot;}"><strong>Log in</strong></a> to view more information.<br /><strong> Not a member? <a href="https://members.fibre2fashion.com/signup?myurl=https%3a%2f%2fwww.fibre2fashion.com%2fdyes%2fdyes-suppliers-s64">Register</a> for free</strong> </div> </div> <div class="clear"></div> </div> <div class="bottom-link"> <label class="checkbox-inline"> <input addToCompare="AddToCompare" class="squarebox" compareid="15103461" id="chkAddToCompare" name="chkAddToCompare" onclick="javascript:ManageCompareBasket(this)" type="checkbox" value="true" /><input name="chkAddToCompare" type="hidden" value="false" /> <span data-productcompare="compareproduct" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Icon Clicked&quot;,&quot;F2FEventType&quot;:&quot;Icon Clicked&quot;,&quot;F2FSection&quot;:&quot;Middle&quot;,&quot;F2FType&quot;:&quot;Static&quot;,&quot;F2FProductName&quot;:&quot;Reactive Dyes : For cotton and wool silk dying, Powder form&quot;}"> <strong> Add to Compare </strong> </span> <div id="ListCompareProductLoading_15103461" class="HideLoading"></div> </label> <div> <div class="check-btl"> <ul class="fa-ul check-btl"> <li> <i class="fa-li fa fa-plus" data-inquiryicon="InquiryIcon" id="InquiryIcon_15103461"></i> <strong> <a InInquiryBasket="False" InquiryId="15103461" onclick="javascript:ManageInquiryBasket(this);" style="cursor:pointer">Add to Inquiry Basket</a> </strong> <div id="ListInquiryBasketLoading_15103461" class="HideLoadingInquiryBasket"></div> </li> </ul> </div> </div> <div class="contacts"> <img src="https://static.fibre2fashion.com/staticresources/images/Subtract.svg"> <strong> <a class="contactxt" data_f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;CTA Clicked&quot;,&quot;F2FEventType&quot;:&quot;CTA Clicked&quot;,&quot;F2FSection&quot;:&quot;Middle&quot;,&quot;F2FType&quot;:&quot;Static&quot;}" onclick="javascript:ManageSendInquiryForContact(&#39;15103461&#39;,&#39;#sendinquiry&#39;);">Contact</a> </strong> </div> </div> <div class="clear"></div> </div> <div class="cat-listing-box"> <div class="catlistingbx"> <div class="category-img"> <div class="LeadListImage"> <a href="/dyes/basic-dyes-suppliers-15101843" target="_blank"><img alt="basic dyes" class="img-responsive onscrollloading" data_src="https://static.fibre2fashion.com/MemberResources/LeadResources/3/2015/7/Seller/15101843/Images/15101843_0_201507290817104947500.jpg?tr=w-175,h-175,c-at_max,cm-pad_resize,bg-ffffff" height="143" onerror="NoImage(this,&#39;/dyes/&#39;)" src="https://static.fibre2fashion.com/spacer.gif" title="basic dyes" width="152" /></a> </div> </div> <div class="supplierdetails"> <p class="blocktitle"> <a href="/dyes/basic-dyes-suppliers-15101843" target="_blank"><span style='font-weight: normal;'>Basic Dyes : For Ink, Dyeing, Printing , High strength, good dispersibility, good heat resistance, brilliant color, good solvent resistance</span></a> </p> <div class="col-xs-6"> <div class="row"> <div class="fobprice"> <strong> FOB Price : </strong> 3.5---6 USD / Kgs. </div> <small> <strong> Place of origin : </strong> China </small> </div> </div> <div class="col-xs-6"> <div class="fobprice"> <strong> Min Order : </strong> 500 Kgs. </div> </div> <div class="clear"></div> <p class="discription-txt"> We introduce our self as a pioneer in the field of Basic Dyes. &lt;br/&gt; &lt;br/&gt; End Use / Application: For Ink, Dyeing, Printing &lt;br/&gt; Characteristic:...</p> <div class="supplier-txt"> </div> <div class="supplier-txt"> </div> <div class="clearfix"></div> </div> <div class="no-desktop"></div> <div class="supplierdetailslisting text-left"> <h5> <small>Hengshui, China</small> </h5> <div class="membericon"> </div> <div class="clear"></div> <div class="alert alert-warning" style="text-align:center"> <a href="https://members.fibre2fashion.com/login?myurl=https%3a%2f%2fwww.fibre2fashion.com%2fdyes%2fdyes-suppliers-s64&utm_source=b2blisting&utm_medium=button&utm_campaign=MemberLogin_2017" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Textlink Clicked&quot;,&quot;F2FEventType&quot;:&quot;Text Link&quot;,&quot;F2FSection&quot;:&quot;Middle&quot;,&quot;F2FType&quot;:&quot;Static&quot;}"><strong>Log in</strong></a> to view more information.<br /><strong> Not a member? <a href="https://members.fibre2fashion.com/signup?myurl=https%3a%2f%2fwww.fibre2fashion.com%2fdyes%2fdyes-suppliers-s64">Register</a> for free</strong> </div> </div> <div class="clear"></div> </div> <div class="bottom-link"> <label class="checkbox-inline"> <input addToCompare="AddToCompare" class="squarebox" compareid="15101843" id="chkAddToCompare" name="chkAddToCompare" onclick="javascript:ManageCompareBasket(this)" type="checkbox" value="true" /><input name="chkAddToCompare" type="hidden" value="false" /> <span data-productcompare="compareproduct" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Icon Clicked&quot;,&quot;F2FEventType&quot;:&quot;Icon Clicked&quot;,&quot;F2FSection&quot;:&quot;Middle&quot;,&quot;F2FType&quot;:&quot;Static&quot;,&quot;F2FProductName&quot;:&quot;Basic Dyes : For Ink, Dyeing, Printing , High strength, good dispersibility, good heat resistance, brilliant color, good solvent resistance&quot;}"> <strong> Add to Compare </strong> </span> <div id="ListCompareProductLoading_15101843" class="HideLoading"></div> </label> <div> <div class="check-btl"> <ul class="fa-ul check-btl"> <li> <i class="fa-li fa fa-plus" data-inquiryicon="InquiryIcon" id="InquiryIcon_15101843"></i> <strong> <a InInquiryBasket="False" InquiryId="15101843" onclick="javascript:ManageInquiryBasket(this);" style="cursor:pointer">Add to Inquiry Basket</a> </strong> <div id="ListInquiryBasketLoading_15101843" class="HideLoadingInquiryBasket"></div> </li> </ul> </div> </div> <div class="contacts"> <img src="https://static.fibre2fashion.com/staticresources/images/Subtract.svg"> <strong> <a class="contactxt" data_f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;CTA Clicked&quot;,&quot;F2FEventType&quot;:&quot;CTA Clicked&quot;,&quot;F2FSection&quot;:&quot;Middle&quot;,&quot;F2FType&quot;:&quot;Static&quot;}" onclick="javascript:ManageSendInquiryForContact(&#39;15101843&#39;,&#39;#sendinquiry&#39;);">Contact</a> </strong> </div> </div> <div class="clear"></div> </div> <div class="cat-listing-box"> <div class="catlistingbx"> <div class="category-img"> <div class="LeadListImage"> <a href="/dyes/acid-dyes-suppliers-16118009" target="_blank"><img alt="acid dyes" class="img-responsive onscrollloading" data_src="https://static.fibre2fashion.com/MemberResources/LeadResources/3/2016/8/Seller/16118009/Images/16118009_0_acid-dyes.jpg?tr=w-175,h-175,c-at_max,cm-pad_resize,bg-ffffff" height="143" onerror="NoImage(this,&#39;/dyes/&#39;)" src="https://static.fibre2fashion.com/spacer.gif" title="acid dyes" width="152" /></a> </div> </div> <div class="supplierdetails"> <p class="blocktitle"> <a href="/dyes/acid-dyes-suppliers-16118009" target="_blank"><span style='font-weight: normal;'>Acid Dyes : Used in textile, leather, wool, nylon and silk industry, Powder form</span></a> </p> <div class="col-xs-6"> <div class="row"> <div class="fobprice"> <strong> FOB Price : </strong> 500 INR / Kgs. </div> <small> <strong> Place of origin : </strong> India </small> </div> </div> <div class="col-xs-6"> <div class="fobprice"> <strong> Min Order : </strong> 300 Kgs. </div> </div> <div class="clear"></div> <p class="discription-txt"> Our company is a renowned supplier of Acid Dyes used in textile, leather, wool, nylon and silk industry. MOQ: 300 Kgs Export Market: Eastern...</p> <div class="supplier-txt"> </div> <div class="supplier-txt"> </div> <div class="clearfix"></div> </div> <div class="no-desktop"></div> <div class="supplierdetailslisting text-left"> <h5> <small>Mumbai, India</small> </h5> <div class="membericon"> </div> <div class="clear"></div> <div class="alert alert-warning" style="text-align:center"> <a href="https://members.fibre2fashion.com/login?myurl=https%3a%2f%2fwww.fibre2fashion.com%2fdyes%2fdyes-suppliers-s64&utm_source=b2blisting&utm_medium=button&utm_campaign=MemberLogin_2017" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Textlink Clicked&quot;,&quot;F2FEventType&quot;:&quot;Text Link&quot;,&quot;F2FSection&quot;:&quot;Middle&quot;,&quot;F2FType&quot;:&quot;Static&quot;}"><strong>Log in</strong></a> to view more information.<br /><strong> Not a member? <a href="https://members.fibre2fashion.com/signup?myurl=https%3a%2f%2fwww.fibre2fashion.com%2fdyes%2fdyes-suppliers-s64">Register</a> for free</strong> </div> </div> <div class="clear"></div> </div> <div class="bottom-link"> <label class="checkbox-inline"> <input addToCompare="AddToCompare" class="squarebox" compareid="16118009" id="chkAddToCompare" name="chkAddToCompare" onclick="javascript:ManageCompareBasket(this)" type="checkbox" value="true" /><input name="chkAddToCompare" type="hidden" value="false" /> <span data-productcompare="compareproduct" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Icon Clicked&quot;,&quot;F2FEventType&quot;:&quot;Icon Clicked&quot;,&quot;F2FSection&quot;:&quot;Middle&quot;,&quot;F2FType&quot;:&quot;Static&quot;,&quot;F2FProductName&quot;:&quot;Acid Dyes : Used in textile, leather, wool, nylon and silk industry, Powder form&quot;}"> <strong> Add to Compare </strong> </span> <div id="ListCompareProductLoading_16118009" class="HideLoading"></div> </label> <div> <div class="check-btl"> <ul class="fa-ul check-btl"> <li> <i class="fa-li fa fa-plus" data-inquiryicon="InquiryIcon" id="InquiryIcon_16118009"></i> <strong> <a InInquiryBasket="False" InquiryId="16118009" onclick="javascript:ManageInquiryBasket(this);" style="cursor:pointer">Add to Inquiry Basket</a> </strong> <div id="ListInquiryBasketLoading_16118009" class="HideLoadingInquiryBasket"></div> </li> </ul> </div> </div> <div class="contacts"> <img src="https://static.fibre2fashion.com/staticresources/images/Subtract.svg"> <strong> <a class="contactxt" data_f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;CTA Clicked&quot;,&quot;F2FEventType&quot;:&quot;CTA Clicked&quot;,&quot;F2FSection&quot;:&quot;Middle&quot;,&quot;F2FType&quot;:&quot;Static&quot;}" onclick="javascript:ManageSendInquiryForContact(&#39;16118009&#39;,&#39;#sendinquiry&#39;);">Contact</a> </strong> </div> </div> <div class="clear"></div> </div> <div class="cat-listing-box"> <div class="catlistingbx"> <div class="category-img"> <div class="LeadListImage"> <a href="/dyes/reactive-dyes-suppliers-15103313" target="_blank"><img alt="cooton textile, yarn, power form" class="img-responsive onscrollloading" data_src="https://static.fibre2fashion.com/MemberResources/LeadResources/3/2015/9/Seller/15103313/Images/15103313_0_201509071219112733846.JPG?tr=w-175,h-175,c-at_max,cm-pad_resize,bg-ffffff" height="143" onerror="NoImage(this,&#39;/dyes/&#39;)" src="https://static.fibre2fashion.com/spacer.gif" title="cooton textile, yarn, power form" width="152" /></a> </div> </div> <div class="supplierdetails"> <p class="blocktitle"> <a href="/dyes/reactive-dyes-suppliers-15103313" target="_blank"><span style='font-weight: normal;'>Reactive Dyes : For cotton yarn, power form</span></a> </p> <div class="col-xs-6"> <div class="row"> <div class="fobprice"> <strong> FOB Price : </strong> 5000 USD / Metric Ton </div> <small> <strong> Place of origin : </strong> India </small> </div> </div> <div class="col-xs-6"> <div class="fobprice"> <strong> Min Order : </strong> 1 Containers </div> </div> <div class="clear"></div> <p class="discription-txt"> We are reckoned as an established manufacturer and exporter of proper quality control, good quality Reactive Dyes for cotton yarn. Brand Name...</p> <div class="supplier-txt"> </div> <div class="supplier-txt"> </div> <div class="clearfix"></div> </div> <div class="no-desktop"></div> <div class="supplierdetailslisting text-left"> <h5> <small>AHMEDABAD, India</small> </h5> <div class="membericon"> </div> <div class="clear"></div> <div class="alert alert-warning" style="text-align:center"> <a href="https://members.fibre2fashion.com/login?myurl=https%3a%2f%2fwww.fibre2fashion.com%2fdyes%2fdyes-suppliers-s64&utm_source=b2blisting&utm_medium=button&utm_campaign=MemberLogin_2017" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Textlink Clicked&quot;,&quot;F2FEventType&quot;:&quot;Text Link&quot;,&quot;F2FSection&quot;:&quot;Middle&quot;,&quot;F2FType&quot;:&quot;Static&quot;}"><strong>Log in</strong></a> to view more information.<br /><strong> Not a member? <a href="https://members.fibre2fashion.com/signup?myurl=https%3a%2f%2fwww.fibre2fashion.com%2fdyes%2fdyes-suppliers-s64">Register</a> for free</strong> </div> </div> <div class="clear"></div> </div> <div class="bottom-link"> <label class="checkbox-inline"> <input addToCompare="AddToCompare" class="squarebox" compareid="15103313" id="chkAddToCompare" name="chkAddToCompare" onclick="javascript:ManageCompareBasket(this)" type="checkbox" value="true" /><input name="chkAddToCompare" type="hidden" value="false" /> <span data-productcompare="compareproduct" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Icon Clicked&quot;,&quot;F2FEventType&quot;:&quot;Icon Clicked&quot;,&quot;F2FSection&quot;:&quot;Middle&quot;,&quot;F2FType&quot;:&quot;Static&quot;,&quot;F2FProductName&quot;:&quot;Reactive Dyes : For cotton yarn, power form&quot;}"> <strong> Add to Compare </strong> </span> <div id="ListCompareProductLoading_15103313" class="HideLoading"></div> </label> <div> <div class="check-btl"> <ul class="fa-ul check-btl"> <li> <i class="fa-li fa fa-plus" data-inquiryicon="InquiryIcon" id="InquiryIcon_15103313"></i> <strong> <a InInquiryBasket="False" InquiryId="15103313" onclick="javascript:ManageInquiryBasket(this);" style="cursor:pointer">Add to Inquiry Basket</a> </strong> <div id="ListInquiryBasketLoading_15103313" class="HideLoadingInquiryBasket"></div> </li> </ul> </div> </div> <div class="contacts"> <img src="https://static.fibre2fashion.com/staticresources/images/Subtract.svg"> <strong> <a class="contactxt" data_f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;CTA Clicked&quot;,&quot;F2FEventType&quot;:&quot;CTA Clicked&quot;,&quot;F2FSection&quot;:&quot;Middle&quot;,&quot;F2FType&quot;:&quot;Static&quot;}" onclick="javascript:ManageSendInquiryForContact(&#39;15103313&#39;,&#39;#sendinquiry&#39;);">Contact</a> </strong> </div> </div> <div class="clear"></div> </div> <div class="cat-listing-box"> <div class="catlistingbx"> <div class="category-img"> <div class="LeadListImage"> <a href="/dyes/acid-dyes-suppliers-16124010" target="_blank"><img alt="Acid Dyes-Dyes" class="img-responsive onscrollloading" data_src="https://static.fibre2fashion.com/MemberResources/LeadResources/3/2016/12/Seller/16124010/Images/16124010_0_acid-dyes.jpg?tr=w-175,h-175,c-at_max,cm-pad_resize,bg-ffffff" height="143" onerror="NoImage(this,&#39;/dyes/&#39;)" src="https://static.fibre2fashion.com/spacer.gif" title="Acid Dyes-Dyes" width="152" /></a> </div> </div> <div class="supplierdetails"> <p class="blocktitle"> <a href="/dyes/acid-dyes-suppliers-16124010" target="_blank"><span style='font-weight: normal;'>Acid Dyes : Used in textile or Leather products., Colorless liquid</span></a> </p> <div class="col-xs-6"> <div class="row"> <div class="fobprice"> <strong> CIF Price : </strong> 0.21 USD / Pieces </div> <small> <strong> Place of origin : </strong> China </small> </div> </div> <div class="col-xs-6"> <div class="fobprice"> <strong> Min Order : </strong> 1000 Pieces </div> </div> <div class="clear"></div> <p class="discription-txt"> 1. &#160;For package olive oil &#160; 2. &#160;For package cosmetic 3. &#160;For package e-cig liquid 4. &#160;For package perfume 5. &#160;For package &#160;nail polish 6....</p> <div class="supplier-txt"> </div> <div class="supplier-txt"> </div> <div class="clearfix"></div> </div> <div class="no-desktop"></div> <div class="supplierdetailslisting text-left"> <h5> <small>shijiazhuang, China</small> </h5> <div class="membericon"> </div> <div class="clear"></div> <div class="alert alert-warning" style="text-align:center"> <a href="https://members.fibre2fashion.com/login?myurl=https%3a%2f%2fwww.fibre2fashion.com%2fdyes%2fdyes-suppliers-s64&utm_source=b2blisting&utm_medium=button&utm_campaign=MemberLogin_2017" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Textlink Clicked&quot;,&quot;F2FEventType&quot;:&quot;Text Link&quot;,&quot;F2FSection&quot;:&quot;Middle&quot;,&quot;F2FType&quot;:&quot;Static&quot;}"><strong>Log in</strong></a> to view more information.<br /><strong> Not a member? <a href="https://members.fibre2fashion.com/signup?myurl=https%3a%2f%2fwww.fibre2fashion.com%2fdyes%2fdyes-suppliers-s64">Register</a> for free</strong> </div> </div> <div class="clear"></div> </div> <div class="bottom-link"> <label class="checkbox-inline"> <input addToCompare="AddToCompare" class="squarebox" compareid="16124010" id="chkAddToCompare" name="chkAddToCompare" onclick="javascript:ManageCompareBasket(this)" type="checkbox" value="true" /><input name="chkAddToCompare" type="hidden" value="false" /> <span data-productcompare="compareproduct" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Icon Clicked&quot;,&quot;F2FEventType&quot;:&quot;Icon Clicked&quot;,&quot;F2FSection&quot;:&quot;Middle&quot;,&quot;F2FType&quot;:&quot;Static&quot;,&quot;F2FProductName&quot;:&quot;Acid Dyes : Used in textile or Leather products., Colorless liquid&quot;}"> <strong> Add to Compare </strong> </span> <div id="ListCompareProductLoading_16124010" class="HideLoading"></div> </label> <div> <div class="check-btl"> <ul class="fa-ul check-btl"> <li> <i class="fa-li fa fa-plus" data-inquiryicon="InquiryIcon" id="InquiryIcon_16124010"></i> <strong> <a InInquiryBasket="False" InquiryId="16124010" onclick="javascript:ManageInquiryBasket(this);" style="cursor:pointer">Add to Inquiry Basket</a> </strong> <div id="ListInquiryBasketLoading_16124010" class="HideLoadingInquiryBasket"></div> </li> </ul> </div> </div> <div class="contacts"> <img src="https://static.fibre2fashion.com/staticresources/images/Subtract.svg"> <strong> <a class="contactxt" data_f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;CTA Clicked&quot;,&quot;F2FEventType&quot;:&quot;CTA Clicked&quot;,&quot;F2FSection&quot;:&quot;Middle&quot;,&quot;F2FType&quot;:&quot;Static&quot;}" onclick="javascript:ManageSendInquiryForContact(&#39;16124010&#39;,&#39;#sendinquiry&#39;);">Contact</a> </strong> </div> </div> <div class="clear"></div> </div> <div class="cat-listing-box"> <div class="catlistingbx"> <div class="category-img"> <div class="LeadListImage"> <a href="/dyes/natural-dyes-suppliers-18155058" target="_blank"><img alt="Natural Dyes" class="img-responsive onscrollloading" data_src="https://static.fibre2fashion.com/MemberResources/LeadResources/3/2018/10/Seller/18155058/Images/18155058_1_toxicity-and-medicinally-value-of-natural-indigo.jpg?tr=w-175,h-175,c-at_max,cm-pad_resize,bg-ffffff" height="143" onerror="NoImage(this,&#39;/dyes/&#39;)" src="https://static.fibre2fashion.com/spacer.gif" title="Natural Dyes" width="152" /></a> </div> </div> <div class="supplierdetails"> <p class="blocktitle"> <a href="/dyes/natural-dyes-suppliers-18155058" target="_blank"><span style='font-weight: normal;'>Natural Dyes</span></a> </p> <div class="col-xs-6"> <div class="row"> <div class="fobprice"> <strong> FOB Price : </strong> 38 USD / Kgs. </div> <small> <strong> Place of origin : </strong> India </small> </div> </div> <div class="col-xs-6"> <div class="fobprice"> <strong> Min Order : </strong> 100 Kgs. </div> </div> <div class="clear"></div> <p class="discription-txt"> Natural Dyes are the dyes Powder form plants, invertebrates or minerals. A large number of these Dyes are Vegetable Dyes sourced from plants. All...</p> <div class="supplier-txt"> <a href="https://www.fibre2fashion.com/dyes/suppliers?q=xTuTZLyDG4eEzo2VUKsyaQ==" target="_blank"> <strong> Other products from this Supplier <i class="fa fa-angle-right" aria-hidden="true"></i> </strong> </a> </div> <div class="supplier-txt"> <a href="https://www.fibre2fashion.com/dyes/suppliers?q=xTuTZLyDG4cHio9ZvSP/UhQuQGGo7tVz" target="_blank"> <strong> Similar product from this Supplier <i class="fa fa-angle-right" aria-hidden="true"></i> </strong> </a> </div> <div class="clearfix"></div> </div> <div class="no-desktop"></div> <div class="supplierdetailslisting text-left"> <h5> <small>Lucknow, India</small> </h5> <div class="membericon"> </div> <div class="clear"></div> <div class="alert alert-warning" style="text-align:center"> <a href="https://members.fibre2fashion.com/login?myurl=https%3a%2f%2fwww.fibre2fashion.com%2fdyes%2fdyes-suppliers-s64&utm_source=b2blisting&utm_medium=button&utm_campaign=MemberLogin_2017" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Textlink Clicked&quot;,&quot;F2FEventType&quot;:&quot;Text Link&quot;,&quot;F2FSection&quot;:&quot;Middle&quot;,&quot;F2FType&quot;:&quot;Static&quot;}"><strong>Log in</strong></a> to view more information.<br /><strong> Not a member? <a href="https://members.fibre2fashion.com/signup?myurl=https%3a%2f%2fwww.fibre2fashion.com%2fdyes%2fdyes-suppliers-s64">Register</a> for free</strong> </div> </div> <div class="clear"></div> </div> <div class="bottom-link"> <label class="checkbox-inline"> <input addToCompare="AddToCompare" class="squarebox" compareid="18155058" id="chkAddToCompare" name="chkAddToCompare" onclick="javascript:ManageCompareBasket(this)" type="checkbox" value="true" /><input name="chkAddToCompare" type="hidden" value="false" /> <span data-productcompare="compareproduct" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Icon Clicked&quot;,&quot;F2FEventType&quot;:&quot;Icon Clicked&quot;,&quot;F2FSection&quot;:&quot;Middle&quot;,&quot;F2FType&quot;:&quot;Static&quot;,&quot;F2FProductName&quot;:&quot;Natural Dyes&quot;}"> <strong> Add to Compare </strong> </span> <div id="ListCompareProductLoading_18155058" class="HideLoading"></div> </label> <div> <div class="check-btl"> <ul class="fa-ul check-btl"> <li> <i class="fa-li fa fa-plus" data-inquiryicon="InquiryIcon" id="InquiryIcon_18155058"></i> <strong> <a InInquiryBasket="False" InquiryId="18155058" onclick="javascript:ManageInquiryBasket(this);" style="cursor:pointer">Add to Inquiry Basket</a> </strong> <div id="ListInquiryBasketLoading_18155058" class="HideLoadingInquiryBasket"></div> </li> </ul> </div> </div> <div class="contacts"> <img src="https://static.fibre2fashion.com/staticresources/images/Subtract.svg"> <strong> <a class="contactxt" data_f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;CTA Clicked&quot;,&quot;F2FEventType&quot;:&quot;CTA Clicked&quot;,&quot;F2FSection&quot;:&quot;Middle&quot;,&quot;F2FType&quot;:&quot;Static&quot;}" onclick="javascript:ManageSendInquiryForContact(&#39;18155058&#39;,&#39;#sendinquiry&#39;);">Contact</a> </strong> </div> </div> <div class="clear"></div> </div> <div class="cat-listing-box"> <div class="catlistingbx"> <div class="category-img"> <div class="LeadListImage"> <a href="/dyes/reactive-dyes-suppliers-15104836" target="_blank"><img alt="Reactive Dyes-16291" class="img-responsive onscrollloading" data_src="https://static.fibre2fashion.com/MemberResources/ProductRepository/3/64/794/Reactive Dye Stuffs.jpg?tr=w-175,h-175,c-at_max,cm-pad_resize,bg-ffffff" height="143" onerror="NoImage(this,&#39;/dyes/&#39;)" src="https://static.fibre2fashion.com/spacer.gif" title="Reactive Dyes-16291" width="152" /></a> </div> </div> <div class="supplierdetails"> <p class="blocktitle"> <a href="/dyes/reactive-dyes-suppliers-15104836" target="_blank"><span style='font-weight: normal;'>Reactive Dyes : For dyeing and printing, Powder</span></a> </p> <div class="col-xs-6"> <div class="row"> <div class="fobprice"> <strong> FOB Price : </strong> 6.2 USD / Kgs. </div> <small> <strong> Place of origin : </strong> China </small> </div> </div> <div class="col-xs-6"> <div class="fobprice"> <strong> Min Order : </strong> 1 Kgs. </div> </div> <div class="clear"></div> <p class="discription-txt"> We are pleased to present our self as manufacturer and exporter of Reactive Dyes. MOQ: 1 kg. Export Market: Mid East Payment Mode: L/C </p> <div class="supplier-txt"> <a href="https://www.fibre2fashion.com/dyes/suppliers?q=tgWhXhkyrw72aldo7Yec7Q==" target="_blank"> <strong> Other products from this Supplier <i class="fa fa-angle-right" aria-hidden="true"></i> </strong> </a> </div> <div class="supplier-txt"> <a href="https://www.fibre2fashion.com/dyes/suppliers?q=tgWhXhkyrw7oo9QpaYx7Mmzj2EotBWf2" target="_blank"> <strong> Similar product from this Supplier <i class="fa fa-angle-right" aria-hidden="true"></i> </strong> </a> </div> <div class="clearfix"></div> </div> <div class="no-desktop"></div> <div class="supplierdetailslisting text-left"> <h5> <small>yixing, China</small> </h5> <div class="membericon"> </div> <div class="clear"></div> <div class="alert alert-warning" style="text-align:center"> <a href="https://members.fibre2fashion.com/login?myurl=https%3a%2f%2fwww.fibre2fashion.com%2fdyes%2fdyes-suppliers-s64&utm_source=b2blisting&utm_medium=button&utm_campaign=MemberLogin_2017" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Textlink Clicked&quot;,&quot;F2FEventType&quot;:&quot;Text Link&quot;,&quot;F2FSection&quot;:&quot;Middle&quot;,&quot;F2FType&quot;:&quot;Static&quot;}"><strong>Log in</strong></a> to view more information.<br /><strong> Not a member? <a href="https://members.fibre2fashion.com/signup?myurl=https%3a%2f%2fwww.fibre2fashion.com%2fdyes%2fdyes-suppliers-s64">Register</a> for free</strong> </div> </div> <div class="clear"></div> </div> <div class="bottom-link"> <label class="checkbox-inline"> <input addToCompare="AddToCompare" class="squarebox" compareid="15104836" id="chkAddToCompare" name="chkAddToCompare" onclick="javascript:ManageCompareBasket(this)" type="checkbox" value="true" /><input name="chkAddToCompare" type="hidden" value="false" /> <span data-productcompare="compareproduct" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Icon Clicked&quot;,&quot;F2FEventType&quot;:&quot;Icon Clicked&quot;,&quot;F2FSection&quot;:&quot;Middle&quot;,&quot;F2FType&quot;:&quot;Static&quot;,&quot;F2FProductName&quot;:&quot;Reactive Dyes : For dyeing and printing, Powder&quot;}"> <strong> Add to Compare </strong> </span> <div id="ListCompareProductLoading_15104836" class="HideLoading"></div> </label> <div> <div class="check-btl"> <ul class="fa-ul check-btl"> <li> <i class="fa-li fa fa-plus" data-inquiryicon="InquiryIcon" id="InquiryIcon_15104836"></i> <strong> <a InInquiryBasket="False" InquiryId="15104836" onclick="javascript:ManageInquiryBasket(this);" style="cursor:pointer">Add to Inquiry Basket</a> </strong> <div id="ListInquiryBasketLoading_15104836" class="HideLoadingInquiryBasket"></div> </li> </ul> </div> </div> <div class="contacts"> <img src="https://static.fibre2fashion.com/staticresources/images/Subtract.svg"> <strong> <a class="contactxt" data_f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;CTA Clicked&quot;,&quot;F2FEventType&quot;:&quot;CTA Clicked&quot;,&quot;F2FSection&quot;:&quot;Middle&quot;,&quot;F2FType&quot;:&quot;Static&quot;}" onclick="javascript:ManageSendInquiryForContact(&#39;15104836&#39;,&#39;#sendinquiry&#39;);">Contact</a> </strong> </div> </div> <div class="clear"></div> </div> <div class="cat-listing-box"> <div class="catlistingbx"> <div class="category-img"> <div class="LeadListImage"> <a href="/dyes/indigo-suppliers-15100940" target="_blank"><img alt="indigo blue for denim" class="img-responsive onscrollloading" data_src="https://static.fibre2fashion.com/MemberResources/LeadResources/3/2015/7/Seller/15100940/Images/15100940_0_201507061241083280612.jpg?tr=w-175,h-175,c-at_max,cm-pad_resize,bg-ffffff" height="143" onerror="NoImage(this,&#39;/dyes/&#39;)" src="https://static.fibre2fashion.com/spacer.gif" title="indigo blue for denim" width="152" /></a> </div> </div> <div class="supplierdetails"> <p class="blocktitle"> <a href="/dyes/indigo-suppliers-15100940" target="_blank"><span style='font-weight: normal;'>Indigo : For cotton fabric, denim, jeans, Dark Blue Granule form</span></a> </p> <div class="col-xs-6"> <div class="row"> <div class="fobprice"> <strong> FOB Price : </strong> 6 USD / Kgs. </div> <small> <strong> Place of origin : </strong> China </small> </div> </div> <div class="col-xs-6"> <div class="fobprice"> <strong> Min Order : </strong> 1 Kgs. </div> </div> <div class="clear"></div> <p class="discription-txt"> We introduce our self as a pioneer in the field of Indigo Dark Blue. Composition: Phenylethane acid potassium salt reacts to amino sodium...</p> <div class="supplier-txt"> <a href="https://www.fibre2fashion.com/dyes/suppliers?q=7uEym5xeZeTfs4cYkJ+KHQ==" target="_blank"> <strong> Other products from this Supplier <i class="fa fa-angle-right" aria-hidden="true"></i> </strong> </a> </div> <div class="supplier-txt"> </div> <div class="clearfix"></div> </div> <div class="no-desktop"></div> <div class="supplierdetailslisting text-left"> <h5> <small>Shijiazhuang, China</small> </h5> <div class="membericon"> </div> <div class="clear"></div> <div class="alert alert-warning" style="text-align:center"> <a href="https://members.fibre2fashion.com/login?myurl=https%3a%2f%2fwww.fibre2fashion.com%2fdyes%2fdyes-suppliers-s64&utm_source=b2blisting&utm_medium=button&utm_campaign=MemberLogin_2017" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Textlink Clicked&quot;,&quot;F2FEventType&quot;:&quot;Text Link&quot;,&quot;F2FSection&quot;:&quot;Middle&quot;,&quot;F2FType&quot;:&quot;Static&quot;}"><strong>Log in</strong></a> to view more information.<br /><strong> Not a member? <a href="https://members.fibre2fashion.com/signup?myurl=https%3a%2f%2fwww.fibre2fashion.com%2fdyes%2fdyes-suppliers-s64">Register</a> for free</strong> </div> </div> <div class="clear"></div> </div> <div class="bottom-link"> <label class="checkbox-inline"> <input addToCompare="AddToCompare" class="squarebox" compareid="15100940" id="chkAddToCompare" name="chkAddToCompare" onclick="javascript:ManageCompareBasket(this)" type="checkbox" value="true" /><input name="chkAddToCompare" type="hidden" value="false" /> <span data-productcompare="compareproduct" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Icon Clicked&quot;,&quot;F2FEventType&quot;:&quot;Icon Clicked&quot;,&quot;F2FSection&quot;:&quot;Middle&quot;,&quot;F2FType&quot;:&quot;Static&quot;,&quot;F2FProductName&quot;:&quot;Indigo : For cotton fabric, denim, jeans, Dark Blue Granule form&quot;}"> <strong> Add to Compare </strong> </span> <div id="ListCompareProductLoading_15100940" class="HideLoading"></div> </label> <div> <div class="check-btl"> <ul class="fa-ul check-btl"> <li> <i class="fa-li fa fa-plus" data-inquiryicon="InquiryIcon" id="InquiryIcon_15100940"></i> <strong> <a InInquiryBasket="False" InquiryId="15100940" onclick="javascript:ManageInquiryBasket(this);" style="cursor:pointer">Add to Inquiry Basket</a> </strong> <div id="ListInquiryBasketLoading_15100940" class="HideLoadingInquiryBasket"></div> </li> </ul> </div> </div> <div class="contacts"> <img src="https://static.fibre2fashion.com/staticresources/images/Subtract.svg"> <strong> <a class="contactxt" data_f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;CTA Clicked&quot;,&quot;F2FEventType&quot;:&quot;CTA Clicked&quot;,&quot;F2FSection&quot;:&quot;Middle&quot;,&quot;F2FType&quot;:&quot;Static&quot;}" onclick="javascript:ManageSendInquiryForContact(&#39;15100940&#39;,&#39;#sendinquiry&#39;);">Contact</a> </strong> </div> </div> <div class="clear"></div> </div> <div class="cat-listing-box"> <div class="catlistingbx"> <div class="category-img"> <div class="LeadListImage"> <a href="/dyes/indigo-suppliers-1471778" target="_blank"><img alt="For dyeing, Blue Powder" class="img-responsive onscrollloading" data_src="https://static.fibre2fashion.com/MemberResources/LeadResources/3/2014/1/Seller/1471778/Images/1471778_0_201411111027029276803.jpg?tr=w-175,h-175,c-at_max,cm-pad_resize,bg-ffffff" height="143" onerror="NoImage(this,&#39;/dyes/&#39;)" src="https://static.fibre2fashion.com/spacer.gif" title="For dyeing, Blue Powder" width="152" /></a> </div> </div> <div class="supplierdetails"> <p class="blocktitle"> <a href="/dyes/indigo-suppliers-1471778" target="_blank"><span style='font-weight: normal;'>Indigo : For dyeing, Blue Powder</span></a> </p> <div class="col-xs-6"> <div class="row"> <div class="fobprice"> <strong> FOB Price : </strong> 6.5 USD / Kgs. </div> <small> <strong> Place of origin : </strong> China </small> </div> </div> <div class="col-xs-6"> <div class="fobprice"> <strong> Min Order : </strong> 5 Metric Ton </div> </div> <div class="clear"></div> <p class="discription-txt"> Our company excels in the manufacturing of Indigo Blue 94%. </p> <div class="supplier-txt"> </div> <div class="supplier-txt"> </div> <div class="clearfix"></div> </div> <div class="no-desktop"></div> <div class="supplierdetailslisting text-left"> <h5> <small>shanghai, China</small> </h5> <div class="membericon"> </div> <div class="clear"></div> <div class="alert alert-warning" style="text-align:center"> <a href="https://members.fibre2fashion.com/login?myurl=https%3a%2f%2fwww.fibre2fashion.com%2fdyes%2fdyes-suppliers-s64&utm_source=b2blisting&utm_medium=button&utm_campaign=MemberLogin_2017" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Textlink Clicked&quot;,&quot;F2FEventType&quot;:&quot;Text Link&quot;,&quot;F2FSection&quot;:&quot;Middle&quot;,&quot;F2FType&quot;:&quot;Static&quot;}"><strong>Log in</strong></a> to view more information.<br /><strong> Not a member? <a href="https://members.fibre2fashion.com/signup?myurl=https%3a%2f%2fwww.fibre2fashion.com%2fdyes%2fdyes-suppliers-s64">Register</a> for free</strong> </div> </div> <div class="clear"></div> </div> <div class="bottom-link"> <label class="checkbox-inline"> <input addToCompare="AddToCompare" class="squarebox" compareid="1471778" id="chkAddToCompare" name="chkAddToCompare" onclick="javascript:ManageCompareBasket(this)" type="checkbox" value="true" /><input name="chkAddToCompare" type="hidden" value="false" /> <span data-productcompare="compareproduct" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Icon Clicked&quot;,&quot;F2FEventType&quot;:&quot;Icon Clicked&quot;,&quot;F2FSection&quot;:&quot;Middle&quot;,&quot;F2FType&quot;:&quot;Static&quot;,&quot;F2FProductName&quot;:&quot;Indigo : For dyeing, Blue Powder&quot;}"> <strong> Add to Compare </strong> </span> <div id="ListCompareProductLoading_1471778" class="HideLoading"></div> </label> <div> <div class="check-btl"> <ul class="fa-ul check-btl"> <li> <i class="fa-li fa fa-plus" data-inquiryicon="InquiryIcon" id="InquiryIcon_1471778"></i> <strong> <a InInquiryBasket="False" InquiryId="1471778" onclick="javascript:ManageInquiryBasket(this);" style="cursor:pointer">Add to Inquiry Basket</a> </strong> <div id="ListInquiryBasketLoading_1471778" class="HideLoadingInquiryBasket"></div> </li> </ul> </div> </div> <div class="contacts"> <img src="https://static.fibre2fashion.com/staticresources/images/Subtract.svg"> <strong> <a class="contactxt" data_f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;CTA Clicked&quot;,&quot;F2FEventType&quot;:&quot;CTA Clicked&quot;,&quot;F2FSection&quot;:&quot;Middle&quot;,&quot;F2FType&quot;:&quot;Static&quot;}" onclick="javascript:ManageSendInquiryForContact(&#39;1471778&#39;,&#39;#sendinquiry&#39;);">Contact</a> </strong> </div> </div> <div class="clear"></div> </div> <div class="cat-listing-box"> <div class="catlistingbx"> <div class="category-img"> <div class="LeadListImage"> <a href="/dyes/reactive-dyes-suppliers-1476503" target="_blank"><img alt="Textile, Powder" class="img-responsive onscrollloading" data_src="https://static.fibre2fashion.com/MemberResources/LeadResources/3/2014/4/Seller/1476503/Images/1476503_2_201404031142553503071.jpg?tr=w-175,h-175,c-at_max,cm-pad_resize,bg-ffffff" height="143" onerror="NoImage(this,&#39;/dyes/&#39;)" src="https://static.fibre2fashion.com/spacer.gif" title="Textile, Powder" width="152" /></a> </div> </div> <div class="supplierdetails"> <p class="blocktitle"> <a href="/dyes/reactive-dyes-suppliers-1476503" target="_blank"><span style='font-weight: normal;'>Reactive Dyes : Textile, Powder</span></a> </p> <div class="col-xs-6"> <div class="row"> <div class="fobprice"> <strong> FOB Price : </strong> 1000 USD / Kgs. </div> <small> <strong> Place of origin : </strong> India </small> </div> </div> <div class="col-xs-6"> <div class="fobprice"> <strong> Min Order : </strong> 1000 Kgs. </div> </div> <div class="clear"></div> <p class="discription-txt"> We are a professional manufacturer and exporter and our expertise in Reactive Dyes. </p> <div class="supplier-txt"> <a href="https://www.fibre2fashion.com/dyes/suppliers?q=dILacpm8v/2lOaE2vSIxMA==" target="_blank"> <strong> Other products from this Supplier <i class="fa fa-angle-right" aria-hidden="true"></i> </strong> </a> </div> <div class="supplier-txt"> <a href="https://www.fibre2fashion.com/dyes/suppliers?q=dILacpm8v/03RJl5J3XQooB3Op3JX6HQ" target="_blank"> <strong> Similar product from this Supplier <i class="fa fa-angle-right" aria-hidden="true"></i> </strong> </a> </div> <div class="clearfix"></div> </div> <div class="no-desktop"></div> <div class="supplierdetailslisting text-left"> <h5> <small>Ahmedabad, India</small> </h5> <div class="membericon"> </div> <div class="certificate-bubble"> <a class="certificate-icon"> <i class="fa fa-shield" aria-hidden="true"> </i> <span class="tooltiptext tooltiptextsingle"> <strong>Certification</strong> <br> <img src='https://images.fibre2fashion.com/Shared/Certificate/ISO.jpg' alt='ISO' title='ISO' /> </span> <span class="certificate-count">1</span> </a> </div> <div class="clear"></div> <div class="alert alert-warning" style="text-align:center"> <a href="https://members.fibre2fashion.com/login?myurl=https%3a%2f%2fwww.fibre2fashion.com%2fdyes%2fdyes-suppliers-s64&utm_source=b2blisting&utm_medium=button&utm_campaign=MemberLogin_2017" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Textlink Clicked&quot;,&quot;F2FEventType&quot;:&quot;Text Link&quot;,&quot;F2FSection&quot;:&quot;Middle&quot;,&quot;F2FType&quot;:&quot;Static&quot;}"><strong>Log in</strong></a> to view more information.<br /><strong> Not a member? <a href="https://members.fibre2fashion.com/signup?myurl=https%3a%2f%2fwww.fibre2fashion.com%2fdyes%2fdyes-suppliers-s64">Register</a> for free</strong> </div> </div> <div class="clear"></div> </div> <div class="bottom-link"> <label class="checkbox-inline"> <input addToCompare="AddToCompare" class="squarebox" compareid="1476503" id="chkAddToCompare" name="chkAddToCompare" onclick="javascript:ManageCompareBasket(this)" type="checkbox" value="true" /><input name="chkAddToCompare" type="hidden" value="false" /> <span data-productcompare="compareproduct" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Icon Clicked&quot;,&quot;F2FEventType&quot;:&quot;Icon Clicked&quot;,&quot;F2FSection&quot;:&quot;Middle&quot;,&quot;F2FType&quot;:&quot;Static&quot;,&quot;F2FProductName&quot;:&quot;Reactive Dyes : Textile, Powder&quot;}"> <strong> Add to Compare </strong> </span> <div id="ListCompareProductLoading_1476503" class="HideLoading"></div> </label> <div> <div class="check-btl"> <ul class="fa-ul check-btl"> <li> <i class="fa-li fa fa-plus" data-inquiryicon="InquiryIcon" id="InquiryIcon_1476503"></i> <strong> <a InInquiryBasket="False" InquiryId="1476503" onclick="javascript:ManageInquiryBasket(this);" style="cursor:pointer">Add to Inquiry Basket</a> </strong> <div id="ListInquiryBasketLoading_1476503" class="HideLoadingInquiryBasket"></div> </li> </ul> </div> </div> <div class="contacts"> <img src="https://static.fibre2fashion.com/staticresources/images/Subtract.svg"> <strong> <a class="contactxt" data_f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;CTA Clicked&quot;,&quot;F2FEventType&quot;:&quot;CTA Clicked&quot;,&quot;F2FSection&quot;:&quot;Middle&quot;,&quot;F2FType&quot;:&quot;Static&quot;}" onclick="javascript:ManageSendInquiryForContact(&#39;1476503&#39;,&#39;#sendinquiry&#39;);">Contact</a> </strong> </div> </div> <div class="clear"></div> </div> <div class="col-md-12 text-right"><ul class="pagination pagination-sm"><li class="active"><a>1</a></li><li><a href="https://www.fibre2fashion.com/dyes/dyes-suppliers-s64?Page=2">2</a></li><li><a href="https://www.fibre2fashion.com/dyes/dyes-suppliers-s64?Page=3">3</a></li><li><a href="https://www.fibre2fashion.com/dyes/dyes-suppliers-s64?Page=4">4</a></li><li><a href="https://www.fibre2fashion.com/dyes/dyes-suppliers-s64?Page=5">5</a></li><li id="pagerNext" title="Next"><a href="https://www.fibre2fashion.com/dyes/dyes-suppliers-s64?Page=2">Next</a></li><li id="pagerLast" title="Last"><a href="https://www.fibre2fashion.com/dyes/dyes-suppliers-s64?Page=60">Last</a></li><input id="pagerTotalPages" type="hidden" value="60"></input></ul></div> </div> </div> </div> </div> <div style="display:none;"> <div id="f2fcertificatedetails"> </div> </div> <input type="hidden" id="SearchSubCategoryName" value="Dyes" /> <script> $(document).ready(function () { $("#ddlSearchLeadType").val('Suppliers'); $("#ddlSearchSubCategory").val('64'); $("#hdnSearchSubCategoryName").val($('#SearchSubCategoryName').val()); if ('0' != 0) { $("#ddlSearchProduct").val('0'); } //$("#SearchBasicDN").css("display", "none"); //$(".searchproductname").css("width", "100%"); //setInterval(function () { // $(".n-vis .btn-chat .fa.fa-comments span").text(' Leave Message '); //}, 1000); //setInterval(function () { // $(".vis .btn-chat .fa.fa-comments span").text(' Chat Now '); //}, 1000); //$('[data-cert]').click(function () { // var tmp = $(this).attr("data-cert"); // $(".logocontainer").not($('#' + tmp)).hide(); // $('#' + tmp).slideToggle("fast"); //}); }); </script> </div> </div> </div> </div> <div class="clear"></div> <div class="clearfix"></div> </div> </div> <div class="clearfix hidden-lg hidden-md"></div> <div class="col-lg-4 col-md-4"> <div class=""> <h4 class="section-title" id="h1Recommanded"><strong>Our Clientele</strong></h4> <div class="white-box estimeclients load-wraper not-loaded"> <script type="text/javascript" src="https://static.fibre2fashion.com/staticresources/js/jquery/plugins/slick-1-5-8.min.js"></script> <div class="row client-horizontal1 load-element"> <div> <div class="card col-sm-6 col-md-6"> <div class="card-content"><img src="https://static.fibre2fashion.com/Esteemed-clients/LOGO120x60/TUYAP-IHTISAS-FUARLARI-A.S..jpg?tr=w-120,h-60,c-at_max,cm-pad_resize,bg-ffffff" width="120" height="60" alt="T&#220;YAP IHTISAS FUARLARI A.S." title="T&#220;YAP IHTISAS FUARLARI A.S." class="onscrollloading"></div> </div> <div class="card col-sm-6 col-md-6"> <div class="card-content"><img src="https://static.fibre2fashion.com/Esteemed-clients/LOGO120x60/Tradewind-International-Servicing.jpg?tr=w-120,h-60,c-at_max,cm-pad_resize,bg-ffffff" width="120" height="60" alt="Tradewind International Servicing" title="Tradewind International Servicing" class="onscrollloading"></div> </div> </div> <div> <div class="card col-sm-6 col-md-6"> <div class="card-content"><img src="https://static.fibre2fashion.com/Esteemed-clients/LOGO120x60/Thermore-(Far-East)-Ltd..jpg?tr=w-120,h-60,c-at_max,cm-pad_resize,bg-ffffff" width="120" height="60" alt="Thermore (Far East) Ltd." title="Thermore (Far East) Ltd." class="onscrollloading"></div> </div> <div class="card col-sm-6 col-md-6"> <div class="card-content"><img src="https://static.fibre2fashion.com/Esteemed-clients/LOGO120x60/The-LYCRA-Company-Singapore--Pte.-Ltd.jpg?tr=w-120,h-60,c-at_max,cm-pad_resize,bg-ffffff" width="120" height="60" alt="The LYCRA Company Singapore Pte. Ltd" title="The LYCRA Company Singapore Pte. Ltd" class="onscrollloading"></div> </div> </div> <div> <div class="card col-sm-6 col-md-6"> <div class="card-content"><img src="https://static.fibre2fashion.com/Esteemed-clients/LOGO120x60/Thai-Trade-Center.jpg?tr=w-120,h-60,c-at_max,cm-pad_resize,bg-ffffff" width="120" height="60" alt="Thai Trade Center" title="Thai Trade Center" class="onscrollloading"></div> </div> <div class="card col-sm-6 col-md-6"> <div class="card-content"><img src="https://static.fibre2fashion.com/Esteemed-clients/LOGO120x60/Thai-Acrylic-Fibre-Company-Limited.jpg?tr=w-120,h-60,c-at_max,cm-pad_resize,bg-ffffff" width="120" height="60" alt="Thai Acrylic Fibre Company Limited" title="Thai Acrylic Fibre Company Limited" class="onscrollloading"></div> </div> </div> <div> <div class="card col-sm-6 col-md-6"> <div class="card-content"><img src="https://static.fibre2fashion.com/Esteemed-clients/LOGO120x60/TEXVALLEY-MARKET-LIMITED.jpg?tr=w-120,h-60,c-at_max,cm-pad_resize,bg-ffffff" width="120" height="60" alt="TEXVALLEY MARKET LIMITED" title="TEXVALLEY MARKET LIMITED" class="onscrollloading"></div> </div> <div class="card col-sm-6 col-md-6"> <div class="card-content"><img src="https://static.fibre2fashion.com/Esteemed-clients/LOGO120x60/TESTEX-AG,-Swiss-Textile-Testing-Institute.jpg?tr=w-120,h-60,c-at_max,cm-pad_resize,bg-ffffff" width="120" height="60" alt="TESTEX AG, Swiss Textile Testing Institute" title="TESTEX AG, Swiss Textile Testing Institute" class="onscrollloading"></div> </div> </div> <div> <div class="card col-sm-6 col-md-6"> <div class="card-content"><img src="https://static.fibre2fashion.com/Esteemed-clients/LOGO120x60/Telangana-State-Industrial-Infrastructure-Corporation-Limited-(TSllC-Ltd).jpg?tr=w-120,h-60,c-at_max,cm-pad_resize,bg-ffffff" width="120" height="60" alt="Telangana State Industrial Infrastructure Corporation Limited (TSllC Ltd)" title="Telangana State Industrial Infrastructure Corporation Limited (TSllC Ltd)" class="onscrollloading"></div> </div> <div class="card col-sm-6 col-md-6"> <div class="card-content"><img src="https://static.fibre2fashion.com/Esteemed-clients/LOGO120x60/Taiwan-Textile-Federation-(TTF).jpg?tr=w-120,h-60,c-at_max,cm-pad_resize,bg-ffffff" width="120" height="60" alt="Taiwan Textile Federation (TTF)" title="Taiwan Textile Federation (TTF)" class="onscrollloading"></div> </div> </div> <div> <div class="card col-sm-6 col-md-6"> <div class="card-content"><img src="https://static.fibre2fashion.com/Esteemed-clients/LOGO120x60/SUZHOU-TUE-HI-TECH-NONWOVEN-MACHINERY-CO.,LTD.jpg?tr=w-120,h-60,c-at_max,cm-pad_resize,bg-ffffff" width="120" height="60" alt="SUZHOU TUE HI-TECH NONWOVEN MACHINERY CO.,LTD" title="SUZHOU TUE HI-TECH NONWOVEN MACHINERY CO.,LTD" class="onscrollloading"></div> </div> <div class="card col-sm-6 col-md-6"> <div class="card-content"><img src="https://static.fibre2fashion.com/Esteemed-clients/LOGO120x60/Stahl-Holdings-B.V.,.jpg?tr=w-120,h-60,c-at_max,cm-pad_resize,bg-ffffff" width="120" height="60" alt="Stahl Holdings B.V.," title="Stahl Holdings B.V.," class="onscrollloading"></div> </div> </div> <div> <div class="card col-sm-6 col-md-6"> <div class="card-content"><img src="https://static.fibre2fashion.com/Esteemed-clients/LOGO120x60/Shima-Seiki-Mfg.-Ltd..jpg?tr=w-120,h-60,c-at_max,cm-pad_resize,bg-ffffff" width="120" height="60" alt="Shima Seiki Mfg. Ltd." title="Shima Seiki Mfg. Ltd." class="onscrollloading"></div> </div> <div class="card col-sm-6 col-md-6"> <div class="card-content"><img src="https://static.fibre2fashion.com/Esteemed-clients/LOGO120x60/Shanghai--Aige-Exhibition-Service-Co.,-Ltd.jpg?tr=w-120,h-60,c-at_max,cm-pad_resize,bg-ffffff" width="120" height="60" alt="Shanghai Aige Exhibition Service Co., Ltd" title="Shanghai Aige Exhibition Service Co., Ltd" class="onscrollloading"></div> </div> </div> <div> <div class="card col-sm-6 col-md-6"> <div class="card-content"><img src="https://static.fibre2fashion.com/Esteemed-clients/LOGO120x60/Savio-Macchine-Tessili-S.P.A..jpg?tr=w-120,h-60,c-at_max,cm-pad_resize,bg-ffffff" width="120" height="60" alt="Savio Macchine Tessili S.P.A. " title="Savio Macchine Tessili S.P.A. " class="onscrollloading"></div> </div> <div class="card col-sm-6 col-md-6"> <div class="card-content"><img src="https://static.fibre2fashion.com/Esteemed-clients/LOGO120x60/Saurer-Textile-Solutions-Pvt.-Ltd..jpg?tr=w-120,h-60,c-at_max,cm-pad_resize,bg-ffffff" width="120" height="60" alt="Saurer Textile Solutions Pvt. Ltd." title="Saurer Textile Solutions Pvt. Ltd." class="onscrollloading"></div> </div> </div> <div> <div class="card col-sm-6 col-md-6"> <div class="card-content"><img src="https://static.fibre2fashion.com/Esteemed-clients/LOGO120x60/Rieter-India-Private-Limited.jpg?tr=w-120,h-60,c-at_max,cm-pad_resize,bg-ffffff" width="120" height="60" alt="Rieter India Private Limited" title="Rieter India Private Limited" class="onscrollloading"></div> </div> <div class="card col-sm-6 col-md-6"> <div class="card-content"><img src="https://static.fibre2fashion.com/Esteemed-clients/LOGO120x60/Recron-Polyester-from-Reliance-Industries-Limited.jpg?tr=w-120,h-60,c-at_max,cm-pad_resize,bg-ffffff" width="120" height="60" alt="Recron Polyester from Reliance Industries Limited" title="Recron Polyester from Reliance Industries Limited" class="onscrollloading"></div> </div> </div> </div> <input type="hidden" id="pagenumber" value="1" /> <input type="hidden" id="pagesize" /> <script> while (true) { if (!$('.load-element [src$="spacer.gif"]').length) { slickcommon(); setTimeout(function () { $('.load-wraper').removeClass("not-loaded"); }, 2500); break; } } function slickcommon() { //debugger; var Verslickopts = { rows: 3, dots: false, infinite: true, autoplay: true, vertical: true, verticalSwiping: true, slidesToShow: 1, slidesToScroll: 1, lazyLoad: 'ondemand', responsive: [ { breakpoint: 992, settings: { slidesToShow: 2, slidesToScroll: 2, } }, { breakpoint: 776, settings: { slidesToShow: 1, rows: 1 // This doesn't appear to work in responsive (Mac/Chrome) } }] }; $('.client-horizontal1').slick(Verslickopts); } </script> <script type="text/javascript"> let tmpslidesToShow = 6; let tmpslidesToScroll = 6; var pagesize=18; $('.client-horizontal1').on('beforeChange', function (event, slick, direction) { var page = $('#pagenumber').val(); page = parseInt(page) + 1; $('#pagenumber').val(page); //if (slick.currentSlide + tmpslidesToShow + tmpslidesToScroll >= slick.slideCount) { $.ajax({ type: 'POST', url: '/dyes/EmbeddedViews/GetClientsBySection', data: { PageSize: pagesize,page:$('#pagenumber').val(),ViewType : "Verticle" }, success: function (result) { let rowlength = result.length / 6; for (let i = 0; i < rowlength; i++) { let slideHTML = "<div>"; let colHTML = ""; for (let j = i*3; j < (i*3)+3; j++) { colHTML += "<div>"; for (let k = j*2; k < (j*2)+2; k++) { //console.log("["+i+","+j+","+k+"]"); if(result[k]){ var Name = result[k].Name; var Country = result[k].Country; var Img = 'https://static.fibre2fashion.com/Esteemed-clients/LOGO120x60/'+ result[k].Img; colHTML += '<div class="card col-sm-6 col-md-6"><div class="card-content"><img src="'+Img+'" alt="'+Name+'" title="'+Name+'" class="onscrollloading"></div></div>'; } } colHTML += "</div>" } slideHTML += colHTML+"</div>"; $('.client-horizontal1').slick('slickAdd', slideHTML); $('.client-horizontal1').slick('setPosition'); } }, error: function(data) { console.log(data); } }); //} }); </script> <style> .client-horizontal1 .slick-slide { height: 231px !important; overflow: hidden; } .client-horizontal1 .card { margin: 0px !important; padding-bottom:10px; padding-top:10px; } .client-horizontal1 .slick-slide img { height: 57px !important; width: auto !important; max-width: none !important; } .client-horizontal1 .slick-slide > div, .client-horizontal1 .card { display: flex; align-items: center; justify-content: center; } </style> </div> </div> <div class="verticalbanners margintop20"> <div id="R1"> <ul> <li title="TESTEX"> <a target="_blank" class="gaclicktracking " title="TESTEX" href="https://adsclick.fibre2fashion.com/app/clk/?q=07lrR3Iex48lWl+gszBH7x8K0JeON8Mqlw8ipGGIbh7S4/J+X7DaTMbFQE93Yfr88HN8IqXhOTGK79GiRL8t8FzfS0SkiRtV0NIeZKUMLv5al2iMJXgv2bvATjOzZeb0z+7gAJ7lps8Iw9YSLoCVBl0uPkTY54K7cwY0zd/D2FncpaUaDn3sLYdl/l1y9hKFfLPdvEPJxRIJ5729M1mcZQ8OVneNfyrQMTdjIqIWbPO+qnivYEStc0u+F7pmPrTKvpxgY+BLGWfIjaKSSMd2MezchdvQhulaeH2ZXlTs1RPLrL+lnOqzQhpotf72E2SBA7NmVMqV9dnH/psV/XKpO+whwhoTgsbrTqpT6UEaUG3U00LTgUF59eA1n+cbmhA8PLULsmlRb+oI0ObViHnzH5kCt/15y0jNGnTFbcAlAyYOxPiSIT0mwbytX7HaYdQFnVYy/afMthb+9Qae49andx/jO2GZMy8DlgeS4C0SWoWwrG90/V3pMQ==" placementid="14165" adsid="2575" displayorder="1" pcstartdate="30/09/2024" pcenddate="30/09/2024" platform="Desktop" channel="B2B" region="List" zone="R1" campaigncode="TESTEX AG_ Swiss Textile Testing Institute - 2024" companyname="TESTEX AG, Swiss Textile Testing Institute" uid="800632" country="Switzerland" zonedesc="Right side block 1"> <img height="1" width="1" style='display: block; height:1px !important; width:1px !important;' src="https://adsclick.fibre2fashion.com/app/imp/?q=07lrR3Iex48lWl+gszBH7x8K0JeON8Mqlw8ipGGIbh7S4/J+X7DaTMbFQE93Yfr88HN8IqXhOTGK79GiRL8t8FzfS0SkiRtV0NIeZKUMLv5al2iMJXgv2bvATjOzZeb0z+7gAJ7lps8Iw9YSLoCVBl0uPkTY54K7cwY0zd/D2FncpaUaDn3sLYdl/l1y9hKFfLPdvEPJxRIJ5729M1mcZQ8OVneNfyrQMTdjIqIWbPO+qnivYEStc0u+F7pmPrTKvpxgY+BLGWfIjaKSSMd2MezchdvQhulaeH2ZXlTs1RPLrL+lnOqzQhpotf72E2SBA7NmVMqV9dnH/psV/XKpO+whwhoTgsbrTqpT6UEaUG3U00LTgUF59eA1n+cbmhA8PLULsmlRb+oI0ObViHnzH5kCt/15y0jNGnTFbcAlAyYOxPiSIT0mwbytX7HaYdQFnVYy/afMthb+9Qae49andx/jO2GZMy8DlgeS4C0SWoWwrG90/V3pMQ==" class="gaTracking" pcstartdate="30/09/2024" pcenddate="30/09/2024" platform="Desktop" channel="B2B" region="List" zone="R1" alt="Spacer Tracking" /> <img src="https://static.fibre2fashion.com/staticresources/advertisementresources/ads/2575/TESTEX_AD_Online_couple_640x400_EN20240930160908.gif" alt="TESTEX" class="img-responsive " /> </a> </li> <li title="Reliance Industries"> <a target="_blank" class="gaclicktracking " title="Reliance Industries" href="https://adsclick.fibre2fashion.com/app/clk/?q=07lrR3Iex48lWl+gszBH7x8K0JeON8Mq/4nlXvxvvdZUjQieaSf7SuRgOMHZcnVLpxl4JQ7jO1uQ+YXXScuzPCp969w15VQB+B1+I/s3UCCPplU53IivpKd9Y6n1iJmpQDHnWTagqzlvtKGbY7Y7F80BBMCj2stlV8BSV6P0Ac92Zo+wtFh1N/6/FWpAI9veJlOTgcBb2JO4/dh/gbphwfF6A1+eOeCTRfXU6y8Pw1pinEgHfyZo04rrXmTB/E0pynvv/gj6XqKrzLsxseCoEFMl/fbApd640Gs0uJ8CNXVA6mVTETJyVQaKnsmBUiQBmHkN9H8BfMGfgMcQ2fu66Pl56TnYx2TN15d3JDlNX9zWQKEbg9ijudY8w+qbaZR6BzgJjDYYGWP0ncR14mlp9mnC2h0OP3QW/29WvbYsKAUi/Yqj0XSQfY2gCXwIsxldg9nGGFY/bMA=" placementid="14166" adsid="2481" displayorder="2" pcstartdate="30/09/2024" pcenddate="30/09/2024" platform="Desktop" channel="B2B" region="List" zone="R1" campaigncode="Reliance Industries Limited - 2024" companyname="Reliance Industries Limited" uid="592344" country="India" zonedesc="Right side block 1"> <img height="1" width="1" style='display: block; height:1px !important; width:1px !important;' src="https://adsclick.fibre2fashion.com/app/imp/?q=07lrR3Iex48lWl+gszBH7x8K0JeON8Mq/4nlXvxvvdZUjQieaSf7SuRgOMHZcnVLpxl4JQ7jO1uQ+YXXScuzPCp969w15VQB+B1+I/s3UCCPplU53IivpKd9Y6n1iJmpQDHnWTagqzlvtKGbY7Y7F80BBMCj2stlV8BSV6P0Ac92Zo+wtFh1N/6/FWpAI9veJlOTgcBb2JO4/dh/gbphwfF6A1+eOeCTRfXU6y8Pw1pinEgHfyZo04rrXmTB/E0pynvv/gj6XqKrzLsxseCoEFMl/fbApd640Gs0uJ8CNXVA6mVTETJyVQaKnsmBUiQBmHkN9H8BfMGfgMcQ2fu66Pl56TnYx2TN15d3JDlNX9zWQKEbg9ijudY8w+qbaZR6BzgJjDYYGWP0ncR14mlp9mnC2h0OP3QW/29WvbYsKAUi/Yqj0XSQfY2gCXwIsxldg9nGGFY/bMA=" class="gaTracking" pcstartdate="30/09/2024" pcenddate="30/09/2024" platform="Desktop" channel="B2B" region="List" zone="R1" alt="Spacer Tracking" /> <img src="https://static.fibre2fashion.com/staticresources/advertisementresources/ads/2481/relience-new640x40020240930160953.jpg" alt="Reliance Industries" class="img-responsive " /> </a> </li> <li title="Kern-Liebers"> <a target="_blank" class="gaclicktracking " title="Kern-Liebers" href="https://adsclick.fibre2fashion.com/app/clk/?q=07lrR3Iex48lWl+gszBH7x8K0JeON8MqTsBf0UvYNjb8KKFwrr7UGpZfSuTRjD9kEXeSuYfC1M2KLm5KGQFea2/N3cBg/Bz40714jaMEP9EQw+0cJ30IvjQhO0jdmwoYYpPzC5de6EEYRzIOo2/FMZTXFmDUc/6IkuLowzyeGcM0LRSbly8YitzTUnQyTfkAckxQfrX26b0DOVCCtwyKvM3j65ZKizAqB6GBXSapggDsGTyjq5CSawSCQ3A6Jreh2IcWnajlhJ6dcm6ypemN666/m0/fUaNNuGVsDU+XYdszAZBHyIhn2cB4kgjDRSIq9V8j/8fuQAm6T/DzUhI+JB7W5+0dTwpxf6Fq40OrN2ST04OA+kiTun7a3E2aabloL59gOnmHhsg2A3PnZa5h6urPTBP8GRXR1IcR49w5tMHsKD56RtDvynIGvb3Od38Zk3gcUuPtm6CMaWYcEbav4wbnaenC92Du3TJUspZ/u0T6vC8DdduMqvLwsIsfSOxo" placementid="13685" adsid="2507" displayorder="3" pcstartdate="19/07/2024" pcenddate="19/07/2024" platform="Desktop" channel="B2B" region="List" zone="R1" campaigncode="KERN-LIEBERS KNITTING PARTS GMBH - 2024" companyname="KERN-LIEBERS KNITTING PARTS GMBH" uid="795030" country="Germany" zonedesc="Right side block 1"> <img height="1" width="1" style='display: block; height:1px !important; width:1px !important;' src="https://adsclick.fibre2fashion.com/app/imp/?q=07lrR3Iex48lWl+gszBH7x8K0JeON8MqTsBf0UvYNjb8KKFwrr7UGpZfSuTRjD9kEXeSuYfC1M2KLm5KGQFea2/N3cBg/Bz40714jaMEP9EQw+0cJ30IvjQhO0jdmwoYYpPzC5de6EEYRzIOo2/FMZTXFmDUc/6IkuLowzyeGcM0LRSbly8YitzTUnQyTfkAckxQfrX26b0DOVCCtwyKvM3j65ZKizAqB6GBXSapggDsGTyjq5CSawSCQ3A6Jreh2IcWnajlhJ6dcm6ypemN666/m0/fUaNNuGVsDU+XYdszAZBHyIhn2cB4kgjDRSIq9V8j/8fuQAm6T/DzUhI+JB7W5+0dTwpxf6Fq40OrN2ST04OA+kiTun7a3E2aabloL59gOnmHhsg2A3PnZa5h6urPTBP8GRXR1IcR49w5tMHsKD56RtDvynIGvb3Od38Zk3gcUuPtm6CMaWYcEbav4wbnaenC92Du3TJUspZ/u0T6vC8DdduMqvLwsIsfSOxo" class="gaTracking" pcstartdate="19/07/2024" pcenddate="19/07/2024" platform="Desktop" channel="B2B" region="List" zone="R1" alt="Spacer Tracking" /> <img src="https://static.fibre2fashion.com/staticresources/advertisementresources/ads/2507/640x400px20240719155147.jpg" alt="Kern-Liebers" class="img-responsive " /> </a> </li> <li title="IFF Fairs"> <a target="_blank" class="gaclicktracking " title="IFF Fairs" href="https://adsclick.fibre2fashion.com/app/clk/?q=07lrR3Iex48lWl+gszBH7x8K0JeON8MqEQQbeUUhLFufk7gMwCa+V6/mAPQJC/GfAqHR1gMFNg0RRfgGZgYCuDJ1TBLHrQh4UJqgY6Int5TSY8bMEJfTeezgFcmB65DjfO6GcrQRVOn7CWI8ptXoRlexe7JZoVgdu1kmhENVavpM5CpxP6BdpDywQu6EcaiKxmac9Dy6H1ms8pzZSUKkJX8KKQGvkIDc4ba5kDbxraKcFicFXJ2o+kHogM+qI28emnjHojYnIEmXBrvydOYvoZivsdPacr1lBkz4yVGaB/ENaIY0P2vz/ZxvUJ698mWBz4H1JpqAB8CjMV1QIlacF1qSOuJ6vsuPN3qbf+WPX6FJHSDJONpL/ckQwr84+Tpj8di5CPqdWS8KxzNy11Ee/6oZS3enB2Z3Dtjgt/vB9MlnlYFaTaiCmjmsdLj/OkKpWIUmyV4PFUFSCQ/UWZ21BAtHZssOL3ABBWAdTosbSFQ=" placementid="14307" adsid="2593" displayorder="4" pcstartdate="17/10/2024" pcenddate="17/10/2024" platform="Desktop" channel="B2B" region="List" zone="R1" campaigncode="International Fur Federation - 24-25" companyname="International Fur Federation" uid="903638" country="United Kingdom" zonedesc="Right side block 1"> <img height="1" width="1" style='display: block; height:1px !important; width:1px !important;' src="https://adsclick.fibre2fashion.com/app/imp/?q=07lrR3Iex48lWl+gszBH7x8K0JeON8MqEQQbeUUhLFufk7gMwCa+V6/mAPQJC/GfAqHR1gMFNg0RRfgGZgYCuDJ1TBLHrQh4UJqgY6Int5TSY8bMEJfTeezgFcmB65DjfO6GcrQRVOn7CWI8ptXoRlexe7JZoVgdu1kmhENVavpM5CpxP6BdpDywQu6EcaiKxmac9Dy6H1ms8pzZSUKkJX8KKQGvkIDc4ba5kDbxraKcFicFXJ2o+kHogM+qI28emnjHojYnIEmXBrvydOYvoZivsdPacr1lBkz4yVGaB/ENaIY0P2vz/ZxvUJ698mWBz4H1JpqAB8CjMV1QIlacF1qSOuJ6vsuPN3qbf+WPX6FJHSDJONpL/ckQwr84+Tpj8di5CPqdWS8KxzNy11Ee/6oZS3enB2Z3Dtjgt/vB9MlnlYFaTaiCmjmsdLj/OkKpWIUmyV4PFUFSCQ/UWZ21BAtHZssOL3ABBWAdTosbSFQ=" class="gaTracking" pcstartdate="17/10/2024" pcenddate="17/10/2024" platform="Desktop" channel="B2B" region="List" zone="R1" alt="Spacer Tracking" /> <img src="https://static.fibre2fashion.com/staticresources/advertisementresources/ads/2593/IFF Fair 640x400 520241017171414.png" alt="IFF Fairs" class="img-responsive " /> </a> </li> <li title="TEXWORLD NYC"> <a target="_blank" class="gaclicktracking " title="TEXWORLD NYC" href="https://adsclick.fibre2fashion.com/app/clk/?q=07lrR3Iex48lWl+gszBH7x8K0JeON8MqdvA3kOGpXB3Err8hD/Aq2IUjtRS/VdQ88YMX0f2gs4TRXJjwdHsK2iXzYY8lK+FT3/35DncwL0Ta9CMX8Jnd6vQDKIGcsWXT8JxG/CtxzkpMKhJeO0/009RxVxsGQPvERUl5G7Le2cSgzmzBxdMBYmHc1DqufJrN+bX+r7bTr7b2KyIvLU59dRSpA31+tXgLLWgghR4ljhcM3r2npT8hTlPCru6N+zrAGulEsim21PoerOdoLd7UDia+vg8MC0HicvVg9zIWL8fOOoGKprkiExWkitTNKnA7Bmn8bauLuRJ1kYYaXFA3y+CgICnSI9cSr0ln6lRdkdjCQE1NYp1mNkhr23NKr+Hvq4JLNnjykGbYvKO3L+GioSnfgwbByezyrj+r2dz44ZC4YtMXf6L28q2nIEH/NUSFP85P4gr0IiYpF7vI//dFMcrkqqabzXS6QN1szQqjp4MaKRKiiPQhZpOo46+NSKArQj5wdV6WfZeD/+hlCGHMYg==" placementid="14386" adsid="2600" displayorder="5" pcstartdate="28/10/2024" pcenddate="28/10/2024" platform="Desktop" channel="B2B" region="List" zone="R1" campaigncode="Messe Frankfurt Texworld NYC - 24" companyname="Messe Frankfurt Inc" uid="873012" country="United States Of America" zonedesc="Right side block 1"> <img height="1" width="1" style='display: block; height:1px !important; width:1px !important;' src="https://adsclick.fibre2fashion.com/app/imp/?q=07lrR3Iex48lWl+gszBH7x8K0JeON8MqdvA3kOGpXB3Err8hD/Aq2IUjtRS/VdQ88YMX0f2gs4TRXJjwdHsK2iXzYY8lK+FT3/35DncwL0Ta9CMX8Jnd6vQDKIGcsWXT8JxG/CtxzkpMKhJeO0/009RxVxsGQPvERUl5G7Le2cSgzmzBxdMBYmHc1DqufJrN+bX+r7bTr7b2KyIvLU59dRSpA31+tXgLLWgghR4ljhcM3r2npT8hTlPCru6N+zrAGulEsim21PoerOdoLd7UDia+vg8MC0HicvVg9zIWL8fOOoGKprkiExWkitTNKnA7Bmn8bauLuRJ1kYYaXFA3y+CgICnSI9cSr0ln6lRdkdjCQE1NYp1mNkhr23NKr+Hvq4JLNnjykGbYvKO3L+GioSnfgwbByezyrj+r2dz44ZC4YtMXf6L28q2nIEH/NUSFP85P4gr0IiYpF7vI//dFMcrkqqabzXS6QN1szQqjp4MaKRKiiPQhZpOo46+NSKArQj5wdV6WfZeD/+hlCGHMYg==" class="gaTracking" pcstartdate="28/10/2024" pcenddate="28/10/2024" platform="Desktop" channel="B2B" region="List" zone="R1" alt="Spacer Tracking" /> <img src="https://static.fibre2fashion.com/staticresources/advertisementresources/ads/2600/Texworld banner 640x400 (1)20241028151628.png" alt="TEXWORLD NYC" class="img-responsive " /> </a> </li> </ul> </div> </div> </div> <!--<div class="col-lg-4 col-md-4" style="margin-top:20px;"> <script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-2544442066296264" crossorigin="anonymous"></script>--> <!-- B2B_Mobile_Listing-Pages_Display-Square-Ad --> <!--<ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-2544442066296264" data-ad-slot="6514233035" data-ad-format="auto" data-full-width-responsive="true"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div>--> <div style="display:none;"> <div id="sendInquiryPopup"> </div> </div> <div class="col-lg-4 col-md-4 listadvt"> <div class="row"> <div class="clearfix"></div> <div class="col-lg-12 topsourcing-destinations"> <h4 class="section-title" id="h1Recommanded"><strong>Top Sourcing Destinations</strong></h4> <div class="white-box"> <div class="clearfix"></div> <ul class="text-left top-sourcing"> <li> <a href="https://www.fibre2fashion.com/dyes/india-suppliers" target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Textlink Clicked&quot;,&quot;F2FEventType&quot;:&quot;Text Link&quot;,&quot;F2FBlockName&quot;:&quot;Top Sourcing Destinations&quot;,&quot;F2FSection&quot;:&quot;Middle&quot;,&quot;F2FType&quot;:&quot;Static&quot;,&quot;F2FText&quot;:&quot;India&quot;}"> <img src="https://static.fibre2fashion.com/country/india.jpg" title="India" alt="India" onerror='NoImage(this,"/dyes/");'> <span class="countryname">India</span> </a> </li> <li> <a href="https://www.fibre2fashion.com/dyes/china-suppliers" target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Textlink Clicked&quot;,&quot;F2FEventType&quot;:&quot;Text Link&quot;,&quot;F2FBlockName&quot;:&quot;Top Sourcing Destinations&quot;,&quot;F2FSection&quot;:&quot;Middle&quot;,&quot;F2FType&quot;:&quot;Static&quot;,&quot;F2FText&quot;:&quot;China&quot;}"> <img src="https://static.fibre2fashion.com/country/china.jpg" title="China" alt="China" onerror='NoImage(this,"/dyes/");'> <span class="countryname">China</span> </a> </li> <li> <a href="https://www.fibre2fashion.com/dyes/turkey-suppliers" target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Textlink Clicked&quot;,&quot;F2FEventType&quot;:&quot;Text Link&quot;,&quot;F2FBlockName&quot;:&quot;Top Sourcing Destinations&quot;,&quot;F2FSection&quot;:&quot;Middle&quot;,&quot;F2FType&quot;:&quot;Static&quot;,&quot;F2FText&quot;:&quot;Turkey&quot;}"> <img src="https://static.fibre2fashion.com/country/turkey.jpg" title="Turkey" alt="Turkey" onerror='NoImage(this,"/dyes/");'> <span class="countryname">Turkey</span> </a> </li> <li> <a href="https://www.fibre2fashion.com/dyes/korea-suppliers" target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Textlink Clicked&quot;,&quot;F2FEventType&quot;:&quot;Text Link&quot;,&quot;F2FBlockName&quot;:&quot;Top Sourcing Destinations&quot;,&quot;F2FSection&quot;:&quot;Middle&quot;,&quot;F2FType&quot;:&quot;Static&quot;,&quot;F2FText&quot;:&quot;Korea&quot;}"> <img src="https://static.fibre2fashion.com/country/korea.jpg" title="Korea" alt="Korea" onerror='NoImage(this,"/dyes/");'> <span class="countryname">Korea</span> </a> </li> <li> <a href="https://www.fibre2fashion.com/dyes/bangladesh-suppliers" target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Textlink Clicked&quot;,&quot;F2FEventType&quot;:&quot;Text Link&quot;,&quot;F2FBlockName&quot;:&quot;Top Sourcing Destinations&quot;,&quot;F2FSection&quot;:&quot;Middle&quot;,&quot;F2FType&quot;:&quot;Static&quot;,&quot;F2FText&quot;:&quot;Bangladesh&quot;}"> <img src="https://static.fibre2fashion.com/country/bangladesh.jpg" title="Bangladesh" alt="Bangladesh" onerror='NoImage(this,"/dyes/");'> <span class="countryname">Bangladesh</span> </a> </li> <li> <a href="https://www.fibre2fashion.com/dyes/taiwan-suppliers" target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Textlink Clicked&quot;,&quot;F2FEventType&quot;:&quot;Text Link&quot;,&quot;F2FBlockName&quot;:&quot;Top Sourcing Destinations&quot;,&quot;F2FSection&quot;:&quot;Middle&quot;,&quot;F2FType&quot;:&quot;Static&quot;,&quot;F2FText&quot;:&quot;Taiwan&quot;}"> <img src="https://static.fibre2fashion.com/country/taiwan.jpg" title="Taiwan" alt="Taiwan" onerror='NoImage(this,"/dyes/");'> <span class="countryname">Taiwan</span> </a> </li> <li> <a href="https://www.fibre2fashion.com/dyes/united-kingdom-suppliers" target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Textlink Clicked&quot;,&quot;F2FEventType&quot;:&quot;Text Link&quot;,&quot;F2FBlockName&quot;:&quot;Top Sourcing Destinations&quot;,&quot;F2FSection&quot;:&quot;Middle&quot;,&quot;F2FType&quot;:&quot;Static&quot;,&quot;F2FText&quot;:&quot;United Kingdom&quot;}"> <img src="https://static.fibre2fashion.com/country/united-kingdom.jpg" title="United Kingdom" alt="United Kingdom" onerror='NoImage(this,"/dyes/");'> <span class="countryname">United Kingdom</span> </a> </li> <li> <a href="https://www.fibre2fashion.com/dyes/iran-suppliers" target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Textlink Clicked&quot;,&quot;F2FEventType&quot;:&quot;Text Link&quot;,&quot;F2FBlockName&quot;:&quot;Top Sourcing Destinations&quot;,&quot;F2FSection&quot;:&quot;Middle&quot;,&quot;F2FType&quot;:&quot;Static&quot;,&quot;F2FText&quot;:&quot;Iran&quot;}"> <img src="https://static.fibre2fashion.com/country/iran.jpg" title="Iran" alt="Iran" onerror='NoImage(this,"/dyes/");'> <span class="countryname">Iran</span> </a> </li> <li> <a href="https://www.fibre2fashion.com/dyes/germany-suppliers" target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Textlink Clicked&quot;,&quot;F2FEventType&quot;:&quot;Text Link&quot;,&quot;F2FBlockName&quot;:&quot;Top Sourcing Destinations&quot;,&quot;F2FSection&quot;:&quot;Middle&quot;,&quot;F2FType&quot;:&quot;Static&quot;,&quot;F2FText&quot;:&quot;Germany&quot;}"> <img src="https://static.fibre2fashion.com/country/germany.jpg" title="Germany" alt="Germany" onerror='NoImage(this,"/dyes/");'> <span class="countryname">Germany</span> </a> </li> </ul> <div class="clearfix"></div> <div class="clearfix"></div> </div> </div> </div> </div> <div class="col-md-12"> </div> </div> </div> </div> <div class="clear"></div> <div class="footer"> <div class="container"> <script type="text/javascript"> function validateChecks() { var chks = document.getElementsByName('NLType'); var checkCount = 0; for (var i = 0; i < chks.length; i++) { if (chks[i].checked) { checkCount++; } } if (checkCount < 1) { return false; } return true; } var emailValidationMessage = 'Please enter valid email address.'; function doalert(checkboxElem) { if (checkboxElem.checked) { var chks = document.getElementsByName('NLType'); var checkCount = 0; var checkval = ""; for (var i = 0; i < chks.length; i++) { if (chks[i].checked) { if (checkval == "") { checkval = chks[i].value; } else { checkval = checkval + "~" + chks[i].value; } } } $("#SelNLType").val(checkval); } else { var chks = document.getElementsByName('NLType'); var checkCount = 0; var checkval = ""; for (var i = 0; i < chks.length; i++) { if (chks[i].checked) { if (checkval == "") { checkval = chks[i].value; } else { checkval = checkval + "~" + chks[i].value; } } } $("#SelNLType").val(checkval); } } function NewsSubscription() { debugger; document.getElementById("f2fnewssuball").setAttribute("disabled", true); var email = jQuery.trim(jQuery("#EmailNewsSubscription").val()); var F2FLeadFormEventData = jQuery.trim(jQuery("#frmNewsSubscription #F2FLeadFormEventData").val()); if (ValidEmail(email)) { document.getElementById("f2fnewssuball").removeAttribute("disabled", false); document.getElementById("f2fnewssuball").setAttribute("disabled", true); var formData = "SelNLType=F2F~Tradefair~DailyNews~TTeNews&EmailNewsSubscription=" + email + "&F2FLeadFormEventData=" + F2FLeadFormEventData; // alert(formData); AjaxCall(BASEPATHURL + "/EmbeddedViews/InsertNewsLetterSubscription", formData, "POST", "JSON", 'NewsSubscriptionSuccess'); } else { alert(emailValidationMessage); jQuery("#EmailNewsSubscription").focus(); document.getElementById("f2fnewssuball").removeAttribute("disabled", false); } } function NewsSubscriptionSuccess(data) { if (data != "") { if (data.Status == "OK") { CreateLocalSrorage(data.LocalStorageData, data.Email, data.F2FLeadFormUserEventData, data.F2FLeadFormEventData); } alert(data.Message); var expara = '';//[{key:'Company',value: "F2F Pvt. ltd" }, {key:'Name' , value: 'Jaimin'}] DataLayerTracking('NewsletterSubscribe', 'Homepage', 'NewsletterSubscribe', expara) } document.getElementById("f2fnewssuball").removeAttribute("disabled", false); } </script> <div class="row"> <div class="col-md-12"> <div class="signup-newsletter "> <div class="signup-newsletter-text"> <div class="signup-newsletter-title"> Sign Up for F2F Newsletters </div> <div class="signup-newsletter-pera"> Subscribe and stay updated. </div> </div> <div class="signup-newsletter-form "> <form id="frmNewsSubscription"> <input id="F2FLeadFormEventData" name="F2FLeadFormEventData" type="hidden" value="{&quot;F2FFormType&quot;:&quot;F2F Newsletters&quot;,&quot;F2FFormTitle&quot;:&quot;Signup for F2F Newsletters&quot;,&quot;F2FSubscriptionDate&quot;:&quot;11/23/2024 11:16:36 PM&quot;,&quot;F2FIsSubscribed&quot;:true,&quot;F2FSubscriptionType&quot;:&quot;[\r\n \&quot;F2F\&quot;,\r\n \&quot;Tradefair\&quot;,\r\n \&quot;DailyNews\&quot;,\r\n \&quot;TTeNews\&quot;\r\n]&quot;,&quot;F2FEventName&quot;:&quot;Newsletter Subscribed&quot;,&quot;F2FEventType&quot;:&quot;Newsletter Subscribed&quot;,&quot;F2FBlockName&quot;:null,&quot;F2FSection&quot;:&quot;Footer&quot;,&quot;F2FType&quot;:&quot;Static&quot;,&quot;F2FText&quot;:null,&quot;F2FProductName&quot;:null}"> <input id="EmailNewsSubscription" type="search" name="search" placeholder="Email" /> <input type="button" id="f2fnewssuball" value="Subscribe " onclick="NewsSubscription();"/> </form> <div class="signup-newsletter-form-text"> By submitting, you agree to our <a href="https://www.fibre2fashion.com/terms" target="_blank" style="text-decoration: underline !important; color: #7B86A6 !important;"> Terms of Use</a> and <a href="https://www.fibre2fashion.com/policy" target="_blank" style="text-decoration: underline !important; color: #7B86A6 !important;"> Privacy Policy. </a> </div> </div> </div> </div> </div> </div> <input type="hidden" value="" id="hdncountrycodef2f" /> <div class="footer-detais padding80"> <div class="container"> <div class="footer-wrapper-new"> <div class="footercolumn"> <div class="footer-menu"> <ul> <li><a class="linksheading first-titles" target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://www.fibre2fashion.com/garments/">Garment</a></li> <li><a target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://www.fibre2fashion.com/garments/men-s-wear-suppliers-s34">Men's Wear</a></li> <li><a target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://www.fibre2fashion.com/garments/women-s-wear-suppliers-s35">Women's Wear</a></li> <li><a target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://www.fibre2fashion.com/garments/kids-wear-suppliers-s36">Kid's Wear</a></li> <li><a class="linksheading" target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://www.fibre2fashion.com/dyes/">Dyes &amp; Chemicals</a></li> <li><a target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://www.fibre2fashion.com/dyes/dyes-suppliers-s64">Dyes</a></li> <li><a target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://www.fibre2fashion.com/dyes/preparatory-chemicals-suppliers-s65">Preparatory Chemicals</a></li> <li><a target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://www.fibre2fashion.com/dyes/processing-chemicals-suppliers-s66">Processing Chemicals</a></li> <li><a target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://www.fibre2fashion.com/dyes/dye-intermediates-suppliers-s68">Dyes Intermediates</a></li> <li><a target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://www.fibre2fashion.com/dyes/pigments-suppliers-s69">Pigments</a></li> <li><a class="linksheading" target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://www.fibre2fashion.com/clothingaccessories/">Clothing Accessories</a></li> <li><a target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://www.fibre2fashion.com/clothingaccessories/sewing-trims-suppliers-s78">Sewing Trims & Accessories</a></li> <li><a target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://www.fibre2fashion.com/clothingaccessories/packaging-trims-suppliers-s79">Packaging Trims & Accessories</a></li> </ul> </div> </div> <div class="footercolumn"> <div class="footer-menu"> <ul> <li><a class="linksheading first-titles" target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://www.fibre2fashion.com/fabrics/">Fabric</a></li> <li><a target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://www.fibre2fashion.com/fabrics/knitted-suppliers-s46">Knitted Fabric</a></li> <li><a target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://www.fibre2fashion.com/fabrics/woven-fabric-suppliers-s47">Woven Fabric</a></li> <li><a target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://www.fibre2fashion.com/fabrics/nonwoven-fabric-suppliers-s48">Nonwoven Fabric</a></li> <li><a class="linksheading" target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://www.fibre2fashion.com/leatherfootwears/">Leather &amp; Footwear</a></li> <li><a target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://www.fibre2fashion.com/leatherfootwears/leather-suppliers-s61">Raw & Finished Leather</a></li> <li><a target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://www.fibre2fashion.com/leatherfootwears/footwear-suppliers-s62">Footwear</a></li> <li><a target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://www.fibre2fashion.com/leatherfootwears/leather-products-suppliers-s63">Leather Products</a></li> <div class="twolines"></div> <li><a class="linksheading" target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://www.fibre2fashion.com/accessories/">Fashion Accessories</a></li> <li><a target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://www.fibre2fashion.com/accessories/men-s-accessory-suppliers-s53">Men's Accessories</a></li> <li><a target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://www.fibre2fashion.com/accessories/women-s-accessory-suppliers-s54">Women's Accessories</a></li> </ul> </div> </div> <div class="footercolumn"> <div class="footer-menu"> <ul> <li><a class="linksheading first-titles" target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://www.fibre2fashion.com/yarns/">Yarn</a></li> <li><a target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://www.fibre2fashion.com/yarns/blended-yarn-suppliers-s45">Blended Yarn</a></li> <li><a target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://www.fibre2fashion.com/yarns/synthetic-regenerated-yarn-suppliers-s104">Synthetic / Regenerated Yarn</a></li> <li><a target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://www.fibre2fashion.com/yarns/natural-yarn-suppliers-s102">Natural Yarn</a></li> <li><a target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://www.fibre2fashion.com/yarns/speciality-yarn-suppliers-s103">Speciality Yarn</a></li> <li><a class="linksheading" target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://www.fibre2fashion.com/hometextiles/">Home Textiles</a></li> <li><a target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://www.fibre2fashion.com/hometextiles/bedroom-furnishing-suppliers-s55">Bedroom Furnishing</a></li> <li><a target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://www.fibre2fashion.com/hometextiles/livingroom-furnishing-suppliers-s56">Livingroom Furnishing</a></li> <li><a target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://www.fibre2fashion.com/hometextiles/bathroom-furnishing-suppliers-s57">Bathroom Furnishing</a></li> <li><a target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://www.fibre2fashion.com/hometextiles/kitchen-linen-suppliers-s58">Kitchen Linen</a></li> <li><a class="linksheading" target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://www.fibre2fashion.com/fibres/">Fibre &amp; Feedstock</a></li> <li><a target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://www.fibre2fashion.com/fibres/natural-suppliers-s41">Natural</a></li> <li><a target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://www.fibre2fashion.com/fibres/manmade-suppliers-s42">Manmade</a></li> </ul> </div> </div> <div class="footercolumn"> <div class="footer-menu"> <ul> <li><a class="linksheading" target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://www.fibre2fashion.com/machines/">Machinery</a></li> <li><a target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://www.fibre2fashion.com/machines/spinning-suppliers-s96">Spinning</a></li> <li><a target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://www.fibre2fashion.com/machines/weaving-suppliers-s71">Weaving</a></li> <li><a target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://www.fibre2fashion.com/machines/knitting-suppliers-s72">Knitting</a></li> <li><a target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://www.fibre2fashion.com/machines/dyeing-suppliers-s80">Dyeing</a></li> <li><a target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://www.fibre2fashion.com/machines/printing-finishing-suppliers-s81">Printing & Finishing</a></li> <li><a target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://www.fibre2fashion.com/machines/testing-inspection-suppliers-s87">Testing & Inspection</a></li> <li><a target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://www.fibre2fashion.com/machines/sewing-embroidery-garments-suppliers-s95">Sewing, Embroidery & Garments</a></li> <li><a target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://www.fibre2fashion.com/machines/laundry-suppliers-s82">Laundry</a></li> <li><a target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://www.fibre2fashion.com/machines/leather-footwear-machinery-suppliers-s98">Leather &amp; Footwear Machinery</a></li> <li><a target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://www.fibre2fashion.com/machines/pre-owned-machinery-suppliers-s101">Pre-owned Machinery</a></li> <li><a target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://www.fibre2fashion.com/machines/equipments-suppliers-s99">Equipments</a></li> <li><a target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://www.fibre2fashion.com/machines/accessories-equipments-suppliers-s97">Accessories & Equipments</a></li> </ul> </div> </div> <div class="footercolumn"> <div class="footer-menu"> <ul> <li><a class="linksheading" target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://dashboard.fibre2fashion.com/b2b/#/b2b/lead-manager/lead-manager-list">Supplier Desk</a></li> <li><a target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="//www.fibre2fashion.com/videos/b2b-tutorials">How to Get Started</a></li> <li><a target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://dashboard.fibre2fashion.com/b2b/#/b2b/post-lead">List your product</a></li> <li><a target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://www.fibre2fashion.com/garments/PostRequirement">Express posting</a></li> <li><a target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="//www.fibre2fashion.com/business-solutions/b2b-membership/">Upgrade your membership</a></li> <li><a target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="//www.fibre2fashion.com/clients/testimonial/premiummembers/">Supplier's Feedback</a></li> <li><a class="linksheading" target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://dashboard.fibre2fashion.com/b2b/#/b2b/lead-manager/lead-manager-list">Buyer Desk</a></li> <li><a target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://www.fibre2fashion.com/garments/PostRequirement">List your buying offer</a></li> <li><a target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="mailto:b2b@fibre2fashion.com">Sourcing Assistance</a></li> <li><a target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="//www.fibre2fashion.com/clients/testimonial/buyers/">Buyer's Feedback</a></li> </ul> </div> </div> </div> </div> </div> <div class="footer-bottom"> <div class="footer-bottom-left"> <div class="footer-bottom-left-group"> <a target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://www.fibre2fashion.com/aboutus/">About</a> <a target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://www.fibre2fashion.com/policy/">Privacy</a> <a target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://www.fibre2fashion.com/terms/">Terms of Use</a> <a target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://www.fibre2fashion.com/cookie/">Cookie Policy</a> <a target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://www.fibre2fashion.com/aboutus/contact">Contact</a> <a target="_blank" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Footer Clicked&quot;,&quot;F2FEventType&quot;:&quot;Footer&quot;}" href="https://www.fibre2fashion.com/apps/">F2F Apps</a>&nbsp;|&nbsp;&#169; 2024, Fibre2Fashion. All rights reserved. </div> </div> <div class="footer-social"> <a target=" _blank" itemprop="sameAs" href="https://www.facebook.com/fibre2fashion/" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Icon Clicked&quot;,&quot;F2FEventType&quot;:&quot;Icon&quot;,&quot;F2FSection&quot;:&quot;Footer&quot;,&quot;F2FType&quot;:&quot;Static&quot;,&quot;F2FText&quot;:&quot;Facebook&quot;}"> <svg class="fb" width=" 26" height="26" viewBox="0 0 26 26" fill="none" xmlns="https://www.w3.org/2000/svg"> <path d="M13 0.972168C6.09625 0.972168 0.5 6.56842 0.5 13.4722C0.5 19.7109 5.07125 24.8822 11.0475 25.8209V17.0847H7.8725V13.4722H11.0475V10.7184C11.0475 7.58592 12.9125 5.85592 15.7688 5.85592C17.1362 5.85592 18.5662 6.09967 18.5662 6.09967V9.17467H16.9912C15.4375 9.17467 14.9537 10.1384 14.9537 11.1272V13.4722H18.42L17.8662 17.0847H14.9537V25.8209C20.9287 24.8834 25.5 19.7097 25.5 13.4722C25.5 6.56842 19.9037 0.972168 13 0.972168Z" fill="#51628D" /> </svg> </a> <a target="_blank" itemprop="sameAs" href="https://www.youtube.com/c/Fibre2FashionPvtLtd" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Icon Clicked&quot;,&quot;F2FEventType&quot;:&quot;Icon&quot;,&quot;F2FSection&quot;:&quot;Footer&quot;,&quot;F2FType&quot;:&quot;Static&quot;,&quot;F2FText&quot;:&quot;YouTube&quot;}"> <svg class="yt" width="26" height="21" viewBox="0 0 26 21" fill="none" xmlns="https://www.w3.org/2000/svg"> <path d="M24.9287 3.39333C25.5 5.69508 25.5 10.5001 25.5 10.5001C25.5 10.5001 25.5 15.3051 24.9287 17.6068C24.6112 18.8791 23.6825 19.8802 22.5062 20.2186C20.37 20.8334 13 20.8334 13 20.8334C13 20.8334 5.63375 20.8334 3.49375 20.2186C2.3125 19.875 1.385 18.8752 1.07125 17.6068C0.5 15.3051 0.5 10.5001 0.5 10.5001C0.5 10.5001 0.5 5.69508 1.07125 3.39333C1.38875 2.12104 2.3175 1.12 3.49375 0.781581C5.63375 0.166748 13 0.166748 13 0.166748C13 0.166748 20.37 0.166748 22.5062 0.781581C23.6875 1.12516 24.615 2.12491 24.9287 3.39333ZM10.5 15.0209L18 10.5001L10.5 5.97925V15.0209Z" fill="#51628D" /> </svg> <a target="_blank" itemprop="sameAs" href="https://twitter.com/fibre2fashion" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Icon Clicked&quot;,&quot;F2FEventType&quot;:&quot;Icon&quot;,&quot;F2FSection&quot;:&quot;Footer&quot;,&quot;F2FType&quot;:&quot;Static&quot;,&quot;F2FText&quot;:&quot;Twitter&quot;}"> <svg width="25" height="30" viewBox="0 0 20 20" fill="none" xmlns="https://www.w3.org/2000/svg"> <g clip-path="url(#clip0_7117_39)"> <rect width="30" height="30" transform="matrix(-1 0 0 1 20 -10)"></rect> <path d="M7.5 11L1.8196 18H5L9 13L12.4767 18H18.3333L12.4767 9.66078L17.3333 3H14.5L10.8121 7.78125L7.80039 3H2.33333L7.5 11ZM10.8121 10.4183L15.5326 17.0239H14.4999L10.6886 11.6911L10.0969 10.86L5.14358 3.9283H6.17635L10.8121 10.4183Z" fill="#51628D"></path> </g> <defs> <clipPath id="clip0_7117_39"> <rect width="20" height="20" fill="white" transform="matrix(-1 0 0 -1 20 20)"></rect> </clipPath> </defs> </svg> </a> <a target="_blank" itemprop="sameAs" href="https://www.linkedin.com/company/fibre2fashion" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Icon Clicked&quot;,&quot;F2FEventType&quot;:&quot;Icon&quot;,&quot;F2FSection&quot;:&quot;Footer&quot;,&quot;F2FType&quot;:&quot;Static&quot;,&quot;F2FText&quot;:&quot;LinkedIn&quot;}"> <svg class="linkdin" width="24" height="25" viewBox="0 0 24 25" fill="none" xmlns="https://www.w3.org/2000/svg"> <path d="M19.9187 20.6879H16.5875V15.2926C16.5875 14.0061 16.5625 12.3502 14.85 12.3502C13.1137 12.3502 12.8488 13.7503 12.8488 15.1983V20.6879H9.51625V9.59375H12.7162V11.105H12.76C13.2075 10.2344 14.295 9.31346 15.92 9.31346C19.295 9.31346 19.92 11.61 19.92 14.5977V20.6879H19.9187ZM5.75375 8.07604C5.49944 8.07638 5.24757 8.02485 5.01258 7.92441C4.77758 7.82396 4.56408 7.67658 4.38432 7.4907C4.20456 7.30483 4.06207 7.08412 3.96501 6.84122C3.86796 6.59833 3.81826 6.33803 3.81875 6.07525C3.819 5.67979 3.93272 5.29328 4.14555 4.96461C4.35838 4.63593 4.66074 4.37985 5.01441 4.22875C5.36808 4.07765 5.75717 4.03831 6.13248 4.11571C6.50778 4.19312 6.85244 4.38378 7.12288 4.6636C7.39332 4.94341 7.57739 5.29981 7.65181 5.68773C7.72623 6.07564 7.68766 6.47765 7.54098 6.84291C7.39429 7.20817 7.14608 7.52029 6.82774 7.73978C6.50939 7.95928 6.13521 8.0763 5.7525 8.07604H5.75375ZM7.42375 20.6879H4.0825V9.59375H7.425V20.6879H7.42375ZM21.5875 0.875H2.41125C1.49125 0.875 0.75 1.62417 0.75 2.55029V22.4497C0.75 23.3758 1.4925 24.125 2.41 24.125H21.5825C22.5 24.125 23.25 23.3758 23.25 22.4497V2.55029C23.25 1.62417 22.5 0.875 21.5825 0.875H21.5863H21.5875Z" fill="#51628D" /> </svg> </a> <a target="_blank" itemprop="sameAs" href="https://www.instagram.com/fibre2fashion/" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Icon Clicked&quot;,&quot;F2FEventType&quot;:&quot;Icon&quot;,&quot;F2FSection&quot;:&quot;Footer&quot;,&quot;F2FType&quot;:&quot;Static&quot;,&quot;F2FText&quot;:&quot;Instagram&quot;}"> <svg class="insta" width="26" height="27" viewBox="0 0 26 27" fill="none" xmlns="https://www.w3.org/2000/svg"> <path d="M13 0.583252C16.3962 0.583252 16.82 0.596169 18.1525 0.660752C19.4837 0.725335 20.39 0.941044 21.1875 1.26138C22.0125 1.58946 22.7075 2.03379 23.4025 2.75067C24.0381 3.39637 24.5299 4.17743 24.8438 5.0395C25.1525 5.86229 25.3625 6.80004 25.425 8.17567C25.4838 9.55259 25.5 9.99046 25.5 13.4999C25.5 17.0094 25.4875 17.4473 25.425 18.8242C25.3625 20.1998 25.1525 21.1363 24.8438 21.9603C24.5308 22.8229 24.0389 23.6041 23.4025 24.2492C22.7775 24.9058 22.0216 25.4139 21.1875 25.7385C20.3912 26.0575 19.4837 26.2745 18.1525 26.3391C16.82 26.3998 16.3962 26.4166 13 26.4166C9.60375 26.4166 9.18 26.4037 7.8475 26.3391C6.51625 26.2745 5.61 26.0575 4.8125 25.7385C3.97791 25.4149 3.22191 24.9066 2.5975 24.2492C1.96176 23.6036 1.46991 22.8225 1.15625 21.9603C0.84625 21.1375 0.6375 20.1998 0.575 18.8242C0.51625 17.4473 0.5 17.0094 0.5 13.4999C0.5 9.99046 0.5125 9.55259 0.575 8.17567C0.6375 6.79875 0.84625 5.86359 1.15625 5.0395C1.46905 4.1769 1.961 3.39563 2.5975 2.75067C3.22209 2.09351 3.97804 1.58524 4.8125 1.26138C5.61 0.941044 6.515 0.725335 7.8475 0.660752C9.18 0.600044 9.60375 0.583252 13 0.583252ZM13 7.04159C11.3424 7.04159 9.75268 7.72202 8.58058 8.93319C7.40848 10.1444 6.75 11.7871 6.75 13.4999C6.75 15.2128 7.40848 16.8555 8.58058 18.0667C9.75268 19.2778 11.3424 19.9583 13 19.9583C14.6576 19.9583 16.2473 19.2778 17.4194 18.0667C18.5915 16.8555 19.25 15.2128 19.25 13.4999C19.25 11.7871 18.5915 10.1444 17.4194 8.93319C16.2473 7.72202 14.6576 7.04159 13 7.04159ZM21.125 6.71867C21.125 6.29045 20.9604 5.87978 20.6674 5.57699C20.3743 5.27419 19.9769 5.10409 19.5625 5.10409C19.1481 5.10409 18.7507 5.27419 18.4576 5.57699C18.1646 5.87978 18 6.29045 18 6.71867C18 7.14688 18.1646 7.55756 18.4576 7.86035C18.7507 8.16315 19.1481 8.33325 19.5625 8.33325C19.9769 8.33325 20.3743 8.16315 20.6674 7.86035C20.9604 7.55756 21.125 7.14688 21.125 6.71867ZM13 9.62492C13.9946 9.62492 14.9484 10.0332 15.6517 10.7599C16.3549 11.4866 16.75 12.4722 16.75 13.4999C16.75 14.5276 16.3549 15.5133 15.6517 16.24C14.9484 16.9667 13.9946 17.3749 13 17.3749C12.0054 17.3749 11.0516 16.9667 10.3483 16.24C9.64509 15.5133 9.25 14.5276 9.25 13.4999C9.25 12.4722 9.64509 11.4866 10.3483 10.7599C11.0516 10.0332 12.0054 9.62492 13 9.62492Z" fill="#51628D" /> </svg> </a> <a target="_blank" itemprop="sameAs" href="https://www.pinterest.com/fibre2fashion/" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;Icon Clicked&quot;,&quot;F2FEventType&quot;:&quot;Icon&quot;,&quot;F2FSection&quot;:&quot;Footer&quot;,&quot;F2FType&quot;:&quot;Static&quot;,&quot;F2FText&quot;:&quot;Pinterest&quot;}"> <svg class="insta pinit" width="30" height="30" viewBox="0 0 30 30" fill="none" xmlns="https://www.w3.org/2000/svg"> <path d="M2.00305 14.8024C2.00305 14.796 2.00305 14.7895 2.00305 14.7831C2.00915 14.732 2.01558 14.6813 2.02168 14.6302C2.02439 14.5605 2.02676 14.4911 2.02947 14.4215C2.0332 14.3954 2.03726 14.3694 2.04099 14.3433C2.04099 14.324 2.04099 14.3051 2.04099 14.2858C2.05996 14.1264 2.07893 13.9671 2.0979 13.8078C2.10434 13.7824 2.11111 13.7567 2.11755 13.7313C2.11755 13.712 2.11755 13.6931 2.11721 13.6738C2.12602 13.6105 2.13482 13.5473 2.14363 13.4843C2.17209 13.3389 2.19749 13.1924 2.229 13.0476C2.28625 12.7844 2.34722 12.5218 2.4065 12.259C2.41226 12.2336 2.41802 12.2079 2.42378 12.1825C2.43733 12.1314 2.45054 12.0807 2.46409 12.0296C2.47019 12.0113 2.47595 11.993 2.48205 11.9744C2.51118 11.8865 2.53963 11.7982 2.56944 11.7106C2.64973 11.4741 2.73069 11.2376 2.81098 11.0014C2.8313 10.9497 2.85129 10.8979 2.87161 10.8462C2.87737 10.8364 2.88449 10.8272 2.88923 10.8167C3.04709 10.4828 3.19682 10.1445 3.36416 9.81566C3.98645 8.59435 4.79133 7.50667 5.77304 6.54924C6.46883 5.87059 7.23103 5.27651 8.06775 4.78088C8.39566 4.58669 8.73509 4.4128 9.06944 4.22943C9.40007 4.08937 9.7273 3.94085 10.062 3.81094C10.8791 3.49326 11.7232 3.27268 12.5901 3.14277C12.894 3.0971 13.2012 3.07341 13.5071 3.04466C13.7049 3.02605 13.9038 3.01624 14.102 3.00237C14.1098 3.00237 14.1175 3.00203 14.125 3.00169C14.1491 3.00101 14.1728 3.00068 14.1968 3C14.4092 3 14.6216 3 14.834 3C14.8581 3.00068 14.8818 3.00101 14.9058 3.00169C14.9136 3.00169 14.9211 3.00203 14.9289 3.00237C15.1504 3.01556 15.374 3.01624 15.5935 3.04466C16.064 3.10555 16.5346 3.1722 17.002 3.25204C17.8167 3.39143 18.5979 3.64787 19.3587 3.96656C20.5461 4.46354 21.6291 5.13137 22.6091 5.96532C23.6914 6.8862 24.5915 7.95967 25.3093 9.18572C25.893 10.1827 26.333 11.2396 26.6118 12.3594C26.7266 12.8209 26.8052 13.2918 26.8869 13.7607C26.9245 13.9766 26.9329 14.1975 26.9492 14.4164C26.9661 14.6461 26.9759 14.8761 26.9892 15.1062C26.9925 15.1133 26.9959 15.1204 26.9993 15.1275C26.9993 15.3691 26.9997 15.6106 27 15.8522C26.9966 15.8593 26.9929 15.8664 26.9895 15.8738C26.9702 16.2078 26.9556 16.5423 26.9299 16.8756C26.916 17.0579 26.8835 17.2393 26.8591 17.4209C26.8489 17.4903 26.8391 17.5597 26.8289 17.629C26.8259 17.6425 26.8225 17.6561 26.8194 17.6696C26.7937 17.8097 26.7676 17.9501 26.7419 18.0901C26.7358 18.1155 26.7297 18.1412 26.7232 18.1666C26.6914 18.2941 26.6599 18.4217 26.628 18.5489L26.6226 18.6054L26.5894 18.7207C26.5823 18.7525 26.5755 18.7843 26.5684 18.8165C26.5115 18.9985 26.4549 19.1802 26.398 19.3622C26.3885 19.3964 26.3791 19.4302 26.3696 19.4644C26.3154 19.6115 26.2612 19.759 26.2066 19.9062C26.2002 19.9255 26.1938 19.9444 26.1873 19.9637C26.0149 20.3524 25.8428 20.7411 25.6704 21.1299C25.666 21.1373 25.6616 21.1448 25.6572 21.1522C25.4038 21.6512 25.1189 22.1316 24.8005 22.5917C24.4631 23.0789 24.0986 23.5444 23.6897 23.9741C23.4902 24.1838 23.2869 24.3895 23.0857 24.5972C23.0799 24.603 23.0738 24.6084 23.0681 24.6142C22.7713 24.8659 22.4817 25.1267 22.1755 25.3666C21.8669 25.6085 21.5498 25.8412 21.2215 26.0557C20.9543 26.2303 20.6701 26.3815 20.3845 26.526C19.9824 26.7296 19.5786 26.933 19.1633 27.1072C18.8286 27.2476 18.4759 27.3447 18.1314 27.4621C18.0647 27.4847 17.9997 27.5118 17.9336 27.5368C17.9207 27.5368 17.9082 27.5375 17.8953 27.5379C17.7229 27.5825 17.5508 27.6272 17.3784 27.6715C17.3147 27.6908 17.2507 27.7101 17.187 27.729C17.127 27.7409 17.0678 27.7537 17.0075 27.7639C16.9007 27.7818 16.7937 27.798 16.6867 27.8149C16.6555 27.8244 16.6247 27.8342 16.5935 27.8437C16.562 27.8427 16.5301 27.8369 16.4993 27.8413C16.3262 27.866 16.1535 27.8931 15.9807 27.9191C15.9553 27.9191 15.9295 27.9198 15.9041 27.9202C15.8787 27.9259 15.853 27.9317 15.8276 27.9377C15.8022 27.9445 15.7764 27.9516 15.751 27.9584C15.7256 27.9584 15.6999 27.9584 15.6745 27.9584C15.6491 27.9584 15.6233 27.9577 15.5979 27.9574C15.5467 27.9641 15.4959 27.9706 15.4448 27.9773H15.2917C15.228 27.9838 15.164 27.9902 15.1003 27.9966C15.043 27.9963 14.9861 27.9956 14.9289 27.9953C14.9214 27.9959 14.914 27.997 14.9068 27.9976C14.8764 27.9976 14.8459 27.998 14.8154 27.9983C14.6159 27.999 14.4163 27.9993 14.2171 28C14.1802 27.9993 14.1436 27.9986 14.1067 27.9976C14.0867 27.997 14.0667 27.9959 14.0464 27.9953C14.002 27.9956 13.9577 27.9959 13.9133 27.9963C13.8496 27.9963 13.7856 27.9966 13.7219 27.997C13.6582 27.997 13.5942 27.997 13.5305 27.997C13.5112 27.9905 13.4922 27.9841 13.4729 27.9777L13.3388 27.977C13.2842 27.9689 13.2293 27.9604 13.1748 27.9533C12.9424 27.9229 12.7097 27.8928 12.4773 27.8626C12.4268 27.8538 12.3764 27.8451 12.3259 27.8363C12.2171 27.8132 12.1084 27.7896 11.9997 27.7669C11.872 27.7405 11.7439 27.7148 11.6159 27.6891C11.5904 27.6827 11.5647 27.6766 11.5393 27.6701C11.4062 27.6373 11.273 27.6045 11.1399 27.5717C11.1138 27.5646 11.0881 27.5571 11.062 27.55C10.9654 27.5182 10.8686 27.4864 10.77 27.4536C10.8872 27.253 11 27.0676 11.105 26.8778C11.2964 26.5317 11.4956 26.189 11.6684 25.8334C11.8381 25.4836 11.9787 25.1199 12.1321 24.7623C12.1399 24.7373 12.148 24.7123 12.1558 24.6872C12.1816 24.6108 12.2073 24.5347 12.2331 24.4582C12.2392 24.4389 12.2456 24.42 12.2517 24.4007C12.2896 24.2667 12.3276 24.1327 12.3652 23.9988L12.3784 23.9402C12.3841 23.9331 12.3933 23.9267 12.3957 23.9182C12.4675 23.6388 12.5383 23.3594 12.6094 23.0799C12.6155 23.0481 12.6216 23.0163 12.6277 22.9842C12.6338 22.9774 12.6436 22.9713 12.6457 22.9635C12.706 22.7345 12.7656 22.5055 12.8242 22.2761C12.832 22.2453 12.8337 22.2128 12.8384 22.1813C12.8452 22.1621 12.8516 22.1431 12.8584 22.1238C12.893 22.0071 12.9302 21.8911 12.9614 21.7737C12.9824 21.6942 12.9942 21.6123 13.0105 21.5314C13.0122 21.5213 13.0142 21.5111 13.0159 21.501L13.0498 21.3785C13.0566 21.3592 13.0633 21.3403 13.0701 21.321C13.0843 21.2838 13.0986 21.2469 13.1192 21.1931C13.1535 21.2496 13.1758 21.2899 13.2012 21.3278C13.4285 21.6678 13.7317 21.9236 14.0854 22.1242C14.4045 22.3052 14.7398 22.4439 15.0996 22.5214C15.1121 22.5237 15.1243 22.5261 15.1369 22.5285C15.3621 22.5877 15.5908 22.6249 15.8242 22.6259C15.9472 22.6259 16.0705 22.6259 16.1934 22.6262C16.1995 22.6262 16.2049 22.6242 16.2097 22.6201C16.2415 22.6195 16.2734 22.6188 16.3056 22.6178C16.3926 22.6127 16.48 22.612 16.5661 22.6012C16.6839 22.5863 16.8012 22.564 16.9187 22.5447C16.9251 22.5454 16.9312 22.544 16.9373 22.5413C17.1673 22.4923 17.3974 22.4432 17.6274 22.3941C17.6335 22.3925 17.6396 22.3908 17.6457 22.3891C17.6799 22.3779 17.7138 22.3671 17.748 22.3559C17.7656 22.3505 17.7832 22.3451 17.8008 22.3397C18.1294 22.2433 18.4407 22.1062 18.7388 21.9384C18.7514 21.9313 18.7639 21.9242 18.7764 21.9171C19.1836 21.706 19.5539 21.4425 19.8906 21.1319C19.9031 21.1207 19.916 21.1099 19.9285 21.0987C20.0047 21.0267 20.081 20.9543 20.1572 20.8822L20.1623 20.8792C20.3184 20.7077 20.4746 20.5361 20.6304 20.3649L20.6311 20.3639C20.6419 20.3528 20.6541 20.3426 20.664 20.3304C21.0932 19.801 21.4383 19.2204 21.7124 18.5969C21.9414 18.0759 22.1179 17.538 22.2354 16.9811C22.2375 16.9696 22.2395 16.9581 22.2412 16.9466C22.2524 16.8945 22.2636 16.8421 22.2747 16.79C22.2764 16.7785 22.2778 16.767 22.2795 16.7555C22.292 16.678 22.3045 16.6002 22.3171 16.5227C22.3215 16.5166 22.3259 16.5102 22.3303 16.5038C22.333 16.4814 22.3357 16.4588 22.3388 16.4365C22.3415 16.4273 22.3442 16.4182 22.3472 16.409C22.3489 16.3894 22.3506 16.3701 22.3523 16.3505V16.293C22.3533 16.2808 22.3547 16.2686 22.3557 16.2561C22.3615 16.2494 22.372 16.2433 22.3726 16.2358C22.398 15.9807 22.4224 15.7257 22.4472 15.4706C22.4472 15.4323 22.4472 15.3941 22.4472 15.3559L22.4522 15.2622C22.4563 15.2547 22.46 15.2473 22.4641 15.2398C22.4641 15.2151 22.4641 15.1908 22.4644 15.1661C22.4651 15.1458 22.4658 15.1258 22.4665 15.1059C22.4658 15.068 22.4654 15.0301 22.4648 14.9925C22.4648 14.8528 22.4648 14.7134 22.4648 14.5737C22.461 14.5273 22.4573 14.4813 22.4533 14.435C22.4468 14.3413 22.4444 14.2469 22.4329 14.1535C22.4106 13.9725 22.3828 13.7919 22.357 13.6112C22.354 13.5872 22.3509 13.5635 22.3482 13.5395C22.2937 13.3152 22.2395 13.0909 22.185 12.8666C22.1799 12.848 22.1745 12.8294 22.1694 12.8111C22.0708 12.5364 21.9905 12.2539 21.8706 11.9886C21.1057 10.295 19.8449 9.09911 18.1555 8.34636C17.8554 8.21273 17.5373 8.11733 17.2239 8.01549C17.0169 7.94817 16.8035 7.90081 16.5928 7.84431C16.5823 7.84262 16.5718 7.84092 16.5617 7.83923C16.5146 7.82875 16.4675 7.81826 16.4207 7.80777C16.4082 7.80642 16.396 7.80473 16.3835 7.80337C16.3777 7.80134 16.372 7.79965 16.3662 7.79762C16.3462 7.79458 16.3259 7.79119 16.3059 7.78815C16.2866 7.78815 16.2676 7.78815 16.2483 7.78815C16.2425 7.78544 16.2365 7.78409 16.23 7.78443L15.8845 7.73063C15.872 7.72962 15.8594 7.72827 15.8469 7.72725C15.7764 7.71609 15.706 7.70458 15.6355 7.69342L15.5972 7.69207C15.5271 7.68598 15.457 7.67989 15.3865 7.6738C15.3675 7.67312 15.3482 7.67244 15.3289 7.67211C15.3035 7.67244 15.2778 7.67312 15.2524 7.67346C14.9143 7.66703 14.5759 7.6606 14.2378 7.65418L14.1037 7.67244C14.0654 7.67346 14.0271 7.67481 13.9888 7.67583C13.6436 7.71676 13.2984 7.75804 12.9533 7.79897C12.9282 7.80236 12.9035 7.8054 12.8784 7.80878C12.6545 7.85784 12.4306 7.9069 12.2066 7.95629C12.1873 7.96136 12.168 7.9661 12.1491 7.97117C11.8621 8.06184 11.5755 8.15251 11.2886 8.24318C11.0346 8.35178 10.7761 8.4509 10.5278 8.57067C10.0938 8.78008 9.68462 9.03111 9.3086 9.33356C9.30318 9.33424 9.29946 9.33661 9.29709 9.34134C9.28388 9.35014 9.27033 9.35792 9.25779 9.36739C8.73171 9.77743 8.27304 10.2524 7.88381 10.7934C7.58028 11.2153 7.31944 11.6618 7.12127 12.1436C7.11924 12.15 7.11721 12.1561 7.11518 12.1625C7.01999 12.4237 6.9248 12.6852 6.82961 12.9464C6.82385 12.9501 6.82283 12.9549 6.82622 12.9606C6.7771 13.147 6.72798 13.3334 6.67886 13.5199C6.67717 13.5314 6.67514 13.5425 6.67344 13.554C6.67073 13.5611 6.66802 13.5686 6.66531 13.5757C6.66192 13.5889 6.6582 13.6021 6.65481 13.6153C6.64973 13.6186 6.64126 13.6213 6.64058 13.6257C6.61348 13.7817 6.58299 13.937 6.56233 14.094C6.54539 14.2205 6.54031 14.3487 6.53015 14.4763C6.52608 14.5202 6.52202 14.5646 6.51762 14.6085L6.5061 14.6864C6.5061 14.7628 6.5061 14.8393 6.5061 14.9157C6.50542 14.935 6.50474 14.954 6.50406 14.9732C6.50135 15.0111 6.49865 15.0487 6.49593 15.0866C6.49627 15.158 6.49661 15.229 6.49729 15.3004L6.50339 15.2984C6.50474 15.3495 6.50576 15.4005 6.50711 15.4516C6.50711 15.5152 6.50644 15.5792 6.5061 15.6428C6.51016 15.6624 6.51423 15.682 6.51829 15.7016L6.52507 15.7767C6.53726 15.8843 6.5437 15.9926 6.56267 16.0992C6.58808 16.2416 6.62297 16.382 6.65346 16.5234C6.65583 16.5359 6.65854 16.5484 6.66091 16.5606C6.67717 16.6249 6.69309 16.6888 6.70935 16.7531L6.71714 16.79C6.8794 17.4287 7.13516 18.0275 7.48848 18.5841C7.7002 18.9176 7.9397 19.2299 8.24018 19.4907L8.24424 19.4863L8.23984 19.4904C8.31335 19.5554 8.38347 19.6247 8.46138 19.6839C8.67412 19.8456 8.89329 19.9982 9.15108 20.0811C9.29133 20.1264 9.37839 20.0825 9.43123 19.9475C9.44817 19.9038 9.45461 19.8565 9.46612 19.8108C9.46748 19.7922 9.46917 19.7732 9.47053 19.7546C9.52608 19.5439 9.58164 19.3331 9.63753 19.1227C9.63957 19.1108 9.6416 19.099 9.64363 19.0871C9.70054 18.8628 9.7605 18.6395 9.81267 18.4142C9.83841 18.3022 9.7981 18.2035 9.73035 18.1114C9.63618 17.9832 9.53286 17.8587 9.46172 17.718C9.31436 17.427 9.17446 17.131 9.05386 16.8286C8.98035 16.6438 8.94851 16.4425 8.8977 16.2487C8.896 16.2379 8.89397 16.2274 8.89228 16.2165L8.85772 16.0816C8.85806 16.0751 8.85671 16.0694 8.854 16.0636C8.84892 16.0315 8.84383 15.999 8.83841 15.9669L8.8357 15.93C8.83062 15.9043 8.8252 15.8786 8.82012 15.8532C8.81877 15.8468 8.81741 15.8407 8.81572 15.8343C8.81572 15.796 8.81538 15.7578 8.81504 15.7199C8.81402 15.707 8.81301 15.6939 8.81199 15.681C8.80793 15.6746 8.80352 15.6681 8.79946 15.6617C8.79844 15.6428 8.79709 15.6242 8.79607 15.6052C8.79539 15.548 8.79472 15.4909 8.79404 15.4337C8.79404 15.4273 8.79404 15.4205 8.7937 15.4141C8.7937 15.344 8.79336 15.2743 8.79302 15.2043C8.79302 15.1975 8.79336 15.1908 8.7937 15.184C8.7937 15.1651 8.7937 15.1461 8.7937 15.1272C8.79472 15.0636 8.79539 14.9996 8.79641 14.936V14.8596C8.79743 14.8345 8.79844 14.8095 8.7998 14.7845C8.8042 14.7777 8.8086 14.7713 8.81301 14.7645C8.81369 14.7517 8.81436 14.7388 8.81504 14.7256V14.6681C8.81673 14.6495 8.81775 14.6305 8.81911 14.6119C8.82351 14.6055 8.82791 14.5987 8.83232 14.5923C8.83435 14.548 8.83638 14.5037 8.83841 14.4593C8.84316 14.4526 8.84824 14.4458 8.85298 14.439C8.85434 14.4262 8.85569 14.4133 8.85671 14.4005C8.91565 14.1467 8.97459 13.8927 9.03354 13.6389L9.03286 13.6403C9.03591 13.6328 9.0393 13.6251 9.04234 13.6176C9.04539 13.6051 9.04844 13.5923 9.05149 13.5797C9.08367 13.4938 9.11484 13.4075 9.1477 13.3219C9.5166 12.3594 10.1057 11.562 10.9306 10.9395C11.2622 10.6892 11.6236 10.4909 11.9986 10.3147C12.0115 10.3086 12.0244 10.3025 12.0373 10.2964C12.4133 10.1807 12.7896 10.0653 13.1656 9.94963C13.1782 9.9476 13.1904 9.94557 13.2029 9.94354C13.2425 9.93813 13.2818 9.93373 13.3211 9.9273C13.4732 9.90227 13.6253 9.87689 13.7774 9.85152C13.8093 9.85051 13.8411 9.84915 13.873 9.84814C13.9488 9.84848 14.0251 9.84915 14.1009 9.84949C14.1467 9.84543 14.1924 9.84171 14.2381 9.83765C14.2503 9.8346 14.2625 9.8319 14.2747 9.82885C14.4021 9.83156 14.5295 9.83393 14.6568 9.83663C14.6765 9.83731 14.6965 9.83765 14.7161 9.83833C14.728 9.83866 14.7402 9.83934 14.752 9.83968C14.7595 9.84306 14.7666 9.84645 14.7741 9.84983C14.7801 9.85152 14.7859 9.85084 14.7917 9.8478C14.8428 9.8478 14.8936 9.84746 14.9448 9.84712C14.9766 9.85355 15.0085 9.86032 15.0407 9.86674C15.3198 9.90971 15.6009 9.94219 15.8774 9.99869C16.0867 10.0413 16.2896 10.1144 16.4956 10.1739C16.4993 10.1797 16.5041 10.181 16.5102 10.1777C16.518 10.1814 16.5254 10.1851 16.5332 10.1888C16.5457 10.1929 16.5579 10.1966 16.5705 10.2007C16.6192 10.223 16.6673 10.2463 16.7168 10.2673C17.6125 10.6425 18.3432 11.222 18.8665 12.0418C19.0532 12.3337 19.1887 12.6585 19.3476 12.9681L19.3689 13.0252L19.4963 13.4285C19.5007 13.4475 19.5047 13.4664 19.5091 13.4853C19.5122 13.4938 19.5149 13.5023 19.518 13.5107C19.5203 13.5209 19.5227 13.5314 19.5247 13.5415C19.5488 13.687 19.5732 13.8328 19.5972 13.9783C19.6155 14.0879 19.6338 14.1975 19.6521 14.3071C19.6541 14.3196 19.6565 14.3321 19.6585 14.3447C19.6646 14.4211 19.6707 14.4976 19.6768 14.574C19.6768 14.5926 19.6762 14.6113 19.6758 14.6299C19.6762 14.6437 19.6768 14.6576 19.6772 14.6715C19.6772 14.6891 19.6778 14.7067 19.6778 14.7239C19.6778 14.8724 19.6775 15.0206 19.6772 15.1691C19.6772 15.1867 19.6772 15.204 19.6772 15.2216C19.6772 15.2358 19.6768 15.2496 19.6765 15.2639C19.6765 15.2825 19.6765 15.3011 19.6768 15.3197C19.6768 15.3325 19.6768 15.3451 19.6768 15.3579C19.6629 15.478 19.6467 15.5981 19.6365 15.7185C19.6284 15.8143 19.6274 15.9107 19.6233 16.0068C19.6223 16.02 19.6213 16.0328 19.6203 16.046C19.6148 16.0843 19.6094 16.1225 19.6037 16.1607C19.5959 16.1861 19.5884 16.2118 19.5806 16.2372C19.5766 16.2744 19.5735 16.3116 19.5677 16.3482C19.5457 16.4896 19.523 16.631 19.5003 16.7724L19.4953 16.7768L19.4983 16.7829C19.4871 16.8302 19.4763 16.8779 19.4651 16.9253C19.4624 16.9375 19.46 16.9497 19.4573 16.9619C19.4526 16.9734 19.4461 16.9842 19.4434 16.996C19.3042 17.5563 19.1081 18.0945 18.8252 18.5993C18.5007 19.1778 18.0921 19.6856 17.5383 20.0608C17.3476 20.19 17.1365 20.2898 16.935 20.4032C16.9217 20.4072 16.9085 20.4116 16.8953 20.4157C16.8899 20.4184 16.8841 20.4211 16.8787 20.4238C16.8723 20.4255 16.8655 20.4275 16.8591 20.4292L16.706 20.485C16.687 20.4915 16.6677 20.4979 16.6487 20.5043C16.5271 20.5331 16.4062 20.5629 16.2842 20.5896C16.2276 20.6021 16.1697 20.6085 16.1128 20.6173C16.0874 20.6177 16.0617 20.6183 16.0362 20.6187C15.998 20.6251 15.9597 20.6315 15.9214 20.6376C15.8194 20.6376 15.7171 20.6376 15.6152 20.6376C15.5623 20.6298 15.5095 20.6217 15.4566 20.6139C14.9136 20.5331 14.4682 20.2865 14.146 19.8365C14.0664 19.7252 14.0044 19.601 13.9343 19.483L13.9353 19.4836C13.9224 19.4457 13.9096 19.4079 13.8963 19.3703C13.8875 19.3388 13.8791 19.3077 13.8703 19.2763C13.8574 19.1616 13.8445 19.0469 13.8316 18.9322C13.8316 18.8557 13.8316 18.7793 13.8316 18.7028C13.8316 18.671 13.8316 18.6392 13.8316 18.6071C13.8381 18.5881 13.8445 18.5688 13.8509 18.5496C13.872 18.4477 13.893 18.3456 13.914 18.2437C13.9146 18.2251 13.915 18.2065 13.9157 18.1882C13.94 18.1148 13.9685 18.0424 13.9885 17.968C14.0281 17.8185 14.0633 17.6676 14.1006 17.5174C14.1043 17.513 14.1057 17.5079 14.1043 17.5021C14.1436 17.3827 14.185 17.2636 14.2222 17.1435C14.268 16.995 14.3106 16.8455 14.3547 16.6963C14.3594 16.6767 14.3638 16.6574 14.3686 16.6377C14.3865 16.5934 14.4085 16.5505 14.4217 16.5048C14.4512 16.4033 14.4763 16.3004 14.503 16.1983C14.5071 16.1932 14.5095 16.1875 14.5098 16.181C14.5545 16.0281 14.5989 15.8752 14.6436 15.7219C14.6491 15.6976 14.6548 15.6736 14.6602 15.6492C14.6684 15.638 14.6812 15.6279 14.6843 15.6154C14.7334 15.4147 14.7812 15.2134 14.8293 15.0125C14.8289 14.9871 14.8283 14.9614 14.8279 14.936C14.8533 14.7831 14.8784 14.6302 14.9038 14.4773C14.9058 14.4522 14.9079 14.4269 14.9099 14.4018C14.9143 14.3697 14.9187 14.3376 14.9231 14.3054C14.9231 14.2418 14.9231 14.1779 14.9231 14.1143C14.9109 14.0314 14.8984 13.9485 14.8862 13.8656L14.8852 13.8274C14.8577 13.5432 14.7561 13.2851 14.5901 13.0557C14.2625 12.6034 13.8025 12.443 13.2608 12.4728C13.248 12.4728 13.2354 12.4728 13.2226 12.4728C13.165 12.4728 13.1077 12.4728 13.0501 12.4731C13.0373 12.4792 13.0247 12.485 13.0119 12.491C12.8343 12.5496 12.6426 12.582 12.482 12.6714C11.8415 13.0276 11.4739 13.599 11.2629 14.2841C11.2595 14.2976 11.2561 14.3112 11.2524 14.325C11.2398 14.3697 11.2273 14.4144 11.2148 14.459C11.2121 14.4712 11.2093 14.483 11.2063 14.4952C11.1775 14.6424 11.1484 14.7895 11.1196 14.937C11.1196 14.9563 11.1196 14.9753 11.1192 14.9946L11.1006 15.0903C11.1006 15.1221 11.0999 15.1539 11.0996 15.186C11.0935 15.2307 11.0874 15.2754 11.0813 15.32C11.085 15.4418 11.0891 15.5633 11.0928 15.6851C11.0949 15.7101 11.0972 15.7348 11.0993 15.7598C11.106 15.8617 11.1125 15.9638 11.1192 16.0657C11.1253 16.0975 11.1314 16.1293 11.1375 16.1614C11.143 16.1932 11.1487 16.225 11.1541 16.2571C11.1772 16.3789 11.2002 16.5011 11.2236 16.6229C11.227 16.6347 11.23 16.6465 11.2334 16.6587C11.2402 16.6905 11.247 16.7223 11.2534 16.7545C11.2598 16.7798 11.2663 16.8056 11.2727 16.8309C11.3215 16.969 11.3672 17.108 11.4211 17.2443C11.4472 17.3107 11.4472 17.3712 11.4309 17.4389C11.3753 17.6689 11.3245 17.9003 11.272 18.1311C11.2595 18.1757 11.247 18.2204 11.2344 18.265C11.2341 18.2779 11.2334 18.2904 11.2331 18.3033C11.227 18.3286 11.2205 18.3543 11.2144 18.3797C11.1389 18.6906 11.0623 19.0015 10.9885 19.3128C10.878 19.779 10.7696 20.2459 10.6602 20.7121C10.6538 20.7439 10.647 20.7757 10.6406 20.8078C10.6226 20.8765 10.603 20.9445 10.5871 21.0138C10.5403 21.2192 10.4953 21.4245 10.4495 21.6299C10.4431 21.6492 10.4367 21.6681 10.4302 21.6874C10.3984 21.8214 10.3665 21.955 10.3347 22.089C10.334 22.1018 10.333 22.1144 10.3323 22.1272C10.2883 22.3119 10.2442 22.497 10.1999 22.6817C10.1938 22.6946 10.1877 22.7071 10.1816 22.7199C10.1426 22.9047 10.1033 23.0897 10.0644 23.2744C10.0583 23.2998 10.0522 23.3255 10.0461 23.3509C9.9956 23.6185 9.94512 23.8861 9.89465 24.1541C9.89465 24.1794 9.89397 24.2051 9.89397 24.2305C9.88787 24.2623 9.88177 24.2941 9.87568 24.3263C9.87466 24.3645 9.87398 24.4027 9.87297 24.4409L9.85569 24.6703C9.85434 24.7464 9.85298 24.8226 9.85163 24.8983C9.84587 24.9186 9.83469 24.9393 9.83469 24.9596C9.83435 25.1693 9.8357 25.3794 9.83672 25.5892C9.83672 25.6078 9.83672 25.6264 9.83706 25.645C9.8435 25.6704 9.84993 25.6961 9.85637 25.7215V25.9126C9.85603 25.9255 9.85637 25.938 9.85637 25.9508V26.0083C9.86247 26.072 9.86856 26.1359 9.87466 26.1995C9.875 26.2377 9.87534 26.276 9.87568 26.3142C9.88211 26.3396 9.88855 26.3653 9.89499 26.3906C9.89499 26.4417 9.89499 26.4925 9.89499 26.5436C9.90752 26.6647 9.92039 26.7858 9.93293 26.9069C9.93869 26.9516 9.94478 26.9962 9.95054 27.0409C9.94851 27.0683 9.94614 27.0957 9.94309 27.1339C9.87635 27.1146 9.81707 27.0974 9.75779 27.0801C9.7439 27.0734 9.73001 27.0669 9.71612 27.0602C9.62161 27.0192 9.52744 26.9786 9.43293 26.9377L9.40041 26.9262C9.27066 26.8612 9.13957 26.7983 9.01118 26.7306C8.75373 26.5943 8.49695 26.457 8.24187 26.3162C8.0752 26.2242 7.91226 26.1251 7.74797 26.0293C7.73543 26.0212 7.72324 26.0134 7.7107 26.0053C7.4292 25.806 7.1477 25.6068 6.86653 25.4075C6.86518 25.4021 6.86145 25.3994 6.85603 25.3984C6.48882 25.0729 6.12195 24.7478 5.75474 24.4223C5.74864 24.4162 5.74255 24.4102 5.73645 24.4044L5.73543 24.4034C5.72934 24.3973 5.72324 24.3915 5.71714 24.3855L5.71612 24.3844C5.71003 24.3784 5.70427 24.3723 5.69817 24.3662C5.56369 24.2312 5.42412 24.1009 5.29607 23.9602C5.09519 23.7386 4.90244 23.5099 4.7063 23.2842C4.70528 23.2775 4.70122 23.2734 4.69478 23.2721C4.6897 23.2606 4.68631 23.2477 4.67886 23.2376C4.4336 22.8952 4.17649 22.5603 3.9458 22.2084C3.76253 21.929 3.60535 21.6319 3.44783 21.3366C3.30183 21.0625 3.1626 20.7841 3.03523 20.5009C2.91701 20.2381 2.81809 19.9664 2.7107 19.6988C2.70427 19.6859 2.69783 19.6734 2.6914 19.6606C2.66768 19.5899 2.64397 19.5195 2.62026 19.4488C2.61416 19.4295 2.60772 19.4106 2.60163 19.3913C2.58232 19.3196 2.56504 19.2472 2.54302 19.1761C2.5044 19.0503 2.46274 18.9254 2.42243 18.7999C2.41768 18.7681 2.41294 18.7363 2.4082 18.7042C2.38347 18.5973 2.36111 18.4897 2.33367 18.3834C2.3164 18.3171 2.29167 18.2532 2.26999 18.1879C2.27066 18.1815 2.271 18.175 2.27168 18.1686C2.2666 18.149 2.26186 18.1294 2.25678 18.1097L2.23137 17.9964C2.23442 17.9842 2.24221 17.971 2.23984 17.9599C2.21274 17.8252 2.18428 17.6909 2.15617 17.5566C2.14329 17.4737 2.13042 17.3908 2.11789 17.3079C2.11382 17.2944 2.10976 17.2809 2.10535 17.2673C2.1023 17.2427 2.09959 17.218 2.09654 17.1933C2.07114 16.9575 2.04573 16.7216 2.02033 16.4858C2.01423 16.4094 2.00813 16.3329 2.00169 16.2565C2.00102 16.1672 2.00034 16.0782 2 15.9889C2.00068 15.6702 2.00136 15.3515 2.00237 15.0328C2.00203 14.9563 2.00136 14.8799 2.00102 14.8034L2.00305 14.8024Z" fill="#51628D" /> </svg> </a> </div> </div> <style> .newsapp-nav .btn,a.acceptbtn{text-transform:uppercase;font-size:11px}body,body.full{margin-top:0}.f2ftopmenu .navbar,body.full .f2ftopmenu .navbar{top:0}body.body50{margin-top:50px}.f2ftopmenu .navbar.navbar50{top:50px}.newsapp-content{display:flex;flex-wrap:wrap}.newsapp-content>div{display:table-cell;vertical-align:middle;font-size:var(--smallfontsize);line-height:1.2;color:#fff}#WidgetFloaterPanels,.goog-tooltip,.goog-tooltip:hover,.skiptranslate,a.goog-logo-link{display:none!important}.phone-icon{color:#fff;font-size:35px!important}.newsapp-nav .close-newsapp-nav{position:absolute;right:4px;top:0;cursor:pointer;color:#b9b9b9;opacity:.5;box-shadow:none;font-size:27px;border:0;background-color:transparent}.newsapp-nav .close-newsapp-nav span{margin:0;font-size:25px}.newsapp-nav .form-group{float:left}.newsapp-nav .form-control{height:25px;border-top-right-radius:0;border-bottom-right-radius:0;border-color:#fff;line-height:25px;font-size:11px;width:177px}.newsapp-nav .btn{padding-top:0;padding-bottom:0;background-color:#fff;color:#333;border-color:transparent;margin-left:7px}a.acceptbtn{background-color:var(--white)!important;border:solid 2px var(--primerycolor);cursor:pointer;border-color:#262626;color:var(--primerycolor);padding:5px 14px!important;margin-top:6px;border-radius:5px}a:hover.acceptbtn{background-color:transparent!important;color:var(--white);border-color:var(--white)}.newsapp-nav{background:#2a2a2a;border:none;bottom:10px;right:78px;width:160px;position:fixed!important;padding:16px!important;border-radius:0!important;margin-bottom:0;z-index:9999} </style> <input type="hidden" name="HidHelloBarCName" id="HidHelloBarCName" /> <nav class="navbar navbar-default newsapp-nav alert" role="alert" id="HelloBarNewsBlock" style="display: none;"> <div class="newsapp-content"> <div class="cookiebar"> This website uses cookies to ensure you get the best experience on our website. </div> <a onclick="return CloseCookieBar();" class="acceptbtn">Accept</a> <button type="button" id="BtnHelloBarClose" onclick="return CloseHelloBar();" class=" close close-newsapp-nav" data-dismiss="alert" aria-label="Close"> <span class="" data-dismiss="alert" aria-label="Close">×</span> </button> </div> </nav> <script language="javascript"> function CloseHelloBar() { var gethellobarcookiecap = getCookie("HelloBarNewsAppsCookie"); if (gethellobarcookiecap == "") { setCookie('HelloBarNewsAppsCookie', '1', 1); } else if (gethellobarcookiecap == "1") { DeleteCookie('HelloBarNewsAppsCookie'); setCookie('HelloBarNewsAppsCookie', '2', 1); } else { $('#HelloBarNewsBlock').css({ 'display': 'none' }); } $('#HelloBarNewsBlock').css({ 'display': 'none' }); } /* Cookie function code start */ function CloseCookieBar() { var getCookiebarcookiecap = getCookie("Cookiebar"); if (getCookiebarcookiecap == "") { setCookie('Cookiebar', '1', 365); } else { $('#HelloBarNewsBlock').css({ 'display': 'none' }); } $('#HelloBarNewsBlock').css({ 'display': 'none' }); } /* Cookie function code end */ var IndianIp; $(document).ready(function () { cookiecap = getCookie("HelloBarNewsAppsCookie") if (cookiecap == "yes") { $('#HelloBarNewsBlock').css({ 'display': 'none' }); } else if (cookiecap == "2") { $('#HelloBarNewsBlock').css({ 'display': 'none' }); } else { $('#HelloBarNewsBlock').css({ 'display': 'block' }); } var countryname = document.getElementById($('*[id*=HidHelloBarCName]').attr('id')).value; countryname = IndianIp; //countryname.toLowerCase(); /* Cookie code start */ var getCookiebarcookiecap = getCookie("Cookiebar"); if (getCookiebarcookiecap == "1" || (getCookiebarcookiecap == "" && cookiecap == "2")) { $('#HelloBarNewsBlock').css({ 'display': 'none' }); } else { $('#HelloBarNewsBlock').css({ 'display': 'block' }); } }); function setCookie(cname, cvalue, exdays) { var d = new Date(); d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000)); var expires = "expires=" + d.toUTCString(); document.cookie = cname + "=" + cvalue + ";" + expires + ";domain=fibre2fashion.com;path=/"; } function DeleteCookie(name) { var today = new Date(); var expire = new Date(); var path = "/"; var domain = ".fibre2fashion.com"; expire.setTime(today.getTime() + 3600000 * 24 * (-60)); if (ReadCookie(name) != '') { document.cookie = name + "=" + ((path) ? "; path=" + path : "") + ((domain) ? "; domain=" + domain : "") + "; expires=" + expire.toGMTString(); } } function getCookie(cname) { var name = cname + "="; var ca = document.cookie.split(';'); for (var i = 0; i < ca.length; i++) { var c = ca[i]; while (c.charAt(0) == ' ') c = c.substring(1); if (c.indexOf(name) == 0) return c.substring(name.length, c.length); } return ""; } </script> <!-- Include the Mixpanel library --> <!-- Paste this right before your closing </head> tag --> <script type="text/javascript"> (function (f, b) { if (!b.__SV) { var e, g, i, h; window.mixpanel = b; b._i = []; b.init = function (e, f, c) { function g(a, d) { var b = d.split("."); 2 == b.length && ((a = a[b[0]]), (d = b[1])); a[d] = function () { a.push([d].concat(Array.prototype.slice.call(arguments, 0))); }; } var a = b; "undefined" !== typeof c ? (a = b[c] = []) : (c = "mixpanel"); a.people = a.people || []; a.toString = function (a) { var d = "mixpanel"; "mixpanel" !== c && (d += "." + c); a || (d += " (stub)"); return d; }; a.people.toString = function () { return a.toString(1) + ".people (stub)"; }; i = "disable time_event track track_pageview track_links track_forms track_with_groups add_group set_group remove_group register register_once alias unregister identify name_tag set_config reset opt_in_tracking opt_out_tracking has_opted_in_tracking has_opted_out_tracking clear_opt_in_out_tracking start_batch_senders people.set people.set_once people.unset people.increment people.append people.union people.track_charge people.clear_charges people.delete_user people.remove".split(" "); for (h = 0; h < i.length; h++) g(a, i[h]); var j = "set set_once union unset remove delete".split(" "); a.get_group = function () { function b(c) { d[c] = function () { call2_args = arguments; call2 = [c].concat(Array.prototype.slice.call(call2_args, 0)); a.push([e, call2]); }; } for (var d = {}, e = ["get_group"].concat(Array.prototype.slice.call(arguments, 0)), c = 0; c < j.length; c++) b(j[c]); return d; }; b._i.push([e, f, c]); }; b.__SV = 1.2; e = f.createElement("script"); e.type = "text/javascript"; e.async = !0; e.src = "undefined" !== typeof MIXPANEL_CUSTOM_LIB_URL ? MIXPANEL_CUSTOM_LIB_URL : "file:" === f.location.protocol && "//cdn.mxpnl.com/libs/mixpanel-2-latest.min.js".match(/^\/\//) ? "https://cdn.mxpnl.com/libs/mixpanel-2-latest.min.js" : "//cdn.mxpnl.com/libs/mixpanel-2-latest.min.js"; g = f.getElementsByTagName("script")[0]; g.parentNode.insertBefore(e, g); } })(document, window.mixpanel || []); </script> <!-- Include the MixpanelWrapper script --> <script type="text/javascript" src="https://static.fibre2fashion.com/staticresources/js/f2f/F2FTrackEvents.min.js?var=3.2"></script> <script> jQuery(document).ready(function () { // Initialize Mixpanel using your project token //Neet to replace this tocken in config of project var mixpanelToken = "2742f3e9fea554656eb263e67f60fa0f"; MixpanelWrapper.init(mixpanelToken); //calling F2FPageview for the Track PageView. MixpanelWrapper.F2FPageview(); MixpanelWrapper.ClickEventTracking(); /*Advertisement Mixpanel impression Tracking Start*/ //MixpanelWrapper.TrackBannerImpression(); /*Advertisement Mixpanel impression Tracking End*/ /*Advertisement Mixpanel Click Tracking Start*/ MixpanelWrapper.TrackBannerClick(); /*Advertisement Mixpanel Click Tracking End*/ /*Initialize the scroll tracking*/ //MixpanelWrapper.trackScrollScreen(); }); </script> </div> <style> #wechat { position: fixed; display: inline-block; top: 337px; left: 0; opacity: 1; transition: 0.3s; border-radius: 50%; overflow: hidden; } #wechatQR { position: fixed; display: inline-block; top: 290px; padding: 10px 0; left: -165px; transition: .5s; z-index: 99999; } </style> <div id="dwcchiana" style="display: none;"> <div id="wechat"> <a href="Javascript:void(0);" onclick="WCclick()"> <img src="//www.fibre2fashion.com/_footer2015/wechat/images/wechat-icon.png" width="68" height="68" alt="" /></a> </div> <div id="wechatQR"> <a href="Javascript:void(0);" onclick="WCQR()"> <img src="//www.fibre2fashion.com/_footer2015/wechat/images/wechat-QR1.png" alt="" /> </a> </div> </div> <script> wecname = ReadCookie("Country") if(wecname == "China") { $("#dwcchiana").css("display","block"); //$("#dwcchiana").show(); }else { $("#dwcchiana").css("display","none"); //$("#dwcchiana").hide(); } function WCclick() { $("#wechatQR").css("left","0px"); $("#wechat").css("display","none"); } function WCQR() { $("#wechatQR").css("left","-165px"); $("#wechat").css("display","block"); } </script> <div id="WaitDiv" style="display:none;"> <div class="Loading"> <i class="fa fa-spinner fa-pulse fa-3x fa-fw"></i> <span class="sr-only">Loading...</span> </div> </div> <style type="text/css"> .bottomstickybtn { background: #405666; line-height: 35px; display: inline-block; height: 45px; width: 50px; margin-top: 7px; border-radius: 50% 0 0 50%; text-align: center; position: fixed; left: 20px; bottom: 20px; z-index: 9; box-shadow: 0px 3px 20px rgb(34 156 53 / 50%); } .bottomstickybtn.st-wahtsaap { background: #2CB742; left: 65px; border-radius: 0 50% 50% 0; } .bottomstickybtn i { color: #fff; font-size: 19px; line-height: 37px; } .bottomstickybtn.st-wahtsaap i { font-size: 19px; } .bottomstickybtn+.tooltip { position: fixed; } .bottomstickybtn+.tooltip>.tooltip-inner { background-color: #fff; color: #333; border: 1px solid #fff; font-size: 13px; } .bottomstickybtn+.tooltip.left>.tooltip-arrow { border-left: 5px solid #fff; } #scroll-to-top { bottom: 20px; right: 80px; } </style> <div class="b2bemailwhatsapp"> <a href="https://wa.me/8511168505?text=Hello" target="_blank" onclick="javascript:setMixPanelProperty('Whatsapp');void(0);" class="bottomstickybtn st-wahtsaap" data-toggle="tooltipemailwahtaap" data-placement="right" title="+91 85111 68505" id="F2FLeadFormEventData"> <i class="fa fa-lg fa-whatsapp"></i> </a> <a href="mailto:b2b@fibre2fashion.com?subject=Contact me for my requirement!" onclick="javascript:setMixPanelProperty('Email');void(0);" class="bottomstickybtn st-email" data-toggle="tooltipemailwahtaap" data-placement="right" title="b2b@fibre2fashion.com" id="F2FLeadFormEventData"> <i class="fa fa-lg fa-envelope-o"></i> </a> </div> <script> $(document).ready(function () { //MixpanelWrapper.EventTracking(myObject); $('[data-toggle="tooltipemailwahtaap"]').tooltip(); }); var myObject = { F2FEventType: JSConstants.EventType.IconClicked, F2FEventName: JSConstants.EventName.IconClicked, F2FSection: JSConstants.Section.Footer, F2FType: JSConstants.Type.Sticky, }; function setMixPanelProperty(text) { myObject.F2FText = text; MixpanelWrapper.EventTracking(myObject); } </script> <button type="button" data-f2feventclicktrack="{&quot;F2FEventName&quot;:&quot;CTA Clicked&quot;,&quot;F2FEventType&quot;:&quot;CTA Clicked&quot;,&quot;F2FSection&quot;:&quot;Middle&quot;,&quot;F2FType&quot;:&quot;Sticky&quot;,&quot;F2FText&quot;:&quot;Tell Us Your Requirement&quot;}" class="tellusvertical-btn" id="btnmodelpopup" data-toggle="modal" data-target="#tellusyourrequirments"> <span> Tell us your Requirement </span> </button> <div class="modal fade" id="tellusyourrequirments" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-body"> <div id="tellus"><h1>Tell us your Requirement</h1></div> <button type="button" class="close" id="popupclose" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true">&times;</span> </button> <div class="tell-requirement-mianV1" id="tell-requirement-mianV1"> <form action="/dyes/Lead/SaveStickyExpressPosting" id="StickyExpressPostFormV1" method="post" role="form"> <input name="__RequestVerificationToken" type="hidden" value="QsBQ_40wDeIiK8Li5M0s0m2YHRCUWalNI5h6QvLQfIdwgdWXVBKQUM-O6Fb8WoeMlMguMeSA2uuxVEukyUPHIk4d1QU1" /> <div class=""> <div class="radio-inline-mian" style="display:none;"> <div class="radio-inline-group"> Business: </div> <div class="radio-inline"> <label class="radio-inline"> <input Checked="checked" data-val="true" data-val-required="Required" id="Business" name="Business" type="radio" value="Make to order" />Make to order </label> <label class="radio-inline"> <input id="Business" name="Business" type="radio" value="Wholesale" /> Wholesale </label> <span class="red-txt"><span class="field-validation-valid" data-valmsg-for="Business" data-valmsg-replace="true"></span></span> </div> </div> <div class="radio-inline-mian"> <div class="radio-inline-group"> Posting Type: </div> <div class="radio-inline"> <label class="radio-inline"> <input data-val="true" data-val-required="Please select posting type" id="PostingType" name="PostingType" type="radio" value="Buyer" />Buyer </label> <label class="radio-inline"> <input id="PostingType" name="PostingType" type="radio" value="Seller" />Seller </label> </div> <div class="radio-wrapper"> <span class="red-txt"><span class="field-validation-valid" data-valmsg-for="PostingType" data-valmsg-replace="true"></span></span> </div> </div> </div> <div class="row"> <div class="col-lg-12 col-md-12 col-sm-12"> <div class="form-group"> <input data-val="true" data-val-number="The field Select Products: must be a number." data-val-required="The Select Products: field is required." id="SProductId" name="ProductId" type="hidden" value="0" /> <input class="form-control" data-val="true" data-val-required="Please select product" datacontrol="autocomplete" hiddencontorl="ProductId" id="SProductName" labelkey="Name" name="ProductName" onfocus="return removeRedBorder();" param2="" placeholder="Search Product" sourceurl="Lead/GetProductListByTerm" type="text" value="" valuekey="Value" /> <select class="form-control hidden" data-val="true" data-val-number="The field Select Category: must be a number." data-val-required="Please select category" id="SddlCategoryId" name="CategoryId"><option value="">Select Category</option> <option value="2">Clothing Accessory</option> <option value="3">Dyes &amp; Chemical</option> <option value="8">Fabric</option> <option value="6">Fashion Accessory</option> <option value="10">Fibre &amp; FeedStock</option> <option value="1">Garment</option> <option value="7">Home Textiles</option> <option value="4">Leather &amp; Footwear</option> <option value="5">Machinery</option> <option value="9">Yarn</option> </select> <input id="SCategoryId" name="CategoryId" type="hidden" value="0" /> <input id="SCategoryName" name="CategoryName" type="hidden" value="" /> <span class="red-txt"> <span class="field-validation-valid" data-valmsg-for="ProductName" data-valmsg-replace="true"></span> </span> </div> </div> <div class="col-lg-6 col-md-12 col-sm-12"> <div class="form-group"> <input Value="" class="form-control" data-val="true" data-val-required="Please enter company name" id="SCompanyName" name="CompanyName" placeholder="Company" type="text" value="" /> <span class="red-txt"><span class="field-validation-valid" data-valmsg-for="CompanyName" data-valmsg-replace="true"></span></span> </div> </div> <div class="col-lg-6 col-md-12 col-sm-12"> <div class="form-group"> <input Value="" class="form-control" data-val="true" data-val-required="Please enter contact name" id="SContactName" name="ContactName" placeholder="Name" type="text" value="" /> <span class="red-txt"><span class="field-validation-valid" data-valmsg-for="ContactName" data-valmsg-replace="true"></span></span> </div> </div> <div class="col-lg-6 col-md-12 col-sm-12"> <div class="form-group"> <input Value="" class="form-control" data-val="true" data-val-required="Please enter business email" id="SEmail" name="Email" placeholder="Business Email" type="text" valtype="Email" value="" /> <span class="red-txt"><span class="field-validation-valid" data-valmsg-for="Email" data-valmsg-replace="true"></span></span> </div> </div> <div class="col-lg-6 col-md-12 col-sm-12"> <div class="form-group"> <input Value="" class="form-control" data-val="true" data-val-regex="This is a Number field and allows only number i.e 0 to 9" data-val-regex-pattern="^[+0-9]*$" data-val-required="Please enter contact number" id="SContactNumber" maxlength="20" name="ContactNumber" placeholder="Number" type="text" value="" /> <span class="red-txt"><span class="field-validation-valid" data-valmsg-for="ContactNumber" data-valmsg-replace="true"></span></span> </div> </div> <div class="col-lg-6 col-md-12 col-sm-12"> <div class="form-group"> <select class="form-control" data-val="true" data-val-required="Please select country" id="InquiryNowCountry" name="Country"><option value="">Select Country</option> <option value="Afghanistan">Afghanistan</option> <option value="Albania">Albania</option> <option value="Algeria">Algeria</option> <option value="Andorra">Andorra</option> <option value="Angola">Angola</option> <option value="Antigua and Barbuda">Antigua and Barbuda</option> <option value="Argentina">Argentina</option> <option value="Armenia">Armenia</option> <option value="Aruba">Aruba</option> <option value="Australia">Australia</option> <option value="Austria">Austria</option> <option value="Azerbaijan">Azerbaijan</option> <option value="Bahamas">Bahamas</option> <option value="Bahrain">Bahrain</option> <option value="Bangladesh">Bangladesh</option> <option value="Barbados ">Barbados </option> <option value="Belarus">Belarus</option> <option value="Belgium">Belgium</option> <option value="Belize">Belize</option> <option value="Benin">Benin</option> <option value="Bhutan ">Bhutan </option> <option value="Bolivia">Bolivia</option> <option value="Bosnia and Herzegovina">Bosnia and Herzegovina</option> <option value="Botswana">Botswana</option> <option value="Brazil">Brazil</option> <option value="Brunei">Brunei</option> <option value="Bulgaria">Bulgaria</option> <option value="Burkina Faso">Burkina Faso</option> <option value="Burundi">Burundi</option> <option value="Cambodia">Cambodia</option> <option value="Cameroon">Cameroon</option> <option value="Canada">Canada</option> <option value="Cayman Islands">Cayman Islands</option> <option value="Chad">Chad</option> <option value="Chile">Chile</option> <option value="China">China</option> <option value="Colombia">Colombia</option> <option value="Congo">Congo</option> <option value="Costa Rica">Costa Rica</option> <option value="Cote d Ivoire">Cote d Ivoire</option> <option value="Croatia">Croatia</option> <option value="Cuba">Cuba</option> <option value="Cyprus">Cyprus</option> <option value="Czech Republic">Czech Republic</option> <option value="Denmark">Denmark</option> <option value="Djibouti">Djibouti</option> <option value="Dominica">Dominica</option> <option value="Dominican Republic">Dominican Republic</option> <option value="Ecuador">Ecuador</option> <option value="Egypt">Egypt</option> <option value="El Salvador">El Salvador</option> <option value="Eritrea">Eritrea</option> <option value="Estonia">Estonia</option> <option value="Ethiopia">Ethiopia</option> <option value="Fiji">Fiji</option> <option value="Finland">Finland</option> <option value="France">France</option> <option value="French Polynesia">French Polynesia</option> <option value="Gabon">Gabon</option> <option value="Gambia">Gambia</option> <option value="Georgia">Georgia</option> <option value="Germany">Germany</option> <option value="Ghana">Ghana</option> <option value="Greece">Greece</option> <option value="Grenada">Grenada</option> <option value="Guatemala">Guatemala</option> <option value="Guinea">Guinea</option> <option value="Guyana">Guyana</option> <option value="Haiti">Haiti</option> <option value="Honduras">Honduras</option> <option value="Hong Kong">Hong Kong</option> <option value="Hungary">Hungary</option> <option value="Iceland">Iceland</option> <option value="India">India</option> <option value="Indonesia">Indonesia</option> <option value="Iran">Iran</option> <option value="Iraq">Iraq</option> <option value="Ireland">Ireland</option> <option value="Israel">Israel</option> <option value="Italy">Italy</option> <option value="Jamaica">Jamaica</option> <option value="Japan">Japan</option> <option value="Jordan">Jordan</option> <option value="Kazakhstan">Kazakhstan</option> <option value="Kenya">Kenya</option> <option value="Korea">Korea</option> <option value="kosovo">kosovo</option> <option value="Kuwait">Kuwait</option> <option value="Kyrgyzstan">Kyrgyzstan</option> <option value="Laos">Laos</option> <option value="Latvia">Latvia</option> <option value="Lebanon">Lebanon</option> <option value="Lesotho">Lesotho</option> <option value="Liberia">Liberia</option> <option value="Libya">Libya</option> <option value="Liechtenstein">Liechtenstein</option> <option value="Lithuania">Lithuania</option> <option value="Luxembourg">Luxembourg</option> <option value="Macau">Macau</option> <option value="Macedonia">Macedonia</option> <option value="Madagascar">Madagascar</option> <option value="Malawi">Malawi</option> <option value="Malaysia">Malaysia</option> <option value="Maldives ">Maldives </option> <option value="Mali">Mali</option> <option value="Malta">Malta</option> <option value="Mauritania">Mauritania</option> <option value="Mauritius">Mauritius</option> <option value="Mexico">Mexico</option> <option value="Micronesia">Micronesia</option> <option value="Moldova">Moldova</option> <option value="Monaco ">Monaco </option> <option value="Mongolia">Mongolia</option> <option value="Morocco">Morocco</option> <option value="Mozambique">Mozambique</option> <option value="Myanmar">Myanmar</option> <option value="Namibia">Namibia</option> <option value="Nepal">Nepal</option> <option value="Netherlands">Netherlands</option> <option value="Netherlands Antilles">Netherlands Antilles</option> <option value="New Caledonia">New Caledonia</option> <option value="New Zealand">New Zealand</option> <option value="Nicaragua">Nicaragua</option> <option value="Niger">Niger</option> <option value="Nigeria">Nigeria</option> <option value="Norway">Norway</option> <option value="Oman">Oman</option> <option value="Pakistan">Pakistan</option> <option value="Palestine">Palestine</option> <option value="Panama">Panama</option> <option value="Papua New Guinea">Papua New Guinea</option> <option value="Paraguay">Paraguay</option> <option value="Peru">Peru</option> <option value="Philippines">Philippines</option> <option value="Poland">Poland</option> <option value="Portugal">Portugal</option> <option value="Puerto Rico">Puerto Rico</option> <option value="Qatar">Qatar</option> <option value="Romania">Romania</option> <option value="Russia">Russia</option> <option value="Rwanda">Rwanda</option> <option value="Sahara">Sahara</option> <option value="Samoa ">Samoa </option> <option value="San Marino">San Marino</option> <option value="Saudi Arabia">Saudi Arabia</option> <option value="Senegal">Senegal</option> <option value="Serbia">Serbia</option> <option value="Seychelles ">Seychelles </option> <option value="Sierra Leone">Sierra Leone</option> <option value="Singapore">Singapore</option> <option value="Slovakia">Slovakia</option> <option value="Slovenia">Slovenia</option> <option value="Somalia">Somalia</option> <option value="South Africa">South Africa</option> <option value="Spain">Spain</option> <option value="Sri Lanka">Sri Lanka</option> <option value="Sudan">Sudan</option> <option value="Surinam">Surinam</option> <option value="Swaziland">Swaziland</option> <option value="Sweden">Sweden</option> <option value="Switzerland">Switzerland</option> <option value="Syria">Syria</option> <option value="Taiwan">Taiwan</option> <option value="Tajikistan">Tajikistan</option> <option value="Tanzania">Tanzania</option> <option value="Thailand">Thailand</option> <option value="Togo">Togo</option> <option value="Trinidad &amp; Tobago">Trinidad &amp; Tobago</option> <option value="Tunisia">Tunisia</option> <option value="Turkey">Turkey</option> <option value="Turkmenistan">Turkmenistan</option> <option value="Uganda">Uganda</option> <option value="Ukraine">Ukraine</option> <option value="United Arab Emirates">United Arab Emirates</option> <option value="United Kingdom">United Kingdom</option> <option value="United States Of America">United States Of America</option> <option value="Uruguay">Uruguay</option> <option value="Uzbekistan">Uzbekistan</option> <option value="Vanuatu">Vanuatu</option> <option value="Vatican city">Vatican city</option> <option value="Venezuela">Venezuela</option> <option value="Vietnam">Vietnam</option> <option value="Yemen">Yemen</option> <option value="Yugoslavia">Yugoslavia</option> <option value="Zambia">Zambia</option> <option value="Zimbabwe">Zimbabwe</option> </select> <span class="red-txt"> <span class="field-validation-valid" data-valmsg-for="Country" data-valmsg-replace="true"></span></span> </div> </div> <div class="col-lg-6 col-md-12 col-sm-12"> <div class="form-group"> <input Value="" class="form-control" data-val="true" data-val-required="Please enter city name" id="City" name="City" placeholder="City" type="text" value="" /> <span class="red-txt"><span class="field-validation-valid" data-valmsg-for="City" data-valmsg-replace="true"></span></span> </div> </div> <div class="col-lg-12 col-md-12 col-sm-12"> <div class="form-group" style="display:flex;"> <p id="TermsCondition">By submitting, you agree to our <a href="https://www.fibre2fashion.com/terms" target="_blank" style="text-decoration: underline !important; color: #7B86A6 !important;"> Terms of Use</a> and <a href="https://www.fibre2fashion.com/policy" target="_blank" style="text-decoration: underline !important; color: #7B86A6 !important;"> Privacy Policy. </a></p> </div> </div> </div> <input id="F2FLeadFormEventData" name="F2FLeadFormEventData" type="hidden" value="{&quot;F2FFormType&quot;:&quot;B2B&quot;,&quot;F2FFormTitle&quot;:&quot;Tell us your Requirement&quot;,&quot;F2FSubscriptionDate&quot;:null,&quot;F2FIsSubscribed&quot;:false,&quot;F2FSubscriptionType&quot;:null,&quot;F2FEventName&quot;:&quot;Lead Form Submitted&quot;,&quot;F2FEventType&quot;:&quot;Lead Form Submitted&quot;,&quot;F2FBlockName&quot;:null,&quot;F2FSection&quot;:null,&quot;F2FType&quot;:&quot;Popup&quot;,&quot;F2FText&quot;:null,&quot;F2FProductName&quot;:null}"> <div class="col-lg-12 col-md-12 col-sm-12"> <div class="tell-requirement-btn"> <button id="SaveStickyExpressPostingV1">Submit</button> </div> </div> </form> </div> <div id="EP-formthankyouV1" style="display:none;"> <div class="thanksMsg"> <p>Thank you.</p> <p>We will contact you shortly.</p> </div> </div> <script src="/dyes/bundles/CategoryHome?v=_k0Zsn-_hSISjOrQrFJjl5Auu4KUP1Y5GNv8aSE7eP81"></script> <script> jQuery(document).ready(function () { var text = htmlDecode('By submitting, you agree to our &lt;a href=&quot;https://www.fibre2fashion.com/terms&quot; target=&quot;_blank&quot; style=&quot;text-decoration: underline !important; color: #7B86A6 !important;&quot;&gt; Terms of Use&lt;/a&gt; and &lt;a href=&quot;https://www.fibre2fashion.com/policy&quot; target=&quot;_blank&quot; style=&quot;text-decoration: underline !important; color: #7B86A6 !important;&quot;&gt; Privacy Policy. &lt;/a&gt;'); $("#TermsCondition").html(text.toString()); jQuery("#SProductName").on("blur", GetStickyCategoryByProduct); jQuery("#SaveStickyExpressPostingV1").on("click", function (event) { event.preventDefault(); StickyExpressPostFormV1(); }); jQuery("#popupclose").on("click", function (event) { SetCookie("SP", "1", 0.57); }); var spval = ReadCookie("SP") var bannerpopup = $("div").hasClass("EmbeddedPBBanner"); if (spval == "") { if (bannerpopup == false) { var country = getCookie("Country"); if (country.toLowerCase() != "pakistan") { setTimeout(function () { $('#tellusyourrequirments').modal('show'); }, 4000); } } } jQuery("#popupBanner").on("click", function (event) { if (spval == "") { var country = getCookie("Country"); if (country.toLowerCase() != "pakistan") { setTimeout(function () { $('#tellusyourrequirments').modal('show'); }, 4000); } } }); $('.EmbeddedPBfootercloseButton').click(function () { if (spval == "") { var country = getCookie("Country"); if (country.toLowerCase() != "pakistan") { setTimeout(function () { $('#tellusyourrequirments').modal('show'); }, 4000); } } }); }) </script> <script> // extend jquery range validator to work for required checkboxes var defaultRangeValidator = $.validator.methods.range; $.validator.methods.range = function (value, element, param) { if (element.type === 'checkbox') { // if it's a checkbox return true if it is checked return element.checked; } else { // otherwise run the default validation function return defaultRangeValidator.call(this, value, element, param); } } </script> <div class="clearfix"></div> </div> </div> </div> </div> <script> jQuery(document).ready(function () { SetFormDataFromLocalStorage(true, "tell-requirement-mianV1"); }) </script> <script src="/dyes/bundles/SupplierList?v=fahy0EStLBZtvWBhP053pMIyeIEpAQeUQ0NLu8MCIi01"></script> <script type="text/javascript"> function ShowAdvanceSearch() { HideShow('searchicon'); B2BSearchshow(); $("#advsearchhide1").css("display", "none"); $("#advsearchhideB2B").css("display", "block"); } $(document).ready(function () { $('[data-role="popover"]').popover(); $('#InquiryBasketpopover').popover(); SetListRecordMessage(); var objSeller = { SubCategoryId: "64", ProductId: "0", Country: "", IsPremiumLead: "False", IsCorPorateLead: "False", IsTrustSign: "False", SellerListUrl: "https://www.fibre2fashion.com/dyes/dyes-suppliers-s64", RecordMessages: " &amp;lt;span class=&amp;quot;mens-wear-greyheading&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;", CallFrom: "Lead", EnqIdRefno: "", City: "", }; GetAjaxSellerList("/dyes/Supplier/List", objSeller); // Compare Product Basket Js CheckCompareBasketLead(); RegisterProductCompareSlider(); //Inquiry Product Basket js CheckInquiryBasketLead(); // Contat Send Inquiry ManageSendInquiryForContact("", window.location.hash); }); function RemoveCompareBasket(enqIdRefno) { DeleteCompareBasket(enqIdRefno, "/dyes/Lead/DeleteCompareBasket", "Suppliers"); } function ManageCompareBasket(obj) { if ($(obj).is(':checked')) { AddToCompareBasket(obj, "/dyes/Lead/AddToCompareBasket", "Suppliers", "5"); } else { DeleteCompareBasket($(obj).attr("compareid"), "/dyes/Lead/DeleteCompareBasket", "Suppliers"); } RegisterProductCompareSlider(); } function RemoveAllCompareBasket() { ClearAllCompareProduct("/dyes/Lead/ClearAllCompareBasket", "Suppliers") } function ManageInquiryBasket(obj) { let inquryText = '' if ($(obj).attr('InInquiryBasket').toLowerCase() === 'true') { inquryText = 'Remove Inquiry Basket' DeleteInquiryBasket($(obj).attr("InquiryId"), "/dyes/Lead/DeleteInquiryBasket", "Suppliers"); } else { inquryText = 'Add to Inquiry Basket' AddToInquiryBasket(obj, "/dyes/Lead/AddToInquiryBasket", "Suppliers", "5"); } var myObject = { F2FEventType: JSConstants.EventType.IconClicked, F2FEventName: JSConstants.EventName.IconClicked, F2FSection: JSConstants.Section.Middle, F2FType: JSConstants.Type.Sttc, F2FText: inquryText }; MixpanelWrapper.EventTracking(myObject); } function ManageFavourite(obj, EnqIdRefno, LeadDetailsUrl, ProductDisplyName) { var IsFavoriteLead = $(obj).attr('IsFavoriteLead'); if (IsFavoriteLead == 'False') { AddFavorite(obj, EnqIdRefno, "/dyes/Lead/AddFavorite", "Seller", LeadDetailsUrl, JSON.stringify(ProductDisplyName)); } else { DeleteFavorite(obj, EnqIdRefno, "/dyes/Lead/DeleteFavorite", "Seller"); } } function ManageSendInquiry() { SendInquiryProcess("/dyes/Lead/SendInquiryProcess", "Suppliers", "InquiryBasket"); } function ManageSendInquiryForContact(EnqIdrefNO, HasTag) { SendInquiryForContact("/dyes/Lead/SendInquiryProcess", "Suppliers", EnqIdrefNO, HasTag); } function RemoveAllInquiryBasket() { ClearAllInquiryBasket("/dyes/Lead/ClearAllInquiryBasket", "Suppliers"); } /*banner script start*/ var pgname = window.location.pathname; if (pgname.toLowerCase() == "/searchresult.aspx") { undefine = "undefine"; aurl = window.location.href; var vSid = getQueryString('Sid', aurl); // var vS = getQueryString('S', aurl); // "" (present with empty value) var vPid = getQueryString('Pid', aurl); // "" (present with no value) var vP = getQueryString('P', aurl); var vCid = getQueryString('Cid', aurl); var vCity = getQueryString('City', aurl); var vrefNo = getQueryString('refNo', aurl); var vC = getQueryString('C', aurl); // lead category * var vType = getQueryString('Type', aurl);// lead type * var curl = vType + "," + vC; if (vSid != "" && vSid != undefine) { curl = curl + "," + vSid; } if (vS != "" && vS != undefine) { curl = curl + "," + vS; } if (vPid != "" && vPid != undefine) { curl = curl + "," + vPid; } if (vP != "" && vP != undefine) { vP = decodeURIComponent(vP).replace(/[/#+_)(]/g, " "); vP = vP.replace(/[&]/g, ""); //vP = vP.replace(/[/#+_)(]/g, " "); var vpa = vP.replace(/[/#+_)(]/g, " "); vpa = vpa.replace(/[" "]/g, ","); vpa = vpa.replace(/[&]/g, ""); // vpa = vpa.replace(/[",,"]/g, ","); curl = curl + "," + vP + "," + vpa; curl = encodeURIComponent(curl); // curl = curl.replace(/[,,]/g, ","); } if (vCid != "" && vCid != undefine) { curl = curl + "," + vCid; } if (vCity != "" && vCity != undefine) { curl = curl + "," + vCity; } if (vrefNo != "" && vrefNo != undefine) { curl = curl + "," + vrefNo; } curl = decodeURIComponent(curl); console.log("before " + curl); curl = curl.replace(/-+/g, ''); curl = curl.replace(/ +/g, ' '); curl = curl.replace(/,,+/g, ','); curl = curl.replace(/ ,+/g, ','); // GetBannerUrl(curl) } else { //curl = pgname var res = pgname.split("_"); var curla = res[0].replace("/", "") curla = curla.replace(/-/g, " ") var cutlb = curla.replace(" ", ",") var curl = curla + "," + cutlb // GetBannerUrl(curl) } function GetBannerUrl(curl) { var postData = { Curl: curl }; // alert("postData" + postData); // alert('IINn'); if (curl != "" && curl != undefined) { AjaxCall(BASEPATHURL + "Lead/GetBannerUrl", postData, "POST", "HTML", "GetBannerUrlSuccess"); } } function getQueryString(field, url) { var href = url ? url : window.location.href; var reg = new RegExp('[?&]' + field + '=([^&#]*)', 'i'); var string = reg.exec(href); return string ? string[1] : ""; }; function createCookie(name, value, hours) { var date, expires; var time, now; if (hours) { now = new Date(); time = now.getTime(); time += hours * 3600 * 1000; now.setTime(time); expires = "; expires=" + now.toUTCString(); } else { expires = ""; } document.cookie = name + "=" + value + expires + "; path=/"; } function getCookie(cname) { var name = cname + "="; var ca = document.cookie.split(';'); for (var i = 0; i < ca.length; i++) { var c = ca[i]; while (c.charAt(0) == ' ') { c = c.substring(1); } if (c.indexOf(name) == 0) { return c.substring(name.length, c.length); } } return ""; } </script> <script type="text/javascript" defer> $(document).ready(function () { PopUpAdvanceSearch(); }); function GetSearchProducts(ddlSearchSubCategory) { GetSearchProduct("/dyes/Lead/GetProducts", ddlSearchSubCategory); } function GetSearchSubCategoryProducts(ddlSearchCategory) { GetSearchSubCategoryProduct("/dyes/Lead/GetSubCategoryProducts", ddlSearchCategory); } </script> <link type="text/css" href="https://static.fibre2fashion.com/staticresources/css/colorbox.min.css?var=2.66" rel="stylesheet" /> <script defer> !function (t, e, i) { function n(i, n, o) { var r = e.createElement(i); return n && (r.id = Z + n), o && (r.style.cssText = o), t(r) } function o() { return i.innerHeight ? i.innerHeight : t(i).height() } function r(e, i) { i !== Object(i) && (i = {}), this.cache = {}, this.el = e, this.value = function (e) { var n; return void 0 === this.cache[e] && (n = t(this.el).attr("data-cbox-" + e), void 0 !== n ? this.cache[e] = n : void 0 !== i[e] ? this.cache[e] = i[e] : void 0 !== X[e] && (this.cache[e] = X[e])), this.cache[e] }, this.get = function (e) { var i = this.value(e); return t.isFunction(i) ? i.call(this.el, this) : i } } function h(t) { var e = W.length, i = (z + t) % e; return 0 > i ? e + i : i } function a(t, e) { return Math.round((/%/.test(t) ? ("x" === e ? E.width() : o()) / 100 : 1) * parseInt(t, 10)) } function s(t, e) { return t.get("photo") || t.get("photoRegex").test(e) } function l(t, e) { return t.get("retinaUrl") && i.devicePixelRatio > 1 ? e.replace(t.get("photoRegex"), t.get("retinaSuffix")) : e } function d(t) { "contains" in x[0] && !x[0].contains(t.target) && t.target !== v[0] && (t.stopPropagation(), x.focus()) } function c(t) { c.str !== t && (x.add(v).removeClass(c.str).addClass(t), c.str = t) } function g(e) { z = 0, e && e !== !1 ? (W = t("." + tt).filter(function () { var i = t.data(this, Y), n = new r(this, i); return n.get("rel") === e }), z = W.index(_.el), -1 === z && (W = W.add(_.el), z = W.length - 1)) : W = t(_.el) } function u(i) { t(e).trigger(i), at.triggerHandler(i) } function f(i) { var o; if (!G) { if (o = t(i).data("colorbox"), _ = new r(i, o), g(_.get("rel")), !$) { $ = q = !0, c(_.get("className")), x.css({ visibility: "hidden", display: "block", opacity: "" }), L = n(st, "LoadedContent", "width:0; height:0; overflow:hidden; visibility:hidden"), b.css({ width: "", height: "" }).append(L), D = T.height() + k.height() + b.outerHeight(!0) - b.height(), j = C.width() + H.width() + b.outerWidth(!0) - b.width(), A = L.outerHeight(!0), N = L.outerWidth(!0); var h = a(_.get("initialWidth"), "x"), s = a(_.get("initialHeight"), "y"), l = _.get("maxWidth"), f = _.get("maxHeight"); _.w = (l !== !1 ? Math.min(h, a(l, "x")) : h) - N - j, _.h = (f !== !1 ? Math.min(s, a(f, "y")) : s) - A - D, L.css({ width: "", height: _.h }), J.position(), u(et), _.get("onOpen"), O.add(I).hide(), x.focus(), _.get("trapFocus") && e.addEventListener && (e.addEventListener("focus", d, !0), at.one(rt, function () { e.removeEventListener("focus", d, !0) })), _.get("returnFocus") && at.one(rt, function () { t(_.el).focus() }) } v.css({ opacity: parseFloat(_.get("opacity")) || "", cursor: _.get("overlayClose") ? "pointer" : "", visibility: "visible" }).show(), _.get("closeButton") ? B.html(_.get("close")).appendTo(b) : B.appendTo("<div/>"), w() } } function p() { !x && e.body && (V = !1, E = t(i), x = n(st).attr({ id: Y, "class": t.support.opacity === !1 ? Z + "IE" : "", role: "dialog", tabindex: "-1" }).hide(), v = n(st, "Overlay").hide(), S = t([n(st, "LoadingOverlay")[0], n(st, "LoadingGraphic")[0]]), y = n(st, "Wrapper"), b = n(st, "Content").append(I = n(st, "Title"), R = n(st, "Current"), P = t('<button type="button"/>').attr({ id: Z + "Previous" }), K = t('<button type="button"/>').attr({ id: Z + "Next" }), F = n("button", "Slideshow"), S), B = t('<button type="button"/>').attr({ id: Z + "Close" }), y.append(n(st).append(n(st, "TopLeft"), T = n(st, "TopCenter"), n(st, "TopRight")), n(st, !1, "clear:left").append(C = n(st, "MiddleLeft"), b, H = n(st, "MiddleRight")), n(st, !1, "clear:left").append(n(st, "BottomLeft"), k = n(st, "BottomCenter"), n(st, "BottomRight"))).find("div div").css({ "float": "left" }), M = n(st, !1, "position:absolute; width:9999px; visibility:hidden; display:none; max-width:none;"), O = K.add(P).add(R).add(F), t(e.body).append(v, x.append(y, M))) } function m() { function i(t) { t.which > 1 || t.shiftKey || t.altKey || t.metaKey || t.ctrlKey || (t.preventDefault(), f(this)) } return x ? (V || (V = !0, K.click(function () { J.next() }), P.click(function () { J.prev() }), B.click(function () { J.close() }), v.click(function () { _.get("overlayClose") && J.close() }), t(e).bind("keydown." + Z, function (t) { var e = t.keyCode; $ && _.get("escKey") && 27 === e && (t.preventDefault(), J.close()), $ && _.get("arrowKey") && W[1] && !t.altKey && (37 === e ? (t.preventDefault(), P.click()) : 39 === e && (t.preventDefault(), K.click())) }), t.isFunction(t.fn.on) ? t(e).on("click." + Z, "." + tt, i) : t("." + tt).live("click." + Z, i)), !0) : !1 } function w() { var e, o, r, h = J.prep, d = ++lt; if (q = !0, U = !1, u(ht), u(it), _.get("onLoad"), _.h = _.get("height") ? a(_.get("height"), "y") - A - D : _.get("innerHeight") && a(_.get("innerHeight"), "y"), _.w = _.get("width") ? a(_.get("width"), "x") - N - j : _.get("innerWidth") && a(_.get("innerWidth"), "x"), _.mw = _.w, _.mh = _.h, _.get("maxWidth") && (_.mw = a(_.get("maxWidth"), "x") - N - j, _.mw = _.w && _.w < _.mw ? _.w : _.mw), _.get("maxHeight") && (_.mh = a(_.get("maxHeight"), "y") - A - D, _.mh = _.h && _.h < _.mh ? _.h : _.mh), e = _.get("href"), Q = setTimeout(function () { S.show() }, 100), _.get("inline")) { var c = t(e); r = t("<div>").hide().insertBefore(c), at.one(ht, function () { r.replaceWith(c) }), h(c) } else _.get("iframe") ? h(" ") : _.get("html") ? h(_.get("html")) : s(_, e) ? (e = l(_, e), U = new Image, t(U).addClass(Z + "Photo").bind("error", function () { h(n(st, "Error").html(_.get("imgError"))) }).one("load", function () { d === lt && setTimeout(function () { var e; t.each(["alt", "longdesc", "aria-describedby"], function (e, i) { var n = t(_.el).attr(i) || t(_.el).attr("data-" + i); n && U.setAttribute(i, n) }), _.get("retinaImage") && i.devicePixelRatio > 1 && (U.height = U.height / i.devicePixelRatio, U.width = U.width / i.devicePixelRatio), _.get("scalePhotos") && (o = function () { U.height -= U.height * e, U.width -= U.width * e }, _.mw && U.width > _.mw && (e = (U.width - _.mw) / U.width, o()), _.mh && U.height > _.mh && (e = (U.height - _.mh) / U.height, o())), _.h && (U.style.marginTop = Math.max(_.mh - U.height, 0) / 2 + "px"), W[1] && (_.get("loop") || W[z + 1]) && (U.style.cursor = "pointer", U.onclick = function () { J.next() }), U.style.width = U.width + "px", U.style.height = U.height + "px", h(U) }, 1) }), U.src = e) : e && M.load(e, _.get("data"), function (e, i) { d === lt && h("error" === i ? n(st, "Error").html(_.get("xhrError")) : t(this).contents()) }) } var v, x, y, b, T, C, H, k, W, E, L, M, S, I, R, F, K, P, B, O, _, D, j, A, N, z, U, $, q, G, Q, J, V, X = { html: !1, photo: !1, iframe: !1, inline: !1, transition: "elastic", speed: 300, fadeOut: 300, width: !1, initialWidth: "60%", innerWidth: !1, maxWidth: !1, height: !1, initialHeight: "auto", innerHeight: !1, maxHeight: !1, scalePhotos: !0, scrolling: !0, opacity: .7, preloading: !0, className: !1, overlayClose: !0, escKey: !0, arrowKey: !0, top: !1, bottom: !1, left: !1, right: !1, fixed: !1, data: void 0, closeButton: !0, fastIframe: !0, open: !1, reposition: !0, loop: !0, slideshow: !1, slideshowAuto: !0, slideshowSpeed: 2500, slideshowStart: "start slideshow", slideshowStop: "stop slideshow", photoRegex: /\.(gif|png|jp(e|g|eg)|bmp|ico|webp|jxr|svg)((#|\?).*)?$/i, retinaImage: !1, retinaUrl: !1, retinaSuffix: "@2x.$1", current: "image {current} of {total}", previous: "previous", next: "next", close: "close", xhrError: "This content failed to load.", imgError: "This image failed to load.", returnFocus: !0, trapFocus: !0, onOpen: !1, onLoad: !1, onComplete: !1, onCleanup: !1, onClosed: !1, rel: function () { return this.rel }, href: function () { return t(this).attr("href") }, title: function () { return this.title } }, Y = "colorbox", Z = "cbox", tt = Z + "Element", et = Z + "_open", it = Z + "_load", nt = Z + "_complete", ot = Z + "_cleanup", rt = Z + "_closed", ht = Z + "_purge", at = t("<a/>"), st = "div", lt = 0, dt = {}, ct = function () { function t() { clearTimeout(h) } function e() { (_.get("loop") || W[z + 1]) && (t(), h = setTimeout(J.next, _.get("slideshowSpeed"))) } function i() { F.html(_.get("slideshowStop")).unbind(s).one(s, n), at.bind(nt, e).bind(it, t), x.removeClass(a + "off").addClass(a + "on") } function n() { t(), at.unbind(nt, e).unbind(it, t), F.html(_.get("slideshowStart")).unbind(s).one(s, function () { J.next(), i() }), x.removeClass(a + "on").addClass(a + "off") } function o() { r = !1, F.hide(), t(), at.unbind(nt, e).unbind(it, t), x.removeClass(a + "off " + a + "on") } var r, h, a = Z + "Slideshow_", s = "click." + Z; return function () { r ? _.get("slideshow") || (at.unbind(ot, o), o()) : _.get("slideshow") && W[1] && (r = !0, at.one(ot, o), _.get("slideshowAuto") ? i() : n(), F.show()) } }(); t.colorbox || (t(p), J = t.fn[Y] = t[Y] = function (e, i) { var n, o = this; if (e = e || {}, t.isFunction(o)) o = t("<a/>"), e.open = !0; else if (!o[0]) return o; return o[0] ? (p(), m() && (i && (e.onComplete = i), o.each(function () { var i = t.data(this, Y) || {}; t.data(this, Y, t.extend(i, e)) }).addClass(tt), n = new r(o[0], e), n.get("open") && f(o[0])), o) : o }, J.position = function (e, i) { function n() { T[0].style.width = k[0].style.width = b[0].style.width = parseInt(x[0].style.width, 10) - j + "px", b[0].style.height = C[0].style.height = H[0].style.height = parseInt(x[0].style.height, 10) - D + "px" } var r, h, s, l = 0, d = 0, c = x.offset(); if (E.unbind("resize." + Z), x.css({ top: -9e4, left: -9e4 }), h = E.scrollTop(), s = E.scrollLeft(), _.get("fixed") ? (c.top -= h, c.left -= s, x.css({ position: "fixed" })) : (l = h, d = s, x.css({ position: "absolute" })), d += _.get("right") !== !1 ? Math.max(E.width() - _.w - N - j - a(_.get("right"), "x"), 0) : _.get("left") !== !1 ? a(_.get("left"), "x") : Math.round(Math.max(E.width() - _.w - N - j, 0) / 2), l += _.get("bottom") !== !1 ? Math.max(o() - _.h - A - D - a(_.get("bottom"), "y"), 0) : _.get("top") !== !1 ? a(_.get("top"), "y") : Math.round(Math.max(o() - _.h - A - D, 0) / 2), x.css({ top: c.top, left: c.left, visibility: "visible" }), y[0].style.width = y[0].style.height = "9999px", r = { width: _.w + N + j, height: _.h + A + D, top: l, left: d }, e) { var g = 0; t.each(r, function (t) { return r[t] !== dt[t] ? void (g = e) : void 0 }), e = g } dt = r, e || x.css(r), x.dequeue().animate(r, { duration: e || 0, complete: function () { n(), q = !1, y[0].style.width = _.w + N + j + "px", y[0].style.height = _.h + A + D + "px", _.get("reposition") && setTimeout(function () { E.bind("resize." + Z, J.position) }, 1), i && i() }, step: n }) }, J.resize = function (t) { var e; $ && (t = t || {}, t.width && (_.w = a(t.width, "x") - N - j), t.innerWidth && (_.w = a(t.innerWidth, "x")), L.css({ width: _.w }), t.height && (_.h = a(t.height, "y") - A - D), t.innerHeight && (_.h = a(t.innerHeight, "y")), t.innerHeight || t.height || (e = L.scrollTop(), L.css({ height: "auto" }), _.h = L.height()), L.css({ height: _.h }), e && L.scrollTop(e), J.position("none" === _.get("transition") ? 0 : _.get("speed"))) }, J.prep = function (i) { function o() { return _.w = _.w || L.width(), _.w = _.mw && _.mw < _.w ? _.mw : _.w, _.w } function a() { return _.h = _.h || L.height(), _.h = _.mh && _.mh < _.h ? _.mh : _.h, _.h } if ($) { var d, g = "none" === _.get("transition") ? 0 : _.get("speed"); L.remove(), L = n(st, "LoadedContent").append(i), L.hide().appendTo(M.show()).css({ width: o(), overflow: _.get("scrolling") ? "auto" : "hidden" }).css({ height: a() }).prependTo(b), M.hide(), t(U).css({ "float": "none" }), c(_.get("className")), d = function () { function i() { t.support.opacity === !1 && x[0].style.removeAttribute("filter") } var n, o, a = W.length; $ && (o = function () { clearTimeout(Q), S.hide(), u(nt), _.get("onComplete") }, I.html(_.get("title")).show(), L.show(), a > 1 ? ("string" == typeof _.get("current") && R.html(_.get("current").replace("{current}", z + 1).replace("{total}", a)).show(), K[_.get("loop") || a - 1 > z ? "show" : "hide"]().html(_.get("next")), P[_.get("loop") || z ? "show" : "hide"]().html(_.get("previous")), ct(), _.get("preloading") && t.each([h(-1), h(1)], function () { var i, n = W[this], o = new r(n, t.data(n, Y)), h = o.get("href"); h && s(o, h) && (h = l(o, h), i = e.createElement("img"), i.src = h) })) : O.hide(), _.get("iframe") ? (n = e.createElement("iframe"), "frameBorder" in n && (n.frameBorder = 0), "allowTransparency" in n && (n.allowTransparency = "true"), _.get("scrolling") || (n.scrolling = "no"), t(n).attr({ src: _.get("href"), name: (new Date).getTime(), "class": Z + "Iframe", allowFullScreen: !0 }).one("load", o).appendTo(L), at.one(ht, function () { n.src = "//about:blank" }), _.get("fastIframe") && t(n).trigger("load")) : o(), "fade" === _.get("transition") ? x.fadeTo(g, 1, i) : i()) }, "fade" === _.get("transition") ? x.fadeTo(g, 0, function () { J.position(0, d) }) : J.position(g, d) } }, J.next = function () { !q && W[1] && (_.get("loop") || W[z + 1]) && (z = h(1), f(W[z])) }, J.prev = function () { !q && W[1] && (_.get("loop") || z) && (z = h(-1), f(W[z])) }, J.close = function () { $ && !G && (G = !0, $ = !1, u(ot), _.get("onCleanup"), E.unbind("." + Z), v.fadeTo(_.get("fadeOut") || 0, 0), x.stop().fadeTo(_.get("fadeOut") || 0, 0, function () { x.hide(), v.hide(), u(ht), L.remove(), setTimeout(function () { G = !1, u(rt), _.get("onClosed") }, 1) })) }, J.remove = function () { x && (x.stop(), t.colorbox.close(), x.stop().remove(), v.remove(), G = !1, x = null, t("." + tt).removeData(Y).removeClass(tt), t(e).unbind("click." + Z)) }, J.element = function () { return t(_.el) }, J.settings = X) }(jQuery, document, window); </script> <!--START - Script for Live Chat in B2B - Buyer/Supplier.--> <script type="text/javascript" defer> var onImgLoad = function (selector, callback) { $(selector).each(function () { if (this.complete || /*for IE 10-*/ $(this).height() > 0) { callback.apply(this); } else { $(this).on('load', function () { callback.apply(this); }); } }); }; onImgLoad('.load-wraper .garment-suppliers-details img', function () { //setTimeout(function () { $('.load-wraper').removeClass("not-loaded"); //}, 100); }); function getCookie(cname) { var name = cname + "="; var ca = document.cookie.split(';'); for (var i = 0; i < ca.length; i++) { var c = ca[i]; while (c.charAt(0) == ' ') { c = c.substring(1); } if (c.indexOf(name) == 0) { return c.substring(name.length, c.length); } } return ""; } //$(document.body).on('click', '.mck-box-close', function () { $(".zsiq_floatmain").css("transform", "translateX(0px)") }); //$(".applozic-launcher").click(function () { if (!$(".mck-sidebox").hasClass("in")) { $(".zsiq_floatmain").css("transform", "translateX(-295px)") } }); $(document).ready(function () { var isB2BDashBoardVisited = false; if (document.cookie.indexOf("B2BDashBoardVisit") >= 0) { var B2BDashBoardVisit = getCookie("B2BDashBoardVisit"); if (B2BDashBoardVisit == "1") { isB2BDashBoardVisited = true; } } if (!isB2BDashBoardVisited) { $(".f2ftopmenu .join-free-btn .btn").each(function () { if ($(this).text().trim() == "Dashboard") { $(this).attr({ "id": "introID" }); setTimeout(function () { window.scrollTo(0, 0); boneVojage([ { selector: '#introID', text: 'Have you checked out the latest B2B dashboard?<br><br><button id="close" class="remindMeLater">Remind me later</button>' } ], { map: false, offset: 10 }); SetCookie("B2BDashBoardVisit", "1", 5); $("html,body").css({ "height": "100%", "overflow": "hidden" }) }, 20000); } }); } $(document).on("click", "#close", function () { $("html,body").css({ "height": "auto", "overflow": "auto" }); }); }); </script> <script defer> var owl = $('.garment-suppliers-details'); if (owl.children().length > 1) { owl.owlCarousel({ nav: true, loop: true, dots: true, autoplay: true, smartSpeed: 1500, autoplay: 30000, responsive: { 0: { items: 1 }, 768: { items: 1 }, 1024: { items: 1 }, 1200: { items: 1 } } }); } else { owl.removeClass("owl-carousel"); } var owlbuyer = $('.top-buying-wrap-details'); owlbuyer.owlCarousel({ nav: true, loop: true, dots: false, autoplay: false, smartSpeed: 700, //autoplay: 10000, responsive: { 0: { items: 3, slideBy: 3 }, 768: { items: 3, slideBy: 3 }, 1024: { items: 4, slideBy: 4 }, 1200: { items: 6, slideBy: 6 } } }); var owls = $('.top-selling-wrap-details'); owls.owlCarousel({ nav: true, loop: true, dots: false, autoplay: false, smartSpeed: 700, //autoplay: 10000, responsive: { 0: { items: 3, slideBy: 3 }, 768: { items: 3, slideBy: 3 }, 1024: { items: 4, slideBy: 4 }, 1200: { items: 6, slideBy: 6 } } }); let widthArry = [{ min: 0, max: 768, nos: 3 }, { min: 992, max: 1024, nos: 4 }, { min: 1200, max: 10000, nos: 5 }]; let ww = $(window).width(); let counteritem = 0; for (let i = 0; i < widthArry.length; i++) { if (parseInt(ww) > widthArry[i]["min"] && parseInt(ww) < widthArry[i]["max"]) { counteritem = widthArry[i]["nos"]; break; } } if ($(".premium-suppliers-slider").children().length > counteritem) { var owlps = $('.premium-suppliers-slider'); owlps.owlCarousel({ nav: true, loop: true, dots: false, autoplay: false, smartSpeed: 700, //autoplay: 10000, responsive: { 0: { items: 3, slideBy: 3 }, 768: { items: 3, slideBy: 3 }, 992: { items: 4, slideBy: 4 }, 1024: { items: 4, slideBy: 4 }, 1200: { items: 5, slideBy: 5 } } }); } </script> <script defer> function htmlDecode(input) { var doc = new DOMParser().parseFromString(input, "text/html"); return doc.documentElement.textContent; } </script> <!--END - Script for Live Chat in B2B - Buyer/Supplier.--> <script defer> var $zoho = $zoho || {}; $zoho.salesiq = $zoho.salesiq || { widgetcode: "1bdfe4140c7f73340455e7bd8da2cda1ba2bcc9d8e36d10138e82e8bf3f0c943", values: {}, ready: function () { ZohoChatCustomFields(); $(document).on('click', '#zsiq_float', function () { SalesChatOpen(); }); SalesChatCollapse(); SalesChatPostOnlineMessage(); SalesChatPostOfflineMessage(); } }; var d = document; s = d.createElement("script"); s.type = "text/javascript"; s.id = "zsiqscript"; s.defer = true; s.src = "https://salesiq.zoho.com/widget"; t = d.getElementsByTagName("script")[0]; t.parentNode.insertBefore(s, t); d.write("<div id='zsiqwidget'></div>"); </script> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10