define('lib/LAB', function() { var o = window; var K = o.$LAB, y = "UseLocalXHR", z = "AlwaysPreserveOrder", u = "AllowDuplicates", A = "CacheBust", B = "BasePath", C = /^[^?#]*\//.exec(location.href)[0], D = /^\w+\:\/\/\/?[^\/]+/.exec(C)[0], i = document.head || document.getElementsByTagName("head"), L = (o.opera && Object.prototype.toString.call(o.opera) == "[object Opera]") || ("MozAppearance" in document.documentElement.style), q = document.createElement("script"), E = typeof q.preload == "boolean", r = E || (q.readyState && q.readyState == "uninitialized"), F = !r && q.async === true, M = !r && !F && !L; function G(a) { return Object.prototype.toString.call(a) == "[object Function]" } function H(a) { return Object.prototype.toString.call(a) == "[object Array]" } function N(a, c) { var b = /^\w+\:\/\//; if (/^\/\/\/?/.test(a)) { a = location.protocol + a } else if (!b.test(a) && a.charAt(0) != "/") { a = (c || "") + a } return b.test(a) ? a : ((a.charAt(0) == "/" ? D : C) + a) } function s(a, c) { for (var b in a) { if (a.hasOwnProperty(b)) { c[b] = a[b] } } return c } function O(a) { var c = false; for (var b = 0; b < a.scripts.length; b++) { if (a.scripts[b].ready && a.scripts[b].exec_trigger) { c = true; a.scripts[b].exec_trigger(); a.scripts[b].exec_trigger = null } } return c } function t(a, c, b, d) { a.onload = a.onreadystatechange = function() { if ((a.readyState && a.readyState != "complete" && a.readyState != "loaded") || c[b]) return; a.onload = a.onreadystatechange = null; d() } } function I(a) { a.ready = a.finished = true; for (var c = 0; c < a.finished_listeners.length; c++) { a.finished_listeners[c]() } a.ready_listeners = []; a.finished_listeners = [] } function P(d, f, e, g, h) { setTimeout(function() { var a, c = f.real_src, b; if ("item" in i) { if (!i[0]) { setTimeout(arguments.callee, 25); return } i = i[0] } a = document.createElement("script"); if (f.type) a.type = f.type; if (f.charset) a.charset = f.charset; if (h) { if (r) { e.elem = a; if (E) { a.preload = true; a.onpreload = g } else { a.onreadystatechange = function() { if (a.readyState == "loaded") g() } } a.src = c } else if (h && c.indexOf(D) == 0 && d[y]) { b = new XMLHttpRequest(); b.onreadystatechange = function() { if (b.readyState == 4) { b.onreadystatechange = function() {}; e.text = b.responseText + "\n//@ sourceURL=" + c; g() } }; b.open("GET", c); b.send() } else { a.type = "text/cache-script"; t(a, e, "ready", function() { i.removeChild(a); g() }); a.src = c; i.insertBefore(a, i.firstChild) } } else if (F) { a.async = false; t(a, e, "finished", g); a.src = c; i.insertBefore(a, i.firstChild) } else { t(a, e, "finished", g); a.src = c; i.insertBefore(a, i.firstChild) } }, 0) } function J() { var l = {}, Q = r || M, n = [], p = {}, m; l[y] = true; l[z] = false; l[u] = false; l[A] = false; l[B] = ""; function R(a, c, b) { var d; function f() { if (d != null) { d = null; I(b) } } if (p[c.src].finished) return; if (!a[u]) p[c.src].finished = true; d = b.elem || document.createElement("script"); if (c.type) d.type = c.type; if (c.charset) d.charset = c.charset; t(d, b, "finished", f); if (b.elem) { b.elem = null } else if (b.text) { d.onload = d.onreadystatechange = null; d.text = b.text } else { d.src = c.real_src } i.insertBefore(d, i.firstChild); if (b.text) { f() } } function S(c, b, d, f) { var e, g, h = function() { b.ready_cb(b, function() { R(c, b, e) }) }, j = function() { b.finished_cb(b, d) }; b.src = N(b.src, c[B]); b.real_src = b.src + (c[A] ? ((/\?.*$/.test(b.src) ? "&_" : "?_") + ~~(Math.random() * 1E9) + "=") : ""); if (!p[b.src]) p[b.src] = { items: [], finished: false }; g = p[b.src].items; if (c[u] || g.length == 0) { e = g[g.length] = { ready: false, finished: false, ready_listeners: [h], finished_listeners: [j] }; P(c, b, e, ((f) ? function() { e.ready = true; for (var a = 0; a < e.ready_listeners.length; a++) { e.ready_listeners[a]() } e.ready_listeners = [] } : function() { I(e) }), f) } else { e = g[0]; if (e.finished) { j() } else { e.finished_listeners.push(j) } } } function v() { var e, g = s(l, {}), h = [], j = 0, w = false, k; function T(a, c) { a.ready = true; a.exec_trigger = c; x() } function U(a, c) { a.ready = a.finished = true; a.exec_trigger = null; for (var b = 0; b < c.scripts.length; b++) { if (!c.scripts[b].finished) return } c.finished = true; x() } function x() { while (j < h.length) { if (G(h[j])) { try { h[j++]() } catch (err) {} continue } else if (!h[j].finished) { if (O(h[j])) continue; break } j++ } if (j == h.length) { w = false; k = false } } function V() { if (!k || !k.scripts) { h.push(k = { scripts: [], finished: true }) } } e = { script: function() { for (var f = 0; f < arguments.length; f++) { (function(a, c) { var b; if (!H(a)) { c = [a] } for (var d = 0; d < c.length; d++) { V(); a = c[d]; if (G(a)) a = a(); if (!a) continue; if (H(a)) { b = [].slice.call(a); b.unshift(d, 1); [].splice.apply(c, b); d--; continue } if (typeof a == "string") a = { src: a }; a = s(a, { ready: false, ready_cb: T, finished: false, finished_cb: U }); k.finished = false; k.scripts.push(a); S(g, a, k, (Q && w)); w = true; if (g[z]) e.wait() } })(arguments[f], arguments[f]) } return e }, wait: function() { if (arguments.length > 0) { for (var a = 0; a < arguments.length; a++) { h.push(arguments[a]) } k = h[h.length - 1] } else k = false; x(); return e } }; return { script: e.script, wait: e.wait, setOptions: function(a) { s(a, g); return e } } } m = { setGlobalDefaults: function(a) { s(a, l); return m }, setOptions: function() { return v().setOptions.apply(null, arguments) }, script: function() { return v().script.apply(null, arguments) }, wait: function() { return v().wait.apply(null, arguments) }, queueScript: function() { n[n.length] = { type: "script", args: [].slice.call(arguments) }; return m }, queueWait: function() { n[n.length] = { type: "wait", args: [].slice.call(arguments) }; return m }, runQueue: function() { var a = m, c = n.length, b = c, d; for (; --b >= 0;) { d = n.shift(); a = a[d.type].apply(null, d.args) } return a }, noConflict: function() { o.$LAB = K; return m }, sandbox: function() { return J() } }; return m } o.$LAB = J(); (function(a, c, b) { if (document.readyState == null && document[a]) { document.readyState = "loading"; document[a](c, b = function() { document.removeEventListener(c, b, false); document.readyState = "complete" }, false) } })("addEventListener", "DOMContentLoaded") return o.$LAB; });