Advertisement
AndrewHaxalot

vglnk.js

Jan 17th, 2014
146
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  /*
  2.  VigLink JavaScript Library -- http://www.viglink.com
  3.  
  4.  Permission is hereby granted to create derivative works, but only for use
  5.  with the VigLink web service.
  6.  
  7.  Copyright (c) 2014 VigLink. Rights reserved and patent(s) pending.
  8. */
  9. (function(i) {
  10.     var e, u = function(a, b) {
  11.         try {
  12.             return ("function" === typeof window[b] || "object" === typeof window[b]) && a instanceof window[b]
  13.         } catch (d) {
  14.         }
  15.         return !1
  16.     }, c = {_breaker: {},each: function(a, b) {
  17.             var d, f;
  18.             if ("object" === c.type(a) && a.hasOwnProperty)
  19.                 for (d in a) {
  20.                     if (a.hasOwnProperty(d) && b(a[d], d) === c._breaker)
  21.                         break
  22.                 }
  23.             else if (a) {
  24.                 d = 0;
  25.                 for (f = a.length; d < f && b(a[d], d) !== c._breaker; d++)
  26.                     ;
  27.             }
  28.         },extend: function(a) {
  29.             var b, d, f, c, g = arguments.length;
  30.             a = a || {};
  31.             for (d = 1; d < g; d++)
  32.                 if (c = arguments[d], void 0 !== c && null !== c)
  33.                     for (f in c)
  34.                         b = c[f], a !== b &&
  35.                         void 0 !== b && (a[f] = b);
  36.             return a
  37.         },noop: function() {
  38.         },type: function(a) {
  39.             return null === a ? "null" : void 0 === a ? "undefined" : u(a, "HTMLElement") || "object" === typeof a && 1 === a.nodeType && "string" === typeof a.nodeName ? "element" : u(a, "HTMLDocument") || "object" === typeof a && ("defaultView" in a || "parentWindow" in a) ? "document" : a == a.window ? "window" : Object.prototype.toString.call(a).slice(8, -1).toLowerCase()
  40.         }};
  41.     c.extend(c, {addClass: function(a, b) {
  42.             c.hasClass(a, b) || (a.className = (a.className ? a.className + " " : "") + b)
  43.         },attrValues: function(a,
  44.         b, d) {
  45.             return (b = a[b]) ? b.split(d || " ") : []
  46.         },bind: function(a, b) {
  47.             return function() {
  48.                 return a.apply(b, arguments)
  49.             }
  50.         },cache: function() {
  51.             var a = {}, b = "vglnk_" + (new Date).getTime(), d = 0;
  52.             return function(f, c, g) {
  53.                 if (f) {
  54.                     var h = f[b];
  55.                     if (h || void 0 !== g)
  56.                         return h || (h = ++d), a[h] || (f[b] = h, a[h] = {}), void 0 !== g && (a[h][c] = g), "string" === typeof c ? a[h][c] : a[h]
  57.                 }
  58.             }
  59.         }(),canonicalizeHostname: function(a) {
  60.             "string" === typeof a && (a = c.createA(a));
  61.             return a.hostname ? a.hostname.toString().toLowerCase().replace(/^www\./, "").replace(/:.*$/, "") : ""
  62.         },clone: function(a) {
  63.             return c.extend({},
  64.             a)
  65.         },contains: function(a, b) {
  66.             return -1 !== c.indexOf(a, b)
  67.         },context: function(a) {
  68.             "element" === c.type(a) && (a = a.ownerDocument);
  69.             "document" === c.type(a) && (a = a.defaultView || a.parentWindow);
  70.             if ("window" === c.type(a))
  71.                 return a
  72.         },containsPII: function(a) {
  73.             return /\b[A-Z0-9._%+-]+(?:%(?:25)*40|@)[A-Z0-9.-]+\.[A-Z]{2,4}\b/i.test(a)
  74.         },contextIsAncestor: function(a, b) {
  75.             for (var d = a.self; d.parent && d.parent !== d; )
  76.                 if (d = d.parent, d === b)
  77.                     return !0;
  78.             return !1
  79.         },cors: function(a) {
  80.             var b, d = function() {
  81.                 eval(b.responseText)
  82.             };
  83.             b = new window.XMLHttpRequest;
  84.             b.onreadystatechange = function() {
  85.                 4 === b.readyState && 200 === b.status && d()
  86.             };
  87.             try {
  88.                 b.open("GET", a), b.withCredentials = !0, b.send()
  89.             } catch (f) {
  90.                 return !1
  91.             }
  92.         },createA: function(a, b) {
  93.             return c.createEl("a", {href: a,target: b})
  94.         },createEl: function(a, b, d, f) {
  95.             var r;
  96.             a = (f || document).createElement(a);
  97.             b = b || {};
  98.             d = d || {};
  99.             for (r in b)
  100.                 void 0 !== b[r] && (a[r] = b[r]);
  101.             c.css(a, d);
  102.             return a
  103.         },css: function(a, b) {
  104.             for (var d in b)
  105.                 try {
  106.                     a.style[d] = b[d]
  107.                 } catch (f) {
  108.                 }
  109.             return a
  110.         },destructing: function(a) {
  111.             var b = !1, d;
  112.             return function() {
  113.                 b || (d = a.apply(null, arguments),
  114.                 b = !0);
  115.                 return d
  116.             }
  117.         },escapeRegExp: function() {
  118.             var a;
  119.             return function(b) {
  120.                 a = a || RegExp("([.*+?^${}()|[\\]\\\\])", "g");
  121.                 return b.replace(a, "\\$1")
  122.             }
  123.         }(),eventLink: function(a) {
  124.             var b, d = a.target || a.srcElement;
  125.             do {
  126.                 try {
  127.                     b = d.nodeType
  128.                 } catch (f) {
  129.                     break
  130.                 }
  131.                 if (1 === b && (a = d.tagName.toUpperCase(), "A" === a || "AREA" === a))
  132.                     return d;
  133.                 d = d.parentNode
  134.             } while (d)
  135.         },exceptionLogger: function() {
  136.             var a = !1, b = c.noop;
  137.             return function(d, f) {
  138.                 if (void 0 !== f)
  139.                     a = f, b = d;
  140.                 else
  141.                     return function() {
  142.                         if (a)
  143.                             try {
  144.                                 return d.apply(this, arguments)
  145.                             } catch (f) {
  146.                                 b(f)
  147.                             }
  148.                         else
  149.                             return d.apply(this,
  150.                             arguments)
  151.                     }
  152.             }
  153.         }(),find: function(a, b) {
  154.             var d;
  155.             c.each(a, function(a, r) {
  156.                 if (b(a, r))
  157.                     return d = a, c._breaker
  158.             });
  159.             return d
  160.         },generateNodeFilter: function() {
  161.             var a = function(a, f) {
  162.                 var c, g;
  163.                 f = "," + f.join(",") + ",";
  164.                 c = 0;
  165.                 for (g = a.length; c < g; c++)
  166.                     if (b(a[c], f))
  167.                         return !0;
  168.                 return !1
  169.             }, b = function(a, b) {
  170.                 return -1 !== b.indexOf("," + a + ",")
  171.             };
  172.             return function(d) {
  173.                 d = c.extend({custom: null,classes: [],rels: [],tags: []}, d);
  174.                 d.tags.length && (d.tags = "," + d.tags.join(",").toLowerCase() + ",");
  175.                 return function(f, r) {
  176.                     r = c.extend({ancestors: !0,self: !0}, r);
  177.                     var g = !0, h =
  178.                     !0, va = function(f, r) {
  179.                         var h;
  180.                         if (h = !(d.tags.length && b(f.nodeName.toLowerCase(), d.tags))) {
  181.                             if (h = d.classes.length) {
  182.                                 h = d.classes;
  183.                                 var g = c.attrValues(f, "className");
  184.                                 h = a(h, g)
  185.                             }
  186.                             if (h = !h) {
  187.                                 if (h = d.rels.length)
  188.                                     h = d.rels, g = c.attrValues(f, "rel"), h = b(f.nodeName.toLowerCase(), ",a,") && a(h, g);
  189.                                 h = !h && !("function" === c.type(d.custom) && d.custom(f, r))
  190.                             }
  191.                         }
  192.                         return h
  193.                     }, h = !r.self || va(f, !0);
  194.                     if (r.ancestors)
  195.                         for (; f.parentNode; )
  196.                             if (f = f.parentNode, 1 === f.nodeType && !va(f, !1)) {
  197.                                 g = !1;
  198.                                 break
  199.                             }
  200.                     return h && g
  201.                 }
  202.             }
  203.         }(),fromQuery: function(a) {
  204.             "?" === a.substr(0, 1) &&
  205.             (a = a.substr(1));
  206.             a = a.split("\x26");
  207.             var b = {};
  208.             c.each(a, function(a) {
  209.                 a = a.split("\x3d");
  210.                 b[decodeURIComponent(a[0])] = decodeURIComponent(a[1])
  211.             });
  212.             return b
  213.         },geometry: function() {
  214.             var a, b = arguments.length, d = Infinity, f = Infinity, r = -Infinity, g = -Infinity, h;
  215.             for (a = 0; a < b; a++)
  216.                 h = c.position(arguments[a]), d = Math.min(d, h.x), f = Math.min(f, h.y), r = Math.max(r, h.x + arguments[a].offsetWidth), g = Math.max(g, h.y + arguments[a].offsetHeight);
  217.             return {x: d,y: f,w: r - d,h: g - f,x1: d,y1: f,x2: r,y2: g}
  218.         },getActualHref: function(a) {
  219.             return c.cache(a, "href") ||
  220.             a.href
  221.         },hasAttrValue: function(a, b, d, f) {
  222.             return b ? c.contains(c.attrValues(a, b, f), d) : !1
  223.         },hasClass: function(a, b) {
  224.             return c.hasAttrValue(a, "className", b)
  225.         },hasRel: function(a, b) {
  226.             return c.hasAttrValue(a, "rel", b)
  227.         },indexOf: Array.prototype.indexOf ? function(a, b) {
  228.             return Array.prototype.indexOf.call(a, b)
  229.         } : function(a, b) {
  230.             var d, f;
  231.             d = 0;
  232.             for (f = a.length; d < f; d++)
  233.                 if (a[d] === b)
  234.                     return d;
  235.             return -1
  236.         },isArray: function(a) {
  237.             return "array" === c.type(a)
  238.         },isDefaultPrevented: function(a) {
  239.             return a.isDefaultPrevented && a.isDefaultPrevented() ||
  240.             !1 === a.returnValue || !0 === a.defaultPrevented
  241.         },jsonp: function(a) {
  242.             var b = document.getElementsByTagName("script")[0];
  243.             a = c.createEl("script", {type: "text/javascript",src: a});
  244.             b.parentNode.insertBefore(a, b)
  245.         },map: function(a, b) {
  246.             var d = [];
  247.             c.each(a, function(a, c) {
  248.                 void 0 !== a && (d[c] = b(a))
  249.             });
  250.             return d
  251.         },matches: function() {
  252.             try {
  253.                 return this.Sizzle.matchesSelector.apply(this.Sizzle, arguments)
  254.             } catch (a) {
  255.                 return !0
  256.             }
  257.         },on: function() {
  258.             var a;
  259.             return function(b, d, f) {
  260.                 var r, g;
  261.                 if (1 === arguments.length)
  262.                     a = b;
  263.                 else {
  264.                     if (2 === arguments.length) {
  265.                         if (!a)
  266.                             return;
  267.                         f = d;
  268.                         d = b;
  269.                         b = a
  270.                     }
  271.                     try {
  272.                         r = b["on" + d]
  273.                     } catch (h) {
  274.                     }
  275.                     "function" === typeof r && (b["on" + d] = c.bind(function(a) {
  276.                         a = a || window.event;
  277.                         var d = r.apply(b, arguments);
  278.                         this.exceptionLogger(function() {
  279.                             return a ? (void 0 !== d && !1 !== a.returnValue && (a.returnValue = d), c.isDefaultPrevented(a) && "function" === c.type(a.preventDefault) && a.preventDefault(), a.returnValue) : d
  280.                         })()
  281.                     }, this));
  282.                     g = c.exceptionLogger(function() {
  283.                         if (a.enabled())
  284.                             return f.apply(null, arguments)
  285.                     });
  286.                     b.addEventListener ? b.addEventListener(d, g, !1) : b.attachEvent && b.attachEvent("on" + d,
  287.                     g)
  288.                 }
  289.             }
  290.         }(),position: function(a) {
  291.             var b, d = 0, f = 0, c = 0, g = 0;
  292.             if (!a.offsetParent)
  293.                 return !1;
  294.             b = a;
  295.             do
  296.                 d += b.offsetLeft, f += b.offsetTop, b = b.offsetParent;
  297.             while (b);
  298.             b = a;
  299.             do
  300.                 c += b.scrollLeft, g += b.scrollTop, b = b.parentNode;
  301.             while (b && b !== document.body);
  302.             return {x: d - c,y: f - g}
  303.         },preventDefault: function(a) {
  304.             a.preventDefault && a.preventDefault();
  305.             return a.returnValue = !1
  306.         },ready: function() {
  307.             var a = !1, b = [], d = !1, f, r, g, h, e;
  308.             document.addEventListener ? g = function() {
  309.                 document.removeEventListener("DOMContentLoaded", g, !1);
  310.                 e()
  311.             } : document.attachEvent && (h =
  312.             function() {
  313.                 "complete" === document.readyState && (document.detachEvent("onreadystatechange", h), e())
  314.             });
  315.             f = function() {
  316.                 if (!a) {
  317.                     a = !0;
  318.                     if ("interactive" === document.readyState || "complete" === document.readyState)
  319.                         return e();
  320.                     if (document.addEventListener)
  321.                         document.addEventListener("DOMContentLoaded", g, !1);
  322.                     else if (document.attachEvent) {
  323.                         document.attachEvent("onreadystatechange", h);
  324.                         var b = !1;
  325.                         try {
  326.                             b = null === window.frameElement
  327.                         } catch (d) {
  328.                         }
  329.                         document.documentElement.doScroll && b && r()
  330.                     }
  331.                     c.on(window, "load", e)
  332.                 }
  333.             };
  334.             r = function() {
  335.                 if (!d) {
  336.                     try {
  337.                         document.documentElement.doScroll("left")
  338.                     } catch (a) {
  339.                         setTimeout(c.exceptionLogger(r),
  340.                         1);
  341.                         return
  342.                     }
  343.                     e()
  344.                 }
  345.             };
  346.             e = function() {
  347.                 if (!d) {
  348.                     if (!document.body)
  349.                         return setTimeout(c.exceptionLogger(e), 13);
  350.                     d = !0;
  351.                     b && (c.each(b, function(a) {
  352.                         a()
  353.                     }), b = null)
  354.                 }
  355.             };
  356.             return function(a) {
  357.                 f();
  358.                 d ? a() : b.push(a)
  359.             }
  360.         }(),reformatKeys: function(a) {
  361.             var b, d, f = function(a) {
  362.                 return "_" + a.toLowerCase()
  363.             };
  364.             for (b in a)
  365.                 d = b.replace(/([A-Z])/g, f), "object" === c.type(a[b]) && (a[b] = c.reformatKeys(a[b])), d !== b && (a[d] = a[b], delete a[b]);
  366.             return a
  367.         },removeClass: function(a, b) {
  368.             if (c.hasClass(a, b)) {
  369.                 var d, f, r = c.attrValues(a, "className");
  370.                 d = 0;
  371.                 for (f = r.length; d < f; d++)
  372.                     r[d] ===
  373.                     b && delete r[d];
  374.                 a.className = r.join(" ")
  375.             }
  376.         },request: function(a, b, d) {
  377.             var f, r;
  378.             d = c.extend({fn: c.noop,"return": !1,timeout: null}, d);
  379.             "string" === typeof d.fn ? b = c.extend(b, {jsonp: d.fn}) : "function" === typeof d.fn && (f = c.destructing(d.fn), r = c.uniqid("vglnk_jsonp_"), b = c.extend(b, {jsonp: r}), window[r] = c.exceptionLogger(function() {
  380.                 f.apply(this, arguments);
  381.                 window[r] = void 0
  382.             }), null !== d.timeout && setTimeout(c.exceptionLogger(f), d.timeout));
  383.             b = c.extend({format: "jsonp"}, b);
  384.             b = c.toQuery(b);
  385.             a = a + (b.length ? "?" : "") + b;
  386.             return d["return"] ?
  387.             a : c.traits.cors && !1 !== c.cors(a) ? !0 : c.jsonp(a)
  388.         },select: function() {
  389.             try {
  390.                 return this.Sizzle.apply(this.Sizzle, arguments)
  391.             } catch (a) {
  392.                 return []
  393.             }
  394.         },toArray: function(a) {
  395.             if (a && void 0 !== a.length)
  396.                 try {
  397.                     return Array.prototype.slice.call(a, 0)
  398.                 } catch (b) {
  399.                     var d, f, c = [];
  400.                     d = 0;
  401.                     for (f = a.length; d < f; d++)
  402.                         c[d] = a[d];
  403.                     return c
  404.                 }
  405.         },toQuery: function(a) {
  406.             var b, d = "";
  407.             for (b in a)
  408.                 null !== a[b] && void 0 !== a[b] && (d += "\x26" + encodeURIComponent(b) + "\x3d" + encodeURIComponent(a[b]));
  409.             return d.substr(1)
  410.         },transmitsPII: function(a) {
  411.             return c.containsPII(a + " " +
  412.             document.referrer)
  413.         },updateUrl: function(a, b) {
  414.             return c.extend(c.createA(a), b).href
  415.         },uniqid: function() {
  416.             var a = 0;
  417.             return function(b) {
  418.                 return (b || "") + (new Date).getTime() + a++
  419.             }
  420.         }()});
  421.     var p = function() {
  422.         var a = c.find(c.toArray(arguments), function(a) {
  423.             return "function" === c.type(a)
  424.         });
  425.         a && (c.Sizzle = a())
  426.     };
  427.     p.amd = !0;
  428.     var t = window, m = function(a, b, d, f) {
  429.         var c, g, h, e, H;
  430.         (b ? b.ownerDocument || b : x) !== B && O(b);
  431.         b = b || B;
  432.         d = d || [];
  433.         if (!a || "string" !== typeof a)
  434.             return d;
  435.         if (1 !== (e = b.nodeType) && 9 !== e)
  436.             return [];
  437.         if (I && !f) {
  438.             if (c = Ma.exec(a))
  439.                 if (h = c[1])
  440.                     if (9 ===
  441.                     e)
  442.                         if ((g = b.getElementById(h)) && g.parentNode) {
  443.                             if (g.id === h)
  444.                                 return d.push(g), d
  445.                         } else
  446.                             return d;
  447.                     else {
  448.                         if (b.ownerDocument && (g = b.ownerDocument.getElementById(h)) && ca(b, g) && g.id === h)
  449.                             return d.push(g), d
  450.                     }
  451.                 else {
  452.                     if (c[2])
  453.                         return P.apply(d, b.getElementsByTagName(a)), d;
  454.                     if ((h = c[3]) && l.getElementsByClassName && b.getElementsByClassName)
  455.                         return P.apply(d, b.getElementsByClassName(h)), d
  456.                 }
  457.             if (l.qsa && (!C || !C.test(a))) {
  458.                 g = c = z;
  459.                 h = b;
  460.                 H = 9 === e && a;
  461.                 if (1 === e && "object" !== b.nodeName.toLowerCase()) {
  462.                     e = o(a);
  463.                     (c = b.getAttribute("id")) ? g = c.replace(Na,
  464.                     "\\$\x26") : b.setAttribute("id", g);
  465.                     g = "[id\x3d'" + g + "'] ";
  466.                     for (h = e.length; h--; )
  467.                         e[h] = g + q(e[h]);
  468.                     h = na.test(a) && W(b.parentNode) || b;
  469.                     H = e.join(",")
  470.                 }
  471.                 if (H)
  472.                     try {
  473.                         return P.apply(d, h.querySelectorAll(H)), d
  474.                     } catch (i) {
  475.                     }finally {
  476.                         c || b.removeAttribute("id")
  477.                     }
  478.             }
  479.         }
  480.         var j;
  481.         a: {
  482.             a = a.replace(fa, "$1");
  483.             g = o(a);
  484.             if (!f && 1 === g.length) {
  485.                 c = g[0] = g[0].slice(0);
  486.                 if (2 < c.length && "ID" === (j = c[0]).type && l.getById && 9 === b.nodeType && I && k.relative[c[1].type]) {
  487.                     b = (k.find.ID(j.matches[0].replace(Q, R), b) || [])[0];
  488.                     if (!b) {
  489.                         j = d;
  490.                         break a
  491.                     }
  492.                     a = a.slice(c.shift().value.length)
  493.                 }
  494.                 for (e =
  495.                 ga.needsContext.test(a) ? 0 : c.length; e--; ) {
  496.                     j = c[e];
  497.                     if (k.relative[h = j.type])
  498.                         break;
  499.                     if (h = k.find[h])
  500.                         if (f = h(j.matches[0].replace(Q, R), na.test(c[0].type) && W(b.parentNode) || b)) {
  501.                             c.splice(e, 1);
  502.                             a = f.length && q(c);
  503.                             if (!a) {
  504.                                 P.apply(d, f);
  505.                                 j = d;
  506.                                 break a
  507.                             }
  508.                             break
  509.                         }
  510.                 }
  511.             }
  512.             oa(a, g)(f, b, !I, d, na.test(a) && W(b.parentNode) || b);
  513.             j = d
  514.         }
  515.         return j
  516.     }, s = function() {
  517.         function a(d, f) {
  518.             b.push(d + " ") > k.cacheLength && delete a[b.shift()];
  519.             return a[d + " "] = f
  520.         }
  521.         var b = [];
  522.         return a
  523.     }, v = function(a) {
  524.         a[z] = !0;
  525.         return a
  526.     }, A = function(a) {
  527.         var b = B.createElement("div");
  528.         try {
  529.             return !!a(b)
  530.         } catch (d) {
  531.             return !1
  532.         }finally {
  533.             b.parentNode &&
  534.             b.parentNode.removeChild(b)
  535.         }
  536.     }, X = function(a, b) {
  537.         for (var d = a.split("|"), f = a.length; f--; )
  538.             k.attrHandle[d[f]] = b
  539.     }, E = function(a, b) {
  540.         var d = b && a, f = d && 1 === a.nodeType && 1 === b.nodeType && (~b.sourceIndex || wa) - (~a.sourceIndex || wa);
  541.         if (f)
  542.             return f;
  543.         if (d)
  544.             for (; d = d.nextSibling; )
  545.                 if (d === b)
  546.                     return -1;
  547.         return a ? 1 : -1
  548.     }, Y = function(a) {
  549.         return function(b) {
  550.             return "input" === b.nodeName.toLowerCase() && b.type === a
  551.         }
  552.     }, Z = function(a) {
  553.         return function(b) {
  554.             var d = b.nodeName.toLowerCase();
  555.             return ("input" === d || "button" === d) && b.type === a
  556.         }
  557.     }, D = function(a) {
  558.         return v(function(b) {
  559.             b =
  560.             +b;
  561.             return v(function(d, f) {
  562.                 for (var c, g = a([], d.length, b), h = g.length; h--; )
  563.                     if (d[c = g[h]])
  564.                         d[c] = !(f[c] = d[c])
  565.             })
  566.         })
  567.     }, W = function(a) {
  568.         return a && typeof a.getElementsByTagName !== $ && a
  569.     }, aa = function() {
  570.     }, o = function(a, b) {
  571.         var d, f, c, g, h, e, H;
  572.         if (h = xa[a + " "])
  573.             return b ? 0 : h.slice(0);
  574.         h = a;
  575.         e = [];
  576.         for (H = k.preFilter; h; ) {
  577.             if (!d || (f = Oa.exec(h)))
  578.                 f && (h = h.slice(f[0].length) || h), e.push(c = []);
  579.             d = !1;
  580.             if (f = Pa.exec(h))
  581.                 d = f.shift(), c.push({value: d,type: f[0].replace(fa, " ")}), h = h.slice(d.length);
  582.             for (g in k.filter)
  583.                 if ((f = ga[g].exec(h)) && (!H[g] || (f =
  584.                 H[g](f))))
  585.                     d = f.shift(), c.push({value: d,type: g,matches: f}), h = h.slice(d.length);
  586.             if (!d)
  587.                 break
  588.         }
  589.         return b ? h.length : h ? m.error(a) : xa(a, e).slice(0)
  590.     }, q = function(a) {
  591.         for (var b = 0, d = a.length, f = ""; b < d; b++)
  592.             f += a[b].value;
  593.         return f
  594.     }, L = function(a, b, d) {
  595.         var f = b.dir, c = d && "parentNode" === f, g = Qa++;
  596.         return b.first ? function(b, d, g) {
  597.             for (; b = b[f]; )
  598.                 if (1 === b.nodeType || c)
  599.                     return a(b, d, g)
  600.         } : function(b, d, e) {
  601.             var o, j, i, s = J + " " + g;
  602.             if (e)
  603.                 for (; b = b[f]; ) {
  604.                     if ((1 === b.nodeType || c) && a(b, d, e))
  605.                         return !0
  606.                 }
  607.             else
  608.                 for (; b = b[f]; )
  609.                     if (1 === b.nodeType || c)
  610.                         if (i = b[z] || (b[z] =
  611.                         {}), (j = i[f]) && j[0] === s) {
  612.                             if (!0 === (o = j[1]) || o === K)
  613.                                 return !0 === o
  614.                         } else if (j = i[f] = [s], j[1] = a(b, d, e) || K, !0 === j[1])
  615.                             return !0
  616.         }
  617.     }, n = function(a) {
  618.         return 1 < a.length ? function(b, d, f) {
  619.             for (var c = a.length; c--; )
  620.                 if (!a[c](b, d, f))
  621.                     return !1;
  622.             return !0
  623.         } : a[0]
  624.     }, ha = function(a, b, d, f, c) {
  625.         for (var g, h = [], e = 0, H = a.length, o = null != b; e < H; e++)
  626.             if (g = a[e])
  627.                 if (!d || d(g, f, c))
  628.                     h.push(g), o && b.push(e);
  629.         return h
  630.     }, pa = function(a, b, d, f, c, e) {
  631.         f && !f[z] && (f = pa(f));
  632.         c && !c[z] && (c = pa(c, e));
  633.         return v(function(h, e, g, o) {
  634.             var j, i, s = [], q = [], n = e.length, l;
  635.             if (!(l = h)) {
  636.                 l = b ||
  637.                 "*";
  638.                 for (var k = g.nodeType ? [g] : g, p = [], v = 0, t = k.length; v < t; v++)
  639.                     m(l, k[v], p);
  640.                 l = p
  641.             }
  642.             l = a && (h || !b) ? ha(l, s, a, g, o) : l;
  643.             k = d ? c || (h ? a : n || f) ? [] : e : l;
  644.             d && d(l, k, g, o);
  645.             if (f) {
  646.                 j = ha(k, q);
  647.                 f(j, [], g, o);
  648.                 for (g = j.length; g--; )
  649.                     if (i = j[g])
  650.                         k[q[g]] = !(l[q[g]] = i)
  651.             }
  652.             if (h) {
  653.                 if (c || a) {
  654.                     if (c) {
  655.                         j = [];
  656.                         for (g = k.length; g--; )
  657.                             if (i = k[g])
  658.                                 j.push(l[g] = i);
  659.                         c(null, k = [], j, o)
  660.                     }
  661.                     for (g = k.length; g--; )
  662.                         if ((i = k[g]) && -1 < (j = c ? U.call(h, i) : s[g]))
  663.                             h[j] = !(e[j] = i)
  664.                 }
  665.             } else
  666.                 k = ha(k === e ? k.splice(n, k.length) : k), c ? c(null, e, k, o) : P.apply(e, k)
  667.         })
  668.     }, w = function(a) {
  669.         var b, d, c, r = a.length, g = k.relative[a[0].type];
  670.         d = g || k.relative[" "];
  671.         for (var h = g ? 1 : 0, e = L(function(a) {
  672.             return a === b
  673.         }, d, !0), j = L(function(a) {
  674.             return -1 < U.call(b, a)
  675.         }, d, !0), o = [function(a, d, c) {
  676.                 return !g && (c || d !== ia) || ((b = d).nodeType ? e(a, d, c) : j(a, d, c))
  677.             }]; h < r; h++)
  678.             if (d = k.relative[a[h].type])
  679.                 o = [L(n(o), d)];
  680.             else {
  681.                 d = k.filter[a[h].type].apply(null, a[h].matches);
  682.                 if (d[z]) {
  683.                     for (c = ++h; c < r && !k.relative[a[c].type]; c++)
  684.                         ;
  685.                     return pa(1 < h && n(o), 1 < h && q(a.slice(0, h - 1).concat({value: " " === a[h - 2].type ? "*" : ""})).replace(fa, "$1"), d, h < c && w(a.slice(h, c)), c < r && w(a = a.slice(c)), c < r && q(a))
  686.                 }
  687.                 o.push(d)
  688.             }
  689.         return n(o)
  690.     },
  691.     y, l, K, k, ja, M, oa, ia, S, ba, O, B, N, I, C, V, ka, ca, z = "sizzle" + -new Date, x = t.document, J = 0, Qa = 0, ya = s(), xa = s(), za = s(), qa = function(a, b) {
  692.         a === b && (ba = !0);
  693.         return 0
  694.     }, $ = "undefined", wa = -2147483648, Ra = {}.hasOwnProperty, T = [], Sa = T.pop, Ta = T.push, P = T.push, Aa = T.slice, U = T.indexOf || function(a) {
  695.         for (var b = 0, d = this.length; b < d; b++)
  696.             if (this[b] === a)
  697.                 return b;
  698.         return -1
  699.     }, Ba = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+".replace("w", "w#"), Ca = "\\[[\\x20\\t\\r\\n\\f]*((?:\\\\.|[\\w-]|[^\\x00-\\xa0])+)[\\x20\\t\\r\\n\\f]*(?:([*^$|!~]?\x3d)[\\x20\\t\\r\\n\\f]*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|(" +
  700.     Ba + ")|)|)[\\x20\\t\\r\\n\\f]*\\]", ra = ":((?:\\\\.|[\\w-]|[^\\x00-\\xa0])+)(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|" + Ca.replace(3, 8) + ")*)|.*)\\)|)", fa = RegExp("^[\\x20\\t\\r\\n\\f]+|((?:^|[^\\\\])(?:\\\\.)*)[\\x20\\t\\r\\n\\f]+$", "g"), Oa = /^[\x20\t\r\n\f]*,[\x20\t\r\n\f]*/, Pa = /^[\x20\t\r\n\f]*([>+~]|[\x20\t\r\n\f])[\x20\t\r\n\f]*/, Ua = RegExp("\x3d[\\x20\\t\\r\\n\\f]*([^\\]'\"]*?)[\\x20\\t\\r\\n\\f]*\\]", "g"), Va = RegExp(ra), Wa = RegExp("^" + Ba + "$"), ga = {ID: /^#((?:\\.|[\w-]|[^\x00-\xa0])+)/,
  701.         CLASS: /^\.((?:\\.|[\w-]|[^\x00-\xa0])+)/,TAG: RegExp("^(" + "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+".replace("w", "w*") + ")"),ATTR: RegExp("^" + Ca),PSEUDO: RegExp("^" + ra),CHILD: RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\([\\x20\\t\\r\\n\\f]*(even|odd|(([+-]|)(\\d*)n|)[\\x20\\t\\r\\n\\f]*(?:([+-]|)[\\x20\\t\\r\\n\\f]*(\\d+)|))[\\x20\\t\\r\\n\\f]*\\)|)", "i"),bool: RegExp("^(?:checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped)$",
  702.         "i"),needsContext: RegExp("^[\\x20\\t\\r\\n\\f]*[\x3e+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\([\\x20\\t\\r\\n\\f]*((?:-\\d)?\\d*)[\\x20\\t\\r\\n\\f]*\\)|)(?\x3d[^-]|$)", "i")}, Xa = /^(?:input|select|textarea|button)$/i, Ya = /^h\d$/i, da = /^[^{]+\{\s*\[native \w/, Ma = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, na = /[+~]/, Na = /'|\\/g, Q = RegExp("\\\\([\\da-f]{1,6}[\\x20\\t\\r\\n\\f]?|([\\x20\\t\\r\\n\\f])|.)", "ig"), R = function(a, b, d) {
  703.         a = "0x" + b - 65536;
  704.         return a !== a || d ? b : 0 > a ? String.fromCharCode(a + 65536) : String.fromCharCode(a >>
  705.         10 | 55296, a & 1023 | 56320)
  706.     };
  707.     try {
  708.         P.apply(T = Aa.call(x.childNodes), x.childNodes), T[x.childNodes.length].nodeType
  709.     } catch (hb) {
  710.         P = {apply: T.length ? function(a, b) {
  711.                 Ta.apply(a, Aa.call(b))
  712.             } : function(a, b) {
  713.                 for (var d = a.length, c = 0; a[d++] = b[c++]; )
  714.                     ;
  715.                 a.length = d - 1
  716.             }}
  717.     }
  718.     l = m.support = {};
  719.     M = m.isXML = function(a) {
  720.         return (a = a && (a.ownerDocument || a).documentElement) ? "HTML" !== a.nodeName : !1
  721.     };
  722.     O = m.setDocument = function(a) {
  723.         var b = a ? a.ownerDocument || a : x;
  724.         a = b.defaultView;
  725.         if (b === B || 9 !== b.nodeType || !b.documentElement)
  726.             return B;
  727.         B = b;
  728.         N = b.documentElement;
  729.         I = !M(b);
  730.         a && a !== a.top && (a.addEventListener ? a.addEventListener("unload", function() {
  731.             O()
  732.         }, !1) : a.attachEvent && a.attachEvent("onunload", function() {
  733.             O()
  734.         }));
  735.         l.attributes = A(function(a) {
  736.             a.className = "i";
  737.             return !a.getAttribute("className")
  738.         });
  739.         l.getElementsByTagName = A(function(a) {
  740.             a.appendChild(b.createComment(""));
  741.             return !a.getElementsByTagName("*").length
  742.         });
  743.         l.getElementsByClassName = da.test(b.getElementsByClassName) && A(function(a) {
  744.             a.innerHTML = "\x3cdiv class\x3d'a'\x3e\x3c/div\x3e\x3cdiv class\x3d'a i'\x3e\x3c/div\x3e";
  745.             a.firstChild.className = "i";
  746.             return 2 === a.getElementsByClassName("i").length
  747.         });
  748.         l.getById = A(function(a) {
  749.             N.appendChild(a).id = z;
  750.             return !b.getElementsByName || !b.getElementsByName(z).length
  751.         });
  752.         l.getById ? (k.find.ID = function(a, b) {
  753.             if (typeof b.getElementById !== $ && I) {
  754.                 var c = b.getElementById(a);
  755.                 return c && c.parentNode ? [c] : []
  756.             }
  757.         }, k.filter.ID = function(a) {
  758.             var b = a.replace(Q, R);
  759.             return function(a) {
  760.                 return a.getAttribute("id") === b
  761.             }
  762.         }) : (delete k.find.ID, k.filter.ID = function(a) {
  763.             var b = a.replace(Q, R);
  764.             return function(a) {
  765.                 return (a =
  766.                 typeof a.getAttributeNode !== $ && a.getAttributeNode("id")) && a.value === b
  767.             }
  768.         });
  769.         k.find.TAG = l.getElementsByTagName ? function(a, b) {
  770.             if (typeof b.getElementsByTagName !== $)
  771.                 return b.getElementsByTagName(a)
  772.         } : function(a, b) {
  773.             var c, g = [], h = 0, e = b.getElementsByTagName(a);
  774.             if ("*" === a) {
  775.                 for (; c = e[h++]; )
  776.                     1 === c.nodeType && g.push(c);
  777.                 return g
  778.             }
  779.             return e
  780.         };
  781.         k.find.CLASS = l.getElementsByClassName && function(a, b) {
  782.             if (typeof b.getElementsByClassName !== $ && I)
  783.                 return b.getElementsByClassName(a)
  784.         };
  785.         V = [];
  786.         C = [];
  787.         if (l.qsa = da.test(b.querySelectorAll))
  788.             A(function(a) {
  789.                 a.innerHTML =
  790.                 "\x3cselect t\x3d''\x3e\x3coption selected\x3d''\x3e\x3c/option\x3e\x3c/select\x3e";
  791.                 a.querySelectorAll("[t^\x3d'']").length && C.push("[*^$]\x3d[\\x20\\t\\r\\n\\f]*(?:''|\"\")");
  792.                 a.querySelectorAll("[selected]").length || C.push("\\[[\\x20\\t\\r\\n\\f]*(?:value|checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped)");
  793.                 a.querySelectorAll(":checked").length || C.push(":checked")
  794.             }), A(function(a) {
  795.                 var c = b.createElement("input");
  796.                 c.setAttribute("type",
  797.                 "hidden");
  798.                 a.appendChild(c).setAttribute("name", "D");
  799.                 a.querySelectorAll("[name\x3dd]").length && C.push("name[\\x20\\t\\r\\n\\f]*[*^$|!~]?\x3d");
  800.                 a.querySelectorAll(":enabled").length || C.push(":enabled", ":disabled");
  801.                 a.querySelectorAll("*,:x");
  802.                 C.push(",.*:")
  803.             });
  804.         (l.matchesSelector = da.test(ka = N.webkitMatchesSelector || N.mozMatchesSelector || N.oMatchesSelector || N.msMatchesSelector)) && A(function(a) {
  805.             l.disconnectedMatch = ka.call(a, "div");
  806.             ka.call(a, "[s!\x3d'']:x");
  807.             V.push("!\x3d", ra)
  808.         });
  809.         C = C.length && RegExp(C.join("|"));
  810.         V = V.length && RegExp(V.join("|"));
  811.         ca = (a = da.test(N.compareDocumentPosition)) || da.test(N.contains) ? function(a, b) {
  812.             var c = 9 === a.nodeType ? a.documentElement : a, g = b && b.parentNode;
  813.             return a === g || !(!g || !(1 === g.nodeType && (c.contains ? c.contains(g) : a.compareDocumentPosition && a.compareDocumentPosition(g) & 16)))
  814.         } : function(a, b) {
  815.             if (b)
  816.                 for (; b = b.parentNode; )
  817.                     if (b === a)
  818.                         return !0;
  819.             return !1
  820.         };
  821.         qa = a ? function(a, c) {
  822.             if (a === c)
  823.                 return ba = !0, 0;
  824.             var e = !a.compareDocumentPosition - !c.compareDocumentPosition;
  825.             if (e)
  826.                 return e;
  827.             e = (a.ownerDocument || a) ===
  828.             (c.ownerDocument || c) ? a.compareDocumentPosition(c) : 1;
  829.             return e & 1 || !l.sortDetached && c.compareDocumentPosition(a) === e ? a === b || a.ownerDocument === x && ca(x, a) ? -1 : c === b || c.ownerDocument === x && ca(x, c) ? 1 : S ? U.call(S, a) - U.call(S, c) : 0 : e & 4 ? -1 : 1
  830.         } : function(a, c) {
  831.             if (a === c)
  832.                 return ba = !0, 0;
  833.             var e, g = 0;
  834.             e = a.parentNode;
  835.             var h = c.parentNode, o = [a], j = [c];
  836.             if (!e || !h)
  837.                 return a === b ? -1 : c === b ? 1 : e ? -1 : h ? 1 : S ? U.call(S, a) - U.call(S, c) : 0;
  838.             if (e === h)
  839.                 return E(a, c);
  840.             for (e = a; e = e.parentNode; )
  841.                 o.unshift(e);
  842.             for (e = c; e = e.parentNode; )
  843.                 j.unshift(e);
  844.             for (; o[g] ===
  845.             j[g]; )
  846.                 g++;
  847.             return g ? E(o[g], j[g]) : o[g] === x ? -1 : j[g] === x ? 1 : 0
  848.         };
  849.         return b
  850.     };
  851.     m.matches = function(a, b) {
  852.         return m(a, null, null, b)
  853.     };
  854.     m.matchesSelector = function(a, b) {
  855.         (a.ownerDocument || a) !== B && O(a);
  856.         b = b.replace(Ua, "\x3d'$1']");
  857.         if (l.matchesSelector && I && (!V || !V.test(b)) && (!C || !C.test(b)))
  858.             try {
  859.                 var d = ka.call(a, b);
  860.                 if (d || l.disconnectedMatch || a.document && 11 !== a.document.nodeType)
  861.                     return d
  862.             } catch (c) {
  863.             }
  864.         return 0 < m(b, B, null, [a]).length
  865.     };
  866.     m.contains = function(a, b) {
  867.         (a.ownerDocument || a) !== B && O(a);
  868.         return ca(a, b)
  869.     };
  870.     m.attr = function(a, b) {
  871.         (a.ownerDocument ||
  872.         a) !== B && O(a);
  873.         var d = k.attrHandle[b.toLowerCase()], d = d && Ra.call(k.attrHandle, b.toLowerCase()) ? d(a, b, !I) : void 0;
  874.         return void 0 !== d ? d : l.attributes || !I ? a.getAttribute(b) : (d = a.getAttributeNode(b)) && d.specified ? d.value : null
  875.     };
  876.     m.error = function(a) {
  877.         throw Error("Syntax error, unrecognized expression: " + a);
  878.     };
  879.     m.uniqueSort = function(a) {
  880.         var b, d = [], c = 0, e = 0;
  881.         ba = !l.detectDuplicates;
  882.         S = !l.sortStable && a.slice(0);
  883.         a.sort(qa);
  884.         if (ba) {
  885.             for (; b = a[e++]; )
  886.                 b === a[e] && (c = d.push(e));
  887.             for (; c--; )
  888.                 a.splice(d[c], 1)
  889.         }
  890.         S = null;
  891.         return a
  892.     };
  893.     ja = m.getText =
  894.     function(a) {
  895.         var b, d = "", c = 0;
  896.         if (b = a.nodeType)
  897.             if (1 === b || 9 === b || 11 === b) {
  898.                 if ("string" === typeof a.textContent)
  899.                     return a.textContent;
  900.                 for (a = a.firstChild; a; a = a.nextSibling)
  901.                     d += ja(a)
  902.             } else {
  903.                 if (3 === b || 4 === b)
  904.                     return a.nodeValue
  905.             }
  906.         else
  907.             for (; b = a[c++]; )
  908.                 d += ja(b);
  909.         return d
  910.     };
  911.     k = m.selectors = {cacheLength: 50,createPseudo: v,match: ga,attrHandle: {},find: {},relative: {"\x3e": {dir: "parentNode",first: !0}," ": {dir: "parentNode"},"+": {dir: "previousSibling",first: !0},"~": {dir: "previousSibling"}},preFilter: {ATTR: function(a) {
  912.                 a[1] = a[1].replace(Q,
  913.                 R);
  914.                 a[3] = (a[4] || a[5] || "").replace(Q, R);
  915.                 "~\x3d" === a[2] && (a[3] = " " + a[3] + " ");
  916.                 return a.slice(0, 4)
  917.             },CHILD: function(a) {
  918.                 a[1] = a[1].toLowerCase();
  919.                 "nth" === a[1].slice(0, 3) ? (a[3] || m.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] && m.error(a[0]);
  920.                 return a
  921.             },PSEUDO: function(a) {
  922.                 var b, d = !a[5] && a[2];
  923.                 if (ga.CHILD.test(a[0]))
  924.                     return null;
  925.                 if (a[3] && void 0 !== a[4])
  926.                     a[2] = a[4];
  927.                 else if (d && Va.test(d) && (b = o(d, !0)) && (b = d.indexOf(")", d.length - b) - d.length))
  928.                     a[0] = a[0].slice(0,
  929.                     b), a[2] = d.slice(0, b);
  930.                 return a.slice(0, 3)
  931.             }},filter: {TAG: function(a) {
  932.                 var b = a.replace(Q, R).toLowerCase();
  933.                 return "*" === a ? function() {
  934.                     return !0
  935.                 } : function(a) {
  936.                     return a.nodeName && a.nodeName.toLowerCase() === b
  937.                 }
  938.             },CLASS: function(a) {
  939.                 var b = ya[a + " "];
  940.                 return b || (b = RegExp("(^|[\\x20\\t\\r\\n\\f])" + a + "([\\x20\\t\\r\\n\\f]|$)")) && ya(a, function(a) {
  941.                     return b.test("string" === typeof a.className && a.className || typeof a.getAttribute !== $ && a.getAttribute("class") || "")
  942.                 })
  943.             },ATTR: function(a, b, d) {
  944.                 return function(c) {
  945.                     c = m.attr(c, a);
  946.                     if (null ==
  947.                     c)
  948.                         return "!\x3d" === b;
  949.                     if (!b)
  950.                         return !0;
  951.                     c += "";
  952.                     return "\x3d" === b ? c === d : "!\x3d" === b ? c !== d : "^\x3d" === b ? d && 0 === c.indexOf(d) : "*\x3d" === b ? d && -1 < c.indexOf(d) : "$\x3d" === b ? d && c.slice(-d.length) === d : "~\x3d" === b ? -1 < (" " + c + " ").indexOf(d) : "|\x3d" === b ? c === d || c.slice(0, d.length + 1) === d + "-" : !1
  953.                 }
  954.             },CHILD: function(a, b, d, c, e) {
  955.                 var g = "nth" !== a.slice(0, 3), h = "last" !== a.slice(-4), o = "of-type" === b;
  956.                 return 1 === c && 0 === e ? function(a) {
  957.                     return !!a.parentNode
  958.                 } : function(b, d, j) {
  959.                     var i, k, l, s, q;
  960.                     d = g !== h ? "nextSibling" : "previousSibling";
  961.                     var n = b.parentNode,
  962.                     m = o && b.nodeName.toLowerCase();
  963.                     j = !j && !o;
  964.                     if (n) {
  965.                         if (g) {
  966.                             for (; d; ) {
  967.                                 for (k = b; k = k[d]; )
  968.                                     if (o ? k.nodeName.toLowerCase() === m : 1 === k.nodeType)
  969.                                         return !1;
  970.                                 q = d = "only" === a && !q && "nextSibling"
  971.                             }
  972.                             return !0
  973.                         }
  974.                         q = [h ? n.firstChild : n.lastChild];
  975.                         if (h && j) {
  976.                             j = n[z] || (n[z] = {});
  977.                             i = j[a] || [];
  978.                             s = i[0] === J && i[1];
  979.                             l = i[0] === J && i[2];
  980.                             for (k = s && n.childNodes[s]; k = ++s && k && k[d] || (l = s = 0) || q.pop(); )
  981.                                 if (1 === k.nodeType && ++l && k === b) {
  982.                                     j[a] = [J, s, l];
  983.                                     break
  984.                                 }
  985.                         } else if (j && (i = (b[z] || (b[z] = {}))[a]) && i[0] === J)
  986.                             l = i[1];
  987.                         else
  988.                             for (; k = ++s && k && k[d] || (l = s = 0) || q.pop(); )
  989.                                 if ((o ? k.nodeName.toLowerCase() ===
  990.                                 m : 1 === k.nodeType) && ++l)
  991.                                     if (j && ((k[z] || (k[z] = {}))[a] = [J, l]), k === b)
  992.                                         break;
  993.                         l -= e;
  994.                         return l === c || 0 === l % c && 0 <= l / c
  995.                     }
  996.                 }
  997.             },PSEUDO: function(a, b) {
  998.                 var d, c = k.pseudos[a] || k.setFilters[a.toLowerCase()] || m.error("unsupported pseudo: " + a);
  999.                 return c[z] ? c(b) : 1 < c.length ? (d = [a, a, "", b], k.setFilters.hasOwnProperty(a.toLowerCase()) ? v(function(a, d) {
  1000.                     for (var e, j = c(a, b), o = j.length; o--; )
  1001.                         e = U.call(a, j[o]), a[e] = !(d[e] = j[o])
  1002.                 }) : function(a) {
  1003.                     return c(a, 0, d)
  1004.                 }) : c
  1005.             }},pseudos: {not: v(function(a) {
  1006.                 var b = [], d = [], c = oa(a.replace(fa, "$1"));
  1007.                 return c[z] ?
  1008.                 v(function(a, b, d, e) {
  1009.                     e = c(a, null, e, []);
  1010.                     for (var j = a.length; j--; )
  1011.                         if (d = e[j])
  1012.                             a[j] = !(b[j] = d)
  1013.                 }) : function(a, e, h) {
  1014.                     b[0] = a;
  1015.                     c(b, null, h, d);
  1016.                     return !d.pop()
  1017.                 }
  1018.             }),has: v(function(a) {
  1019.                 return function(b) {
  1020.                     return 0 < m(a, b).length
  1021.                 }
  1022.             }),contains: v(function(a) {
  1023.                 return function(b) {
  1024.                     return -1 < (b.textContent || b.innerText || ja(b)).indexOf(a)
  1025.                 }
  1026.             }),lang: v(function(a) {
  1027.                 Wa.test(a || "") || m.error("unsupported lang: " + a);
  1028.                 a = a.replace(Q, R).toLowerCase();
  1029.                 return function(b) {
  1030.                     var d;
  1031.                     do
  1032.                         if (d = I ? b.lang : b.getAttribute("xml:lang") || b.getAttribute("lang"))
  1033.                             return d =
  1034.                             d.toLowerCase(), d === a || 0 === d.indexOf(a + "-");
  1035.                     while ((b = b.parentNode) && 1 === b.nodeType);
  1036.                     return !1
  1037.                 }
  1038.             }),target: function(a) {
  1039.                 var b = t.location && t.location.hash;
  1040.                 return b && b.slice(1) === a.id
  1041.             },root: function(a) {
  1042.                 return a === N
  1043.             },focus: function(a) {
  1044.                 return a === B.activeElement && (!B.hasFocus || B.hasFocus()) && !(!a.type && !a.href && !~a.tabIndex)
  1045.             },enabled: function(a) {
  1046.                 return !1 === a.disabled
  1047.             },disabled: function(a) {
  1048.                 return !0 === a.disabled
  1049.             },checked: function(a) {
  1050.                 var b = a.nodeName.toLowerCase();
  1051.                 return "input" === b && !!a.checked || "option" === b &&
  1052.                 !!a.selected
  1053.             },selected: function(a) {
  1054.                 a.parentNode && a.parentNode.selectedIndex;
  1055.                 return !0 === a.selected
  1056.             },empty: function(a) {
  1057.                 for (a = a.firstChild; a; a = a.nextSibling)
  1058.                     if (6 > a.nodeType)
  1059.                         return !1;
  1060.                 return !0
  1061.             },parent: function(a) {
  1062.                 return !k.pseudos.empty(a)
  1063.             },header: function(a) {
  1064.                 return Ya.test(a.nodeName)
  1065.             },input: function(a) {
  1066.                 return Xa.test(a.nodeName)
  1067.             },button: function(a) {
  1068.                 var b = a.nodeName.toLowerCase();
  1069.                 return "input" === b && "button" === a.type || "button" === b
  1070.             },text: function(a) {
  1071.                 var b;
  1072.                 return "input" === a.nodeName.toLowerCase() && "text" ===
  1073.                 a.type && (null == (b = a.getAttribute("type")) || "text" === b.toLowerCase())
  1074.             },first: D(function() {
  1075.                 return [0]
  1076.             }),last: D(function(a, b) {
  1077.                 return [b - 1]
  1078.             }),eq: D(function(a, b, d) {
  1079.                 return [0 > d ? d + b : d]
  1080.             }),even: D(function(a, b) {
  1081.                 for (var d = 0; d < b; d += 2)
  1082.                     a.push(d);
  1083.                 return a
  1084.             }),odd: D(function(a, b) {
  1085.                 for (var d = 1; d < b; d += 2)
  1086.                     a.push(d);
  1087.                 return a
  1088.             }),lt: D(function(a, b, d) {
  1089.                 for (b = 0 > d ? d + b : d; 0 <= --b; )
  1090.                     a.push(b);
  1091.                 return a
  1092.             }),gt: D(function(a, b, d) {
  1093.                 for (d = 0 > d ? d + b : d; ++d < b; )
  1094.                     a.push(d);
  1095.                 return a
  1096.             })}};
  1097.     k.pseudos.nth = k.pseudos.eq;
  1098.     for (y in {radio: !0,checkbox: !0,file: !0,password: !0,
  1099.         image: !0})
  1100.         k.pseudos[y] = Y(y);
  1101.     for (y in {submit: !0,reset: !0})
  1102.         k.pseudos[y] = Z(y);
  1103.     aa.prototype = k.filters = k.pseudos;
  1104.     k.setFilters = new aa;
  1105.     oa = m.compile = function(a, b) {
  1106.         var d, c = [], e = [], g = za[a + " "];
  1107.         if (!g) {
  1108.             b || (b = o(a));
  1109.             for (d = b.length; d--; )
  1110.                 g = w(b[d]), g[z] ? c.push(g) : e.push(g);
  1111.             var h = 0, j = 0 < c.length, i = 0 < e.length;
  1112.             d = function(a, b, d, g, o) {
  1113.                 var l, s, q, n = 0, p = "0", v = a && [], t = [], x = ia, L = a || i && k.find.TAG("*", o), w = J += null == x ? 1 : Math.random() || 0.1, z = L.length;
  1114.                 o && (ia = b !== B && b, K = h);
  1115.                 for (; p !== z && null != (l = L[p]); p++) {
  1116.                     if (i && l) {
  1117.                         for (s = 0; q = e[s++]; )
  1118.                             if (q(l,
  1119.                             b, d)) {
  1120.                                 g.push(l);
  1121.                                 break
  1122.                             }
  1123.                         o && (J = w, K = ++h)
  1124.                     }
  1125.                     j && ((l = !q && l) && n--, a && v.push(l))
  1126.                 }
  1127.                 n += p;
  1128.                 if (j && p !== n) {
  1129.                     for (s = 0; q = c[s++]; )
  1130.                         q(v, t, b, d);
  1131.                     if (a) {
  1132.                         if (0 < n)
  1133.                             for (; p--; )
  1134.                                 !v[p] && !t[p] && (t[p] = Sa.call(g));
  1135.                         t = ha(t)
  1136.                     }
  1137.                     P.apply(g, t);
  1138.                     o && (!a && 0 < t.length && 1 < n + c.length) && m.uniqueSort(g)
  1139.                 }
  1140.                 o && (J = w, ia = x);
  1141.                 return v
  1142.             };
  1143.             d = j ? v(d) : d;
  1144.             g = za(a, d)
  1145.         }
  1146.         return g
  1147.     };
  1148.     l.sortStable = z.split("").sort(qa).join("") === z;
  1149.     l.detectDuplicates = !!ba;
  1150.     O();
  1151.     l.sortDetached = A(function(a) {
  1152.         return a.compareDocumentPosition(B.createElement("div")) & 1
  1153.     });
  1154.     A(function(a) {
  1155.         a.innerHTML = "\x3ca href\x3d'#'\x3e\x3c/a\x3e";
  1156.         return "#" === a.firstChild.getAttribute("href")
  1157.     }) || X("type|href|height|width", function(a, b, c) {
  1158.         if (!c)
  1159.             return a.getAttribute(b, "type" === b.toLowerCase() ? 1 : 2)
  1160.     });
  1161.     (!l.attributes || !A(function(a) {
  1162.         a.innerHTML = "\x3cinput/\x3e";
  1163.         a.firstChild.setAttribute("value", "");
  1164.         return "" === a.firstChild.getAttribute("value")
  1165.     })) && X("value", function(a, b, c) {
  1166.         if (!c && "input" === a.nodeName.toLowerCase())
  1167.             return a.defaultValue
  1168.     });
  1169.     A(function(a) {
  1170.         return null == a.getAttribute("disabled")
  1171.     }) || X("checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",
  1172.     function(a, b, c) {
  1173.         var f;
  1174.         if (!c)
  1175.             return !0 === a[b] ? b.toLowerCase() : (f = a.getAttributeNode(b)) && f.specified ? f.value : null
  1176.     });
  1177.     "function" === typeof p && p.amd ? p(function() {
  1178.         return m
  1179.     }) : "undefined" !== typeof module && module.exports ? module.exports = m : t.Sizzle = m;
  1180.     var Za = c, Da, la, F = {}, $a = navigator.userAgent.toLowerCase().replace(/\s*[()]\s*/g, "; ").replace(/(\/[\w.]+)\s+/g, "$1; ").replace(/\;\s*$/, "").split(/;\s*/);
  1181.     c.each($a, function(a) {
  1182.         la = (/[\/ :]([^\/ :]+)$/.exec(a) || [])[1];
  1183.         F[la ? a.substr(0, a.length - la.length - 1).replace(/\d*$/,
  1184.         "") : a] = la || !0
  1185.     });
  1186.     Da = {aol: F.aol,blackberry: F.blackberry,ie: F.msie,ios: F.mobile && F.safari,opera: F.opera,playstation: F.playstation,version: parseFloat(F.version || F.crios || F.msie) || !1};
  1187.     Za.browser = Da;
  1188.     var ab = {bbp: {id_finder: ["div", /^post-(\d+)$/],scope: "li .post"},hdlr: {id_finder: ["div", /^post_(\d+)$/],scope: ".post-content-area"},ipb: {id_finder: ["div", /^post_id_(\d+)$/],scope: ".post_body .post"},phpb: {id_finder: ["div.post", /^p(\d+)$/],scope: ".postbody .content,.postbody .signature"},ubb: {id_finder: ["a", /^Post(\d+)$/,
  1189.                 "name"],scope: ".post_inner *[id^\x3d'body'],.post_inner .signature"},vb3: {id_finder: ["div[id], table[id]", /^post(\d+)$/],scope: "td[id^\x3d'td_post_'] div[id^\x3d'post_message_'],td[id^\x3d'td_post_'] div[id^\x3d'post_message_'] ~ div:not([class])"},vb4: {id_finder: ["li", /^post_(\d+)$/],scope: ".post-content,.postbody .content,.postbody .signature,ul.conversation-list .list-item-body"},wppr: {id_finder: ["div", /^post-(\d+)$/],scope: null}};
  1190.     c.platforms = function(a) {
  1191.         return c.extend(ab[a] || {}, {getPostIDs: function() {
  1192.                 var a =
  1193.                 [], d = this.id_finder;
  1194.                 d && c.each(c.select(d[0]), function(c) {
  1195.                     var e = d[2] || "id";
  1196.                     (c = c[e] ? c[e].match(d[1]) : null) && a.push(c[1])
  1197.                 });
  1198.                 return a.length ? a : null
  1199.             }})
  1200.     };
  1201.     c.traits = {basicCompatibility: !(c.browser.blackberry || c.browser.playstation),cors: window.XMLHttpRequest && void 0 !== (new window.XMLHttpRequest).withCredentials,crossWindowCommunication: !c.browser.ios,jsRedirectSetsReferrer: c.browser.aol || !(c.browser.ie || c.browser.opera),quirksMode: !Boolean(window.addEventListener),windowLevelHandlers: Boolean(window.addEventListener)};
  1202.     var j, ea, G, bb = function(a) {
  1203.         var b = a.previousSibling, d = a.nextSibling, f = ["", a.textContent, ""], j = function(a, b) {
  1204.             for (var c = a, d = c.data; (c = c[b + "Sibling"]) && 3 === c.nodeType; )
  1205.                 d += c.data;
  1206.             return d
  1207.         }, g = function(a, b, c) {
  1208.             a = a.replace(/\s+/g, " ");
  1209.             b = b.replace(/\s+/g, " ");
  1210.             c = c.replace(/\s+/g, " ");
  1211.             a = a.replace(/^\s+/, "");
  1212.             " " === b.substr(0, 1) && (b = b.substr(1), a += " " !== a.substr(a.length - 1, 1) ? " " : "");
  1213.             " " === b.substr(b.length - 1, 1) && (b = b.substr(0, b.length - 1), c = (" " !== c.substr(0, 1) ? " " : "") + c);
  1214.             c = c.replace(/\s+$/, "");
  1215.             return [a, b, c]
  1216.         };
  1217.         void 0 !==
  1218.         f[1] && (f[0] = b && 3 === b.nodeType ? j(b, "previous") : "", f[2] = d && 3 === d.nodeType ? j(d, "next") : "", f = g.apply(this, f), "" !== f[0] && "" !== f[2] && (f[0] = f[0].split(" ").reverse().slice(0, 10 + (" " === f[0].substr(f[0].length - 1, 1) ? 1 : 0)).reverse().join(" "), f[2] = f[2].split(" ").slice(0, 10).join(" "), a = {type: "context",itype: (c.cache(a, "params") || {}).type,before: f[0],after: f[2],txt: f[1],loc: location.href,out: c.getActualHref(a),v: 2}, e.log("info", c.toQuery(a))))
  1219.     }, Ea = {};
  1220.     c.harmony = {UNSAFE_QUIRKSMODE_HANDLERS: 0,LINK_LEVEL_EVENTS: -1};
  1221.     var cb = c.exceptionLogger(function() {
  1222.         var a = !0 === window.document.__v5k;
  1223.         window.document.__v5k = !0;
  1224.         a || (this.initLibEvents(), this.initNamespace(), this.initOptions(), c.exceptionLogger(c.bind(this.logException, this), !j.dev), this.initProcessors(), this.initDRApi(), this.initApi(), this.enabled() && (this.initLegacyCallbacks(), this.ping()))
  1225.     }), sa = [], ta, Fa = 1, ma = {}, db = {product_widget: "spotlight"}, ua = function() {
  1226.         var a = !1, b = {}, d = function(a) {
  1227.             return function() {
  1228.                 if (a) {
  1229.                     var b = c.toArray(arguments);
  1230.                     b.unshift("custom", a);
  1231.                     e.log.apply(this,
  1232.                     b)
  1233.                 }
  1234.             }
  1235.         };
  1236.         ta = null;
  1237.         c.each(ma, function(f, j) {
  1238.             j = db[j] || j;
  1239.             f.setup = f.setup || window.vglnk && window.vglnk[j + "_plugin"];
  1240.             f.setup ? (!f.run && "function" === c.type(f.setup) && (f.run = f.setup(f.opts, c.clone(c), G, d(f.opts.key)) || c.noop), f.opts.mode === e.PLUGIN_MANUAL ? b[j] = f : f.run()) : (a = !0, b[j] = f)
  1241.         });
  1242.         ma = b;
  1243.         a && (ta = setTimeout(c.exceptionLogger(ua), Math.min(Math.max(Math.pow(2, ++Fa), 100), 5E3)))
  1244.     }, eb = function(a) {
  1245.         return function() {
  1246.             delete ma[a].opts.mode;
  1247.             Fa = 1;
  1248.             clearTimeout(ta);
  1249.             ua()
  1250.         }
  1251.     }, fb = c.canonicalizeHostname(document.location), gb = c.generateNodeFilter({rels: ["norewrite",
  1252.             "noskim"],custom: function(a) {
  1253.             var b, d = "";
  1254.             try {
  1255.                 b = a.hostname, d = a.protocol, b.charAt(0)
  1256.             } catch (f) {
  1257.                 return !0
  1258.             }
  1259.             "" !== b && (b = c.canonicalizeHostname(a));
  1260.             return "" === b || fb === b || !d.match(/^https?:$/i) || j.norewrite[b] || !(j.rewrite_original || c.cache(a, "type"))
  1261.         }}), Ga, Ha = !1, Ia = {}, Ja = !1, Ka = [], La = function(a) {
  1262.         if (void 0 === a)
  1263.             return Ka;
  1264.         "function" === c.type(a) && (Ka.push({id: c.uniqid(),fn: a}), Ja && this.initLinks())
  1265.     };
  1266.     La(function() {
  1267.         Ja = !0
  1268.     });
  1269.     e = {PLUGIN_MANUAL: 1,api: function(a, b, d) {
  1270.             a = j.api_url + "/" + a;
  1271.             b = c.extend({cuid: j.cuid,key: j.key,
  1272.                 drKey: j.key ? null : j.dr_key,loc: location.href,subId: j.sub_id,v: 1}, b);
  1273.             b.subId && b.key !== j.key && (b.subId = null);
  1274.             return c.request(a, b, d)
  1275.         },addEventListener: function(a, b) {
  1276.             this.fire(a, b)
  1277.         },click: function(a, b) {
  1278.             var d, f, e, g, h = c.context(a) || window;
  1279.             b = a.target || b;
  1280.             b = !b || b === h.name || "_top" === b && h.top === h || "_parent" === b && h.parent === h ? "_self" : b;
  1281.             "_self" === b ? e = h : c.traits.crossWindowCommunication && c.traits.jsRedirectSetsReferrer ? (f = h.open("", b), f.focus(), e = f) : e = void 0;
  1282.             if ("_self" !== b && (!c.traits.crossWindowCommunication ||
  1283.             !c.traits.jsRedirectSetsReferrer))
  1284.                 g = "go";
  1285.             else
  1286.                 try {
  1287.                     if (void 0 === e.document)
  1288.                         throw !0;
  1289.                     g = "jsonp"
  1290.                 } catch (o) {
  1291.                     g = "go"
  1292.                 }
  1293.             d = c.destructing(c.bind(function() {
  1294.                 j.time_click && arguments.length && this.logTime("clk");
  1295.                 var d = c.toArray(arguments);
  1296.                 d.unshift(a, e, b);
  1297.                 this.onApiClick.apply(this, d)
  1298.             }, this));
  1299.             c.cache(this, "link", "string" === typeof a ? a : c.getActualHref(a));
  1300.             if ("string" === typeof a && (a = c.createA(a, b), !this.processLink(a)) || !j.enabled)
  1301.                 return d();
  1302.             f = this.clickParams(a, g);
  1303.             this.logTime();
  1304.             j.log_context && bb(a);
  1305.             if ("go" === g)
  1306.                 this.redirect(this.api("click",
  1307.                 f, {"return": !0}), h, e, b);
  1308.             else if (e === h)
  1309.                 this.api("click", f, {fn: d,timeout: j.click_timeout});
  1310.             else {
  1311.                 if (c.contextIsAncestor(h, e))
  1312.                     return this.redirect(c.getActualHref(a), h, e, b);
  1313.                 d = c.exceptionLogger(d);
  1314.                 setTimeout(function() {
  1315.                     d()
  1316.                 }, j.click_timeout);
  1317.                 e.document.open();
  1318.                 e.callback = d;
  1319.                 e.document.write("\x3chtml\x3e\x3chead\x3e\x3ctitle\x3e" + c.getActualHref(a) + '\x3c/title\x3e\x3cscript type\x3d"text/javascript" src\x3d"' + this.api("click", f, {fn: "callback","return": !0}) + '"\x3e\x3c/script\x3e\x3c/head\x3e\x3c/html\x3e');
  1320.                 e.document.close()
  1321.             }
  1322.         },clickParams: function(a, b) {
  1323.             var d = c.extend(c.cache(a, "params"), {format: b,libId: j.library_id,out: c.getActualHref(a),ref: window.document.referrer || null,reaf: j.reaffiliate || null,title: window.document.title,txt: a.innerHTML});
  1324.             128 < d.txt.length && (d.txt = d.txt.replace(/<[^>]+>/g, ""), d.txt = 128 < d.txt.length ? d.txt.substr(0, 125) + "..." : d.txt);
  1325.             return d
  1326.         },enabled: function() {
  1327.             if (j.enabled && ea !== window && window.vglnk && (window.vglnk.key || "function" === typeof window.vglnk))
  1328.                 j.enabled = !1;
  1329.             return j.enabled
  1330.         },
  1331.         expose: function(a, b) {
  1332.             if (b = b || this[a])
  1333.                 "function" === typeof b ? b = c.exceptionLogger(c.bind(b, this)) : "object" === typeof b && (b = c.clone(b)), G[a] || (G[a] = b)
  1334.         },fire: function(a, b) {
  1335.             a = a.toLowerCase();
  1336.             var d = Ea[a] || {fired: !1,listeners: []};
  1337.             "function" === typeof b ? d.fired ? b({type: a}) : d.listeners.push(b) : (d.fired = !0, c.each(d.listeners, function(b) {
  1338.                 "function" === typeof b && b({type: a})
  1339.             }), d.listeners = []);
  1340.             Ea[a] = d
  1341.         },handleRightClick: function(a, b) {
  1342.             if (j.rewrite_modified && a && b)
  1343.                 switch (b) {
  1344.                     case "setup":
  1345.                         c.cache(a, "href") || c.cache(a, "href",
  1346.                         a.href);
  1347.                         a.href = this.api("click", this.clickParams(a, "go"), {"return": !0});
  1348.                         setTimeout(c.exceptionLogger(c.bind(function() {
  1349.                             this.handleRightClick(a, "teardown")
  1350.                         }, this)), 0);
  1351.                         break;
  1352.                     case "teardown":
  1353.                         a.href = c.cache(a, "href"), c.cache(a, "href", null)
  1354.                 }
  1355.         },harmony: function(a) {
  1356.             return j.harmony_level <= a
  1357.         },init: cb,initApi: function() {
  1358.             var a, b = {};
  1359.             if (window.vglnk)
  1360.                 for (a in window.vglnk)
  1361.                     "_plugin" === a.substr(-7) && (b[a] = window.vglnk[a]);
  1362.             G = ea[i] = c.noop;
  1363.             this.expose("click");
  1364.             this.expose("link", c.bind(function(a) {
  1365.                 "element" === c.type(a) &&
  1366.                 a.href && (this.initContext(c.context(a)), this.processLink(a))
  1367.             }, this));
  1368.             this.expose("open", c.bind(this.click, this));
  1369.             this.expose("$", c.clone(c));
  1370.             this.expose("api");
  1371.             this.expose("opt");
  1372.             this.expose("registerProcessor", function() {
  1373.                 if (0 < arguments.length)
  1374.                     return e.registerProcessor.apply(e, arguments)
  1375.             });
  1376.             c.extend(G, G === window.vglnk ? b : {})
  1377.         },initContext: function(a) {
  1378.             if (void 0 === a)
  1379.                 return sa;
  1380.             a && !c.contains(sa, a) && (sa.push(a), this.initLinks(a), this.initEvents(a))
  1381.         },initDRApi: function() {
  1382.             var a = !1;
  1383.             window.DrivingRevenue = c.exceptionLogger(c.destructing(c.bind(function() {
  1384.                 a =
  1385.                 !0;
  1386.                 j.dr_key = window.DR_id;
  1387.                 this.enabled() && this.ping()
  1388.             }, this)));
  1389.             c.on("DOMReady", function() {
  1390.                 if (!a)
  1391.                     try {
  1392.                         delete window.DrivingRevenue
  1393.                     } catch (b) {
  1394.                         window.DrivingRevenue = void 0
  1395.                     }
  1396.             })
  1397.         },initEvents: function(a) {
  1398.             var b = {left: e.onClick,right: e.onContextmenu}, d = {left: c.noop,right: c.noop}, f = c.traits.windowLevelHandlers ? a : a.document, j = function(f) {
  1399.                 f = f || a.event;
  1400.                 if ((f = c.eventLink(f)) && !c.cache(f, "evented"))
  1401.                     g(f, e.harmony(c.harmony.LINK_LEVEL_EVENTS) ? b : d), c.cache(f, "evented", !0)
  1402.             }, g = function(a, b) {
  1403.                 c.on(a, "click", c.bind(b.left,
  1404.                 e));
  1405.                 c.on(a, "contextmenu", c.bind(b.right, e))
  1406.             };
  1407.             c.on(f, "copy", c.bind(e.onCopy, e));
  1408.             c.on(f, "mousedown", j);
  1409.             if (e.harmony(c.harmony.LINK_LEVEL_EVENTS))
  1410.                 c.on("DOMReady", function() {
  1411.                     c.each(a.document.links, function(a) {
  1412.                         c.on(a, "mousedown", j)
  1413.                     })
  1414.                 });
  1415.             (!c.traits.quirksMode || e.harmony(c.harmony.UNSAFE_QUIRKSMODE_HANDLERS)) && g(f, b)
  1416.         },initLegacyOptions: function() {
  1417.             var a, b = {DR_id: "dr_key",vglnk_api_key: "key",vglnk_cuid: "cuid",vglnk_domain: "api_url",vglnk_reaf: "reaffiliate",vglnk_subid: "sub_id"};
  1418.             for (a in b)
  1419.                 void 0 !== window[a] &&
  1420.                 (G[b[a]] = window[a], "vglnk_domain" === a && (G[b[a]] += "/api"))
  1421.         },initLegacyCallbacks: function() {
  1422.             var a, b = {vl_cB: c.bind(this.onApiClick, this),vl_disable: function() {
  1423.                     j.enabled = !1
  1424.                 }};
  1425.             for (a in b)
  1426.                 window[a] = b[a]
  1427.         },initLibEvents: function() {
  1428.             c.on(e);
  1429.             c.ready(c.bind(function() {
  1430.                 this.fire("DOMReady")
  1431.             }, this))
  1432.         },initLinks: function(a) {
  1433.             var b = c.bind(function(a) {
  1434.                 c.each(c.toArray(a.document.links), c.bind(this.processLink, this))
  1435.             }, this);
  1436.             void 0 === a ? c.each(this.initContext(), b) : b(a)
  1437.         },initNamespace: function() {
  1438.             window.vglnk && window.vglnk.key &&
  1439.             (i = "vglnk");
  1440.             var a = window, b = i.split("."), c;
  1441.             for (i = b.pop(); 0 < b.length; )
  1442.                 c = b.shift(), a[c] = a[c] || {}, a = a[c];
  1443.             ea = a;
  1444.             G = ea[i] = ea[i] || {}
  1445.         },initOptions: function() {
  1446.             var a;
  1447.             this.initLegacyOptions();
  1448.             j = c.extend(this.publicOptions({api_url: "//api.viglink.com/api",asset_url: "//cdn.viglink.com/api",cuid: null,dev: !1,dr_key: null,enabled: c.traits.basicCompatibility,key: null,partner: null,sub_id: null,reaffiliate: !1,harmony_level: 0,rewrite_original: !0,rewrite_modified: !1}), j, G, {click_timeout: 1E3,hop_timeout: 2E3,debug: !1,library_id: null,
  1449.                 log_context: !0,nofollow: {},norewrite: {},plugins: {link_affiliation: {},modified_clicks: {},partner_integration: {}},time_click: !1,time_ping: !1,testing_js: []});
  1450.             for (a in j)
  1451.                 "_plugin" === a.substr(-7) && delete j[a]
  1452.         },initPlugins: function(a) {
  1453.             for (var b in a)
  1454.                 "object" === typeof a[b] && !1 !== a[b].enabled && (ma[b] = {opts: a[b]}, a[b].mode === this.PLUGIN_MANUAL && this.expose("init_" + b, eb(b)));
  1455.             ua()
  1456.         },initProcessors: function() {
  1457.             this.registerProcessor(function(a) {
  1458.                 var b;
  1459.                 b = c.createA(j.api_url);
  1460.                 if ("/api/click" === a.pathname && (a.hostname ===
  1461.                 b.hostname || a.hostname.match(/(^|\.)(api|cdn|apicdn)\.viglink\.com$/)))
  1462.                     b = c.fromQuery(a.search), void 0 !== b.out && (a.href = b.out, delete b.out, c.cache(a, "params", b))
  1463.             });
  1464.             this.registerProcessor(function(a) {
  1465.                 j.nofollow[a.href] && !c.hasRel(a, "nofollow") && (a.rel = (a.rel ? a.rel + " " : "") + "nofollow")
  1466.             });
  1467.             this.registerProcessor(function(a) {
  1468.                 window.IPBoard && (window.IPBoard.prototype && window.IPBoard.prototype.delegate && c.hasRel(a, "external")) && (a.rel = a.rel.replace(/(^| )external( |$)/, ""), a.target = "_blank")
  1469.             })
  1470.         },isRewritable: function(a) {
  1471.             return gb(a,
  1472.             {ancestors: !1})
  1473.         },log: function(a, b, d, f) {
  1474.             var e, g = c.toQuery({nocache: c.uniqid()});
  1475.             e = "pixel.gif";
  1476.             if ("custom" === a)
  1477.                 g += "\x26" + c.toQuery({key: b,type: d}), c.each("array" === c.type(f) ? f : [f], function(a) {
  1478.                     c.each(["e", "i", "o"], function(b) {
  1479.                         delete a[b]
  1480.                     });
  1481.                     g += "\x26" + c.toQuery(a)
  1482.                 });
  1483.             else {
  1484.                 g += "\x26" + c.toQuery({key: j.key,drKey: j.key ? null : j.dr_key});
  1485.                 if ("time" === a)
  1486.                     e = "time.gif", a = {libId: j.library_id,time: d,type: b};
  1487.                 else if ("exception" === a)
  1488.                     a = {e: b,o: d};
  1489.                 else if ("info" === a)
  1490.                     a = {i: b};
  1491.                 else
  1492.                     return;
  1493.                 g += "\x26" + c.toQuery(a)
  1494.             }
  1495.             e = j.api_url + "/" +
  1496.             e + "?" + g;
  1497.             c.transmitsPII(e) || (c.createEl("img").src = e)
  1498.         },logException: function(a) {
  1499.             if (j.debug) {
  1500.                 var b = {link: c.cache(this, "link"),loc: document.location.href,UA: navigator.userAgent};
  1501.                 "string" === typeof a ? b.message = a : b = c.extend(b, a);
  1502.                 this.log("exception", a, c.toQuery(b))
  1503.             }
  1504.         },logTime: function(a) {
  1505.             0 === arguments.length ? Ga = (new Date).getTime() : this.log("time", a, (new Date).getTime() - Ga)
  1506.         },onApiClick: function(a, b, d, e, o) {
  1507.             var g = e || c.getActualHref(a), h = c.bind(function() {
  1508.                 this.redirect(g, c.context(a), b, d)
  1509.             }, this);
  1510.             "object" ===
  1511.             typeof o && (o.tracking || o.image) ? (e = c.createEl(o.tracking ? "iframe" : "img", {src: o.tracking || o.image}, {height: 0,width: 0,visibility: "hidden"}), document.body.appendChild(e), setTimeout(c.exceptionLogger(h), o.timeout || j.hop_timeout)) : h()
  1512.         },onApiPing: function(a, b, d, f, o, g) {
  1513.             j.rewrite_original = !1;
  1514.             o = c.reformatKeys(o || {});
  1515.             var h, i;
  1516.             f = function(a) {
  1517.                 var b = {}, d = function(a) {
  1518.                     c.isArray(a) ? b[a[0]] = a[1] : b[a] = 1
  1519.                 };
  1520.                 c.isArray(a) && c.each(a, d);
  1521.                 return b
  1522.             };
  1523.             i = c.extend(j.plugins, o.plugins);
  1524.             j = c.extend(j, o);
  1525.             delete j.plugins;
  1526.             j.library_id =
  1527.             a;
  1528.             j.click_timeout = b;
  1529.             j.time_ping && this.logTime("png");
  1530.             "array" === c.type(j.testing_js) && 0 < j.testing_js.length && c.each(j.testing_js, function(a) {
  1531.                 c.jsonp(a)
  1532.             });
  1533.             c.extend(j.norewrite, f(d));
  1534.             c.extend(j.nofollow, f(g));
  1535.             for (h in j)
  1536.                 "on" === h.toLowerCase().substr(0, 2) && (2 < h.length && "function" === c.type(j[h])) && (c.on(e, h.toLowerCase().substr(2), c.bind(j[h], window)), delete j[h]);
  1537.             this.initPlugins(i);
  1538.             this.initContext(window);
  1539.             this.fire("libready")
  1540.         },onClick: function(a) {
  1541.             a = a || window.event;
  1542.             var b = a.ctrlKey || a.metaKey || a.altKey ||
  1543.             a.shiftKey, d = a.which && 1 === a.which || 0 === a.button, e = c.eventLink(a);
  1544.             if (e && this.isRewritable(e) && !b && d && !c.isDefaultPrevented(a))
  1545.                 return this.click(e), c.preventDefault(a)
  1546.         },onContextmenu: function(a) {
  1547.             (a = c.eventLink(a || window.event)) && this.isRewritable(a) && this.handleRightClick(a, "setup")
  1548.         },onCopy: function() {
  1549.             var a, b, d, f, j = [];
  1550.             if (window.getSelection) {
  1551.                 d = window.getSelection();
  1552.                 a = 0;
  1553.                 for (b = d.rangeCount; a < b; a++) {
  1554.                     try {
  1555.                         f = d.getRangeAt(a).toString().replace(/((^)\s+|\s+$|\r)/g, "").replace(/\s*\n\s*/g, "\n")
  1556.                     } catch (g) {
  1557.                     }
  1558.                     0 <
  1559.                     f.length && 128 >= f.length && j.push(f)
  1560.                 }
  1561.             }
  1562.             c.each(j, function(a) {
  1563.                 e.log("info", c.toQuery({type: "selection",txt: a,loc: location.href}))
  1564.             })
  1565.         },opt: function(a, b) {
  1566.             void 0 !== b && void 0 !== this.publicOptions()[a] && (j[a] = b);
  1567.             return j[a]
  1568.         },ping: function() {
  1569.             if (!Ha && (j.key || j.dr_key)) {
  1570.                 var a = {ref: document.referrer || null};
  1571.                 Ha = !0;
  1572.                 c.transmitsPII(this.api("ping", a, {"return": !0})) || (this.logTime(), this.api("ping", a, {fn: c.bind(this.onApiPing, this)}))
  1573.             }
  1574.         },processLink: function(a) {
  1575.             if (this.isRewritable(a)) {
  1576.                 var b = c.cache(a, "processors") || {};
  1577.                 c.each(this.registerProcessor(), function(c) {
  1578.                     b[c.id] || c.fn(a);
  1579.                     b[c.id] = !0
  1580.                 });
  1581.                 c.cache(a, "processors", b);
  1582.                 return a
  1583.             }
  1584.         },publicOptions: function(a) {
  1585.             "object" === c.type(a) && (Ia = a);
  1586.             return c.extend({}, Ia)
  1587.         },redirect: function(a, b, d, e) {
  1588.             !c.traits.crossWindowCommunication && !d ? (e = b.open(a, e), e.focus()) : c.traits.jsRedirectSetsReferrer ? setTimeout(c.exceptionLogger(function() {
  1589.                 !d || d === b ? b.location = a : c.contextIsAncestor(b, d) ? d.location = a : d.location.replace(a)
  1590.             }), 0) : ("_blank" === e && (e = c.uniqid("win_")), e = c.createA(a, e), e.rel =
  1591.             "norewrite", b.document.body.appendChild(e), e.click(), e.parentNode.removeChild(e))
  1592.         },registerProcessor: La};
  1593.     e.init();
  1594.     try {
  1595.         delete window.vglnk_self
  1596.     } catch (ib) {
  1597.     }
  1598. })("undefined" === typeof vglnk_self ? "vglnk" : vglnk_self);
  1599. window.vglnk = window.vglnk || {};
  1600. window.vglnk.link_affiliation_plugin = function(i, e, u) {
  1601.     return function() {
  1602.         u.opt("rewrite_original", !0)
  1603.     }
  1604. };
  1605. window.vglnk = window.vglnk || {};
  1606. window.vglnk.modified_clicks_plugin = function(i, e, u) {
  1607.     return function() {
  1608.         u.opt("rewrite_modified", !0)
  1609.     }
  1610. };
  1611. window.vglnk = window.vglnk || {};
  1612. window.vglnk.partner_integration_plugin = function(i, e) {
  1613.     var u = "https:" === document.location.protocol, c = {setup: function() {
  1614.             window._comscore = window._comscore || []
  1615.         },run: function() {
  1616.             var c = window._comscore;
  1617.             c && "function" === e.type(c.push) && (c.push({c1: 8,c2: 17570528,c3: 1}), e.jsonp("//" + (u ? "sb" : "b") + ".scorecardresearch.com/beacon.js"))
  1618.         }};
  1619.     c.setup();
  1620.     return function() {
  1621.         c.run()
  1622.     }
  1623. };
  1624. window.vglnk = window.vglnk || {};
  1625. window.vglnk.dr_search_box_plugin = function(i, e, u) {
  1626.     i = e.extend({key: null}, i);
  1627.     var c = {init: function() {
  1628.             e.each(this.getDRSearchForms(), function(i) {
  1629.                 if (!e.cache(i, "evented")) {
  1630.                     var t = c.getInput(i), m = function() {
  1631.                         t.value || e.css(t, {"background-image": "url(http://cdn.viglink.com/images/ebay_watermark.gif)"})
  1632.                     };
  1633.                     e.cache(i, "evented", !0);
  1634.                     i.onsubmit = null;
  1635.                     t.onfocus = null;
  1636.                     t.onblur = null;
  1637.                     e.on(t, "focus", function() {
  1638.                         e.css(t, {"background-image": "none"})
  1639.                     });
  1640.                     e.on(t, "blur", m);
  1641.                     m();
  1642.                     e.on(i, "submit", function(e) {
  1643.                         c.onSubmit(e, i)
  1644.                     })
  1645.                 }
  1646.             })
  1647.         },
  1648.         getDRSearchForms: function() {
  1649.             var i = [];
  1650.             e.each(document.getElementsByTagName("form"), function(e) {
  1651.                 c.getInput(e) && e.id.match(/^DR-ebay-search(CSS|2)?$/i) && i.push(e)
  1652.             });
  1653.             return i
  1654.         },getInput: function(c) {
  1655.             return c.p || c.q2
  1656.         },onSubmit: function(p, t) {
  1657.             p = p || window.event;
  1658.             var m = "http://shop.ebay.com/i.html?" + e.toQuery({_nkw: c.getInput(t).value}), m = e.createA(m, "_blank");
  1659.             e.cache(m, "params", {key: i.key});
  1660.             u.click(m);
  1661.             return e.preventDefault(p)
  1662.         }};
  1663.     return function() {
  1664.         i.key && (c.init(), e.on("DOMReady", e.bind(c.init, c)))
  1665.     }
  1666. };
  1667. window.vglnk = window.vglnk || {};
  1668. window.vglnk.link_optimization_plugin = function(i, e, u) {
  1669.     var c, p = {};
  1670.     i = e.extend({platform: null}, i);
  1671.     var t = e.generateNodeFilter({classes: ["nooptimize"],rels: ["nooptimize"],custom: function(c, i) {
  1672.             if (i)
  1673.                 return Boolean(e.cache(c, "type"))
  1674.         }}), m = {data: !1,timing: !1};
  1675.     c = {getLinks: function() {
  1676.             var s = e.platforms(i.platform).getPostIDs();
  1677.             u.api("optimize", {pt: i.platform,i: s ? s.join("|") : null,u: location.href}, {fn: e.bind(c.onOptimizeApi, c)})
  1678.         },onOptimizeApi: function(c) {
  1679.             "object" === e.type(c) && "object" === e.type(c.optLinks) && (p =
  1680.             c.optLinks, this.optimizeLinks({data: !0}))
  1681.         },optimizeLink: function(c) {
  1682.             var i, m, u = p[c.href];
  1683.             if (u && t(c)) {
  1684.                 m = c.href;
  1685.                 var E = c.textContent || c.innerText;
  1686.                 if (!(i = m === E))
  1687.                     i = e.canonicalizeHostname(c), e.canonicalizeHostname(e.createEl("a", {href: E})) === i ? (i = e.fromQuery(c.search), i = e.find(i, function(c) {
  1688.                         return c === E
  1689.                     })) : i = !1;
  1690.                 var Y = e.canonicalizeHostname(c);
  1691.                 m = RegExp("\\b" + e.escapeRegExp(Y) + "\\b", "i").test(E) || -1 !== E.indexOf(m);
  1692.                 if (i) {
  1693.                     for (m = u.optLink; i = c.firstChild; )
  1694.                         c.removeChild(i);
  1695.                     c.appendChild(document.createTextNode(m))
  1696.                 } else if (m)
  1697.                     return;
  1698.                 e.cache(c, "params", {type: "LO",origOutId: u.pcid + ":" + u.linkId});
  1699.                 c.href = u.optLink
  1700.             }
  1701.         },optimizeLinks: function(i) {
  1702.             m = e.extend(m, i);
  1703.             m.timing && (m.data && p) && u.registerProcessor(e.bind(this.optimizeLink, c))
  1704.         },setup: function() {
  1705.             if (!i.platform || "full" === i.platform)
  1706.                 this.getLinks();
  1707.             else
  1708.                 e.on("DOMReady", e.bind(this.getLinks, this))
  1709.         }};
  1710.     c.setup();
  1711.     return function() {
  1712.         e.on("DOMReady", function() {
  1713.             c.optimizeLinks({timing: !0})
  1714.         })
  1715.     }
  1716. };
  1717. window.vglnk = window.vglnk || {};
  1718. window.vglnk.page_harmony_plugin = function(i, e, u) {
  1719.     i = e.extend({level: null}, i);
  1720.     return function() {
  1721.         var c = parseInt(i.level, 10);
  1722.         isFinite(c) && u.opt("harmony_level", c)
  1723.     }
  1724. };
  1725. window.vglnk = window.vglnk || {};
  1726. window.vglnk.product_linker_plugin = function(i, e, u, c) {
  1727.     var p, t, m = null, s = {}, v, A = 0, X = 0, E = 0, Y = 0;
  1728.     i = e.extend({cat: null,platform: null,key: null,link_phrases: !0,link_urls: !0,link_target: null,per_page: null,per_phrase: 5,product_source: null,proximity: null,same_proximity: 100,scope: null,type: null,ui: !0}, i);
  1729.     if (i.key) {
  1730.         p = e.platforms(i.platform);
  1731.         var Z = {data: i.link_phrases ? !1 : i.link_urls,timing: !1}, D = function(c) {
  1732.             var q = !1, m = c.parentNode;
  1733.             c.data && (q = v.test(c.data.replace(/\s+/, " ")));
  1734.             if (q)
  1735.                 for (var n = c, p, u, w, q = function(c,
  1736.                 o) {
  1737.                     var k, l, q, n, m, p, t, u, v, w, L = function(e) {
  1738.                         v.parentNode.insertBefore(c, v);
  1739.                         v.parentNode.removeChild(v);
  1740.                         return e
  1741.                     };
  1742.                     v = e.createEl("span");
  1743.                     c.parentNode.insertBefore(v, c);
  1744.                     v.appendChild(c);
  1745.                     w = e.geometry(v);
  1746.                     if (i.proximity || i.same_proximity)
  1747.                         for (p in s)
  1748.                             if ((t = s[p].links) && !(s[p] === o && !i.same_proximity || s[p] !== o && !i.proximity)) {
  1749.                                 u = s[p] === o ? Math.max(i.same_proximity, i.proximity) : i.proximity;
  1750.                                 k = 0;
  1751.                                 for (l = t.length; k < l; k++) {
  1752.                                     m = t[k].segments;
  1753.                                     q = 0;
  1754.                                     for (n = m.length; q < n; q++) {
  1755.                                         var x = m[q].geometry, y = w, A = u, x = e.extend({}, x);
  1756.                                         x.x1 -= A;
  1757.                                         x.y1 -= A;
  1758.                                         x.x2 += A;
  1759.                                         x.y2 += A;
  1760.                                         if (x.x1 < y.x2 && x.x2 > y.x1 && x.y1 < y.y2 && x.y2 > y.y1)
  1761.                                             return L(!1)
  1762.                                     }
  1763.                                 }
  1764.                             }
  1765.                     return L(!0)
  1766.                 }; n && n.data && (Boolean(u = n.data.match(/^\s+/)) || Boolean(u = n.data.match(v))); ) {
  1767.                     p = u[0];
  1768.                     w = u.slice(1).join("");
  1769.                     c = s[w.toLowerCase()];
  1770.                     p = n.data.indexOf(p) + p.length - w.length;
  1771.                     0 < p && (n = n.splitText(p));
  1772.                     p = n.length <= w.length ? null : n.splitText(w.length);
  1773.                     w && !c && (c = {url: w.match(/^https?:\/\//i) ? w : "http://" + w,type: "U"});
  1774.                     var y;
  1775.                     if (y = w) {
  1776.                         var l = y = void 0;
  1777.                         y = !c || !i.per_phrase || !c.count || c.count < i.per_phrase;
  1778.                         l = !i.per_page || A < i.per_page;
  1779.                         y = y && l && q(n, c)
  1780.                     }
  1781.                     if (y && (y = c, l = void 0, l = e.createEl("a"), l.innerHTML = w.replace(/([a-z0-9]+ *|[^a-z0-9]+)/ig, "\x3cspan\x3e$1\x3c/span\x3e"), l.className = "vglnk", e.cache(l, "type", "inserted"), e.cache(l, "phrase", w), i.ui && (l.title = "Link added by VigLink"), t.initLink(l, y), w = l, !e.cache(w, "unlinked"))) {
  1782.                         "U" === c.type ? Y++ : "L" === c.type.toUpperCase() ? X++ : E++;
  1783.                         m.insertBefore(w, n);
  1784.                         m.removeChild(n);
  1785.                         var n = c, K = l = y = void 0, k = void 0, D = {el: w,segments: []};
  1786.                         w = w.getElementsByTagName("span");
  1787.                         var M = {els: []};
  1788.                         y = 0;
  1789.                         for (l = w.length; y < l; y++)
  1790.                             K =
  1791.                             w[y], void 0 === k || K.offsetTop === k.offsetTop ? M.els.push(K) : (D.segments.push(M), M = {els: [K]}), k = K;
  1792.                         M.geometry = e.geometry.apply(e, M.els);
  1793.                         D.segments.push(M);
  1794.                         n.links = n.links || [];
  1795.                         n.links.push(D);
  1796.                         c.count++;
  1797.                         A++
  1798.                     }
  1799.                     n = p
  1800.                 }
  1801.         }, W = e.generateNodeFilter({classes: ["nolinks", "atma-nolink", "atma-nolinks"],tags: "applet embed object head img input link map meta param select button iframe option script style svg textarea title".split(" "),custom: function(c) {
  1802.                 return e.matches(c, "a[href]")
  1803.             }}), aa = function(c) {
  1804.             var q;
  1805.             if (c) {
  1806.                 if (W(c, {ancestors: !1,
  1807.                     self: !0}))
  1808.                     for (q = c.firstChild; q; )
  1809.                         c = q.nextSibling, 1 === q.nodeType ? aa(q) : 3 === q.nodeType && D(q), q = c
  1810.             } else
  1811.                 e.each(e.select(i.scope), function(c) {
  1812.                     W(c, {ancestors: !0,self: !1}) && aa(c)
  1813.                 })
  1814.         };
  1815.         t = {addPhrasesToMatcher: function(c) {
  1816.                 var i = "";
  1817.                 "regexp" === e.type(c) ? i = c.source : "array" === e.type(c) && (i = "(?:^|[\\s\"'\\(])(" + e.map(c, e.escapeRegExp).join("|") + ")(?\x3d\\s|\\W*$|\\W{2})");
  1818.                 "" !== i && (v = RegExp(v ? "(?:" + i + "|" + v.source + ")" : i, "i"))
  1819.             },focusLink: function(c) {
  1820.                 c.id || (c.id = e.uniqid("vl-link-"));
  1821.                 location.href.hash = "#" + c.id;
  1822.                 window.scrollBy(0,
  1823.                 -150)
  1824.             },getPhrases: function() {
  1825.                 var c = p.getPostIDs();
  1826.                 u.api("insert", e.extend(t.getPartnerParams(), {cat: i.cat,mode: i.mode,pt: i.platform,ps: i.product_source,i: c ? c.join("|") : null,u: location.href,type: i.type}), {fn: e.bind(t.onInsertApi, t)})
  1827.             },getPartnerParams: function() {
  1828.                 var c, e, i = u.opt("partner"), n = {};
  1829.                 for (c in i)
  1830.                     break;
  1831.                 if (c)
  1832.                     for (e in i[c])
  1833.                         n[c + "_" + e] = i[c][e];
  1834.                 return n
  1835.             },initLink: function(c, q, p) {
  1836.                 if (p = i.link_target || p)
  1837.                     c.target = p;
  1838.                 c.rel = "nofollow";
  1839.                 c.href || (c.href = q.url);
  1840.                 e.cache(c, "params", {exp: m,key: i.key,mid: q.mid,
  1841.                     type: q.type || null});
  1842.                 e.cache(c, "href", c.href);
  1843.                 u.link(c)
  1844.             },insertLinks: function(c) {
  1845.                 Z = e.extend(Z, c);
  1846.                 Z.timing && (Z.data && v) && (aa(), t.log())
  1847.             },loadPhrases: function(c) {
  1848.                 var e, i, n, m = [];
  1849.                 e = 0;
  1850.                 for (i = c.length; e < i; e++)
  1851.                     n = c[e], n.phrase && n.url && (n.phrase = n.phrase.toLowerCase(), s[n.phrase] || (m.push(n.phrase), s[n.phrase] = {count: s[n.phrase] ? s[n.phrase].count : 0,phrase: n.phrase,mid: n.mid,url: n.url,type: n.type || ""}));
  1852.                 0 < m.length && this.addPhrasesToMatcher(m);
  1853.                 this.insertLinks({data: !0})
  1854.             },log: function() {
  1855.                 var e, i, p = {heavy: [],lite: []},
  1856.                 n = function(c, e) {
  1857.                     return e.split(",")[0] - c.split(",")[0]
  1858.                 };
  1859.                 for (e in s)
  1860.                     i = parseInt(s[e].count, 10), 0 < i && (i = [i, e.replace(/\|/g, "%7C")].join(), p["L" === s[e].type.toUpperCase() ? "lite" : "heavy"].push(i));
  1861.                 p.lite.sort(n);
  1862.                 p.heavy.sort(n);
  1863.                 c("insert", [{ct: A,cl: X,ch: E,cu: Y,exp: m}, {pl: p.lite.join("|")}, {ph: p.heavy.join("|")}])
  1864.             },onInsertApi: function(c) {
  1865.                 "object" === e.type(c) && (m = c.exp, c.results && this.loadPhrases(c.results))
  1866.             },setup: function() {
  1867.                 i.scope = i.scope || p.scope || "body";
  1868.                 i.link_urls && this.addPhrasesToMatcher(RegExp("(?:(?:\\b(https?://)|(?:^|\\s)\\W*(www\\d{0,3}\\.|(?:[a-z0-9-]+\\.)+[a-z]{2,4}/))((?:[^\\s()\x3c\x3e]+|\\((?:[^\\s()\x3c\x3e]|(?:\\([^\\s()\x3c\x3e]+\\)))*\\))+(?:\\((?:[^\\s()\x3c\x3e]|(?:\\([^\\s()\x3c\x3e]+\\)))*\\)|[^\\s`!()\\[\\]{};:'\".,\x3c\x3e?\u00ab\u00bb\u201c\u201d\u2018\u2019]))|(?:^|\\s)\\W*((?:[a-z0-9-]+\\.)+com(?:/|\\b)))",
  1869.                 "i"));
  1870.                 if (i.link_phrases)
  1871.                     if (!i.platform || "full" === i.platform)
  1872.                         this.getPhrases();
  1873.                     else
  1874.                         e.on("DOMReady", e.bind(this.getPhrases, this))
  1875.             }};
  1876.         t.setup();
  1877.         return function() {
  1878.             e.on("DOMReady", function() {
  1879.                 t.insertLinks({timing: !0})
  1880.             })
  1881.         }
  1882.     }
  1883. };
  1884. window.vglnk = window.vglnk || {};
  1885. window.vglnk.spotlight_plugin = function(i, e, u) {
  1886.     window.vglnk.spotlight_plugin.exports = {$: e,opts: i,vglnk: u};
  1887.     return function() {
  1888.         (!e.browser.ie || 6 < e.browser.version) && e.jsonp(u.opt("asset_url") + "/spotlight.js")
  1889.     }
  1890. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement