* Sunda Cyber Army 2k17 *
Indonesia Defacer ~
! function(a, b) {
"object" == typeof module && "object" == typeof module.exports ? module.exports = a.document ? b(a, !0) : function(a) {
if (!a.document) throw new Error("jQuery requires a window with a document");
return b(a)
} : b(a)
}("undefined" != typeof window ? window : this, function(a, b) {
var c = [],
d = c.slice,
e = c.concat,
f = c.push,
g = c.indexOf,
h = {},
i = h.toString,
j = h.hasOwnProperty,
k = "".trim,
l = {},
m = "1.11.0",
n = function(a, b) {
return new n.fn.init(a, b)
},
o = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,
p = /^-ms-/,
q = /-([\da-z])/gi,
r = function(a, b) {
return b.toUpperCase()
};
n.fn = n.prototype = {
jquery: m,
constructor: n,
selector: "",
length: 0,
toArray: function() {
return d.call(this)
},
get: function(a) {
return null != a ? 0 > a ? this[a + this.length] : this[a] : d.call(this)
},
pushStack: function(a) {
var b = n.merge(this.constructor(), a);
return b.prevObject = this, b.context = this.context, b
},
each: function(a, b) {
return n.each(this, a, b)
},
map: function(a) {
return this.pushStack(n.map(this, function(b, c) {
return a.call(b, c, b)
}))
},
slice: function() {
return this.pushStack(d.apply(this, arguments))
},
first: function() {
return this.eq(0)
},
last: function() {
return this.eq(-1)
},
eq: function(a) {
var b = this.length,
c = +a + (0 > a ? b : 0);
return this.pushStack(c >= 0 && b > c ? [this[c]] : [])
},
end: function() {
return this.prevObject || this.constructor(null)
},
push: f,
sort: c.sort,
splice: c.splice
}, n.extend = n.fn.extend = function() {
var a, b, c, d, e, f, g = arguments[0] || {},
h = 1,
i = arguments.length,
j = !1;
for ("boolean" == typeof g && (j = g, g = arguments[h] || {}, h++), "object" == typeof g || n.isFunction(g) || (g = {}), h === i && (g = this, h--); i > h; h++)
if (null != (e = arguments[h]))
for (d in e) a = g[d], c = e[d], g !== c && (j && c && (n.isPlainObject(c) || (b = n.isArray(c))) ? (b ? (b = !1, f = a && n.isArray(a) ? a : []) : f = a && n.isPlainObject(a) ? a : {}, g[d] = n.extend(j, f, c)) : void 0 !== c && (g[d] = c));
return g
}, n.extend({
expando: "jQuery" + (m + Math.random()).replace(/\D/g, ""),
isReady: !0,
error: function(a) {
throw new Error(a)
},
noop: function() {},
isFunction: function(a) {
return "function" === n.type(a)
},
isArray: Array.isArray || function(a) {
return "array" === n.type(a)
},
isWindow: function(a) {
return null != a && a == a.window
},
isNumeric: function(a) {
return a - parseFloat(a) >= 0
},
isEmptyObject: function(a) {
var b;
for (b in a) return !1;
return !0
},
isPlainObject: function(a) {
var b;
if (!a || "object" !== n.type(a) || a.nodeType || n.isWindow(a)) return !1;
try {
if (a.constructor && !j.call(a, "constructor") && !j.call(a.constructor.prototype, "isPrototypeOf")) return !1
} catch (c) {
return !1
}
if (l.ownLast)
for (b in a) return j.call(a, b);
for (b in a);
return void 0 === b || j.call(a, b)
},
type: function(a) {
return null == a ? a + "" : "object" == typeof a || "function" == typeof a ? h[i.call(a)] || "object" : typeof a
},
globalEval: function(b) {
b && n.trim(b) && (a.execScript || function(b) {
a.eval.call(a, b)
})(b)
},
camelCase: function(a) {
return a.replace(p, "ms-").replace(q, r)
},
nodeName: function(a, b) {
return a.nodeName && a.nodeName.toLowerCase() === b.toLowerCase()
},
each: function(a, b, c) {
var d, e = 0,
f = a.length,
g = s(a);
if (c) {
if (g) {
for (; f > e; e++)
if (d = b.apply(a[e], c), d === !1) break
} else
for (e in a)
if (d = b.apply(a[e], c), d === !1) break
} else if (g) {
for (; f > e; e++)
if (d = b.call(a[e], e, a[e]), d === !1) break
} else
for (e in a)
if (d = b.call(a[e], e, a[e]), d === !1) break;
return a
},
trim: k && !k.call(" ") ? function(a) {
return null == a ? "" : k.call(a)
} : function(a) {
return null == a ? "" : (a + "").replace(o, "")
},
makeArray: function(a, b) {
var c = b || [];
return null != a && (s(Object(a)) ? n.merge(c, "string" == typeof a ? [a] : a) : f.call(c, a)), c
},
inArray: function(a, b, c) {
var d;
if (b) {
if (g) return g.call(b, a, c);
for (d = b.length, c = c ? 0 > c ? Math.max(0, d + c) : c : 0; d > c; c++)
if (c in b && b[c] === a) return c
}
return -1
},
merge: function(a, b) {
var c = +b.length,
d = 0,
e = a.length;
while (c > d) a[e++] = b[d++];
if (c !== c)
while (void 0 !== b[d]) a[e++] = b[d++];
return a.length = e, a
},
grep: function(a, b, c) {
for (var d, e = [], f = 0, g = a.length, h = !c; g > f; f++) d = !b(a[f], f), d !== h && e.push(a[f]);
return e
},
map: function(a, b, c) {
var d, f = 0,
g = a.length,
h = s(a),
i = [];
if (h)
for (; g > f; f++) d = b(a[f], f, c), null != d && i.push(d);
else
for (f in a) d = b(a[f], f, c), null != d && i.push(d);
return e.apply([], i)
},
guid: 1,
proxy: function(a, b) {
var c, e, f;
return "string" == typeof b && (f = a[b], b = a, a = f), n.isFunction(a) ? (c = d.call(arguments, 2), e = function() {
return a.apply(b || this, c.concat(d.call(arguments)))
}, e.guid = a.guid = a.guid || n.guid++, e) : void 0
},
now: function() {
return +new Date
},
support: l
}), n.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function(a, b) {
h["[object " + b + "]"] = b.toLowerCase()
});
function s(a) {
var b = a.length,
c = n.type(a);
return "function" === c || n.isWindow(a) ? !1 : 1 === a.nodeType && b ? !0 : "array" === c || 0 === b || "number" == typeof b && b > 0 && b - 1 in a
}
var t = function(a) {
var b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s = "sizzle" + -new Date,
t = a.document,
u = 0,
v = 0,
w = eb(),
x = eb(),
y = eb(),
z = function(a, b) {
return a === b && (j = !0), 0
},
A = "undefined",
B = 1 << 31,
C = {}.hasOwnProperty,
D = [],
E = D.pop,
F = D.push,
G = D.push,
H = D.slice,
I = D.indexOf || function(a) {
for (var b = 0, c = this.length; c > b; b++)
if (this[b] === a) return b;
return -1
},
J = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",
K = "[\\x20\\t\\r\\n\\f]",
L = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",
M = L.replace("w", "w#"),
N = "\\[" + K + "*(" + L + ")" + K + "*(?:([*^$|!~]?=)" + K + "*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|(" + M + ")|)|)" + K + "*\\]",
O = ":(" + L + ")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|" + N.replace(3, 8) + ")*)|.*)\\)|)",
P = new RegExp("^" + K + "+|((?:^|[^\\\\])(?:\\\\.)*)" + K + "+$", "g"),
Q = new RegExp("^" + K + "*," + K + "*"),
R = new RegExp("^" + K + "*([>+~]|" + K + ")" + K + "*"),
S = new RegExp("=" + K + "*([^\\]'\"]*?)" + K + "*\\]", "g"),
T = new RegExp(O),
U = new RegExp("^" + M + "$"),
V = {
ID: new RegExp("^#(" + L + ")"),
CLASS: new RegExp("^\\.(" + L + ")"),
TAG: new RegExp("^(" + L.replace("w", "w*") + ")"),
ATTR: new RegExp("^" + N),
PSEUDO: new RegExp("^" + O),
CHILD: new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + K + "*(even|odd|(([+-]|)(\\d*)n|)" + K + "*(?:([+-]|)" + K + "*(\\d+)|))" + K + "*\\)|)", "i"),
bool: new RegExp("^(?:" + J + ")$", "i"),
needsContext: new RegExp("^" + K + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + K + "*((?:-\\d)?\\d*)" + K + "*\\)|)(?=[^-]|$)", "i")
},
W = /^(?:input|select|textarea|button)$/i,
X = /^h\d$/i,
Y = /^[^{]+\{\s*\[native \w/,
Z = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
$ = /[+~]/,
_ = /'|\\/g,
ab = new RegExp("\\\\([\\da-f]{1,6}" + K + "?|(" + K + ")|.)", "ig"),
bb = function(a, b, c) {
var d = "0x" + b - 65536;
return d !== d || c ? b : 0 > d ? String.fromCharCode(d + 65536) : String.fromCharCode(d >> 10 | 55296, 1023 & d | 56320)
};
try {
G.apply(D = H.call(t.childNodes), t.childNodes), D[t.childNodes.length].nodeType
} catch (cb) {
G = {
apply: D.length ? function(a, b) {
F.apply(a, H.call(b))
} : function(a, b) {
var c = a.length,
d = 0;
while (a[c++] = b[d++]);
a.length = c - 1
}
}
}
function db(a, b, d, e) {
var f, g, h, i, j, m, p, q, u, v;
if ((b ? b.ownerDocument || b : t) !== l && k(b), b = b || l, d = d || [], !a || "string" != typeof a) return d;
if (1 !== (i = b.nodeType) && 9 !== i) return [];
if (n && !e) {
if (f = Z.exec(a))
if (h = f[1]) {
if (9 === i) {
if (g = b.getElementById(h), !g || !g.parentNode) return d;
if (g.id === h) return d.push(g), d
} else if (b.ownerDocument && (g = b.ownerDocument.getElementById(h)) && r(b, g) && g.id === h) return d.push(g), d
} else {
if (f[2]) return G.apply(d, b.getElementsByTagName(a)), d;
if ((h = f[3]) && c.getElementsByClassName && b.getElementsByClassName) return G.apply(d, b.getElementsByClassName(h)), d
} if (c.qsa && (!o || !o.test(a))) {
if (q = p = s, u = b, v = 9 === i && a, 1 === i && "object" !== b.nodeName.toLowerCase()) {
m = ob(a), (p = b.getAttribute("id")) ? q = p.replace(_, "\\$&") : b.setAttribute("id", q), q = "[id='" + q + "'] ", j = m.length;
while (j--) m[j] = q + pb(m[j]);
u = $.test(a) && mb(b.parentNode) || b, v = m.join(",")
}
if (v) try {
return G.apply(d, u.querySelectorAll(v)), d
} catch (w) {} finally {
p || b.removeAttribute("id")
}
}
}
return xb(a.replace(P, "$1"), b, d, e)
}
function eb() {
var a = [];
function b(c, e) {
return a.push(c + " ") > d.cacheLength && delete b[a.shift()], b[c + " "] = e
}
return b
}
function fb(a) {
return a[s] = !0, a
}
function gb(a) {
var b = l.createElement("div");
try {
return !!a(b)
} catch (c) {
return !1
} finally {
b.parentNode && b.parentNode.removeChild(b), b = null
}
}
function hb(a, b) {
var c = a.split("|"),
e = a.length;
while (e--) d.attrHandle[c[e]] = b
}
function ib(a, b) {
var c = b && a,
d = c && 1 === a.nodeType && 1 === b.nodeType && (~b.sourceIndex || B) - (~a.sourceIndex || B);
if (d) return d;
if (c)
while (c = c.nextSibling)
if (c === b) return -1;
return a ? 1 : -1
}
function jb(a) {
return function(b) {
var c = b.nodeName.toLowerCase();
return "input" === c && b.type === a
}
}
function kb(a) {
return function(b) {
var c = b.nodeName.toLowerCase();
return ("input" === c || "button" === c) && b.type === a
}
}
function lb(a) {
return fb(function(b) {
return b = +b, fb(function(c, d) {
var e, f = a([], c.length, b),
g = f.length;
while (g--) c[e = f[g]] && (c[e] = !(d[e] = c[e]))
})
})
}
function mb(a) {
return a && typeof a.getElementsByTagName !== A && a
}
c = db.support = {}, f = db.isXML = function(a) {
var b = a && (a.ownerDocument || a).documentElement;
return b ? "HTML" !== b.nodeName : !1
}, k = db.setDocument = function(a) {
var b, e = a ? a.ownerDocument || a : t,
g = e.defaultView;
return e !== l && 9 === e.nodeType && e.documentElement ? (l = e, m = e.documentElement, n = !f(e), g && g !== g.top && (g.addEventListener ? g.addEventListener("unload", function() {
k()
}, !1) : g.attachEvent && g.attachEvent("onunload", function() {
k()
})), c.attributes = gb(function(a) {
return a.className = "i", !a.getAttribute("className")
}), c.getElementsByTagName = gb(function(a) {
return a.appendChild(e.createComment("")), !a.getElementsByTagName("*").length
}), c.getElementsByClassName = Y.test(e.getElementsByClassName) && gb(function(a) {
return a.innerHTML = "<div class='a'></div><div class='a i'></div>", a.firstChild.className = "i", 2 === a.getElementsByClassName("i").length
}), c.getById = gb(function(a) {
return m.appendChild(a).id = s, !e.getElementsByName || !e.getElementsByName(s).length
}), c.getById ? (d.find.ID = function(a, b) {
if (typeof b.getElementById !== A && n) {
var c = b.getElementById(a);
return c && c.parentNode ? [c] : []
}
}, d.filter.ID = function(a) {
var b = a.replace(ab, bb);
return function(a) {
return a.getAttribute("id") === b
}
}) : (delete d.find.ID, d.filter.ID = function(a) {
var b = a.replace(ab, bb);
return function(a) {
var c = typeof a.getAttributeNode !== A && a.getAttributeNode("id");
return c && c.value === b
}
}), d.find.TAG = c.getElementsByTagName ? function(a, b) {
return typeof b.getElementsByTagName !== A ? b.getElementsByTagName(a) : void 0
} : function(a, b) {
var c, d = [],
e = 0,
f = b.getElementsByTagName(a);
if ("*" === a) {
while (c = f[e++]) 1 === c.nodeType && d.push(c);
return d
}
return f
}, d.find.CLASS = c.getElementsByClassName && function(a, b) {
return typeof b.getElementsByClassName !== A && n ? b.getElementsByClassName(a) : void 0
}, p = [], o = [], (c.qsa = Y.test(e.querySelectorAll)) && (gb(function(a) {
a.innerHTML = "<select t=''><option selected=''></option></select>", a.querySelectorAll("[t^='']").length && o.push("[*^$]=" + K + "*(?:''|\"\")"), a.querySelectorAll("[selected]").length || o.push("\\[" + K + "*(?:value|" + J + ")"), a.querySelectorAll(":checked").length || o.push(":checked")
}), gb(function(a) {
var b = e.createElement("input");
b.setAttribute("type", "hidden"), a.appendChild(b).setAttribute("name", "D"), a.querySelectorAll("[name=d]").length && o.push("name" + K + "*[*^$|!~]?="), a.querySelectorAll(":enabled").length || o.push(":enabled", ":disabled"), a.querySelectorAll("*,:x"), o.push(",.*:")
})), (c.matchesSelector = Y.test(q = m.webkitMatchesSelector || m.mozMatchesSelector || m.oMatchesSelector || m.msMatchesSelector)) && gb(function(a) {
c.disconnectedMatch = q.call(a, "div"), q.call(a, "[s!='']:x"), p.push("!=", O)
}), o = o.length && new RegExp(o.join("|")), p = p.length && new RegExp(p.join("|")), b = Y.test(m.compareDocumentPosition), r = b || Y.test(m.contains) ? function(a, b) {
var c = 9 === a.nodeType ? a.documentElement : a,
d = b && b.parentNode;
return a === d || !(!d || 1 !== d.nodeType || !(c.contains ? c.contains(d) : a.compareDocumentPosition && 16 & a.compareDocumentPosition(d)))
} : function(a, b) {
if (b)
while (b = b.parentNode)
if (b === a) return !0;
return !1
}, z = b ? function(a, b) {
if (a === b) return j = !0, 0;
var d = !a.compareDocumentPosition - !b.compareDocumentPosition;
return d ? d : (d = (a.ownerDocument || a) === (b.ownerDocument || b) ? a.compareDocumentPosition(b) : 1, 1 & d || !c.sortDetached && b.compareDocumentPosition(a) === d ? a === e || a.ownerDocument === t && r(t, a) ? -1 : b === e || b.ownerDocument === t && r(t, b) ? 1 : i ? I.call(i, a) - I.call(i, b) : 0 : 4 & d ? -1 : 1)
} : function(a, b) {
if (a === b) return j = !0, 0;
var c, d = 0,
f = a.parentNode,
g = b.parentNode,
h = [a],
k = [b];
if (!f || !g) return a === e ? -1 : b === e ? 1 : f ? -1 : g ? 1 : i ? I.call(i, a) - I.call(i, b) : 0;
if (f === g) return ib(a, b);
c = a;
while (c = c.parentNode) h.unshift(c);
c = b;
while (c = c.parentNode) k.unshift(c);
while (h[d] === k[d]) d++;
return d ? ib(h[d], k[d]) : h[d] === t ? -1 : k[d] === t ? 1 : 0
}, e) : l
}, db.matches = function(a, b) {
return db(a, null, null, b)
}, db.matchesSelector = function(a, b) {
if ((a.ownerDocument || a) !== l && k(a), b = b.replace(S, "='$1']"), !(!c.matchesSelector || !n || p && p.test(b) || o && o.test(b))) try {
var d = q.call(a, b);
if (d || c.disconnectedMatch || a.document && 11 !== a.document.nodeType) return d
} catch (e) {}
return db(b, l, null, [a]).length > 0
}, db.contains = function(a, b) {
return (a.ownerDocument || a) !== l && k(a), r(a, b)
}, db.attr = function(a, b) {
(a.ownerDocument || a) !== l && k(a);
var e = d.attrHandle[b.toLowerCase()],
f = e && C.call(d.attrHandle, b.toLowerCase()) ? e(a, b, !n) : void 0;
return void 0 !== f ? f : c.attributes || !n ? a.getAttribute(b) : (f = a.getAttributeNode(b)) && f.specified ? f.value : null
}, db.error = function(a) {
throw new Error("Syntax error, unrecognized expression: " + a)
}, db.uniqueSort = function(a) {
var b, d = [],
e = 0,
f = 0;
if (j = !c.detectDuplicates, i = !c.sortStable && a.slice(0), a.sort(z), j) {
while (b = a[f++]) b === a[f] && (e = d.push(f));
while (e--) a.splice(d[e], 1)
}
return i = null, a
}, e = db.getText = function(a) {
var b, c = "",
d = 0,
f = a.nodeType;
if (f) {
if (1 === f || 9 === f || 11 === f) {
if ("string" == typeof a.textContent) return a.textContent;
for (a = a.firstChild; a; a = a.nextSibling) c += e(a)
} else if (3 === f || 4 === f) return a.nodeValue
} else
while (b = a[d++]) c += e(b);
return c
}, d = db.selectors = {
cacheLength: 50,
createPseudo: fb,
match: V,
attrHandle: {},
find: {},
relative: {
">": {
dir: "parentNode",
first: !0
},
" ": {
dir: "parentNode"
},
"+": {
dir: "previousSibling",
first: !0
},
"~": {
dir: "previousSibling"
}
},
preFilter: {
ATTR: function(a) {
return a[1] = a[1].replace(ab, bb), a[3] = (a[4] || a[5] || "").replace(ab, bb), "~=" === a[2] && (a[3] = " " + a[3] + " "), a.slice(0, 4)
},
CHILD: function(a) {
return a[1] = a[1].toLowerCase(), "nth" === a[1].slice(0, 3) ? (a[3] || db.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] && db.error(a[0]), a
},
PSEUDO: function(a) {
var b, c = !a[5] && a[2];
return V.CHILD.test(a[0]) ? null : (a[3] && void 0 !== a[4] ? a[2] = a[4] : c && T.test(c) && (b = ob(c, !0)) && (b = c.indexOf(")", c.length - b) - c.length) && (a[0] = a[0].slice(0, b), a[2] = c.slice(0, b)), a.slice(0, 3))
}
},
filter: {
TAG: function(a) {
var b = a.replace(ab, bb).toLowerCase();
return "*" === a ? function() {
return !0
} : function(a) {
return a.nodeName && a.nodeName.toLowerCase() === b
}
},
CLASS: function(a) {
var b = w[a + " "];
return b || (b = new RegExp("(^|" + K + ")" + a + "(" + K + "|$)")) && w(a, function(a) {
return b.test("string" == typeof a.className && a.className || typeof a.getAttribute !== A && a.getAttribute("class") || "")
})
},
ATTR: function(a, b, c) {
return function(d) {
var e = db.attr(d, a);
return null == e ? "!=" === b : b ? (e += "", "=" === b ? e === c : "!=" === b ? e !== c : "^=" === b ? c && 0 === e.indexOf(c) : "*=" === b ? c && e.indexOf(c) > -1 : "$=" === b ? c && e.slice(-c.length) === c : "~=" === b ? (" " + e + " ").indexOf(c) > -1 : "|=" === b ? e === c || e.slice(0, c.length + 1) === c + "-" : !1) : !0
}
},
CHILD: function(a, b, c, d, e) {
var f = "nth" !== a.slice(0, 3),
g = "last" !== a.slice(-4),
h = "of-type" === b;
return 1 === d && 0 === e ? function(a) {
return !!a.parentNode
} : function(b, c, i) {
var j, k, l, m, n, o, p = f !== g ? "nextSibling" : "previousSibling",
q = b.parentNode,
r = h && b.nodeName.toLowerCase(),
t = !i && !h;
if (q) {
if (f) {
while (p) {
l = b;
while (l = l[p])
if (h ? l.nodeName.toLowerCase() === r : 1 === l.nodeType) return !1;
o = p = "only" === a && !o && "nextSibling"
}
return !0
}
if (o = [g ? q.firstChild : q.lastChild], g && t) {
k = q[s] || (q[s] = {}), j = k[a] || [], n = j[0] === u && j[1], m = j[0] === u && j[2], l = n && q.childNodes[n];
while (l = ++n && l && l[p] || (m = n = 0) || o.pop())
if (1 === l.nodeType && ++m && l === b) {
k[a] = [u, n, m];
break
}
} else if (t && (j = (b[s] || (b[s] = {}))[a]) && j[0] === u) m = j[1];
else
while (l = ++n && l && l[p] || (m = n = 0) || o.pop())
if ((h ? l.nodeName.toLowerCase() === r : 1 === l.nodeType) && ++m && (t && ((l[s] || (l[s] = {}))[a] = [u, m]), l === b)) break;
return m -= e, m === d || m % d === 0 && m / d >= 0
}
}
},
PSEUDO: function(a, b) {
var c, e = d.pseudos[a] || d.setFilters[a.toLowerCase()] || db.error("unsupported pseudo: " + a);
return e[s] ? e(b) : e.length > 1 ? (c = [a, a, "", b], d.setFilters.hasOwnProperty(a.toLowerCase()) ? fb(function(a, c) {
var d, f = e(a, b),
g = f.length;
while (g--) d = I.call(a, f[g]), a[d] = !(c[d] = f[g])
}) : function(a) {
return e(a, 0, c)
}) : e
}
},
pseudos: {
not: fb(function(a) {
var b = [],
c = [],
d = g(a.replace(P, "$1"));
return d[s] ? fb(function(a, b, c, e) {
var f, g = d(a, null, e, []),
h = a.length;
while (h--)(f = g[h]) && (a[h] = !(b[h] = f))
}) : function(a, e, f) {
return b[0] = a, d(b, null, f, c), !c.pop()
}
}),
has: fb(function(a) {
return function(b) {
return db(a, b).length > 0
}
}),
contains: fb(function(a) {
return function(b) {
return (b.textContent || b.innerText || e(b)).indexOf(a) > -1
}
}),
lang: fb(function(a) {
return U.test(a || "") || db.error("unsupported lang: " + a), a = a.replace(ab, bb).toLowerCase(),
function(b) {
var c;
do
if (c = n ? b.lang : b.getAttribute("xml:lang") || b.getAttribute("lang")) return c = c.toLowerCase(), c === a || 0 === c.indexOf(a + "-"); while ((b = b.parentNode) && 1 === b.nodeType);
return !1
}
}),
target: function(b) {
var c = a.location && a.location.hash;
return c && c.slice(1) === b.id
},
root: function(a) {
return a === m
},
focus: function(a) {
return a === l.activeElement && (!l.hasFocus || l.hasFocus()) && !!(a.type || a.href || ~a.tabIndex)
},
enabled: function(a) {
return a.disabled === !1
},
disabled: function(a) {
return a.disabled === !0
},
checked: function(a) {
var b = a.nodeName.toLowerCase();
return "input" === b && !!a.checked || "option" === b && !!a.selected
},
selected: function(a) {
return a.parentNode && a.parentNode.selectedIndex, a.selected === !0
},
empty: function(a) {
for (a = a.firstChild; a; a = a.nextSibling)
if (a.nodeType < 6) return !1;
return !0
},
parent: function(a) {
return !d.pseudos.empty(a)
},
header: function(a) {
return X.test(a.nodeName)
},
input: function(a) {
return W.test(a.nodeName)
},
button: function(a) {
var b = a.nodeName.toLowerCase();
return "input" === b && "button" === a.type || "button" === b
},
text: function(a) {
var b;
return "input" === a.nodeName.toLowerCase() && "text" === a.type && (null == (b = a.getAttribute("type")) || "text" === b.toLowerCase())
},
first: lb(function() {
return [0]
}),
last: lb(function(a, b) {
return [b - 1]
}),
eq: lb(function(a, b, c) {
return [0 > c ? c + b : c]
}),
even: lb(function(a, b) {
for (var c = 0; b > c; c += 2) a.push(c);
return a
}),
odd: lb(function(a, b) {
for (var c = 1; b > c; c += 2) a.push(c);
return a
}),
lt: lb(function(a, b, c) {
for (var d = 0 > c ? c + b : c; --d >= 0;) a.push(d);
return a
}),
gt: lb(function(a, b, c) {
for (var d = 0 > c ? c + b : c; ++d < b;) a.push(d);
return a
})
}
}, d.pseudos.nth = d.pseudos.eq;
for (b in {
radio: !0,
checkbox: !0,
file: !0,
password: !0,
image: !0
}) d.pseudos[b] = jb(b);
for (b in {
submit: !0,
reset: !0
}) d.pseudos[b] = kb(b);
function nb() {}
nb.prototype = d.filters = d.pseudos, d.setFilters = new nb;
function ob(a, b) {
var c, e, f, g, h, i, j, k = x[a + " "];
if (k) return b ? 0 : k.slice(0);
h = a, i = [], j = d.preFilter;
while (h) {
(!c || (e = Q.exec(h))) && (e && (h = h.slice(e[0].length) || h), i.push(f = [])), c = !1, (e = R.exec(h)) && (c = e.shift(), f.push({
value: c,
type: e[0].replace(P, " ")
}), h = h.slice(c.length));
for (g in d.filter) !(e = V[g].exec(h)) || j[g] && !(e = j[g](e)) || (c = e.shift(), f.push({
value: c,
type: g,
matches: e
}), h = h.slice(c.length));
if (!c) break
}
return b ? h.length : h ? db.error(a) : x(a, i).slice(0)
}
function pb(a) {
for (var b = 0, c = a.length, d = ""; c > b; b++) d += a[b].value;
return d
}
function qb(a, b, c) {
var d = b.dir,
e = c && "parentNode" === d,
f = v++;
return b.first ? function(b, c, f) {
while (b = b[d])
if (1 === b.nodeType || e) return a(b, c, f)
} : function(b, c, g) {
var h, i, j = [u, f];
if (g) {
while (b = b[d])
if ((1 === b.nodeType || e) && a(b, c, g)) return !0
} else
while (b = b[d])
if (1 === b.nodeType || e) {
if (i = b[s] || (b[s] = {}), (h = i[d]) && h[0] === u && h[1] === f) return j[2] = h[2];
if (i[d] = j, j[2] = a(b, c, g)) return !0
}
}
}
function rb(a) {
return a.length > 1 ? function(b, c, d) {
var e = a.length;
while (e--)
if (!a[e](b, c, d)) return !1;
return !0
} : a[0]
}
function sb(a, b, c, d, e) {
for (var f, g = [], h = 0, i = a.length, j = null != b; i > h; h++)(f = a[h]) && (!c || c(f, d, e)) && (g.push(f), j && b.push(h));
return g
}
function tb(a, b, c, d, e, f) {
return d && !d[s] && (d = tb(d)), e && !e[s] && (e = tb(e, f)), fb(function(f, g, h, i) {
var j, k, l, m = [],
n = [],
o = g.length,
p = f || wb(b || "*", h.nodeType ? [h] : h, []),
q = !a || !f && b ? p : sb(p, m, a, h, i),
r = c ? e || (f ? a : o || d) ? [] : g : q;
if (c && c(q, r, h, i), d) {
j = sb(r, n), d(j, [], h, i), k = j.length;
while (k--)(l = j[k]) && (r[n[k]] = !(q[n[k]] = l))
}
if (f) {
if (e || a) {
if (e) {
j = [], k = r.length;
while (k--)(l = r[k]) && j.push(q[k] = l);
e(null, r = [], j, i)
}
k = r.length;
while (k--)(l = r[k]) && (j = e ? I.call(f, l) : m[k]) > -1 && (f[j] = !(g[j] = l))
}
} else r = sb(r === g ? r.splice(o, r.length) : r), e ? e(null, g, r, i) : G.apply(g, r)
})
}
function ub(a) {
for (var b, c, e, f = a.length, g = d.relative[a[0].type], i = g || d.relative[" "], j = g ? 1 : 0, k = qb(function(a) {
return a === b
}, i, !0), l = qb(function(a) {
return I.call(b, a) > -1
}, i, !0), m = [function(a, c, d) {
return !g && (d || c !== h) || ((b = c).nodeType ? k(a, c, d) : l(a, c, d))
}]; f > j; j++)
if (c = d.relative[a[j].type]) m = [qb(rb(m), c)];
else {
if (c = d.filter[a[j].type].apply(null, a[j].matches), c[s]) {
for (e = ++j; f > e; e++)
if (d.relative[a[e].type]) break;
return tb(j > 1 && rb(m), j > 1 && pb(a.slice(0, j - 1).concat({
value: " " === a[j - 2].type ? "*" : ""
})).replace(P, "$1"), c, e > j && ub(a.slice(j, e)), f > e && ub(a = a.slice(e)), f > e && pb(a))
}
m.push(c)
} return rb(m)
}
function vb(a, b) {
var c = b.length > 0,
e = a.length > 0,
f = function(f, g, i, j, k) {
var m, n, o, p = 0,
q = "0",
r = f && [],
s = [],
t = h,
v = f || e && d.find.TAG("*", k),
w = u += null == t ? 1 : Math.random() || .1,
x = v.length;
for (k && (h = g !== l && g); q !== x && null != (m = v[q]); q++) {
if (e && m) {
n = 0;
while (o = a[n++])
if (o(m, g, i)) {
j.push(m);
break
} k && (u = w)
}
c && ((m = !o && m) && p--, f && r.push(m))
}
if (p += q, c && q !== p) {
n = 0;
while (o = b[n++]) o(r, s, g, i);
if (f) {
if (p > 0)
while (q--) r[q] || s[q] || (s[q] = E.call(j));
s = sb(s)
}
G.apply(j, s), k && !f && s.length > 0 && p + b.length > 1 && db.uniqueSort(j)
}
return k && (u = w, h = t), r
};
return c ? fb(f) : f
}
g = db.compile = function(a, b) {
var c, d = [],
e = [],
f = y[a + " "];
if (!f) {
b || (b = ob(a)), c = b.length;
while (c--) f = ub(b[c]), f[s] ? d.push(f) : e.push(f);
f = y(a, vb(e, d))
}
return f
};
function wb(a, b, c) {
for (var d = 0, e = b.length; e > d; d++) db(a, b[d], c);
return c
}
function xb(a, b, e, f) {
var h, i, j, k, l, m = ob(a);
if (!f && 1 === m.length) {
if (i = m[0] = m[0].slice(0), i.length > 2 && "ID" === (j = i[0]).type && c.getById && 9 === b.nodeType && n && d.relative[i[1].type]) {
if (b = (d.find.ID(j.matches[0].replace(ab, bb), b) || [])[0], !b) return e;
a = a.slice(i.shift().value.length)
}
h = V.needsContext.test(a) ? 0 : i.length;
while (h--) {
if (j = i[h], d.relative[k = j.type]) break;
if ((l = d.find[k]) && (f = l(j.matches[0].replace(ab, bb), $.test(i[0].type) && mb(b.parentNode) || b))) {
if (i.splice(h, 1), a = f.length && pb(i), !a) return G.apply(e, f), e;
break
}
}
}
return g(a, m)(f, b, !n, e, $.test(a) && mb(b.parentNode) || b), e
}
return c.sortStable = s.split("").sort(z).join("") === s, c.detectDuplicates = !!j, k(), c.sortDetached = gb(function(a) {
return 1 & a.compareDocumentPosition(l.createElement("div"))
}), gb(function(a) {
return a.innerHTML = "<a href='#'></a>", "#" === a.firstChild.getAttribute("href")
}) || hb("type|href|height|width", function(a, b, c) {
return c ? void 0 : a.getAttribute(b, "type" === b.toLowerCase() ? 1 : 2)
}), c.attributes && gb(function(a) {
return a.innerHTML = "<input/>", a.firstChild.setAttribute("value", ""), "" === a.firstChild.getAttribute("value")
}) || hb("value", function(a, b, c) {
return c || "input" !== a.nodeName.toLowerCase() ? void 0 : a.defaultValue
}), gb(function(a) {
return null == a.getAttribute("disabled")
}) || hb(J, function(a, b, c) {
var d;
return c ? void 0 : a[b] === !0 ? b.toLowerCase() : (d = a.getAttributeNode(b)) && d.specified ? d.value : null
}), db
}(a);
n.find = t, n.expr = t.selectors, n.expr[":"] = n.expr.pseudos, n.unique = t.uniqueSort, n.text = t.getText, n.isXMLDoc = t.isXML, n.contains = t.contains;
var u = n.expr.match.needsContext,
v = /^<(\w+)\s*\/?>(?:<\/\1>|)$/,
w = /^.[^:#\[\.,]*$/;
function x(a, b, c) {
if (n.isFunction(b)) return n.grep(a, function(a, d) {
return !!b.call(a, d, a) !== c
});
if (b.nodeType) return n.grep(a, function(a) {
return a === b !== c
});
if ("string" == typeof b) {
if (w.test(b)) return n.filter(b, a, c);
b = n.filter(b, a)
}
return n.grep(a, function(a) {
return n.inArray(a, b) >= 0 !== c
})
}
n.filter = function(a, b, c) {
var d = b[0];
return c && (a = ":not(" + a + ")"), 1 === b.length && 1 === d.nodeType ? n.find.matchesSelector(d, a) ? [d] : [] : n.find.matches(a, n.grep(b, function(a) {
return 1 === a.nodeType
}))
}, n.fn.extend({
find: function(a) {
var b, c = [],
d = this,
e = d.length;
if ("string" != typeof a) return this.pushStack(n(a).filter(function() {
for (b = 0; e > b; b++)
if (n.contains(d[b], this)) return !0
}));
for (b = 0; e > b; b++) n.find(a, d[b], c);
return c = this.pushStack(e > 1 ? n.unique(c) : c), c.selector = this.selector ? this.selector + " " + a : a, c
},
filter: function(a) {
return this.pushStack(x(this, a || [], !1))
},
not: function(a) {
return this.pushStack(x(this, a || [], !0))
},
is: function(a) {
return !!x(this, "string" == typeof a && u.test(a) ? n(a) : a || [], !1).length
}
});
var y, z = a.document,
A = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,
B = n.fn.init = function(a, b) {
var c, d;
if (!a) return this;
if ("string" == typeof a) {
if (c = "<" === a.charAt(0) && ">" === a.charAt(a.length - 1) && a.length >= 3 ? [null, a, null] : A.exec(a), !c || !c[1] && b) return !b || b.jquery ? (b || y).find(a) : this.constructor(b).find(a);
if (c[1]) {
if (b = b instanceof n ? b[0] : b, n.merge(this, n.parseHTML(c[1], b && b.nodeType ? b.ownerDocument || b : z, !0)), v.test(c[1]) && n.isPlainObject(b))
for (c in b) n.isFunction(this[c]) ? this[c](b[c]) : this.attr(c, b[c]);
return this
}
if (d = z.getElementById(c[2]), d && d.parentNode) {
if (d.id !== c[2]) return y.find(a);
this.length = 1, this[0] = d
}
return this.context = z, this.selector = a, this
}
return a.nodeType ? (this.context = this[0] = a, this.length = 1, this) : n.isFunction(a) ? "undefined" != typeof y.ready ? y.ready(a) : a(n) : (void 0 !== a.selector && (this.selector = a.selector, this.context = a.context), n.makeArray(a, this))
};
B.prototype = n.fn, y = n(z);
var C = /^(?:parents|prev(?:Until|All))/,
D = {
children: !0,
contents: !0,
next: !0,
prev: !0
};
n.extend({
dir: function(a, b, c) {
var d = [],
e = a[b];
while (e && 9 !== e.nodeType && (void 0 === c || 1 !== e.nodeType || !n(e).is(c))) 1 === e.nodeType && d.push(e), e = e[b];
return d
},
sibling: function(a, b) {
for (var c = []; a; a = a.nextSibling) 1 === a.nodeType && a !== b && c.push(a);
return c
}
}), n.fn.extend({
has: function(a) {
var b, c = n(a, this),
d = c.length;
return this.filter(function() {
for (b = 0; d > b; b++)
if (n.contains(this, c[b])) return !0
})
},
closest: function(a, b) {
for (var c, d = 0, e = this.length, f = [], g = u.test(a) || "string" != typeof a ? n(a, b || this.context) : 0; e > d; d++)
for (c = this[d]; c && c !== b; c = c.parentNode)
if (c.nodeType < 11 && (g ? g.index(c) > -1 : 1 === c.nodeType && n.find.matchesSelector(c, a))) {
f.push(c);
break
} return this.pushStack(f.length > 1 ? n.unique(f) : f)
},
index: function(a) {
return a ? "string" == typeof a ? n.inArray(this[0], n(a)) : n.inArray(a.jquery ? a[0] : a, this) : this[0] && this[0].parentNode ? this.first().prevAll().length : -1
},
add: function(a, b) {
return this.pushStack(n.unique(n.merge(this.get(), n(a, b))))
},
addBack: function(a) {
return this.add(null == a ? this.prevObject : this.prevObject.filter(a))
}
});
function E(a, b) {
do a = a[b]; while (a && 1 !== a.nodeType);
return a
}
n.each({
parent: function(a) {
var b = a.parentNode;
return b && 11 !== b.nodeType ? b : null
},
parents: function(a) {
return n.dir(a, "parentNode")
},
parentsUntil: function(a, b, c) {
return n.dir(a, "parentNode", c)
},
next: function(a) {
return E(a, "nextSibling")
},
prev: function(a) {
return E(a, "previousSibling")
},
nextAll: function(a) {
return n.dir(a, "nextSibling")
},
prevAll: function(a) {
return n.dir(a, "previousSibling")
},
nextUntil: function(a, b, c) {
return n.dir(a, "nextSibling", c)
},
prevUntil: function(a, b, c) {
return n.dir(a, "previousSibling", c)
},
siblings: function(a) {
return n.sibling((a.parentNode || {}).firstChild, a)
},
children: function(a) {
return n.sibling(a.firstChild)
},
contents: function(a) {
return n.nodeName(a, "iframe") ? a.contentDocument || a.contentWindow.document : n.merge([], a.childNodes)
}
}, function(a, b) {
n.fn[a] = function(c, d) {
var e = n.map(this, b, c);
return "Until" !== a.slice(-5) && (d = c), d && "string" == typeof d && (e = n.filter(d, e)), this.length > 1 && (D[a] || (e = n.unique(e)), C.test(a) && (e = e.reverse())), this.pushStack(e)
}
});
var F = /\S+/g,
G = {};
function H(a) {
var b = G[a] = {};
return n.each(a.match(F) || [], function(a, c) {
b[c] = !0
}), b
}
n.Callbacks = function(a) {
a = "string" == typeof a ? G[a] || H(a) : n.extend({}, a);
var b, c, d, e, f, g, h = [],
i = !a.once && [],
j = function(l) {
for (c = a.memory && l, d = !0, f = g || 0, g = 0, e = h.length, b = !0; h && e > f; f++)
if (h[f].apply(l[0], l[1]) === !1 && a.stopOnFalse) {
c = !1;
break
} b = !1, h && (i ? i.length && j(i.shift()) : c ? h = [] : k.disable())
},
k = {
add: function() {
if (h) {
var d = h.length;
! function f(b) {
n.each(b, function(b, c) {
var d = n.type(c);
"function" === d ? a.unique && k.has(c) || h.push(c) : c && c.length && "string" !== d && f(c)
})
}(arguments), b ? e = h.length : c && (g = d, j(c))
}
return this
},
remove: function() {
return h && n.each(arguments, function(a, c) {
var d;
while ((d = n.inArray(c, h, d)) > -1) h.splice(d, 1), b && (e >= d && e--, f >= d && f--)
}), this
},
has: function(a) {
return a ? n.inArray(a, h) > -1 : !(!h || !h.length)
},
empty: function() {
return h = [], e = 0, this
},
disable: function() {
return h = i = c = void 0, this
},
disabled: function() {
return !h
},
lock: function() {
return i = void 0, c || k.disable(), this
},
locked: function() {
return !i
},
fireWith: function(a, c) {
return !h || d && !i || (c = c || [], c = [a, c.slice ? c.slice() : c], b ? i.push(c) : j(c)), this
},
fire: function() {
return k.fireWith(this, arguments), this
},
fired: function() {
return !!d
}
};
return k
}, n.extend({
Deferred: function(a) {
var b = [
["resolve", "done", n.Callbacks("once memory"), "resolved"],
["reject", "fail", n.Callbacks("once memory"), "rejected"],
["notify", "progress", n.Callbacks("memory")]
],
c = "pending",
d = {
state: function() {
return c
},
always: function() {
return e.done(arguments).fail(arguments), this
},
then: function() {
var a = arguments;
return n.Deferred(function(c) {
n.each(b, function(b, f) {
var g = n.isFunction(a[b]) && a[b];
e[f[1]](function() {
var a = g && g.apply(this, arguments);
a && n.isFunction(a.promise) ? a.promise().done(c.resolve).fail(c.reject).progress(c.notify) : c[f[0] + "With"](this === d ? c.promise() : this, g ? [a] : arguments)
})
}), a = null
}).promise()
},
promise: function(a) {
return null != a ? n.extend(a, d) : d
}
},
e = {};
return d.pipe = d.then, n.each(b, function(a, f) {
var g = f[2],
h = f[3];
d[f[1]] = g.add, h && g.add(function() {
c = h
}, b[1 ^ a][2].disable, b[2][2].lock), e[f[0]] = function() {
return e[f[0] + "With"](this === e ? d : this, arguments), this
}, e[f[0] + "With"] = g.fireWith
}), d.promise(e), a && a.call(e, e), e
},
when: function(a) {
var b = 0,
c = d.call(arguments),
e = c.length,
f = 1 !== e || a && n.isFunction(a.promise) ? e : 0,
g = 1 === f ? a : n.Deferred(),
h = function(a, b, c) {
return function(e) {
b[a] = this, c[a] = arguments.length > 1 ? d.call(arguments) : e, c === i ? g.notifyWith(b, c) : --f || g.resolveWith(b, c)
}
},
i, j, k;
if (e > 1)
for (i = new Array(e), j = new Array(e), k = new Array(e); e > b; b++) c[b] && n.isFunction(c[b].promise) ? c[b].promise().done(h(b, k, c)).fail(g.reject).progress(h(b, j, i)) : --f;
return f || g.resolveWith(k, c), g.promise()
}
});
var I;
n.fn.ready = function(a) {
return n.ready.promise().done(a), this
}, n.extend({
isReady: !1,
readyWait: 1,
holdReady: function(a) {
a ? n.readyWait++ : n.ready(!0)
},
ready: function(a) {
if (a === !0 ? !--n.readyWait : !n.isReady) {
if (!z.body) return setTimeout(n.ready);
n.isReady = !0, a !== !0 && --n.readyWait > 0 || (I.resolveWith(z, [n]), n.fn.trigger && n(z).trigger("ready").off("ready"))
}
}
});
function J() {
z.addEventListener ? (z.removeEventListener("DOMContentLoaded", K, !1), a.removeEventListener("load", K, !1)) : (z.detachEvent("onreadystatechange", K), a.detachEvent("onload", K))
}
function K() {
(z.addEventListener || "load" === event.type || "complete" === z.readyState) && (J(), n.ready())
}
n.ready.promise = function(b) {
if (!I)
if (I = n.Deferred(), "complete" === z.readyState) setTimeout(n.ready);
else if (z.addEventListener) z.addEventListener("DOMContentLoaded", K, !1), a.addEventListener("load", K, !1);
else {
z.attachEvent("onreadystatechange", K), a.attachEvent("onload", K);
var c = !1;
try {
c = null == a.frameElement && z.documentElement
} catch (d) {}
c && c.doScroll && ! function e() {
if (!n.isReady) {
try {
c.doScroll("left")
} catch (a) {
return setTimeout(e, 50)
}
J(), n.ready()
}
}()
}
return I.promise(b)
};
var L = "undefined",
M;
for (M in n(l)) break;
l.ownLast = "0" !== M, l.inlineBlockNeedsLayout = !1, n(function() {
var a, b, c = z.getElementsByTagName("body")[0];
c && (a = z.createElement("div"), a.style.cssText = "border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px", b = z.createElement("div"), c.appendChild(a).appendChild(b), typeof b.style.zoom !== L && (b.style.cssText = "border:0;margin:0;width:1px;padding:1px;display:inline;zoom:1", (l.inlineBlockNeedsLayout = 3 === b.offsetWidth) && (c.style.zoom = 1)), c.removeChild(a), a = b = null)
}),
function() {
var a = z.createElement("div");
if (null == l.deleteExpando) {
l.deleteExpando = !0;
try {
delete a.test
} catch (b) {
l.deleteExpando = !1
}
}
a = null
}(), n.acceptData = function(a) {
var b = n.noData[(a.nodeName + " ").toLowerCase()],
c = +a.nodeType || 1;
return 1 !== c && 9 !== c ? !1 : !b || b !== !0 && a.getAttribute("classid") === b
};
var N = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,
O = /([A-Z])/g;
function P(a, b, c) {
if (void 0 === c && 1 === a.nodeType) {
var d = "data-" + b.replace(O, "-$1").toLowerCase();
if (c = a.getAttribute(d), "string" == typeof c) {
try {
c = "true" === c ? !0 : "false" === c ? !1 : "null" === c ? null : +c + "" === c ? +c : N.test(c) ? n.parseJSON(c) : c
} catch (e) {}
n.data(a, b, c)
} else c = void 0
}
return c
}
function Q(a) {
var b;
for (b in a)
if (("data" !== b || !n.isEmptyObject(a[b])) && "toJSON" !== b) return !1;
return !0
}
function R(a, b, d, e) {
if (n.acceptData(a)) {
var f, g, h = n.expando,
i = a.nodeType,
j = i ? n.cache : a,
k = i ? a[h] : a[h] && h;
if (k && j[k] && (e || j[k].data) || void 0 !== d || "string" != typeof b) return k || (k = i ? a[h] = c.pop() || n.guid++ : h), j[k] || (j[k] = i ? {} : {
toJSON: n.noop
}), ("object" == typeof b || "function" == typeof b) && (e ? j[k] = n.extend(j[k], b) : j[k].data = n.extend(j[k].data, b)), g = j[k], e || (g.data || (g.data = {}), g = g.data), void 0 !== d && (g[n.camelCase(b)] = d), "string" == typeof b ? (f = g[b], null == f && (f = g[n.camelCase(b)])) : f = g, f
}
}
function S(a, b, c) {
if (n.acceptData(a)) {
var d, e, f = a.nodeType,
g = f ? n.cache : a,
h = f ? a[n.expando] : n.expando;
if (g[h]) {
if (b && (d = c ? g[h] : g[h].data)) {
n.isArray(b) ? b = b.concat(n.map(b, n.camelCase)) : b in d ? b = [b] : (b = n.camelCase(b), b = b in d ? [b] : b.split(" ")), e = b.length;
while (e--) delete d[b[e]];
if (c ? !Q(d) : !n.isEmptyObject(d)) return
}(c || (delete g[h].data, Q(g[h]))) && (f ? n.cleanData([a], !0) : l.deleteExpando || g != g.window ? delete g[h] : g[h] = null)
}
}
}
n.extend({
cache: {},
noData: {
"applet ": !0,
"embed ": !0,
"object ": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
},
hasData: function(a) {
return a = a.nodeType ? n.cache[a[n.expando]] : a[n.expando], !!a && !Q(a)
},
data: function(a, b, c) {
return R(a, b, c)
},
removeData: function(a, b) {
return S(a, b)
},
_data: function(a, b, c) {
return R(a, b, c, !0)
},
_removeData: function(a, b) {
return S(a, b, !0)
}
}), n.fn.extend({
data: function(a, b) {
var c, d, e, f = this[0],
g = f && f.attributes;
if (void 0 === a) {
if (this.length && (e = n.data(f), 1 === f.nodeType && !n._data(f, "parsedAttrs"))) {
c = g.length;
while (c--) d = g[c].name, 0 === d.indexOf("data-") && (d = n.camelCase(d.slice(5)), P(f, d, e[d]));
n._data(f, "parsedAttrs", !0)
}
return e
}
return "object" == typeof a ? this.each(function() {
n.data(this, a)
}) : arguments.length > 1 ? this.each(function() {
n.data(this, a, b)
}) : f ? P(f, a, n.data(f, a)) : void 0
},
removeData: function(a) {
return this.each(function() {
n.removeData(this, a)
})
}
}), n.extend({
queue: function(a, b, c) {
var d;
return a ? (b = (b || "fx") + "queue", d = n._data(a, b), c && (!d || n.isArray(c) ? d = n._data(a, b, n.makeArray(c)) : d.push(c)), d || []) : void 0
},
dequeue: function(a, b) {
b = b || "fx";
var c = n.queue(a, b),
d = c.length,
e = c.shift(),
f = n._queueHooks(a, b),
g = function() {
n.dequeue(a, b)
};
"inprogress" === e && (e = c.shift(), d--), e && ("fx" === b && c.unshift("inprogress"), delete f.stop, e.call(a, g, f)), !d && f && f.empty.fire()
},
_queueHooks: function(a, b) {
var c = b + "queueHooks";
return n._data(a, c) || n._data(a, c, {
empty: n.Callbacks("once memory").add(function() {
n._removeData(a, b + "queue"), n._removeData(a, c)
})
})
}
}), n.fn.extend({
queue: function(a, b) {
var c = 2;
return "string" != typeof a && (b = a, a = "fx", c--), arguments.length < c ? n.queue(this[0], a) : void 0 === b ? this : this.each(function() {
var c = n.queue(this, a, b);
n._queueHooks(this, a), "fx" === a && "inprogress" !== c[0] && n.dequeue(this, a)
})
},
dequeue: function(a) {
return this.each(function() {
n.dequeue(this, a)
})
},
clearQueue: function(a) {
return this.queue(a || "fx", [])
},
promise: function(a, b) {
var c, d = 1,
e = n.Deferred(),
f = this,
g = this.length,
h = function() {
--d || e.resolveWith(f, [f])
};
"string" != typeof a && (b = a, a = void 0), a = a || "fx";
while (g--) c = n._data(f[g], a + "queueHooks"), c && c.empty && (d++, c.empty.add(h));
return h(), e.promise(b)
}
});
var T = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,
U = ["Top", "Right", "Bottom", "Left"],
V = function(a, b) {
return a = b || a, "none" === n.css(a, "display") || !n.contains(a.ownerDocument, a)
},
W = n.access = function(a, b, c, d, e, f, g) {
var h = 0,
i = a.length,
j = null == c;
if ("object" === n.type(c)) {
e = !0;
for (h in c) n.access(a, b, h, c[h], !0, f, g)
} else if (void 0 !== d && (e = !0, n.isFunction(d) || (g = !0), j && (g ? (b.call(a, d), b = null) : (j = b, b = function(a, b, c) {
return j.call(n(a), c)
})), b))
for (; i > h; h++) b(a[h], c, g ? d : d.call(a[h], h, b(a[h], c)));
return e ? a : j ? b.call(a) : i ? b(a[0], c) : f
},
X = /^(?:checkbox|radio)$/i;
! function() {
var a = z.createDocumentFragment(),
b = z.createElement("div"),
c = z.createElement("input");
if (b.setAttribute("className", "t"), b.innerHTML = " <link/><table></table><a href='/a'>a</a>", l.leadingWhitespace = 3 === b.firstChild.nodeType, l.tbody = !b.getElementsByTagName("tbody").length, l.htmlSerialize = !!b.getElementsByTagName("link").length, l.html5Clone = "<:nav></:nav>" !== z.createElement("nav").cloneNode(!0).outerHTML, c.type = "checkbox", c.checked = !0, a.appendChild(c), l.appendChecked = c.checked, b.innerHTML = "<textarea>x</textarea>", l.noCloneChecked = !!b.cloneNode(!0).lastChild.defaultValue, a.appendChild(b), b.innerHTML = "<input type='radio' checked='checked' name='t'/>", l.checkClone = b.cloneNode(!0).cloneNode(!0).lastChild.checked, l.noCloneEvent = !0, b.attachEvent && (b.attachEvent("onclick", function() {
l.noCloneEvent = !1
}), b.cloneNode(!0).click()), null == l.deleteExpando) {
l.deleteExpando = !0;
try {
delete b.test
} catch (d) {
l.deleteExpando = !1
}
}
a = b = c = null
}(),
function() {
var b, c, d = z.createElement("div");
for (b in {
submit: !0,
change: !0,
focusin: !0
}) c = "on" + b, (l[b + "Bubbles"] = c in a) || (d.setAttribute(c, "t"), l[b + "Bubbles"] = d.attributes[c].expando === !1);
d = null
}();
var Y = /^(?:input|select|textarea)$/i,
Z = /^key/,
$ = /^(?:mouse|contextmenu)|click/,
_ = /^(?:focusinfocus|focusoutblur)$/,
ab = /^([^.]*)(?:\.(.+)|)$/;
function bb() {
return !0
}
function cb() {
return !1
}
function db() {
try {
return z.activeElement
} catch (a) {}
}
n.event = {
global: {},
add: function(a, b, c, d, e) {
var f, g, h, i, j, k, l, m, o, p, q, r = n._data(a);
if (r) {
c.handler && (i = c, c = i.handler, e = i.selector), c.guid || (c.guid = n.guid++), (g = r.events) || (g = r.events = {}), (k = r.handle) || (k = r.handle = function(a) {
return typeof n === L || a && n.event.triggered === a.type ? void 0 : n.event.dispatch.apply(k.elem, arguments)
}, k.elem = a), b = (b || "").match(F) || [""], h = b.length;
while (h--) f = ab.exec(b[h]) || [], o = q = f[1], p = (f[2] || "").split(".").sort(), o && (j = n.event.special[o] || {}, o = (e ? j.delegateType : j.bindType) || o, j = n.event.special[o] || {}, l = n.extend({
type: o,
origType: q,
data: d,
handler: c,
guid: c.guid,
selector: e,
needsContext: e && n.expr.match.needsContext.test(e),
namespace: p.join(".")
}, i), (m = g[o]) || (m = g[o] = [], m.delegateCount = 0, j.setup && j.setup.call(a, d, p, k) !== !1 || (a.addEventListener ? a.addEventListener(o, k, !1) : a.attachEvent && a.attachEvent("on" + o, k))), j.add && (j.add.call(a, l), l.handler.guid || (l.handler.guid = c.guid)), e ? m.splice(m.delegateCount++, 0, l) : m.push(l), n.event.global[o] = !0);
a = null
}
},
remove: function(a, b, c, d, e) {
var f, g, h, i, j, k, l, m, o, p, q, r = n.hasData(a) && n._data(a);
if (r && (k = r.events)) {
b = (b || "").match(F) || [""], j = b.length;
while (j--)
if (h = ab.exec(b[j]) || [], o = q = h[1], p = (h[2] || "").split(".").sort(), o) {
l = n.event.special[o] || {}, o = (d ? l.delegateType : l.bindType) || o, m = k[o] || [], h = h[2] && new RegExp("(^|\\.)" + p.join("\\.(?:.*\\.|)") + "(\\.|$)"), i = f = m.length;
while (f--) g = m[f], !e && q !== g.origType || c && c.guid !== g.guid || h && !h.test(g.namespace) || d && d !== g.selector && ("**" !== d || !g.selector) || (m.splice(f, 1), g.selector && m.delegateCount--, l.remove && l.remove.call(a, g));
i && !m.length && (l.teardown && l.teardown.call(a, p, r.handle) !== !1 || n.removeEvent(a, o, r.handle), delete k[o])
} else
for (o in k) n.event.remove(a, o + b[j], c, d, !0);
n.isEmptyObject(k) && (delete r.handle, n._removeData(a, "events"))
}
},
trigger: function(b, c, d, e) {
var f, g, h, i, k, l, m, o = [d || z],
p = j.call(b, "type") ? b.type : b,
q = j.call(b, "namespace") ? b.namespace.split(".") : [];
if (h = l = d = d || z, 3 !== d.nodeType && 8 !== d.nodeType && !_.test(p + n.event.triggered) && (p.indexOf(".") >= 0 && (q = p.split("."), p = q.shift(), q.sort()), g = p.indexOf(":") < 0 && "on" + p, b = b[n.expando] ? b : new n.Event(p, "object" == typeof b && b), b.isTrigger = e ? 2 : 3, b.namespace = q.join("."), b.namespace_re = b.namespace ? new RegExp("(^|\\.)" + q.join("\\.(?:.*\\.|)") + "(\\.|$)") : null, b.result = void 0, b.target || (b.target = d), c = null == c ? [b] : n.makeArray(c, [b]), k = n.event.special[p] || {}, e || !k.trigger || k.trigger.apply(d, c) !== !1)) {
if (!e && !k.noBubble && !n.isWindow(d)) {
for (i = k.delegateType || p, _.test(i + p) || (h = h.parentNode); h; h = h.parentNode) o.push(h), l = h;
l === (d.ownerDocument || z) && o.push(l.defaultView || l.parentWindow || a)
}
m = 0;
while ((h = o[m++]) && !b.isPropagationStopped()) b.type = m > 1 ? i : k.bindType || p, f = (n._data(h, "events") || {})[b.type] && n._data(h, "handle"), f && f.apply(h, c), f = g && h[g], f && f.apply && n.acceptData(h) && (b.result = f.apply(h, c), b.result === !1 && b.preventDefault());
if (b.type = p, !e && !b.isDefaultPrevented() && (!k._default || k._default.apply(o.pop(), c) === !1) && n.acceptData(d) && g && d[p] && !n.isWindow(d)) {
l = d[g], l && (d[g] = null), n.event.triggered = p;
try {
d[p]()
} catch (r) {}
n.event.triggered = void 0, l && (d[g] = l)
}
return b.result
}
},
dispatch: function(a) {
a = n.event.fix(a);
var b, c, e, f, g, h = [],
i = d.call(arguments),
j = (n._data(this, "events") || {})[a.type] || [],
k = n.event.special[a.type] || {};
if (i[0] = a, a.delegateTarget = this, !k.preDispatch || k.preDispatch.call(this, a) !== !1) {
h = n.event.handlers.call(this, a, j), b = 0;
while ((f = h[b++]) && !a.isPropagationStopped()) {
a.currentTarget = f.elem, g = 0;
while ((e = f.handlers[g++]) && !a.isImmediatePropagationStopped())(!a.namespace_re || a.namespace_re.test(e.namespace)) && (a.handleObj = e, a.data = e.data, c = ((n.event.special[e.origType] || {}).handle || e.handler).apply(f.elem, i), void 0 !== c && (a.result = c) === !1 && (a.preventDefault(), a.stopPropagation()))
}
return k.postDispatch && k.postDispatch.call(this, a), a.result
}
},
handlers: function(a, b) {
var c, d, e, f, g = [],
h = b.delegateCount,
i = a.target;
if (h && i.nodeType && (!a.button || "click" !== a.type))
for (; i != this; i = i.parentNode || this)
if (1 === i.nodeType && (i.disabled !== !0 || "click" !== a.type)) {
for (e = [], f = 0; h > f; f++) d = b[f], c = d.selector + " ", void 0 === e[c] && (e[c] = d.needsContext ? n(c, this).index(i) >= 0 : n.find(c, this, null, [i]).length), e[c] && e.push(d);
e.length && g.push({
elem: i,
handlers: e
})
} return h < b.length && g.push({
elem: this,
handlers: b.slice(h)
}), g
},
fix: function(a) {
if (a[n.expando]) return a;
var b, c, d, e = a.type,
f = a,
g = this.fixHooks[e];
g || (this.fixHooks[e] = g = $.test(e) ? this.mouseHooks : Z.test(e) ? this.keyHooks : {}), d = g.props ? this.props.concat(g.props) : this.props, a = new n.Event(f), b = d.length;
while (b--) c = d[b], a[c] = f[c];
return a.target || (a.target = f.srcElement || z), 3 === a.target.nodeType && (a.target = a.target.parentNode), a.metaKey = !!a.metaKey, g.filter ? g.filter(a, f) : a
},
props: "altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),
fixHooks: {},
keyHooks: {
props: "char charCode key keyCode".split(" "),
filter: function(a, b) {
return null == a.which && (a.which = null != b.charCode ? b.charCode : b.keyCode), a
}
},
mouseHooks: {
props: "button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),
filter: function(a, b) {
var c, d, e, f = b.button,
g = b.fromElement;
return null == a.pageX && null != b.clientX && (d = a.target.ownerDocument || z, e = d.documentElement, c = d.body, a.pageX = b.clientX + (e && e.scrollLeft || c && c.scrollLeft || 0) - (e && e.clientLeft || c && c.clientLeft || 0), a.pageY = b.clientY + (e && e.scrollTop || c && c.scrollTop || 0) - (e && e.clientTop || c && c.clientTop || 0)), !a.relatedTarget && g && (a.relatedTarget = g === a.target ? b.toElement : g), a.which || void 0 === f || (a.which = 1 & f ? 1 : 2 & f ? 3 : 4 & f ? 2 : 0), a
}
},
special: {
load: {
noBubble: !0
},
focus: {
trigger: function() {
if (this !== db() && this.focus) try {
return this.focus(), !1
} catch (a) {}
},
delegateType: "focusin"
},
blur: {
trigger: function() {
return this === db() && this.blur ? (this.blur(), !1) : void 0
},
delegateType: "focusout"
},
click: {
trigger: function() {
return n.nodeName(this, "input") && "checkbox" === this.type && this.click ? (this.click(), !1) : void 0
},
_default: function(a) {
return n.nodeName(a.target, "a")
}
},
beforeunload: {
postDispatch: function(a) {
void 0 !== a.result && (a.originalEvent.returnValue = a.result)
}
}
},
simulate: function(a, b, c, d) {
var e = n.extend(new n.Event, c, {
type: a,
isSimulated: !0,
originalEvent: {}
});
d ? n.event.trigger(e, null, b) : n.event.dispatch.call(b, e), e.isDefaultPrevented() && c.preventDefault()
}
}, n.removeEvent = z.removeEventListener ? function(a, b, c) {
a.removeEventListener && a.removeEventListener(b, c, !1)
} : function(a, b, c) {
var d = "on" + b;
a.detachEvent && (typeof a[d] === L && (a[d] = null), a.detachEvent(d, c))
}, n.Event = function(a, b) {
return this instanceof n.Event ? (a && a.type ? (this.originalEvent = a, this.type = a.type, this.isDefaultPrevented = a.defaultPrevented || void 0 === a.defaultPrevented && (a.returnValue === !1 || a.getPreventDefault && a.getPreventDefault()) ? bb : cb) : this.type = a, b && n.extend(this, b), this.timeStamp = a && a.timeStamp || n.now(), void(this[n.expando] = !0)) : new n.Event(a, b)
}, n.Event.prototype = {
isDefaultPrevented: cb,
isPropagationStopped: cb,
isImmediatePropagationStopped: cb,
preventDefault: function() {
var a = this.originalEvent;
this.isDefaultPrevented = bb, a && (a.preventDefault ? a.preventDefault() : a.returnValue = !1)
},
stopPropagation: function() {
var a = this.originalEvent;
this.isPropagationStopped = bb, a && (a.stopPropagation && a.stopPropagation(), a.cancelBubble = !0)
},
stopImmediatePropagation: function() {
this.isImmediatePropagationStopped = bb, this.stopPropagation()
}
}, n.each({
mouseenter: "mouseover",
mouseleave: "mouseout"
}, function(a, b) {
n.event.special[a] = {
delegateType: b,
bindType: b,
handle: function(a) {
var c, d = this,
e = a.relatedTarget,
f = a.handleObj;
return (!e || e !== d && !n.contains(d, e)) && (a.type = f.origType, c = f.handler.apply(this, arguments), a.type = b), c
}
}
}), l.submitBubbles || (n.event.special.submit = {
setup: function() {
return n.nodeName(this, "form") ? !1 : void n.event.add(this, "click._submit keypress._submit", function(a) {
var b = a.target,
c = n.nodeName(b, "input") || n.nodeName(b, "button") ? b.form : void 0;
c && !n._data(c, "submitBubbles") && (n.event.add(c, "submit._submit", function(a) {
a._submit_bubble = !0
}), n._data(c, "submitBubbles", !0))
})
},
postDispatch: function(a) {
a._submit_bubble && (delete a._submit_bubble, this.parentNode && !a.isTrigger && n.event.simulate("submit", this.parentNode, a, !0))
},
teardown: function() {
return n.nodeName(this, "form") ? !1 : void n.event.remove(this, "._submit")
}
}), l.changeBubbles || (n.event.special.change = {
setup: function() {
return Y.test(this.nodeName) ? (("checkbox" === this.type || "radio" === this.type) && (n.event.add(this, "propertychange._change", function(a) {
"checked" === a.originalEvent.propertyName && (this._just_changed = !0)
}), n.event.add(this, "click._change", function(a) {
this._just_changed && !a.isTrigger && (this._just_changed = !1), n.event.simulate("change", this, a, !0)
})), !1) : void n.event.add(this, "beforeactivate._change", function(a) {
var b = a.target;
Y.test(b.nodeName) && !n._data(b, "changeBubbles") && (n.event.add(b, "change._change", function(a) {
!this.parentNode || a.isSimulated || a.isTrigger || n.event.simulate("change", this.parentNode, a, !0)
}), n._data(b, "changeBubbles", !0))
})
},
handle: function(a) {
var b = a.target;
return this !== b || a.isSimulated || a.isTrigger || "radio" !== b.type && "checkbox" !== b.type ? a.handleObj.handler.apply(this, arguments) : void 0
},
teardown: function() {
return n.event.remove(this, "._change"), !Y.test(this.nodeName)
}
}), l.focusinBubbles || n.each({
focus: "focusin",
blur: "focusout"
}, function(a, b) {
var c = function(a) {
n.event.simulate(b, a.target, n.event.fix(a), !0)
};
n.event.special[b] = {
setup: function() {
var d = this.ownerDocument || this,
e = n._data(d, b);
e || d.addEventListener(a, c, !0), n._data(d, b, (e || 0) + 1)
},
teardown: function() {
var d = this.ownerDocument || this,
e = n._data(d, b) - 1;
e ? n._data(d, b, e) : (d.removeEventListener(a, c, !0), n._removeData(d, b))
}
}
}), n.fn.extend({
on: function(a, b, c, d, e) {
var f, g;
if ("object" == typeof a) {
"string" != typeof b && (c = c || b, b = void 0);
for (f in a) this.on(f, b, c, a[f], e);
return this
}
if (null == c && null == d ? (d = b, c = b = void 0) : null == d && ("string" == typeof b ? (d = c, c = void 0) : (d = c, c = b, b = void 0)), d === !1) d = cb;
else if (!d) return this;
return 1 === e && (g = d, d = function(a) {
return n().off(a), g.apply(this, arguments)
}, d.guid = g.guid || (g.guid = n.guid++)), this.each(function() {
n.event.add(this, a, d, c, b)
})
},
one: function(a, b, c, d) {
return this.on(a, b, c, d, 1)
},
off: function(a, b, c) {
var d, e;
if (a && a.preventDefault && a.handleObj) return d = a.handleObj, n(a.delegateTarget).off(d.namespace ? d.origType + "." + d.namespace : d.origType, d.selector, d.handler), this;
if ("object" == typeof a) {
for (e in a) this.off(e, b, a[e]);
return this
}
return (b === !1 || "function" == typeof b) && (c = b, b = void 0), c === !1 && (c = cb), this.each(function() {
n.event.remove(this, a, c, b)
})
},
trigger: function(a, b) {
return this.each(function() {
n.event.trigger(a, b, this)
})
},
triggerHandler: function(a, b) {
var c = this[0];
return c ? n.event.trigger(a, b, c, !0) : void 0
}
});
function eb(a) {
var b = fb.split("|"),
c = a.createDocumentFragment();
if (c.createElement)
while (b.length) c.createElement(b.pop());
return c
}
var fb = "abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",
gb = / jQuery\d+="(?:null|\d+)"/g,
hb = new RegExp("<(?:" + fb + ")[\\s/>]", "i"),
ib = /^\s+/,
jb = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,
kb = /<([\w:]+)/,
lb = /<tbody/i,
mb = /<|&#?\w+;/,
nb = /<(?:script|style|link)/i,
ob = /checked\s*(?:[^=]|=\s*.checked.)/i,
pb = /^$|\/(?:java|ecma)script/i,
qb = /^true\/(.*)/,
rb = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,
sb = {
option: [1, "<select multiple='multiple'>", "</select>"],
legend: [1, "<fieldset>", "</fieldset>"],
area: [1, "<map>", "</map>"],
param: [1, "<object>", "</object>"],
thead: [1, "<table>", "</table>"],
tr: [2, "<table><tbody>", "</tbody></table>"],
col: [2, "<table><tbody></tbody><colgroup>", "</colgroup></table>"],
td: [3, "<table><tbody><tr>", "</tr></tbody></table>"],
_default: l.htmlSerialize ? [0, "", ""] : [1, "X<div>", "</div>"]
},
tb = eb(z),
ub = tb.appendChild(z.createElement("div"));
sb.optgroup = sb.option, sb.tbody = sb.tfoot = sb.colgroup = sb.caption = sb.thead, sb.th = sb.td;
function vb(a, b) {
var c, d, e = 0,
f = typeof a.getElementsByTagName !== L ? a.getElementsByTagName(b || "*") : typeof a.querySelectorAll !== L ? a.querySelectorAll(b || "*") : void 0;
if (!f)
for (f = [], c = a.childNodes || a; null != (d = c[e]); e++) !b || n.nodeName(d, b) ? f.push(d) : n.merge(f, vb(d, b));
return void 0 === b || b && n.nodeName(a, b) ? n.merge([a], f) : f
}
function wb(a) {
X.test(a.type) && (a.defaultChecked = a.checked)
}
function xb(a, b) {
return n.nodeName(a, "table") && n.nodeName(11 !== b.nodeType ? b : b.firstChild, "tr") ? a.getElementsByTagName("tbody")[0] || a.appendChild(a.ownerDocument.createElement("tbody")) : a
}
function yb(a) {
return a.type = (null !== n.find.attr(a, "type")) + "/" + a.type, a
}
function zb(a) {
var b = qb.exec(a.type);
return b ? a.type = b[1] : a.removeAttribute("type"), a
}
function Ab(a, b) {
for (var c, d = 0; null != (c = a[d]); d++) n._data(c, "globalEval", !b || n._data(b[d], "globalEval"))
}
function Bb(a, b) {
if (1 === b.nodeType && n.hasData(a)) {
var c, d, e, f = n._data(a),
g = n._data(b, f),
h = f.events;
if (h) {
delete g.handle, g.events = {};
for (c in h)
for (d = 0, e = h[c].length; e > d; d++) n.event.add(b, c, h[c][d])
}
g.data && (g.data = n.extend({}, g.data))
}
}
function Cb(a, b) {
var c, d, e;
if (1 === b.nodeType) {
if (c = b.nodeName.toLowerCase(), !l.noCloneEvent && b[n.expando]) {
e = n._data(b);
for (d in e.events) n.removeEvent(b, d, e.handle);
b.removeAttribute(n.expando)
}
"script" === c && b.text !== a.text ? (yb(b).text = a.text, zb(b)) : "object" === c ? (b.parentNode && (b.outerHTML = a.outerHTML), l.html5Clone && a.innerHTML && !n.trim(b.innerHTML) && (b.innerHTML = a.innerHTML)) : "input" === c && X.test(a.type) ? (b.defaultChecked = b.checked = a.checked, b.value !== a.value && (b.value = a.value)) : "option" === c ? b.defaultSelected = b.selected = a.defaultSelected : ("input" === c || "textarea" === c) && (b.defaultValue = a.defaultValue)
}
}
n.extend({
clone: function(a, b, c) {
var d, e, f, g, h, i = n.contains(a.ownerDocument, a);
if (l.html5Clone || n.isXMLDoc(a) || !hb.test("<" + a.nodeName + ">") ? f = a.cloneNode(!0) : (ub.innerHTML = a.outerHTML, ub.removeChild(f = ub.firstChild)), !(l.noCloneEvent && l.noCloneChecked || 1 !== a.nodeType && 11 !== a.nodeType || n.isXMLDoc(a)))
for (d = vb(f), h = vb(a), g = 0; null != (e = h[g]); ++g) d[g] && Cb(e, d[g]);
if (b)
if (c)
for (h = h || vb(a), d = d || vb(f), g = 0; null != (e = h[g]); g++) Bb(e, d[g]);
else Bb(a, f);
return d = vb(f, "script"), d.length > 0 && Ab(d, !i && vb(a, "script")), d = h = e = null, f
},
buildFragment: function(a, b, c, d) {
for (var e, f, g, h, i, j, k, m = a.length, o = eb(b), p = [], q = 0; m > q; q++)
if (f = a[q], f || 0 === f)
if ("object" === n.type(f)) n.merge(p, f.nodeType ? [f] : f);
else if (mb.test(f)) {
h = h || o.appendChild(b.createElement("div")), i = (kb.exec(f) || ["", ""])[1].toLowerCase(), k = sb[i] || sb._default, h.innerHTML = k[1] + f.replace(jb, "<$1></$2>") + k[2], e = k[0];
while (e--) h = h.lastChild;
if (!l.leadingWhitespace && ib.test(f) && p.push(b.createTextNode(ib.exec(f)[0])), !l.tbody) {
f = "table" !== i || lb.test(f) ? "<table>" !== k[1] || lb.test(f) ? 0 : h : h.firstChild, e = f && f.childNodes.length;
while (e--) n.nodeName(j = f.childNodes[e], "tbody") && !j.childNodes.length && f.removeChild(j)
}
n.merge(p, h.childNodes), h.textContent = "";
while (h.firstChild) h.removeChild(h.firstChild);
h = o.lastChild
} else p.push(b.createTextNode(f));
h && o.removeChild(h), l.appendChecked || n.grep(vb(p, "input"), wb), q = 0;
while (f = p[q++])
if ((!d || -1 === n.inArray(f, d)) && (g = n.contains(f.ownerDocument, f), h = vb(o.appendChild(f), "script"), g && Ab(h), c)) {
e = 0;
while (f = h[e++]) pb.test(f.type || "") && c.push(f)
} return h = null, o
},
cleanData: function(a, b) {
for (var d, e, f, g, h = 0, i = n.expando, j = n.cache, k = l.deleteExpando, m = n.event.special; null != (d = a[h]); h++)
if ((b || n.acceptData(d)) && (f = d[i], g = f && j[f])) {
if (g.events)
for (e in g.events) m[e] ? n.event.remove(d, e) : n.removeEvent(d, e, g.handle);
j[f] && (delete j[f], k ? delete d[i] : typeof d.removeAttribute !== L ? d.removeAttribute(i) : d[i] = null, c.push(f))
}
}
}), n.fn.extend({
text: function(a) {
return W(this, function(a) {
return void 0 === a ? n.text(this) : this.empty().append((this[0] && this[0].ownerDocument || z).createTextNode(a))
}, null, a, arguments.length)
},
append: function() {
return this.domManip(arguments, function(a) {
if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) {
var b = xb(this, a);
b.appendChild(a)
}
})
},
prepend: function() {
return this.domManip(arguments, function(a) {
if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) {
var b = xb(this, a);
b.insertBefore(a, b.firstChild)
}
})
},
before: function() {
return this.domManip(arguments, function(a) {
this.parentNode && this.parentNode.insertBefore(a, this)
})
},
after: function() {
return this.domManip(arguments, function(a) {
this.parentNode && this.parentNode.insertBefore(a, this.nextSibling)
})
},
remove: function(a, b) {
for (var c, d = a ? n.filter(a, this) : this, e = 0; null != (c = d[e]); e++) b || 1 !== c.nodeType || n.cleanData(vb(c)), c.parentNode && (b && n.contains(c.ownerDocument, c) && Ab(vb(c, "script")), c.parentNode.removeChild(c));
return this
},
empty: function() {
for (var a, b = 0; null != (a = this[b]); b++) {
1 === a.nodeType && n.cleanData(vb(a, !1));
while (a.firstChild) a.removeChild(a.firstChild);
a.options && n.nodeName(a, "select") && (a.options.length = 0)
}
return this
},
clone: function(a, b) {
return a = null == a ? !1 : a, b = null == b ? a : b, this.map(function() {
return n.clone(this, a, b)
})
},
html: function(a) {
return W(this, function(a) {
var b = this[0] || {},
c = 0,
d = this.length;
if (void 0 === a) return 1 === b.nodeType ? b.innerHTML.replace(gb, "") : void 0;
if (!("string" != typeof a || nb.test(a) || !l.htmlSerialize && hb.test(a) || !l.leadingWhitespace && ib.test(a) || sb[(kb.exec(a) || ["", ""])[1].toLowerCase()])) {
a = a.replace(jb, "<$1></$2>");
try {
for (; d > c; c++) b = this[c] || {}, 1 === b.nodeType && (n.cleanData(vb(b, !1)), b.innerHTML = a);
b = 0
} catch (e) {}
}
b && this.empty().append(a)
}, null, a, arguments.length)
},
replaceWith: function() {
var a = arguments[0];
return this.domManip(arguments, function(b) {
a = this.parentNode, n.cleanData(vb(this)), a && a.replaceChild(b, this)
}), a && (a.length || a.nodeType) ? this : this.remove()
},
detach: function(a) {
return this.remove(a, !0)
},
domManip: function(a, b) {
a = e.apply([], a);
var c, d, f, g, h, i, j = 0,
k = this.length,
m = this,
o = k - 1,
p = a[0],
q = n.isFunction(p);
if (q || k > 1 && "string" == typeof p && !l.checkClone && ob.test(p)) return this.each(function(c) {
var d = m.eq(c);
q && (a[0] = p.call(this, c, d.html())), d.domManip(a, b)
});
if (k && (i = n.buildFragment(a, this[0].ownerDocument, !1, this), c = i.firstChild, 1 === i.childNodes.length && (i = c), c)) {
for (g = n.map(vb(i, "script"), yb), f = g.length; k > j; j++) d = i, j !== o && (d = n.clone(d, !0, !0), f && n.merge(g, vb(d, "script"))), b.call(this[j], d, j);
if (f)
for (h = g[g.length - 1].ownerDocument, n.map(g, zb), j = 0; f > j; j++) d = g[j], pb.test(d.type || "") && !n._data(d, "globalEval") && n.contains(h, d) && (d.src ? n._evalUrl && n._evalUrl(d.src) : n.globalEval((d.text || d.textContent || d.innerHTML || "").replace(rb, "")));
i = c = null
}
return this
}
}), n.each({
appendTo: "append",
prependTo: "prepend",
insertBefore: "before",
insertAfter: "after",
replaceAll: "replaceWith"
}, function(a, b) {
n.fn[a] = function(a) {
for (var c, d = 0, e = [], g = n(a), h = g.length - 1; h >= d; d++) c = d === h ? this : this.clone(!0), n(g[d])[b](c), f.apply(e, c.get());
return this.pushStack(e)
}
});
var Db, Eb = {};
function Fb(b, c) {
var d = n(c.createElement(b)).appendTo(c.body),
e = a.getDefaultComputedStyle ? a.getDefaultComputedStyle(d[0]).display : n.css(d[0], "display");
return d.detach(), e
}
function Gb(a) {
var b = z,
c = Eb[a];
return c || (c = Fb(a, b), "none" !== c && c || (Db = (Db || n("<iframe frameborder='0' width='0' height='0'/>")).appendTo(b.documentElement), b = (Db[0].contentWindow || Db[0].contentDocument).document, b.write(), b.close(), c = Fb(a, b), Db.detach()), Eb[a] = c), c
}! function() {
var a, b, c = z.createElement("div"),
d = "-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;padding:0;margin:0;border:0";
c.innerHTML = " <link/><table></table><a href='/a'>a</a><input type='checkbox'/>", a = c.getElementsByTagName("a")[0], a.style.cssText = "float:left;opacity:.5", l.opacity = /^0.5/.test(a.style.opacity), l.cssFloat = !!a.style.cssFloat, c.style.backgroundClip = "content-box", c.cloneNode(!0).style.backgroundClip = "", l.clearCloneStyle = "content-box" === c.style.backgroundClip, a = c = null, l.shrinkWrapBlocks = function() {
var a, c, e, f;
if (null == b) {
if (a = z.getElementsByTagName("body")[0], !a) return;
f = "border:0;width:0;height:0;position:absolute;top:0;left:-9999px", c = z.createElement("div"), e = z.createElement("div"), a.appendChild(c).appendChild(e), b = !1, typeof e.style.zoom !== L && (e.style.cssText = d + ";width:1px;padding:1px;zoom:1", e.innerHTML = "<div></div>", e.firstChild.style.width = "5px", b = 3 !== e.offsetWidth), a.removeChild(c), a = c = e = null
}
return b
}
}();
var Hb = /^margin/,
Ib = new RegExp("^(" + T + ")(?!px)[a-z%]+$", "i"),
Jb, Kb, Lb = /^(top|right|bottom|left)$/;
a.getComputedStyle ? (Jb = function(a) {
return a.ownerDocument.defaultView.getComputedStyle(a, null)
}, Kb = function(a, b, c) {
var d, e, f, g, h = a.style;
return c = c || Jb(a), g = c ? c.getPropertyValue(b) || c[b] : void 0, c && ("" !== g || n.contains(a.ownerDocument, a) || (g = n.style(a, b)), Ib.test(g) && Hb.test(b) && (d = h.width, e = h.minWidth, f = h.maxWidth, h.minWidth = h.maxWidth = h.width = g, g = c.width, h.width = d, h.minWidth = e, h.maxWidth = f)), void 0 === g ? g : g + ""
}) : z.documentElement.currentStyle && (Jb = function(a) {
return a.currentStyle
}, Kb = function(a, b, c) {
var d, e, f, g, h = a.style;
return c = c || Jb(a), g = c ? c[b] : void 0, null == g && h && h[b] && (g = h[b]), Ib.test(g) && !Lb.test(b) && (d = h.left, e = a.runtimeStyle, f = e && e.left, f && (e.left = a.currentStyle.left), h.left = "fontSize" === b ? "1em" : g, g = h.pixelLeft + "px", h.left = d, f && (e.left = f)), void 0 === g ? g : g + "" || "auto"
});
function Mb(a, b) {
return {
get: function() {
var c = a();
if (null != c) return c ? void delete this.get : (this.get = b).apply(this, arguments)
}
}
}! function() {
var b, c, d, e, f, g, h = z.createElement("div"),
i = "border:0;width:0;height:0;position:absolute;top:0;left:-9999px",
j = "-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;padding:0;margin:0;border:0";
h.innerHTML = " <link/><table></table><a href='/a'>a</a><input type='checkbox'/>", b = h.getElementsByTagName("a")[0], b.style.cssText = "float:left;opacity:.5", l.opacity = /^0.5/.test(b.style.opacity), l.cssFloat = !!b.style.cssFloat, h.style.backgroundClip = "content-box", h.cloneNode(!0).style.backgroundClip = "", l.clearCloneStyle = "content-box" === h.style.backgroundClip, b = h = null, n.extend(l, {
reliableHiddenOffsets: function() {
if (null != c) return c;
var a, b, d, e = z.createElement("div"),
f = z.getElementsByTagName("body")[0];
if (f) return e.setAttribute("className", "t"), e.innerHTML = " <link/><table></table><a href='/a'>a</a><input type='checkbox'/>", a = z.createElement("div"), a.style.cssText = i, f.appendChild(a).appendChild(e), e.innerHTML = "<table><tr><td></td><td>t</td></tr></table>", b = e.getElementsByTagName("td"), b[0].style.cssText = "padding:0;margin:0;border:0;display:none", d = 0 === b[0].offsetHeight, b[0].style.display = "", b[1].style.display = "none", c = d && 0 === b[0].offsetHeight, f.removeChild(a), e = f = null, c
},
boxSizing: function() {
return null == d && k(), d
},
boxSizingReliable: function() {
return null == e && k(), e
},
pixelPosition: function() {
return null == f && k(), f
},
reliableMarginRight: function() {
var b, c, d, e;
if (null == g && a.getComputedStyle) {
if (b = z.getElementsByTagName("body")[0], !b) return;
c = z.createElement("div"), d = z.createElement("div"), c.style.cssText = i, b.appendChild(c).appendChild(d), e = d.appendChild(z.createElement("div")), e.style.cssText = d.style.cssText = j, e.style.marginRight = e.style.width = "0", d.style.width = "1px", g = !parseFloat((a.getComputedStyle(e, null) || {}).marginRight), b.removeChild(c)
}
return g
}
});
function k() {
var b, c, h = z.getElementsByTagName("body")[0];
h && (b = z.createElement("div"), c = z.createElement("div"), b.style.cssText = i, h.appendChild(b).appendChild(c), c.style.cssText = "-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;position:absolute;display:block;padding:1px;border:1px;width:4px;margin-top:1%;top:1%", n.swap(h, null != h.style.zoom ? {
zoom: 1
} : {}, function() {
d = 4 === c.offsetWidth
}), e = !0, f = !1, g = !0, a.getComputedStyle && (f = "1%" !== (a.getComputedStyle(c, null) || {}).top, e = "4px" === (a.getComputedStyle(c, null) || {
width: "4px"
}).width), h.removeChild(b), c = h = null)
}
}(), n.swap = function(a, b, c, d) {
var e, f, g = {};
for (f in b) g[f] = a.style[f], a.style[f] = b[f];
e = c.apply(a, d || []);
for (f in b) a.style[f] = g[f];
return e
};
var Nb = /alpha\([^)]*\)/i,
Ob = /opacity\s*=\s*([^)]*)/,
Pb = /^(none|table(?!-c[ea]).+)/,
Qb = new RegExp("^(" + T + ")(.*)$", "i"),
Rb = new RegExp("^([+-])=(" + T + ")", "i"),
Sb = {
position: "absolute",
visibility: "hidden",
display: "block"
},
Tb = {
letterSpacing: 0,
fontWeight: 400
},
Ub = ["Webkit", "O", "Moz", "ms"];
function Vb(a, b) {
if (b in a) return b;
var c = b.charAt(0).toUpperCase() + b.slice(1),
d = b,
e = Ub.length;
while (e--)
if (b = Ub[e] + c, b in a) return b;
return d
}
function Wb(a, b) {
for (var c, d, e, f = [], g = 0, h = a.length; h > g; g++) d = a[g], d.style && (f[g] = n._data(d, "olddisplay"), c = d.style.display, b ? (f[g] || "none" !== c || (d.style.display = ""), "" === d.style.display && V(d) && (f[g] = n._data(d, "olddisplay", Gb(d.nodeName)))) : f[g] || (e = V(d), (c && "none" !== c || !e) && n._data(d, "olddisplay", e ? c : n.css(d, "display"))));
for (g = 0; h > g; g++) d = a[g], d.style && (b && "none" !== d.style.display && "" !== d.style.display || (d.style.display = b ? f[g] || "" : "none"));
return a
}
function Xb(a, b, c) {
var d = Qb.exec(b);
return d ? Math.max(0, d[1] - (c || 0)) + (d[2] || "px") : b
}
function Yb(a, b, c, d, e) {
for (var f = c === (d ? "border" : "content") ? 4 : "width" === b ? 1 : 0, g = 0; 4 > f; f += 2) "margin" === c && (g += n.css(a, c + U[f], !0, e)), d ? ("content" === c && (g -= n.css(a, "padding" + U[f], !0, e)), "margin" !== c && (g -= n.css(a, "border" + U[f] + "Width", !0, e))) : (g += n.css(a, "padding" + U[f], !0, e), "padding" !== c && (g += n.css(a, "border" + U[f] + "Width", !0, e)));
return g
}
function Zb(a, b, c) {
var d = !0,
e = "width" === b ? a.offsetWidth : a.offsetHeight,
f = Jb(a),
g = l.boxSizing() && "border-box" === n.css(a, "boxSizing", !1, f);
if (0 >= e || null == e) {
if (e = Kb(a, b, f), (0 > e || null == e) && (e = a.style[b]), Ib.test(e)) return e;
d = g && (l.boxSizingReliable() || e === a.style[b]), e = parseFloat(e) || 0
}
return e + Yb(a, b, c || (g ? "border" : "content"), d, f) + "px"
}
n.extend({
cssHooks: {
opacity: {
get: function(a, b) {
if (b) {
var c = Kb(a, "opacity");
return "" === c ? "1" : c
}
}
}
},
cssNumber: {
columnCount: !0,
fillOpacity: !0,
fontWeight: !0,
lineHeight: !0,
opacity: !0,
order: !0,
orphans: !0,
widows: !0,
zIndex: !0,
zoom: !0
},
cssProps: {
"float": l.cssFloat ? "cssFloat" : "styleFloat"
},
style: function(a, b, c, d) {
if (a && 3 !== a.nodeType && 8 !== a.nodeType && a.style) {
var e, f, g, h = n.camelCase(b),
i = a.style;
if (b = n.cssProps[h] || (n.cssProps[h] = Vb(i, h)), g = n.cssHooks[b] || n.cssHooks[h], void 0 === c) return g && "get" in g && void 0 !== (e = g.get(a, !1, d)) ? e : i[b];
if (f = typeof c, "string" === f && (e = Rb.exec(c)) && (c = (e[1] + 1) * e[2] + parseFloat(n.css(a, b)), f = "number"), null != c && c === c && ("number" !== f || n.cssNumber[h] || (c += "px"), l.clearCloneStyle || "" !== c || 0 !== b.indexOf("background") || (i[b] = "inherit"), !(g && "set" in g && void 0 === (c = g.set(a, c, d))))) try {
i[b] = "", i[b] = c
} catch (j) {}
}
},
css: function(a, b, c, d) {
var e, f, g, h = n.camelCase(b);
return b = n.cssProps[h] || (n.cssProps[h] = Vb(a.style, h)), g = n.cssHooks[b] || n.cssHooks[h], g && "get" in g && (f = g.get(a, !0, c)), void 0 === f && (f = Kb(a, b, d)), "normal" === f && b in Tb && (f = Tb[b]), "" === c || c ? (e = parseFloat(f), c === !0 || n.isNumeric(e) ? e || 0 : f) : f
}
}), n.each(["height", "width"], function(a, b) {
n.cssHooks[b] = {
get: function(a, c, d) {
return c ? 0 === a.offsetWidth && Pb.test(n.css(a, "display")) ? n.swap(a, Sb, function() {
return Zb(a, b, d)
}) : Zb(a, b, d) : void 0
},
set: function(a, c, d) {
var e = d && Jb(a);
return Xb(a, c, d ? Yb(a, b, d, l.boxSizing() && "border-box" === n.css(a, "boxSizing", !1, e), e) : 0)
}
}
}), l.opacity || (n.cssHooks.opacity = {
get: function(a, b) {
return Ob.test((b && a.currentStyle ? a.currentStyle.filter : a.style.filter) || "") ? .01 * parseFloat(RegExp.$1) + "" : b ? "1" : ""
},
set: function(a, b) {
var c = a.style,
d = a.currentStyle,
e = n.isNumeric(b) ? "alpha(opacity=" + 100 * b + ")" : "",
f = d && d.filter || c.filter || "";
c.zoom = 1, (b >= 1 || "" === b) && "" === n.trim(f.replace(Nb, "")) && c.removeAttribute && (c.removeAttribute("filter"), "" === b || d && !d.filter) || (c.filter = Nb.test(f) ? f.replace(Nb, e) : f + " " + e)
}
}), n.cssHooks.marginRight = Mb(l.reliableMarginRight, function(a, b) {
return b ? n.swap(a, {
display: "inline-block"
}, Kb, [a, "marginRight"]) : void 0
}), n.each({
margin: "",
padding: "",
border: "Width"
}, function(a, b) {
n.cssHooks[a + b] = {
expand: function(c) {
for (var d = 0, e = {}, f = "string" == typeof c ? c.split(" ") : [c]; 4 > d; d++) e[a + U[d] + b] = f[d] || f[d - 2] || f[0];
return e
}
}, Hb.test(a) || (n.cssHooks[a + b].set = Xb)
}), n.fn.extend({
css: function(a, b) {
return W(this, function(a, b, c) {
var d, e, f = {},
g = 0;
if (n.isArray(b)) {
for (d = Jb(a), e = b.length; e > g; g++) f[b[g]] = n.css(a, b[g], !1, d);
return f
}
return void 0 !== c ? n.style(a, b, c) : n.css(a, b)
}, a, b, arguments.length > 1)
},
show: function() {
return Wb(this, !0)
},
hide: function() {
return Wb(this)
},
toggle: function(a) {
return "boolean" == typeof a ? a ? this.show() : this.hide() : this.each(function() {
V(this) ? n(this).show() : n(this).hide()
})
}
});
function $b(a, b, c, d, e) {
return new $b.prototype.init(a, b, c, d, e)
}
n.Tween = $b, $b.prototype = {
constructor: $b,
init: function(a, b, c, d, e, f) {
this.elem = a, this.prop = c, this.easing = e || "swing", this.options = b, this.start = this.now = this.cur(), this.end = d, this.unit = f || (n.cssNumber[c] ? "" : "px")
},
cur: function() {
var a = $b.propHooks[this.prop];
return a && a.get ? a.get(this) : $b.propHooks._default.get(this)
},
run: function(a) {
var b, c = $b.propHooks[this.prop];
return this.pos = b = this.options.duration ? n.easing[this.easing](a, this.options.duration * a, 0, 1, this.options.duration) : a, this.now = (this.end - this.start) * b + this.start, this.options.step && this.options.step.call(this.elem, this.now, this), c && c.set ? c.set(this) : $b.propHooks._default.set(this), this
}
}, $b.prototype.init.prototype = $b.prototype, $b.propHooks = {
_default: {
get: function(a) {
var b;
return null == a.elem[a.prop] || a.elem.style && null != a.elem.style[a.prop] ? (b = n.css(a.elem, a.prop, ""), b && "auto" !== b ? b : 0) : a.elem[a.prop]
},
set: function(a) {
n.fx.step[a.prop] ? n.fx.step[a.prop](a) : a.elem.style && (null != a.elem.style[n.cssProps[a.prop]] || n.cssHooks[a.prop]) ? n.style(a.elem, a.prop, a.now + a.unit) : a.elem[a.prop] = a.now
}
}
}, $b.propHooks.scrollTop = $b.propHooks.scrollLeft = {
set: function(a) {
a.elem.nodeType && a.elem.parentNode && (a.elem[a.prop] = a.now)
}
}, n.easing = {
linear: function(a) {
return a
},
swing: function(a) {
return .5 - Math.cos(a * Math.PI) / 2
}
}, n.fx = $b.prototype.init, n.fx.step = {};
var _b, ac, bc = /^(?:toggle|show|hide)$/,
cc = new RegExp("^(?:([+-])=|)(" + T + ")([a-z%]*)$", "i"),
dc = /queueHooks$/,
ec = [jc],
fc = {
"*": [function(a, b) {
var c = this.createTween(a, b),
d = c.cur(),
e = cc.exec(b),
f = e && e[3] || (n.cssNumber[a] ? "" : "px"),
g = (n.cssNumber[a] || "px" !== f && +d) && cc.exec(n.css(c.elem, a)),
h = 1,
i = 20;
if (g && g[3] !== f) {
f = f || g[3], e = e || [], g = +d || 1;
do h = h || ".5", g /= h, n.style(c.elem, a, g + f); while (h !== (h = c.cur() / d) && 1 !== h && --i)
}
return e && (g = c.start = +g || +d || 0, c.unit = f, c.end = e[1] ? g + (e[1] + 1) * e[2] : +e[2]), c
}]
};
function gc() {
return setTimeout(function() {
_b = void 0
}), _b = n.now()
}
function hc(a, b) {
var c, d = {
height: a
},
e = 0;
for (b = b ? 1 : 0; 4 > e; e += 2 - b) c = U[e], d["margin" + c] = d["padding" + c] = a;
return b && (d.opacity = d.width = a), d
}
function ic(a, b, c) {
for (var d, e = (fc[b] || []).concat(fc["*"]), f = 0, g = e.length; g > f; f++)
if (d = e[f].call(c, b, a)) return d
}
function jc(a, b, c) {
var d, e, f, g, h, i, j, k, m = this,
o = {},
p = a.style,
q = a.nodeType && V(a),
r = n._data(a, "fxshow");
c.queue || (h = n._queueHooks(a, "fx"), null == h.unqueued && (h.unqueued = 0, i = h.empty.fire, h.empty.fire = function() {
h.unqueued || i()
}), h.unqueued++, m.always(function() {
m.always(function() {
h.unqueued--, n.queue(a, "fx").length || h.empty.fire()
})
})), 1 === a.nodeType && ("height" in b || "width" in b) && (c.overflow = [p.overflow, p.overflowX, p.overflowY], j = n.css(a, "display"), k = Gb(a.nodeName), "none" === j && (j = k), "inline" === j && "none" === n.css(a, "float") && (l.inlineBlockNeedsLayout && "inline" !== k ? p.zoom = 1 : p.display = "inline-block")), c.overflow && (p.overflow = "hidden", l.shrinkWrapBlocks() || m.always(function() {
p.overflow = c.overflow[0], p.overflowX = c.overflow[1], p.overflowY = c.overflow[2]
}));
for (d in b)
if (e = b[d], bc.exec(e)) {
if (delete b[d], f = f || "toggle" === e, e === (q ? "hide" : "show")) {
if ("show" !== e || !r || void 0 === r[d]) continue;
q = !0
}
o[d] = r && r[d] || n.style(a, d)
} if (!n.isEmptyObject(o)) {
r ? "hidden" in r && (q = r.hidden) : r = n._data(a, "fxshow", {}), f && (r.hidden = !q), q ? n(a).show() : m.done(function() {
n(a).hide()
}), m.done(function() {
var b;
n._removeData(a, "fxshow");
for (b in o) n.style(a, b, o[b])
});
for (d in o) g = ic(q ? r[d] : 0, d, m), d in r || (r[d] = g.start, q && (g.end = g.start, g.start = "width" === d || "height" === d ? 1 : 0))
}
}
function kc(a, b) {
var c, d, e, f, g;
for (c in a)
if (d = n.camelCase(c), e = b[d], f = a[c], n.isArray(f) && (e = f[1], f = a[c] = f[0]), c !== d && (a[d] = f, delete a[c]), g = n.cssHooks[d], g && "expand" in g) {
f = g.expand(f), delete a[d];
for (c in f) c in a || (a[c] = f[c], b[c] = e)
} else b[d] = e
}
function lc(a, b, c) {
var d, e, f = 0,
g = ec.length,
h = n.Deferred().always(function() {
delete i.elem
}),
i = function() {
if (e) return !1;
for (var b = _b || gc(), c = Math.max(0, j.startTime + j.duration - b), d = c / j.duration || 0, f = 1 - d, g = 0, i = j.tweens.length; i > g; g++) j.tweens[g].run(f);
return h.notifyWith(a, [j, f, c]), 1 > f && i ? c : (h.resolveWith(a, [j]), !1)
},
j = h.promise({
elem: a,
props: n.extend({}, b),
opts: n.extend(!0, {
specialEasing: {}
}, c),
originalProperties: b,
originalOptions: c,
startTime: _b || gc(),
duration: c.duration,
tweens: [],
createTween: function(b, c) {
var d = n.Tween(a, j.opts, b, c, j.opts.specialEasing[b] || j.opts.easing);
return j.tweens.push(d), d
},
stop: function(b) {
var c = 0,
d = b ? j.tweens.length : 0;
if (e) return this;
for (e = !0; d > c; c++) j.tweens[c].run(1);
return b ? h.resolveWith(a, [j, b]) : h.rejectWith(a, [j, b]), this
}
}),
k = j.props;
for (kc(k, j.opts.specialEasing); g > f; f++)
if (d = ec[f].call(j, a, k, j.opts)) return d;
return n.map(k, ic, j), n.isFunction(j.opts.start) && j.opts.start.call(a, j), n.fx.timer(n.extend(i, {
elem: a,
anim: j,
queue: j.opts.queue
})), j.progress(j.opts.progress).done(j.opts.done, j.opts.complete).fail(j.opts.fail).always(j.opts.always)
}
n.Animation = n.extend(lc, {
tweener: function(a, b) {
n.isFunction(a) ? (b = a, a = ["*"]) : a = a.split(" ");
for (var c, d = 0, e = a.length; e > d; d++) c = a[d], fc[c] = fc[c] || [], fc[c].unshift(b)
},
prefilter: function(a, b) {
b ? ec.unshift(a) : ec.push(a)
}
}), n.speed = function(a, b, c) {
var d = a && "object" == typeof a ? n.extend({}, a) : {
complete: c || !c && b || n.isFunction(a) && a,
duration: a,
easing: c && b || b && !n.isFunction(b) && b
};
return d.duration = n.fx.off ? 0 : "number" == typeof d.duration ? d.duration : d.duration in n.fx.speeds ? n.fx.speeds[d.duration] : n.fx.speeds._default, (null == d.queue || d.queue === !0) && (d.queue = "fx"), d.old = d.complete, d.complete = function() {
n.isFunction(d.old) && d.old.call(this), d.queue && n.dequeue(this, d.queue)
}, d
}, n.fn.extend({
fadeTo: function(a, b, c, d) {
return this.filter(V).css("opacity", 0).show().end().animate({
opacity: b
}, a, c, d)
},
animate: function(a, b, c, d) {
var e = n.isEmptyObject(a),
f = n.speed(b, c, d),
g = function() {
var b = lc(this, n.extend({}, a), f);
(e || n._data(this, "finish")) && b.stop(!0)
};
return g.finish = g, e || f.queue === !1 ? this.each(g) : this.queue(f.queue, g)
},
stop: function(a, b, c) {
var d = function(a) {
var b = a.stop;
delete a.stop, b(c)
};
return "string" != typeof a && (c = b, b = a, a = void 0), b && a !== !1 && this.queue(a || "fx", []), this.each(function() {
var b = !0,
e = null != a && a + "queueHooks",
f = n.timers,
g = n._data(this);
if (e) g[e] && g[e].stop && d(g[e]);
else
for (e in g) g[e] && g[e].stop && dc.test(e) && d(g[e]);
for (e = f.length; e--;) f[e].elem !== this || null != a && f[e].queue !== a || (f[e].anim.stop(c), b = !1, f.splice(e, 1));
(b || !c) && n.dequeue(this, a)
})
},
finish: function(a) {
return a !== !1 && (a = a || "fx"), this.each(function() {
var b, c = n._data(this),
d = c[a + "queue"],
e = c[a + "queueHooks"],
f = n.timers,
g = d ? d.length : 0;
for (c.finish = !0, n.queue(this, a, []), e && e.stop && e.stop.call(this, !0), b = f.length; b--;) f[b].elem === this && f[b].queue === a && (f[b].anim.stop(!0), f.splice(b, 1));
for (b = 0; g > b; b++) d[b] && d[b].finish && d[b].finish.call(this);
delete c.finish
})
}
}), n.each(["toggle", "show", "hide"], function(a, b) {
var c = n.fn[b];
n.fn[b] = function(a, d, e) {
return null == a || "boolean" == typeof a ? c.apply(this, arguments) : this.animate(hc(b, !0), a, d, e)
}
}), n.each({
slideDown: hc("show"),
slideUp: hc("hide"),
slideToggle: hc("toggle"),
fadeIn: {
opacity: "show"
},
fadeOut: {
opacity: "hide"
},
fadeToggle: {
opacity: "toggle"
}
}, function(a, b) {
n.fn[a] = function(a, c, d) {
return this.animate(b, a, c, d)
}
}), n.timers = [], n.fx.tick = function() {
var a, b = n.timers,
c = 0;
for (_b = n.now(); c < b.length; c++) a = b[c], a() || b[c] !== a || b.splice(c--, 1);
b.length || n.fx.stop(), _b = void 0
}, n.fx.timer = function(a) {
n.timers.push(a), a() ? n.fx.start() : n.timers.pop()
}, n.fx.interval = 13, n.fx.start = function() {
ac || (ac = setInterval(n.fx.tick, n.fx.interval))
}, n.fx.stop = function() {
clearInterval(ac), ac = null
}, n.fx.speeds = {
slow: 600,
fast: 200,
_default: 400
}, n.fn.delay = function(a, b) {
return a = n.fx ? n.fx.speeds[a] || a : a, b = b || "fx", this.queue(b, function(b, c) {
var d = setTimeout(b, a);
c.stop = function() {
clearTimeout(d)
}
})
},
function() {
var a, b, c, d, e = z.createElement("div");
e.setAttribute("className", "t"), e.innerHTML = " <link/><table></table><a href='/a'>a</a><input type='checkbox'/>", a = e.getElementsByTagName("a")[0], c = z.createElement("select"), d = c.appendChild(z.createElement("option")), b = e.getElementsByTagName("input")[0], a.style.cssText = "top:1px", l.getSetAttribute = "t" !== e.className, l.style = /top/.test(a.getAttribute("style")), l.hrefNormalized = "/a" === a.getAttribute("href"), l.checkOn = !!b.value, l.optSelected = d.selected, l.enctype = !!z.createElement("form").enctype, c.disabled = !0, l.optDisabled = !d.disabled, b = z.createElement("input"), b.setAttribute("value", ""), l.input = "" === b.getAttribute("value"), b.value = "t", b.setAttribute("type", "radio"), l.radioValue = "t" === b.value, a = b = c = d = e = null
}();
var mc = /\r/g;
n.fn.extend({
val: function(a) {
var b, c, d, e = this[0]; {
if (arguments.length) return d = n.isFunction(a), this.each(function(c) {
var e;
1 === this.nodeType && (e = d ? a.call(this, c, n(this).val()) : a, null == e ? e = "" : "number" == typeof e ? e += "" : n.isArray(e) && (e = n.map(e, function(a) {
return null == a ? "" : a + ""
})), b = n.valHooks[this.type] || n.valHooks[this.nodeName.toLowerCase()], b && "set" in b && void 0 !== b.set(this, e, "value") || (this.value = e))
});
if (e) return b = n.valHooks[e.type] || n.valHooks[e.nodeName.toLowerCase()], b && "get" in b && void 0 !== (c = b.get(e, "value")) ? c : (c = e.value, "string" == typeof c ? c.replace(mc, "") : null == c ? "" : c)
}
}
}), n.extend({
valHooks: {
option: {
get: function(a) {
var b = n.find.attr(a, "value");
return null != b ? b : n.text(a)
}
},
select: {
get: function(a) {
for (var b, c, d = a.options, e = a.selectedIndex, f = "select-one" === a.type || 0 > e, g = f ? null : [], h = f ? e + 1 : d.length, i = 0 > e ? h : f ? e : 0; h > i; i++)
if (c = d[i], !(!c.selected && i !== e || (l.optDisabled ? c.disabled : null !== c.getAttribute("disabled")) || c.parentNode.disabled && n.nodeName(c.parentNode, "optgroup"))) {
if (b = n(c).val(), f) return b;
g.push(b)
} return g
},
set: function(a, b) {
var c, d, e = a.options,
f = n.makeArray(b),
g = e.length;
while (g--)
if (d = e[g], n.inArray(n.valHooks.option.get(d), f) >= 0) try {
d.selected = c = !0
} catch (h) {
d.scrollHeight
} else d.selected = !1;
return c || (a.selectedIndex = -1), e
}
}
}
}), n.each(["radio", "checkbox"], function() {
n.valHooks[this] = {
set: function(a, b) {
return n.isArray(b) ? a.checked = n.inArray(n(a).val(), b) >= 0 : void 0
}
}, l.checkOn || (n.valHooks[this].get = function(a) {
return null === a.getAttribute("value") ? "on" : a.value
})
});
var nc, oc, pc = n.expr.attrHandle,
qc = /^(?:checked|selected)$/i,
rc = l.getSetAttribute,
sc = l.input;
n.fn.extend({
attr: function(a, b) {
return W(this, n.attr, a, b, arguments.length > 1)
},
removeAttr: function(a) {
return this.each(function() {
n.removeAttr(this, a)
})
}
}), n.extend({
attr: function(a, b, c) {
var d, e, f = a.nodeType;
if (a && 3 !== f && 8 !== f && 2 !== f) return typeof a.getAttribute === L ? n.prop(a, b, c) : (1 === f && n.isXMLDoc(a) || (b = b.toLowerCase(), d = n.attrHooks[b] || (n.expr.match.bool.test(b) ? oc : nc)), void 0 === c ? d && "get" in d && null !== (e = d.get(a, b)) ? e : (e = n.find.attr(a, b), null == e ? void 0 : e) : null !== c ? d && "set" in d && void 0 !== (e = d.set(a, c, b)) ? e : (a.setAttribute(b, c + ""), c) : void n.removeAttr(a, b))
},
removeAttr: function(a, b) {
var c, d, e = 0,
f = b && b.match(F);
if (f && 1 === a.nodeType)
while (c = f[e++]) d = n.propFix[c] || c, n.expr.match.bool.test(c) ? sc && rc || !qc.test(c) ? a[d] = !1 : a[n.camelCase("default-" + c)] = a[d] = !1 : n.attr(a, c, ""), a.removeAttribute(rc ? c : d)
},
attrHooks: {
type: {
set: function(a, b) {
if (!l.radioValue && "radio" === b && n.nodeName(a, "input")) {
var c = a.value;
return a.setAttribute("type", b), c && (a.value = c), b
}
}
}
}
}), oc = {
set: function(a, b, c) {
return b === !1 ? n.removeAttr(a, c) : sc && rc || !qc.test(c) ? a.setAttribute(!rc && n.propFix[c] || c, c) : a[n.camelCase("default-" + c)] = a[c] = !0, c
}
}, n.each(n.expr.match.bool.source.match(/\w+/g), function(a, b) {
var c = pc[b] || n.find.attr;
pc[b] = sc && rc || !qc.test(b) ? function(a, b, d) {
var e, f;
return d || (f = pc[b], pc[b] = e, e = null != c(a, b, d) ? b.toLowerCase() : null, pc[b] = f), e
} : function(a, b, c) {
return c ? void 0 : a[n.camelCase("default-" + b)] ? b.toLowerCase() : null
}
}), sc && rc || (n.attrHooks.value = {
set: function(a, b, c) {
return n.nodeName(a, "input") ? void(a.defaultValue = b) : nc && nc.set(a, b, c)
}
}), rc || (nc = {
set: function(a, b, c) {
var d = a.getAttributeNode(c);
return d || a.setAttributeNode(d = a.ownerDocument.createAttribute(c)), d.value = b += "", "value" === c || b === a.getAttribute(c) ? b : void 0
}
}, pc.id = pc.name = pc.coords = function(a, b, c) {
var d;
return c ? void 0 : (d = a.getAttributeNode(b)) && "" !== d.value ? d.value : null
}, n.valHooks.button = {
get: function(a, b) {
var c = a.getAttributeNode(b);
return c && c.specified ? c.value : void 0
},
set: nc.set
}, n.attrHooks.contenteditable = {
set: function(a, b, c) {
nc.set(a, "" === b ? !1 : b, c)
}
}, n.each(["width", "height"], function(a, b) {
n.attrHooks[b] = {
set: function(a, c) {
return "" === c ? (a.setAttribute(b, "auto"), c) : void 0
}
}
})), l.style || (n.attrHooks.style = {
get: function(a) {
return a.style.cssText || void 0
},
set: function(a, b) {
return a.style.cssText = b + ""
}
});
var tc = /^(?:input|select|textarea|button|object)$/i,
uc = /^(?:a|area)$/i;
n.fn.extend({
prop: function(a, b) {
return W(this, n.prop, a, b, arguments.length > 1)
},
removeProp: function(a) {
return a = n.propFix[a] || a, this.each(function() {
try {
this[a] = void 0, delete this[a]
} catch (b) {}
})
}
}), n.extend({
propFix: {
"for": "htmlFor",
"class": "className"
},
prop: function(a, b, c) {
var d, e, f, g = a.nodeType;
if (a && 3 !== g && 8 !== g && 2 !== g) return f = 1 !== g || !n.isXMLDoc(a), f && (b = n.propFix[b] || b, e = n.propHooks[b]), void 0 !== c ? e && "set" in e && void 0 !== (d = e.set(a, c, b)) ? d : a[b] = c : e && "get" in e && null !== (d = e.get(a, b)) ? d : a[b]
},
propHooks: {
tabIndex: {
get: function(a) {
var b = n.find.attr(a, "tabindex");
return b ? parseInt(b, 10) : tc.test(a.nodeName) || uc.test(a.nodeName) && a.href ? 0 : -1
}
}
}
}), l.hrefNormalized || n.each(["href", "src"], function(a, b) {
n.propHooks[b] = {
get: function(a) {
return a.getAttribute(b, 4)
}
}
}), l.optSelected || (n.propHooks.selected = {
get: function(a) {
var b = a.parentNode;
return b && (b.selectedIndex, b.parentNode && b.parentNode.selectedIndex), null
}
}), n.each(["tabIndex", "readOnly", "maxLength", "cellSpacing", "cellPadding", "rowSpan", "colSpan", "useMap", "frameBorder", "contentEditable"], function() {
n.propFix[this.toLowerCase()] = this
}), l.enctype || (n.propFix.enctype = "encoding");
var vc = /[\t\r\n\f]/g;
n.fn.extend({
addClass: function(a) {
var b, c, d, e, f, g, h = 0,
i = this.length,
j = "string" == typeof a && a;
if (n.isFunction(a)) return this.each(function(b) {
n(this).addClass(a.call(this, b, this.className))
});
if (j)
for (b = (a || "").match(F) || []; i > h; h++)
if (c = this[h], d = 1 === c.nodeType && (c.className ? (" " + c.className + " ").replace(vc, " ") : " ")) {
f = 0;
while (e = b[f++]) d.indexOf(" " + e + " ") < 0 && (d += e + " ");
g = n.trim(d), c.className !== g && (c.className = g)
} return this
},
removeClass: function(a) {
var b, c, d, e, f, g, h = 0,
i = this.length,
j = 0 === arguments.length || "string" == typeof a && a;
if (n.isFunction(a)) return this.each(function(b) {
n(this).removeClass(a.call(this, b, this.className))
});
if (j)
for (b = (a || "").match(F) || []; i > h; h++)
if (c = this[h], d = 1 === c.nodeType && (c.className ? (" " + c.className + " ").replace(vc, " ") : "")) {
f = 0;
while (e = b[f++])
while (d.indexOf(" " + e + " ") >= 0) d = d.replace(" " + e + " ", " ");
g = a ? n.trim(d) : "", c.className !== g && (c.className = g)
} return this
},
toggleClass: function(a, b) {
var c = typeof a;
return "boolean" == typeof b && "string" === c ? b ? this.addClass(a) : this.removeClass(a) : this.each(n.isFunction(a) ? function(c) {
n(this).toggleClass(a.call(this, c, this.className, b), b)
} : function() {
if ("string" === c) {
var b, d = 0,
e = n(this),
f = a.match(F) || [];
while (b = f[d++]) e.hasClass(b) ? e.removeClass(b) : e.addClass(b)
} else(c === L || "boolean" === c) && (this.className && n._data(this, "__className__", this.className), this.className = this.className || a === !1 ? "" : n._data(this, "__className__") || "")
})
},
hasClass: function(a) {
for (var b = " " + a + " ", c = 0, d = this.length; d > c; c++)
if (1 === this[c].nodeType && (" " + this[c].className + " ").replace(vc, " ").indexOf(b) >= 0) return !0;
return !1
}
}), n.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "), function(a, b) {
n.fn[b] = function(a, c) {
return arguments.length > 0 ? this.on(b, null, a, c) : this.trigger(b)
}
}), n.fn.extend({
hover: function(a, b) {
return this.mouseenter(a).mouseleave(b || a)
},
bind: function(a, b, c) {
return this.on(a, null, b, c)
},
unbind: function(a, b) {
return this.off(a, null, b)
},
delegate: function(a, b, c, d) {
return this.on(b, a, c, d)
},
undelegate: function(a, b, c) {
return 1 === arguments.length ? this.off(a, "**") : this.off(b, a || "**", c)
}
});
var wc = n.now(),
xc = /\?/,
yc = /(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;
n.parseJSON = function(b) {
if (a.JSON && a.JSON.parse) return a.JSON.parse(b + "");
var c, d = null,
e = n.trim(b + "");
return e && !n.trim(e.replace(yc, function(a, b, e, f) {
return c && b && (d = 0), 0 === d ? a : (c = e || b, d += !f - !e, "")
})) ? Function("return " + e)() : n.error("Invalid JSON: " + b)
}, n.parseXML = function(b) {
var c, d;
if (!b || "string" != typeof b) return null;
try {
a.DOMParser ? (d = new DOMParser, c = d.parseFromString(b, "text/xml")) : (c = new ActiveXObject("Microsoft.XMLDOM"), c.async = "false", c.loadXML(b))
} catch (e) {
c = void 0
}
return c && c.documentElement && !c.getElementsByTagName("parsererror").length || n.error("Invalid XML: " + b), c
};
var zc, Ac, Bc = /#.*$/,
Cc = /([?&])_=[^&]*/,
Dc = /^(.*?):[ \t]*([^\r\n]*)\r?$/gm,
Ec = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,
Fc = /^(?:GET|HEAD)$/,
Gc = /^\/\//,
Hc = /^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,
Ic = {},
Jc = {},
Kc = "*/".concat("*");
try {
Ac = location.href
} catch (Lc) {
Ac = z.createElement("a"), Ac.href = "", Ac = Ac.href
}
zc = Hc.exec(Ac.toLowerCase()) || [];
function Mc(a) {
return function(b, c) {
"string" != typeof b && (c = b, b = "*");
var d, e = 0,
f = b.toLowerCase().match(F) || [];
if (n.isFunction(c))
while (d = f[e++]) "+" === d.charAt(0) ? (d = d.slice(1) || "*", (a[d] = a[d] || []).unshift(c)) : (a[d] = a[d] || []).push(c)
}
}
function Nc(a, b, c, d) {
var e = {},
f = a === Jc;
function g(h) {
var i;
return e[h] = !0, n.each(a[h] || [], function(a, h) {
var j = h(b, c, d);
return "string" != typeof j || f || e[j] ? f ? !(i = j) : void 0 : (b.dataTypes.unshift(j), g(j), !1)
}), i
}
return g(b.dataTypes[0]) || !e["*"] && g("*")
}
function Oc(a, b) {
var c, d, e = n.ajaxSettings.flatOptions || {};
for (d in b) void 0 !== b[d] && ((e[d] ? a : c || (c = {}))[d] = b[d]);
return c && n.extend(!0, a, c), a
}
function Pc(a, b, c) {
var d, e, f, g, h = a.contents,
i = a.dataTypes;
while ("*" === i[0]) i.shift(), void 0 === e && (e = a.mimeType || b.getResponseHeader("Content-Type"));
if (e)
for (g in h)
if (h[g] && h[g].test(e)) {
i.unshift(g);
break
} if (i[0] in c) f = i[0];
else {
for (g in c) {
if (!i[0] || a.converters[g + " " + i[0]]) {
f = g;
break
}
d || (d = g)
}
f = f || d
}
return f ? (f !== i[0] && i.unshift(f), c[f]) : void 0
}
function Qc(a, b, c, d) {
var e, f, g, h, i, j = {},
k = a.dataTypes.slice();
if (k[1])
for (g in a.converters) j[g.toLowerCase()] = a.converters[g];
f = k.shift();
while (f)
if (a.responseFields[f] && (c[a.responseFields[f]] = b), !i && d && a.dataFilter && (b = a.dataFilter(b, a.dataType)), i = f, f = k.shift())
if ("*" === f) f = i;
else if ("*" !== i && i !== f) {
if (g = j[i + " " + f] || j["* " + f], !g)
for (e in j)
if (h = e.split(" "), h[1] === f && (g = j[i + " " + h[0]] || j["* " + h[0]])) {
g === !0 ? g = j[e] : j[e] !== !0 && (f = h[0], k.unshift(h[1]));
break
} if (g !== !0)
if (g && a["throws"]) b = g(b);
else try {
b = g(b)
} catch (l) {
return {
state: "parsererror",
error: g ? l : "No conversion from " + i + " to " + f
}
}
}
return {
state: "success",
data: b
}
}
n.extend({
active: 0,
lastModified: {},
etag: {},
ajaxSettings: {
url: Ac,
type: "GET",
isLocal: Ec.test(zc[1]),
global: !0,
processData: !0,
async: !0,
contentType: "application/x-www-form-urlencoded; charset=UTF-8",
accepts: {
"*": Kc,
text: "text/plain",
html: "text/html",
xml: "application/xml, text/xml",
json: "application/json, text/javascript"
},
contents: {
xml: /xml/,
html: /html/,
json: /json/
},
responseFields: {
xml: "responseXML",
text: "responseText",
json: "responseJSON"
},
converters: {
"* text": String,
"text html": !0,
"text json": n.parseJSON,
"text xml": n.parseXML
},
flatOptions: {
url: !0,
context: !0
}
},
ajaxSetup: function(a, b) {
return b ? Oc(Oc(a, n.ajaxSettings), b) : Oc(n.ajaxSettings, a)
},
ajaxPrefilter: Mc(Ic),
ajaxTransport: Mc(Jc),
ajax: function(a, b) {
"object" == typeof a && (b = a, a = void 0), b = b || {};
var c, d, e, f, g, h, i, j, k = n.ajaxSetup({}, b),
l = k.context || k,
m = k.context && (l.nodeType || l.jquery) ? n(l) : n.event,
o = n.Deferred(),
p = n.Callbacks("once memory"),
q = k.statusCode || {},
r = {},
s = {},
t = 0,
u = "canceled",
v = {
readyState: 0,
getResponseHeader: function(a) {
var b;
if (2 === t) {
if (!j) {
j = {};
while (b = Dc.exec(f)) j[b[1].toLowerCase()] = b[2]
}
b = j[a.toLowerCase()]
}
return null == b ? null : b
},
getAllResponseHeaders: function() {
return 2 === t ? f : null
},
setRequestHeader: function(a, b) {
var c = a.toLowerCase();
return t || (a = s[c] = s[c] || a, r[a] = b), this
},
overrideMimeType: function(a) {
return t || (k.mimeType = a), this
},
statusCode: function(a) {
var b;
if (a)
if (2 > t)
for (b in a) q[b] = [q[b], a[b]];
else v.always(a[v.status]);
return this
},
abort: function(a) {
var b = a || u;
return i && i.abort(b), x(0, b), this
}
};
if (o.promise(v).complete = p.add, v.success = v.done, v.error = v.fail, k.url = ((a || k.url || Ac) + "").replace(Bc, "").replace(Gc, zc[1] + "//"), k.type = b.method || b.type || k.method || k.type, k.dataTypes = n.trim(k.dataType || "*").toLowerCase().match(F) || [""], null == k.crossDomain && (c = Hc.exec(k.url.toLowerCase()), k.crossDomain = !(!c || c[1] === zc[1] && c[2] === zc[2] && (c[3] || ("http:" === c[1] ? "80" : "443")) === (zc[3] || ("http:" === zc[1] ? "80" : "443")))), k.data && k.processData && "string" != typeof k.data && (k.data = n.param(k.data, k.traditional)), Nc(Ic, k, b, v), 2 === t) return v;
h = k.global, h && 0 === n.active++ && n.event.trigger("ajaxStart"), k.type = k.type.toUpperCase(), k.hasContent = !Fc.test(k.type), e = k.url, k.hasContent || (k.data && (e = k.url += (xc.test(e) ? "&" : "?") + k.data, delete k.data), k.cache === !1 && (k.url = Cc.test(e) ? e.replace(Cc, "$1_=" + wc++) : e + (xc.test(e) ? "&" : "?") + "_=" + wc++)), k.ifModified && (n.lastModified[e] && v.setRequestHeader("If-Modified-Since", n.lastModified[e]), n.etag[e] && v.setRequestHeader("If-None-Match", n.etag[e])), (k.data && k.hasContent && k.contentType !== !1 || b.contentType) && v.setRequestHeader("Content-Type", k.contentType), v.setRequestHeader("Accept", k.dataTypes[0] && k.accepts[k.dataTypes[0]] ? k.accepts[k.dataTypes[0]] + ("*" !== k.dataTypes[0] ? ", " + Kc + "; q=0.01" : "") : k.accepts["*"]);
for (d in k.headers) v.setRequestHeader(d, k.headers[d]);
if (k.beforeSend && (k.beforeSend.call(l, v, k) === !1 || 2 === t)) return v.abort();
u = "abort";
for (d in {
success: 1,
error: 1,
complete: 1
}) v[d](k[d]);
if (i = Nc(Jc, k, b, v)) {
v.readyState = 1, h && m.trigger("ajaxSend", [v, k]), k.async && k.timeout > 0 && (g = setTimeout(function() {
v.abort("timeout")
}, k.timeout));
try {
t = 1, i.send(r, x)
} catch (w) {
if (!(2 > t)) throw w;
x(-1, w)
}
} else x(-1, "No Transport");
function x(a, b, c, d) {
var j, r, s, u, w, x = b;
2 !== t && (t = 2, g && clearTimeout(g), i = void 0, f = d || "", v.readyState = a > 0 ? 4 : 0, j = a >= 200 && 300 > a || 304 === a, c && (u = Pc(k, v, c)), u = Qc(k, u, v, j), j ? (k.ifModified && (w = v.getResponseHeader("Last-Modified"), w && (n.lastModified[e] = w), w = v.getResponseHeader("etag"), w && (n.etag[e] = w)), 204 === a || "HEAD" === k.type ? x = "nocontent" : 304 === a ? x = "notmodified" : (x = u.state, r = u.data, s = u.error, j = !s)) : (s = x, (a || !x) && (x = "error", 0 > a && (a = 0))), v.status = a, v.statusText = (b || x) + "", j ? o.resolveWith(l, [r, x, v]) : o.rejectWith(l, [v, x, s]), v.statusCode(q), q = void 0, h && m.trigger(j ? "ajaxSuccess" : "ajaxError", [v, k, j ? r : s]), p.fireWith(l, [v, x]), h && (m.trigger("ajaxComplete", [v, k]), --n.active || n.event.trigger("ajaxStop")))
}
return v
},
getJSON: function(a, b, c) {
return n.get(a, b, c, "json")
},
getScript: function(a, b) {
return n.get(a, void 0, b, "script")
}
}), n.each(["get", "post"], function(a, b) {
n[b] = function(a, c, d, e) {
return n.isFunction(c) && (e = e || d, d = c, c = void 0), n.ajax({
url: a,
type: b,
dataType: e,
data: c,
success: d
})
}
}), n.each(["ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend"], function(a, b) {
n.fn[b] = function(a) {
return this.on(b, a)
}
}), n._evalUrl = function(a) {
return n.ajax({
url: a,
type: "GET",
dataType: "script",
async: !1,
global: !1,
"throws": !0
})
}, n.fn.extend({
wrapAll: function(a) {
if (n.isFunction(a)) return this.each(function(b) {
n(this).wrapAll(a.call(this, b))
});
if (this[0]) {
var b = n(a, this[0].ownerDocument).eq(0).clone(!0);
this[0].parentNode && b.insertBefore(this[0]), b.map(function() {
var a = this;
while (a.firstChild && 1 === a.firstChild.nodeType) a = a.firstChild;
return a
}).append(this)
}
return this
},
wrapInner: function(a) {
return this.each(n.isFunction(a) ? function(b) {
n(this).wrapInner(a.call(this, b))
} : function() {
var b = n(this),
c = b.contents();
c.length ? c.wrapAll(a) : b.append(a)
})
},
wrap: function(a) {
var b = n.isFunction(a);
return this.each(function(c) {
n(this).wrapAll(b ? a.call(this, c) : a)
})
},
unwrap: function() {
return this.parent().each(function() {
n.nodeName(this, "body") || n(this).replaceWith(this.childNodes)
}).end()
}
}), n.expr.filters.hidden = function(a) {
return a.offsetWidth <= 0 && a.offsetHeight <= 0 || !l.reliableHiddenOffsets() && "none" === (a.style && a.style.display || n.css(a, "display"))
}, n.expr.filters.visible = function(a) {
return !n.expr.filters.hidden(a)
};
var Rc = /%20/g,
Sc = /\[\]$/,
Tc = /\r?\n/g,
Uc = /^(?:submit|button|image|reset|file)$/i,
Vc = /^(?:input|select|textarea|keygen)/i;
function Wc(a, b, c, d) {
var e;
if (n.isArray(b)) n.each(b, function(b, e) {
c || Sc.test(a) ? d(a, e) : Wc(a + "[" + ("object" == typeof e ? b : "") + "]", e, c, d)
});
else if (c || "object" !== n.type(b)) d(a, b);
else
for (e in b) Wc(a + "[" + e + "]", b[e], c, d)
}
n.param = function(a, b) {
var c, d = [],
e = function(a, b) {
b = n.isFunction(b) ? b() : null == b ? "" : b, d[d.length] = encodeURIComponent(a) + "=" + encodeURIComponent(b)
};
if (void 0 === b && (b = n.ajaxSettings && n.ajaxSettings.traditional), n.isArray(a) || a.jquery && !n.isPlainObject(a)) n.each(a, function() {
e(this.name, this.value)
});
else
for (c in a) Wc(c, a[c], b, e);
return d.join("&").replace(Rc, "+")
}, n.fn.extend({
serialize: function() {
return n.param(this.serializeArray())
},
serializeArray: function() {
return this.map(function() {
var a = n.prop(this, "elements");
return a ? n.makeArray(a) : this
}).filter(function() {
var a = this.type;
return this.name && !n(this).is(":disabled") && Vc.test(this.nodeName) && !Uc.test(a) && (this.checked || !X.test(a))
}).map(function(a, b) {
var c = n(this).val();
return null == c ? null : n.isArray(c) ? n.map(c, function(a) {
return {
name: b.name,
value: a.replace(Tc, "\r\n")
}
}) : {
name: b.name,
value: c.replace(Tc, "\r\n")
}
}).get()
}
}), n.ajaxSettings.xhr = void 0 !== a.ActiveXObject ? function() {
return !this.isLocal && /^(get|post|head|put|delete|options)$/i.test(this.type) && $c() || _c()
} : $c;
var Xc = 0,
Yc = {},
Zc = n.ajaxSettings.xhr();
a.ActiveXObject && n(a).on("unload", function() {
for (var a in Yc) Yc[a](void 0, !0)
}), l.cors = !!Zc && "withCredentials" in Zc, Zc = l.ajax = !!Zc, Zc && n.ajaxTransport(function(a) {
if (!a.crossDomain || l.cors) {
var b;
return {
send: function(c, d) {
var e, f = a.xhr(),
g = ++Xc;
if (f.open(a.type, a.url, a.async, a.username, a.password), a.xhrFields)
for (e in a.xhrFields) f[e] = a.xhrFields[e];
a.mimeType && f.overrideMimeType && f.overrideMimeType(a.mimeType), a.crossDomain || c["X-Requested-With"] || (c["X-Requested-With"] = "XMLHttpRequest");
for (e in c) void 0 !== c[e] && f.setRequestHeader(e, c[e] + "");
f.send(a.hasContent && a.data || null), b = function(c, e) {
var h, i, j;
if (b && (e || 4 === f.readyState))
if (delete Yc[g], b = void 0, f.onreadystatechange = n.noop, e) 4 !== f.readyState && f.abort();
else {
j = {}, h = f.status, "string" == typeof f.responseText && (j.text = f.responseText);
try {
i = f.statusText
} catch (k) {
i = ""
}
h || !a.isLocal || a.crossDomain ? 1223 === h && (h = 204) : h = j.text ? 200 : 404
} j && d(h, i, j, f.getAllResponseHeaders())
}, a.async ? 4 === f.readyState ? setTimeout(b) : f.onreadystatechange = Yc[g] = b : b()
},
abort: function() {
b && b(void 0, !0)
}
}
}
});
function $c() {
try {
return new a.XMLHttpRequest
} catch (b) {}
}
function _c() {
try {
return new a.ActiveXObject("Microsoft.XMLHTTP")
} catch (b) {}
}
n.ajaxSetup({
accepts: {
script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"
},
contents: {
script: /(?:java|ecma)script/
},
converters: {
"text script": function(a) {
return n.globalEval(a), a
}
}
}), n.ajaxPrefilter("script", function(a) {
void 0 === a.cache && (a.cache = !1), a.crossDomain && (a.type = "GET", a.global = !1)
}), n.ajaxTransport("script", function(a) {
if (a.crossDomain) {
var b, c = z.head || n("head")[0] || z.documentElement;
return {
send: function(d, e) {
b = z.createElement("script"), b.async = !0, a.scriptCharset && (b.charset = a.scriptCharset), b.src = a.url, b.onload = b.onreadystatechange = function(a, c) {
(c || !b.readyState || /loaded|complete/.test(b.readyState)) && (b.onload = b.onreadystatechange = null, b.parentNode && b.parentNode.removeChild(b), b = null, c || e(200, "success"))
}, c.insertBefore(b, c.firstChild)
},
abort: function() {
b && b.onload(void 0, !0)
}
}
}
});
var ad = [],
bd = /(=)\?(?=&|$)|\?\?/;
n.ajaxSetup({
jsonp: "callback",
jsonpCallback: function() {
var a = ad.pop() || n.expando + "_" + wc++;
return this[a] = !0, a
}
}), n.ajaxPrefilter("json jsonp", function(b, c, d) {
var e, f, g, h = b.jsonp !== !1 && (bd.test(b.url) ? "url" : "string" == typeof b.data && !(b.contentType || "").indexOf("application/x-www-form-urlencoded") && bd.test(b.data) && "data");
return h || "jsonp" === b.dataTypes[0] ? (e = b.jsonpCallback = n.isFunction(b.jsonpCallback) ? b.jsonpCallback() : b.jsonpCallback, h ? b[h] = b[h].replace(bd, "$1" + e) : b.jsonp !== !1 && (b.url += (xc.test(b.url) ? "&" : "?") + b.jsonp + "=" + e), b.converters["script json"] = function() {
return g || n.error(e + " was not called"), g[0]
}, b.dataTypes[0] = "json", f = a[e], a[e] = function() {
g = arguments
}, d.always(function() {
a[e] = f, b[e] && (b.jsonpCallback = c.jsonpCallback, ad.push(e)), g && n.isFunction(f) && f(g[0]), g = f = void 0
}), "script") : void 0
}), n.parseHTML = function(a, b, c) {
if (!a || "string" != typeof a) return null;
"boolean" == typeof b && (c = b, b = !1), b = b || z;
var d = v.exec(a),
e = !c && [];
return d ? [b.createElement(d[1])] : (d = n.buildFragment([a], b, e), e && e.length && n(e).remove(), n.merge([], d.childNodes))
};
var cd = n.fn.load;
n.fn.load = function(a, b, c) {
if ("string" != typeof a && cd) return cd.apply(this, arguments);
var d, e, f, g = this,
h = a.indexOf(" ");
return h >= 0 && (d = a.slice(h, a.length), a = a.slice(0, h)), n.isFunction(b) ? (c = b, b = void 0) : b && "object" == typeof b && (f = "POST"), g.length > 0 && n.ajax({
url: a,
type: f,
dataType: "html",
data: b
}).done(function(a) {
e = arguments, g.html(d ? n("<div>").append(n.parseHTML(a)).find(d) : a)
}).complete(c && function(a, b) {
g.each(c, e || [a.responseText, b, a])
}), this
}, n.expr.filters.animated = function(a) {
return n.grep(n.timers, function(b) {
return a === b.elem
}).length
};
var dd = a.document.documentElement;
function ed(a) {
return n.isWindow(a) ? a : 9 === a.nodeType ? a.defaultView || a.parentWindow : !1
}
n.offset = {
setOffset: function(a, b, c) {
var d, e, f, g, h, i, j, k = n.css(a, "position"),
l = n(a),
m = {};
"static" === k && (a.style.position = "relative"), h = l.offset(), f = n.css(a, "top"), i = n.css(a, "left"), j = ("absolute" === k || "fixed" === k) && n.inArray("auto", [f, i]) > -1, j ? (d = l.position(), g = d.top, e = d.left) : (g = parseFloat(f) || 0, e = parseFloat(i) || 0), n.isFunction(b) && (b = b.call(a, c, h)), null != b.top && (m.top = b.top - h.top + g), null != b.left && (m.left = b.left - h.left + e), "using" in b ? b.using.call(a, m) : l.css(m)
}
}, n.fn.extend({
offset: function(a) {
if (arguments.length) return void 0 === a ? this : this.each(function(b) {
n.offset.setOffset(this, a, b)
});
var b, c, d = {
top: 0,
left: 0
},
e = this[0],
f = e && e.ownerDocument;
if (f) return b = f.documentElement, n.contains(b, e) ? (typeof e.getBoundingClientRect !== L && (d = e.getBoundingClientRect()), c = ed(f), {
top: d.top + (c.pageYOffset || b.scrollTop) - (b.clientTop || 0),
left: d.left + (c.pageXOffset || b.scrollLeft) - (b.clientLeft || 0)
}) : d
},
position: function() {
if (this[0]) {
var a, b, c = {
top: 0,
left: 0
},
d = this[0];
return "fixed" === n.css(d, "position") ? b = d.getBoundingClientRect() : (a = this.offsetParent(), b = this.offset(), n.nodeName(a[0], "html") || (c = a.offset()), c.top += n.css(a[0], "borderTopWidth", !0), c.left += n.css(a[0], "borderLeftWidth", !0)), {
top: b.top - c.top - n.css(d, "marginTop", !0),
left: b.left - c.left - n.css(d, "marginLeft", !0)
}
}
},
offsetParent: function() {
return this.map(function() {
var a = this.offsetParent || dd;
while (a && !n.nodeName(a, "html") && "static" === n.css(a, "position")) a = a.offsetParent;
return a || dd
})
}
}), n.each({
scrollLeft: "pageXOffset",
scrollTop: "pageYOffset"
}, function(a, b) {
var c = /Y/.test(b);
n.fn[a] = function(d) {
return W(this, function(a, d, e) {
var f = ed(a);
return void 0 === e ? f ? b in f ? f[b] : f.document.documentElement[d] : a[d] : void(f ? f.scrollTo(c ? n(f).scrollLeft() : e, c ? e : n(f).scrollTop()) : a[d] = e)
}, a, d, arguments.length, null)
}
}), n.each(["top", "left"], function(a, b) {
n.cssHooks[b] = Mb(l.pixelPosition, function(a, c) {
return c ? (c = Kb(a, b), Ib.test(c) ? n(a).position()[b] + "px" : c) : void 0
})
}), n.each({
Height: "height",
Width: "width"
}, function(a, b) {
n.each({
padding: "inner" + a,
content: b,
"": "outer" + a
}, function(c, d) {
n.fn[d] = function(d, e) {
var f = arguments.length && (c || "boolean" != typeof d),
g = c || (d === !0 || e === !0 ? "margin" : "border");
return W(this, function(b, c, d) {
var e;
return n.isWindow(b) ? b.document.documentElement["client" + a] : 9 === b.nodeType ? (e = b.documentElement, Math.max(b.body["scroll" + a], e["scroll" + a], b.body["offset" + a], e["offset" + a], e["client" + a])) : void 0 === d ? n.css(b, c, g) : n.style(b, c, d, g)
}, b, f ? d : void 0, f, null)
}
})
}), n.fn.size = function() {
return this.length
}, n.fn.andSelf = n.fn.addBack, "function" == typeof define && define.amd && define("jquery", [], function() {
return n
});
var fd = a.jQuery,
gd = a.$;
return n.noConflict = function(b) {
return a.$ === n && (a.$ = gd), b && a.jQuery === n && (a.jQuery = fd), n
}, typeof b === L && (a.jQuery = a.$ = n), n
});
(function(Z, Q, r) {
"use strict";
function F(b) {
return function() {
var a = arguments[0],
c, a = "[" + (b ? b + ":" : "") + a + "] http://errors.angularjs.org/1.2.10/" + (b ? b + "/" : "") + a;
for (c = 1; c < arguments.length; c++) a = a + (1 == c ? "?" : "&") + "p" + (c - 1) + "=" + encodeURIComponent("function" == typeof arguments[c] ? arguments[c].toString().replace(/ \{[\s\S]*$/, "") : "undefined" == typeof arguments[c] ? "undefined" : "string" != typeof arguments[c] ? JSON.stringify(arguments[c]) : arguments[c]);
return Error(a)
}
}
function rb(b) {
if (null == b || Aa(b)) return !1;
var a = b.length;
return 1 === b.nodeType && a ? !0 : D(b) || K(b) || 0 === a || "number" === typeof a && 0 < a && a - 1 in b
}
function q(b, a, c) {
var d;
if (b)
if (L(b))
for (d in b) "prototype" == d || ("length" == d || "name" == d || b.hasOwnProperty && !b.hasOwnProperty(d)) || a.call(c, b[d], d);
else if (b.forEach && b.forEach !== q) b.forEach(a, c);
else if (rb(b))
for (d = 0; d < b.length; d++) a.call(c, b[d], d);
else
for (d in b) b.hasOwnProperty(d) && a.call(c, b[d], d);
return b
}
function Pb(b) {
var a = [],
c;
for (c in b) b.hasOwnProperty(c) && a.push(c);
return a.sort()
}
function Pc(b, a, c) {
for (var d = Pb(b), e = 0; e < d.length; e++) a.call(c, b[d[e]], d[e]);
return d
}
function Qb(b) {
return function(a, c) {
b(c, a)
}
}
function $a() {
for (var b = ka.length, a; b;) {
b--;
a = ka[b].charCodeAt(0);
if (57 == a) return ka[b] = "A", ka.join("");
if (90 == a) ka[b] = "0";
else return ka[b] = String.fromCharCode(a + 1), ka.join("")
}
ka.unshift("0");
return ka.join("")
}
function Rb(b, a) {
a ? b.$$hashKey = a : delete b.$$hashKey
}
function t(b) {
var a = b.$$hashKey;
q(arguments, function(a) {
a !== b && q(a, function(a, c) {
b[c] = a
})
});
Rb(b, a);
return b
}
function S(b) {
return parseInt(b, 10)
}
function Sb(b, a) {
return t(new(t(function() {}, {
prototype: b
})), a)
}
function w() {}
function Ba(b) {
return b
}
function $(b) {
return function() {
return b
}
}
function z(b) {
return "undefined" === typeof b
}
function B(b) {
return "undefined" !== typeof b
}
function X(b) {
return null != b && "object" === typeof b
}
function D(b) {
return "string" === typeof b
}
function sb(b) {
return "number" === typeof b
}
function La(b) {
return "[object Date]" === Ma.call(b)
}
function K(b) {
return "[object Array]" === Ma.call(b)
}
function L(b) {
return "function" === typeof b
}
function ab(b) {
return "[object RegExp]" === Ma.call(b)
}
function Aa(b) {
return b && b.document && b.location && b.alert && b.setInterval
}
function Qc(b) {
return !(!b || !(b.nodeName || b.on && b.find))
}
function Rc(b, a, c) {
var d = [];
q(b, function(b, g, f) {
d.push(a.call(c, b, g, f))
});
return d
}
function bb(b, a) {
if (b.indexOf) return b.indexOf(a);
for (var c = 0; c < b.length; c++)
if (a === b[c]) return c;
return -1
}
function Na(b, a) {
var c = bb(b, a);
0 <= c && b.splice(c, 1);
return a
}
function aa(b, a) {
if (Aa(b) || b && b.$evalAsync && b.$watch) throw Oa("cpws");
if (a) {
if (b === a) throw Oa("cpi");
if (K(b))
for (var c = a.length = 0; c < b.length; c++) a.push(aa(b[c]));
else {
c = a.$$hashKey;
q(a, function(b, c) {
delete a[c]
});
for (var d in b) a[d] = aa(b[d]);
Rb(a, c)
}
} else(a = b) && (K(b) ? a = aa(b, []) : La(b) ? a = new Date(b.getTime()) : ab(b) ? a = RegExp(b.source) : X(b) && (a = aa(b, {})));
return a
}
function Tb(b, a) {
a = a || {};
for (var c in b) b.hasOwnProperty(c) && ("$" !== c.charAt(0) && "$" !== c.charAt(1)) && (a[c] = b[c]);
return a
}
function ua(b, a) {
if (b === a) return !0;
if (null === b || null === a) return !1;
if (b !== b && a !== a) return !0;
var c = typeof b,
d;
if (c == typeof a && "object" == c)
if (K(b)) {
if (!K(a)) return !1;
if ((c = b.length) == a.length) {
for (d = 0; d < c; d++)
if (!ua(b[d], a[d])) return !1;
return !0
}
} else {
if (La(b)) return La(a) && b.getTime() == a.getTime();
if (ab(b) && ab(a)) return b.toString() == a.toString();
if (b && b.$evalAsync && b.$watch || a && a.$evalAsync && a.$watch || Aa(b) || Aa(a) || K(a)) return !1;
c = {};
for (d in b)
if ("$" !== d.charAt(0) && !L(b[d])) {
if (!ua(b[d], a[d])) return !1;
c[d] = !0
} for (d in a)
if (!c.hasOwnProperty(d) && "$" !== d.charAt(0) && a[d] !== r && !L(a[d])) return !1;
return !0
} return !1
}
function Ub() {
return Q.securityPolicy && Q.securityPolicy.isActive || Q.querySelector && !(!Q.querySelector("[ng-csp]") && !Q.querySelector("[data-ng-csp]"))
}
function cb(b, a) {
var c = 2 < arguments.length ? va.call(arguments, 2) : [];
return !L(a) || a instanceof RegExp ? a : c.length ? function() {
return arguments.length ? a.apply(b, c.concat(va.call(arguments, 0))) : a.apply(b, c)
} : function() {
return arguments.length ? a.apply(b, arguments) : a.call(b)
}
}
function Sc(b, a) {
var c = a;
"string" === typeof b && "$" === b.charAt(0) ? c = r : Aa(a) ? c = "$WINDOW" : a && Q === a ? c = "$DOCUMENT" : a && (a.$evalAsync && a.$watch) && (c = "$SCOPE");
return c
}
function qa(b, a) {
return "undefined" === typeof b ? r : JSON.stringify(b, Sc, a ? " " : null)
}
function Vb(b) {
return D(b) ? JSON.parse(b) : b
}
function Pa(b) {
"function" === typeof b ? b = !0 : b && 0 !== b.length ? (b = x("" + b), b = !("f" == b || "0" == b || "false" == b || "no" == b || "n" == b || "[]" == b)) : b = !1;
return b
}
function ga(b) {
b = A(b).clone();
try {
b.empty()
} catch (a) {}
var c = A("<div>").append(b).html();
try {
return 3 === b[0].nodeType ? x(c) : c.match(/^(<[^>]+>)/)[1].replace(/^<([\w\-]+)/, function(a, b) {
return "<" + x(b)
})
} catch (d) {
return x(c)
}
}
function Wb(b) {
try {
return decodeURIComponent(b)
} catch (a) {}
}
function Xb(b) {
var a = {},
c, d;
q((b || "").split("&"), function(b) {
b && (c = b.split("="), d = Wb(c[0]), B(d) && (b = B(c[1]) ? Wb(c[1]) : !0, a[d] ? K(a[d]) ? a[d].push(b) : a[d] = [a[d], b] : a[d] = b))
});
return a
}
function Yb(b) {
var a = [];
q(b, function(b, d) {
K(b) ? q(b, function(b) {
a.push(wa(d, !0) + (!0 === b ? "" : "=" + wa(b, !0)))
}) : a.push(wa(d, !0) + (!0 === b ? "" : "=" + wa(b, !0)))
});
return a.length ? a.join("&") : ""
}
function tb(b) {
return wa(b, !0).replace(/%26/gi, "&").replace(/%3D/gi, "=").replace(/%2B/gi, "+")
}
function wa(b, a) {
return encodeURIComponent(b).replace(/%40/gi, "@").replace(/%3A/gi, ":").replace(/%24/g, "$").replace(/%2C/gi, ",").replace(/%20/g, a ? "%20" : "+")
}
function Tc(b, a) {
function c(a) {
a && d.push(a)
}
var d = [b],
e, g, f = ["ng:app", "ng-app", "x-ng-app", "data-ng-app"],
h = /\sng[:\-]app(:\s*([\w\d_]+);?)?\s/;
q(f, function(a) {
f[a] = !0;
c(Q.getElementById(a));
a = a.replace(":", "\\:");
b.querySelectorAll && (q(b.querySelectorAll("." + a), c), q(b.querySelectorAll("." + a + "\\:"), c), q(b.querySelectorAll("[" + a + "]"), c))
});
q(d, function(a) {
if (!e) {
var b = h.exec(" " + a.className + " ");
b ? (e = a, g = (b[2] || "").replace(/\s+/g, ",")) : q(a.attributes, function(b) {
!e && f[b.name] && (e = a, g = b.value)
})
}
});
e && a(e, g ? [g] : [])
}
function Zb(b, a) {
var c = function() {
b = A(b);
if (b.injector()) {
var c = b[0] === Q ? "document" : ga(b);
throw Oa("btstrpd", c)
}
a = a || [];
a.unshift(["$provide", function(a) {
a.value("$rootElement", b)
}]);
a.unshift("ng");
c = $b(a);
c.invoke(["$rootScope", "$rootElement", "$compile", "$injector", "$animate", function(a, b, c, d, e) {
a.$apply(function() {
b.data("$injector", d);
c(b)(a)
})
}]);
return c
},
d = /^NG_DEFER_BOOTSTRAP!/;
if (Z && !d.test(Z.name)) return c();
Z.name = Z.name.replace(d, "");
Ca.resumeBootstrap = function(b) {
q(b, function(b) {
a.push(b)
});
c()
}
}
function db(b, a) {
a = a || "_";
return b.replace(Uc, function(b, d) {
return (d ? a : "") + b.toLowerCase()
})
}
function ub(b, a, c) {
if (!b) throw Oa("areq", a || "?", c || "required");
return b
}
function Qa(b, a, c) {
c && K(b) && (b = b[b.length - 1]);
ub(L(b), a, "not a function, got " + (b && "object" == typeof b ? b.constructor.name || "Object" : typeof b));
return b
}
function xa(b, a) {
if ("hasOwnProperty" === b) throw Oa("badname", a)
}
function vb(b, a, c) {
if (!a) return b;
a = a.split(".");
for (var d, e = b, g = a.length, f = 0; f < g; f++) d = a[f], b && (b = (e = b)[d]);
return !c && L(b) ? cb(e, b) : b
}
function wb(b) {
var a = b[0];
b = b[b.length - 1];
if (a === b) return A(a);
var c = [a];
do {
a = a.nextSibling;
if (!a) break;
c.push(a)
} while (a !== b);
return A(c)
}
function Vc(b) {
var a = F("$injector"),
c = F("ng");
b = b.angular || (b.angular = {});
b.$$minErr = b.$$minErr || F;
return b.module || (b.module = function() {
var b = {};
return function(e, g, f) {
if ("hasOwnProperty" === e) throw c("badname", "module");
g && b.hasOwnProperty(e) && (b[e] = null);
return b[e] || (b[e] = function() {
function b(a, d, e) {
return function() {
c[e || "push"]([a, d, arguments]);
return n
}
}
if (!g) throw a("nomod", e);
var c = [],
d = [],
l = b("$injector", "invoke"),
n = {
_invokeQueue: c,
_runBlocks: d,
requires: g,
name: e,
provider: b("$provide", "provider"),
factory: b("$provide", "factory"),
service: b("$provide", "service"),
value: b("$provide", "value"),
constant: b("$provide", "constant", "unshift"),
animation: b("$animateProvider", "register"),
filter: b("$filterProvider", "register"),
controller: b("$controllerProvider", "register"),
directive: b("$compileProvider", "directive"),
config: l,
run: function(a) {
d.push(a);
return this
}
};
f && l(f);
return n
}())
}
}())
}
function Ra(b) {
return b.replace(Wc, function(a, b, d, e) {
return e ? d.toUpperCase() : d
}).replace(Xc, "Moz$1")
}
function xb(b, a, c, d) {
function e(b) {
var e = c && b ? [this.filter(b)] : [this],
m = a,
k, l, n, p, s, C;
if (!d || null != b)
for (; e.length;)
for (k = e.shift(), l = 0, n = k.length; l < n; l++)
for (p = A(k[l]), m ? p.triggerHandler("$destroy") : m = !m, s = 0, p = (C = p.children()).length; s < p; s++) e.push(Da(C[s]));
return g.apply(this, arguments)
}
var g = Da.fn[b],
g = g.$original || g;
e.$original = g;
Da.fn[b] = e
}
function O(b) {
if (b instanceof O) return b;
if (!(this instanceof O)) {
if (D(b) && "<" != b.charAt(0)) throw yb("nosel");
return new O(b)
}
if (D(b)) {
var a = Q.createElement("div");
a.innerHTML = "<div> </div>" + b;
a.removeChild(a.firstChild);
zb(this, a.childNodes);
A(Q.createDocumentFragment()).append(this)
} else zb(this, b)
}
function Ab(b) {
return b.cloneNode(!0)
}
function Ea(b) {
ac(b);
var a = 0;
for (b = b.childNodes || []; a < b.length; a++) Ea(b[a])
}
function bc(b, a, c, d) {
if (B(d)) throw yb("offargs");
var e = la(b, "events");
la(b, "handle") && (z(a) ? q(e, function(a, c) {
Bb(b, c, a);
delete e[c]
}) : q(a.split(" "), function(a) {
z(c) ? (Bb(b, a, e[a]), delete e[a]) : Na(e[a] || [], c)
}))
}
function ac(b, a) {
var c = b[eb],
d = Sa[c];
d && (a ? delete Sa[c].data[a] : (d.handle && (d.events.$destroy && d.handle({}, "$destroy"), bc(b)), delete Sa[c], b[eb] = r))
}
function la(b, a, c) {
var d = b[eb],
d = Sa[d || -1];
if (B(c)) d || (b[eb] = d = ++Yc, d = Sa[d] = {}), d[a] = c;
else return d && d[a]
}
function cc(b, a, c) {
var d = la(b, "data"),
e = B(c),
g = !e && B(a),
f = g && !X(a);
d || f || la(b, "data", d = {});
if (e) d[a] = c;
else if (g) {
if (f) return d && d[a];
t(d, a)
} else return d
}
function Cb(b, a) {
return b.getAttribute ? -1 < (" " + (b.getAttribute("class") || "") + " ").replace(/[\n\t]/g, " ").indexOf(" " + a + " ") : !1
}
function Db(b, a) {
a && b.setAttribute && q(a.split(" "), function(a) {
b.setAttribute("class", ba((" " + (b.getAttribute("class") || "") + " ").replace(/[\n\t]/g, " ").replace(" " + ba(a) + " ", " ")))
})
}
function Eb(b, a) {
if (a && b.setAttribute) {
var c = (" " + (b.getAttribute("class") || "") + " ").replace(/[\n\t]/g, " ");
q(a.split(" "), function(a) {
a = ba(a); - 1 === c.indexOf(" " + a + " ") && (c += a + " ")
});
b.setAttribute("class", ba(c))
}
}
function zb(b, a) {
if (a) {
a = a.nodeName || !B(a.length) || Aa(a) ? [a] : a;
for (var c = 0; c < a.length; c++) b.push(a[c])
}
}
function dc(b, a) {
return fb(b, "$" + (a || "ngController") + "Controller")
}
function fb(b, a, c) {
b = A(b);
9 == b[0].nodeType && (b = b.find("html"));
for (a = K(a) ? a : [a]; b.length;) {
for (var d = 0, e = a.length; d < e; d++)
if ((c = b.data(a[d])) !== r) return c;
b = b.parent()
}
}
function ec(b) {
for (var a = 0, c = b.childNodes; a < c.length; a++) Ea(c[a]);
for (; b.firstChild;) b.removeChild(b.firstChild)
}
function fc(b, a) {
var c = gb[a.toLowerCase()];
return c && gc[b.nodeName] && c
}
function Zc(b, a) {
var c = function(c, e) {
c.preventDefault || (c.preventDefault = function() {
c.returnValue = !1
});
c.stopPropagation || (c.stopPropagation = function() {
c.cancelBubble = !0
});
c.target || (c.target = c.srcElement || Q);
if (z(c.defaultPrevented)) {
var g = c.preventDefault;
c.preventDefault = function() {
c.defaultPrevented = !0;
g.call(c)
};
c.defaultPrevented = !1
}
c.isDefaultPrevented = function() {
return c.defaultPrevented || !1 === c.returnValue
};
var f = Tb(a[e || c.type] || []);
q(f, function(a) {
a.call(b, c)
});
8 >= M ? (c.preventDefault = null, c.stopPropagation = null, c.isDefaultPrevented = null) : (delete c.preventDefault, delete c.stopPropagation, delete c.isDefaultPrevented)
};
c.elem = b;
return c
}
function Fa(b) {
var a = typeof b,
c;
"object" == a && null !== b ? "function" == typeof(c = b.$$hashKey) ? c = b.$$hashKey() : c === r && (c = b.$$hashKey = $a()) : c = b;
return a + ":" + c
}
function Ta(b) {
q(b, this.put, this)
}
function hc(b) {
var a, c;
"function" == typeof b ? (a = b.$inject) || (a = [], b.length && (c = b.toString().replace($c, ""), c = c.match(ad), q(c[1].split(bd), function(b) {
b.replace(cd, function(b, c, d) {
a.push(d)
})
})), b.$inject = a) : K(b) ? (c = b.length - 1, Qa(b[c], "fn"), a = b.slice(0, c)) : Qa(b, "fn", !0);
return a
}
function $b(b) {
function a(a) {
return function(b, c) {
if (X(b)) q(b, Qb(a));
else return a(b, c)
}
}
function c(a, b) {
xa(a, "service");
if (L(b) || K(b)) b = n.instantiate(b);
if (!b.$get) throw Ua("pget", a);
return l[a + h] = b
}
function d(a, b) {
return c(a, {
$get: b
})
}
function e(a) {
var b = [],
c, d, g, h;
q(a, function(a) {
if (!k.get(a)) {
k.put(a, !0);
try {
if (D(a))
for (c = Va(a), b = b.concat(e(c.requires)).concat(c._runBlocks), d = c._invokeQueue, g = 0, h = d.length; g < h; g++) {
var f = d[g],
m = n.get(f[0]);
m[f[1]].apply(m, f[2])
} else L(a) ? b.push(n.invoke(a)) : K(a) ? b.push(n.invoke(a)) : Qa(a, "module")
} catch (s) {
throw K(a) && (a = a[a.length - 1]), s.message && (s.stack && -1 == s.stack.indexOf(s.message)) && (s = s.message + "\n" + s.stack), Ua("modulerr", a, s.stack || s.message || s)
}
}
});
return b
}
function g(a, b) {
function c(d) {
if (a.hasOwnProperty(d)) {
if (a[d] === f) throw Ua("cdep", m.join(" <- "));
return a[d]
}
try {
return m.unshift(d), a[d] = f, a[d] = b(d)
} catch (e) {
throw a[d] === f && delete a[d], e
} finally {
m.shift()
}
}
function d(a, b, e) {
var g = [],
h = hc(a),
f, k, m;
k = 0;
for (f = h.length; k < f; k++) {
m = h[k];
if ("string" !== typeof m) throw Ua("itkn", m);
g.push(e && e.hasOwnProperty(m) ? e[m] : c(m))
}
a.$inject || (a = a[f]);
return a.apply(b, g)
}
return {
invoke: d,
instantiate: function(a, b) {
var c = function() {},
e;
c.prototype = (K(a) ? a[a.length - 1] : a).prototype;
c = new c;
e = d(a, c, b);
return X(e) || L(e) ? e : c
},
get: c,
annotate: hc,
has: function(b) {
return l.hasOwnProperty(b + h) || a.hasOwnProperty(b)
}
}
}
var f = {},
h = "Provider",
m = [],
k = new Ta,
l = {
$provide: {
provider: a(c),
factory: a(d),
service: a(function(a, b) {
return d(a, ["$injector", function(a) {
return a.instantiate(b)
}])
}),
value: a(function(a, b) {
return d(a, $(b))
}),
constant: a(function(a, b) {
xa(a, "constant");
l[a] = b;
p[a] = b
}),
decorator: function(a, b) {
var c = n.get(a + h),
d = c.$get;
c.$get = function() {
var a = s.invoke(d, c);
return s.invoke(b, null, {
$delegate: a
})
}
}
}
},
n = l.$injector = g(l, function() {
throw Ua("unpr", m.join(" <- "))
}),
p = {},
s = p.$injector = g(p, function(a) {
a = n.get(a + h);
return s.invoke(a.$get, a)
});
q(e(b), function(a) {
s.invoke(a || w)
});
return s
}
function dd() {
var b = !0;
this.disableAutoScrolling = function() {
b = !1
};
this.$get = ["$window", "$location", "$rootScope", function(a, c, d) {
function e(a) {
var b = null;
q(a, function(a) {
b || "a" !== x(a.nodeName) || (b = a)
});
return b
}
function g() {
var b = c.hash(),
d;
b ? (d = f.getElementById(b)) ? d.scrollIntoView() : (d = e(f.getElementsByName(b))) ? d.scrollIntoView() : "top" === b && a.scrollTo(0, 0) : a.scrollTo(0, 0)
}
var f = a.document;
b && d.$watch(function() {
return c.hash()
}, function() {
d.$evalAsync(g)
});
return g
}]
}
function ed(b, a, c, d) {
function e(a) {
try {
a.apply(null, va.call(arguments, 1))
} finally {
if (C--, 0 === C)
for (; y.length;) try {
y.pop()()
} catch (b) {
c.error(b)
}
}
}
function g(a, b) {
(function T() {
q(E, function(a) {
a()
});
u = b(T, a)
})()
}
function f() {
v = null;
R != h.url() && (R = h.url(), q(ha, function(a) {
a(h.url())
}))
}
var h = this,
m = a[0],
k = b.location,
l = b.history,
n = b.setTimeout,
p = b.clearTimeout,
s = {};
h.isMock = !1;
var C = 0,
y = [];
h.$$completeOutstandingRequest = e;
h.$$incOutstandingRequestCount = function() {
C++
};
h.notifyWhenNoOutstandingRequests = function(a) {
q(E, function(a) {
a()
});
0 === C ? a() : y.push(a)
};
var E = [],
u;
h.addPollFn = function(a) {
z(u) && g(100, n);
E.push(a);
return a
};
var R = k.href,
H = a.find("base"),
v = null;
h.url = function(a, c) {
k !== b.location && (k = b.location);
l !== b.history && (l = b.history);
if (a) {
if (R != a) return R = a, d.history ? c ? l.replaceState(null, "", a) : (l.pushState(null, "", a), H.attr("href", H.attr("href"))) : (v = a, c ? k.replace(a) : k.href = a), h
} else return v || k.href.replace(/%27/g, "'")
};
var ha = [],
N = !1;
h.onUrlChange = function(a) {
if (!N) {
if (d.history) A(b).on("popstate", f);
if (d.hashchange) A(b).on("hashchange", f);
else h.addPollFn(f);
N = !0
}
ha.push(a);
return a
};
h.baseHref = function() {
var a = H.attr("href");
return a ? a.replace(/^(https?\:)?\/\/[^\/]*/, "") : ""
};
var V = {},
J = "",
ca = h.baseHref();
h.cookies = function(a, b) {
var d, e, g, h;
if (a) b === r ? m.cookie = escape(a) + "=;path=" + ca + ";expires=Thu, 01 Jan 1970 00:00:00 GMT" : D(b) && (d = (m.cookie = escape(a) + "=" + escape(b) + ";path=" + ca).length + 1, 4096 < d && c.warn("Cookie '" + a + "' possibly not set or overflowed because it was too large (" + d + " > 4096 bytes)!"));
else {
if (m.cookie !== J)
for (J = m.cookie, d = J.split("; "), V = {}, g = 0; g < d.length; g++) e = d[g], h = e.indexOf("="), 0 < h && (a = unescape(e.substring(0, h)), V[a] === r && (V[a] = unescape(e.substring(h + 1))));
return V
}
};
h.defer = function(a, b) {
var c;
C++;
c = n(function() {
delete s[c];
e(a)
}, b || 0);
s[c] = !0;
return c
};
h.defer.cancel = function(a) {
return s[a] ? (delete s[a], p(a), e(w), !0) : !1
}
}
function fd() {
this.$get = ["$window", "$log", "$sniffer", "$document", function(b, a, c, d) {
return new ed(b, d, a, c)
}]
}
function gd() {
this.$get = function() {
function b(b, d) {
function e(a) {
a != n && (p ? p == a && (p = a.n) : p = a, g(a.n, a.p), g(a, n), n = a, n.n = null)
}
function g(a, b) {
a != b && (a && (a.p = b), b && (b.n = a))
}
if (b in a) throw F("$cacheFactory")("iid", b);
var f = 0,
h = t({}, d, {
id: b
}),
m = {},
k = d && d.capacity || Number.MAX_VALUE,
l = {},
n = null,
p = null;
return a[b] = {
put: function(a, b) {
var c = l[a] || (l[a] = {
key: a
});
e(c);
if (!z(b)) return a in m || f++, m[a] = b, f > k && this.remove(p.key), b
},
get: function(a) {
var b = l[a];
if (b) return e(b), m[a]
},
remove: function(a) {
var b = l[a];
b && (b == n && (n = b.p), b == p && (p = b.n), g(b.n, b.p), delete l[a], delete m[a], f--)
},
removeAll: function() {
m = {};
f = 0;
l = {};
n = p = null
},
destroy: function() {
l = h = m = null;
delete a[b]
},
info: function() {
return t({}, h, {
size: f
})
}
}
}
var a = {};
b.info = function() {
var b = {};
q(a, function(a, e) {
b[e] = a.info()
});
return b
};
b.get = function(b) {
return a[b]
};
return b
}
}
function hd() {
this.$get = ["$cacheFactory", function(b) {
return b("templates")
}]
}
function jc(b, a) {
var c = {},
d = "Directive",
e = /^\s*directive\:\s*([\d\w\-_]+)\s+(.*)$/,
g = /(([\d\w\-_]+)(?:\:([^;]+))?;?)/,
f = /^(on[a-z]+|formaction)$/;
this.directive = function m(a, e) {
xa(a, "directive");
D(a) ? (ub(e, "directiveFactory"), c.hasOwnProperty(a) || (c[a] = [], b.factory(a + d, ["$injector", "$exceptionHandler", function(b, d) {
var e = [];
q(c[a], function(c, g) {
try {
var f = b.invoke(c);
L(f) ? f = {
compile: $(f)
} : !f.compile && f.link && (f.compile = $(f.link));
f.priority = f.priority || 0;
f.index = g;
f.name = f.name || a;
f.require = f.require || f.controller && f.name;
f.restrict = f.restrict || "A";
e.push(f)
} catch (m) {
d(m)
}
});
return e
}])), c[a].push(e)) : q(a, Qb(m));
return this
};
this.aHrefSanitizationWhitelist = function(b) {
return B(b) ? (a.aHrefSanitizationWhitelist(b), this) : a.aHrefSanitizationWhitelist()
};
this.imgSrcSanitizationWhitelist = function(b) {
return B(b) ? (a.imgSrcSanitizationWhitelist(b), this) : a.imgSrcSanitizationWhitelist()
};
this.$get = ["$injector", "$interpolate", "$exceptionHandler", "$http", "$templateCache", "$parse", "$controller", "$rootScope", "$document", "$sce", "$animate", "$$sanitizeUri", function(a, b, l, n, p, s, C, y, E, u, R, H) {
function v(a, b, c, d, e) {
a instanceof A || (a = A(a));
q(a, function(b, c) {
3 == b.nodeType && b.nodeValue.match(/\S+/) && (a[c] = A(b).wrap("<span></span>").parent()[0])
});
var g = N(a, b, a, c, d, e);
ha(a, "ng-scope");
return function(b, c, d) {
ub(b, "scope");
var e = c ? Ga.clone.call(a) : a;
q(d, function(a, b) {
e.data("$" + b + "Controller", a)
});
d = 0;
for (var f = e.length; d < f; d++) {
var m = e[d].nodeType;
1 !== m && 9 !== m || e.eq(d).data("$scope", b)
}
c && c(e, b);
g && g(b, e, e);
return e
}
}
function ha(a, b) {
try {
a.addClass(b)
} catch (c) {}
}
function N(a, b, c, d, e, g) {
function f(a, c, d, e) {
var g, k, s, l, n, p, I;
g = c.length;
var C = Array(g);
for (n = 0; n < g; n++) C[n] = c[n];
I = n = 0;
for (p = m.length; n < p; I++) k = C[I], c = m[n++], g = m[n++], s = A(k), c ? (c.scope ? (l = a.$new(), s.data("$scope", l)) : l = a, (s = c.transclude) || !e && b ? c(g, l, k, d, V(a, s || b)) : c(g, l, k, d, e)) : g && g(a, k.childNodes, r, e)
}
for (var m = [], k, s, l, n, p = 0; p < a.length; p++) k = new Fb, s = J(a[p], [], k, 0 === p ? d : r, e), (g = s.length ? ia(s, a[p], k, b, c, null, [], [], g) : null) && g.scope && ha(A(a[p]), "ng-scope"), k = g && g.terminal || !(l = a[p].childNodes) || !l.length ? null : N(l, g ? g.transclude : b), m.push(g, k), n = n || g || k, g = null;
return n ? f : null
}
function V(a, b) {
return function(c, d, e) {
var g = !1;
c || (c = a.$new(), g = c.$$transcluded = !0);
d = b(c, d, e);
if (g) d.on("$destroy", cb(c, c.$destroy));
return d
}
}
function J(a, b, c, d, f) {
var k = c.$attr,
m;
switch (a.nodeType) {
case 1:
T(b, ma(Ha(a).toLowerCase()), "E", d, f);
var s, l, n;
m = a.attributes;
for (var p = 0, C = m && m.length; p < C; p++) {
var y = !1,
R = !1;
s = m[p];
if (!M || 8 <= M || s.specified) {
l = s.name;
n = ma(l);
W.test(n) && (l = db(n.substr(6), "-"));
var v = n.replace(/(Start|End)$/, "");
n === v + "Start" && (y = l, R = l.substr(0, l.length - 5) + "end", l = l.substr(0, l.length - 6));
n = ma(l.toLowerCase());
k[n] = l;
c[n] = s = ba(s.value);
fc(a, n) && (c[n] = !0);
S(a, b, s, n);
T(b, n, "A", d, f, y, R)
}
}
a = a.className;
if (D(a) && "" !== a)
for (; m = g.exec(a);) n = ma(m[2]), T(b, n, "C", d, f) && (c[n] = ba(m[3])), a = a.substr(m.index + m[0].length);
break;
case 3:
F(b, a.nodeValue);
break;
case 8:
try {
if (m = e.exec(a.nodeValue)) n = ma(m[1]), T(b, n, "M", d, f) && (c[n] = ba(m[2]))
} catch (E) {}
}
b.sort(z);
return b
}
function ca(a, b, c) {
var d = [],
e = 0;
if (b && a.hasAttribute && a.hasAttribute(b)) {
do {
if (!a) throw ja("uterdir", b, c);
1 == a.nodeType && (a.hasAttribute(b) && e++, a.hasAttribute(c) && e--);
d.push(a);
a = a.nextSibling
} while (0 < e)
} else d.push(a);
return A(d)
}
function P(a, b, c) {
return function(d, e, g, f, m) {
e = ca(e[0], b, c);
return a(d, e, g, f, m)
}
}
function ia(a, c, d, e, g, f, m, n, p) {
function y(a, b, c, d) {
if (a) {
c && (a = P(a, c, d));
a.require = G.require;
if (H === G || G.$$isolateScope) a = kc(a, {
isolateScope: !0
});
m.push(a)
}
if (b) {
c && (b = P(b, c, d));
b.require = G.require;
if (H === G || G.$$isolateScope) b = kc(b, {
isolateScope: !0
});
n.push(b)
}
}
function R(a, b, c) {
var d, e = "data",
g = !1;
if (D(a)) {
for (;
"^" == (d = a.charAt(0)) || "?" == d;) a = a.substr(1), "^" == d && (e = "inheritedData"), g = g || "?" == d;
d = null;
c && "data" === e && (d = c[a]);
d = d || b[e]("$" + a + "Controller");
if (!d && !g) throw ja("ctreq", a, da)
} else K(a) && (d = [], q(a, function(a) {
d.push(R(a, b, c))
}));
return d
}
function E(a, e, g, f, p) {
function y(a, b) {
var c;
2 > arguments.length && (b = a, a = r);
z && (c = ca);
return p(a, b, c)
}
var I, v, N, u, P, J, ca = {},
hb;
I = c === g ? d : Tb(d, new Fb(A(g), d.$attr));
v = I.$$element;
if (H) {
var T = /^\s*([@=&])(\??)\s*(\w*)\s*$/;
f = A(g);
J = e.$new(!0);
ia && ia === H.$$originalDirective ? f.data("$isolateScope", J) : f.data("$isolateScopeNoTemplate", J);
ha(f, "ng-isolate-scope");
q(H.scope, function(a, c) {
var d = a.match(T) || [],
g = d[3] || c,
f = "?" == d[2],
d = d[1],
m, l, n, p;
J.$$isolateBindings[c] = d + g;
switch (d) {
case "@":
I.$observe(g, function(a) {
J[c] = a
});
I.$$observers[g].$$scope = e;
I[g] && (J[c] = b(I[g])(e));
break;
case "=":
if (f && !I[g]) break;
l = s(I[g]);
p = l.literal ? ua : function(a, b) {
return a === b
};
n = l.assign || function() {
m = J[c] = l(e);
throw ja("nonassign", I[g], H.name)
};
m = J[c] = l(e);
J.$watch(function() {
var a = l(e);
p(a, J[c]) || (p(a, m) ? n(e, a = J[c]) : J[c] = a);
return m = a
}, null, l.literal);
break;
case "&":
l = s(I[g]);
J[c] = function(a) {
return l(e, a)
};
break;
default:
throw ja("iscp", H.name, c, a)
}
})
}
hb = p && y;
V && q(V, function(a) {
var b = {
$scope: a === H || a.$$isolateScope ? J : e,
$element: v,
$attrs: I,
$transclude: hb
},
c;
P = a.controller;
"@" == P && (P = I[a.name]);
c = C(P, b);
ca[a.name] = c;
z || v.data("$" + a.name + "Controller", c);
a.controllerAs && (b.$scope[a.controllerAs] = c)
});
f = 0;
for (N = m.length; f < N; f++) try {
u = m[f], u(u.isolateScope ? J : e, v, I, u.require && R(u.require, v, ca), hb)
} catch (G) {
l(G, ga(v))
}
f = e;
H && (H.template || null === H.templateUrl) && (f = J);
a && a(f, g.childNodes, r, p);
for (f = n.length - 1; 0 <= f; f--) try {
u = n[f], u(u.isolateScope ? J : e, v, I, u.require && R(u.require, v, ca), hb)
} catch (B) {
l(B, ga(v))
}
}
p = p || {};
var N = -Number.MAX_VALUE,
u, V = p.controllerDirectives,
H = p.newIsolateScopeDirective,
ia = p.templateDirective;
p = p.nonTlbTranscludeDirective;
for (var T = !1, z = !1, t = d.$$element = A(c), G, da, U, F = e, O, M = 0, na = a.length; M < na; M++) {
G = a[M];
var Wa = G.$$start,
S = G.$$end;
Wa && (t = ca(c, Wa, S));
U = r;
if (N > G.priority) break;
if (U = G.scope) u = u || G, G.templateUrl || (x("new/isolated scope", H, G, t), X(U) && (H = G));
da = G.name;
!G.templateUrl && G.controller && (U = G.controller, V = V || {}, x("'" + da + "' controller", V[da], G, t), V[da] = G);
if (U = G.transclude) T = !0, G.$$tlb || (x("transclusion", p, G, t), p = G), "element" == U ? (z = !0, N = G.priority, U = ca(c, Wa, S), t = d.$$element = A(Q.createComment(" " + da + ": " + d[da] + " ")), c = t[0], ib(g, A(va.call(U, 0)), c), F = v(U, e, N, f && f.name, {
nonTlbTranscludeDirective: p
})) : (U = A(Ab(c)).contents(), t.empty(), F = v(U, e));
if (G.template)
if (x("template", ia, G, t), ia = G, U = L(G.template) ? G.template(t, d) : G.template, U = Y(U), G.replace) {
f = G;
U = A("<div>" + ba(U) + "</div>").contents();
c = U[0];
if (1 != U.length || 1 !== c.nodeType) throw ja("tplrt", da, "");
ib(g, t, c);
na = {
$attr: {}
};
U = J(c, [], na);
var W = a.splice(M + 1, a.length - (M + 1));
H && ic(U);
a = a.concat(U).concat(W);
B(d, na);
na = a.length
} else t.html(U);
if (G.templateUrl) x("template", ia, G, t), ia = G, G.replace && (f = G), E = w(a.splice(M, a.length - M), t, d, g, F, m, n, {
controllerDirectives: V,
newIsolateScopeDirective: H,
templateDirective: ia,
nonTlbTranscludeDirective: p
}), na = a.length;
else if (G.compile) try {
O = G.compile(t, d, F), L(O) ? y(null, O, Wa, S) : O && y(O.pre, O.post, Wa, S)
} catch (Z) {
l(Z, ga(t))
}
G.terminal && (E.terminal = !0, N = Math.max(N, G.priority))
}
E.scope = u && !0 === u.scope;
E.transclude = T && F;
return E
}
function ic(a) {
for (var b = 0, c = a.length; b < c; b++) a[b] = Sb(a[b], {
$$isolateScope: !0
})
}
function T(b, e, g, f, k, s, n) {
if (e === k) return null;
k = null;
if (c.hasOwnProperty(e)) {
var p;
e = a.get(e + d);
for (var C = 0, y = e.length; C < y; C++) try {
p = e[C], (f === r || f > p.priority) && -1 != p.restrict.indexOf(g) && (s && (p = Sb(p, {
$$start: s,
$$end: n
})), b.push(p), k = p)
} catch (v) {
l(v)
}
}
return k
}
function B(a, b) {
var c = b.$attr,
d = a.$attr,
e = a.$$element;
q(a, function(d, e) {
"$" != e.charAt(0) && (b[e] && (d += ("style" === e ? ";" : " ") + b[e]), a.$set(e, d, !0, c[e]))
});
q(b, function(b, g) {
"class" == g ? (ha(e, b), a["class"] = (a["class"] ? a["class"] + " " : "") + b) : "style" == g ? (e.attr("style", e.attr("style") + ";" + b), a.style = (a.style ? a.style + ";" : "") + b) : "$" == g.charAt(0) || a.hasOwnProperty(g) || (a[g] = b, d[g] = c[g])
})
}
function w(a, b, c, d, e, g, f, m) {
var k = [],
s, l, C = b[0],
y = a.shift(),
v = t({}, y, {
templateUrl: null,
transclude: null,
replace: null,
$$originalDirective: y
}),
R = L(y.templateUrl) ? y.templateUrl(b, c) : y.templateUrl;
b.empty();
n.get(u.getTrustedResourceUrl(R), {
cache: p
}).success(function(n) {
var p, E;
n = Y(n);
if (y.replace) {
n = A("<div>" + ba(n) + "</div>").contents();
p = n[0];
if (1 != n.length || 1 !== p.nodeType) throw ja("tplrt", y.name, R);
n = {
$attr: {}
};
ib(d, b, p);
var u = J(p, [], n);
X(y.scope) && ic(u);
a = u.concat(a);
B(c, n)
} else p = C, b.html(n);
a.unshift(v);
s = ia(a, p, c, e, b, y, g, f, m);
q(d, function(a, c) {
a == p && (d[c] = b[0])
});
for (l = N(b[0].childNodes, e); k.length;) {
n = k.shift();
E = k.shift();
var H = k.shift(),
ha = k.shift(),
u = b[0];
E !== C && (u = Ab(p), ib(H, A(E), u));
E = s.transclude ? V(n, s.transclude) : ha;
s(l, n, u, d, E)
}
k = null
}).error(function(a, b, c, d) {
throw ja("tpload", d.url)
});
return function(a, b, c, d, e) {
k ? (k.push(b), k.push(c), k.push(d), k.push(e)) : s(l, b, c, d, e)
}
}
function z(a, b) {
var c = b.priority - a.priority;
return 0 !== c ? c : a.name !== b.name ? a.name < b.name ? -1 : 1 : a.index - b.index
}
function x(a, b, c, d) {
if (b) throw ja("multidir", b.name, c.name, a, ga(d))
}
function F(a, c) {
var d = b(c, !0);
d && a.push({
priority: 0,
compile: $(function(a, b) {
var c = b.parent(),
e = c.data("$binding") || [];
e.push(d);
ha(c.data("$binding", e), "ng-binding");
a.$watch(d, function(a) {
b[0].nodeValue = a
})
})
})
}
function O(a, b) {
if ("srcdoc" == b) return u.HTML;
var c = Ha(a);
if ("xlinkHref" == b || "FORM" == c && "action" == b || "IMG" != c && ("src" == b || "ngSrc" == b)) return u.RESOURCE_URL
}
function S(a, c, d, e) {
var g = b(d, !0);
if (g) {
if ("multiple" === e && "SELECT" === Ha(a)) throw ja("selmulti", ga(a));
c.push({
priority: 100,
compile: function() {
return {
pre: function(c, d, m) {
d = m.$$observers || (m.$$observers = {});
if (f.test(e)) throw ja("nodomevents");
if (g = b(m[e], !0, O(a, e))) m[e] = g(c), (d[e] || (d[e] = [])).$$inter = !0, (m.$$observers && m.$$observers[e].$$scope || c).$watch(g, function(a, b) {
"class" === e && a != b ? m.$updateClass(a, b) : m.$set(e, a)
})
}
}
}
})
}
}
function ib(a, b, c) {
var d = b[0],
e = b.length,
g = d.parentNode,
f, m;
if (a)
for (f = 0, m = a.length; f < m; f++)
if (a[f] == d) {
a[f++] = c;
m = f + e - 1;
for (var k = a.length; f < k; f++, m++) m < k ? a[f] = a[m] : delete a[f];
a.length -= e - 1;
break
} g && g.replaceChild(c, d);
a = Q.createDocumentFragment();
a.appendChild(d);
c[A.expando] = d[A.expando];
d = 1;
for (e = b.length; d < e; d++) g = b[d], A(g).remove(), a.appendChild(g), delete b[d];
b[0] = c;
b.length = 1
}
function kc(a, b) {
return t(function() {
return a.apply(null, arguments)
}, a, b)
}
var Fb = function(a, b) {
this.$$element = a;
this.$attr = b || {}
};
Fb.prototype = {
$normalize: ma,
$addClass: function(a) {
a && 0 < a.length && R.addClass(this.$$element, a)
},
$removeClass: function(a) {
a && 0 < a.length && R.removeClass(this.$$element, a)
},
$updateClass: function(a, b) {
this.$removeClass(lc(b, a));
this.$addClass(lc(a, b))
},
$set: function(a, b, c, d) {
var e = fc(this.$$element[0], a);
e && (this.$$element.prop(a, b), d = e);
this[a] = b;
d ? this.$attr[a] = d : (d = this.$attr[a]) || (this.$attr[a] = d = db(a, "-"));
e = Ha(this.$$element);
if ("A" === e && "href" === a || "IMG" === e && "src" === a) this[a] = b = H(b, "src" === a);
!1 !== c && (null === b || b === r ? this.$$element.removeAttr(d) : this.$$element.attr(d, b));
(c = this.$$observers) && q(c[a], function(a) {
try {
a(b)
} catch (c) {
l(c)
}
})
},
$observe: function(a, b) {
var c = this,
d = c.$$observers || (c.$$observers = {}),
e = d[a] || (d[a] = []);
e.push(b);
y.$evalAsync(function() {
e.$$inter || b(c[a])
});
return b
}
};
var da = b.startSymbol(),
na = b.endSymbol(),
Y = "{{" == da || "}}" == na ? Ba : function(a) {
return a.replace(/\{\{/g, da).replace(/}}/g, na)
},
W = /^ngAttr[A-Z]/;
return v
}]
}
function ma(b) {
return Ra(b.replace(id, ""))
}
function lc(b, a) {
var c = "",
d = b.split(/\s+/),
e = a.split(/\s+/),
g = 0;
a: for (; g < d.length; g++) {
for (var f = d[g], h = 0; h < e.length; h++)
if (f == e[h]) continue a;
c += (0 < c.length ? " " : "") + f
}
return c
}
function jd() {
var b = {},
a = /^(\S+)(\s+as\s+(\w+))?$/;
this.register = function(a, d) {
xa(a, "controller");
X(a) ? t(b, a) : b[a] = d
};
this.$get = ["$injector", "$window", function(c, d) {
return function(e, g) {
var f, h, m;
D(e) && (f = e.match(a), h = f[1], m = f[3], e = b.hasOwnProperty(h) ? b[h] : vb(g.$scope, h, !0) || vb(d, h, !0), Qa(e, h, !0));
f = c.instantiate(e, g);
if (m) {
if (!g || "object" != typeof g.$scope) throw F("$controller")("noscp", h || e.name, m);
g.$scope[m] = f
}
return f
}
}]
}
function kd() {
this.$get = ["$window", function(b) {
return A(b.document)
}]
}
function ld() {
this.$get = ["$log", function(b) {
return function(a, c) {
b.error.apply(b, arguments)
}
}]
}
function mc(b) {
var a = {},
c, d, e;
if (!b) return a;
q(b.split("\n"), function(b) {
e = b.indexOf(":");
c = x(ba(b.substr(0, e)));
d = ba(b.substr(e + 1));
c && (a[c] = a[c] ? a[c] + (", " + d) : d)
});
return a
}
function nc(b) {
var a = X(b) ? b : r;
return function(c) {
a || (a = mc(b));
return c ? a[x(c)] || null : a
}
}
function oc(b, a, c) {
if (L(c)) return c(b, a);
q(c, function(c) {
b = c(b, a)
});
return b
}
function md() {
var b = /^\s*(\[|\{[^\{])/,
a = /[\}\]]\s*$/,
c = /^\)\]\}',?\n/,
d = {
"Content-Type": "application/json;charset=utf-8"
},
e = this.defaults = {
transformResponse: [function(d) {
D(d) && (d = d.replace(c, ""), b.test(d) && a.test(d) && (d = Vb(d)));
return d
}],
transformRequest: [function(a) {
return X(a) && "[object File]" !== Ma.call(a) ? qa(a) : a
}],
headers: {
common: {
Accept: "application/json, text/plain, */*"
},
post: aa(d),
put: aa(d),
patch: aa(d)
},
xsrfCookieName: "XSRF-TOKEN",
xsrfHeaderName: "X-XSRF-TOKEN"
},
g = this.interceptors = [],
f = this.responseInterceptors = [];
this.$get = ["$httpBackend", "$browser", "$cacheFactory", "$rootScope", "$q", "$injector", function(a, b, c, d, n, p) {
function s(a) {
function c(a) {
var b = t({}, a, {
data: oc(a.data, a.headers, d.transformResponse)
});
return 200 <= a.status && 300 > a.status ? b : n.reject(b)
}
var d = {
transformRequest: e.transformRequest,
transformResponse: e.transformResponse
},
g = function(a) {
function b(a) {
var c;
q(a, function(b, d) {
L(b) && (c = b(), null != c ? a[d] = c : delete a[d])
})
}
var c = e.headers,
d = t({}, a.headers),
g, f, c = t({}, c.common, c[x(a.method)]);
b(c);
b(d);
a: for (g in c) {
a = x(g);
for (f in d)
if (x(f) === a) continue a;
d[g] = c[g]
}
return d
}(a);
t(d, a);
d.headers = g;
d.method = Ia(d.method);
(a = Gb(d.url) ? b.cookies()[d.xsrfCookieName || e.xsrfCookieName] : r) && (g[d.xsrfHeaderName || e.xsrfHeaderName] = a);
var f = [function(a) {
g = a.headers;
var b = oc(a.data, nc(g), a.transformRequest);
z(a.data) && q(g, function(a, b) {
"content-type" === x(b) && delete g[b]
});
z(a.withCredentials) && !z(e.withCredentials) && (a.withCredentials = e.withCredentials);
return C(a, b, g).then(c, c)
}, r],
h = n.when(d);
for (q(u, function(a) {
(a.request || a.requestError) && f.unshift(a.request, a.requestError);
(a.response || a.responseError) && f.push(a.response, a.responseError)
}); f.length;) {
a = f.shift();
var k = f.shift(),
h = h.then(a, k)
}
h.success = function(a) {
h.then(function(b) {
a(b.data, b.status, b.headers, d)
});
return h
};
h.error = function(a) {
h.then(null, function(b) {
a(b.data, b.status, b.headers, d)
});
return h
};
return h
}
function C(b, c, g) {
function f(a, b, c) {
u && (200 <= a && 300 > a ? u.put(r, [a, b, mc(c)]) : u.remove(r));
m(b, a, c);
d.$$phase || d.$apply()
}
function m(a, c, d) {
c = Math.max(c, 0);
(200 <= c && 300 > c ? p.resolve : p.reject)({
data: a,
status: c,
headers: nc(d),
config: b
})
}
function k() {
var a = bb(s.pendingRequests, b); - 1 !== a && s.pendingRequests.splice(a, 1)
}
var p = n.defer(),
C = p.promise,
u, q, r = y(b.url, b.params);
s.pendingRequests.push(b);
C.then(k, k);
(b.cache || e.cache) && (!1 !== b.cache && "GET" == b.method) && (u = X(b.cache) ? b.cache : X(e.cache) ? e.cache : E);
if (u)
if (q = u.get(r), B(q)) {
if (q.then) return q.then(k, k), q;
K(q) ? m(q[1], q[0], aa(q[2])) : m(q, 200, {})
} else u.put(r, C);
z(q) && a(b.method, r, c, f, g, b.timeout, b.withCredentials, b.responseType);
return C
}
function y(a, b) {
if (!b) return a;
var c = [];
Pc(b, function(a, b) {
null === a || z(a) || (K(a) || (a = [a]), q(a, function(a) {
X(a) && (a = qa(a));
c.push(wa(b) + "=" + wa(a))
}))
});
return a + (-1 == a.indexOf("?") ? "?" : "&") + c.join("&")
}
var E = c("$http"),
u = [];
q(g, function(a) {
u.unshift(D(a) ? p.get(a) : p.invoke(a))
});
q(f, function(a, b) {
var c = D(a) ? p.get(a) : p.invoke(a);
u.splice(b, 0, {
response: function(a) {
return c(n.when(a))
},
responseError: function(a) {
return c(n.reject(a))
}
})
});
s.pendingRequests = [];
(function(a) {
q(arguments, function(a) {
s[a] = function(b, c) {
return s(t(c || {}, {
method: a,
url: b
}))
}
})
})("get", "delete", "head", "jsonp");
(function(a) {
q(arguments, function(a) {
s[a] = function(b, c, d) {
return s(t(d || {}, {
method: a,
url: b,
data: c
}))
}
})
})("post", "put");
s.defaults = e;
return s
}]
}
function nd(b) {
return 8 >= M && "patch" === x(b) ? new ActiveXObject("Microsoft.XMLHTTP") : new Z.XMLHttpRequest
}
function od() {
this.$get = ["$browser", "$window", "$document", function(b, a, c) {
return pd(b, nd, b.defer, a.angular.callbacks, c[0])
}]
}
function pd(b, a, c, d, e) {
function g(a, b) {
var c = e.createElement("script"),
d = function() {
c.onreadystatechange = c.onload = c.onerror = null;
e.body.removeChild(c);
b && b()
};
c.type = "text/javascript";
c.src = a;
M && 8 >= M ? c.onreadystatechange = function() {
/loaded|complete/.test(c.readyState) && d()
} : c.onload = c.onerror = function() {
d()
};
e.body.appendChild(c);
return d
}
var f = -1;
return function(e, m, k, l, n, p, s, C) {
function y() {
u = f;
H && H();
v && v.abort()
}
function E(a, d, e, g) {
r && c.cancel(r);
H = v = null;
d = 0 === d ? e ? 200 : 404 : d;
a(1223 == d ? 204 : d, e, g);
b.$$completeOutstandingRequest(w)
}
var u;
b.$$incOutstandingRequestCount();
m = m || b.url();
if ("jsonp" == x(e)) {
var R = "_" + (d.counter++).toString(36);
d[R] = function(a) {
d[R].data = a
};
var H = g(m.replace("JSON_CALLBACK", "angular.callbacks." + R), function() {
d[R].data ? E(l, 200, d[R].data) : E(l, u || -2);
d[R] = Ca.noop
})
} else {
var v = a(e);
v.open(e, m, !0);
q(n, function(a, b) {
B(a) && v.setRequestHeader(b, a)
});
v.onreadystatechange = function() {
if (v && 4 == v.readyState) {
var a = null,
b = null;
u !== f && (a = v.getAllResponseHeaders(), b = "response" in v ? v.response : v.responseText);
E(l, u || v.status, b, a)
}
};
s && (v.withCredentials = !0);
C && (v.responseType = C);
v.send(k || null)
}
if (0 < p) var r = c(y, p);
else p && p.then && p.then(y)
}
}
function qd() {
var b = "{{",
a = "}}";
this.startSymbol = function(a) {
return a ? (b = a, this) : b
};
this.endSymbol = function(b) {
return b ? (a = b, this) : a
};
this.$get = ["$parse", "$exceptionHandler", "$sce", function(c, d, e) {
function g(g, k, l) {
for (var n, p, s = 0, C = [], y = g.length, E = !1, u = []; s < y;) - 1 != (n = g.indexOf(b, s)) && -1 != (p = g.indexOf(a, n + f)) ? (s != n && C.push(g.substring(s, n)), C.push(s = c(E = g.substring(n + f, p))), s.exp = E, s = p + h, E = !0) : (s != y && C.push(g.substring(s)), s = y);
(y = C.length) || (C.push(""), y = 1);
if (l && 1 < C.length) throw pc("noconcat", g);
if (!k || E) return u.length = y, s = function(a) {
try {
for (var b = 0, c = y, f; b < c; b++) "function" == typeof(f = C[b]) && (f = f(a), f = l ? e.getTrusted(l, f) : e.valueOf(f), null === f || z(f) ? f = "" : "string" != typeof f && (f = qa(f))), u[b] = f;
return u.join("")
} catch (h) {
a = pc("interr", g, h.toString()), d(a)
}
}, s.exp = g, s.parts = C, s
}
var f = b.length,
h = a.length;
g.startSymbol = function() {
return b
};
g.endSymbol = function() {
return a
};
return g
}]
}
function rd() {
this.$get = ["$rootScope", "$window", "$q", function(b, a, c) {
function d(d, f, h, m) {
var k = a.setInterval,
l = a.clearInterval,
n = c.defer(),
p = n.promise,
s = 0,
C = B(m) && !m;
h = B(h) ? h : 0;
p.then(null, null, d);
p.$$intervalId = k(function() {
n.notify(s++);
0 < h && s >= h && (n.resolve(s), l(p.$$intervalId), delete e[p.$$intervalId]);
C || b.$apply()
}, f);
e[p.$$intervalId] = n;
return p
}
var e = {};
d.cancel = function(a) {
return a && a.$$intervalId in e ? (e[a.$$intervalId].reject("canceled"), clearInterval(a.$$intervalId), delete e[a.$$intervalId], !0) : !1
};
return d
}]
}
function sd() {
this.$get = function() {
return {
id: "en-us",
NUMBER_FORMATS: {
DECIMAL_SEP: ".",
GROUP_SEP: ",",
PATTERNS: [{
minInt: 1,
minFrac: 0,
maxFrac: 3,
posPre: "",
posSuf: "",
negPre: "-",
negSuf: "",
gSize: 3,
lgSize: 3
}, {
minInt: 1,
minFrac: 2,
maxFrac: 2,
posPre: "¤",
posSuf: "",
negPre: "(¤",
negSuf: ")",
gSize: 3,
lgSize: 3
}],
CURRENCY_SYM: "$"
},
DATETIME_FORMATS: {
MONTH: "January February March April May June July August September October November December".split(" "),
SHORTMONTH: "Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),
DAY: "Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),
SHORTDAY: "Sun Mon Tue Wed Thu Fri Sat".split(" "),
AMPMS: ["AM", "PM"],
medium: "MMM d, y h:mm:ss a",
"short": "M/d/yy h:mm a",
fullDate: "EEEE, MMMM d, y",
longDate: "MMMM d, y",
mediumDate: "MMM d, y",
shortDate: "M/d/yy",
mediumTime: "h:mm:ss a",
shortTime: "h:mm a"
},
pluralCat: function(b) {
return 1 === b ? "one" : "other"
}
}
}
}
function qc(b) {
b = b.split("/");
for (var a = b.length; a--;) b[a] = tb(b[a]);
return b.join("/")
}
function rc(b, a, c) {
b = ya(b, c);
a.$$protocol = b.protocol;
a.$$host = b.hostname;
a.$$port = S(b.port) || td[b.protocol] || null
}
function sc(b, a, c) {
var d = "/" !== b.charAt(0);
d && (b = "/" + b);
b = ya(b, c);
a.$$path = decodeURIComponent(d && "/" === b.pathname.charAt(0) ? b.pathname.substring(1) : b.pathname);
a.$$search = Xb(b.search);
a.$$hash = decodeURIComponent(b.hash);
a.$$path && "/" != a.$$path.charAt(0) && (a.$$path = "/" + a.$$path)
}
function oa(b, a) {
if (0 === a.indexOf(b)) return a.substr(b.length)
}
function Xa(b) {
var a = b.indexOf("#");
return -1 == a ? b : b.substr(0, a)
}
function Hb(b) {
return b.substr(0, Xa(b).lastIndexOf("/") + 1)
}
function tc(b, a) {
this.$$html5 = !0;
a = a || "";
var c = Hb(b);
rc(b, this, b);
this.$$parse = function(a) {
var e = oa(c, a);
if (!D(e)) throw Ib("ipthprfx", a, c);
sc(e, this, b);
this.$$path || (this.$$path = "/");
this.$$compose()
};
this.$$compose = function() {
var a = Yb(this.$$search),
b = this.$$hash ? "#" + tb(this.$$hash) : "";
this.$$url = qc(this.$$path) + (a ? "?" + a : "") + b;
this.$$absUrl = c + this.$$url.substr(1)
};
this.$$rewrite = function(d) {
var e;
if ((e = oa(b, d)) !== r) return d = e, (e = oa(a, e)) !== r ? c + (oa("/", e) || e) : b + d;
if ((e = oa(c, d)) !== r) return c + e;
if (c == d + "/") return c
}
}
function Jb(b, a) {
var c = Hb(b);
rc(b, this, b);
this.$$parse = function(d) {
var e = oa(b, d) || oa(c, d),
e = "#" == e.charAt(0) ? oa(a, e) : this.$$html5 ? e : "";
if (!D(e)) throw Ib("ihshprfx", d, a);
sc(e, this, b);
d = this.$$path;
var g = /^\/?.*?:(\/.*)/;
0 === e.indexOf(b) && (e = e.replace(b, ""));
g.exec(e) || (d = (e = g.exec(d)) ? e[1] : d);
this.$$path = d;
this.$$compose()
};
this.$$compose = function() {
var c = Yb(this.$$search),
e = this.$$hash ? "#" + tb(this.$$hash) : "";
this.$$url = qc(this.$$path) + (c ? "?" + c : "") + e;
this.$$absUrl = b + (this.$$url ? a + this.$$url : "")
};
this.$$rewrite = function(a) {
if (Xa(b) == Xa(a)) return a
}
}
function uc(b, a) {
this.$$html5 = !0;
Jb.apply(this, arguments);
var c = Hb(b);
this.$$rewrite = function(d) {
var e;
if (b == Xa(d)) return d;
if (e = oa(c, d)) return b + a + e;
if (c === d + "/") return c
}
}
function jb(b) {
return function() {
return this[b]
}
}
function vc(b, a) {
return function(c) {
if (z(c)) return this[b];
this[b] = a(c);
this.$$compose();
return this
}
}
function ud() {
var b = "",
a = !1;
this.hashPrefix = function(a) {
return B(a) ? (b = a, this) : b
};
this.html5Mode = function(b) {
return B(b) ? (a = b, this) : a
};
this.$get = ["$rootScope", "$browser", "$sniffer", "$rootElement", function(c, d, e, g) {
function f(a) {
c.$broadcast("$locationChangeSuccess", h.absUrl(), a)
}
var h, m = d.baseHref(),
k = d.url();
a ? (m = k.substring(0, k.indexOf("/", k.indexOf("//") + 2)) + (m || "/"), e = e.history ? tc : uc) : (m = Xa(k), e = Jb);
h = new e(m, "#" + b);
h.$$parse(h.$$rewrite(k));
g.on("click", function(a) {
if (!a.ctrlKey && !a.metaKey && 2 != a.which) {
for (var b = A(a.target);
"a" !== x(b[0].nodeName);)
if (b[0] === g[0] || !(b = b.parent())[0]) return;
var e = b.prop("href");
X(e) && "[object SVGAnimatedString]" === e.toString() && (e = ya(e.animVal).href);
var f = h.$$rewrite(e);
e && (!b.attr("target") && f && !a.isDefaultPrevented()) && (a.preventDefault(), f != d.url() && (h.$$parse(f), c.$apply(), Z.angular["ff-684208-preventDefault"] = !0))
}
});
h.absUrl() != k && d.url(h.absUrl(), !0);
d.onUrlChange(function(a) {
h.absUrl() != a && (c.$evalAsync(function() {
var b = h.absUrl();
h.$$parse(a);
c.$broadcast("$locationChangeStart", a, b).defaultPrevented ? (h.$$parse(b), d.url(b)) : f(b)
}), c.$$phase || c.$digest())
});
var l = 0;
c.$watch(function() {
var a = d.url(),
b = h.$$replace;
l && a == h.absUrl() || (l++, c.$evalAsync(function() {
c.$broadcast("$locationChangeStart", h.absUrl(), a).defaultPrevented ? h.$$parse(a) : (d.url(h.absUrl(), b), f(a))
}));
h.$$replace = !1;
return l
});
return h
}]
}
function vd() {
var b = !0,
a = this;
this.debugEnabled = function(a) {
return B(a) ? (b = a, this) : b
};
this.$get = ["$window", function(c) {
function d(a) {
a instanceof Error && (a.stack ? a = a.message && -1 === a.stack.indexOf(a.message) ? "Error: " + a.message + "\n" + a.stack : a.stack : a.sourceURL && (a = a.message + "\n" + a.sourceURL + ":" + a.line));
return a
}
function e(a) {
var b = c.console || {},
e = b[a] || b.log || w;
a = !1;
try {
a = !!e.apply
} catch (m) {}
return a ? function() {
var a = [];
q(arguments, function(b) {
a.push(d(b))
});
return e.apply(b, a)
} : function(a, b) {
e(a, null == b ? "" : b)
}
}
return {
log: e("log"),
info: e("info"),
warn: e("warn"),
error: e("error"),
debug: function() {
var c = e("debug");
return function() {
b && c.apply(a, arguments)
}
}()
}
}]
}
function ea(b, a) {
if ("constructor" === b) throw za("isecfld", a);
return b
}
function Ya(b, a) {
if (b) {
if (b.constructor === b) throw za("isecfn", a);
if (b.document && b.location && b.alert && b.setInterval) throw za("isecwindow", a);
if (b.children && (b.nodeName || b.on && b.find)) throw za("isecdom", a)
}
return b
}
function kb(b, a, c, d, e) {
e = e || {};
a = a.split(".");
for (var g, f = 0; 1 < a.length; f++) {
g = ea(a.shift(), d);
var h = b[g];
h || (h = {}, b[g] = h);
b = h;
b.then && e.unwrapPromises && (ra(d), "$$v" in b || function(a) {
a.then(function(b) {
a.$$v = b
})
}(b), b.$$v === r && (b.$$v = {}), b = b.$$v)
}
g = ea(a.shift(), d);
return b[g] = c
}
function wc(b, a, c, d, e, g, f) {
ea(b, g);
ea(a, g);
ea(c, g);
ea(d, g);
ea(e, g);
return f.unwrapPromises ? function(f, m) {
var k = m && m.hasOwnProperty(b) ? m : f,
l;
if (null == k) return k;
(k = k[b]) && k.then && (ra(g), "$$v" in k || (l = k, l.$$v = r, l.then(function(a) {
l.$$v = a
})), k = k.$$v);
if (!a) return k;
if (null == k) return r;
(k = k[a]) && k.then && (ra(g), "$$v" in k || (l = k, l.$$v = r, l.then(function(a) {
l.$$v = a
})), k = k.$$v);
if (!c) return k;
if (null == k) return r;
(k = k[c]) && k.then && (ra(g), "$$v" in k || (l = k, l.$$v = r, l.then(function(a) {
l.$$v = a
})), k = k.$$v);
if (!d) return k;
if (null == k) return r;
(k = k[d]) && k.then && (ra(g), "$$v" in k || (l = k, l.$$v = r, l.then(function(a) {
l.$$v = a
})), k = k.$$v);
if (!e) return k;
if (null == k) return r;
(k = k[e]) && k.then && (ra(g), "$$v" in k || (l = k, l.$$v = r, l.then(function(a) {
l.$$v = a
})), k = k.$$v);
return k
} : function(g, f) {
var k = f && f.hasOwnProperty(b) ? f : g;
if (null == k) return k;
k = k[b];
if (!a) return k;
if (null == k) return r;
k = k[a];
if (!c) return k;
if (null == k) return r;
k = k[c];
if (!d) return k;
if (null == k) return r;
k = k[d];
return e ? null == k ? r : k = k[e] : k
}
}
function wd(b, a) {
ea(b, a);
return function(a, d) {
return null == a ? r : (d && d.hasOwnProperty(b) ? d : a)[b]
}
}
function xd(b, a, c) {
ea(b, c);
ea(a, c);
return function(c, e) {
if (null == c) return r;
c = (e && e.hasOwnProperty(b) ? e : c)[b];
return null == c ? r : c[a]
}
}
function xc(b, a, c) {
if (Kb.hasOwnProperty(b)) return Kb[b];
var d = b.split("."),
e = d.length,
g;
if (a.unwrapPromises || 1 !== e)
if (a.unwrapPromises || 2 !== e)
if (a.csp) g = 6 > e ? wc(d[0], d[1], d[2], d[3], d[4], c, a) : function(b, g) {
var f = 0,
h;
do h = wc(d[f++], d[f++], d[f++], d[f++], d[f++], c, a)(b, g), g = r, b = h; while (f < e);
return h
};
else {
var f = "var p;\n";
q(d, function(b, d) {
ea(b, c);
f += "if(s == null) return undefined;\ns=" + (d ? "s" : '((k&&k.hasOwnProperty("' + b + '"))?k:s)') + '["' + b + '"];\n' + (a.unwrapPromises ? 'if (s && s.then) {\n pw("' + c.replace(/(["\r\n])/g, "\\$1") + '");\n if (!("$$v" in s)) {\n p=s;\n p.$$v = undefined;\n p.then(function(v) {p.$$v=v;});\n}\n s=s.$$v\n}\n' : "")
});
var f = f + "return s;",
h = new Function("s", "k", "pw", f);
h.toString = $(f);
g = a.unwrapPromises ? function(a, b) {
return h(a, b, ra)
} : h
}
else g = xd(d[0], d[1], c);
else g = wd(d[0], c);
"hasOwnProperty" !== b && (Kb[b] = g);
return g
}
function yd() {
var b = {},
a = {
csp: !1,
unwrapPromises: !1,
logPromiseWarnings: !0
};
this.unwrapPromises = function(b) {
return B(b) ? (a.unwrapPromises = !!b, this) : a.unwrapPromises
};
this.logPromiseWarnings = function(b) {
return B(b) ? (a.logPromiseWarnings = b, this) : a.logPromiseWarnings
};
this.$get = ["$filter", "$sniffer", "$log", function(c, d, e) {
a.csp = d.csp;
ra = function(b) {
a.logPromiseWarnings && !yc.hasOwnProperty(b) && (yc[b] = !0, e.warn("[$parse] Promise found in the expression `" + b + "`. Automatic unwrapping of promises in Angular expressions is deprecated."))
};
return function(d) {
var e;
switch (typeof d) {
case "string":
if (b.hasOwnProperty(d)) return b[d];
e = new Lb(a);
e = new Za(e, c, a).parse(d, !1);
"hasOwnProperty" !== d && (b[d] = e);
return e;
case "function":
return d;
default:
return w
}
}
}]
}
function zd() {
this.$get = ["$rootScope", "$exceptionHandler", function(b, a) {
return Ad(function(a) {
b.$evalAsync(a)
}, a)
}]
}
function Ad(b, a) {
function c(a) {
return a
}
function d(a) {
return f(a)
}
var e = function() {
var h = [],
m, k;
return k = {
resolve: function(a) {
if (h) {
var c = h;
h = r;
m = g(a);
c.length && b(function() {
for (var a, b = 0, d = c.length; b < d; b++) a = c[b], m.then(a[0], a[1], a[2])
})
}
},
reject: function(a) {
k.resolve(f(a))
},
notify: function(a) {
if (h) {
var c = h;
h.length && b(function() {
for (var b, d = 0, e = c.length; d < e; d++) b = c[d], b[2](a)
})
}
},
promise: {
then: function(b, g, f) {
var k = e(),
C = function(d) {
try {
k.resolve((L(b) ? b : c)(d))
} catch (e) {
k.reject(e), a(e)
}
},
y = function(b) {
try {
k.resolve((L(g) ? g : d)(b))
} catch (c) {
k.reject(c), a(c)
}
},
E = function(b) {
try {
k.notify((L(f) ? f : c)(b))
} catch (d) {
a(d)
}
};
h ? h.push([C, y, E]) : m.then(C, y, E);
return k.promise
},
"catch": function(a) {
return this.then(null, a)
},
"finally": function(a) {
function b(a, c) {
var d = e();
c ? d.resolve(a) : d.reject(a);
return d.promise
}
function d(e, g) {
var f = null;
try {
f = (a || c)()
} catch (h) {
return b(h, !1)
}
return f && L(f.then) ? f.then(function() {
return b(e, g)
}, function(a) {
return b(a, !1)
}) : b(e, g)
}
return this.then(function(a) {
return d(a, !0)
}, function(a) {
return d(a, !1)
})
}
}
}
},
g = function(a) {
return a && L(a.then) ? a : {
then: function(c) {
var d = e();
b(function() {
d.resolve(c(a))
});
return d.promise
}
}
},
f = function(c) {
return {
then: function(g, f) {
var l = e();
b(function() {
try {
l.resolve((L(f) ? f : d)(c))
} catch (b) {
l.reject(b), a(b)
}
});
return l.promise
}
}
};
return {
defer: e,
reject: f,
when: function(h, m, k, l) {
var n = e(),
p, s = function(b) {
try {
return (L(m) ? m : c)(b)
} catch (d) {
return a(d), f(d)
}
},
C = function(b) {
try {
return (L(k) ? k : d)(b)
} catch (c) {
return a(c), f(c)
}
},
y = function(b) {
try {
return (L(l) ? l : c)(b)
} catch (d) {
a(d)
}
};
b(function() {
g(h).then(function(a) {
p || (p = !0, n.resolve(g(a).then(s, C, y)))
}, function(a) {
p || (p = !0, n.resolve(C(a)))
}, function(a) {
p || n.notify(y(a))
})
});
return n.promise
},
all: function(a) {
var b = e(),
c = 0,
d = K(a) ? [] : {};
q(a, function(a, e) {
c++;
g(a).then(function(a) {
d.hasOwnProperty(e) || (d[e] = a, --c || b.resolve(d))
}, function(a) {
d.hasOwnProperty(e) || b.reject(a)
})
});
0 === c && b.resolve(d);
return b.promise
}
}
}
function Bd() {
var b = 10,
a = F("$rootScope"),
c = null;
this.digestTtl = function(a) {
arguments.length && (b = a);
return b
};
this.$get = ["$injector", "$exceptionHandler", "$parse", "$browser", function(d, e, g, f) {
function h() {
this.$id = $a();
this.$$phase = this.$parent = this.$$watchers = this.$$nextSibling = this.$$prevSibling = this.$$childHead = this.$$childTail = null;
this["this"] = this.$root = this;
this.$$destroyed = !1;
this.$$asyncQueue = [];
this.$$postDigestQueue = [];
this.$$listeners = {};
this.$$listenerCount = {};
this.$$isolateBindings = {}
}
function m(b) {
if (p.$$phase) throw a("inprog", p.$$phase);
p.$$phase = b
}
function k(a, b) {
var c = g(a);
Qa(c, b);
return c
}
function l(a, b, c) {
do a.$$listenerCount[c] -= b, 0 === a.$$listenerCount[c] && delete a.$$listenerCount[c]; while (a = a.$parent)
}
function n() {}
h.prototype = {
constructor: h,
$new: function(a) {
a ? (a = new h, a.$root = this.$root, a.$$asyncQueue = this.$$asyncQueue, a.$$postDigestQueue = this.$$postDigestQueue) : (a = function() {}, a.prototype = this, a = new a, a.$id = $a());
a["this"] = a;
a.$$listeners = {};
a.$$listenerCount = {};
a.$parent = this;
a.$$watchers = a.$$nextSibling = a.$$childHead = a.$$childTail = null;
a.$$prevSibling = this.$$childTail;
this.$$childHead ? this.$$childTail = this.$$childTail.$$nextSibling = a : this.$$childHead = this.$$childTail = a;
return a
},
$watch: function(a, b, d) {
var e = k(a, "watch"),
g = this.$$watchers,
f = {
fn: b,
last: n,
get: e,
exp: a,
eq: !!d
};
c = null;
if (!L(b)) {
var h = k(b || w, "listener");
f.fn = function(a, b, c) {
h(c)
}
}
if ("string" == typeof a && e.constant) {
var m = f.fn;
f.fn = function(a, b, c) {
m.call(this, a, b, c);
Na(g, f)
}
}
g || (g = this.$$watchers = []);
g.unshift(f);
return function() {
Na(g, f);
c = null
}
},
$watchCollection: function(a, b) {
var c = this,
d, e, f = 0,
h = g(a),
m = [],
k = {},
l = 0;
return this.$watch(function() {
e = h(c);
var a, b;
if (X(e))
if (rb(e))
for (d !== m && (d = m, l = d.length = 0, f++), a = e.length, l !== a && (f++, d.length = l = a), b = 0; b < a; b++) d[b] !== e[b] && (f++, d[b] = e[b]);
else {
d !== k && (d = k = {}, l = 0, f++);
a = 0;
for (b in e) e.hasOwnProperty(b) && (a++, d.hasOwnProperty(b) ? d[b] !== e[b] && (f++, d[b] = e[b]) : (l++, d[b] = e[b], f++));
if (l > a)
for (b in f++, d) d.hasOwnProperty(b) && !e.hasOwnProperty(b) && (l--, delete d[b])
}
else d !== e && (d = e, f++);
return f
}, function() {
b(e, d, c)
})
},
$digest: function() {
var d, f, g, h, k = this.$$asyncQueue,
l = this.$$postDigestQueue,
q, v, r = b,
N, V = [],
J, A, P;
m("$digest");
c = null;
do {
v = !1;
for (N = this; k.length;) {
try {
P = k.shift(), P.scope.$eval(P.expression)
} catch (B) {
p.$$phase = null, e(B)
}
c = null
}
a: do {
if (h = N.$$watchers)
for (q = h.length; q--;) try {
if (d = h[q])
if ((f = d.get(N)) !== (g = d.last) && !(d.eq ? ua(f, g) : "number" == typeof f && "number" == typeof g && isNaN(f) && isNaN(g))) v = !0, c = d, d.last = d.eq ? aa(f) : f, d.fn(f, g === n ? f : g, N), 5 > r && (J = 4 - r, V[J] || (V[J] = []), A = L(d.exp) ? "fn: " + (d.exp.name || d.exp.toString()) : d.exp, A += "; newVal: " + qa(f) + "; oldVal: " + qa(g), V[J].push(A));
else if (d === c) {
v = !1;
break a
}
} catch (t) {
p.$$phase = null, e(t)
}
if (!(h = N.$$childHead || N !== this && N.$$nextSibling))
for (; N !== this && !(h = N.$$nextSibling);) N = N.$parent
} while (N = h);
if ((v || k.length) && !r--) throw p.$$phase = null, a("infdig", b, qa(V))
} while (v || k.length);
for (p.$$phase = null; l.length;) try {
l.shift()()
} catch (z) {
e(z)
}
},
$destroy: function() {
if (!this.$$destroyed) {
var a = this.$parent;
this.$broadcast("$destroy");
this.$$destroyed = !0;
this !== p && (q(this.$$listenerCount, cb(null, l, this)), a.$$childHead == this && (a.$$childHead = this.$$nextSibling), a.$$childTail == this && (a.$$childTail = this.$$prevSibling), this.$$prevSibling && (this.$$prevSibling.$$nextSibling = this.$$nextSibling), this.$$nextSibling && (this.$$nextSibling.$$prevSibling = this.$$prevSibling), this.$parent = this.$$nextSibling = this.$$prevSibling = this.$$childHead = this.$$childTail = null)
}
},
$eval: function(a, b) {
return g(a)(this, b)
},
$evalAsync: function(a) {
p.$$phase || p.$$asyncQueue.length || f.defer(function() {
p.$$asyncQueue.length && p.$digest()
});
this.$$asyncQueue.push({
scope: this,
expression: a
})
},
$$postDigest: function(a) {
this.$$postDigestQueue.push(a)
},
$apply: function(a) {
try {
return m("$apply"), this.$eval(a)
} catch (b) {
e(b)
} finally {
p.$$phase = null;
try {
p.$digest()
} catch (c) {
throw e(c), c
}
}
},
$on: function(a, b) {
var c = this.$$listeners[a];
c || (this.$$listeners[a] = c = []);
c.push(b);
var d = this;
do d.$$listenerCount[a] || (d.$$listenerCount[a] = 0), d.$$listenerCount[a]++; while (d = d.$parent);
var e = this;
return function() {
c[bb(c, b)] = null;
l(e, 1, a)
}
},
$emit: function(a, b) {
var c = [],
d, f = this,
g = !1,
h = {
name: a,
targetScope: f,
stopPropagation: function() {
g = !0
},
preventDefault: function() {
h.defaultPrevented = !0
},
defaultPrevented: !1
},
m = [h].concat(va.call(arguments, 1)),
k, l;
do {
d = f.$$listeners[a] || c;
h.currentScope = f;
k = 0;
for (l = d.length; k < l; k++)
if (d[k]) try {
d[k].apply(null, m)
} catch (p) {
e(p)
} else d.splice(k, 1), k--, l--;
if (g) break;
f = f.$parent
} while (f);
return h
},
$broadcast: function(a, b) {
for (var c = this, d = this, f = {
name: a,
targetScope: this,
preventDefault: function() {
f.defaultPrevented = !0
},
defaultPrevented: !1
}, g = [f].concat(va.call(arguments, 1)), h, k; c = d;) {
f.currentScope = c;
d = c.$$listeners[a] || [];
h = 0;
for (k = d.length; h < k; h++)
if (d[h]) try {
d[h].apply(null, g)
} catch (m) {
e(m)
} else d.splice(h, 1), h--, k--;
if (!(d = c.$$listenerCount[a] && c.$$childHead || c !== this && c.$$nextSibling))
for (; c !== this && !(d = c.$$nextSibling);) c = c.$parent
}
return f
}
};
var p = new h;
return p
}]
}
function Cd() {
var b = /^\s*(https?|ftp|mailto|tel|file):/,
a = /^\s*(https?|ftp|file):|data:image\//;
this.aHrefSanitizationWhitelist = function(a) {
return B(a) ? (b = a, this) : b
};
this.imgSrcSanitizationWhitelist = function(b) {
return B(b) ? (a = b, this) : a
};
this.$get = function() {
return function(c, d) {
var e = d ? a : b,
g;
if (!M || 8 <= M)
if (g = ya(c).href, "" !== g && !g.match(e)) return "unsafe:" + g;
return c
}
}
}
function Dd(b) {
if ("self" === b) return b;
if (D(b)) {
if (-1 < b.indexOf("***")) throw sa("iwcard", b);
b = b.replace(/([-()\[\]{}+?*.$\^|,:#<!\\])/g, "\\$1").replace(/\x08/g, "\\x08").replace("\\*\\*", ".*").replace("\\*", "[^:/.?&;]*");
return RegExp("^" + b + "$")
}
if (ab(b)) return RegExp("^" + b.source + "$");
throw sa("imatcher")
}
function zc(b) {
var a = [];
B(b) && q(b, function(b) {
a.push(Dd(b))
});
return a
}
function Ed() {
this.SCE_CONTEXTS = fa;
var b = ["self"],
a = [];
this.resourceUrlWhitelist = function(a) {
arguments.length && (b = zc(a));
return b
};
this.resourceUrlBlacklist = function(b) {
arguments.length && (a = zc(b));
return a
};
this.$get = ["$injector", function(c) {
function d(a) {
var b = function(a) {
this.$$unwrapTrustedValue = function() {
return a
}
};
a && (b.prototype = new a);
b.prototype.valueOf = function() {
return this.$$unwrapTrustedValue()
};
b.prototype.toString = function() {
return this.$$unwrapTrustedValue().toString()
};
return b
}
var e = function(a) {
throw sa("unsafe")
};
c.has("$sanitize") && (e = c.get("$sanitize"));
var g = d(),
f = {};
f[fa.HTML] = d(g);
f[fa.CSS] = d(g);
f[fa.URL] = d(g);
f[fa.JS] = d(g);
f[fa.RESOURCE_URL] = d(f[fa.URL]);
return {
trustAs: function(a, b) {
var c = f.hasOwnProperty(a) ? f[a] : null;
if (!c) throw sa("icontext", a, b);
if (null === b || b === r || "" === b) return b;
if ("string" !== typeof b) throw sa("itype", a);
return new c(b)
},
getTrusted: function(c, d) {
if (null === d || d === r || "" === d) return d;
var g = f.hasOwnProperty(c) ? f[c] : null;
if (g && d instanceof g) return d.$$unwrapTrustedValue();
if (c === fa.RESOURCE_URL) {
var g = ya(d.toString()),
l, n, p = !1;
l = 0;
for (n = b.length; l < n; l++)
if ("self" === b[l] ? Gb(g) : b[l].exec(g.href)) {
p = !0;
break
} if (p)
for (l = 0, n = a.length; l < n; l++)
if ("self" === a[l] ? Gb(g) : a[l].exec(g.href)) {
p = !1;
break
} if (p) return d;
throw sa("insecurl", d.toString())
}
if (c === fa.HTML) return e(d);
throw sa("unsafe")
},
valueOf: function(a) {
return a instanceof g ? a.$$unwrapTrustedValue() : a
}
}
}]
}
function Fd() {
var b = !0;
this.enabled = function(a) {
arguments.length && (b = !!a);
return b
};
this.$get = ["$parse", "$sniffer", "$sceDelegate", function(a, c, d) {
if (b && c.msie && 8 > c.msieDocumentMode) throw sa("iequirks");
var e = aa(fa);
e.isEnabled = function() {
return b
};
e.trustAs = d.trustAs;
e.getTrusted = d.getTrusted;
e.valueOf = d.valueOf;
b || (e.trustAs = e.getTrusted = function(a, b) {
return b
}, e.valueOf = Ba);
e.parseAs = function(b, c) {
var d = a(c);
return d.literal && d.constant ? d : function(a, c) {
return e.getTrusted(b, d(a, c))
}
};
var g = e.parseAs,
f = e.getTrusted,
h = e.trustAs;
q(fa, function(a, b) {
var c = x(b);
e[Ra("parse_as_" + c)] = function(b) {
return g(a, b)
};
e[Ra("get_trusted_" + c)] = function(b) {
return f(a, b)
};
e[Ra("trust_as_" + c)] = function(b) {
return h(a, b)
}
});
return e
}]
}
function Gd() {
this.$get = ["$window", "$document", function(b, a) {
var c = {},
d = S((/android (\d+)/.exec(x((b.navigator || {}).userAgent)) || [])[1]),
e = /Boxee/i.test((b.navigator || {}).userAgent),
g = a[0] || {},
f = g.documentMode,
h, m = /^(Moz|webkit|O|ms)(?=[A-Z])/,
k = g.body && g.body.style,
l = !1,
n = !1;
if (k) {
for (var p in k)
if (l = m.exec(p)) {
h = l[0];
h = h.substr(0, 1).toUpperCase() + h.substr(1);
break
} h || (h = "WebkitOpacity" in k && "webkit");
l = !!("transition" in k || h + "Transition" in k);
n = !!("animation" in k || h + "Animation" in k);
!d || l && n || (l = D(g.body.style.webkitTransition), n = D(g.body.style.webkitAnimation))
}
return {
history: !(!b.history || !b.history.pushState || 4 > d || e),
hashchange: "onhashchange" in b && (!f || 7 < f),
hasEvent: function(a) {
if ("input" == a && 9 == M) return !1;
if (z(c[a])) {
var b = g.createElement("div");
c[a] = "on" + a in b
}
return c[a]
},
csp: Ub(),
vendorPrefix: h,
transitions: l,
animations: n,
android: d,
msie: M,
msieDocumentMode: f
}
}]
}
function Hd() {
this.$get = ["$rootScope", "$browser", "$q", "$exceptionHandler", function(b, a, c, d) {
function e(e, h, m) {
var k = c.defer(),
l = k.promise,
n = B(m) && !m;
h = a.defer(function() {
try {
k.resolve(e())
} catch (a) {
k.reject(a), d(a)
} finally {
delete g[l.$$timeoutId]
}
n || b.$apply()
}, h);
l.$$timeoutId = h;
g[h] = k;
return l
}
var g = {};
e.cancel = function(b) {
return b && b.$$timeoutId in g ? (g[b.$$timeoutId].reject("canceled"), delete g[b.$$timeoutId], a.defer.cancel(b.$$timeoutId)) : !1
};
return e
}]
}
function ya(b, a) {
var c = b;
M && (Y.setAttribute("href", c), c = Y.href);
Y.setAttribute("href", c);
return {
href: Y.href,
protocol: Y.protocol ? Y.protocol.replace(/:$/, "") : "",
host: Y.host,
search: Y.search ? Y.search.replace(/^\?/, "") : "",
hash: Y.hash ? Y.hash.replace(/^#/, "") : "",
hostname: Y.hostname,
port: Y.port,
pathname: "/" === Y.pathname.charAt(0) ? Y.pathname : "/" + Y.pathname
}
}
function Gb(b) {
b = D(b) ? ya(b) : b;
return b.protocol === Ac.protocol && b.host === Ac.host
}
function Id() {
this.$get = $(Z)
}
function Bc(b) {
function a(d, e) {
if (X(d)) {
var g = {};
q(d, function(b, c) {
g[c] = a(c, b)
});
return g
}
return b.factory(d + c, e)
}
var c = "Filter";
this.register = a;
this.$get = ["$injector", function(a) {
return function(b) {
return a.get(b + c)
}
}];
a("currency", Cc);
a("date", Dc);
a("filter", Jd);
a("json", Kd);
a("limitTo", Ld);
a("lowercase", Md);
a("number", Ec);
a("orderBy", Fc);
a("uppercase", Nd)
}
function Jd() {
return function(b, a, c) {
if (!K(b)) return b;
var d = typeof c,
e = [];
e.check = function(a) {
for (var b = 0; b < e.length; b++)
if (!e[b](a)) return !1;
return !0
};
"function" !== d && (c = "boolean" === d && c ? function(a, b) {
return Ca.equals(a, b)
} : function(a, b) {
b = ("" + b).toLowerCase();
return -1 < ("" + a).toLowerCase().indexOf(b)
});
var g = function(a, b) {
if ("string" == typeof b && "!" === b.charAt(0)) return !g(a, b.substr(1));
switch (typeof a) {
case "boolean":
case "number":
case "string":
return c(a, b);
case "object":
switch (typeof b) {
case "object":
return c(a, b);
default:
for (var d in a)
if ("$" !== d.charAt(0) && g(a[d], b)) return !0
}
return !1;
case "array":
for (d = 0; d < a.length; d++)
if (g(a[d], b)) return !0;
return !1;
default:
return !1
}
};
switch (typeof a) {
case "boolean":
case "number":
case "string":
a = {
$: a
};
case "object":
for (var f in a)(function(b) {
"undefined" != typeof a[b] && e.push(function(c) {
return g("$" == b ? c : vb(c, b), a[b])
})
})(f);
break;
case "function":
e.push(a);
break;
default:
return b
}
d = [];
for (f = 0; f < b.length; f++) {
var h = b[f];
e.check(h) && d.push(h)
}
return d
}
}
function Cc(b) {
var a = b.NUMBER_FORMATS;
return function(b, d) {
z(d) && (d = a.CURRENCY_SYM);
return Gc(b, a.PATTERNS[1], a.GROUP_SEP, a.DECIMAL_SEP, 2).replace(/\u00A4/g, d)
}
}
function Ec(b) {
var a = b.NUMBER_FORMATS;
return function(b, d) {
return Gc(b, a.PATTERNS[0], a.GROUP_SEP, a.DECIMAL_SEP, d)
}
}
function Gc(b, a, c, d, e) {
if (isNaN(b) || !isFinite(b)) return "";
var g = 0 > b;
b = Math.abs(b);
var f = b + "",
h = "",
m = [],
k = !1;
if (-1 !== f.indexOf("e")) {
var l = f.match(/([\d\.]+)e(-?)(\d+)/);
l && "-" == l[2] && l[3] > e + 1 ? f = "0" : (h = f, k = !0)
}
if (k) 0 < e && (-1 < b && 1 > b) && (h = b.toFixed(e));
else {
f = (f.split(Hc)[1] || "").length;
z(e) && (e = Math.min(Math.max(a.minFrac, f), a.maxFrac));
f = Math.pow(10, e);
b = Math.round(b * f) / f;
b = ("" + b).split(Hc);
f = b[0];
b = b[1] || "";
var l = 0,
n = a.lgSize,
p = a.gSize;
if (f.length >= n + p)
for (l = f.length - n, k = 0; k < l; k++) 0 === (l - k) % p && 0 !== k && (h += c), h += f.charAt(k);
for (k = l; k < f.length; k++) 0 === (f.length - k) % n && 0 !== k && (h += c), h += f.charAt(k);
for (; b.length < e;) b += "0";
e && "0" !== e && (h += d + b.substr(0, e))
}
m.push(g ? a.negPre : a.posPre);
m.push(h);
m.push(g ? a.negSuf : a.posSuf);
return m.join("")
}
function Mb(b, a, c) {
var d = "";
0 > b && (d = "-", b = -b);
for (b = "" + b; b.length < a;) b = "0" + b;
c && (b = b.substr(b.length - a));
return d + b
}
function W(b, a, c, d) {
c = c || 0;
return function(e) {
e = e["get" + b]();
if (0 < c || e > -c) e += c;
0 === e && -12 == c && (e = 12);
return Mb(e, a, d)
}
}
function lb(b, a) {
return function(c, d) {
var e = c["get" + b](),
g = Ia(a ? "SHORT" + b : b);
return d[g][e]
}
}
function Dc(b) {
function a(a) {
var b;
if (b = a.match(c)) {
a = new Date(0);
var g = 0,
f = 0,
h = b[8] ? a.setUTCFullYear : a.setFullYear,
m = b[8] ? a.setUTCHours : a.setHours;
b[9] && (g = S(b[9] + b[10]), f = S(b[9] + b[11]));
h.call(a, S(b[1]), S(b[2]) - 1, S(b[3]));
g = S(b[4] || 0) - g;
f = S(b[5] || 0) - f;
h = S(b[6] || 0);
b = Math.round(1e3 * parseFloat("0." + (b[7] || 0)));
m.call(a, g, f, h, b)
}
return a
}
var c = /^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/;
return function(c, e) {
var g = "",
f = [],
h, m;
e = e || "mediumDate";
e = b.DATETIME_FORMATS[e] || e;
D(c) && (c = Od.test(c) ? S(c) : a(c));
sb(c) && (c = new Date(c));
if (!La(c)) return c;
for (; e;)(m = Pd.exec(e)) ? (f = f.concat(va.call(m, 1)), e = f.pop()) : (f.push(e), e = null);
q(f, function(a) {
h = Qd[a];
g += h ? h(c, b.DATETIME_FORMATS) : a.replace(/(^'|'$)/g, "").replace(/''/g, "'")
});
return g
}
}
function Kd() {
return function(b) {
return qa(b, !0)
}
}
function Ld() {
return function(b, a) {
if (!K(b) && !D(b)) return b;
a = S(a);
if (D(b)) return a ? 0 <= a ? b.slice(0, a) : b.slice(a, b.length) : "";
var c = [],
d, e;
a > b.length ? a = b.length : a < -b.length && (a = -b.length);
0 < a ? (d = 0, e = a) : (d = b.length + a, e = b.length);
for (; d < e; d++) c.push(b[d]);
return c
}
}
function Fc(b) {
return function(a, c, d) {
function e(a, b) {
return Pa(b) ? function(b, c) {
return a(c, b)
} : a
}
if (!K(a) || !c) return a;
c = K(c) ? c : [c];
c = Rc(c, function(a) {
var c = !1,
d = a || Ba;
if (D(a)) {
if ("+" == a.charAt(0) || "-" == a.charAt(0)) c = "-" == a.charAt(0), a = a.substring(1);
d = b(a)
}
return e(function(a, b) {
var c;
c = d(a);
var e = d(b),
g = typeof c,
f = typeof e;
g == f ? ("string" == g && (c = c.toLowerCase(), e = e.toLowerCase()), c = c === e ? 0 : c < e ? -1 : 1) : c = g < f ? -1 : 1;
return c
}, c)
});
for (var g = [], f = 0; f < a.length; f++) g.push(a[f]);
return g.sort(e(function(a, b) {
for (var d = 0; d < c.length; d++) {
var e = c[d](a, b);
if (0 !== e) return e
}
return 0
}, d))
}
}
function ta(b) {
L(b) && (b = {
link: b
});
b.restrict = b.restrict || "AC";
return $(b)
}
function Ic(b, a) {
function c(a, c) {
c = c ? "-" + db(c, "-") : "";
b.removeClass((a ? mb : nb) + c).addClass((a ? nb : mb) + c)
}
var d = this,
e = b.parent().controller("form") || ob,
g = 0,
f = d.$error = {},
h = [];
d.$name = a.name || a.ngForm;
d.$dirty = !1;
d.$pristine = !0;
d.$valid = !0;
d.$invalid = !1;
e.$addControl(d);
b.addClass(Ja);
c(!0);
d.$addControl = function(a) {
xa(a.$name, "input");
h.push(a);
a.$name && (d[a.$name] = a)
};
d.$removeControl = function(a) {
a.$name && d[a.$name] === a && delete d[a.$name];
q(f, function(b, c) {
d.$setValidity(c, !0, a)
});
Na(h, a)
};
d.$setValidity = function(a, b, h) {
var n = f[a];
if (b) n && (Na(n, h), n.length || (g--, g || (c(b), d.$valid = !0, d.$invalid = !1), f[a] = !1, c(!0, a), e.$setValidity(a, !0, d)));
else {
g || c(b);
if (n) {
if (-1 != bb(n, h)) return
} else f[a] = n = [], g++, c(!1, a), e.$setValidity(a, !1, d);
n.push(h);
d.$valid = !1;
d.$invalid = !0
}
};
d.$setDirty = function() {
b.removeClass(Ja).addClass(pb);
d.$dirty = !0;
d.$pristine = !1;
e.$setDirty()
};
d.$setPristine = function() {
b.removeClass(pb).addClass(Ja);
d.$dirty = !1;
d.$pristine = !0;
q(h, function(a) {
a.$setPristine()
})
}
}
function pa(b, a, c, d) {
b.$setValidity(a, c);
return c ? d : r
}
function qb(b, a, c, d, e, g) {
if (!e.android) {
var f = !1;
a.on("compositionstart", function(a) {
f = !0
});
a.on("compositionend", function() {
f = !1
})
}
var h = function() {
if (!f) {
var e = a.val();
Pa(c.ngTrim || "T") && (e = ba(e));
d.$viewValue !== e && (b.$$phase ? d.$setViewValue(e) : b.$apply(function() {
d.$setViewValue(e)
}))
}
};
if (e.hasEvent("input")) a.on("input", h);
else {
var m, k = function() {
m || (m = g.defer(function() {
h();
m = null
}))
};
a.on("keydown", function(a) {
a = a.keyCode;
91 === a || (15 < a && 19 > a || 37 <= a && 40 >= a) || k()
});
if (e.hasEvent("paste")) a.on("paste cut", k)
}
a.on("change", h);
d.$render = function() {
a.val(d.$isEmpty(d.$viewValue) ? "" : d.$viewValue)
};
var l = c.ngPattern;
l && ((e = l.match(/^\/(.*)\/([gim]*)$/)) ? (l = RegExp(e[1], e[2]), e = function(a) {
return pa(d, "pattern", d.$isEmpty(a) || l.test(a), a)
}) : e = function(c) {
var e = b.$eval(l);
if (!e || !e.test) throw F("ngPattern")("noregexp", l, e, ga(a));
return pa(d, "pattern", d.$isEmpty(c) || e.test(c), c)
}, d.$formatters.push(e), d.$parsers.push(e));
if (c.ngMinlength) {
var n = S(c.ngMinlength);
e = function(a) {
return pa(d, "minlength", d.$isEmpty(a) || a.length >= n, a)
};
d.$parsers.push(e);
d.$formatters.push(e)
}
if (c.ngMaxlength) {
var p = S(c.ngMaxlength);
e = function(a) {
return pa(d, "maxlength", d.$isEmpty(a) || a.length <= p, a)
};
d.$parsers.push(e);
d.$formatters.push(e)
}
}
function Nb(b, a) {
b = "ngClass" + b;
return function() {
return {
restrict: "AC",
link: function(c, d, e) {
function g(b) {
if (!0 === a || c.$index % 2 === a) {
var d = f(b || "");
h ? ua(b, h) || e.$updateClass(d, f(h)) : e.$addClass(d)
}
h = aa(b)
}
function f(a) {
if (K(a)) return a.join(" ");
if (X(a)) {
var b = [];
q(a, function(a, c) {
a && b.push(c)
});
return b.join(" ")
}
return a
}
var h;
c.$watch(e[b], g, !0);
e.$observe("class", function(a) {
g(c.$eval(e[b]))
});
"ngClass" !== b && c.$watch("$index", function(d, g) {
var h = d & 1;
if (h !== g & 1) {
var n = f(c.$eval(e[b]));
h === a ? e.$addClass(n) : e.$removeClass(n)
}
})
}
}
}
}
var x = function(b) {
return D(b) ? b.toLowerCase() : b
},
Ia = function(b) {
return D(b) ? b.toUpperCase() : b
},
M, A, Da, va = [].slice,
Rd = [].push,
Ma = Object.prototype.toString,
Oa = F("ng"),
Ca = Z.angular || (Z.angular = {}),
Va, Ha, ka = ["0", "0", "0"];
M = S((/msie (\d+)/.exec(x(navigator.userAgent)) || [])[1]);
isNaN(M) && (M = S((/trident\/.*; rv:(\d+)/.exec(x(navigator.userAgent)) || [])[1]));
w.$inject = [];
Ba.$inject = [];
var ba = function() {
return String.prototype.trim ? function(b) {
return D(b) ? b.trim() : b
} : function(b) {
return D(b) ? b.replace(/^\s\s*/, "").replace(/\s\s*$/, "") : b
}
}();
Ha = 9 > M ? function(b) {
b = b.nodeName ? b : b[0];
return b.scopeName && "HTML" != b.scopeName ? Ia(b.scopeName + ":" + b.nodeName) : b.nodeName
} : function(b) {
return b.nodeName ? b.nodeName : b[0].nodeName
};
var Uc = /[A-Z]/g,
Sd = {
full: "1.2.10",
major: 1,
minor: 2,
dot: 10,
codeName: "augmented-serendipity"
},
Sa = O.cache = {},
eb = O.expando = "ng-" + (new Date).getTime(),
Yc = 1,
Jc = Z.document.addEventListener ? function(b, a, c) {
b.addEventListener(a, c, !1)
} : function(b, a, c) {
b.attachEvent("on" + a, c)
},
Bb = Z.document.removeEventListener ? function(b, a, c) {
b.removeEventListener(a, c, !1)
} : function(b, a, c) {
b.detachEvent("on" + a, c)
},
Wc = /([\:\-\_]+(.))/g,
Xc = /^moz([A-Z])/,
yb = F("jqLite"),
Ga = O.prototype = {
ready: function(b) {
function a() {
c || (c = !0, b())
}
var c = !1;
"complete" === Q.readyState ? setTimeout(a) : (this.on("DOMContentLoaded", a), O(Z).on("load", a))
},
toString: function() {
var b = [];
q(this, function(a) {
b.push("" + a)
});
return "[" + b.join(", ") + "]"
},
eq: function(b) {
return 0 <= b ? A(this[b]) : A(this[this.length + b])
},
length: 0,
push: Rd,
sort: [].sort,
splice: [].splice
},
gb = {};
q("multiple selected checked disabled readOnly required open".split(" "), function(b) {
gb[x(b)] = b
});
var gc = {};
q("input select option textarea button form details".split(" "), function(b) {
gc[Ia(b)] = !0
});
q({
data: cc,
inheritedData: fb,
scope: function(b) {
return A(b).data("$scope") || fb(b.parentNode || b, ["$isolateScope", "$scope"])
},
isolateScope: function(b) {
return A(b).data("$isolateScope") || A(b).data("$isolateScopeNoTemplate")
},
controller: dc,
injector: function(b) {
return fb(b, "$injector")
},
removeAttr: function(b, a) {
b.removeAttribute(a)
},
hasClass: Cb,
css: function(b, a, c) {
a = Ra(a);
if (B(c)) b.style[a] = c;
else {
var d;
8 >= M && (d = b.currentStyle && b.currentStyle[a], "" === d && (d = "auto"));
d = d || b.style[a];
8 >= M && (d = "" === d ? r : d);
return d
}
},
attr: function(b, a, c) {
var d = x(a);
if (gb[d])
if (B(c)) c ? (b[a] = !0, b.setAttribute(a, d)) : (b[a] = !1, b.removeAttribute(d));
else return b[a] || (b.attributes.getNamedItem(a) || w).specified ? d : r;
else if (B(c)) b.setAttribute(a, c);
else if (b.getAttribute) return b = b.getAttribute(a, 2), null === b ? r : b
},
prop: function(b, a, c) {
if (B(c)) b[a] = c;
else return b[a]
},
text: function() {
function b(b, d) {
var e = a[b.nodeType];
if (z(d)) return e ? b[e] : "";
b[e] = d
}
var a = [];
9 > M ? (a[1] = "innerText", a[3] = "nodeValue") : a[1] = a[3] = "textContent";
b.$dv = "";
return b
}(),
val: function(b, a) {
if (z(a)) {
if ("SELECT" === Ha(b) && b.multiple) {
var c = [];
q(b.options, function(a) {
a.selected && c.push(a.value || a.text)
});
return 0 === c.length ? null : c
}
return b.value
}
b.value = a
},
html: function(b, a) {
if (z(a)) return b.innerHTML;
for (var c = 0, d = b.childNodes; c < d.length; c++) Ea(d[c]);
b.innerHTML = a
},
empty: ec
}, function(b, a) {
O.prototype[a] = function(a, d) {
var e, g;
if (b !== ec && (2 == b.length && b !== Cb && b !== dc ? a : d) === r) {
if (X(a)) {
for (e = 0; e < this.length; e++)
if (b === cc) b(this[e], a);
else
for (g in a) b(this[e], g, a[g]);
return this
}
e = b.$dv;
g = e === r ? Math.min(this.length, 1) : this.length;
for (var f = 0; f < g; f++) {
var h = b(this[f], a, d);
e = e ? e + h : h
}
return e
}
for (e = 0; e < this.length; e++) b(this[e], a, d);
return this
}
});
q({
removeData: ac,
dealoc: Ea,
on: function a(c, d, e, g) {
if (B(g)) throw yb("onargs");
var f = la(c, "events"),
h = la(c, "handle");
f || la(c, "events", f = {});
h || la(c, "handle", h = Zc(c, f));
q(d.split(" "), function(d) {
var g = f[d];
if (!g) {
if ("mouseenter" == d || "mouseleave" == d) {
var l = Q.body.contains || Q.body.compareDocumentPosition ? function(a, c) {
var d = 9 === a.nodeType ? a.documentElement : a,
e = c && c.parentNode;
return a === e || !!(e && 1 === e.nodeType && (d.contains ? d.contains(e) : a.compareDocumentPosition && a.compareDocumentPosition(e) & 16))
} : function(a, c) {
if (c)
for (; c = c.parentNode;)
if (c === a) return !0;
return !1
};
f[d] = [];
a(c, {
mouseleave: "mouseout",
mouseenter: "mouseover"
} [d], function(a) {
var c = a.relatedTarget;
c && (c === this || l(this, c)) || h(a, d)
})
} else Jc(c, d, h), f[d] = [];
g = f[d]
}
g.push(e)
})
},
off: bc,
one: function(a, c, d) {
a = A(a);
a.on(c, function g() {
a.off(c, d);
a.off(c, g)
});
a.on(c, d)
},
replaceWith: function(a, c) {
var d, e = a.parentNode;
Ea(a);
q(new O(c), function(c) {
d ? e.insertBefore(c, d.nextSibling) : e.replaceChild(c, a);
d = c
})
},
children: function(a) {
var c = [];
q(a.childNodes, function(a) {
1 === a.nodeType && c.push(a)
});
return c
},
contents: function(a) {
return a.childNodes || []
},
append: function(a, c) {
q(new O(c), function(c) {
1 !== a.nodeType && 11 !== a.nodeType || a.appendChild(c)
})
},
prepend: function(a, c) {
if (1 === a.nodeType) {
var d = a.firstChild;
q(new O(c), function(c) {
a.insertBefore(c, d)
})
}
},
wrap: function(a, c) {
c = A(c)[0];
var d = a.parentNode;
d && d.replaceChild(c, a);
c.appendChild(a)
},
remove: function(a) {
Ea(a);
var c = a.parentNode;
c && c.removeChild(a)
},
after: function(a, c) {
var d = a,
e = a.parentNode;
q(new O(c), function(a) {
e.insertBefore(a, d.nextSibling);
d = a
})
},
addClass: Eb,
removeClass: Db,
toggleClass: function(a, c, d) {
z(d) && (d = !Cb(a, c));
(d ? Eb : Db)(a, c)
},
parent: function(a) {
return (a = a.parentNode) && 11 !== a.nodeType ? a : null
},
next: function(a) {
if (a.nextElementSibling) return a.nextElementSibling;
for (a = a.nextSibling; null != a && 1 !== a.nodeType;) a = a.nextSibling;
return a
},
find: function(a, c) {
return a.getElementsByTagName ? a.getElementsByTagName(c) : []
},
clone: Ab,
triggerHandler: function(a, c, d) {
c = (la(a, "events") || {})[c];
d = d || [];
var e = [{
preventDefault: w,
stopPropagation: w
}];
q(c, function(c) {
c.apply(a, e.concat(d))
})
}
}, function(a, c) {
O.prototype[c] = function(c, e, g) {
for (var f, h = 0; h < this.length; h++) z(f) ? (f = a(this[h], c, e, g), B(f) && (f = A(f))) : zb(f, a(this[h], c, e, g));
return B(f) ? f : this
};
O.prototype.bind = O.prototype.on;
O.prototype.unbind = O.prototype.off
});
Ta.prototype = {
put: function(a, c) {
this[Fa(a)] = c
},
get: function(a) {
return this[Fa(a)]
},
remove: function(a) {
var c = this[a = Fa(a)];
delete this[a];
return c
}
};
var ad = /^function\s*[^\(]*\(\s*([^\)]*)\)/m,
bd = /,/,
cd = /^\s*(_?)(\S+?)\1\s*$/,
$c = /((\/\/.*$)|(\/\*[\s\S]*?\*\/))/gm,
Ua = F("$injector"),
Td = F("$animate"),
Ud = ["$provide", function(a) {
this.$$selectors = {};
this.register = function(c, d) {
var e = c + "-animation";
if (c && "." != c.charAt(0)) throw Td("notcsel", c);
this.$$selectors[c.substr(1)] = e;
a.factory(e, d)
};
this.classNameFilter = function(a) {
1 === arguments.length && (this.$$classNameFilter = a instanceof RegExp ? a : null);
return this.$$classNameFilter
};
this.$get = ["$timeout", function(a) {
return {
enter: function(d, e, g, f) {
g ? g.after(d) : (e && e[0] || (e = g.parent()), e.append(d));
f && a(f, 0, !1)
},
leave: function(d, e) {
d.remove();
e && a(e, 0, !1)
},
move: function(a, c, g, f) {
this.enter(a, c, g, f)
},
addClass: function(d, e, g) {
e = D(e) ? e : K(e) ? e.join(" ") : "";
q(d, function(a) {
Eb(a, e)
});
g && a(g, 0, !1)
},
removeClass: function(d, e, g) {
e = D(e) ? e : K(e) ? e.join(" ") : "";
q(d, function(a) {
Db(a, e)
});
g && a(g, 0, !1)
},
enabled: w
}
}]
}],
ja = F("$compile");
jc.$inject = ["$provide", "$$sanitizeUriProvider"];
var id = /^(x[\:\-_]|data[\:\-_])/i,
pc = F("$interpolate"),
Vd = /^([^\?#]*)(\?([^#]*))?(#(.*))?$/,
td = {
http: 80,
https: 443,
ftp: 21
},
Ib = F("$location");
uc.prototype = Jb.prototype = tc.prototype = {
$$html5: !1,
$$replace: !1,
absUrl: jb("$$absUrl"),
url: function(a, c) {
if (z(a)) return this.$$url;
var d = Vd.exec(a);
d[1] && this.path(decodeURIComponent(d[1]));
(d[2] || d[1]) && this.search(d[3] || "");
this.hash(d[5] || "", c);
return this
},
protocol: jb("$$protocol"),
host: jb("$$host"),
port: jb("$$port"),
path: vc("$$path", function(a) {
return "/" == a.charAt(0) ? a : "/" + a
}),
search: function(a, c) {
switch (arguments.length) {
case 0:
return this.$$search;
case 1:
if (D(a)) this.$$search = Xb(a);
else if (X(a)) this.$$search = a;
else throw Ib("isrcharg");
break;
default:
z(c) || null === c ? delete this.$$search[a] : this.$$search[a] = c
}
this.$$compose();
return this
},
hash: vc("$$hash", Ba),
replace: function() {
this.$$replace = !0;
return this
}
};
var za = F("$parse"),
yc = {},
ra, Ka = {
"null": function() {
return null
},
"true": function() {
return !0
},
"false": function() {
return !1
},
undefined: w,
"+": function(a, c, d, e) {
d = d(a, c);
e = e(a, c);
return B(d) ? B(e) ? d + e : d : B(e) ? e : r
},
"-": function(a, c, d, e) {
d = d(a, c);
e = e(a, c);
return (B(d) ? d : 0) - (B(e) ? e : 0)
},
"*": function(a, c, d, e) {
return d(a, c) * e(a, c)
},
"/": function(a, c, d, e) {
return d(a, c) / e(a, c)
},
"%": function(a, c, d, e) {
return d(a, c) % e(a, c)
},
"^": function(a, c, d, e) {
return d(a, c) ^ e(a, c)
},
"=": w,
"===": function(a, c, d, e) {
return d(a, c) === e(a, c)
},
"!==": function(a, c, d, e) {
return d(a, c) !== e(a, c)
},
"==": function(a, c, d, e) {
return d(a, c) == e(a, c)
},
"!=": function(a, c, d, e) {
return d(a, c) != e(a, c)
},
"<": function(a, c, d, e) {
return d(a, c) < e(a, c)
},
">": function(a, c, d, e) {
return d(a, c) > e(a, c)
},
"<=": function(a, c, d, e) {
return d(a, c) <= e(a, c)
},
">=": function(a, c, d, e) {
return d(a, c) >= e(a, c)
},
"&&": function(a, c, d, e) {
return d(a, c) && e(a, c)
},
"||": function(a, c, d, e) {
return d(a, c) || e(a, c)
},
"&": function(a, c, d, e) {
return d(a, c) & e(a, c)
},
"|": function(a, c, d, e) {
return e(a, c)(a, c, d(a, c))
},
"!": function(a, c, d) {
return !d(a, c)
}
},
Wd = {
n: "\n",
f: "\f",
r: "\r",
t: " ",
v: "",
"'": "'",
'"': '"'
},
Lb = function(a) {
this.options = a
};
Lb.prototype = {
constructor: Lb,
lex: function(a) {
this.text = a;
this.index = 0;
this.ch = r;
this.lastCh = ":";
this.tokens = [];
var c;
for (a = []; this.index < this.text.length;) {
this.ch = this.text.charAt(this.index);
if (this.is("\"'")) this.readString(this.ch);
else if (this.isNumber(this.ch) || this.is(".") && this.isNumber(this.peek())) this.readNumber();
else if (this.isIdent(this.ch)) this.readIdent(), this.was("{,") && ("{" === a[0] && (c = this.tokens[this.tokens.length - 1])) && (c.json = -1 === c.text.indexOf("."));
else if (this.is("(){}[].,;:?")) this.tokens.push({
index: this.index,
text: this.ch,
json: this.was(":[,") && this.is("{[") || this.is("}]:,")
}), this.is("{[") && a.unshift(this.ch), this.is("}]") && a.shift(), this.index++;
else if (this.isWhitespace(this.ch)) {
this.index++;
continue
} else {
var d = this.ch + this.peek(),
e = d + this.peek(2),
g = Ka[this.ch],
f = Ka[d],
h = Ka[e];
h ? (this.tokens.push({
index: this.index,
text: e,
fn: h
}), this.index += 3) : f ? (this.tokens.push({
index: this.index,
text: d,
fn: f
}), this.index += 2) : g ? (this.tokens.push({
index: this.index,
text: this.ch,
fn: g,
json: this.was("[,:") && this.is("+-")
}), this.index += 1) : this.throwError("Unexpected next character ", this.index, this.index + 1)
}
this.lastCh = this.ch
}
return this.tokens
},
is: function(a) {
return -1 !== a.indexOf(this.ch)
},
was: function(a) {
return -1 !== a.indexOf(this.lastCh)
},
peek: function(a) {
a = a || 1;
return this.index + a < this.text.length ? this.text.charAt(this.index + a) : !1
},
isNumber: function(a) {
return "0" <= a && "9" >= a
},
isWhitespace: function(a) {
return " " === a || "\r" === a || " " === a || "\n" === a || "" === a || "Â " === a
},
isIdent: function(a) {
return "a" <= a && "z" >= a || "A" <= a && "Z" >= a || "_" === a || "$" === a
},
isExpOperator: function(a) {
return "-" === a || "+" === a || this.isNumber(a)
},
throwError: function(a, c, d) {
d = d || this.index;
c = B(c) ? "s " + c + "-" + this.index + " [" + this.text.substring(c, d) + "]" : " " + d;
throw za("lexerr", a, c, this.text)
},
readNumber: function() {
for (var a = "", c = this.index; this.index < this.text.length;) {
var d = x(this.text.charAt(this.index));
if ("." == d || this.isNumber(d)) a += d;
else {
var e = this.peek();
if ("e" == d && this.isExpOperator(e)) a += d;
else if (this.isExpOperator(d) && e && this.isNumber(e) && "e" == a.charAt(a.length - 1)) a += d;
else if (!this.isExpOperator(d) || e && this.isNumber(e) || "e" != a.charAt(a.length - 1)) break;
else this.throwError("Invalid exponent")
}
this.index++
}
a *= 1;
this.tokens.push({
index: c,
text: a,
json: !0,
fn: function() {
return a
}
})
},
readIdent: function() {
for (var a = this, c = "", d = this.index, e, g, f, h; this.index < this.text.length;) {
h = this.text.charAt(this.index);
if ("." === h || this.isIdent(h) || this.isNumber(h)) "." === h && (e = this.index), c += h;
else break;
this.index++
}
if (e)
for (g = this.index; g < this.text.length;) {
h = this.text.charAt(g);
if ("(" === h) {
f = c.substr(e - d + 1);
c = c.substr(0, e - d);
this.index = g;
break
}
if (this.isWhitespace(h)) g++;
else break
}
d = {
index: d,
text: c
};
if (Ka.hasOwnProperty(c)) d.fn = Ka[c], d.json = Ka[c];
else {
var m = xc(c, this.options, this.text);
d.fn = t(function(a, c) {
return m(a, c)
}, {
assign: function(d, e) {
return kb(d, c, e, a.text, a.options)
}
})
}
this.tokens.push(d);
f && (this.tokens.push({
index: e,
text: ".",
json: !1
}), this.tokens.push({
index: e + 1,
text: f,
json: !1
}))
},
readString: function(a) {
var c = this.index;
this.index++;
for (var d = "", e = a, g = !1; this.index < this.text.length;) {
var f = this.text.charAt(this.index),
e = e + f;
if (g) "u" === f ? (f = this.text.substring(this.index + 1, this.index + 5), f.match(/[\da-f]{4}/i) || this.throwError("Invalid unicode escape [\\u" + f + "]"), this.index += 4, d += String.fromCharCode(parseInt(f, 16))) : d = (g = Wd[f]) ? d + g : d + f, g = !1;
else if ("\\" === f) g = !0;
else {
if (f === a) {
this.index++;
this.tokens.push({
index: c,
text: e,
string: d,
json: !0,
fn: function() {
return d
}
});
return
}
d += f
}
this.index++
}
this.throwError("Unterminated quote", c)
}
};
var Za = function(a, c, d) {
this.lexer = a;
this.$filter = c;
this.options = d
};
Za.ZERO = function() {
return 0
};
Za.prototype = {
constructor: Za,
parse: function(a, c) {
this.text = a;
this.json = c;
this.tokens = this.lexer.lex(a);
c && (this.assignment = this.logicalOR, this.functionCall = this.fieldAccess = this.objectIndex = this.filterChain = function() {
this.throwError("is not valid json", {
text: a,
index: 0
})
});
var d = c ? this.primary() : this.statements();
0 !== this.tokens.length && this.throwError("is an unexpected token", this.tokens[0]);
d.literal = !!d.literal;
d.constant = !!d.constant;
return d
},
primary: function() {
var a;
if (this.expect("(")) a = this.filterChain(), this.consume(")");
else if (this.expect("[")) a = this.arrayDeclaration();
else if (this.expect("{")) a = this.object();
else {
var c = this.expect();
(a = c.fn) || this.throwError("not a primary expression", c);
c.json && (a.constant = !0, a.literal = !0)
}
for (var d; c = this.expect("(", "[", ".");) "(" === c.text ? (a = this.functionCall(a, d), d = null) : "[" === c.text ? (d = a, a = this.objectIndex(a)) : "." === c.text ? (d = a, a = this.fieldAccess(a)) : this.throwError("IMPOSSIBLE");
return a
},
throwError: function(a, c) {
throw za("syntax", c.text, a, c.index + 1, this.text, this.text.substring(c.index))
},
peekToken: function() {
if (0 === this.tokens.length) throw za("ueoe", this.text);
return this.tokens[0]
},
peek: function(a, c, d, e) {
if (0 < this.tokens.length) {
var g = this.tokens[0],
f = g.text;
if (f === a || f === c || f === d || f === e || !(a || c || d || e)) return g
}
return !1
},
expect: function(a, c, d, e) {
return (a = this.peek(a, c, d, e)) ? (this.json && !a.json && this.throwError("is not valid json", a), this.tokens.shift(), a) : !1
},
consume: function(a) {
this.expect(a) || this.throwError("is unexpected, expecting [" + a + "]", this.peek())
},
unaryFn: function(a, c) {
return t(function(d, e) {
return a(d, e, c)
}, {
constant: c.constant
})
},
ternaryFn: function(a, c, d) {
return t(function(e, g) {
return a(e, g) ? c(e, g) : d(e, g)
}, {
constant: a.constant && c.constant && d.constant
})
},
binaryFn: function(a, c, d) {
return t(function(e, g) {
return c(e, g, a, d)
}, {
constant: a.constant && d.constant
})
},
statements: function() {
for (var a = [];;)
if (0 < this.tokens.length && !this.peek("}", ")", ";", "]") && a.push(this.filterChain()), !this.expect(";")) return 1 === a.length ? a[0] : function(c, d) {
for (var e, g = 0; g < a.length; g++) {
var f = a[g];
f && (e = f(c, d))
}
return e
}
},
filterChain: function() {
for (var a = this.expression(), c;;)
if (c = this.expect("|")) a = this.binaryFn(a, c.fn, this.filter());
else return a
},
filter: function() {
for (var a = this.expect(), c = this.$filter(a.text), d = [];;)
if (a = this.expect(":")) d.push(this.expression());
else {
var e = function(a, e, h) {
h = [h];
for (var m = 0; m < d.length; m++) h.push(d[m](a, e));
return c.apply(a, h)
};
return function() {
return e
}
}
},
expression: function() {
return this.assignment()
},
assignment: function() {
var a = this.ternary(),
c, d;
return (d = this.expect("=")) ? (a.assign || this.throwError("implies assignment but [" + this.text.substring(0, d.index) + "] can not be assigned to", d), c = this.ternary(), function(d, g) {
return a.assign(d, c(d, g), g)
}) : a
},
ternary: function() {
var a = this.logicalOR(),
c, d;
if (this.expect("?")) {
c = this.ternary();
if (d = this.expect(":")) return this.ternaryFn(a, c, this.ternary());
this.throwError("expected :", d)
} else return a
},
logicalOR: function() {
for (var a = this.logicalAND(), c;;)
if (c = this.expect("||")) a = this.binaryFn(a, c.fn, this.logicalAND());
else return a
},
logicalAND: function() {
var a = this.equality(),
c;
if (c = this.expect("&&")) a = this.binaryFn(a, c.fn, this.logicalAND());
return a
},
equality: function() {
var a = this.relational(),
c;
if (c = this.expect("==", "!=", "===", "!==")) a = this.binaryFn(a, c.fn, this.equality());
return a
},
relational: function() {
var a = this.additive(),
c;
if (c = this.expect("<", ">", "<=", ">=")) a = this.binaryFn(a, c.fn, this.relational());
return a
},
additive: function() {
for (var a = this.multiplicative(), c; c = this.expect("+", "-");) a = this.binaryFn(a, c.fn, this.multiplicative());
return a
},
multiplicative: function() {
for (var a = this.unary(), c; c = this.expect("*", "/", "%");) a = this.binaryFn(a, c.fn, this.unary());
return a
},
unary: function() {
var a;
return this.expect("+") ? this.primary() : (a = this.expect("-")) ? this.binaryFn(Za.ZERO, a.fn, this.unary()) : (a = this.expect("!")) ? this.unaryFn(a.fn, this.unary()) : this.primary()
},
fieldAccess: function(a) {
var c = this,
d = this.expect().text,
e = xc(d, this.options, this.text);
return t(function(c, d, h) {
return e(h || a(c, d))
}, {
assign: function(e, f, h) {
return kb(a(e, h), d, f, c.text, c.options)
}
})
},
objectIndex: function(a) {
var c = this,
d = this.expression();
this.consume("]");
return t(function(e, g) {
var f = a(e, g),
h = d(e, g),
m;
if (!f) return r;
(f = Ya(f[h], c.text)) && (f.then && c.options.unwrapPromises) && (m = f, "$$v" in f || (m.$$v = r, m.then(function(a) {
m.$$v = a
})), f = f.$$v);
return f
}, {
assign: function(e, g, f) {
var h = d(e, f);
return Ya(a(e, f), c.text)[h] = g
}
})
},
functionCall: function(a, c) {
var d = [];
if (")" !== this.peekToken().text) {
do d.push(this.expression()); while (this.expect(","))
}
this.consume(")");
var e = this;
return function(g, f) {
for (var h = [], m = c ? c(g, f) : g, k = 0; k < d.length; k++) h.push(d[k](g, f));
k = a(g, f, m) || w;
Ya(m, e.text);
Ya(k, e.text);
h = k.apply ? k.apply(m, h) : k(h[0], h[1], h[2], h[3], h[4]);
return Ya(h, e.text)
}
},
arrayDeclaration: function() {
var a = [],
c = !0;
if ("]" !== this.peekToken().text) {
do {
var d = this.expression();
a.push(d);
d.constant || (c = !1)
} while (this.expect(","))
}
this.consume("]");
return t(function(c, d) {
for (var f = [], h = 0; h < a.length; h++) f.push(a[h](c, d));
return f
}, {
literal: !0,
constant: c
})
},
object: function() {
var a = [],
c = !0;
if ("}" !== this.peekToken().text) {
do {
var d = this.expect(),
d = d.string || d.text;
this.consume(":");
var e = this.expression();
a.push({
key: d,
value: e
});
e.constant || (c = !1)
} while (this.expect(","))
}
this.consume("}");
return t(function(c, d) {
for (var e = {}, m = 0; m < a.length; m++) {
var k = a[m];
e[k.key] = k.value(c, d)
}
return e
}, {
literal: !0,
constant: c
})
}
};
var Kb = {},
sa = F("$sce"),
fa = {
HTML: "html",
CSS: "css",
URL: "url",
RESOURCE_URL: "resourceUrl",
JS: "js"
},
Y = Q.createElement("a"),
Ac = ya(Z.location.href, !0);
Bc.$inject = ["$provide"];
Cc.$inject = ["$locale"];
Ec.$inject = ["$locale"];
var Hc = ".",
Qd = {
yyyy: W("FullYear", 4),
yy: W("FullYear", 2, 0, !0),
y: W("FullYear", 1),
MMMM: lb("Month"),
MMM: lb("Month", !0),
MM: W("Month", 2, 1),
M: W("Month", 1, 1),
dd: W("Date", 2),
d: W("Date", 1),
HH: W("Hours", 2),
H: W("Hours", 1),
hh: W("Hours", 2, -12),
h: W("Hours", 1, -12),
mm: W("Minutes", 2),
m: W("Minutes", 1),
ss: W("Seconds", 2),
s: W("Seconds", 1),
sss: W("Milliseconds", 3),
EEEE: lb("Day"),
EEE: lb("Day", !0),
a: function(a, c) {
return 12 > a.getHours() ? c.AMPMS[0] : c.AMPMS[1]
},
Z: function(a) {
a = -1 * a.getTimezoneOffset();
return a = (0 <= a ? "+" : "") + (Mb(Math[0 < a ? "floor" : "ceil"](a / 60), 2) + Mb(Math.abs(a % 60), 2))
}
},
Pd = /((?:[^yMdHhmsaZE']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|d+|H+|h+|m+|s+|a|Z))(.*)/,
Od = /^\-?\d+$/;
Dc.$inject = ["$locale"];
var Md = $(x),
Nd = $(Ia);
Fc.$inject = ["$parse"];
var Xd = $({
restrict: "E",
compile: function(a, c) {
8 >= M && (c.href || c.name || c.$set("href", ""), a.append(Q.createComment("IE fix")));
if (!c.href && !c.xlinkHref && !c.name) return function(a, c) {
var g = "[object SVGAnimatedString]" === Ma.call(c.prop("href")) ? "xlink:href" : "href";
c.on("click", function(a) {
c.attr(g) || a.preventDefault()
})
}
}
}),
Ob = {};
q(gb, function(a, c) {
if ("multiple" != a) {
var d = ma("ng-" + c);
Ob[d] = function() {
return {
priority: 100,
link: function(a, g, f) {
a.$watch(f[d], function(a) {
f.$set(c, !!a)
})
}
}
}
}
});
q(["src", "srcset", "href"], function(a) {
var c = ma("ng-" + a);
Ob[c] = function() {
return {
priority: 99,
link: function(d, e, g) {
g.$observe(c, function(c) {
c && (g.$set(a, c), M && e.prop(a, g[a]))
})
}
}
}
});
var ob = {
$addControl: w,
$removeControl: w,
$setValidity: w,
$setDirty: w,
$setPristine: w
};
Ic.$inject = ["$element", "$attrs", "$scope"];
var Kc = function(a) {
return ["$timeout", function(c) {
return {
name: "form",
restrict: a ? "EAC" : "E",
controller: Ic,
compile: function() {
return {
pre: function(a, e, g, f) {
if (!g.action) {
var h = function(a) {
a.preventDefault ? a.preventDefault() : a.returnValue = !1
};
Jc(e[0], "submit", h);
e.on("$destroy", function() {
c(function() {
Bb(e[0], "submit", h)
}, 0, !1)
})
}
var m = e.parent().controller("form"),
k = g.name || g.ngForm;
k && kb(a, k, f, k);
if (m) e.on("$destroy", function() {
m.$removeControl(f);
k && kb(a, k, r, k);
t(f, ob)
})
}
}
}
}
}]
},
Yd = Kc(),
Zd = Kc(!0),
$d = /^(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?$/,
ae = /^[a-z0-9!#$%&'*+/=?^_`{|}~.-]+@[a-z0-9-]+(\.[a-z0-9-]+)*$/i,
be = /^\s*(\-|\+)?(\d+|(\d*(\.\d*)))\s*$/,
Lc = {
text: qb,
number: function(a, c, d, e, g, f) {
qb(a, c, d, e, g, f);
e.$parsers.push(function(a) {
var c = e.$isEmpty(a);
if (c || be.test(a)) return e.$setValidity("number", !0), "" === a ? null : c ? a : parseFloat(a);
e.$setValidity("number", !1);
return r
});
e.$formatters.push(function(a) {
return e.$isEmpty(a) ? "" : "" + a
});
d.min && (a = function(a) {
var c = parseFloat(d.min);
return pa(e, "min", e.$isEmpty(a) || a >= c, a)
}, e.$parsers.push(a), e.$formatters.push(a));
d.max && (a = function(a) {
var c = parseFloat(d.max);
return pa(e, "max", e.$isEmpty(a) || a <= c, a)
}, e.$parsers.push(a), e.$formatters.push(a));
e.$formatters.push(function(a) {
return pa(e, "number", e.$isEmpty(a) || sb(a), a)
})
},
url: function(a, c, d, e, g, f) {
qb(a, c, d, e, g, f);
a = function(a) {
return pa(e, "url", e.$isEmpty(a) || $d.test(a), a)
};
e.$formatters.push(a);
e.$parsers.push(a)
},
email: function(a, c, d, e, g, f) {
qb(a, c, d, e, g, f);
a = function(a) {
return pa(e, "email", e.$isEmpty(a) || ae.test(a), a)
};
e.$formatters.push(a);
e.$parsers.push(a)
},
radio: function(a, c, d, e) {
z(d.name) && c.attr("name", $a());
c.on("click", function() {
c[0].checked && a.$apply(function() {
e.$setViewValue(d.value)
})
});
e.$render = function() {
c[0].checked = d.value == e.$viewValue
};
d.$observe("value", e.$render)
},
checkbox: function(a, c, d, e) {
var g = d.ngTrueValue,
f = d.ngFalseValue;
D(g) || (g = !0);
D(f) || (f = !1);
c.on("click", function() {
a.$apply(function() {
e.$setViewValue(c[0].checked)
})
});
e.$render = function() {
c[0].checked = e.$viewValue
};
e.$isEmpty = function(a) {
return a !== g
};
e.$formatters.push(function(a) {
return a === g
});
e.$parsers.push(function(a) {
return a ? g : f
})
},
hidden: w,
button: w,
submit: w,
reset: w
},
Mc = ["$browser", "$sniffer", function(a, c) {
return {
restrict: "E",
require: "?ngModel",
link: function(d, e, g, f) {
f && (Lc[x(g.type)] || Lc.text)(d, e, g, f, c, a)
}
}
}],
nb = "ng-valid",
mb = "ng-invalid",
Ja = "ng-pristine",
pb = "ng-dirty",
ce = ["$scope", "$exceptionHandler", "$attrs", "$element", "$parse", function(a, c, d, e, g) {
function f(a, c) {
c = c ? "-" + db(c, "-") : "";
e.removeClass((a ? mb : nb) + c).addClass((a ? nb : mb) + c)
}
this.$modelValue = this.$viewValue = Number.NaN;
this.$parsers = [];
this.$formatters = [];
this.$viewChangeListeners = [];
this.$pristine = !0;
this.$dirty = !1;
this.$valid = !0;
this.$invalid = !1;
this.$name = d.name;
var h = g(d.ngModel),
m = h.assign;
if (!m) throw F("ngModel")("nonassign", d.ngModel, ga(e));
this.$render = w;
this.$isEmpty = function(a) {
return z(a) || "" === a || null === a || a !== a
};
var k = e.inheritedData("$formController") || ob,
l = 0,
n = this.$error = {};
e.addClass(Ja);
f(!0);
this.$setValidity = function(a, c) {
n[a] !== !c && (c ? (n[a] && l--, l || (f(!0), this.$valid = !0, this.$invalid = !1)) : (f(!1), this.$invalid = !0, this.$valid = !1, l++), n[a] = !c, f(c, a), k.$setValidity(a, c, this))
};
this.$setPristine = function() {
this.$dirty = !1;
this.$pristine = !0;
e.removeClass(pb).addClass(Ja)
};
this.$setViewValue = function(d) {
this.$viewValue = d;
this.$pristine && (this.$dirty = !0, this.$pristine = !1, e.removeClass(Ja).addClass(pb), k.$setDirty());
q(this.$parsers, function(a) {
d = a(d)
});
this.$modelValue !== d && (this.$modelValue = d, m(a, d), q(this.$viewChangeListeners, function(a) {
try {
a()
} catch (d) {
c(d)
}
}))
};
var p = this;
a.$watch(function() {
var c = h(a);
if (p.$modelValue !== c) {
var d = p.$formatters,
e = d.length;
for (p.$modelValue = c; e--;) c = d[e](c);
p.$viewValue !== c && (p.$viewValue = c, p.$render())
}
return c
})
}],
de = function() {
return {
require: ["ngModel", "^?form"],
controller: ce,
link: function(a, c, d, e) {
var g = e[0],
f = e[1] || ob;
f.$addControl(g);
a.$on("$destroy", function() {
f.$removeControl(g)
})
}
}
},
ee = $({
require: "ngModel",
link: function(a, c, d, e) {
e.$viewChangeListeners.push(function() {
a.$eval(d.ngChange)
})
}
}),
Nc = function() {
return {
require: "?ngModel",
link: function(a, c, d, e) {
if (e) {
d.required = !0;
var g = function(a) {
if (d.required && e.$isEmpty(a)) e.$setValidity("required", !1);
else return e.$setValidity("required", !0), a
};
e.$formatters.push(g);
e.$parsers.unshift(g);
d.$observe("required", function() {
g(e.$viewValue)
})
}
}
}
},
fe = function() {
return {
require: "ngModel",
link: function(a, c, d, e) {
var g = (a = /\/(.*)\//.exec(d.ngList)) && RegExp(a[1]) || d.ngList || ",";
e.$parsers.push(function(a) {
if (!z(a)) {
var c = [];
a && q(a.split(g), function(a) {
a && c.push(ba(a))
});
return c
}
});
e.$formatters.push(function(a) {
return K(a) ? a.join(", ") : r
});
e.$isEmpty = function(a) {
return !a || !a.length
}
}
}
},
ge = /^(true|false|\d+)$/,
he = function() {
return {
priority: 100,
compile: function(a, c) {
return ge.test(c.ngValue) ? function(a, c, g) {
g.$set("value", a.$eval(g.ngValue))
} : function(a, c, g) {
a.$watch(g.ngValue, function(a) {
g.$set("value", a)
})
}
}
}
},
ie = ta(function(a, c, d) {
c.addClass("ng-binding").data("$binding", d.ngBind);
a.$watch(d.ngBind, function(a) {
c.text(a == r ? "" : a)
})
}),
je = ["$interpolate", function(a) {
return function(c, d, e) {
c = a(d.attr(e.$attr.ngBindTemplate));
d.addClass("ng-binding").data("$binding", c);
e.$observe("ngBindTemplate", function(a) {
d.text(a)
})
}
}],
ke = ["$sce", "$parse", function(a, c) {
return function(d, e, g) {
e.addClass("ng-binding").data("$binding", g.ngBindHtml);
var f = c(g.ngBindHtml);
d.$watch(function() {
return (f(d) || "").toString()
}, function(c) {
e.html(a.getTrustedHtml(f(d)) || "")
})
}
}],
le = Nb("", !0),
me = Nb("Odd", 0),
ne = Nb("Even", 1),
oe = ta({
compile: function(a, c) {
c.$set("ngCloak", r);
a.removeClass("ng-cloak")
}
}),
pe = [function() {
return {
scope: !0,
controller: "@",
priority: 500
}
}],
Oc = {};
q("click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave keydown keyup keypress submit focus blur copy cut paste".split(" "), function(a) {
var c = ma("ng-" + a);
Oc[c] = ["$parse", function(d) {
return {
compile: function(e, g) {
var f = d(g[c]);
return function(c, d, e) {
d.on(x(a), function(a) {
c.$apply(function() {
f(c, {
$event: a
})
})
})
}
}
}
}]
});
var qe = ["$animate", function(a) {
return {
transclude: "element",
priority: 600,
terminal: !0,
restrict: "A",
$$tlb: !0,
link: function(c, d, e, g, f) {
var h, m;
c.$watch(e.ngIf, function(g) {
Pa(g) ? m || (m = c.$new(), f(m, function(c) {
c[c.length++] = Q.createComment(" end ngIf: " + e.ngIf + " ");
h = {
clone: c
};
a.enter(c, d.parent(), d)
})) : (m && (m.$destroy(), m = null), h && (a.leave(wb(h.clone)), h = null))
})
}
}
}],
re = ["$http", "$templateCache", "$anchorScroll", "$animate", "$sce", function(a, c, d, e, g) {
return {
restrict: "ECA",
priority: 400,
terminal: !0,
transclude: "element",
controller: Ca.noop,
compile: function(f, h) {
var m = h.ngInclude || h.src,
k = h.onload || "",
l = h.autoscroll;
return function(f, h, q, r, y) {
var A = 0,
u, t, H = function() {
u && (u.$destroy(), u = null);
t && (e.leave(t), t = null)
};
f.$watch(g.parseAsResourceUrl(m), function(g) {
var m = function() {
!B(l) || l && !f.$eval(l) || d()
},
q = ++A;
g ? (a.get(g, {
cache: c
}).success(function(a) {
if (q === A) {
var c = f.$new();
r.template = a;
a = y(c, function(a) {
H();
e.enter(a, null, h, m)
});
u = c;
t = a;
u.$emit("$includeContentLoaded");
f.$eval(k)
}
}).error(function() {
q === A && H()
}), f.$emit("$includeContentRequested")) : (H(), r.template = null)
})
}
}
}
}],
se = ["$compile", function(a) {
return {
restrict: "ECA",
priority: -400,
require: "ngInclude",
link: function(c, d, e, g) {
d.html(g.template);
a(d.contents())(c)
}
}
}],
te = ta({
priority: 450,
compile: function() {
return {
pre: function(a, c, d) {
a.$eval(d.ngInit)
}
}
}
}),
ue = ta({
terminal: !0,
priority: 1e3
}),
ve = ["$locale", "$interpolate", function(a, c) {
var d = /{}/g;
return {
restrict: "EA",
link: function(e, g, f) {
var h = f.count,
m = f.$attr.when && g.attr(f.$attr.when),
k = f.offset || 0,
l = e.$eval(m) || {},
n = {},
p = c.startSymbol(),
s = c.endSymbol(),
r = /^when(Minus)?(.+)$/;
q(f, function(a, c) {
r.test(c) && (l[x(c.replace("when", "").replace("Minus", "-"))] = g.attr(f.$attr[c]))
});
q(l, function(a, e) {
n[e] = c(a.replace(d, p + h + "-" + k + s))
});
e.$watch(function() {
var c = parseFloat(e.$eval(h));
if (isNaN(c)) return "";
c in l || (c = a.pluralCat(c - k));
return n[c](e, g, !0)
}, function(a) {
g.text(a)
})
}
}
}],
we = ["$parse", "$animate", function(a, c) {
var d = F("ngRepeat");
return {
transclude: "element",
priority: 1e3,
terminal: !0,
$$tlb: !0,
link: function(e, g, f, h, m) {
var k = f.ngRepeat,
l = k.match(/^\s*([\s\S]+?)\s+in\s+([\s\S]+?)(?:\s+track\s+by\s+([\s\S]+?))?\s*$/),
n, p, s, r, y, t, u = {
$id: Fa
};
if (!l) throw d("iexp", k);
f = l[1];
h = l[2];
(l = l[3]) ? (n = a(l), p = function(a, c, d) {
t && (u[t] = a);
u[y] = c;
u.$index = d;
return n(e, u)
}) : (s = function(a, c) {
return Fa(c)
}, r = function(a) {
return a
});
l = f.match(/^(?:([\$\w]+)|\(([\$\w]+)\s*,\s*([\$\w]+)\))$/);
if (!l) throw d("iidexp", f);
y = l[3] || l[1];
t = l[2];
var B = {};
e.$watchCollection(h, function(a) {
var f, h, l = g[0],
n, u = {},
z, P, D, x, T, w, F = [];
if (rb(a)) T = a, n = p || s;
else {
n = p || r;
T = [];
for (D in a) a.hasOwnProperty(D) && "$" != D.charAt(0) && T.push(D);
T.sort()
}
z = T.length;
h = F.length = T.length;
for (f = 0; f < h; f++)
if (D = a === T ? f : T[f], x = a[D], x = n(D, x, f), xa(x, "`track by` id"), B.hasOwnProperty(x)) w = B[x], delete B[x], u[x] = w, F[f] = w;
else {
if (u.hasOwnProperty(x)) throw q(F, function(a) {
a && a.scope && (B[a.id] = a)
}), d("dupes", k, x);
F[f] = {
id: x
};
u[x] = !1
} for (D in B) B.hasOwnProperty(D) && (w = B[D], f = wb(w.clone), c.leave(f), q(f, function(a) {
a.$$NG_REMOVED = !0
}), w.scope.$destroy());
f = 0;
for (h = T.length; f < h; f++) {
D = a === T ? f : T[f];
x = a[D];
w = F[f];
F[f - 1] && (l = F[f - 1].clone[F[f - 1].clone.length - 1]);
if (w.scope) {
P = w.scope;
n = l;
do n = n.nextSibling; while (n && n.$$NG_REMOVED);
w.clone[0] != n && c.move(wb(w.clone), null, A(l));
l = w.clone[w.clone.length - 1]
} else P = e.$new();
P[y] = x;
t && (P[t] = D);
P.$index = f;
P.$first = 0 === f;
P.$last = f === z - 1;
P.$middle = !(P.$first || P.$last);
P.$odd = !(P.$even = 0 === (f & 1));
w.scope || m(P, function(a) {
a[a.length++] = Q.createComment(" end ngRepeat: " + k + " ");
c.enter(a, null, A(l));
l = a;
w.scope = P;
w.clone = a;
u[w.id] = w
})
}
B = u
})
}
}
}],
xe = ["$animate", function(a) {
return function(c, d, e) {
c.$watch(e.ngShow, function(c) {
a[Pa(c) ? "removeClass" : "addClass"](d, "ng-hide")
})
}
}],
ye = ["$animate", function(a) {
return function(c, d, e) {
c.$watch(e.ngHide, function(c) {
a[Pa(c) ? "addClass" : "removeClass"](d, "ng-hide")
})
}
}],
ze = ta(function(a, c, d) {
a.$watch(d.ngStyle, function(a, d) {
d && a !== d && q(d, function(a, d) {
c.css(d, "")
});
a && c.css(a)
}, !0)
}),
Ae = ["$animate", function(a) {
return {
restrict: "EA",
require: "ngSwitch",
controller: ["$scope", function() {
this.cases = {}
}],
link: function(c, d, e, g) {
var f, h, m = [];
c.$watch(e.ngSwitch || e.on, function(d) {
for (var l = 0, n = m.length; l < n; l++) m[l].$destroy(), a.leave(h[l]);
h = [];
m = [];
if (f = g.cases["!" + d] || g.cases["?"]) c.$eval(e.change), q(f, function(d) {
var e = c.$new();
m.push(e);
d.transclude(e, function(c) {
var e = d.element;
h.push(c);
a.enter(c, e.parent(), e)
})
})
})
}
}
}],
Be = ta({
transclude: "element",
priority: 800,
require: "^ngSwitch",
link: function(a, c, d, e, g) {
e.cases["!" + d.ngSwitchWhen] = e.cases["!" + d.ngSwitchWhen] || [];
e.cases["!" + d.ngSwitchWhen].push({
transclude: g,
element: c
})
}
}),
Ce = ta({
transclude: "element",
priority: 800,
require: "^ngSwitch",
link: function(a, c, d, e, g) {
e.cases["?"] = e.cases["?"] || [];
e.cases["?"].push({
transclude: g,
element: c
})
}
}),
De = ta({
controller: ["$element", "$transclude", function(a, c) {
if (!c) throw F("ngTransclude")("orphan", ga(a));
this.$transclude = c
}],
link: function(a, c, d, e) {
e.$transclude(function(a) {
c.empty();
c.append(a)
})
}
}),
Ee = ["$templateCache", function(a) {
return {
restrict: "E",
terminal: !0,
compile: function(c, d) {
"text/ng-template" == d.type && a.put(d.id, c[0].text)
}
}
}],
Fe = F("ngOptions"),
Ge = $({
terminal: !0
}),
He = ["$compile", "$parse", function(a, c) {
var d = /^\s*([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+group\s+by\s+([\s\S]+?))?\s+for\s+(?:([\$\w][\$\w]*)|(?:\(\s*([\$\w][\$\w]*)\s*,\s*([\$\w][\$\w]*)\s*\)))\s+in\s+([\s\S]+?)(?:\s+track\s+by\s+([\s\S]+?))?$/,
e = {
$setViewValue: w
};
return {
restrict: "E",
require: ["select", "?ngModel"],
controller: ["$element", "$scope", "$attrs", function(a, c, d) {
var m = this,
k = {},
l = e,
n;
m.databound = d.ngModel;
m.init = function(a, c, d) {
l = a;
n = d
};
m.addOption = function(c) {
xa(c, '"option value"');
k[c] = !0;
l.$viewValue == c && (a.val(c), n.parent() && n.remove())
};
m.removeOption = function(a) {
this.hasOption(a) && (delete k[a], l.$viewValue == a && this.renderUnknownOption(a))
};
m.renderUnknownOption = function(c) {
c = "? " + Fa(c) + " ?";
n.val(c);
a.prepend(n);
a.val(c);
n.prop("selected", !0)
};
m.hasOption = function(a) {
return k.hasOwnProperty(a)
};
c.$on("$destroy", function() {
m.renderUnknownOption = w
})
}],
link: function(e, f, h, m) {
function k(a, c, d, e) {
d.$render = function() {
var a = d.$viewValue;
e.hasOption(a) ? (x.parent() && x.remove(), c.val(a), "" === a && w.prop("selected", !0)) : z(a) && w ? c.val("") : e.renderUnknownOption(a)
};
c.on("change", function() {
a.$apply(function() {
x.parent() && x.remove();
d.$setViewValue(c.val())
})
})
}
function l(a, c, d) {
var e;
d.$render = function() {
var a = new Ta(d.$viewValue);
q(c.find("option"), function(c) {
c.selected = B(a.get(c.value))
})
};
a.$watch(function() {
ua(e, d.$viewValue) || (e = aa(d.$viewValue), d.$render())
});
c.on("change", function() {
a.$apply(function() {
var a = [];
q(c.find("option"), function(c) {
c.selected && a.push(c.value)
});
d.$setViewValue(a)
})
})
}
function n(e, f, g) {
function h() {
var a = {
"": []
},
c = [""],
d, k, r, t, v;
t = g.$modelValue;
v = A(e) || [];
var C = n ? Pb(v) : v,
F, I, z;
I = {};
r = !1;
var E, H;
if (s)
if (w && K(t))
for (r = new Ta([]), z = 0; z < t.length; z++) I[m] = t[z], r.put(w(e, I), t[z]);
else r = new Ta(t);
for (z = 0; F = C.length, z < F; z++) {
k = z;
if (n) {
k = C[z];
if ("$" === k.charAt(0)) continue;
I[n] = k
}
I[m] = v[k];
d = p(e, I) || "";
(k = a[d]) || (k = a[d] = [], c.push(d));
s ? d = B(r.remove(w ? w(e, I) : q(e, I))) : (w ? (d = {}, d[m] = t, d = w(e, d) === w(e, I)) : d = t === q(e, I), r = r || d);
E = l(e, I);
E = B(E) ? E : "";
k.push({
id: w ? w(e, I) : n ? C[z] : z,
label: E,
selected: d
})
}
s || (y || null === t ? a[""].unshift({
id: "",
label: "",
selected: !r
}) : r || a[""].unshift({
id: "?",
label: "",
selected: !0
}));
I = 0;
for (C = c.length; I < C; I++) {
d = c[I];
k = a[d];
x.length <= I ? (t = {
element: D.clone().attr("label", d),
label: k.label
}, v = [t], x.push(v), f.append(t.element)) : (v = x[I], t = v[0], t.label != d && t.element.attr("label", t.label = d));
E = null;
z = 0;
for (F = k.length; z < F; z++) r = k[z], (d = v[z + 1]) ? (E = d.element, d.label !== r.label && E.text(d.label = r.label), d.id !== r.id && E.val(d.id = r.id), E[0].selected !== r.selected && E.prop("selected", d.selected = r.selected)) : ("" === r.id && y ? H = y : (H = u.clone()).val(r.id).attr("selected", r.selected).text(r.label), v.push({
element: H,
label: r.label,
id: r.id,
selected: r.selected
}), E ? E.after(H) : t.element.append(H), E = H);
for (z++; v.length > z;) v.pop().element.remove()
}
for (; x.length > I;) x.pop()[0].element.remove()
}
var k;
if (!(k = t.match(d))) throw Fe("iexp", t, ga(f));
var l = c(k[2] || k[1]),
m = k[4] || k[6],
n = k[5],
p = c(k[3] || ""),
q = c(k[2] ? k[1] : m),
A = c(k[7]),
w = k[8] ? c(k[8]) : null,
x = [
[{
element: f,
label: ""
}]
];
y && (a(y)(e), y.removeClass("ng-scope"), y.remove());
f.empty();
f.on("change", function() {
e.$apply(function() {
var a, c = A(e) || [],
d = {},
h, k, l, p, t, u, v;
if (s)
for (k = [], p = 0, u = x.length; p < u; p++)
for (a = x[p], l = 1, t = a.length; l < t; l++) {
if ((h = a[l].element)[0].selected) {
h = h.val();
n && (d[n] = h);
if (w)
for (v = 0; v < c.length && (d[m] = c[v], w(e, d) != h); v++);
else d[m] = c[h];
k.push(q(e, d))
}
} else if (h = f.val(), "?" == h) k = r;
else if ("" === h) k = null;
else if (w)
for (v = 0; v < c.length; v++) {
if (d[m] = c[v], w(e, d) == h) {
k = q(e, d);
break
}
} else d[m] = c[h], n && (d[n] = h), k = q(e, d);
g.$setViewValue(k)
})
});
g.$render = h;
e.$watch(h)
}
if (m[1]) {
var p = m[0];
m = m[1];
var s = h.multiple,
t = h.ngOptions,
y = !1,
w, u = A(Q.createElement("option")),
D = A(Q.createElement("optgroup")),
x = u.clone();
h = 0;
for (var v = f.children(), F = v.length; h < F; h++)
if ("" === v[h].value) {
w = y = v.eq(h);
break
} p.init(m, y, x);
s && (m.$isEmpty = function(a) {
return !a || 0 === a.length
});
t ? n(e, f, m) : s ? l(e, f, m) : k(e, f, m, p)
}
}
}
}],
Ie = ["$interpolate", function(a) {
var c = {
addOption: w,
removeOption: w
};
return {
restrict: "E",
priority: 100,
compile: function(d, e) {
if (z(e.value)) {
var g = a(d.text(), !0);
g || e.$set("value", d.text())
}
return function(a, d, e) {
var k = d.parent(),
l = k.data("$selectController") || k.parent().data("$selectController");
l && l.databound ? d.prop("selected", !1) : l = c;
g ? a.$watch(g, function(a, c) {
e.$set("value", a);
a !== c && l.removeOption(c);
l.addOption(a)
}) : l.addOption(e.value);
d.on("$destroy", function() {
l.removeOption(e.value)
})
}
}
}
}],
Je = $({
restrict: "E",
terminal: !0
});
(Da = Z.jQuery) ? (A = Da, t(Da.fn, {
scope: Ga.scope,
isolateScope: Ga.isolateScope,
controller: Ga.controller,
injector: Ga.injector,
inheritedData: Ga.inheritedData
}), xb("remove", !0, !0, !1), xb("empty", !1, !1, !1), xb("html", !1, !1, !0)) : A = O;
Ca.element = A;
(function(a) {
t(a, {
bootstrap: Zb,
copy: aa,
extend: t,
equals: ua,
element: A,
forEach: q,
injector: $b,
noop: w,
bind: cb,
toJson: qa,
fromJson: Vb,
identity: Ba,
isUndefined: z,
isDefined: B,
isString: D,
isFunction: L,
isObject: X,
isNumber: sb,
isElement: Qc,
isArray: K,
version: Sd,
isDate: La,
lowercase: x,
uppercase: Ia,
callbacks: {
counter: 0
},
$$minErr: F,
$$csp: Ub
});
Va = Vc(Z);
try {
Va("ngLocale")
} catch (c) {
Va("ngLocale", []).provider("$locale", sd)
}
Va("ng", ["ngLocale"], ["$provide", function(a) {
a.provider({
$$sanitizeUri: Cd
});
a.provider("$compile", jc).directive({
a: Xd,
input: Mc,
textarea: Mc,
form: Yd,
script: Ee,
select: He,
style: Je,
option: Ie,
ngBind: ie,
ngBindHtml: ke,
ngBindTemplate: je,
ngClass: le,
ngClassEven: ne,
ngClassOdd: me,
ngCloak: oe,
ngController: pe,
ngForm: Zd,
ngHide: ye,
ngIf: qe,
ngInclude: re,
ngInit: te,
ngNonBindable: ue,
ngPluralize: ve,
ngRepeat: we,
ngShow: xe,
ngStyle: ze,
ngSwitch: Ae,
ngSwitchWhen: Be,
ngSwitchDefault: Ce,
ngOptions: Ge,
ngTransclude: De,
ngModel: de,
ngList: fe,
ngChange: ee,
required: Nc,
ngRequired: Nc,
ngValue: he
}).directive({
ngInclude: se
}).directive(Ob).directive(Oc);
a.provider({
$anchorScroll: dd,
$animate: Ud,
$browser: fd,
$cacheFactory: gd,
$controller: jd,
$document: kd,
$exceptionHandler: ld,
$filter: Bc,
$interpolate: qd,
$interval: rd,
$http: md,
$httpBackend: od,
$location: ud,
$log: vd,
$parse: yd,
$rootScope: Bd,
$q: zd,
$sce: Fd,
$sceDelegate: Ed,
$sniffer: Gd,
$templateCache: hd,
$timeout: Hd,
$window: Id
})
}])
})(Ca);
A(Q).ready(function() {
Tc(Q, Zb)
})
})(window, document);
!angular.$$csp() && angular.element(document).find("head").prepend('<style type="text/css">@charset "UTF-8";[ng\\:cloak],[ng-cloak],[data-ng-cloak],[x-ng-cloak],.ng-cloak,.x-ng-cloak,.ng-hide{display:none !important;}ng\\:form{display:block;}</style>');
angular.module("ui.bootstrap", ["ui.bootstrap.tpls", "ui.bootstrap.transition", "ui.bootstrap.collapse", "ui.bootstrap.accordion", "ui.bootstrap.alert", "ui.bootstrap.bindHtml", "ui.bootstrap.buttons", "ui.bootstrap.carousel", "ui.bootstrap.position", "ui.bootstrap.datepicker", "ui.bootstrap.dropdownToggle", "ui.bootstrap.modal", "ui.bootstrap.pagination", "ui.bootstrap.tooltip", "ui.bootstrap.popover", "ui.bootstrap.progressbar", "ui.bootstrap.rating", "ui.bootstrap.tabs", "ui.bootstrap.timepicker", "ui.bootstrap.typeahead"]), angular.module("ui.bootstrap.tpls", ["template/accordion/accordion-group.html", "template/accordion/accordion.html", "template/alert/alert.html", "template/carousel/carousel.html", "template/carousel/slide.html", "template/datepicker/datepicker.html", "template/datepicker/popup.html", "template/modal/backdrop.html", "template/modal/window.html", "template/pagination/pager.html", "template/pagination/pagination.html", "template/tooltip/tooltip-html-unsafe-popup.html", "template/tooltip/tooltip-popup.html", "template/popover/popover.html", "template/progressbar/bar.html", "template/progressbar/progress.html", "template/progressbar/progressbar.html", "template/rating/rating.html", "template/tabs/tab.html", "template/tabs/tabset.html", "template/timepicker/timepicker.html", "template/typeahead/typeahead-match.html", "template/typeahead/typeahead-popup.html"]), angular.module("ui.bootstrap.transition", []).factory("$transition", ["$q", "$timeout", "$rootScope", function(a, b, c) {
function d(a) {
for (var b in a)
if (void 0 !== f.style[b]) return a[b]
}
var e = function(d, f, g) {
g = g || {};
var h = a.defer(),
i = e[g.animation ? "animationEndEventName" : "transitionEndEventName"],
j = function() {
c.$apply(function() {
d.unbind(i, j), h.resolve(d)
})
};
return i && d.bind(i, j), b(function() {
angular.isString(f) ? d.addClass(f) : angular.isFunction(f) ? f(d) : angular.isObject(f) && d.css(f), i || h.resolve(d)
}), h.promise.cancel = function() {
i && d.unbind(i, j), h.reject("Transition cancelled")
}, h.promise
},
f = document.createElement("trans"),
g = {
WebkitTransition: "webkitTransitionEnd",
MozTransition: "transitionend",
OTransition: "oTransitionEnd",
transition: "transitionend"
},
h = {
WebkitTransition: "webkitAnimationEnd",
MozTransition: "animationend",
OTransition: "oAnimationEnd",
transition: "animationend"
};
return e.transitionEndEventName = d(g), e.animationEndEventName = d(h), e
}]), angular.module("ui.bootstrap.collapse", ["ui.bootstrap.transition"]).directive("collapse", ["$transition", function(a) {
return {
link: function(b, c, d) {
function e(b) {
function d() {
j === e && (j = void 0)
}
var e = a(c, b);
return j && j.cancel(), j = e, e.then(d, d), e
}
function f() {
k ? (k = !1, g()) : (c.removeClass("collapse").addClass("collapsing"), e({
height: c[0].scrollHeight + "px"
}).then(g))
}
function g() {
c.removeClass("collapsing"), c.addClass("collapse in"), c.css({
height: "auto"
})
}
function h() {
if (k) k = !1, i(), c.css({
height: 0
});
else {
c.css({
height: c[0].scrollHeight + "px"
}); {
c[0].offsetWidth
}
c.removeClass("collapse in").addClass("collapsing"), e({
height: 0
}).then(i)
}
}
function i() {
c.removeClass("collapsing"), c.addClass("collapse")
}
var j, k = !0;
b.$watch(d.collapse, function(a) {
a ? h() : f()
})
}
}
}]), angular.module("ui.bootstrap.accordion", ["ui.bootstrap.collapse"]).constant("accordionConfig", {
closeOthers: !0
}).controller("AccordionController", ["$scope", "$attrs", "accordionConfig", function(a, b, c) {
this.groups = [], this.closeOthers = function(d) {
var e = angular.isDefined(b.closeOthers) ? a.$eval(b.closeOthers) : c.closeOthers;
e && angular.forEach(this.groups, function(a) {
a !== d && (a.isOpen = !1)
})
}, this.addGroup = function(a) {
var b = this;
this.groups.push(a), a.$on("$destroy", function() {
b.removeGroup(a)
})
}, this.removeGroup = function(a) {
var b = this.groups.indexOf(a); - 1 !== b && this.groups.splice(this.groups.indexOf(a), 1)
}
}]).directive("accordion", function() {
return {
restrict: "EA",
controller: "AccordionController",
transclude: !0,
replace: !1,
templateUrl: "template/accordion/accordion.html"
}
}).directive("accordionGroup", ["$parse", function(a) {
return {
require: "^accordion",
restrict: "EA",
transclude: !0,
replace: !0,
templateUrl: "template/accordion/accordion-group.html",
scope: {
heading: "@"
},
controller: function() {
this.setHeading = function(a) {
this.heading = a
}
},
link: function(b, c, d, e) {
var f, g;
e.addGroup(b), b.isOpen = !1, d.isOpen && (f = a(d.isOpen), g = f.assign, b.$parent.$watch(f, function(a) {
b.isOpen = !!a
})), b.$watch("isOpen", function(a) {
a && e.closeOthers(b), g && g(b.$parent, a)
})
}
}
}]).directive("accordionHeading", function() {
return {
restrict: "EA",
transclude: !0,
template: "",
replace: !0,
require: "^accordionGroup",
compile: function(a, b, c) {
return function(a, b, d, e) {
e.setHeading(c(a, function() {}))
}
}
}
}).directive("accordionTransclude", function() {
return {
require: "^accordionGroup",
link: function(a, b, c, d) {
a.$watch(function() {
return d[c.accordionTransclude]
}, function(a) {
a && (b.html(""), b.append(a))
})
}
}
}), angular.module("ui.bootstrap.alert", []).controller("AlertController", ["$scope", "$attrs", function(a, b) {
a.closeable = "close" in b
}]).directive("alert", function() {
return {
restrict: "EA",
controller: "AlertController",
templateUrl: "template/alert/alert.html",
transclude: !0,
replace: !0,
scope: {
type: "=",
close: "&"
}
}
}), angular.module("ui.bootstrap.bindHtml", []).directive("bindHtmlUnsafe", function() {
return function(a, b, c) {
b.addClass("ng-binding").data("$binding", c.bindHtmlUnsafe), a.$watch(c.bindHtmlUnsafe, function(a) {
b.html(a || "")
})
}
}), angular.module("ui.bootstrap.buttons", []).constant("buttonConfig", {
activeClass: "active",
toggleEvent: "click"
}).controller("ButtonsController", ["buttonConfig", function(a) {
this.activeClass = a.activeClass || "active", this.toggleEvent = a.toggleEvent || "click"
}]).directive("btnRadio", function() {
return {
require: ["btnRadio", "ngModel"],
controller: "ButtonsController",
link: function(a, b, c, d) {
var e = d[0],
f = d[1];
f.$render = function() {
b.toggleClass(e.activeClass, angular.equals(f.$modelValue, a.$eval(c.btnRadio)))
}, b.bind(e.toggleEvent, function() {
b.hasClass(e.activeClass) || a.$apply(function() {
f.$setViewValue(a.$eval(c.btnRadio)), f.$render()
})
})
}
}
}).directive("btnCheckbox", function() {
return {
require: ["btnCheckbox", "ngModel"],
controller: "ButtonsController",
link: function(a, b, c, d) {
function e() {
return g(c.btnCheckboxTrue, !0)
}
function f() {
return g(c.btnCheckboxFalse, !1)
}
function g(b, c) {
var d = a.$eval(b);
return angular.isDefined(d) ? d : c
}
var h = d[0],
i = d[1];
i.$render = function() {
b.toggleClass(h.activeClass, angular.equals(i.$modelValue, e()))
}, b.bind(h.toggleEvent, function() {
a.$apply(function() {
i.$setViewValue(b.hasClass(h.activeClass) ? f() : e()), i.$render()
})
})
}
}
}), angular.module("ui.bootstrap.carousel", ["ui.bootstrap.transition"]).controller("CarouselController", ["$scope", "$timeout", "$transition", "$q", function(a, b, c) {
function d() {
e();
var c = +a.interval;
!isNaN(c) && c >= 0 && (g = b(f, c))
}
function e() {
g && (b.cancel(g), g = null)
}
function f() {
h ? (a.next(), d()) : a.pause()
}
var g, h, i = this,
j = i.slides = [],
k = -1;
i.currentSlide = null;
var l = !1;
i.select = function(e, f) {
function g() {
if (!l) {
if (i.currentSlide && angular.isString(f) && !a.noTransition && e.$element) {
e.$element.addClass(f); {
e.$element[0].offsetWidth
}
angular.forEach(j, function(a) {
angular.extend(a, {
direction: "",
entering: !1,
leaving: !1,
active: !1
})
}), angular.extend(e, {
direction: f,
active: !0,
entering: !0
}), angular.extend(i.currentSlide || {}, {
direction: f,
leaving: !0
}), a.$currentTransition = c(e.$element, {}),
function(b, c) {
a.$currentTransition.then(function() {
h(b, c)
}, function() {
h(b, c)
})
}(e, i.currentSlide)
} else h(e, i.currentSlide);
i.currentSlide = e, k = m, d()
}
}
function h(b, c) {
angular.extend(b, {
direction: "",
active: !0,
leaving: !1,
entering: !1
}), angular.extend(c || {}, {
direction: "",
active: !1,
leaving: !1,
entering: !1
}), a.$currentTransition = null
}
var m = j.indexOf(e);
void 0 === f && (f = m > k ? "next" : "prev"), e && e !== i.currentSlide && (a.$currentTransition ? (a.$currentTransition.cancel(), b(g)) : g())
}, a.$on("$destroy", function() {
l = !0
}), i.indexOfSlide = function(a) {
return j.indexOf(a)
}, a.next = function() {
var b = (k + 1) % j.length;
return a.$currentTransition ? void 0 : i.select(j[b], "next")
}, a.prev = function() {
var b = 0 > k - 1 ? j.length - 1 : k - 1;
return a.$currentTransition ? void 0 : i.select(j[b], "prev")
}, a.select = function(a) {
i.select(a)
}, a.isActive = function(a) {
return i.currentSlide === a
}, a.slides = function() {
return j
}, a.$watch("interval", d), a.$on("$destroy", e), a.play = function() {
h || (h = !0, d())
}, a.pause = function() {
a.noPause || (h = !1, e())
}, i.addSlide = function(b, c) {
b.$element = c, j.push(b), 1 === j.length || b.active ? (i.select(j[j.length - 1]), 1 == j.length && a.play()) : b.active = !1
}, i.removeSlide = function(a) {
var b = j.indexOf(a);
j.splice(b, 1), j.length > 0 && a.active ? b >= j.length ? i.select(j[b - 1]) : i.select(j[b]) : k > b && k--
}
}]).directive("carousel", [function() {
return {
restrict: "EA",
transclude: !0,
replace: !0,
controller: "CarouselController",
require: "carousel",
templateUrl: "template/carousel/carousel.html",
scope: {
interval: "=",
noTransition: "=",
noPause: "="
}
}
}]).directive("slide", ["$parse", function(a) {
return {
require: "^carousel",
restrict: "EA",
transclude: !0,
replace: !0,
templateUrl: "template/carousel/slide.html",
scope: {},
link: function(b, c, d, e) {
if (d.active) {
var f = a(d.active),
g = f.assign,
h = b.active = f(b.$parent);
b.$watch(function() {
var a = f(b.$parent);
return a !== b.active && (a !== h ? h = b.active = a : g(b.$parent, a = h = b.active)), a
})
}
e.addSlide(b, c), b.$on("$destroy", function() {
e.removeSlide(b)
}), b.$watch("active", function(a) {
a && e.select(b)
})
}
}
}]), angular.module("ui.bootstrap.position", []).factory("$position", ["$document", "$window", function(a, b) {
function c(a, c) {
return a.currentStyle ? a.currentStyle[c] : b.getComputedStyle ? b.getComputedStyle(a)[c] : a.style[c]
}
function d(a) {
return "static" === (c(a, "position") || "static")
}
var e = function(b) {
for (var c = a[0], e = b.offsetParent || c; e && e !== c && d(e);) e = e.offsetParent;
return e || c
};
return {
position: function(b) {
var c = this.offset(b),
d = {
top: 0,
left: 0
},
f = e(b[0]);
f != a[0] && (d = this.offset(angular.element(f)), d.top += f.clientTop - f.scrollTop, d.left += f.clientLeft - f.scrollLeft);
var g = b[0].getBoundingClientRect();
return {
width: g.width || b.prop("offsetWidth"),
height: g.height || b.prop("offsetHeight"),
top: c.top - d.top,
left: c.left - d.left
}
},
offset: function(c) {
var d = c[0].getBoundingClientRect();
return {
width: d.width || c.prop("offsetWidth"),
height: d.height || c.prop("offsetHeight"),
top: d.top + (b.pageYOffset || a[0].body.scrollTop || a[0].documentElement.scrollTop),
left: d.left + (b.pageXOffset || a[0].body.scrollLeft || a[0].documentElement.scrollLeft)
}
}
}
}]), angular.module("ui.bootstrap.datepicker", ["ui.bootstrap.position"]).constant("datepickerConfig", {
dayFormat: "dd",
monthFormat: "MMMM",
yearFormat: "yyyy",
dayHeaderFormat: "EEE",
dayTitleFormat: "MMMM yyyy",
monthTitleFormat: "yyyy",
showWeeks: !0,
startingDay: 0,
yearRange: 20,
minDate: null,
maxDate: null
}).controller("DatepickerController", ["$scope", "$attrs", "dateFilter", "datepickerConfig", function(a, b, c, d) {
function e(b, c) {
return angular.isDefined(b) ? a.$parent.$eval(b) : c
}
function f(a, b) {
return new Date(a, b, 0).getDate()
}
function g(a, b) {
for (var c = new Array(b), d = a, e = 0; b > e;) c[e++] = new Date(d), d.setDate(d.getDate() + 1);
return c
}
function h(a, b, d, e) {
return {
date: a,
label: c(a, b),
selected: !!d,
secondary: !!e
}
}
var i = {
day: e(b.dayFormat, d.dayFormat),
month: e(b.monthFormat, d.monthFormat),
year: e(b.yearFormat, d.yearFormat),
dayHeader: e(b.dayHeaderFormat, d.dayHeaderFormat),
dayTitle: e(b.dayTitleFormat, d.dayTitleFormat),
monthTitle: e(b.monthTitleFormat, d.monthTitleFormat)
},
j = e(b.startingDay, d.startingDay),
k = e(b.yearRange, d.yearRange);
this.minDate = d.minDate ? new Date(d.minDate) : null, this.maxDate = d.maxDate ? new Date(d.maxDate) : null, this.modes = [{
name: "day",
getVisibleDates: function(a, b) {
var d = a.getFullYear(),
e = a.getMonth(),
k = new Date(d, e, 1),
l = j - k.getDay(),
m = l > 0 ? 7 - l : -l,
n = new Date(k),
o = 0;
m > 0 && (n.setDate(-m + 1), o += m), o += f(d, e + 1), o += (7 - o % 7) % 7;
for (var p = g(n, o), q = new Array(7), r = 0; o > r; r++) {
var s = new Date(p[r]);
p[r] = h(s, i.day, b && b.getDate() === s.getDate() && b.getMonth() === s.getMonth() && b.getFullYear() === s.getFullYear(), s.getMonth() !== e)
}
for (var t = 0; 7 > t; t++) q[t] = c(p[t].date, i.dayHeader);
return {
objects: p,
title: c(a, i.dayTitle),
labels: q
}
},
compare: function(a, b) {
return new Date(a.getFullYear(), a.getMonth(), a.getDate()) - new Date(b.getFullYear(), b.getMonth(), b.getDate())
},
split: 7,
step: {
months: 1
}
}, {
name: "month",
getVisibleDates: function(a, b) {
for (var d = new Array(12), e = a.getFullYear(), f = 0; 12 > f; f++) {
var g = new Date(e, f, 1);
d[f] = h(g, i.month, b && b.getMonth() === f && b.getFullYear() === e)
}
return {
objects: d,
title: c(a, i.monthTitle)
}
},
compare: function(a, b) {
return new Date(a.getFullYear(), a.getMonth()) - new Date(b.getFullYear(), b.getMonth())
},
split: 3,
step: {
years: 1
}
}, {
name: "year",
getVisibleDates: function(a, b) {
for (var c = new Array(k), d = a.getFullYear(), e = parseInt((d - 1) / k, 10) * k + 1, f = 0; k > f; f++) {
var g = new Date(e + f, 0, 1);
c[f] = h(g, i.year, b && b.getFullYear() === g.getFullYear())
}
return {
objects: c,
title: [c[0].label, c[k - 1].label].join(" - ")
}
},
compare: function(a, b) {
return a.getFullYear() - b.getFullYear()
},
split: 5,
step: {
years: k
}
}], this.isDisabled = function(b, c) {
var d = this.modes[c || 0];
return this.minDate && d.compare(b, this.minDate) < 0 || this.maxDate && d.compare(b, this.maxDate) > 0 || a.dateDisabled && a.dateDisabled({
date: b,
mode: d.name
})
}
}]).directive("datepicker", ["dateFilter", "$parse", "datepickerConfig", "$log", function(a, b, c, d) {
return {
restrict: "EA",
replace: !0,
templateUrl: "template/datepicker/datepicker.html",
scope: {
dateDisabled: "&"
},
require: ["datepicker", "?^ngModel"],
controller: "DatepickerController",
link: function(a, e, f, g) {
function h() {
a.showWeekNumbers = 0 === o && q
}
function i(a, b) {
for (var c = []; a.length > 0;) c.push(a.splice(0, b));
return c
}
function j(b) {
var c = null,
e = !0;
n.$modelValue && (c = new Date(n.$modelValue), isNaN(c) ? (e = !1, d.error('Datepicker directive: "ng-model" value must be a Date object, a number of milliseconds since 01.01.1970 or a string representing an RFC2822 or ISO 8601 date.')) : b && (p = c)), n.$setValidity("date", e);
var f = m.modes[o],
g = f.getVisibleDates(p, c);
angular.forEach(g.objects, function(a) {
a.disabled = m.isDisabled(a.date, o)
}), n.$setValidity("date-disabled", !c || !m.isDisabled(c)), a.rows = i(g.objects, f.split), a.labels = g.labels || [], a.title = g.title
}
function k(a) {
o = a, h(), j()
}
function l(a) {
var b = new Date(a);
b.setDate(b.getDate() + 4 - (b.getDay() || 7));
var c = b.getTime();
return b.setMonth(0), b.setDate(1), Math.floor(Math.round((c - b) / 864e5) / 7) + 1
}
var m = g[0],
n = g[1];
if (n) {
var o = 0,
p = new Date,
q = c.showWeeks;
f.showWeeks ? a.$parent.$watch(b(f.showWeeks), function(a) {
q = !!a, h()
}) : h(), f.min && a.$parent.$watch(b(f.min), function(a) {
m.minDate = a ? new Date(a) : null, j()
}), f.max && a.$parent.$watch(b(f.max), function(a) {
m.maxDate = a ? new Date(a) : null, j()
}), n.$render = function() {
j(!0)
}, a.select = function(a) {
if (0 === o) {
var b = n.$modelValue ? new Date(n.$modelValue) : new Date(0, 0, 0, 0, 0, 0, 0);
b.setFullYear(a.getFullYear(), a.getMonth(), a.getDate()), n.$setViewValue(b), j(!0)
} else p = a, k(o - 1)
}, a.move = function(a) {
var b = m.modes[o].step;
p.setMonth(p.getMonth() + a * (b.months || 0)), p.setFullYear(p.getFullYear() + a * (b.years || 0)), j()
}, a.toggleMode = function() {
k((o + 1) % m.modes.length)
}, a.getWeekNumber = function(b) {
return 0 === o && a.showWeekNumbers && 7 === b.length ? l(b[0].date) : null
}
}
}
}
}]).constant("datepickerPopupConfig", {
dateFormat: "yyyy-MM-dd",
currentText: "Today",
toggleWeeksText: "Weeks",
clearText: "Clear",
closeText: "Done",
closeOnDateSelection: !0,
appendToBody: !1,
showButtonBar: !0
}).directive("datepickerPopup", ["$compile", "$parse", "$document", "$position", "dateFilter", "datepickerPopupConfig", "datepickerConfig", function(a, b, c, d, e, f, g) {
return {
restrict: "EA",
require: "ngModel",
link: function(h, i, j, k) {
function l(a) {
u ? u(h, !!a) : q.isOpen = !!a
}
function m(a) {
if (a) {
if (angular.isDate(a)) return k.$setValidity("date", !0), a;
if (angular.isString(a)) {
var b = new Date(a);
return isNaN(b) ? (k.$setValidity("date", !1), void 0) : (k.$setValidity("date", !0), b)
}
return k.$setValidity("date", !1), void 0
}
return k.$setValidity("date", !0), null
}
function n(a, c, d) {
a && (h.$watch(b(a), function(a) {
q[c] = a
}), y.attr(d || c, c))
}
function o() {
q.position = s ? d.offset(i) : d.position(i), q.position.top = q.position.top + i.prop("offsetHeight")
}
var p, q = h.$new(),
r = angular.isDefined(j.closeOnDateSelection) ? h.$eval(j.closeOnDateSelection) : f.closeOnDateSelection,
s = angular.isDefined(j.datepickerAppendToBody) ? h.$eval(j.datepickerAppendToBody) : f.appendToBody;
j.$observe("datepickerPopup", function(a) {
p = a || f.dateFormat, k.$render()
}), q.showButtonBar = angular.isDefined(j.showButtonBar) ? h.$eval(j.showButtonBar) : f.showButtonBar, h.$on("$destroy", function() {
C.remove(), q.$destroy()
}), j.$observe("currentText", function(a) {
q.currentText = angular.isDefined(a) ? a : f.currentText
}), j.$observe("toggleWeeksText", function(a) {
q.toggleWeeksText = angular.isDefined(a) ? a : f.toggleWeeksText
}), j.$observe("clearText", function(a) {
q.clearText = angular.isDefined(a) ? a : f.clearText
}), j.$observe("closeText", function(a) {
q.closeText = angular.isDefined(a) ? a : f.closeText
});
var t, u;
j.isOpen && (t = b(j.isOpen), u = t.assign, h.$watch(t, function(a) {
q.isOpen = !!a
})), q.isOpen = t ? t(h) : !1;
var v = function(a) {
q.isOpen && a.target !== i[0] && q.$apply(function() {
l(!1)
})
},
w = function() {
q.$apply(function() {
l(!0)
})
},
x = angular.element("<div datepicker-popup-wrap><div datepicker></div></div>");
x.attr({
"ng-model": "date",
"ng-change": "dateSelection()"
});
var y = angular.element(x.children()[0]),
z = {};
j.datepickerOptions && (z = h.$eval(j.datepickerOptions), y.attr(angular.extend({}, z))), k.$parsers.unshift(m), q.dateSelection = function(a) {
angular.isDefined(a) && (q.date = a), k.$setViewValue(q.date), k.$render(), r && l(!1)
}, i.bind("input change keyup", function() {
q.$apply(function() {
q.date = k.$modelValue
})
}), k.$render = function() {
var a = k.$viewValue ? e(k.$viewValue, p) : "";
i.val(a), q.date = k.$modelValue
}, n(j.min, "min"), n(j.max, "max"), j.showWeeks ? n(j.showWeeks, "showWeeks", "show-weeks") : (q.showWeeks = "show-weeks" in z ? z["show-weeks"] : g.showWeeks, y.attr("show-weeks", "showWeeks")), j.dateDisabled && y.attr("date-disabled", j.dateDisabled);
var A = !1,
B = !1;
q.$watch("isOpen", function(a) {
a ? (o(), c.bind("click", v), B && i.unbind("focus", w), i[0].focus(), A = !0) : (A && c.unbind("click", v), i.bind("focus", w), B = !0), u && u(h, a)
}), q.today = function() {
q.dateSelection(new Date)
}, q.clear = function() {
q.dateSelection(null)
};
var C = a(x)(q);
s ? c.find("body").append(C) : i.after(C)
}
}
}]).directive("datepickerPopupWrap", function() {
return {
restrict: "EA",
replace: !0,
transclude: !0,
templateUrl: "template/datepicker/popup.html",
link: function(a, b) {
b.bind("click", function(a) {
a.preventDefault(), a.stopPropagation()
})
}
}
}), angular.module("ui.bootstrap.dropdownToggle", []).directive("dropdownToggle", ["$document", "$location", function(a) {
var b = null,
c = angular.noop;
return {
restrict: "CA",
link: function(d, e) {
d.$watch("$location.path", function() {
c()
}), e.parent().bind("click", function() {
c()
}), e.bind("click", function(d) {
var f = e === b;
d.preventDefault(), d.stopPropagation(), b && c(), f || e.hasClass("disabled") || e.prop("disabled") || (e.parent().addClass("open"), b = e, c = function(d) {
d && (d.preventDefault(), d.stopPropagation()), a.unbind("click", c), e.parent().removeClass("open"), c = angular.noop, b = null
}, a.bind("click", c))
})
}
}
}]), angular.module("ui.bootstrap.modal", ["ui.bootstrap.transition"]).factory("$$stackedMap", function() {
return {
createNew: function() {
var a = [];
return {
add: function(b, c) {
a.push({
key: b,
value: c
})
},
get: function(b) {
for (var c = 0; c < a.length; c++)
if (b == a[c].key) return a[c]
},
keys: function() {
for (var b = [], c = 0; c < a.length; c++) b.push(a[c].key);
return b
},
top: function() {
return a[a.length - 1]
},
remove: function(b) {
for (var c = -1, d = 0; d < a.length; d++)
if (b == a[d].key) {
c = d;
break
} return a.splice(c, 1)[0]
},
removeTop: function() {
return a.splice(a.length - 1, 1)[0]
},
length: function() {
return a.length
}
}
}
}
}).directive("modalBackdrop", ["$timeout", function(a) {
return {
restrict: "EA",
replace: !0,
templateUrl: "template/modal/backdrop.html",
link: function(b) {
b.animate = !1, a(function() {
b.animate = !0
})
}
}
}]).directive("modalWindow", ["$modalStack", "$timeout", function(a, b) {
return {
restrict: "EA",
scope: {
index: "@",
animate: "="
},
replace: !0,
transclude: !0,
templateUrl: "template/modal/window.html",
link: function(c, d, e) {
c.windowClass = e.windowClass || "", b(function() {
c.animate = !0, d[0].focus()
}), c.close = function(b) {
var c = a.getTop();
c && c.value.backdrop && "static" != c.value.backdrop && b.target === b.currentTarget && (b.preventDefault(), b.stopPropagation(), a.dismiss(c.key, "backdrop click"))
}
}
}
}]).factory("$modalStack", ["$transition", "$timeout", "$document", "$compile", "$rootScope", "$$stackedMap", function(a, b, c, d, e, f) {
function g() {
for (var a = -1, b = n.keys(), c = 0; c < b.length; c++) n.get(b[c]).value.backdrop && (a = c);
return a
}
function h(a) {
var b = c.find("body").eq(0),
d = n.get(a).value;
n.remove(a), j(d.modalDomEl, d.modalScope, 300, i), b.toggleClass(m, n.length() > 0)
}
function i() {
if (k && -1 == g()) {
var a = l;
j(k, l, 150, function() {
a.$destroy(), a = null
}), k = void 0, l = void 0
}
}
function j(c, d, e, f) {
function g() {
g.done || (g.done = !0, c.remove(), f && f())
}
d.animate = !1;
var h = a.transitionEndEventName;
if (h) {
var i = b(g, e);
c.bind(h, function() {
b.cancel(i), g(), d.$apply()
})
} else b(g, 0)
}
var k, l, m = "modal-open",
n = f.createNew(),
o = {};
return e.$watch(g, function(a) {
l && (l.index = a)
}), c.bind("keydown", function(a) {
var b;
27 === a.which && (b = n.top(), b && b.value.keyboard && e.$apply(function() {
o.dismiss(b.key)
}))
}), o.open = function(a, b) {
n.add(a, {
deferred: b.deferred,
modalScope: b.scope,
backdrop: b.backdrop,
keyboard: b.keyboard
});
var f = c.find("body").eq(0),
h = g();
h >= 0 && !k && (l = e.$new(!0), l.index = h, k = d("<div modal-backdrop></div>")(l), f.append(k));
var i = angular.element("<div modal-window></div>");
i.attr("window-class", b.windowClass), i.attr("index", n.length() - 1), i.attr("animate", "animate"), i.html(b.content);
var j = d(i)(b.scope);
n.top().value.modalDomEl = j, f.append(j), f.addClass(m)
}, o.close = function(a, b) {
var c = n.get(a).value;
c && (c.deferred.resolve(b), h(a))
}, o.dismiss = function(a, b) {
var c = n.get(a).value;
c && (c.deferred.reject(b), h(a))
}, o.dismissAll = function(a) {
for (var b = this.getTop(); b;) this.dismiss(b.key, a), b = this.getTop()
}, o.getTop = function() {
return n.top()
}, o
}]).provider("$modal", function() {
var a = {
options: {
backdrop: !0,
keyboard: !0
},
$get: ["$injector", "$rootScope", "$q", "$http", "$templateCache", "$controller", "$modalStack", function(b, c, d, e, f, g, h) {
function i(a) {
return a.template ? d.when(a.template) : e.get(a.templateUrl, {
cache: f
}).then(function(a) {
return a.data
})
}
function j(a) {
var c = [];
return angular.forEach(a, function(a) {
(angular.isFunction(a) || angular.isArray(a)) && c.push(d.when(b.invoke(a)))
}), c
}
var k = {};
return k.open = function(b) {
var e = d.defer(),
f = d.defer(),
k = {
result: e.promise,
opened: f.promise,
close: function(a) {
h.close(k, a)
},
dismiss: function(a) {
h.dismiss(k, a)
}
};
if (b = angular.extend({}, a.options, b), b.resolve = b.resolve || {}, !b.template && !b.templateUrl) throw new Error("One of template or templateUrl options is required.");
var l = d.all([i(b)].concat(j(b.resolve)));
return l.then(function(a) {
var d = (b.scope || c).$new();
d.$close = k.close, d.$dismiss = k.dismiss;
var f, i = {},
j = 1;
b.controller && (i.$scope = d, i.$modalInstance = k, angular.forEach(b.resolve, function(b, c) {
i[c] = a[j++]
}), f = g(b.controller, i)), h.open(k, {
scope: d,
deferred: e,
content: a[0],
backdrop: b.backdrop,
keyboard: b.keyboard,
windowClass: b.windowClass
})
}, function(a) {
e.reject(a)
}), l.then(function() {
f.resolve(!0)
}, function() {
f.reject(!1)
}), k
}, k
}]
};
return a
}), angular.module("ui.bootstrap.pagination", []).controller("PaginationController", ["$scope", "$attrs", "$parse", "$interpolate", function(a, b, c, d) {
var e = this,
f = b.numPages ? c(b.numPages).assign : angular.noop;
this.init = function(d) {
b.itemsPerPage ? a.$parent.$watch(c(b.itemsPerPage), function(b) {
e.itemsPerPage = parseInt(b, 10), a.totalPages = e.calculateTotalPages()
}) : this.itemsPerPage = d
}, this.noPrevious = function() {
return 1 === this.page
}, this.noNext = function() {
return this.page === a.totalPages
}, this.isActive = function(a) {
return this.page === a
}, this.calculateTotalPages = function() {
var b = this.itemsPerPage < 1 ? 1 : Math.ceil(a.totalItems / this.itemsPerPage);
return Math.max(b || 0, 1)
}, this.getAttributeValue = function(b, c, e) {
return angular.isDefined(b) ? e ? d(b)(a.$parent) : a.$parent.$eval(b) : c
}, this.render = function() {
this.page = parseInt(a.page, 10) || 1, this.page > 0 && this.page <= a.totalPages && (a.pages = this.getPages(this.page, a.totalPages))
}, a.selectPage = function(b) {
!e.isActive(b) && b > 0 && b <= a.totalPages && (a.page = b, a.onSelectPage({
page: b
}))
}, a.$watch("page", function() {
e.render()
}), a.$watch("totalItems", function() {
a.totalPages = e.calculateTotalPages()
}), a.$watch("totalPages", function(b) {
f(a.$parent, b), e.page > b ? a.selectPage(b) : e.render()
})
}]).constant("paginationConfig", {
itemsPerPage: 10,
boundaryLinks: !1,
directionLinks: !0,
firstText: "First",
previousText: "Previous",
nextText: "Next",
lastText: "Last",
rotate: !0
}).directive("pagination", ["$parse", "paginationConfig", function(a, b) {
return {
restrict: "EA",
scope: {
page: "=",
totalItems: "=",
onSelectPage: " &"
},
controller: "PaginationController",
templateUrl: "template/pagination/pagination.html",
replace: !0,
link: function(c, d, e, f) {
function g(a, b, c, d) {
return {
number: a,
text: b,
active: c,
disabled: d
}
}
var h, i = f.getAttributeValue(e.boundaryLinks, b.boundaryLinks),
j = f.getAttributeValue(e.directionLinks, b.directionLinks),
k = f.getAttributeValue(e.firstText, b.firstText, !0),
l = f.getAttributeValue(e.previousText, b.previousText, !0),
m = f.getAttributeValue(e.nextText, b.nextText, !0),
n = f.getAttributeValue(e.lastText, b.lastText, !0),
o = f.getAttributeValue(e.rotate, b.rotate);
f.init(b.itemsPerPage), e.maxSize && c.$parent.$watch(a(e.maxSize), function(a) {
h = parseInt(a, 10), f.render()
}), f.getPages = function(a, b) {
var c = [],
d = 1,
e = b,
p = angular.isDefined(h) && b > h;
p && (o ? (d = Math.max(a - Math.floor(h / 2), 1), e = d + h - 1, e > b && (e = b, d = e - h + 1)) : (d = (Math.ceil(a / h) - 1) * h + 1, e = Math.min(d + h - 1, b)));
for (var q = d; e >= q; q++) {
var r = g(q, q, f.isActive(q), !1);
c.push(r)
}
if (p && !o) {
if (d > 1) {
var s = g(d - 1, "...", !1, !1);
c.unshift(s)
}
if (b > e) {
var t = g(e + 1, "...", !1, !1);
c.push(t)
}
}
if (j) {
var u = g(a - 1, l, !1, f.noPrevious());
c.unshift(u);
var v = g(a + 1, m, !1, f.noNext());
c.push(v)
}
if (i) {
var w = g(1, k, !1, f.noPrevious());
c.unshift(w);
var x = g(b, n, !1, f.noNext());
c.push(x)
}
return c
}
}
}
}]).constant("pagerConfig", {
itemsPerPage: 10,
previousText: "« Previous",
nextText: "Next »",
align: !0
}).directive("pager", ["pagerConfig", function(a) {
return {
restrict: "EA",
scope: {
page: "=",
totalItems: "=",
onSelectPage: " &"
},
controller: "PaginationController",
templateUrl: "template/pagination/pager.html",
replace: !0,
link: function(b, c, d, e) {
function f(a, b, c, d, e) {
return {
number: a,
text: b,
disabled: c,
previous: i && d,
next: i && e
}
}
var g = e.getAttributeValue(d.previousText, a.previousText, !0),
h = e.getAttributeValue(d.nextText, a.nextText, !0),
i = e.getAttributeValue(d.align, a.align);
e.init(a.itemsPerPage), e.getPages = function(a) {
return [f(a - 1, g, e.noPrevious(), !0, !1), f(a + 1, h, e.noNext(), !1, !0)]
}
}
}
}]), angular.module("ui.bootstrap.tooltip", ["ui.bootstrap.position", "ui.bootstrap.bindHtml"]).provider("$tooltip", function() {
function a(a) {
var b = /[A-Z]/g,
c = "-";
return a.replace(b, function(a, b) {
return (b ? c : "") + a.toLowerCase()
})
}
var b = {
placement: "top",
animation: !0,
popupDelay: 0
},
c = {
mouseenter: "mouseleave",
click: "click",
focus: "blur"
},
d = {};
this.options = function(a) {
angular.extend(d, a)
}, this.setTriggers = function(a) {
angular.extend(c, a)
}, this.$get = ["$window", "$compile", "$timeout", "$parse", "$document", "$position", "$interpolate", function(e, f, g, h, i, j, k) {
return function(e, l, m) {
function n(a) {
var b = a || o.trigger || m,
d = c[b] || b;
return {
show: b,
hide: d
}
}
var o = angular.extend({}, b, d),
p = a(e),
q = k.startSymbol(),
r = k.endSymbol(),
s = "<div " + p + '-popup title="' + q + "tt_title" + r + '" content="' + q + "tt_content" + r + '" placement="' + q + "tt_placement" + r + '" animation="tt_animation" is-open="tt_isOpen"></div>';
return {
restrict: "EA",
scope: !0,
compile: function() {
var a = f(s);
return function(b, c, d) {
function f() {
b.tt_isOpen ? m() : k()
}
function k() {
(!z || b.$eval(d[l + "Enable"])) && (b.tt_popupDelay ? (v = g(p, b.tt_popupDelay, !1), v.then(function(a) {
a()
})) : p()())
}
function m() {
b.$apply(function() {
q()
})
}
function p() {
return b.tt_content ? (r(), u && g.cancel(u), t.css({
top: 0,
left: 0,
display: "block"
}), w ? i.find("body").append(t) : c.after(t), A(), b.tt_isOpen = !0, b.$digest(), A) : angular.noop
}
function q() {
b.tt_isOpen = !1, g.cancel(v), b.tt_animation ? u = g(s, 500) : s()
}
function r() {
t && s(), t = a(b, function() {}), b.$digest()
}
function s() {
t && (t.remove(), t = null)
}
var t, u, v, w = angular.isDefined(o.appendToBody) ? o.appendToBody : !1,
x = n(void 0),
y = !1,
z = angular.isDefined(d[l + "Enable"]),
A = function() {
var a, d, e, f;
switch (a = w ? j.offset(c) : j.position(c), d = t.prop("offsetWidth"), e = t.prop("offsetHeight"), b.tt_placement) {
case "right":
f = {
top: a.top + a.height / 2 - e / 2,
left: a.left + a.width
};
break;
case "bottom":
f = {
top: a.top + a.height,
left: a.left + a.width / 2 - d / 2
};
break;
case "left":
f = {
top: a.top + a.height / 2 - e / 2,
left: a.left - d
};
break;
default:
f = {
top: a.top - e,
left: a.left + a.width / 2 - d / 2
}
}
f.top += "px", f.left += "px", t.css(f)
};
b.tt_isOpen = !1, d.$observe(e, function(a) {
b.tt_content = a, !a && b.tt_isOpen && q()
}), d.$observe(l + "Title", function(a) {
b.tt_title = a
}), d.$observe(l + "Placement", function(a) {
b.tt_placement = angular.isDefined(a) ? a : o.placement
}), d.$observe(l + "PopupDelay", function(a) {
var c = parseInt(a, 10);
b.tt_popupDelay = isNaN(c) ? o.popupDelay : c
});
var B = function() {
y && (c.unbind(x.show, k), c.unbind(x.hide, m))
};
d.$observe(l + "Trigger", function(a) {
B(), x = n(a), x.show === x.hide ? c.bind(x.show, f) : (c.bind(x.show, k), c.bind(x.hide, m)), y = !0
});
var C = b.$eval(d[l + "Animation"]);
b.tt_animation = angular.isDefined(C) ? !!C : o.animation, d.$observe(l + "AppendToBody", function(a) {
w = angular.isDefined(a) ? h(a)(b) : w
}), w && b.$on("$locationChangeSuccess", function() {
b.tt_isOpen && q()
}), b.$on("$destroy", function() {
g.cancel(u), g.cancel(v), B(), s()
})
}
}
}
}
}]
}).directive("tooltipPopup", function() {
return {
restrict: "EA",
replace: !0,
scope: {
content: "@",
placement: "@",
animation: "&",
isOpen: "&"
},
templateUrl: "template/tooltip/tooltip-popup.html"
}
}).directive("tooltip", ["$tooltip", function(a) {
return a("tooltip", "tooltip", "mouseenter")
}]).directive("tooltipHtmlUnsafePopup", function() {
return {
restrict: "EA",
replace: !0,
scope: {
content: "@",
placement: "@",
animation: "&",
isOpen: "&"
},
templateUrl: "template/tooltip/tooltip-html-unsafe-popup.html"
}
}).directive("tooltipHtmlUnsafe", ["$tooltip", function(a) {
return a("tooltipHtmlUnsafe", "tooltip", "mouseenter")
}]), angular.module("ui.bootstrap.popover", ["ui.bootstrap.tooltip"]).directive("popoverPopup", function() {
return {
restrict: "EA",
replace: !0,
scope: {
title: "@",
content: "@",
placement: "@",
animation: "&",
isOpen: "&"
},
templateUrl: "template/popover/popover.html"
}
}).directive("popover", ["$tooltip", function(a) {
return a("popover", "popover", "click")
}]), angular.module("ui.bootstrap.progressbar", ["ui.bootstrap.transition"]).constant("progressConfig", {
animate: !0,
max: 100
}).controller("ProgressController", ["$scope", "$attrs", "progressConfig", "$transition", function(a, b, c, d) {
var e = this,
f = [],
g = angular.isDefined(b.max) ? a.$parent.$eval(b.max) : c.max,
h = angular.isDefined(b.animate) ? a.$parent.$eval(b.animate) : c.animate;
this.addBar = function(a, b) {
var c = 0,
d = a.$parent.$index;
angular.isDefined(d) && f[d] && (c = f[d].value), f.push(a), this.update(b, a.value, c), a.$watch("value", function(a, c) {
a !== c && e.update(b, a, c)
}), a.$on("$destroy", function() {
e.removeBar(a)
})
}, this.update = function(a, b, c) {
var e = this.getPercentage(b);
h ? (a.css("width", this.getPercentage(c) + "%"), d(a, {
width: e + "%"
})) : a.css({
transition: "none",
width: e + "%"
})
}, this.removeBar = function(a) {
f.splice(f.indexOf(a), 1)
}, this.getPercentage = function(a) {
return Math.round(100 * a / g)
}
}]).directive("progress", function() {
return {
restrict: "EA",
replace: !0,
transclude: !0,
controller: "ProgressController",
require: "progress",
scope: {},
template: '<div class="progress" ng-transclude></div>'
}
}).directive("bar", function() {
return {
restrict: "EA",
replace: !0,
transclude: !0,
require: "^progress",
scope: {
value: "=",
type: "@"
},
templateUrl: "template/progressbar/bar.html",
link: function(a, b, c, d) {
d.addBar(a, b)
}
}
}).directive("progressbar", function() {
return {
restrict: "EA",
replace: !0,
transclude: !0,
controller: "ProgressController",
scope: {
value: "=",
type: "@"
},
templateUrl: "template/progressbar/progressbar.html",
link: function(a, b, c, d) {
d.addBar(a, angular.element(b.children()[0]))
}
}
}), angular.module("ui.bootstrap.rating", []).constant("ratingConfig", {
max: 5,
stateOn: null,
stateOff: null
}).controller("RatingController", ["$scope", "$attrs", "$parse", "ratingConfig", function(a, b, c, d) {
this.maxRange = angular.isDefined(b.max) ? a.$parent.$eval(b.max) : d.max, this.stateOn = angular.isDefined(b.stateOn) ? a.$parent.$eval(b.stateOn) : d.stateOn, this.stateOff = angular.isDefined(b.stateOff) ? a.$parent.$eval(b.stateOff) : d.stateOff, this.createRateObjects = function(a) {
for (var b = {
stateOn: this.stateOn,
stateOff: this.stateOff
}, c = 0, d = a.length; d > c; c++) a[c] = angular.extend({
index: c
}, b, a[c]);
return a
}, a.range = angular.isDefined(b.ratingStates) ? this.createRateObjects(angular.copy(a.$parent.$eval(b.ratingStates))) : this.createRateObjects(new Array(this.maxRange)), a.rate = function(b) {
a.value === b || a.readonly || (a.value = b)
}, a.enter = function(b) {
a.readonly || (a.val = b), a.onHover({
value: b
})
}, a.reset = function() {
a.val = angular.copy(a.value), a.onLeave()
}, a.$watch("value", function(b) {
a.val = b
}), a.readonly = !1, b.readonly && a.$parent.$watch(c(b.readonly), function(b) {
a.readonly = !!b
})
}]).directive("rating", function() {
return {
restrict: "EA",
scope: {
value: "=",
onHover: "&",
onLeave: "&"
},
controller: "RatingController",
templateUrl: "template/rating/rating.html",
replace: !0
}
}), angular.module("ui.bootstrap.tabs", []).controller("TabsetController", ["$scope", function(a) {
var b = this,
c = b.tabs = a.tabs = [];
b.select = function(a) {
angular.forEach(c, function(a) {
a.active = !1
}), a.active = !0
}, b.addTab = function(a) {
c.push(a), (1 === c.length || a.active) && b.select(a)
}, b.removeTab = function(a) {
var d = c.indexOf(a);
if (a.active && c.length > 1) {
var e = d == c.length - 1 ? d - 1 : d + 1;
b.select(c[e])
}
c.splice(d, 1)
}
}]).directive("tabset", function() {
return {
restrict: "EA",
transclude: !0,
replace: !0,
scope: {},
controller: "TabsetController",
templateUrl: "template/tabs/tabset.html",
link: function(a, b, c) {
a.vertical = angular.isDefined(c.vertical) ? a.$parent.$eval(c.vertical) : !1, a.justified = angular.isDefined(c.justified) ? a.$parent.$eval(c.justified) : !1, a.type = angular.isDefined(c.type) ? a.$parent.$eval(c.type) : "tabs"
}
}
}).directive("tab", ["$parse", function(a) {
return {
require: "^tabset",
restrict: "EA",
replace: !0,
templateUrl: "template/tabs/tab.html",
transclude: !0,
scope: {
heading: "@",
onSelect: "&select",
onDeselect: "&deselect"
},
controller: function() {},
compile: function(b, c, d) {
return function(b, c, e, f) {
var g, h;
e.active ? (g = a(e.active), h = g.assign, b.$parent.$watch(g, function(a, c) {
a !== c && (b.active = !!a)
}), b.active = g(b.$parent)) : h = g = angular.noop, b.$watch("active", function(a) {
h(b.$parent, a), a ? (f.select(b), b.onSelect()) : b.onDeselect()
}), b.disabled = !1, e.disabled && b.$parent.$watch(a(e.disabled), function(a) {
b.disabled = !!a
}), b.select = function() {
b.disabled || (b.active = !0)
}, f.addTab(b), b.$on("$destroy", function() {
f.removeTab(b)
}), b.$transcludeFn = d
}
}
}
}]).directive("tabHeadingTransclude", [function() {
return {
restrict: "A",
require: "^tab",
link: function(a, b) {
a.$watch("headingElement", function(a) {
a && (b.html(""), b.append(a))
})
}
}
}]).directive("tabContentTransclude", function() {
function a(a) {
return a.tagName && (a.hasAttribute("tab-heading") || a.hasAttribute("data-tab-heading") || "tab-heading" === a.tagName.toLowerCase() || "data-tab-heading" === a.tagName.toLowerCase())
}
return {
restrict: "A",
require: "^tabset",
link: function(b, c, d) {
var e = b.$eval(d.tabContentTransclude);
e.$transcludeFn(e.$parent, function(b) {
angular.forEach(b, function(b) {
a(b) ? e.headingElement = b : c.append(b)
})
})
}
}
}), angular.module("ui.bootstrap.timepicker", []).constant("timepickerConfig", {
hourStep: 1,
minuteStep: 1,
showMeridian: !0,
meridians: null,
readonlyInput: !1,
mousewheel: !0
}).directive("timepicker", ["$parse", "$log", "timepickerConfig", "$locale", function(a, b, c, d) {
return {
restrict: "EA",
require: "?^ngModel",
replace: !0,
scope: {},
templateUrl: "template/timepicker/timepicker.html",
link: function(e, f, g, h) {
function i() {
var a = parseInt(e.hours, 10),
b = e.showMeridian ? a > 0 && 13 > a : a >= 0 && 24 > a;
return b ? (e.showMeridian && (12 === a && (a = 0), e.meridian === q[1] && (a += 12)), a) : void 0
}
function j() {
var a = parseInt(e.minutes, 10);
return a >= 0 && 60 > a ? a : void 0
}
function k(a) {
return angular.isDefined(a) && a.toString().length < 2 ? "0" + a : a
}
function l(a) {
m(), h.$setViewValue(new Date(p)), n(a)
}
function m() {
h.$setValidity("time", !0), e.invalidHours = !1, e.invalidMinutes = !1
}
function n(a) {
var b = p.getHours(),
c = p.getMinutes();
e.showMeridian && (b = 0 === b || 12 === b ? 12 : b % 12), e.hours = "h" === a ? b : k(b), e.minutes = "m" === a ? c : k(c), e.meridian = p.getHours() < 12 ? q[0] : q[1]
}
function o(a) {
var b = new Date(p.getTime() + 6e4 * a);
p.setHours(b.getHours(), b.getMinutes()), l()
}
if (h) {
var p = new Date,
q = angular.isDefined(g.meridians) ? e.$parent.$eval(g.meridians) : c.meridians || d.DATETIME_FORMATS.AMPMS,
r = c.hourStep;
g.hourStep && e.$parent.$watch(a(g.hourStep), function(a) {
r = parseInt(a, 10)
});
var s = c.minuteStep;
g.minuteStep && e.$parent.$watch(a(g.minuteStep), function(a) {
s = parseInt(a, 10)
}), e.showMeridian = c.showMeridian, g.showMeridian && e.$parent.$watch(a(g.showMeridian), function(a) {
if (e.showMeridian = !!a, h.$error.time) {
var b = i(),
c = j();
angular.isDefined(b) && angular.isDefined(c) && (p.setHours(b), l())
} else n()
});
var t = f.find("input"),
u = t.eq(0),
v = t.eq(1),
w = angular.isDefined(g.mousewheel) ? e.$eval(g.mousewheel) : c.mousewheel;
if (w) {
var x = function(a) {
a.originalEvent && (a = a.originalEvent);
var b = a.wheelDelta ? a.wheelDelta : -a.deltaY;
return a.detail || b > 0
};
u.bind("mousewheel wheel", function(a) {
e.$apply(x(a) ? e.incrementHours() : e.decrementHours()), a.preventDefault()
}), v.bind("mousewheel wheel", function(a) {
e.$apply(x(a) ? e.incrementMinutes() : e.decrementMinutes()), a.preventDefault()
})
}
if (e.readonlyInput = angular.isDefined(g.readonlyInput) ? e.$eval(g.readonlyInput) : c.readonlyInput, e.readonlyInput) e.updateHours = angular.noop, e.updateMinutes = angular.noop;
else {
var y = function(a, b) {
h.$setViewValue(null), h.$setValidity("time", !1), angular.isDefined(a) && (e.invalidHours = a), angular.isDefined(b) && (e.invalidMinutes = b)
};
e.updateHours = function() {
var a = i();
angular.isDefined(a) ? (p.setHours(a), l("h")) : y(!0)
}, u.bind("blur", function() {
!e.validHours && e.hours < 10 && e.$apply(function() {
e.hours = k(e.hours)
})
}), e.updateMinutes = function() {
var a = j();
angular.isDefined(a) ? (p.setMinutes(a), l("m")) : y(void 0, !0)
}, v.bind("blur", function() {
!e.invalidMinutes && e.minutes < 10 && e.$apply(function() {
e.minutes = k(e.minutes)
})
})
}
h.$render = function() {
var a = h.$modelValue ? new Date(h.$modelValue) : null;
isNaN(a) ? (h.$setValidity("time", !1), b.error('Timepicker directive: "ng-model" value must be a Date object, a number of milliseconds since 01.01.1970 or a string representing an RFC2822 or ISO 8601 date.')) : (a && (p = a), m(), n())
}, e.incrementHours = function() {
o(60 * r)
}, e.decrementHours = function() {
o(60 * -r)
}, e.incrementMinutes = function() {
o(s)
}, e.decrementMinutes = function() {
o(-s)
}, e.toggleMeridian = function() {
o(720 * (p.getHours() < 12 ? 1 : -1))
}
}
}
}
}]), angular.module("ui.bootstrap.typeahead", ["ui.bootstrap.position", "ui.bootstrap.bindHtml"]).factory("typeaheadParser", ["$parse", function(a) {
var b = /^\s*(.*?)(?:\s+as\s+(.*?))?\s+for\s+(?:([\$\w][\$\w\d]*))\s+in\s+(.*)$/;
return {
parse: function(c) {
var d = c.match(b);
if (!d) throw new Error("Expected typeahead specification in form of '_modelValue_ (as _label_)? for _item_ in _collection_' but got '" + c + "'.");
return {
itemName: d[3],
source: a(d[4]),
viewMapper: a(d[2] || d[1]),
modelMapper: a(d[1])
}
}
}
}]).directive("typeahead", ["$compile", "$parse", "$q", "$timeout", "$document", "$position", "typeaheadParser", function(a, b, c, d, e, f, g) {
var h = [9, 13, 27, 38, 40];
return {
require: "ngModel",
link: function(i, j, k, l) {
var m, n = i.$eval(k.typeaheadMinLength) || 1,
o = i.$eval(k.typeaheadWaitMs) || 0,
p = i.$eval(k.typeaheadEditable) !== !1,
q = b(k.typeaheadLoading).assign || angular.noop,
r = b(k.typeaheadOnSelect),
s = k.typeaheadInputFormatter ? b(k.typeaheadInputFormatter) : void 0,
t = k.typeaheadAppendToBody ? b(k.typeaheadAppendToBody) : !1,
u = b(k.ngModel).assign,
v = g.parse(k.typeahead),
w = angular.element("<div typeahead-popup></div>");
w.attr({
matches: "matches",
active: "activeIdx",
select: "select(activeIdx)",
query: "query",
position: "position"
}), angular.isDefined(k.typeaheadTemplateUrl) && w.attr("template-url", k.typeaheadTemplateUrl);
var x = i.$new();
i.$on("$destroy", function() {
x.$destroy()
});
var y = function() {
x.matches = [], x.activeIdx = -1
},
z = function(a) {
var b = {
$viewValue: a
};
q(i, !0), c.when(v.source(i, b)).then(function(c) {
if (a === l.$viewValue && m) {
if (c.length > 0) {
x.activeIdx = 0, x.matches.length = 0;
for (var d = 0; d < c.length; d++) b[v.itemName] = c[d], x.matches.push({
label: v.viewMapper(x, b),
model: c[d]
});
x.query = a, x.position = t ? f.offset(j) : f.position(j), x.position.top = x.position.top + j.prop("offsetHeight")
} else y();
q(i, !1)
}
}, function() {
y(), q(i, !1)
})
};
y(), x.query = void 0;
var A;
l.$parsers.unshift(function(a) {
return m = !0, a && a.length >= n ? o > 0 ? (A && d.cancel(A), A = d(function() {
z(a)
}, o)) : z(a) : (q(i, !1), y()), p ? a : a ? (l.$setValidity("editable", !1), void 0) : (l.$setValidity("editable", !0), a)
}), l.$formatters.push(function(a) {
var b, c, d = {};
return s ? (d.$model = a, s(i, d)) : (d[v.itemName] = a, b = v.viewMapper(i, d), d[v.itemName] = void 0, c = v.viewMapper(i, d), b !== c ? b : a)
}), x.select = function(a) {
var b, c, d = {};
d[v.itemName] = c = x.matches[a].model, b = v.modelMapper(i, d), u(i, b), l.$setValidity("editable", !0), r(i, {
$item: c,
$model: b,
$label: v.viewMapper(i, d)
}), y(), j[0].focus()
}, j.bind("keydown", function(a) {
0 !== x.matches.length && -1 !== h.indexOf(a.which) && (a.preventDefault(), 40 === a.which ? (x.activeIdx = (x.activeIdx + 1) % x.matches.length, x.$digest()) : 38 === a.which ? (x.activeIdx = (x.activeIdx ? x.activeIdx : x.matches.length) - 1, x.$digest()) : 13 === a.which || 9 === a.which ? x.$apply(function() {
x.select(x.activeIdx)
}) : 27 === a.which && (a.stopPropagation(), y(), x.$digest()))
}), j.bind("blur", function() {
m = !1
});
var B = function(a) {
j[0] !== a.target && (y(), x.$digest())
};
e.bind("click", B), i.$on("$destroy", function() {
e.unbind("click", B)
});
var C = a(w)(x);
t ? e.find("body").append(C) : j.after(C)
}
}
}]).directive("typeaheadPopup", function() {
return {
restrict: "EA",
scope: {
matches: "=",
query: "=",
active: "=",
position: "=",
select: "&"
},
replace: !0,
templateUrl: "template/typeahead/typeahead-popup.html",
link: function(a, b, c) {
a.templateUrl = c.templateUrl, a.isOpen = function() {
return a.matches.length > 0
}, a.isActive = function(b) {
return a.active == b
}, a.selectActive = function(b) {
a.active = b
}, a.selectMatch = function(b) {
a.select({
activeIdx: b
})
}
}
}
}).directive("typeaheadMatch", ["$http", "$templateCache", "$compile", "$parse", function(a, b, c, d) {
return {
restrict: "EA",
scope: {
index: "=",
match: "=",
query: "="
},
link: function(e, f, g) {
var h = d(g.templateUrl)(e.$parent) || "template/typeahead/typeahead-match.html";
a.get(h, {
cache: b
}).success(function(a) {
f.replaceWith(c(a.trim())(e))
})
}
}
}]).filter("typeaheadHighlight", function() {
function a(a) {
return a.replace(/([.?*+^$[\]\\(){}|-])/g, "\\$1")
}
return function(b, c) {
return c ? b.replace(new RegExp(a(c), "gi"), "<strong>$&</strong>") : b
}
}), angular.module("template/accordion/accordion-group.html", []).run(["$templateCache", function(a) {
a.put("template/accordion/accordion-group.html", '<div class="panel panel-default">\n <div class="panel-heading">\n <h4 class="panel-title">\n <a class="accordion-toggle" ng-click="isOpen = !isOpen" accordion-transclude="heading">{{heading}}</a>\n </h4>\n </div>\n <div class="panel-collapse" collapse="!isOpen">\n <div class="panel-body" ng-transclude></div>\n </div>\n</div>')
}]), angular.module("template/accordion/accordion.html", []).run(["$templateCache", function(a) {
a.put("template/accordion/accordion.html", '<div class="panel-group" ng-transclude></div>')
}]), angular.module("template/alert/alert.html", []).run(["$templateCache", function(a) {
a.put("template/alert/alert.html", "<div class='alert' ng-class='\"alert-\" + (type || \"warning\")'>\n <button ng-show='closeable' type='button' class='close' ng-click='close()'>×</button>\n <div ng-transclude></div>\n</div>\n")
}]), angular.module("template/carousel/carousel.html", []).run(["$templateCache", function(a) {
a.put("template/carousel/carousel.html", '<div ng-mouseenter="pause()" ng-mouseleave="play()" class="carousel">\n <ol class="carousel-indicators" ng-show="slides().length > 1">\n <li ng-repeat="slide in slides()" ng-class="{active: isActive(slide)}" ng-click="select(slide)"></li>\n </ol>\n <div class="carousel-inner" ng-transclude></div>\n <a class="left carousel-control" ng-click="prev()" ng-show="slides().length > 1"><span class="icon-prev"></span></a>\n <a class="right carousel-control" ng-click="next()" ng-show="slides().length > 1"><span class="icon-next"></span></a>\n</div>\n')
}]), angular.module("template/carousel/slide.html", []).run(["$templateCache", function(a) {
a.put("template/carousel/slide.html", "<div ng-class=\"{\n 'active': leaving || (active && !entering),\n 'prev': (next || active) && direction=='prev',\n 'next': (next || active) && direction=='next',\n 'right': direction=='prev',\n 'left': direction=='next'\n }\" class=\"item text-center\" ng-transclude></div>\n")
}]), angular.module("template/datepicker/datepicker.html", []).run(["$templateCache", function(a) {
a.put("template/datepicker/datepicker.html", '<table>\n <thead>\n <tr>\n <th><button type="button" class="btn btn-default btn-sm pull-left" ng-click="move(-1)"><i class="glyphicon glyphicon-chevron-left"></i></button></th>\n <th colspan="{{rows[0].length - 2 + showWeekNumbers}}"><button type="button" class="btn btn-default btn-sm btn-block" ng-click="toggleMode()"><strong>{{title}}</strong></button></th>\n <th><button type="button" class="btn btn-default btn-sm pull-right" ng-click="move(1)"><i class="glyphicon glyphicon-chevron-right"></i></button></th>\n </tr>\n <tr ng-show="labels.length > 0" class="h6">\n <th ng-show="showWeekNumbers" class="text-center">#</th>\n <th ng-repeat="label in labels" class="text-center">{{label}}</th>\n </tr>\n </thead>\n <tbody>\n <tr ng-repeat="row in rows">\n <td ng-show="showWeekNumbers" class="text-center"><em>{{ getWeekNumber(row) }}</em></td>\n <td ng-repeat="dt in row" class="text-center">\n <button type="button" style="width:100%;" class="btn btn-default btn-sm" ng-class="{\'btn-info\': dt.selected}" ng-click="select(dt.date)" ng-disabled="dt.disabled"><span ng-class="{\'text-muted\': dt.secondary}">{{dt.label}}</span></button>\n </td>\n </tr>\n </tbody>\n</table>\n')
}]), angular.module("template/datepicker/popup.html", []).run(["$templateCache", function(a) {
a.put("template/datepicker/popup.html", "<ul class=\"dropdown-menu\" ng-style=\"{display: (isOpen && 'block') || 'none', top: position.top+'px', left: position.left+'px'}\">\n <li ng-transclude></li>\n" + ' <li ng-show="showButtonBar" style="padding:10px 9px 2px">\n <span class="btn-group">\n <button type="button" class="btn btn-sm btn-info" ng-click="today()">{{currentText}}</button>\n <button type="button" class="btn btn-sm btn-default" ng-click="showWeeks = ! showWeeks" ng-class="{active: showWeeks}">{{toggleWeeksText}}</button>\n <button type="button" class="btn btn-sm btn-danger" ng-click="clear()">{{clearText}}</button>\n </span>\n <button type="button" class="btn btn-sm btn-success pull-right" ng-click="isOpen = false">{{closeText}}</button>\n </li>\n</ul>\n')
}]), angular.module("template/modal/backdrop.html", []).run(["$templateCache", function(a) {
a.put("template/modal/backdrop.html", '<div class="modal-backdrop fade" ng-class="{in: animate}" ng-style="{\'z-index\': 1040 + index*10}"></div>')
}]), angular.module("template/modal/window.html", []).run(["$templateCache", function(a) {
a.put("template/modal/window.html", '<div tabindex="-1" class="modal fade {{ windowClass }}" ng-class="{in: animate}" ng-style="{\'z-index\': 1050 + index*10, display: \'block\'}" ng-click="close($event)">\n <div class="modal-dialog"><div class="modal-content" ng-transclude></div></div>\n</div>')
}]), angular.module("template/pagination/pager.html", []).run(["$templateCache", function(a) {
a.put("template/pagination/pager.html", '<ul class="pager">\n <li ng-repeat="page in pages" ng-class="{disabled: page.disabled, previous: page.previous, next: page.next}"><a ng-click="selectPage(page.number)">{{page.text}}</a></li>\n</ul>')
}]), angular.module("template/pagination/pagination.html", []).run(["$templateCache", function(a) {
a.put("template/pagination/pagination.html", '<ul class="pagination">\n <li ng-repeat="page in pages" ng-class="{active: page.active, disabled: page.disabled}"><a ng-click="selectPage(page.number)">{{page.text}}</a></li>\n</ul>')
}]), angular.module("template/tooltip/tooltip-html-unsafe-popup.html", []).run(["$templateCache", function(a) {
a.put("template/tooltip/tooltip-html-unsafe-popup.html", '<div class="tooltip {{placement}}" ng-class="{ in: isOpen(), fade: animation() }">\n <div class="tooltip-arrow"></div>\n <div class="tooltip-inner" bind-html-unsafe="content"></div>\n</div>\n')
}]), angular.module("template/tooltip/tooltip-popup.html", []).run(["$templateCache", function(a) {
a.put("template/tooltip/tooltip-popup.html", '<div class="tooltip {{placement}}" ng-class="{ in: isOpen(), fade: animation() }">\n <div class="tooltip-arrow"></div>\n <div class="tooltip-inner" ng-bind="content"></div>\n</div>\n')
}]), angular.module("template/popover/popover.html", []).run(["$templateCache", function(a) {
a.put("template/popover/popover.html", '<div class="popover {{placement}}" ng-class="{ in: isOpen(), fade: animation() }">\n <div class="arrow"></div>\n\n <div class="popover-inner">\n <h3 class="popover-title" ng-bind="title" ng-show="title"></h3>\n <div class="popover-content" ng-bind="content"></div>\n </div>\n</div>\n')
}]), angular.module("template/progressbar/bar.html", []).run(["$templateCache", function(a) {
a.put("template/progressbar/bar.html", '<div class="progress-bar" ng-class="type && \'progress-bar-\' + type" ng-transclude></div>')
}]), angular.module("template/progressbar/progress.html", []).run(["$templateCache", function(a) {
a.put("template/progressbar/progress.html", '<div class="progress" ng-transclude></div>')
}]), angular.module("template/progressbar/progressbar.html", []).run(["$templateCache", function(a) {
a.put("template/progressbar/progressbar.html", '<div class="progress"><div class="progress-bar" ng-class="type && \'progress-bar-\' + type" ng-transclude></div></div>')
}]), angular.module("template/rating/rating.html", []).run(["$templateCache", function(a) {
a.put("template/rating/rating.html", '<span ng-mouseleave="reset()">\n <i ng-repeat="r in range" ng-mouseenter="enter($index + 1)" ng-click="rate($index + 1)" class="glyphicon" ng-class="$index < val && (r.stateOn || \'glyphicon-star\') || (r.stateOff || \'glyphicon-star-empty\')"></i>\n</span>')
}]), angular.module("template/tabs/tab.html", []).run(["$templateCache", function(a) {
a.put("template/tabs/tab.html", '<li ng-class="{active: active, disabled: disabled}">\n <a ng-click="select()" tab-heading-transclude>{{heading}}</a>\n</li>\n')
}]), angular.module("template/tabs/tabset-titles.html", []).run(["$templateCache", function(a) {
a.put("template/tabs/tabset-titles.html", "<ul class=\"nav {{type && 'nav-' + type}}\" ng-class=\"{'nav-stacked': vertical}\">\n</ul>\n")
}]), angular.module("template/tabs/tabset.html", []).run(["$templateCache", function(a) {
a.put("template/tabs/tabset.html", '\n<div class="tabbable">\n <ul class="nav {{type && \'nav-\' + type}}" ng-class="{\'nav-stacked\': vertical, \'nav-justified\': justified}" ng-transclude></ul>\n <div class="tab-content">\n <div class="tab-pane" \n ng-repeat="tab in tabs" \n ng-class="{active: tab.active}"\n tab-content-transclude="tab">\n </div>\n </div>\n</div>\n')
}]), angular.module("template/timepicker/timepicker.html", []).run(["$templateCache", function(a) {
a.put("template/timepicker/timepicker.html", '<table>\n <tbody>\n <tr class="text-center">\n <td><a ng-click="incrementHours()" class="btn btn-link"><span class="glyphicon glyphicon-chevron-up"></span></a></td>\n <td> </td>\n <td><a ng-click="incrementMinutes()" class="btn btn-link"><span class="glyphicon glyphicon-chevron-up"></span></a></td>\n <td ng-show="showMeridian"></td>\n </tr>\n <tr>\n <td style="width:50px;" class="form-group" ng-class="{\'has-error\': invalidHours}">\n <input type="text" ng-model="hours" ng-change="updateHours()" class="form-control text-center" ng-mousewheel="incrementHours()" ng-readonly="readonlyInput" maxlength="2">\n </td>\n <td>:</td>\n <td style="width:50px;" class="form-group" ng-class="{\'has-error\': invalidMinutes}">\n <input type="text" ng-model="minutes" ng-change="updateMinutes()" class="form-control text-center" ng-readonly="readonlyInput" maxlength="2">\n </td>\n <td ng-show="showMeridian"><button type="button" class="btn btn-default text-center" ng-click="toggleMeridian()">{{meridian}}</button></td>\n </tr>\n <tr class="text-center">\n <td><a ng-click="decrementHours()" class="btn btn-link"><span class="glyphicon glyphicon-chevron-down"></span></a></td>\n <td> </td>\n <td><a ng-click="decrementMinutes()" class="btn btn-link"><span class="glyphicon glyphicon-chevron-down"></span></a></td>\n <td ng-show="showMeridian"></td>\n </tr>\n </tbody>\n</table>\n')
}]), angular.module("template/typeahead/typeahead-match.html", []).run(["$templateCache", function(a) {
a.put("template/typeahead/typeahead-match.html", '<a tabindex="-1" bind-html-unsafe="match.label | typeaheadHighlight:query"></a>')
}]), angular.module("template/typeahead/typeahead-popup.html", []).run(["$templateCache", function(a) {
a.put("template/typeahead/typeahead-popup.html", "<ul class=\"dropdown-menu\" ng-style=\"{display: isOpen()&&'block' || 'none', top: position.top+'px', left: position.left+'px'}\">\n" + ' <li ng-repeat="match in matches" ng-class="{active: isActive($index) }" ng-mouseenter="selectActive($index)" ng-click="selectMatch($index)">\n <div typeahead-match index="$index" match="match" query="query" template-url="templateUrl"></div>\n </li>\n</ul>')
}]);
this.createjs = this.createjs || {},
function() {
"use strict";
var a = function(a, b, c) {
this.initialize(a, b, c)
},
b = a.prototype;
b.type = null, b.target = null, b.currentTarget = null, b.eventPhase = 0, b.bubbles = !1, b.cancelable = !1, b.timeStamp = 0, b.defaultPrevented = !1, b.propagationStopped = !1, b.immediatePropagationStopped = !1, b.removed = !1, b.initialize = function(a, b, c) {
this.type = a, this.bubbles = b, this.cancelable = c, this.timeStamp = (new Date).getTime()
}, b.preventDefault = function() {
this.defaultPrevented = !0
}, b.stopPropagation = function() {
this.propagationStopped = !0
}, b.stopImmediatePropagation = function() {
this.immediatePropagationStopped = this.propagationStopped = !0
}, b.remove = function() {
this.removed = !0
}, b.clone = function() {
return new a(this.type, this.bubbles, this.cancelable)
}, b.toString = function() {
return "[Event (type=" + this.type + ")]"
}, createjs.Event = a
}(), this.createjs = this.createjs || {},
function() {
"use strict";
var a = function() {},
b = a.prototype;
a.initialize = function(a) {
a.addEventListener = b.addEventListener, a.on = b.on, a.removeEventListener = a.off = b.removeEventListener, a.removeAllEventListeners = b.removeAllEventListeners, a.hasEventListener = b.hasEventListener, a.dispatchEvent = b.dispatchEvent, a._dispatchEvent = b._dispatchEvent, a.willTrigger = b.willTrigger
}, b._listeners = null, b._captureListeners = null, b.initialize = function() {}, b.addEventListener = function(a, b, c) {
var d;
d = c ? this._captureListeners = this._captureListeners || {} : this._listeners = this._listeners || {};
var e = d[a];
return e && this.removeEventListener(a, b, c), e = d[a], e ? e.push(b) : d[a] = [b], b
}, b.on = function(a, b, c, d, e, f) {
return b.handleEvent && (c = c || b, b = b.handleEvent), c = c || this, this.addEventListener(a, function(a) {
b.call(c, a, e), d && a.remove()
}, f)
}, b.removeEventListener = function(a, b, c) {
var d = c ? this._captureListeners : this._listeners;
if (d) {
var e = d[a];
if (e)
for (var f = 0, g = e.length; g > f; f++)
if (e[f] == b) {
1 == g ? delete d[a] : e.splice(f, 1);
break
}
}
}, b.off = b.removeEventListener, b.removeAllEventListeners = function(a) {
a ? (this._listeners && delete this._listeners[a], this._captureListeners && delete this._captureListeners[a]) : this._listeners = this._captureListeners = null
}, b.dispatchEvent = function(a, b) {
if ("string" == typeof a) {
var c = this._listeners;
if (!c || !c[a]) return !1;
a = new createjs.Event(a)
}
if (a.target = b || this, a.bubbles && this.parent) {
for (var d = this, e = [d]; d.parent;) e.push(d = d.parent);
var f, g = e.length;
for (f = g - 1; f >= 0 && !a.propagationStopped; f--) e[f]._dispatchEvent(a, 1 + (0 == f));
for (f = 1; g > f && !a.propagationStopped; f++) e[f]._dispatchEvent(a, 3)
} else this._dispatchEvent(a, 2);
return a.defaultPrevented
}, b.hasEventListener = function(a) {
var b = this._listeners,
c = this._captureListeners;
return !!(b && b[a] || c && c[a])
}, b.willTrigger = function(a) {
for (var b = this; b;) {
if (b.hasEventListener(a)) return !0;
b = b.parent
}
return !1
}, b.toString = function() {
return "[EventDispatcher]"
}, b._dispatchEvent = function(a, b) {
var c, d = 1 == b ? this._captureListeners : this._listeners;
if (a && d) {
var e = d[a.type];
if (!e || !(c = e.length)) return;
a.currentTarget = this, a.eventPhase = b, a.removed = !1, e = e.slice();
for (var f = 0; c > f && !a.immediatePropagationStopped; f++) {
var g = e[f];
g.handleEvent ? g.handleEvent(a) : g(a), a.removed && (this.off(a.type, g, 1 == b), a.removed = !1)
}
}
}, createjs.EventDispatcher = a
}(), this.createjs = this.createjs || {},
function() {
"use strict";
createjs.indexOf = function(a, b) {
for (var c = 0, d = a.length; d > c; c++)
if (b === a[c]) return c;
return -1
}
}(), this.createjs = this.createjs || {},
function() {
"use strict";
var a = function() {
throw "UID cannot be instantiated"
};
a._nextID = 0, a.get = function() {
return a._nextID++
}, createjs.UID = a
}(), this.createjs = this.createjs || {},
function() {
"use strict";
var a = function() {
throw "Ticker cannot be instantiated."
};
a.RAF_SYNCHED = "synched", a.RAF = "raf", a.TIMEOUT = "timeout", a.useRAF = !1, a.timingMode = null, a.maxDelta = 0, a.removeEventListener = null, a.removeAllEventListeners = null, a.dispatchEvent = null, a.hasEventListener = null, a._listeners = null, createjs.EventDispatcher.initialize(a), a._addEventListener = a.addEventListener, a.addEventListener = function() {
return !a._inited && a.init(), a._addEventListener.apply(a, arguments)
}, a._paused = !1, a._inited = !1, a._startTime = 0, a._pausedTime = 0, a._ticks = 0, a._pausedTicks = 0, a._interval = 50, a._lastTime = 0, a._times = null, a._tickTimes = null, a._timerId = null, a._raf = !0, a.init = function() {
a._inited || (a._inited = !0, a._times = [], a._tickTimes = [], a._startTime = a._getTime(), a._times.push(a._lastTime = 0), a.setInterval(a._interval))
}, a.reset = function() {
if (a._raf) {
var b = window.cancelAnimationFrame || window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || window.oCancelAnimationFrame || window.msCancelAnimationFrame;
b && b(a._timerId)
} else clearTimeout(a._timerId);
a.removeAllEventListeners("tick")
}, a.setInterval = function(b) {
a._interval = b, a._inited && a._setupTick()
}, a.getInterval = function() {
return a._interval
}, a.setFPS = function(b) {
a.setInterval(1e3 / b)
}, a.getFPS = function() {
return 1e3 / a._interval
}, a.getMeasuredTickTime = function(b) {
var c = 0,
d = a._tickTimes;
if (d.length < 1) return -1;
b = Math.min(d.length, b || 0 | a.getFPS());
for (var e = 0; b > e; e++) c += d[e];
return c / b
}, a.getMeasuredFPS = function(b) {
var c = a._times;
return c.length < 2 ? -1 : (b = Math.min(c.length - 1, b || 0 | a.getFPS()), 1e3 / ((c[0] - c[b]) / b))
}, a.setPaused = function(b) {
a._paused = b
}, a.getPaused = function() {
return a._paused
}, a.getTime = function(b) {
return a._getTime() - a._startTime - (b ? a._pausedTime : 0)
}, a.getEventTime = function(b) {
return (a._lastTime || a._startTime) - (b ? a._pausedTime : 0)
}, a.getTicks = function(b) {
return a._ticks - (b ? a._pausedTicks : 0)
}, a._handleSynch = function() {
var b = a._getTime() - a._startTime;
a._timerId = null, a._setupTick(), b - a._lastTime >= .97 * (a._interval - 1) && a._tick()
}, a._handleRAF = function() {
a._timerId = null, a._setupTick(), a._tick()
}, a._handleTimeout = function() {
a._timerId = null, a._setupTick(), a._tick()
}, a._setupTick = function() {
if (null == a._timerId) {
var b = a.timingMode || a.useRAF && a.RAF_SYNCHED;
if (b == a.RAF_SYNCHED || b == a.RAF) {
var c = window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame;
if (c) return a._timerId = c(b == a.RAF ? a._handleRAF : a._handleSynch), a._raf = !0, void 0
}
a._raf = !1, a._timerId = setTimeout(a._handleTimeout, a._interval)
}
}, a._tick = function() {
var b = a._getTime() - a._startTime,
c = b - a._lastTime,
d = a._paused;
if (a._ticks++, d && (a._pausedTicks++, a._pausedTime += c), a._lastTime = b, a.hasEventListener("tick")) {
var e = new createjs.Event("tick"),
f = a.maxDelta;
e.delta = f && c > f ? f : c, e.paused = d, e.time = b, e.runTime = b - a._pausedTime, a.dispatchEvent(e)
}
for (a._tickTimes.unshift(a._getTime() - b); a._tickTimes.length > 100;) a._tickTimes.pop();
for (a._times.unshift(b); a._times.length > 100;) a._times.pop()
};
var b = window.performance && (performance.now || performance.mozNow || performance.msNow || performance.oNow || performance.webkitNow);
a._getTime = function() {
return b && b.call(performance) || (new Date).getTime()
}, createjs.Ticker = a
}(), this.createjs = this.createjs || {},
function() {
"use strict";
var a = function(a, b, c, d, e, f, g, h, i, j) {
this.initialize(a, b, c, d, e, f, g, h, i, j)
},
b = a.prototype = new createjs.Event;
b.stageX = 0, b.stageY = 0, b.rawX = 0, b.rawY = 0, b.nativeEvent = null, b.pointerID = 0, b.primary = !1, b.addEventListener = null, b.removeEventListener = null, b.removeAllEventListeners = null, b.dispatchEvent = null, b.hasEventListener = null, b._listeners = null, createjs.EventDispatcher.initialize(b), b._get_localX = function() {
return this.currentTarget.globalToLocal(this.rawX, this.rawY).x
}, b._get_localY = function() {
return this.currentTarget.globalToLocal(this.rawX, this.rawY).y
};
try {
Object.defineProperties(b, {
localX: {
get: b._get_localX
},
localY: {
get: b._get_localY
}
})
} catch (c) {}
b.Event_initialize = b.initialize, b.initialize = function(a, b, c, d, e, f, g, h, i, j) {
this.Event_initialize(a, b, c), this.stageX = d, this.stageY = e, this.nativeEvent = f, this.pointerID = g, this.primary = h, this.rawX = null == i ? d : i, this.rawY = null == j ? e : j
}, b.clone = function() {
return new a(this.type, this.bubbles, this.cancelable, this.stageX, this.stageY, this.target, this.nativeEvent, this.pointerID, this.primary, this.rawX, this.rawY)
}, b.toString = function() {
return "[MouseEvent (type=" + this.type + " stageX=" + this.stageX + " stageY=" + this.stageY + ")]"
}, createjs.MouseEvent = a
}(), this.createjs = this.createjs || {},
function() {
"use strict";
var a = function(a, b, c, d, e, f) {
this.initialize(a, b, c, d, e, f)
},
b = a.prototype;
a.identity = null, a.DEG_TO_RAD = Math.PI / 180, b.a = 1, b.b = 0, b.c = 0, b.d = 1, b.tx = 0, b.ty = 0, b.alpha = 1, b.shadow = null, b.compositeOperation = null, b.initialize = function(a, b, c, d, e, f) {
return this.a = null == a ? 1 : a, this.b = b || 0, this.c = c || 0, this.d = null == d ? 1 : d, this.tx = e || 0, this.ty = f || 0, this
}, b.prepend = function(a, b, c, d, e, f) {
var g = this.tx;
if (1 != a || 0 != b || 0 != c || 1 != d) {
var h = this.a,
i = this.c;
this.a = h * a + this.b * c, this.b = h * b + this.b * d, this.c = i * a + this.d * c, this.d = i * b + this.d * d
}
return this.tx = g * a + this.ty * c + e, this.ty = g * b + this.ty * d + f, this
}, b.append = function(a, b, c, d, e, f) {
var g = this.a,
h = this.b,
i = this.c,
j = this.d;
return this.a = a * g + b * i, this.b = a * h + b * j, this.c = c * g + d * i, this.d = c * h + d * j, this.tx = e * g + f * i + this.tx, this.ty = e * h + f * j + this.ty, this
}, b.prependMatrix = function(a) {
return this.prepend(a.a, a.b, a.c, a.d, a.tx, a.ty), this.prependProperties(a.alpha, a.shadow, a.compositeOperation), this
}, b.appendMatrix = function(a) {
return this.append(a.a, a.b, a.c, a.d, a.tx, a.ty), this.appendProperties(a.alpha, a.shadow, a.compositeOperation), this
}, b.prependTransform = function(b, c, d, e, f, g, h, i, j) {
if (f % 360) var k = f * a.DEG_TO_RAD,
l = Math.cos(k),
m = Math.sin(k);
else l = 1, m = 0;
return (i || j) && (this.tx -= i, this.ty -= j), g || h ? (g *= a.DEG_TO_RAD, h *= a.DEG_TO_RAD, this.prepend(l * d, m * d, -m * e, l * e, 0, 0), this.prepend(Math.cos(h), Math.sin(h), -Math.sin(g), Math.cos(g), b, c)) : this.prepend(l * d, m * d, -m * e, l * e, b, c), this
}, b.appendTransform = function(b, c, d, e, f, g, h, i, j) {
if (f % 360) var k = f * a.DEG_TO_RAD,
l = Math.cos(k),
m = Math.sin(k);
else l = 1, m = 0;
return g || h ? (g *= a.DEG_TO_RAD, h *= a.DEG_TO_RAD, this.append(Math.cos(h), Math.sin(h), -Math.sin(g), Math.cos(g), b, c), this.append(l * d, m * d, -m * e, l * e, 0, 0)) : this.append(l * d, m * d, -m * e, l * e, b, c), (i || j) && (this.tx -= i * this.a + j * this.c, this.ty -= i * this.b + j * this.d), this
}, b.rotate = function(a) {
var b = Math.cos(a),
c = Math.sin(a),
d = this.a,
e = this.c,
f = this.tx;
return this.a = d * b - this.b * c, this.b = d * c + this.b * b, this.c = e * b - this.d * c, this.d = e * c + this.d * b, this.tx = f * b - this.ty * c, this.ty = f * c + this.ty * b, this
}, b.skew = function(b, c) {
return b *= a.DEG_TO_RAD, c *= a.DEG_TO_RAD, this.append(Math.cos(c), Math.sin(c), -Math.sin(b), Math.cos(b), 0, 0), this
}, b.scale = function(a, b) {
return this.a *= a, this.d *= b, this.c *= a, this.b *= b, this.tx *= a, this.ty *= b, this
}, b.translate = function(a, b) {
return this.tx += a, this.ty += b, this
}, b.identity = function() {
return this.alpha = this.a = this.d = 1, this.b = this.c = this.tx = this.ty = 0, this.shadow = this.compositeOperation = null, this
}, b.invert = function() {
var a = this.a,
b = this.b,
c = this.c,
d = this.d,
e = this.tx,
f = a * d - b * c;
return this.a = d / f, this.b = -b / f, this.c = -c / f, this.d = a / f, this.tx = (c * this.ty - d * e) / f, this.ty = -(a * this.ty - b * e) / f, this
}, b.isIdentity = function() {
return 0 == this.tx && 0 == this.ty && 1 == this.a && 0 == this.b && 0 == this.c && 1 == this.d
}, b.transformPoint = function(a, b, c) {
return c = c || {}, c.x = a * this.a + b * this.c + this.tx, c.y = a * this.b + b * this.d + this.ty, c
}, b.decompose = function(b) {
null == b && (b = {}), b.x = this.tx, b.y = this.ty, b.scaleX = Math.sqrt(this.a * this.a + this.b * this.b), b.scaleY = Math.sqrt(this.c * this.c + this.d * this.d);
var c = Math.atan2(-this.c, this.d),
d = Math.atan2(this.b, this.a);
return c == d ? (b.rotation = d / a.DEG_TO_RAD, this.a < 0 && this.d >= 0 && (b.rotation += b.rotation <= 0 ? 180 : -180), b.skewX = b.skewY = 0) : (b.skewX = c / a.DEG_TO_RAD, b.skewY = d / a.DEG_TO_RAD), b
}, b.reinitialize = function(a, b, c, d, e, f, g, h, i) {
return this.initialize(a, b, c, d, e, f), this.alpha = null == g ? 1 : g, this.shadow = h, this.compositeOperation = i, this
}, b.copy = function(a) {
return this.reinitialize(a.a, a.b, a.c, a.d, a.tx, a.ty, a.alpha, a.shadow, a.compositeOperation)
}, b.appendProperties = function(a, b, c) {
return this.alpha *= a, this.shadow = b || this.shadow, this.compositeOperation = c || this.compositeOperation, this
}, b.prependProperties = function(a, b, c) {
return this.alpha *= a, this.shadow = this.shadow || b, this.compositeOperation = this.compositeOperation || c, this
}, b.clone = function() {
return (new a).copy(this)
}, b.toString = function() {
return "[Matrix2D (a=" + this.a + " b=" + this.b + " c=" + this.c + " d=" + this.d + " tx=" + this.tx + " ty=" + this.ty + ")]"
}, a.identity = new a, createjs.Matrix2D = a
}(), this.createjs = this.createjs || {},
function() {
"use strict";
var a = function(a, b) {
this.initialize(a, b)
},
b = a.prototype;
b.x = 0, b.y = 0, b.initialize = function(a, b) {
return this.x = null == a ? 0 : a, this.y = null == b ? 0 : b, this
}, b.copy = function(a) {
return this.initialize(a.x, a.y)
}, b.clone = function() {
return new a(this.x, this.y)
}, b.toString = function() {
return "[Point (x=" + this.x + " y=" + this.y + ")]"
}, createjs.Point = a
}(), this.createjs = this.createjs || {},
function() {
"use strict";
var a = function(a, b, c, d) {
this.initialize(a, b, c, d)
},
b = a.prototype;
b.x = 0, b.y = 0, b.width = 0, b.height = 0, b.initialize = function(a, b, c, d) {
return this.x = a || 0, this.y = b || 0, this.width = c || 0, this.height = d || 0, this
}, b.copy = function(a) {
return this.initialize(a.x, a.y, a.width, a.height)
}, b.clone = function() {
return new a(this.x, this.y, this.width, this.height)
}, b.toString = function() {
return "[Rectangle (x=" + this.x + " y=" + this.y + " width=" + this.width + " height=" + this.height + ")]"
}, createjs.Rectangle = a
}(), this.createjs = this.createjs || {},
function() {
"use strict";
var a = function(a, b, c, d, e, f, g) {
this.initialize(a, b, c, d, e, f, g)
},
b = a.prototype;
b.target = null, b.overLabel = null, b.outLabel = null, b.downLabel = null, b.play = !1, b._isPressed = !1, b._isOver = !1, b.initialize = function(a, b, c, d, e, f, g) {
a.addEventListener && (this.target = a, a.cursor = "pointer", this.overLabel = null == c ? "over" : c, this.outLabel = null == b ? "out" : b, this.downLabel = null == d ? "down" : d, this.play = e, this.setEnabled(!0), this.handleEvent({}), f && (g && (f.actionsEnabled = !1, f.gotoAndStop && f.gotoAndStop(g)), a.hitArea = f))
}, b.setEnabled = function(a) {
var b = this.target;
a ? (b.addEventListener("rollover", this), b.addEventListener("rollout", this), b.addEventListener("mousedown", this), b.addEventListener("pressup", this)) : (b.removeEventListener("rollover", this), b.removeEventListener("rollout", this), b.removeEventListener("mousedown", this), b.removeEventListener("pressup", this))
}, b.toString = function() {
return "[ButtonHelper]"
}, b.handleEvent = function(a) {
var b, c = this.target,
d = a.type;
"mousedown" == d ? (this._isPressed = !0, b = this.downLabel) : "pressup" == d ? (this._isPressed = !1, b = this._isOver ? this.overLabel : this.outLabel) : "rollover" == d ? (this._isOver = !0, b = this._isPressed ? this.downLabel : this.overLabel) : (this._isOver = !1, b = this._isPressed ? this.overLabel : this.outLabel), this.play ? c.gotoAndPlay && c.gotoAndPlay(b) : c.gotoAndStop && c.gotoAndStop(b)
}, createjs.ButtonHelper = a
}(), this.createjs = this.createjs || {},
function() {
"use strict";
var a = function(a, b, c, d) {
this.initialize(a, b, c, d)
},
b = a.prototype;
a.identity = null, b.color = null, b.offsetX = 0, b.offsetY = 0, b.blur = 0, b.initialize = function(a, b, c, d) {
this.color = a, this.offsetX = b, this.offsetY = c, this.blur = d
}, b.toString = function() {
return "[Shadow]"
}, b.clone = function() {
return new a(this.color, this.offsetX, this.offsetY, this.blur)
}, a.identity = new a("transparent", 0, 0, 0), createjs.Shadow = a
}(), this.createjs = this.createjs || {},
function() {
"use strict";
var a = function(a) {
this.initialize(a)
},
b = a.prototype = new createjs.EventDispatcher;
b.complete = !0, b.framerate = 0, b._animations = null, b._frames = null, b._images = null, b._data = null, b._loadCount = 0, b._frameHeight = 0, b._frameWidth = 0, b._numFrames = 0, b._regX = 0, b._regY = 0, b.initialize = function(a) {
var b, c, d, e;
if (null != a) {
if (this.framerate = a.framerate || 0, a.images && (c = a.images.length) > 0)
for (e = this._images = [], b = 0; c > b; b++) {
var f = a.images[b];
if ("string" == typeof f) {
var g = f;
f = document.createElement("img"), f.src = g
}
e.push(f), f.getContext || f.complete || (this._loadCount++, this.complete = !1, function(a) {
f.onload = function() {
a._handleImageLoad()
}
}(this))
}
if (null == a.frames);
else if (a.frames instanceof Array)
for (this._frames = [], e = a.frames, b = 0, c = e.length; c > b; b++) {
var h = e[b];
this._frames.push({
image: this._images[h[4] ? h[4] : 0],
rect: new createjs.Rectangle(h[0], h[1], h[2], h[3]),
regX: h[5] || 0,
regY: h[6] || 0
})
} else d = a.frames, this._frameWidth = d.width, this._frameHeight = d.height, this._regX = d.regX || 0, this._regY = d.regY || 0, this._numFrames = d.count, 0 == this._loadCount && this._calculateFrames();
if (this._animations = [], null != (d = a.animations)) {
this._data = {};
var i;
for (i in d) {
var j = {
name: i
},
k = d[i];
if ("number" == typeof k) e = j.frames = [k];
else if (k instanceof Array)
if (1 == k.length) j.frames = [k[0]];
else
for (j.speed = k[3], j.next = k[2], e = j.frames = [], b = k[0]; b <= k[1]; b++) e.push(b);
else {
j.speed = k.speed, j.next = k.next;
var l = k.frames;
e = j.frames = "number" == typeof l ? [l] : l.slice(0)
}(j.next === !0 || void 0 === j.next) && (j.next = i), (j.next === !1 || e.length < 2 && j.next == i) && (j.next = null), j.speed || (j.speed = 1), this._animations.push(i), this._data[i] = j
}
}
}
}, b.getNumFrames = function(a) {
if (null == a) return this._frames ? this._frames.length : this._numFrames;
var b = this._data[a];
return null == b ? 0 : b.frames.length
}, b.getAnimations = function() {
return this._animations.slice(0)
}, b.getAnimation = function(a) {
return this._data[a]
}, b.getFrame = function(a) {
var b;
return this._frames && (b = this._frames[a]) ? b : null
}, b.getFrameBounds = function(a, b) {
var c = this.getFrame(a);
return c ? (b || new createjs.Rectangle).initialize(-c.regX, -c.regY, c.rect.width, c.rect.height) : null
}, b.toString = function() {
return "[SpriteSheet]"
}, b.clone = function() {
var b = new a;
return b.complete = this.complete, b._animations = this._animations, b._frames = this._frames, b._images = this._images, b._data = this._data, b._frameHeight = this._frameHeight, b._frameWidth = this._frameWidth, b._numFrames = this._numFrames, b._loadCount = this._loadCount, b
}, b._handleImageLoad = function() {
0 == --this._loadCount && (this._calculateFrames(), this.complete = !0, this.dispatchEvent("complete"))
}, b._calculateFrames = function() {
if (!this._frames && 0 != this._frameWidth) {
this._frames = [];
for (var a = 0, b = this._frameWidth, c = this._frameHeight, d = 0, e = this._images; d < e.length; d++) {
for (var f = e[d], g = 0 | f.width / b, h = 0 | f.height / c, i = this._numFrames > 0 ? Math.min(this._numFrames - a, g * h) : g * h, j = 0; i > j; j++) this._frames.push({
image: f,
rect: new createjs.Rectangle(j % g * b, (0 | j / g) * c, b, c),
regX: this._regX,
regY: this._regY
});
a += i
}
this._numFrames = a
}
}, createjs.SpriteSheet = a
}(), this.createjs = this.createjs || {},
function() {
"use strict";
function a(a, b, c) {
this.f = a, this.params = b, this.path = null == c ? !0 : c
}
a.prototype.exec = function(a) {
this.f.apply(a, this.params)
};
var b = function() {
this.initialize()
},
c = b.prototype;
b.getRGB = function(a, b, c, d) {
return null != a && null == c && (d = b, c = 255 & a, b = 255 & a >> 8, a = 255 & a >> 16), null == d ? "rgb(" + a + "," + b + "," + c + ")" : "rgba(" + a + "," + b + "," + c + "," + d + ")"
}, b.getHSL = function(a, b, c, d) {
return null == d ? "hsl(" + a % 360 + "," + b + "%," + c + "%)" : "hsla(" + a % 360 + "," + b + "%," + c + "%," + d + ")"
}, b.Command = a, b.BASE_64 = {
A: 0,
B: 1,
C: 2,
D: 3,
E: 4,
F: 5,
G: 6,
H: 7,
I: 8,
J: 9,
K: 10,
L: 11,
M: 12,
N: 13,
O: 14,
P: 15,
Q: 16,
R: 17,
S: 18,
T: 19,
U: 20,
V: 21,
W: 22,
X: 23,
Y: 24,
Z: 25,
a: 26,
b: 27,
c: 28,
d: 29,
e: 30,
f: 31,
g: 32,
h: 33,
i: 34,
j: 35,
k: 36,
l: 37,
m: 38,
n: 39,
o: 40,
p: 41,
q: 42,
r: 43,
s: 44,
t: 45,
u: 46,
v: 47,
w: 48,
x: 49,
y: 50,
z: 51,
0: 52,
1: 53,
2: 54,
3: 55,
4: 56,
5: 57,
6: 58,
7: 59,
8: 60,
9: 61,
"+": 62,
"/": 63
}, b.STROKE_CAPS_MAP = ["butt", "round", "square"], b.STROKE_JOINTS_MAP = ["miter", "round", "bevel"];
var d = createjs.createCanvas ? createjs.createCanvas() : document.createElement("canvas");
if (d.getContext) {
var e = b._ctx = d.getContext("2d");
b.beginCmd = new a(e.beginPath, [], !1), b.fillCmd = new a(e.fill, [], !1), b.strokeCmd = new a(e.stroke, [], !1), d.width = d.height = 1
}
c._strokeInstructions = null, c._strokeStyleInstructions = null, c._strokeIgnoreScale = !1, c._fillInstructions = null, c._fillMatrix = null, c._instructions = null, c._oldInstructions = null, c._activeInstructions = null, c._active = !1, c._dirty = !1, c.initialize = function() {
this.clear(), this._ctx = b._ctx
}, c.isEmpty = function() {
return !(this._instructions.length || this._oldInstructions.length || this._activeInstructions.length)
}, c.draw = function(a) {
this._dirty && this._updateInstructions();
for (var b = this._instructions, c = 0, d = b.length; d > c; c++) b[c].exec(a)
}, c.drawAsPath = function(a) {
this._dirty && this._updateInstructions();
for (var b, c = this._instructions, d = 0, e = c.length; e > d; d++)((b = c[d]).path || 0 == d) && b.exec(a)
}, c.moveTo = function(b, c) {
return this._activeInstructions.push(new a(this._ctx.moveTo, [b, c])), this
}, c.lineTo = function(b, c) {
return this._dirty = this._active = !0, this._activeInstructions.push(new a(this._ctx.lineTo, [b, c])), this
}, c.arcTo = function(b, c, d, e, f) {
return this._dirty = this._active = !0, this._activeInstructions.push(new a(this._ctx.arcTo, [b, c, d, e, f])), this
}, c.arc = function(b, c, d, e, f, g) {
return this._dirty = this._active = !0, null == g && (g = !1), this._activeInstructions.push(new a(this._ctx.arc, [b, c, d, e, f, g])), this
}, c.quadraticCurveTo = function(b, c, d, e) {
return this._dirty = this._active = !0, this._activeInstructions.push(new a(this._ctx.quadraticCurveTo, [b, c, d, e])), this
}, c.bezierCurveTo = function(b, c, d, e, f, g) {
return this._dirty = this._active = !0, this._activeInstructions.push(new a(this._ctx.bezierCurveTo, [b, c, d, e, f, g])), this
}, c.rect = function(b, c, d, e) {
return this._dirty = this._active = !0, this._activeInstructions.push(new a(this._ctx.rect, [b, c, d, e])), this
}, c.closePath = function() {
return this._active && (this._dirty = !0, this._activeInstructions.push(new a(this._ctx.closePath, []))), this
}, c.clear = function() {
return this._instructions = [], this._oldInstructions = [], this._activeInstructions = [], this._strokeStyleInstructions = this._strokeInstructions = this._fillInstructions = this._fillMatrix = null, this._active = this._dirty = this._strokeIgnoreScale = !1, this
}, c.beginFill = function(b) {
return this._active && this._newPath(), this._fillInstructions = b ? [new a(this._setProp, ["fillStyle", b], !1)] : null, this._fillMatrix = null, this
}, c.beginLinearGradientFill = function(b, c, d, e, f, g) {
this._active && this._newPath();
for (var h = this._ctx.createLinearGradient(d, e, f, g), i = 0, j = b.length; j > i; i++) h.addColorStop(c[i], b[i]);
return this._fillInstructions = [new a(this._setProp, ["fillStyle", h], !1)], this._fillMatrix = null, this
}, c.beginRadialGradientFill = function(b, c, d, e, f, g, h, i) {
this._active && this._newPath();
for (var j = this._ctx.createRadialGradient(d, e, f, g, h, i), k = 0, l = b.length; l > k; k++) j.addColorStop(c[k], b[k]);
return this._fillInstructions = [new a(this._setProp, ["fillStyle", j], !1)], this._fillMatrix = null, this
}, c.beginBitmapFill = function(b, c, d) {
this._active && this._newPath(), c = c || "";
var e = this._ctx.createPattern(b, c);
return this._fillInstructions = [new a(this._setProp, ["fillStyle", e], !1)], this._fillMatrix = d ? [d.a, d.b, d.c, d.d, d.tx, d.ty] : null, this
}, c.endFill = function() {
return this.beginFill()
}, c.setStrokeStyle = function(c, d, e, f, g) {
return this._active && this._newPath(), this._strokeStyleInstructions = [new a(this._setProp, ["lineWidth", null == c ? "1" : c], !1), new a(this._setProp, ["lineCap", null == d ? "butt" : isNaN(d) ? d : b.STROKE_CAPS_MAP[d]], !1), new a(this._setProp, ["lineJoin", null == e ? "miter" : isNaN(e) ? e : b.STROKE_JOINTS_MAP[e]], !1), new a(this._setProp, ["miterLimit", null == f ? "10" : f], !1)], this._strokeIgnoreScale = g, this
}, c.beginStroke = function(b) {
return this._active && this._newPath(), this._strokeInstructions = b ? [new a(this._setProp, ["strokeStyle", b], !1)] : null, this
}, c.beginLinearGradientStroke = function(b, c, d, e, f, g) {
this._active && this._newPath();
for (var h = this._ctx.createLinearGradient(d, e, f, g), i = 0, j = b.length; j > i; i++) h.addColorStop(c[i], b[i]);
return this._strokeInstructions = [new a(this._setProp, ["strokeStyle", h], !1)], this
}, c.beginRadialGradientStroke = function(b, c, d, e, f, g, h, i) {
this._active && this._newPath();
for (var j = this._ctx.createRadialGradient(d, e, f, g, h, i), k = 0, l = b.length; l > k; k++) j.addColorStop(c[k], b[k]);
return this._strokeInstructions = [new a(this._setProp, ["strokeStyle", j], !1)], this
}, c.beginBitmapStroke = function(b, c) {
this._active && this._newPath(), c = c || "";
var d = this._ctx.createPattern(b, c);
return this._strokeInstructions = [new a(this._setProp, ["strokeStyle", d], !1)], this
}, c.endStroke = function() {
return this.beginStroke(), this
}, c.curveTo = c.quadraticCurveTo, c.drawRect = c.rect, c.drawRoundRect = function(a, b, c, d, e) {
return this.drawRoundRectComplex(a, b, c, d, e, e, e, e), this
}, c.drawRoundRectComplex = function(b, c, d, e, f, g, h, i) {
var j = (e > d ? d : e) / 2,
k = 0,
l = 0,
m = 0,
n = 0;
0 > f && (f *= k = -1), f > j && (f = j), 0 > g && (g *= l = -1), g > j && (g = j), 0 > h && (h *= m = -1), h > j && (h = j), 0 > i && (i *= n = -1), i > j && (i = j), this._dirty = this._active = !0;
var o = this._ctx.arcTo,
p = this._ctx.lineTo;
return this._activeInstructions.push(new a(this._ctx.moveTo, [b + d - g, c]), new a(o, [b + d + g * l, c - g * l, b + d, c + g, g]), new a(p, [b + d, c + e - h]), new a(o, [b + d + h * m, c + e + h * m, b + d - h, c + e, h]), new a(p, [b + i, c + e]), new a(o, [b - i * n, c + e + i * n, b, c + e - i, i]), new a(p, [b, c + f]), new a(o, [b - f * k, c - f * k, b + f, c, f]), new a(this._ctx.closePath)), this
}, c.drawCircle = function(a, b, c) {
return this.arc(a, b, c, 0, 2 * Math.PI), this
}, c.drawEllipse = function(b, c, d, e) {
this._dirty = this._active = !0;
var f = .5522848,
g = d / 2 * f,
h = e / 2 * f,
i = b + d,
j = c + e,
k = b + d / 2,
l = c + e / 2;
return this._activeInstructions.push(new a(this._ctx.moveTo, [b, l]), new a(this._ctx.bezierCurveTo, [b, l - h, k - g, c, k, c]), new a(this._ctx.bezierCurveTo, [k + g, c, i, l - h, i, l]), new a(this._ctx.bezierCurveTo, [i, l + h, k + g, j, k, j]), new a(this._ctx.bezierCurveTo, [k - g, j, b, l + h, b, l])), this
}, c.inject = function(b, c) {
return this._dirty = this._active = !0, this._activeInstructions.push(new a(b, [c])), this
}, c.drawPolyStar = function(b, c, d, e, f, g) {
this._dirty = this._active = !0, null == f && (f = 0), f = 1 - f, null == g ? g = 0 : g /= 180 / Math.PI;
var h = Math.PI / e;
this._activeInstructions.push(new a(this._ctx.moveTo, [b + Math.cos(g) * d, c + Math.sin(g) * d]));
for (var i = 0; e > i; i++) g += h, 1 != f && this._activeInstructions.push(new a(this._ctx.lineTo, [b + Math.cos(g) * d * f, c + Math.sin(g) * d * f])), g += h, this._activeInstructions.push(new a(this._ctx.lineTo, [b + Math.cos(g) * d, c + Math.sin(g) * d]));
return this
}, c.decodePath = function(a) {
for (var c = [this.moveTo, this.lineTo, this.quadraticCurveTo, this.bezierCurveTo, this.closePath], d = [2, 2, 4, 6, 0], e = 0, f = a.length, g = [], h = 0, i = 0, j = b.BASE_64; f > e;) {
var k = a.charAt(e),
l = j[k],
m = l >> 3,
n = c[m];
if (!n || 3 & l) throw "bad path data (@" + e + "): " + k;
var o = d[m];
m || (h = i = 0), g.length = 0, e++;
for (var p = (1 & l >> 2) + 2, q = 0; o > q; q++) {
var r = j[a.charAt(e)],
s = r >> 5 ? -1 : 1;
r = (31 & r) << 6 | j[a.charAt(e + 1)], 3 == p && (r = r << 6 | j[a.charAt(e + 2)]), r = s * r / 10, q % 2 ? h = r += h : i = r += i, g[q] = r, e += p
}
n.apply(this, g)
}
return this
}, c.clone = function() {
var a = new b;
return a._instructions = this._instructions.slice(), a._activeInstructions = this._activeInstructions.slice(), a._oldInstructions = this._oldInstructions.slice(), this._fillInstructions && (a._fillInstructions = this._fillInstructions.slice()), this._strokeInstructions && (a._strokeInstructions = this._strokeInstructions.slice()), this._strokeStyleInstructions && (a._strokeStyleInstructions = this._strokeStyleInstructions.slice()), a._active = this._active, a._dirty = this._dirty, a._fillMatrix = this._fillMatrix, a._strokeIgnoreScale = this._strokeIgnoreScale, a
}, c.toString = function() {
return "[Graphics]"
}, c.mt = c.moveTo, c.lt = c.lineTo, c.at = c.arcTo, c.bt = c.bezierCurveTo, c.qt = c.quadraticCurveTo, c.a = c.arc, c.r = c.rect, c.cp = c.closePath, c.c = c.clear, c.f = c.beginFill, c.lf = c.beginLinearGradientFill, c.rf = c.beginRadialGradientFill, c.bf = c.beginBitmapFill, c.ef = c.endFill, c.ss = c.setStrokeStyle, c.s = c.beginStroke, c.ls = c.beginLinearGradientStroke, c.rs = c.beginRadialGradientStroke, c.bs = c.beginBitmapStroke, c.es = c.endStroke, c.dr = c.drawRect, c.rr = c.drawRoundRect, c.rc = c.drawRoundRectComplex, c.dc = c.drawCircle, c.de = c.drawEllipse, c.dp = c.drawPolyStar, c.p = c.decodePath, c._updateInstructions = function() {
this._instructions = this._oldInstructions.slice(), this._instructions.push(b.beginCmd), this._appendInstructions(this._fillInstructions), this._appendInstructions(this._strokeInstructions), this._appendInstructions(this._strokeInstructions && this._strokeStyleInstructions), this._appendInstructions(this._activeInstructions), this._fillInstructions && this._appendDraw(b.fillCmd, this._fillMatrix), this._strokeInstructions && this._appendDraw(b.strokeCmd, this._strokeIgnoreScale && [1, 0, 0, 1, 0, 0])
}, c._appendInstructions = function(a) {
a && this._instructions.push.apply(this._instructions, a)
}, c._appendDraw = function(b, c) {
c ? this._instructions.push(new a(this._ctx.save, [], !1), new a(this._ctx.transform, c, !1), b, new a(this._ctx.restore, [], !1)) : this._instructions.push(b)
}, c._newPath = function() {
this._dirty && this._updateInstructions(), this._oldInstructions = this._instructions, this._activeInstructions = [], this._active = this._dirty = !1
}, c._setProp = function(a, b) {
this[a] = b
}, createjs.Graphics = b
}(), this.createjs = this.createjs || {},
function() {
var a = function() {
this.initialize()
},
b = a.prototype = new createjs.EventDispatcher;
a._MOUSE_EVENTS = ["click", "dblclick", "mousedown", "mouseout", "mouseover", "pressmove", "pressup", "rollout", "rollover"], a.suppressCrossDomainErrors = !1;
var c = createjs.createCanvas ? createjs.createCanvas() : document.createElement("canvas");
c.getContext && (a._hitTestCanvas = c, a._hitTestContext = c.getContext("2d"), c.width = c.height = 1), a._nextCacheID = 1, b.alpha = 1, b.cacheCanvas = null, b.id = -1, b.mouseEnabled = !0, b.tickEnabled = !0, b.name = null, b.parent = null, b.regX = 0, b.regY = 0, b.rotation = 0, b.scaleX = 1, b.scaleY = 1, b.skewX = 0, b.skewY = 0, b.shadow = null, b.visible = !0, b.x = 0, b.y = 0, b.compositeOperation = null, b.snapToPixel = !1, b.filters = null, b.cacheID = 0, b.mask = null, b.hitArea = null, b.cursor = null, b._cacheOffsetX = 0, b._cacheOffsetY = 0, b._cacheScale = 1, b._cacheDataURLID = 0, b._cacheDataURL = null, b._matrix = null, b._rectangle = null, b._bounds = null, b.initialize = function() {
this.id = createjs.UID.get(), this._matrix = new createjs.Matrix2D, this._rectangle = new createjs.Rectangle
}, b.isVisible = function() {
return !!(this.visible && this.alpha > 0 && 0 != this.scaleX && 0 != this.scaleY)
}, b.draw = function(a, b) {
var c = this.cacheCanvas;
if (b || !c) return !1;
var d, e = this._cacheScale,
f = this._cacheOffsetX,
g = this._cacheOffsetY;
return (d = this._applyFilterBounds(f, g, 0, 0)) && (f = d.x, g = d.y), a.drawImage(c, f, g, c.width / e, c.height / e), !0
}, b.updateContext = function(a) {
var b, c = this.mask,
d = this;
c && c.graphics && !c.graphics.isEmpty() && (b = c.getMatrix(c._matrix), a.transform(b.a, b.b, b.c, b.d, b.tx, b.ty), c.graphics.drawAsPath(a), a.clip(), b.invert(), a.transform(b.a, b.b, b.c, b.d, b.tx, b.ty)), b = d._matrix.identity().appendTransform(d.x, d.y, d.scaleX, d.scaleY, d.rotation, d.skewX, d.skewY, d.regX, d.regY), createjs.Stage._snapToPixelEnabled && d.snapToPixel ? a.transform(b.a, b.b, b.c, b.d, 0 | b.tx + .5, 0 | b.ty + .5) : a.transform(b.a, b.b, b.c, b.d, b.tx, b.ty), a.globalAlpha *= d.alpha, d.compositeOperation && (a.globalCompositeOperation = d.compositeOperation), d.shadow && this._applyShadow(a, d.shadow)
}, b.cache = function(a, b, c, d, e) {
e = e || 1, this.cacheCanvas || (this.cacheCanvas = createjs.createCanvas ? createjs.createCanvas() : document.createElement("canvas")), this._cacheWidth = c, this._cacheHeight = d, this._cacheOffsetX = a, this._cacheOffsetY = b, this._cacheScale = e, this.updateCache()
}, b.updateCache = function(b) {
var c, d = this.cacheCanvas,
e = this._cacheScale,
f = this._cacheOffsetX * e,
g = this._cacheOffsetY * e,
h = this._cacheWidth,
i = this._cacheHeight;
if (!d) throw "cache() must be called before updateCache()";
var j = d.getContext("2d");
(c = this._applyFilterBounds(f, g, h, i)) && (f = c.x, g = c.y, h = c.width, i = c.height), h = Math.ceil(h * e), i = Math.ceil(i * e), h != d.width || i != d.height ? (d.width = h, d.height = i) : b || j.clearRect(0, 0, h + 1, i + 1), j.save(), j.globalCompositeOperation = b, j.setTransform(e, 0, 0, e, -f, -g), this.draw(j, !0), this._applyFilters(), j.restore(), this.cacheID = a._nextCacheID++
}, b.uncache = function() {
this._cacheDataURL = this.cacheCanvas = null, this.cacheID = this._cacheOffsetX = this._cacheOffsetY = 0, this._cacheScale = 1
}, b.getCacheDataURL = function() {
return this.cacheCanvas ? (this.cacheID != this._cacheDataURLID && (this._cacheDataURL = this.cacheCanvas.toDataURL()), this._cacheDataURL) : null
}, b.getStage = function() {
for (var a = this; a.parent;) a = a.parent;
return a instanceof createjs.Stage ? a : null
}, b.localToGlobal = function(a, b) {
var c = this.getConcatenatedMatrix(this._matrix);
return null == c ? null : (c.append(1, 0, 0, 1, a, b), new createjs.Point(c.tx, c.ty))
}, b.globalToLocal = function(a, b) {
var c = this.getConcatenatedMatrix(this._matrix);
return null == c ? null : (c.invert(), c.append(1, 0, 0, 1, a, b), new createjs.Point(c.tx, c.ty))
}, b.localToLocal = function(a, b, c) {
var d = this.localToGlobal(a, b);
return c.globalToLocal(d.x, d.y)
}, b.setTransform = function(a, b, c, d, e, f, g, h, i) {
return this.x = a || 0, this.y = b || 0, this.scaleX = null == c ? 1 : c, this.scaleY = null == d ? 1 : d, this.rotation = e || 0, this.skewX = f || 0, this.skewY = g || 0, this.regX = h || 0, this.regY = i || 0, this
}, b.getMatrix = function(a) {
var b = this;
return (a ? a.identity() : new createjs.Matrix2D).appendTransform(b.x, b.y, b.scaleX, b.scaleY, b.rotation, b.skewX, b.skewY, b.regX, b.regY).appendProperties(b.alpha, b.shadow, b.compositeOperation)
}, b.getConcatenatedMatrix = function(a) {
a ? a.identity() : a = new createjs.Matrix2D;
for (var b = this; null != b;) a.prependTransform(b.x, b.y, b.scaleX, b.scaleY, b.rotation, b.skewX, b.skewY, b.regX, b.regY).prependProperties(b.alpha, b.shadow, b.compositeOperation), b = b.parent;
return a
}, b.hitTest = function(b, c) {
var d = a._hitTestContext;
d.setTransform(1, 0, 0, 1, -b, -c), this.draw(d);
var e = this._testHit(d);
return d.setTransform(1, 0, 0, 1, 0, 0), d.clearRect(0, 0, 2, 2), e
}, b.set = function(a) {
for (var b in a) this[b] = a[b];
return this
}, b.getBounds = function() {
if (this._bounds) return this._rectangle.copy(this._bounds);
var a = this.cacheCanvas;
if (a) {
var b = this._cacheScale;
return this._rectangle.initialize(this._cacheOffsetX, this._cacheOffsetY, a.width / b, a.height / b)
}
return null
}, b.getTransformedBounds = function() {
return this._getBounds()
}, b.setBounds = function(a, b, c, d) {
null == a && (this._bounds = a), this._bounds = (this._bounds || new createjs.Rectangle).initialize(a, b, c, d)
}, b.clone = function() {
var b = new a;
return this.cloneProps(b), b
}, b.toString = function() {
return "[DisplayObject (name=" + this.name + ")]"
}, b.cloneProps = function(a) {
a.alpha = this.alpha, a.name = this.name, a.regX = this.regX, a.regY = this.regY, a.rotation = this.rotation, a.scaleX = this.scaleX, a.scaleY = this.scaleY, a.shadow = this.shadow, a.skewX = this.skewX, a.skewY = this.skewY, a.visible = this.visible, a.x = this.x, a.y = this.y, a._bounds = this._bounds, a.mouseEnabled = this.mouseEnabled, a.compositeOperation = this.compositeOperation
}, b._applyShadow = function(a, b) {
b = b || Shadow.identity, a.shadowColor = b.color, a.shadowOffsetX = b.offsetX, a.shadowOffsetY = b.offsetY, a.shadowBlur = b.blur
}, b._tick = function(a) {
var b = this._listeners;
if (b && b.tick) {
var c = new createjs.Event("tick");
c.params = a, this._dispatchEvent(c, this, 2)
}
}, b._testHit = function(b) {
try {
var c = b.getImageData(0, 0, 1, 1).data[3] > 1
} catch (d) {
if (!a.suppressCrossDomainErrors) throw "An error has occurred. This is most likely due to security restrictions on reading canvas pixel data with local or cross-domain images."
}
return c
}, b._applyFilters = function() {
if (this.filters && 0 != this.filters.length && this.cacheCanvas)
for (var a = this.filters.length, b = this.cacheCanvas.getContext("2d"), c = this.cacheCanvas.width, d = this.cacheCanvas.height, e = 0; a > e; e++) this.filters[e].applyFilter(b, 0, 0, c, d)
}, b._applyFilterBounds = function(a, b, c, d) {
var e, f, g = this.filters;
if (!g || !(f = g.length)) return null;
for (var h = 0; f > h; h++) {
var i = this.filters[h],
j = i.getBounds && i.getBounds();
j && (e || (e = this._rectangle.initialize(a, b, c, d)), e.x += j.x, e.y += j.y, e.width += j.width, e.height += j.height)
}
return e
}, b._getBounds = function(a, b) {
return this._transformBounds(this.getBounds(), a, b)
}, b._transformBounds = function(a, b, c) {
if (!a) return a;
var d = a.x,
e = a.y,
f = a.width,
g = a.height,
h = c ? this._matrix.identity() : this.getMatrix(this._matrix);
(d || e) && h.appendTransform(0, 0, 1, 1, 0, 0, 0, -d, -e), b && h.prependMatrix(b);
var i = f * h.a,
j = f * h.b,
k = g * h.c,
l = g * h.d,
m = h.tx,
n = h.ty,
o = m,
p = m,
q = n,
r = n;
return (d = i + m) < o ? o = d : d > p && (p = d), (d = i + k + m) < o ? o = d : d > p && (p = d), (d = k + m) < o ? o = d : d > p && (p = d), (e = j + n) < q ? q = e : e > r && (r = e), (e = j + l + n) < q ? q = e : e > r && (r = e), (e = l + n) < q ? q = e : e > r && (r = e), a.initialize(o, q, p - o, r - q)
}, b._hasMouseEventListener = function() {
for (var b = a._MOUSE_EVENTS, c = 0, d = b.length; d > c; c++)
if (this.hasEventListener(b[c])) return !0;
return !!this.cursor
}, createjs.DisplayObject = a
}(), this.createjs = this.createjs || {},
function() {
var a = function() {
this.initialize()
},
b = a.prototype = new createjs.DisplayObject;
b.children = null, b.mouseChildren = !0, b.tickChildren = !0, b.DisplayObject_initialize = b.initialize, b.initialize = function() {
this.DisplayObject_initialize(), this.children = []
}, b.isVisible = function() {
var a = this.cacheCanvas || this.children.length;
return !!(this.visible && this.alpha > 0 && 0 != this.scaleX && 0 != this.scaleY && a)
}, b.DisplayObject_draw = b.draw, b.draw = function(a, b) {
if (this.DisplayObject_draw(a, b)) return !0;
for (var c = this.children.slice(0), d = 0, e = c.length; e > d; d++) {
var f = c[d];
f.isVisible() && (a.save(), f.updateContext(a), f.draw(a), a.restore())
}
return !0
}, b.addChild = function(a) {
if (null == a) return a;
var b = arguments.length;
if (b > 1) {
for (var c = 0; b > c; c++) this.addChild(arguments[c]);
return arguments[b - 1]
}
return a.parent && a.parent.removeChild(a), a.parent = this, this.children.push(a), a
}, b.addChildAt = function(a, b) {
var c = arguments.length,
d = arguments[c - 1];
if (0 > d || d > this.children.length) return arguments[c - 2];
if (c > 2) {
for (var e = 0; c - 1 > e; e++) this.addChildAt(arguments[e], d + e);
return arguments[c - 2]
}
return a.parent && a.parent.removeChild(a), a.parent = this, this.children.splice(b, 0, a), a
}, b.removeChild = function(a) {
var b = arguments.length;
if (b > 1) {
for (var c = !0, d = 0; b > d; d++) c = c && this.removeChild(arguments[d]);
return c
}
return this.removeChildAt(createjs.indexOf(this.children, a))
}, b.removeChildAt = function(a) {
var b = arguments.length;
if (b > 1) {
for (var c = [], d = 0; b > d; d++) c[d] = arguments[d];
c.sort(function(a, b) {
return b - a
});
for (var e = !0, d = 0; b > d; d++) e = e && this.removeChildAt(c[d]);
return e
}
if (0 > a || a > this.children.length - 1) return !1;
var f = this.children[a];
return f && (f.parent = null), this.children.splice(a, 1), !0
}, b.removeAllChildren = function() {
for (var a = this.children; a.length;) a.pop().parent = null
}, b.getChildAt = function(a) {
return this.children[a]
}, b.getChildByName = function(a) {
for (var b = this.children, c = 0, d = b.length; d > c; c++)
if (b[c].name == a) return b[c];
return null
}, b.sortChildren = function(a) {
this.children.sort(a)
}, b.getChildIndex = function(a) {
return createjs.indexOf(this.children, a)
}, b.getNumChildren = function() {
return this.children.length
}, b.swapChildrenAt = function(a, b) {
var c = this.children,
d = c[a],
e = c[b];
d && e && (c[a] = e, c[b] = d)
}, b.swapChildren = function(a, b) {
for (var c, d, e = this.children, f = 0, g = e.length; g > f && (e[f] == a && (c = f), e[f] == b && (d = f), null == c || null == d); f++);
f != g && (e[c] = b, e[d] = a)
}, b.setChildIndex = function(a, b) {
var c = this.children,
d = c.length;
if (!(a.parent != this || 0 > b || b >= d)) {
for (var e = 0; d > e && c[e] != a; e++);
e != d && e != b && (c.splice(e, 1), c.splice(b, 0, a))
}
}, b.contains = function(a) {
for (; a;) {
if (a == this) return !0;
a = a.parent
}
return !1
}, b.hitTest = function(a, b) {
return null != this.getObjectUnderPoint(a, b)
}, b.getObjectsUnderPoint = function(a, b) {
var c = [],
d = this.localToGlobal(a, b);
return this._getObjectsUnderPoint(d.x, d.y, c), c
}, b.getObjectUnderPoint = function(a, b) {
var c = this.localToGlobal(a, b);
return this._getObjectsUnderPoint(c.x, c.y)
}, b.DisplayObject_getBounds = b.getBounds, b.getBounds = function() {
return this._getBounds(null, !0)
}, b.getTransformedBounds = function() {
return this._getBounds()
}, b.clone = function(b) {
var c = new a;
if (this.cloneProps(c), b)
for (var d = c.children = [], e = 0, f = this.children.length; f > e; e++) {
var g = this.children[e].clone(b);
g.parent = c, d.push(g)
}
return c
}, b.toString = function() {
return "[Container (name=" + this.name + ")]"
}, b.DisplayObject__tick = b._tick, b._tick = function(a) {
if (this.tickChildren)
for (var b = this.children.length - 1; b >= 0; b--) {
var c = this.children[b];
c.tickEnabled && c._tick && c._tick(a)
}
this.DisplayObject__tick(a)
}, b._getObjectsUnderPoint = function(b, c, d, e, f) {
var g = createjs.DisplayObject._hitTestContext,
h = this._matrix;
f = f || e && this._hasMouseEventListener();
for (var i = this.children, j = i.length, k = j - 1; k >= 0; k--) {
var l = i[k],
m = l.hitArea;
if (l.visible && (m || l.isVisible()) && (!e || l.mouseEnabled))
if (!m && l instanceof a) {
var n = l._getObjectsUnderPoint(b, c, d, e, f);
if (!d && n) return e && !this.mouseChildren ? this : n
} else {
if (!f && !l._hasMouseEventListener()) continue;
if (l.getConcatenatedMatrix(h), m && (h.appendTransform(m.x, m.y, m.scaleX, m.scaleY, m.rotation, m.skewX, m.skewY, m.regX, m.regY), h.alpha = m.alpha), g.globalAlpha = h.alpha, g.setTransform(h.a, h.b, h.c, h.d, h.tx - b, h.ty - c), (m || l).draw(g), !this._testHit(g)) continue;
if (g.setTransform(1, 0, 0, 1, 0, 0), g.clearRect(0, 0, 2, 2), !d) return e && !this.mouseChildren ? this : l;
d.push(l)
}
}
return null
}, b._getBounds = function(a, b) {
var c = this.DisplayObject_getBounds();
if (c) return this._transformBounds(c, a, b);
var d, e, f, g, h = b ? this._matrix.identity() : this.getMatrix(this._matrix);
a && h.prependMatrix(a);
for (var i = this.children.length, j = 0; i > j; j++) {
var k = this.children[j];
if (k.visible && (c = k._getBounds(h))) {
var l = c.x,
m = c.y,
n = l + c.width,
o = m + c.height;
(d > l || null == d) && (d = l), (n > e || null == e) && (e = n), (f > m || null == f) && (f = m), (o > g || null == g) && (g = o)
}
}
return null == e ? null : this._rectangle.initialize(d, f, e - d, g - f)
}, createjs.Container = a
}(), this.createjs = this.createjs || {},
function() {
"use strict";
var a = function(a) {
this.initialize(a)
},
b = a.prototype = new createjs.Container;
a._snapToPixelEnabled = !1, b.autoClear = !0, b.canvas = null, b.mouseX = 0, b.mouseY = 0, b.snapToPixelEnabled = !1, b.mouseInBounds = !1, b.tickOnUpdate = !0, b.mouseMoveOutside = !1, b.nextStage = null, b._pointerData = null, b._pointerCount = 0, b._primaryPointerID = null, b._mouseOverIntervalID = null, b.Container_initialize = b.initialize, b.initialize = function(a) {
this.Container_initialize(), this.canvas = "string" == typeof a ? document.getElementById(a) : a, this._pointerData = {}, this.enableDOMEvents(!0)
}, b.update = function() {
if (this.canvas) {
this.tickOnUpdate && (this.dispatchEvent("tickstart"), this.tickEnabled && this._tick(arguments.length ? arguments : null), this.dispatchEvent("tickend")), this.dispatchEvent("drawstart"), a._snapToPixelEnabled = this.snapToPixelEnabled, this.autoClear && this.clear();
var b = this.canvas.getContext("2d");
b.save(), this.updateContext(b), this.draw(b, !1), b.restore(), this.dispatchEvent("drawend")
}
}, b.handleEvent = function(a) {
"tick" == a.type && this.update(a)
}, b.clear = function() {
if (this.canvas) {
var a = this.canvas.getContext("2d");
a.setTransform(1, 0, 0, 1, 0, 0), a.clearRect(0, 0, this.canvas.width + 1, this.canvas.height + 1)
}
}, b.toDataURL = function(a, b) {
b || (b = "image/png");
var c, d = this.canvas.getContext("2d"),
e = this.canvas.width,
f = this.canvas.height;
if (a) {
c = d.getImageData(0, 0, e, f);
var g = d.globalCompositeOperation;
d.globalCompositeOperation = "destination-over", d.fillStyle = a, d.fillRect(0, 0, e, f)
}
var h = this.canvas.toDataURL(b);
return a && (d.clearRect(0, 0, e + 1, f + 1), d.putImageData(c, 0, 0), d.globalCompositeOperation = g), h
}, b.enableMouseOver = function(a) {
if (this._mouseOverIntervalID && (clearInterval(this._mouseOverIntervalID), this._mouseOverIntervalID = null, 0 == a && this._testMouseOver(!0)), null == a) a = 20;
else if (0 >= a) return;
var b = this;
this._mouseOverIntervalID = setInterval(function() {
b._testMouseOver()
}, 1e3 / Math.min(50, a))
}, b.enableDOMEvents = function(a) {
null == a && (a = !0);
var b, c, d = this._eventListeners;
if (!a && d) {
for (b in d) c = d[b], c.t.removeEventListener(b, c.f, !1);
this._eventListeners = null
} else if (a && !d && this.canvas) {
var e = window.addEventListener ? window : document,
f = this;
d = this._eventListeners = {}, d.mouseup = {
t: e,
f: function(a) {
f._handleMouseUp(a)
}
}, d.mousemove = {
t: e,
f: function(a) {
f._handleMouseMove(a)
}
}, d.dblclick = {
t: this.canvas,
f: function(a) {
f._handleDoubleClick(a)
}
}, d.mousedown = {
t: this.canvas,
f: function(a) {
f._handleMouseDown(a)
}
};
for (b in d) c = d[b], c.t.addEventListener(b, c.f, !1)
}
}, b.clone = function() {
var b = new a(null);
return this.cloneProps(b), b
}, b.toString = function() {
return "[Stage (name=" + this.name + ")]"
}, b._getElementRect = function(a) {
var b;
try {
b = a.getBoundingClientRect()
} catch (c) {
b = {
top: a.offsetTop,
left: a.offsetLeft,
width: a.offsetWidth,
height: a.offsetHeight
}
}
var d = (window.pageXOffset || document.scrollLeft || 0) - (document.clientLeft || document.body.clientLeft || 0),
e = (window.pageYOffset || document.scrollTop || 0) - (document.clientTop || document.body.clientTop || 0),
f = window.getComputedStyle ? getComputedStyle(a) : a.currentStyle,
g = parseInt(f.paddingLeft) + parseInt(f.borderLeftWidth),
h = parseInt(f.paddingTop) + parseInt(f.borderTopWidth),
i = parseInt(f.paddingRight) + parseInt(f.borderRightWidth),
j = parseInt(f.paddingBottom) + parseInt(f.borderBottomWidth);
return {
left: b.left + d + g,
right: b.right + d - i,
top: b.top + e + h,
bottom: b.bottom + e - j
}
}, b._getPointerData = function(a) {
var b = this._pointerData[a];
return b || (b = this._pointerData[a] = {
x: 0,
y: 0
}, null == this._primaryPointerID && (this._primaryPointerID = a), (null == this._primaryPointerID || -1 == this._primaryPointerID) && (this._primaryPointerID = a)), b
}, b._handleMouseMove = function(a) {
a || (a = window.event), this._handlePointerMove(-1, a, a.pageX, a.pageY)
}, b._handlePointerMove = function(a, b, c, d) {
if (this.canvas) {
var e = this._getPointerData(a),
f = e.inBounds;
if (this._updatePointerPosition(a, b, c, d), f || e.inBounds || this.mouseMoveOutside) {
-1 == a && e.inBounds == !f && this._dispatchMouseEvent(this, f ? "mouseleave" : "mouseenter", !1, a, e, b), this._dispatchMouseEvent(this, "stagemousemove", !1, a, e, b), this._dispatchMouseEvent(e.target, "pressmove", !0, a, e, b);
var g = e.event;
g && g.hasEventListener("mousemove") && g.dispatchEvent(new createjs.MouseEvent("mousemove", !1, !1, e.x, e.y, b, a, a == this._primaryPointerID, e.rawX, e.rawY), e.target), this.nextStage && this.nextStage._handlePointerMove(a, b, c, d)
}
}
}, b._updatePointerPosition = function(a, b, c, d) {
var e = this._getElementRect(this.canvas);
c -= e.left, d -= e.top;
var f = this.canvas.width,
g = this.canvas.height;
c /= (e.right - e.left) / f, d /= (e.bottom - e.top) / g;
var h = this._getPointerData(a);
(h.inBounds = c >= 0 && d >= 0 && f - 1 >= c && g - 1 >= d) ? (h.x = c, h.y = d) : this.mouseMoveOutside && (h.x = 0 > c ? 0 : c > f - 1 ? f - 1 : c, h.y = 0 > d ? 0 : d > g - 1 ? g - 1 : d), h.posEvtObj = b, h.rawX = c, h.rawY = d, a == this._primaryPointerID && (this.mouseX = h.x, this.mouseY = h.y, this.mouseInBounds = h.inBounds)
}, b._handleMouseUp = function(a) {
this._handlePointerUp(-1, a, !1)
}, b._handlePointerUp = function(a, b, c) {
var d = this._getPointerData(a);
this._dispatchMouseEvent(this, "stagemouseup", !1, a, d, b);
var e = d.target;
e && (this._getObjectsUnderPoint(d.x, d.y, null, !0) == e && this._dispatchMouseEvent(e, "click", !0, a, d, b), this._dispatchMouseEvent(e, "pressup", !0, a, d, b));
var f = d.event;
f && f.hasEventListener("mouseup") && f.dispatchEvent(new createjs.MouseEvent("mouseup", !1, !1, d.x, d.y, b, a, a == this._primaryPointerID, d.rawX, d.rawY), e), c ? (a == this._primaryPointerID && (this._primaryPointerID = null), delete this._pointerData[a]) : d.event = d.target = null, this.nextStage && this.nextStage._handlePointerUp(a, b, c)
}, b._handleMouseDown = function(a) {
this._handlePointerDown(-1, a, a.pageX, a.pageY)
}, b._handlePointerDown = function(a, b, c, d) {
null != d && this._updatePointerPosition(a, b, c, d);
var e = this._getPointerData(a);
this._dispatchMouseEvent(this, "stagemousedown", !1, a, e, b), e.target = this._getObjectsUnderPoint(e.x, e.y, null, !0), e.event = this._dispatchMouseEvent(e.target, "mousedown", !0, a, e, b), this.nextStage && this.nextStage._handlePointerDown(a, b, c, d)
}, b._testMouseOver = function(a) {
if (-1 == this._primaryPointerID && (a || this.mouseX != this._mouseOverX || this.mouseY != this._mouseOverY || !this.mouseInBounds)) {
var b, c, d, e, f = this._getPointerData(-1),
g = f.posEvtObj,
h = -1,
i = "";
(a || this.mouseInBounds && g && g.target == this.canvas) && (b = this._getObjectsUnderPoint(this.mouseX, this.mouseY, null, !0), this._mouseOverX = this.mouseX, this._mouseOverY = this.mouseY);
var j = this._mouseOverTarget || [],
k = j[j.length - 1],
l = this._mouseOverTarget = [];
for (c = b; c;) l.unshift(c), null != c.cursor && (i = c.cursor), c = c.parent;
for (this.canvas.style.cursor = i, d = 0, e = l.length; e > d && l[d] == j[d]; d++) h = d;
for (k != b && this._dispatchMouseEvent(k, "mouseout", !0, -1, f, g), d = j.length - 1; d > h; d--) this._dispatchMouseEvent(j[d], "rollout", !1, -1, f, g);
for (d = l.length - 1; d > h; d--) this._dispatchMouseEvent(l[d], "rollover", !1, -1, f, g);
k != b && this._dispatchMouseEvent(b, "mouseover", !0, -1, f, g)
}
}, b._handleDoubleClick = function(a) {
var b = this._getPointerData(-1),
c = this._getObjectsUnderPoint(b.x, b.y, null, !0);
this._dispatchMouseEvent(c, "dblclick", !0, -1, b, a), this.nextStage && this.nextStage._handleDoubleClick(a)
}, b._dispatchMouseEvent = function(a, b, c, d, e, f) {
if (a && (c || a.hasEventListener(b))) {
var g = new createjs.MouseEvent(b, c, !1, e.x, e.y, f, d, d == this._primaryPointerID, e.rawX, e.rawY);
return a.dispatchEvent(g), g
}
}, createjs.Stage = a
}(), this.createjs = this.createjs || {},
function() {
var a = function(a) {
this.initialize(a)
},
b = a.prototype = new createjs.DisplayObject;
b.image = null, b.snapToPixel = !0, b.sourceRect = null, b.DisplayObject_initialize = b.initialize, b.initialize = function(a) {
this.DisplayObject_initialize(), "string" == typeof a ? (this.image = document.createElement("img"), this.image.src = a) : this.image = a
}, b.isVisible = function() {
var a = this.cacheCanvas || this.image && (this.image.complete || this.image.getContext || this.image.readyState >= 2);
return !!(this.visible && this.alpha > 0 && 0 != this.scaleX && 0 != this.scaleY && a)
}, b.DisplayObject_draw = b.draw, b.draw = function(a, b) {
if (this.DisplayObject_draw(a, b)) return !0;
var c = this.sourceRect;
return c ? a.drawImage(this.image, c.x, c.y, c.width, c.height, 0, 0, c.width, c.height) : a.drawImage(this.image, 0, 0), !0
}, b.DisplayObject_getBounds = b.getBounds, b.getBounds = function() {
var a = this.DisplayObject_getBounds();
if (a) return a;
var b = this.sourceRect || this.image,
c = this.image && (this.image.complete || this.image.getContext || this.image.readyState >= 2);
return c ? this._rectangle.initialize(0, 0, b.width, b.height) : null
}, b.clone = function() {
var b = new a(this.image);
return this.sourceRect && (b.sourceRect = this.sourceRect.clone()), this.cloneProps(b), b
}, b.toString = function() {
return "[Bitmap (name=" + this.name + ")]"
}, createjs.Bitmap = a
}(), this.createjs = this.createjs || {},
function() {
"use strict";
var a = function(a, b) {
this.initialize(a, b)
},
b = a.prototype = new createjs.DisplayObject;
b.currentFrame = 0, b.currentAnimation = null, b.paused = !0, b.spriteSheet = null, b.snapToPixel = !0, b.offset = 0, b.currentAnimationFrame = 0, b.framerate = 0, b._advanceCount = 0, b._animation = null, b._currentFrame = null, b.DisplayObject_initialize = b.initialize, b.initialize = function(a, b) {
this.DisplayObject_initialize(), this.spriteSheet = a, b && this.gotoAndPlay(b)
}, b.isVisible = function() {
var a = this.cacheCanvas || this.spriteSheet.complete;
return !!(this.visible && this.alpha > 0 && 0 != this.scaleX && 0 != this.scaleY && a)
}, b.DisplayObject_draw = b.draw, b.draw = function(a, b) {
if (this.DisplayObject_draw(a, b)) return !0;
this._normalizeFrame();
var c = this.spriteSheet.getFrame(0 | this._currentFrame);
if (!c) return !1;
var d = c.rect;
return a.drawImage(c.image, d.x, d.y, d.width, d.height, -c.regX, -c.regY, d.width, d.height), !0
}, b.play = function() {
this.paused = !1
}, b.stop = function() {
this.paused = !0
}, b.gotoAndPlay = function(a) {
this.paused = !1, this._goto(a)
}, b.gotoAndStop = function(a) {
this.paused = !0, this._goto(a)
}, b.advance = function(a) {
var b = this._animation && this._animation.speed || 1,
c = this.framerate || this.spriteSheet.framerate,
d = c && null != a ? a / (1e3 / c) : 1;
this._animation ? this.currentAnimationFrame += d * b : this._currentFrame += d * b, this._normalizeFrame()
}, b.DisplayObject_getBounds = b.getBounds, b.getBounds = function() {
return this.DisplayObject_getBounds() || this.spriteSheet.getFrameBounds(this.currentFrame, this._rectangle)
}, b.clone = function() {
var b = new a(this.spriteSheet);
return this.cloneProps(b), b
}, b.toString = function() {
return "[Sprite (name=" + this.name + ")]"
}, b.DisplayObject__tick = b._tick, b._tick = function(a) {
this.paused || this.advance(a && a[0] && a[0].delta), this.DisplayObject__tick(a)
}, b._normalizeFrame = function() {
var a, b = this._animation,
c = this.paused,
d = this._currentFrame,
e = this.currentAnimationFrame;
if (b)
if (a = b.frames.length, (0 | e) >= a) {
var f = b.next;
if (this._dispatchAnimationEnd(b, d, c, f, a - 1));
else {
if (f) return this._goto(f, e - a);
this.paused = !0, e = this.currentAnimationFrame = b.frames.length - 1, this._currentFrame = b.frames[e]
}
} else this._currentFrame = b.frames[0 | e];
else if (a = this.spriteSheet.getNumFrames(), d >= a && !this._dispatchAnimationEnd(b, d, c, a - 1) && (this._currentFrame -= a) >= a) return this._normalizeFrame();
this.currentFrame = 0 | this._currentFrame
}, b._dispatchAnimationEnd = function(a, b, c, d, e) {
var f = a ? a.name : null;
if (this.hasEventListener("animationend")) {
var g = new createjs.Event("animationend");
g.name = f, g.next = d, this.dispatchEvent(g)
}
var h = this._animation != a || this._currentFrame != b;
return h || c || !this.paused || (this.currentAnimationFrame = e, h = !0), h
}, b.DisplayObject_cloneProps = b.cloneProps, b.cloneProps = function(a) {
this.DisplayObject_cloneProps(a), a.currentFrame = this.currentFrame, a._currentFrame = this._currentFrame, a.currentAnimation = this.currentAnimation, a.paused = this.paused, a._animation = this._animation, a.currentAnimationFrame = this.currentAnimationFrame, a.framerate = this.framerate
}, b._goto = function(a, b) {
if (isNaN(a)) {
var c = this.spriteSheet.getAnimation(a);
c && (this.currentAnimationFrame = b || 0, this._animation = c, this.currentAnimation = a, this._normalizeFrame())
} else this.currentAnimationFrame = 0, this.currentAnimation = this._animation = null, this._currentFrame = a, this._normalizeFrame()
}, createjs.Sprite = a
}(), this.createjs = this.createjs || {},
function() {
"use strict";
var a = "BitmapAnimation is deprecated in favour of Sprite. See VERSIONS file for info on changes.";
if (!createjs.Sprite) throw a;
(createjs.BitmapAnimation = function(b) {
console.log(a), this.initialize(b)
}).prototype = new createjs.Sprite
}(), this.createjs = this.createjs || {},
function() {
"use strict";
var a = function(a) {
this.initialize(a)
},
b = a.prototype = new createjs.DisplayObject;
b.graphics = null, b.DisplayObject_initialize = b.initialize, b.initialize = function(a) {
this.DisplayObject_initialize(), this.graphics = a ? a : new createjs.Graphics
}, b.isVisible = function() {
var a = this.cacheCanvas || this.graphics && !this.graphics.isEmpty();
return !!(this.visible && this.alpha > 0 && 0 != this.scaleX && 0 != this.scaleY && a)
}, b.DisplayObject_draw = b.draw, b.draw = function(a, b) {
return this.DisplayObject_draw(a, b) ? !0 : (this.graphics.draw(a), !0)
}, b.clone = function(b) {
var c = new a(b && this.graphics ? this.graphics.clone() : this.graphics);
return this.cloneProps(c), c
}, b.toString = function() {
return "[Shape (name=" + this.name + ")]"
}, createjs.Shape = a
}(), this.createjs = this.createjs || {},
function() {
"use strict";
var a = function(a, b, c) {
this.initialize(a, b, c)
},
b = a.prototype = new createjs.DisplayObject,
c = createjs.createCanvas ? createjs.createCanvas() : document.createElement("canvas");
c.getContext && (a._workingContext = c.getContext("2d"), c.width = c.height = 1), a.H_OFFSETS = {
start: 0,
left: 0,
center: -.5,
end: -1,
right: -1
}, a.V_OFFSETS = {
top: 0,
hanging: -.01,
middle: -.4,
alphabetic: -.8,
ideographic: -.85,
bottom: -1
}, b.text = "", b.font = null, b.color = null, b.textAlign = "left", b.textBaseline = "top", b.maxWidth = null, b.outline = 0, b.lineHeight = 0, b.lineWidth = null, b.DisplayObject_initialize = b.initialize, b.initialize = function(a, b, c) {
this.DisplayObject_initialize(), this.text = a, this.font = b, this.color = c
}, b.isVisible = function() {
var a = this.cacheCanvas || null != this.text && "" !== this.text;
return !!(this.visible && this.alpha > 0 && 0 != this.scaleX && 0 != this.scaleY && a)
}, b.DisplayObject_draw = b.draw, b.draw = function(a, b) {
if (this.DisplayObject_draw(a, b)) return !0;
var c = this.color || "#000";
return this.outline ? (a.strokeStyle = c, a.lineWidth = 1 * this.outline) : a.fillStyle = c, this._drawText(this._prepContext(a)), !0
}, b.getMeasuredWidth = function() {
return this._prepContext(a._workingContext).measureText(this.text).width
}, b.getMeasuredLineHeight = function() {
return 1.2 * this._prepContext(a._workingContext).measureText("M").width
}, b.getMeasuredHeight = function() {
return this._drawText(null, {}).height
}, b.DisplayObject_getBounds = b.getBounds, b.getBounds = function() {
var b = this.DisplayObject_getBounds();
if (b) return b;
if (null == this.text || "" == this.text) return null;
var c = this._drawText(null, {}),
d = this.maxWidth && this.maxWidth < c.width ? this.maxWidth : c.width,
e = d * a.H_OFFSETS[this.textAlign || "left"],
f = this.lineHeight || this.getMeasuredLineHeight(),
g = f * a.V_OFFSETS[this.textBaseline || "top"];
return this._rectangle.initialize(e, g, d, c.height)
}, b.clone = function() {
var b = new a(this.text, this.font, this.color);
return this.cloneProps(b), b
}, b.toString = function() {
return "[Text (text=" + (this.text.length > 20 ? this.text.substr(0, 17) + "..." : this.text) + ")]"
}, b.DisplayObject_cloneProps = b.cloneProps, b.cloneProps = function(a) {
this.DisplayObject_cloneProps(a), a.textAlign = this.textAlign, a.textBaseline = this.textBaseline, a.maxWidth = this.maxWidth, a.outline = this.outline, a.lineHeight = this.lineHeight, a.lineWidth = this.lineWidth
}, b._prepContext = function(a) {
return a.font = this.font, a.textAlign = this.textAlign || "left", a.textBaseline = this.textBaseline || "top", a
}, b._drawText = function(b, c) {
var d = !!b;
d || (b = this._prepContext(a._workingContext));
for (var e = this.lineHeight || this.getMeasuredLineHeight(), f = 0, g = 0, h = String(this.text).split(/(?:\r\n|\r|\n)/), i = 0, j = h.length; j > i; i++) {
var k = h[i],
l = null;
if (null != this.lineWidth && (l = b.measureText(k).width) > this.lineWidth) {
var m = k.split(/(\s)/);
k = m[0], l = b.measureText(k).width;
for (var n = 1, o = m.length; o > n; n += 2) {
var p = b.measureText(m[n] + m[n + 1]).width;
l + p > this.lineWidth ? (d && this._drawTextLine(b, k, g * e), l > f && (f = l), k = m[n + 1], l = b.measureText(k).width, g++) : (k += m[n] + m[n + 1], l += p)
}
}
d && this._drawTextLine(b, k, g * e), c && null == l && (l = b.measureText(k).width), l > f && (f = l), g++
}
return c && (c.count = g, c.width = f, c.height = g * e), c
}, b._drawTextLine = function(a, b, c) {
this.outline ? a.strokeText(b, 0, c, this.maxWidth || 65535) : a.fillText(b, 0, c, this.maxWidth || 65535)
}, createjs.Text = a
}(), this.createjs = this.createjs || {},
function() {
"use strict";
function a(a, b) {
this.initialize(a, b)
}
var b = a.prototype = new createjs.DisplayObject;
b.text = "", b.spriteSheet = null, b.lineHeight = 0, b.letterSpacing = 0, b.spaceWidth = 0, b.DisplayObject_initialize = b.initialize, b.initialize = function(a, b) {
this.DisplayObject_initialize(), this.text = a, this.spriteSheet = b
}, b.DisplayObject_draw = b.draw, b.draw = function(a, b) {
return this.DisplayObject_draw(a, b) ? !0 : (this._drawText(a), void 0)
}, b.isVisible = function() {
var a = this.cacheCanvas || this.spriteSheet && this.spriteSheet.complete && this.text;
return !!(this.visible && this.alpha > 0 && 0 != this.scaleX && 0 != this.scaleY && a)
}, b.getBounds = function() {
var a = this._rectangle;
return this._drawText(null, a), a.width ? a : null
}, b._getFrame = function(a, b) {
var c, d = b.getAnimation(a);
return d || (a != (c = a.toUpperCase()) || a != (c = a.toLowerCase()) || (c = null), c && (d = b.getAnimation(c))), d && b.getFrame(d.frames[0])
}, b._getLineHeight = function(a) {
var b = this._getFrame("1", a) || this._getFrame("T", a) || this._getFrame("L", a) || a.getFrame(0);
return b ? b.rect.height : 1
}, b._getSpaceWidth = function(a) {
var b = this._getFrame("1", a) || this._getFrame("l", a) || this._getFrame("e", a) || this._getFrame("a", a) || a.getFrame(0);
return b ? b.rect.width : 1
}, b._drawText = function(a, b) {
var c, d, e, f = 0,
g = 0,
h = this.spaceWidth,
i = this.lineHeight,
j = this.spriteSheet,
k = !!this._getFrame(" ", j);
k || 0 != h || (h = this._getSpaceWidth(j)), 0 == i && (i = this._getLineHeight(j));
for (var l = 0, m = 0, n = this.text.length; n > m; m++) {
var o = this.text.charAt(m);
if (k || " " != o)
if ("\n" != o && "\r" != o) {
var p = this._getFrame(o, j);
if (p) {
var q = p.rect;
e = p.regX, c = q.width, a && a.drawImage(p.image, q.x, q.y, c, d = q.height, f - e, g - p.regY, c, d), f += c + this.letterSpacing
}
} else "\r" == o && "\n" == this.text.charAt(m + 1) && m++, f - e > l && (l = f - e), f = 0, g += i;
else f += h
}
f - e > l && (l = f - e), b && (b.width = l - this.letterSpacing, b.height = g + i)
}, createjs.BitmapText = a
}(), this.createjs = this.createjs || {},
function() {
"use strict";
var a = function() {
throw "SpriteSheetUtils cannot be instantiated"
},
b = createjs.createCanvas ? createjs.createCanvas() : document.createElement("canvas");
b.getContext && (a._workingCanvas = b, a._workingContext = b.getContext("2d"), b.width = b.height = 1), a.addFlippedFrames = function(b, c, d, e) {
if (c || d || e) {
var f = 0;
c && a._flip(b, ++f, !0, !1), d && a._flip(b, ++f, !1, !0), e && a._flip(b, ++f, !0, !0)
}
}, a.extractFrame = function(b, c) {
isNaN(c) && (c = b.getAnimation(c).frames[0]);
var d = b.getFrame(c);
if (!d) return null;
var e = d.rect,
f = a._workingCanvas;
f.width = e.width, f.height = e.height, a._workingContext.drawImage(d.image, e.x, e.y, e.width, e.height, 0, 0, e.width, e.height);
var g = document.createElement("img");
return g.src = f.toDataURL("image/png"), g
}, a.mergeAlpha = function(a, b, c) {
c || (c = createjs.createCanvas ? createjs.createCanvas() : document.createElement("canvas")), c.width = Math.max(b.width, a.width), c.height = Math.max(b.height, a.height);
var d = c.getContext("2d");
return d.save(), d.drawImage(a, 0, 0), d.globalCompositeOperation = "destination-in", d.drawImage(b, 0, 0), d.restore(), c
}, a._flip = function(b, c, d, e) {
for (var f = b._images, g = a._workingCanvas, h = a._workingContext, i = f.length / c, j = 0; i > j; j++) {
var k = f[j];
k.__tmp = j, h.setTransform(1, 0, 0, 1, 0, 0), h.clearRect(0, 0, g.width + 1, g.height + 1), g.width = k.width, g.height = k.height, h.setTransform(d ? -1 : 1, 0, 0, e ? -1 : 1, d ? k.width : 0, e ? k.height : 0), h.drawImage(k, 0, 0);
var l = document.createElement("img");
l.src = g.toDataURL("image/png"), l.width = k.width, l.height = k.height, f.push(l)
}
var m = b._frames,
n = m.length / c;
for (j = 0; n > j; j++) {
k = m[j];
var o = k.rect.clone();
l = f[k.image.__tmp + i * c];
var p = {
image: l,
rect: o,
regX: k.regX,
regY: k.regY
};
d && (o.x = l.width - o.x - o.width, p.regX = o.width - k.regX), e && (o.y = l.height - o.y - o.height, p.regY = o.height - k.regY), m.push(p)
}
var q = "_" + (d ? "h" : "") + (e ? "v" : ""),
r = b._animations,
s = b._data,
t = r.length / c;
for (j = 0; t > j; j++) {
var u = r[j];
k = s[u];
var v = {
name: u + q,
speed: k.speed,
next: k.next,
frames: []
};
k.next && (v.next += q), m = k.frames;
for (var w = 0, x = m.length; x > w; w++) v.frames.push(m[w] + n * c);
s[v.name] = v, r.push(v.name)
}
}, createjs.SpriteSheetUtils = a
}(), this.createjs = this.createjs || {},
function() {
"use strict";
var a = function() {
this.initialize()
},
b = a.prototype = new createjs.EventDispatcher;
a.ERR_DIMENSIONS = "frame dimensions exceed max spritesheet dimensions", a.ERR_RUNNING = "a build is already running", b.maxWidth = 2048, b.maxHeight = 2048, b.spriteSheet = null, b.scale = 1, b.padding = 1, b.timeSlice = .3, b.progress = -1, b._frames = null, b._animations = null, b._data = null, b._nextFrameIndex = 0, b._index = 0, b._timerID = null, b._scale = 1, b.initialize = function() {
this._frames = [], this._animations = {}
}, b.addFrame = function(b, c, d, e, f, g) {
if (this._data) throw a.ERR_RUNNING;
var h = c || b.bounds || b.nominalBounds;
return !h && b.getBounds && (h = b.getBounds()), h ? (d = d || 1, this._frames.push({
source: b,
sourceRect: h,
scale: d,
funct: e,
params: f,
scope: g,
index: this._frames.length,
height: h.height * d
}) - 1) : null
}, b.addAnimation = function(b, c, d, e) {
if (this._data) throw a.ERR_RUNNING;
this._animations[b] = {
frames: c,
next: d,
frequency: e
}
}, b.addMovieClip = function(b, c, d) {
if (this._data) throw a.ERR_RUNNING;
var e = b.frameBounds,
f = c || b.bounds || b.nominalBounds;
if (!f && b.getBounds && (f = b.getBounds()), !f && !e) return null;
for (var g = this._frames.length, h = b.timeline.duration, i = 0; h > i; i++) {
var j = e && e[i] ? e[i] : f;
this.addFrame(b, j, d, function(a) {
var b = this.actionsEnabled;
this.actionsEnabled = !1, this.gotoAndStop(a), this.actionsEnabled = b
}, [i], b)
}
var k = b.timeline._labels,
l = [];
for (var m in k) l.push({
index: k[m],
label: m
});
if (l.length) {
l.sort(function(a, b) {
return a.index - b.index
});
for (var i = 0, n = l.length; n > i; i++) {
for (var o = l[i].label, p = g + l[i].index, q = g + (i == n - 1 ? h : l[i + 1].index), r = [], s = p; q > s; s++) r.push(s);
this.addAnimation(o, r, !0)
}
}
}, b.build = function() {
if (this._data) throw a.ERR_RUNNING;
for (this._startBuild(); this._drawNext(););
return this._endBuild(), this.spriteSheet
}, b.buildAsync = function(b) {
if (this._data) throw a.ERR_RUNNING;
this.timeSlice = b, this._startBuild();
var c = this;
this._timerID = setTimeout(function() {
c._run()
}, 50 - 50 * Math.max(.01, Math.min(.99, this.timeSlice || .3)))
}, b.stopAsync = function() {
clearTimeout(this._timerID), this._data = null
}, b.clone = function() {
throw "SpriteSheetBuilder cannot be cloned."
}, b.toString = function() {
return "[SpriteSheetBuilder]"
}, b._startBuild = function() {
var b = this.padding || 0;
this.progress = 0, this.spriteSheet = null, this._index = 0, this._scale = this.scale;
var c = [];
this._data = {
images: [],
frames: c,
animations: this._animations
};
var d = this._frames.slice();
if (d.sort(function(a, b) {
return a.height <= b.height ? -1 : 1
}), d[d.length - 1].height + 2 * b > this.maxHeight) throw a.ERR_DIMENSIONS;
for (var e = 0, f = 0, g = 0; d.length;) {
var h = this._fillRow(d, e, g, c, b);
if (h.w > f && (f = h.w), e += h.h, !h.h || !d.length) {
var i = createjs.createCanvas ? createjs.createCanvas() : document.createElement("canvas");
i.width = this._getSize(f, this.maxWidth), i.height = this._getSize(e, this.maxHeight), this._data.images[g] = i, h.h || (f = e = 0, g++)
}
}
}, b._getSize = function(a, b) {
for (var c = 4; Math.pow(2, ++c) < a;);
return Math.min(b, Math.pow(2, c))
}, b._fillRow = function(b, c, d, e, f) {
var g = this.maxWidth,
h = this.maxHeight;
c += f;
for (var i = h - c, j = f, k = 0, l = b.length - 1; l >= 0; l--) {
var m = b[l],
n = this._scale * m.scale,
o = m.sourceRect,
p = m.source,
q = Math.floor(n * o.x - f),
r = Math.floor(n * o.y - f),
s = Math.ceil(n * o.height + 2 * f),
t = Math.ceil(n * o.width + 2 * f);
if (t > g) throw a.ERR_DIMENSIONS;
s > i || j + t > g || (m.img = d, m.rect = new createjs.Rectangle(j, c, t, s), k = k || s, b.splice(l, 1), e[m.index] = [j, c, t, s, d, Math.round(-q + n * p.regX - f), Math.round(-r + n * p.regY - f)], j += t)
}
return {
w: j,
h: k
}
}, b._endBuild = function() {
this.spriteSheet = new createjs.SpriteSheet(this._data), this._data = null, this.progress = 1, this.dispatchEvent("complete")
}, b._run = function() {
for (var a = 50 * Math.max(.01, Math.min(.99, this.timeSlice || .3)), b = (new Date).getTime() + a, c = !1; b > (new Date).getTime();)
if (!this._drawNext()) {
c = !0;
break
} if (c) this._endBuild();
else {
var d = this;
this._timerID = setTimeout(function() {
d._run()
}, 50 - a)
}
var e = this.progress = this._index / this._frames.length;
if (this.hasEventListener("progress")) {
var f = new createjs.Event("progress");
f.progress = e, this.dispatchEvent(f)
}
}, b._drawNext = function() {
var a = this._frames[this._index],
b = a.scale * this._scale,
c = a.rect,
d = a.sourceRect,
e = this._data.images[a.img],
f = e.getContext("2d");
return a.funct && a.funct.apply(a.scope, a.params), f.save(), f.beginPath(), f.rect(c.x, c.y, c.width, c.height), f.clip(), f.translate(Math.ceil(c.x - d.x * b), Math.ceil(c.y - d.y * b)), f.scale(b, b), a.source.draw(f), f.restore(), ++this._index < this._frames.length
}, createjs.SpriteSheetBuilder = a
}(), this.createjs = this.createjs || {},
function() {
"use strict";
var a = function(a) {
this.initialize(a)
},
b = a.prototype = new createjs.DisplayObject;
b.htmlElement = null, b._oldMtx = null, b._visible = !1, b.DisplayObject_initialize = b.initialize, b.initialize = function(a) {
"string" == typeof a && (a = document.getElementById(a)), this.DisplayObject_initialize(), this.mouseEnabled = !1, this.htmlElement = a;
var b = a.style;
b.position = "absolute", b.transformOrigin = b.WebkitTransformOrigin = b.msTransformOrigin = b.MozTransformOrigin = b.OTransformOrigin = "0% 0%"
}, b.isVisible = function() {
return null != this.htmlElement
}, b.draw = function() {
return this.visible && (this._visible = !0), !0
}, b.cache = function() {}, b.uncache = function() {}, b.updateCache = function() {}, b.hitTest = function() {}, b.localToGlobal = function() {}, b.globalToLocal = function() {}, b.localToLocal = function() {}, b.clone = function() {
throw "DOMElement cannot be cloned."
}, b.toString = function() {
return "[DOMElement (name=" + this.name + ")]"
}, b.DisplayObject__tick = b._tick, b._tick = function(a) {
var b = this.getStage();
this._visible = !1, b && b.on("drawend", this._handleDrawEnd, this, !0), this.DisplayObject__tick(a)
}, b._handleDrawEnd = function() {
var a = this.htmlElement;
if (a) {
var b = a.style,
c = this._visible ? "visible" : "hidden";
if (c != b.visibility && (b.visibility = c), this._visible) {
var d = this.getConcatenatedMatrix(this._matrix),
e = this._oldMtx,
f = 1e4;
if (e && e.alpha == d.alpha || (b.opacity = "" + (0 | d.alpha * f) / f, e && (e.alpha = d.alpha)), !e || e.tx != d.tx || e.ty != d.ty || e.a != d.a || e.b != d.b || e.c != d.c || e.d != d.d) {
var g = "matrix(" + (0 | d.a * f) / f + "," + (0 | d.b * f) / f + "," + (0 | d.c * f) / f + "," + (0 | d.d * f) / f + "," + (0 | d.tx + .5);
b.transform = b.WebkitTransform = b.OTransform = b.msTransform = g + "," + (0 | d.ty + .5) + ")", b.MozTransform = g + "px," + (0 | d.ty + .5) + "px)", this._oldMtx = e ? e.copy(d) : d.clone()
}
}
}
}, createjs.DOMElement = a
}(), this.createjs = this.createjs || {},
function() {
"use strict";
var a = function() {
this.initialize()
},
b = a.prototype;
b.initialize = function() {}, b.getBounds = function() {
return null
}, b.applyFilter = function() {}, b.toString = function() {
return "[Filter]"
}, b.clone = function() {
return new a
}, createjs.Filter = a
}(), this.createjs = this.createjs || {},
function() {
"use strict";
var a = function(a, b, c) {
this.initialize(a, b, c)
},
b = a.prototype = new createjs.Filter;
b.initialize = function(a, b, c) {
(isNaN(a) || 0 > a) && (a = 0), this.blurX = 0 | a, (isNaN(b) || 0 > b) && (b = 0), this.blurY = 0 | b, (isNaN(c) || 1 > c) && (c = 1), this.quality = 0 | c
}, b.blurX = 0, b.blurY = 0, b.quality = 1, b.mul_table = [1, 171, 205, 293, 57, 373, 79, 137, 241, 27, 391, 357, 41, 19, 283, 265, 497, 469, 443, 421, 25, 191, 365, 349, 335, 161, 155, 149, 9, 278, 269, 261, 505, 245, 475, 231, 449, 437, 213, 415, 405, 395, 193, 377, 369, 361, 353, 345, 169, 331, 325, 319, 313, 307, 301, 37, 145, 285, 281, 69, 271, 267, 263, 259, 509, 501, 493, 243, 479, 118, 465, 459, 113, 446, 55, 435, 429, 423, 209, 413, 51, 403, 199, 393, 97, 3, 379, 375, 371, 367, 363, 359, 355, 351, 347, 43, 85, 337, 333, 165, 327, 323, 5, 317, 157, 311, 77, 305, 303, 75, 297, 294, 73, 289, 287, 71, 141, 279, 277, 275, 68, 135, 67, 133, 33, 262, 260, 129, 511, 507, 503, 499, 495, 491, 61, 121, 481, 477, 237, 235, 467, 232, 115, 457, 227, 451, 7, 445, 221, 439, 218, 433, 215, 427, 425, 211, 419, 417, 207, 411, 409, 203, 202, 401, 399, 396, 197, 49, 389, 387, 385, 383, 95, 189, 47, 187, 93, 185, 23, 183, 91, 181, 45, 179, 89, 177, 11, 175, 87, 173, 345, 343, 341, 339, 337, 21, 167, 83, 331, 329, 327, 163, 81, 323, 321, 319, 159, 79, 315, 313, 39, 155, 309, 307, 153, 305, 303, 151, 75, 299, 149, 37, 295, 147, 73, 291, 145, 289, 287, 143, 285, 71, 141, 281, 35, 279, 139, 69, 275, 137, 273, 17, 271, 135, 269, 267, 133, 265, 33, 263, 131, 261, 130, 259, 129, 257, 1], b.shg_table = [0, 9, 10, 11, 9, 12, 10, 11, 12, 9, 13, 13, 10, 9, 13, 13, 14, 14, 14, 14, 10, 13, 14, 14, 14, 13, 13, 13, 9, 14, 14, 14, 15, 14, 15, 14, 15, 15, 14, 15, 15, 15, 14, 15, 15, 15, 15, 15, 14, 15, 15, 15, 15, 15, 15, 12, 14, 15, 15, 13, 15, 15, 15, 15, 16, 16, 16, 15, 16, 14, 16, 16, 14, 16, 13, 16, 16, 16, 15, 16, 13, 16, 15, 16, 14, 9, 16, 16, 16, 16, 16, 16, 16, 16, 16, 13, 14, 16, 16, 15, 16, 16, 10, 16, 15, 16, 14, 16, 16, 14, 16, 16, 14, 16, 16, 14, 15, 16, 16, 16, 14, 15, 14, 15, 13, 16, 16, 15, 17, 17, 17, 17, 17, 17, 14, 15, 17, 17, 16, 16, 17, 16, 15, 17, 16, 17, 11, 17, 16, 17, 16, 17, 16, 17, 17, 16, 17, 17, 16, 17, 17, 16, 16, 17, 17, 17, 16, 14, 17, 17, 17, 17, 15, 16, 14, 16, 15, 16, 13, 16, 15, 16, 14, 16, 15, 16, 12, 16, 15, 16, 17, 17, 17, 17, 17, 13, 16, 15, 17, 17, 17, 16, 15, 17, 17, 17, 16, 15, 17, 17, 14, 16, 17, 17, 16, 17, 17, 16, 15, 17, 16, 14, 17, 16, 15, 17, 16, 17, 17, 16, 17, 15, 16, 17, 14, 17, 16, 15, 17, 16, 17, 13, 17, 16, 17, 17, 16, 17, 14, 17, 16, 17, 16, 17, 16, 17, 9], b.getBounds = function() {
var a = .5 * Math.pow(this.quality, .6);
return new createjs.Rectangle(-this.blurX * a, -this.blurY * a, 2 * this.blurX * a, 2 * this.blurY * a)
}, b.applyFilter = function(a, b, c, d, e, f, g, h) {
f = f || a, null == g && (g = b), null == h && (h = c);
try {
var i = a.getImageData(b, c, d, e)
} catch (j) {
return !1
}
var k = this.blurX / 2;
if (isNaN(k) || 0 > k) return !1;
k |= 0;
var l = this.blurY / 2;
if (isNaN(l) || 0 > l) return !1;
if (l |= 0, 0 == k && 0 == l) return !1;
var m = this.quality;
(isNaN(m) || 1 > m) && (m = 1), m |= 0, m > 3 && (m = 3), 1 > m && (m = 1);
var b, c, n, o, p, q, r, s, t, u, v, w, x, y, z, A = i.data,
B = k + k + 1,
C = l + l + 1,
D = d - 1,
E = e - 1,
F = k + 1,
G = l + 1,
H = {
r: 0,
b: 0,
g: 0,
a: 0,
next: null
},
I = H;
for (n = 1; B > n; n++) I = I.next = {
r: 0,
b: 0,
g: 0,
a: 0,
next: null
};
I.next = H;
var J = {
r: 0,
b: 0,
g: 0,
a: 0,
next: null
},
K = J;
for (n = 1; C > n; n++) K = K.next = {
r: 0,
b: 0,
g: 0,
a: 0,
next: null
};
K.next = J;
for (var L = null; m-- > 0;) {
r = q = 0;
var M = this.mul_table[k],
N = this.shg_table[k];
for (c = e; --c > -1;) {
for (s = F * (w = A[q]), t = F * (x = A[q + 1]), u = F * (y = A[q + 2]), v = F * (z = A[q + 3]), I = H, n = F; --n > -1;) I.r = w, I.g = x, I.b = y, I.a = z, I = I.next;
for (n = 1; F > n; n++) o = q + ((n > D ? D : n) << 2), s += I.r = A[o], t += I.g = A[o + 1], u += I.b = A[o + 2], v += I.a = A[o + 3], I = I.next;
for (L = H, b = 0; d > b; b++) A[q++] = s * M >>> N, A[q++] = t * M >>> N, A[q++] = u * M >>> N, A[q++] = v * M >>> N, o = r + ((o = b + k + 1) < D ? o : D) << 2, s -= L.r - (L.r = A[o]), t -= L.g - (L.g = A[o + 1]), u -= L.b - (L.b = A[o + 2]), v -= L.a - (L.a = A[o + 3]), L = L.next;
r += d
}
for (M = this.mul_table[l], N = this.shg_table[l], b = 0; d > b; b++) {
for (q = b << 2, s = G * (w = A[q]), t = G * (x = A[q + 1]), u = G * (y = A[q + 2]), v = G * (z = A[q + 3]), K = J, n = 0; G > n; n++) K.r = w, K.g = x, K.b = y, K.a = z, K = K.next;
for (p = d, n = 1; l >= n; n++) q = p + b << 2, s += K.r = A[q], t += K.g = A[q + 1], u += K.b = A[q + 2], v += K.a = A[q + 3], K = K.next, E > n && (p += d);
if (q = b, L = J, m > 0)
for (c = 0; e > c; c++) o = q << 2, A[o + 3] = z = v * M >>> N, z > 0 ? (A[o] = s * M >>> N, A[o + 1] = t * M >>> N, A[o + 2] = u * M >>> N) : A[o] = A[o + 1] = A[o + 2] = 0, o = b + ((o = c + G) < E ? o : E) * d << 2, s -= L.r - (L.r = A[o]), t -= L.g - (L.g = A[o + 1]), u -= L.b - (L.b = A[o + 2]), v -= L.a - (L.a = A[o + 3]), L = L.next, q += d;
else
for (c = 0; e > c; c++) o = q << 2, A[o + 3] = z = v * M >>> N, z > 0 ? (z = 255 / z, A[o] = (s * M >>> N) * z, A[o + 1] = (t * M >>> N) * z, A[o + 2] = (u * M >>> N) * z) : A[o] = A[o + 1] = A[o + 2] = 0, o = b + ((o = c + G) < E ? o : E) * d << 2, s -= L.r - (L.r = A[o]), t -= L.g - (L.g = A[o + 1]), u -= L.b - (L.b = A[o + 2]), v -= L.a - (L.a = A[o + 3]), L = L.next, q += d
}
}
return f.putImageData(i, g, h), !0
}, b.clone = function() {
return new a(this.blurX, this.blurY, this.quality)
}, b.toString = function() {
return "[BlurFilter]"
}, createjs.BlurFilter = a
}(), this.createjs = this.createjs || {},
function() {
"use strict";
var a = function(a) {
this.initialize(a)
},
b = a.prototype = new createjs.Filter;
b.initialize = function(a) {
this.alphaMap = a
}, b.alphaMap = null, b._alphaMap = null, b._mapData = null, b.applyFilter = function(a, b, c, d, e, f, g, h) {
if (!this.alphaMap) return !0;
if (!this._prepAlphaMap()) return !1;
f = f || a, null == g && (g = b), null == h && (h = c);
try {
var i = a.getImageData(b, c, d, e)
} catch (j) {
return !1
}
for (var k = i.data, l = this._mapData, m = k.length, n = 0; m > n; n += 4) k[n + 3] = l[n] || 0;
return f.putImageData(i, g, h), !0
}, b.clone = function() {
return new a(this.alphaMap)
}, b.toString = function() {
return "[AlphaMapFilter]"
}, b._prepAlphaMap = function() {
if (!this.alphaMap) return !1;
if (this.alphaMap == this._alphaMap && this._mapData) return !0;
this._mapData = null;
var a, b = this._alphaMap = this.alphaMap,
c = b;
b instanceof HTMLCanvasElement ? a = c.getContext("2d") : (c = createjs.createCanvas ? createjs.createCanvas() : document.createElement("canvas"), c.width = b.width, c.height = b.height, a = c.getContext("2d"), a.drawImage(b, 0, 0));
try {
var d = a.getImageData(0, 0, b.width, b.height)
} catch (e) {
return !1
}
return this._mapData = d.data, !0
}, createjs.AlphaMapFilter = a
}(), this.createjs = this.createjs || {},
function() {
"use strict";
var a = function(a) {
this.initialize(a)
},
b = a.prototype = new createjs.Filter;
b.initialize = function(a) {
this.mask = a
}, b.mask = null, b.applyFilter = function(a, b, c, d, e, f, g, h) {
return this.mask ? (f = f || a, null == g && (g = b), null == h && (h = c), f.save(), f.globalCompositeOperation = "destination-in", f.drawImage(this.mask, g, h), f.restore(), !0) : !0
}, b.clone = function() {
return new a(this.mask)
}, b.toString = function() {
return "[AlphaMaskFilter]"
}, createjs.AlphaMaskFilter = a
}(), this.createjs = this.createjs || {},
function() {
"use strict";
var a = function(a, b, c, d, e, f, g, h) {
this.initialize(a, b, c, d, e, f, g, h)
},
b = a.prototype = new createjs.Filter;
b.redMultiplier = 1, b.greenMultiplier = 1, b.blueMultiplier = 1, b.alphaMultiplier = 1, b.redOffset = 0, b.greenOffset = 0, b.blueOffset = 0, b.alphaOffset = 0, b.initialize = function(a, b, c, d, e, f, g, h) {
this.redMultiplier = null != a ? a : 1, this.greenMultiplier = null != b ? b : 1, this.blueMultiplier = null != c ? c : 1, this.alphaMultiplier = null != d ? d : 1, this.redOffset = e || 0, this.greenOffset = f || 0, this.blueOffset = g || 0, this.alphaOffset = h || 0
}, b.applyFilter = function(a, b, c, d, e, f, g, h) {
f = f || a, null == g && (g = b), null == h && (h = c);
try {
var i = a.getImageData(b, c, d, e)
} catch (j) {
return !1
}
for (var k = i.data, l = k.length, m = 0; l > m; m += 4) k[m] = k[m] * this.redMultiplier + this.redOffset, k[m + 1] = k[m + 1] * this.greenMultiplier + this.greenOffset, k[m + 2] = k[m + 2] * this.blueMultiplier + this.blueOffset, k[m + 3] = k[m + 3] * this.alphaMultiplier + this.alphaOffset;
return f.putImageData(i, g, h), !0
}, b.toString = function() {
return "[ColorFilter]"
}, b.clone = function() {
return new a(this.redMultiplier, this.greenMultiplier, this.blueMultiplier, this.alphaMultiplier, this.redOffset, this.greenOffset, this.blueOffset, this.alphaOffset)
}, createjs.ColorFilter = a
}(), this.createjs = this.createjs || {},
function() {
"use strict";
var a = function(a, b, c, d) {
this.initialize(a, b, c, d)
},
b = a.prototype;
a.DELTA_INDEX = [0, .01, .02, .04, .05, .06, .07, .08, .1, .11, .12, .14, .15, .16, .17, .18, .2, .21, .22, .24, .25, .27, .28, .3, .32, .34, .36, .38, .4, .42, .44, .46, .48, .5, .53, .56, .59, .62, .65, .68, .71, .74, .77, .8, .83, .86, .89, .92, .95, .98, 1, 1.06, 1.12, 1.18, 1.24, 1.3, 1.36, 1.42, 1.48, 1.54, 1.6, 1.66, 1.72, 1.78, 1.84, 1.9, 1.96, 2, 2.12, 2.25, 2.37, 2.5, 2.62, 2.75, 2.87, 3, 3.2, 3.4, 3.6, 3.8, 4, 4.3, 4.7, 4.9, 5, 5.5, 6, 6.5, 6.8, 7, 7.3, 7.5, 7.8, 8, 8.4, 8.7, 9, 9.4, 9.6, 9.8, 10], a.IDENTITY_MATRIX = [1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1], a.LENGTH = a.IDENTITY_MATRIX.length, b.initialize = function(a, b, c, d) {
return this.reset(), this.adjustColor(a, b, c, d), this
}, b.reset = function() {
return this.copyMatrix(a.IDENTITY_MATRIX)
}, b.adjustColor = function(a, b, c, d) {
return this.adjustHue(d), this.adjustContrast(b), this.adjustBrightness(a), this.adjustSaturation(c)
}, b.adjustBrightness = function(a) {
return 0 == a || isNaN(a) ? this : (a = this._cleanValue(a, 255), this._multiplyMatrix([1, 0, 0, 0, a, 0, 1, 0, 0, a, 0, 0, 1, 0, a, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1]), this)
}, b.adjustContrast = function(b) {
if (0 == b || isNaN(b)) return this;
b = this._cleanValue(b, 100);
var c;
return 0 > b ? c = 127 + 127 * (b / 100) : (c = b % 1, c = 0 == c ? a.DELTA_INDEX[b] : a.DELTA_INDEX[b << 0] * (1 - c) + a.DELTA_INDEX[(b << 0) + 1] * c, c = 127 * c + 127), this._multiplyMatrix([c / 127, 0, 0, 0, .5 * (127 - c), 0, c / 127, 0, 0, .5 * (127 - c), 0, 0, c / 127, 0, .5 * (127 - c), 0, 0, 0, 1, 0, 0, 0, 0, 0, 1]), this
}, b.adjustSaturation = function(a) {
if (0 == a || isNaN(a)) return this;
a = this._cleanValue(a, 100);
var b = 1 + (a > 0 ? 3 * a / 100 : a / 100),
c = .3086,
d = .6094,
e = .082;
return this._multiplyMatrix([c * (1 - b) + b, d * (1 - b), e * (1 - b), 0, 0, c * (1 - b), d * (1 - b) + b, e * (1 - b), 0, 0, c * (1 - b), d * (1 - b), e * (1 - b) + b, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1]), this
}, b.adjustHue = function(a) {
if (0 == a || isNaN(a)) return this;
a = this._cleanValue(a, 180) / 180 * Math.PI;
var b = Math.cos(a),
c = Math.sin(a),
d = .213,
e = .715,
f = .072;
return this._multiplyMatrix([d + b * (1 - d) + c * -d, e + b * -e + c * -e, f + b * -f + c * (1 - f), 0, 0, d + b * -d + .143 * c, e + b * (1 - e) + .14 * c, f + b * -f + c * -.283, 0, 0, d + b * -d + c * -(1 - d), e + b * -e + c * e, f + b * (1 - f) + c * f, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1]), this
}, b.concat = function(b) {
return b = this._fixMatrix(b), b.length != a.LENGTH ? this : (this._multiplyMatrix(b), this)
}, b.clone = function() {
return (new a).copyMatrix(this)
}, b.toArray = function() {
for (var b = [], c = 0, d = a.LENGTH; d > c; c++) b[c] = this[c];
return b
}, b.copyMatrix = function(b) {
for (var c = a.LENGTH, d = 0; c > d; d++) this[d] = b[d];
return this
}, b.toString = function() {
return "[ColorMatrix]"
}, b._multiplyMatrix = function(a) {
for (var b = [], c = 0; 5 > c; c++) {
for (var d = 0; 5 > d; d++) b[d] = this[d + 5 * c];
for (var d = 0; 5 > d; d++) {
for (var e = 0, f = 0; 5 > f; f++) e += a[d + 5 * f] * b[f];
this[d + 5 * c] = e
}
}
}, b._cleanValue = function(a, b) {
return Math.min(b, Math.max(-b, a))
}, b._fixMatrix = function(b) {
return b instanceof a && (b = b.toArray()), b.length < a.LENGTH ? b = b.slice(0, b.length).concat(a.IDENTITY_MATRIX.slice(b.length, a.LENGTH)) : b.length > a.LENGTH && (b = b.slice(0, a.LENGTH)), b
}, createjs.ColorMatrix = a
}(), this.createjs = this.createjs || {},
function() {
"use strict";
var a = function(a) {
this.initialize(a)
},
b = a.prototype = new createjs.Filter;
b.matrix = null, b.initialize = function(a) {
this.matrix = a
}, b.applyFilter = function(a, b, c, d, e, f, g, h) {
f = f || a, null == g && (g = b), null == h && (h = c);
try {
var i = a.getImageData(b, c, d, e)
} catch (j) {
return !1
}
for (var k, l, m, n, o = i.data, p = o.length, q = this.matrix, r = q[0], s = q[1], t = q[2], u = q[3], v = q[4], w = q[5], x = q[6], y = q[7], z = q[8], A = q[9], B = q[10], C = q[11], D = q[12], E = q[13], F = q[14], G = q[15], H = q[16], I = q[17], J = q[18], K = q[19], L = 0; p > L; L += 4) k = o[L], l = o[L + 1], m = o[L + 2], n = o[L + 3], o[L] = k * r + l * s + m * t + n * u + v, o[L + 1] = k * w + l * x + m * y + n * z + A, o[L + 2] = k * B + l * C + m * D + n * E + F, o[L + 3] = k * G + l * H + m * I + n * J + K;
return f.putImageData(i, g, h), !0
}, b.toString = function() {
return "[ColorMatrixFilter]"
}, b.clone = function() {
return new a(this.matrix)
}, createjs.ColorMatrixFilter = a
}(), this.createjs = this.createjs || {},
function() {
"use strict";
var a = function() {
throw "Touch cannot be instantiated"
};
a.isSupported = function() {
return "ontouchstart" in window || window.navigator.msPointerEnabled && window.navigator.msMaxTouchPoints > 0 || window.navigator.pointerEnabled && window.navigator.maxTouchPoints > 0
}, a.enable = function(b, c, d) {
return b && b.canvas && a.isSupported() ? (b.__touch = {
pointers: {},
multitouch: !c,
preventDefault: !d,
count: 0
}, "ontouchstart" in window ? a._IOS_enable(b) : (window.navigator.msPointerEnabled || window.navigator.pointerEnabled) && a._IE_enable(b), !0) : !1
}, a.disable = function(b) {
b && ("ontouchstart" in window ? a._IOS_disable(b) : (window.navigator.msPointerEnabled || window.navigator.pointerEnabled) && a._IE_disable(b))
}, a._IOS_enable = function(b) {
var c = b.canvas,
d = b.__touch.f = function(c) {
a._IOS_handleEvent(b, c)
};
c.addEventListener("touchstart", d, !1), c.addEventListener("touchmove", d, !1), c.addEventListener("touchend", d, !1), c.addEventListener("touchcancel", d, !1)
}, a._IOS_disable = function(a) {
var b = a.canvas;
if (b) {
var c = a.__touch.f;
b.removeEventListener("touchstart", c, !1), b.removeEventListener("touchmove", c, !1), b.removeEventListener("touchend", c, !1), b.removeEventListener("touchcancel", c, !1)
}
}, a._IOS_handleEvent = function(a, b) {
if (a) {
a.__touch.preventDefault && b.preventDefault && b.preventDefault();
for (var c = b.changedTouches, d = b.type, e = 0, f = c.length; f > e; e++) {
var g = c[e],
h = g.identifier;
g.target == a.canvas && ("touchstart" == d ? this._handleStart(a, h, b, g.pageX, g.pageY) : "touchmove" == d ? this._handleMove(a, h, b, g.pageX, g.pageY) : ("touchend" == d || "touchcancel" == d) && this._handleEnd(a, h, b))
}
}
}, a._IE_enable = function(b) {
var c = b.canvas,
d = b.__touch.f = function(c) {
a._IE_handleEvent(b, c)
};
void 0 === window.navigator.pointerEnabled ? (c.addEventListener("MSPointerDown", d, !1), window.addEventListener("MSPointerMove", d, !1), window.addEventListener("MSPointerUp", d, !1), window.addEventListener("MSPointerCancel", d, !1), b.__touch.preventDefault && (c.style.msTouchAction = "none")) : (c.addEventListener("pointerdown", d, !1), window.addEventListener("pointermove", d, !1), window.addEventListener("pointerup", d, !1), window.addEventListener("pointercancel", d, !1), b.__touch.preventDefault && (c.style.touchAction = "none")), b.__touch.activeIDs = {}
}, a._IE_disable = function(a) {
var b = a.__touch.f;
void 0 === window.navigator.pointerEnabled ? (window.removeEventListener("MSPointerMove", b, !1), window.removeEventListener("MSPointerUp", b, !1), window.removeEventListener("MSPointerCancel", b, !1), a.canvas && a.canvas.removeEventListener("MSPointerDown", b, !1)) : (window.removeEventListener("pointermove", b, !1), window.removeEventListener("pointerup", b, !1), window.removeEventListener("pointercancel", b, !1), a.canvas && a.canvas.removeEventListener("pointerdown", b, !1))
}, a._IE_handleEvent = function(a, b) {
if (a) {
a.__touch.preventDefault && b.preventDefault && b.preventDefault();
var c = b.type,
d = b.pointerId,
e = a.__touch.activeIDs;
if ("MSPointerDown" == c || "pointerdown" == c) {
if (b.srcElement != a.canvas) return;
e[d] = !0, this._handleStart(a, d, b, b.pageX, b.pageY)
} else e[d] && ("MSPointerMove" == c || "pointermove" == c ? this._handleMove(a, d, b, b.pageX, b.pageY) : ("MSPointerUp" == c || "MSPointerCancel" == c || "pointerup" == c || "pointercancel" == c) && (delete e[d], this._handleEnd(a, d, b)))
}
}, a._handleStart = function(a, b, c, d, e) {
var f = a.__touch;
if (f.multitouch || !f.count) {
var g = f.pointers;
g[b] || (g[b] = !0, f.count++, a._handlePointerDown(b, c, d, e))
}
}, a._handleMove = function(a, b, c, d, e) {
a.__touch.pointers[b] && a._handlePointerMove(b, c, d, e)
}, a._handleEnd = function(a, b, c) {
var d = a.__touch,
e = d.pointers;
e[b] && (d.count--, a._handlePointerUp(b, c, !0), delete e[b])
}, createjs.Touch = a
}(), this.createjs = this.createjs || {},
function() {
"use strict";
var a = createjs.EaselJS = createjs.EaselJS || {};
a.version = "NEXT", a.buildDate = "Thu, 12 Dec 2013 23:37:07 GMT"
}(), this.createjs = this.createjs || {},
function() {
"use strict";
var a = createjs.PreloadJS = createjs.PreloadJS || {};
a.version = "NEXT", a.buildDate = "Thu, 12 Dec 2013 23:37:07 GMT"
}(), this.createjs = this.createjs || {},
function() {
"use strict";
createjs.proxy = function(a, b) {
var c = Array.prototype.slice.call(arguments, 2);
return function() {
return a.apply(b, Array.prototype.slice.call(arguments, 0).concat(c))
}
}
}(), this.createjs = this.createjs || {},
function() {
"use strict";
var a = function() {
this.init()
};
a.prototype = new createjs.EventDispatcher;
var b = a.prototype,
c = a;
c.FILE_PATTERN = /^(?:(\w+:)\/{2}(\w+(?:\.\w+)*\/?)|(.{0,2}\/{1}))?([/.]*?(?:[^?]+)?\/)?((?:[^/?]+)\.(\w+))(?:\?(\S+)?)?$/, c.PATH_PATTERN = /^(?:(\w+:)\/{2})|(.{0,2}\/{1})?([/.]*?(?:[^?]+)?\/?)?$/, b.loaded = !1, b.canceled = !1, b.progress = 0, b._item = null, b.getItem = function() {
return this._item
}, b.init = function() {}, b.load = function() {}, b.close = function() {}, b._sendLoadStart = function() {
this._isCanceled() || this.dispatchEvent("loadstart")
}, b._sendProgress = function(a) {
if (!this._isCanceled()) {
var b = null;
"number" == typeof a ? (this.progress = a, b = new createjs.Event("progress"), b.loaded = this.progress, b.total = 1) : (b = a, this.progress = a.loaded / a.total, (isNaN(this.progress) || 1 / 0 == this.progress) && (this.progress = 0)), b.progress = this.progress, this.hasEventListener("progress") && this.dispatchEvent(b)
}
}, b._sendComplete = function() {
this._isCanceled() || this.dispatchEvent("complete")
}, b._sendError = function(a) {
!this._isCanceled() && this.hasEventListener("error") && (null == a && (a = new createjs.Event("error")), this.dispatchEvent(a))
}, b._isCanceled = function() {
return null == window.createjs || this.canceled ? !0 : !1
}, b._parseURI = function(a) {
return a ? a.match(c.FILE_PATTERN) : null
}, b._parsePath = function(a) {
return a ? a.match(c.PATH_PATTERN) : null
}, b._formatQueryString = function(a, b) {
if (null == a) throw new Error("You must specify data.");
var c = [];
for (var d in a) c.push(d + "=" + escape(a[d]));
return b && (c = c.concat(b)), c.join("&")
}, b.buildPath = function(a, b) {
if (null == b) return a;
var c = [],
d = a.indexOf("?");
if (-1 != d) {
var e = a.slice(d + 1);
c = c.concat(e.split("&"))
}
return -1 != d ? a.slice(0, d) + "?" + this._formatQueryString(b, c) : a + "?" + this._formatQueryString(b, c)
}, b._isCrossDomain = function(a) {
var b = document.createElement("a");
b.href = a.src;
var c = document.createElement("a");
c.href = location.href;
var d = "" != b.hostname && (b.port != c.port || b.protocol != c.protocol || b.hostname != c.hostname);
return d
}, b._isLocal = function(a) {
var b = document.createElement("a");
return b.href = a.src, "" == b.hostname && "file:" == b.protocol
}, b.toString = function() {
return "[PreloadJS AbstractLoader]"
}, createjs.AbstractLoader = a
}(), this.createjs = this.createjs || {},
function() {
"use strict";
var a = function(a, b, c) {
this.init(a, b, c)
},
b = a.prototype = new createjs.AbstractLoader,
c = a;
c.loadTimeout = 8e3, c.LOAD_TIMEOUT = 0, c.BINARY = "binary", c.CSS = "css", c.IMAGE = "image", c.JAVASCRIPT = "javascript", c.JSON = "json", c.JSONP = "jsonp", c.MANIFEST = "manifest", c.SOUND = "sound", c.SVG = "svg", c.TEXT = "text", c.XML = "xml", c.POST = "POST", c.GET = "GET", b._basePath = null, b._crossOrigin = "", b.useXHR = !0, b.stopOnError = !1, b.maintainScriptOrder = !0, b.next = null, b._typeCallbacks = null, b._extensionCallbacks = null, b._loadStartWasDispatched = !1, b._maxConnections = 1, b._currentlyLoadingScript = null, b._currentLoads = null, b._loadQueue = null, b._loadQueueBackup = null, b._loadItemsById = null, b._loadItemsBySrc = null, b._loadedResults = null, b._loadedRawResults = null, b._numItems = 0, b._numItemsLoaded = 0, b._scriptOrder = null, b._loadedScripts = null, b.init = function(a, b, c) {
this._numItems = this._numItemsLoaded = 0, this._paused = !1, this._loadStartWasDispatched = !1, this._currentLoads = [], this._loadQueue = [], this._loadQueueBackup = [], this._scriptOrder = [], this._loadedScripts = [], this._loadItemsById = {}, this._loadItemsBySrc = {}, this._loadedResults = {}, this._loadedRawResults = {}, this._typeCallbacks = {}, this._extensionCallbacks = {}, this._basePath = b, this.setUseXHR(a), this._crossOrigin = c === !0 ? "Anonymous" : c === !1 || null == c ? "" : c
}, b.setUseXHR = function(a) {
return this.useXHR = 0 != a && null != window.XMLHttpRequest, this.useXHR
}, b.removeAll = function() {
this.remove()
}, b.remove = function(a) {
var b = null;
if (!a || a instanceof Array) {
if (a) b = a;
else if (arguments.length > 0) return
} else b = [a];
var c = !1;
if (b) {
for (; b.length;) {
var d = b.pop(),
e = this.getResult(d);
for (f = this._loadQueue.length - 1; f >= 0; f--)
if (g = this._loadQueue[f].getItem(), g.id == d || g.src == d) {
this._loadQueue.splice(f, 1)[0].cancel();
break
} for (f = this._loadQueueBackup.length - 1; f >= 0; f--)
if (g = this._loadQueueBackup[f].getItem(), g.id == d || g.src == d) {
this._loadQueueBackup.splice(f, 1)[0].cancel();
break
} if (e) delete this._loadItemsById[e.id], delete this._loadItemsBySrc[e.src], this._disposeItem(e);
else
for (var f = this._currentLoads.length - 1; f >= 0; f--) {
var g = this._currentLoads[f].getItem();
if (g.id == d || g.src == d) {
this._currentLoads.splice(f, 1)[0].cancel(), c = !0;
break
}
}
}
c && this._loadNext()
} else {
this.close();
for (var h in this._loadItemsById) this._disposeItem(this._loadItemsById[h]);
this.init(this.useXHR)
}
}, b.reset = function() {
this.close();
for (var a in this._loadItemsById) this._disposeItem(this._loadItemsById[a]);
for (var b = [], c = 0, d = this._loadQueueBackup.length; d > c; c++) b.push(this._loadQueueBackup[c].getItem());
this.loadManifest(b, !1)
}, c.isBinary = function(a) {
switch (a) {
case createjs.LoadQueue.IMAGE:
case createjs.LoadQueue.BINARY:
return !0;
default:
return !1
}
}, c.isText = function(a) {
switch (a) {
case createjs.LoadQueue.TEXT:
case createjs.LoadQueue.JSON:
case createjs.LoadQueue.MANIFEST:
case createjs.LoadQueue.XML:
case createjs.LoadQueue.HTML:
case createjs.LoadQueue.CSS:
case createjs.LoadQueue.SVG:
case createjs.LoadQueue.JAVASCRIPT:
return !0;
default:
return !1
}
}, b.installPlugin = function(a) {
if (null != a && null != a.getPreloadHandlers) {
var b = a.getPreloadHandlers();
if (b.scope = a, null != b.types)
for (var c = 0, d = b.types.length; d > c; c++) this._typeCallbacks[b.types[c]] = b;
if (null != b.extensions)
for (c = 0, d = b.extensions.length; d > c; c++) this._extensionCallbacks[b.extensions[c]] = b
}
}, b.setMaxConnections = function(a) {
this._maxConnections = a, !this._paused && this._loadQueue.length > 0 && this._loadNext()
}, b.loadFile = function(a, b, c) {
if (null == a) {
var d = new createjs.Event("error");
return d.text = "PRELOAD_NO_FILE", this._sendError(d), void 0
}
this._addItem(a, null, c), b !== !1 ? this.setPaused(!1) : this.setPaused(!0)
}, b.loadManifest = function(a, b, d) {
var e = null,
f = null;
if (a instanceof Array) {
if (0 == a.length) {
var g = new createjs.Event("error");
return g.text = "PRELOAD_MANIFEST_EMPTY", this._sendError(g), void 0
}
e = a
} else if ("string" == typeof a) e = [{
src: a,
type: c.MANIFEST
}];
else {
if ("object" != typeof a) {
var g = new createjs.Event("error");
return g.text = "PRELOAD_MANIFEST_NULL", this._sendError(g), void 0
}
if (void 0 !== a.src) {
if (null == a.type) a.type = c.MANIFEST;
else if (a.type != c.MANIFEST) {
var g = new createjs.Event("error");
g.text = "PRELOAD_MANIFEST_ERROR", this._sendError(g)
}
e = [a]
} else void 0 !== a.manifest && (e = a.manifest, f = a.path)
}
for (var h = 0, i = e.length; i > h; h++) this._addItem(e[h], f, d);
b !== !1 ? this.setPaused(!1) : this.setPaused(!0)
}, b.load = function() {
this.setPaused(!1)
}, b.getItem = function(a) {
return this._loadItemsById[a] || this._loadItemsBySrc[a]
}, b.getResult = function(a, b) {
var c = this._loadItemsById[a] || this._loadItemsBySrc[a];
if (null == c) return null;
var d = c.id;
return b && this._loadedRawResults[d] ? this._loadedRawResults[d] : this._loadedResults[d]
}, b.setPaused = function(a) {
this._paused = a, this._paused || this._loadNext()
}, b.close = function() {
for (; this._currentLoads.length;) this._currentLoads.pop().cancel();
this._scriptOrder.length = 0, this._loadedScripts.length = 0, this.loadStartWasDispatched = !1
}, b._addItem = function(a, b, c) {
var d = this._createLoadItem(a, b, c);
if (null != d) {
var e = this._createLoader(d);
null != e && (this._loadQueue.push(e), this._loadQueueBackup.push(e), this._numItems++, this._updateProgress(), this.maintainScriptOrder && d.type == createjs.LoadQueue.JAVASCRIPT && e instanceof createjs.XHRLoader && (this._scriptOrder.push(d), this._loadedScripts.push(null)))
}
}, b._createLoadItem = function(a, b, c) {
var d = null;
switch (typeof a) {
case "string":
d = {
src: a
};
break;
case "object":
d = window.HTMLAudioElement && a instanceof window.HTMLAudioElement ? {
tag: a,
src: d.tag.src,
type: createjs.LoadQueue.SOUND
} : a;
break;
default:
return null
}
var e = this._parseURI(d.src);
null != e && (d.ext = e[6]), null == d.type && (d.type = this._getTypeByExtension(d.ext));
var f = "",
g = c || this._basePath,
h = d.src;
if (e && null == e[1] && null == e[3])
if (b) {
f = b;
var i = this._parsePath(b);
h = b + h, null != g && i && null == i[1] && null == i[2] && (f = g + f)
} else null != g && (f = g);
if (d.src = f + d.src, d.path = f, (d.type == createjs.LoadQueue.JSON || d.type == createjs.LoadQueue.MANIFEST) && (d._loadAsJSONP = null != d.callback), d.type == createjs.LoadQueue.JSONP && null == d.callback) throw new Error("callback is required for loading JSONP requests.");
(void 0 === d.tag || null === d.tag) && (d.tag = this._createTag(d)), (void 0 === d.id || null === d.id || "" === d.id) && (d.id = h);
var j = this._typeCallbacks[d.type] || this._extensionCallbacks[d.ext];
if (j) {
var k = j.callback.call(j.scope, d.src, d.type, d.id, d.data, f, this);
if (k === !1) return null;
k === !0 || (null != k.src && (d.src = k.src), null != k.id && (d.id = k.id), null != k.tag && (d.tag = k.tag), null != k.completeHandler && (d.completeHandler = k.completeHandler), k.type && (d.type = k.type), e = this._parseURI(d.src), null != e && null != e[6] && (d.ext = e[6].toLowerCase()))
}
return this._loadItemsById[d.id] = d, this._loadItemsBySrc[d.src] = d, d
}, b._createLoader = function(a) {
var b = this.useXHR;
switch (a.type) {
case createjs.LoadQueue.JSON:
case createjs.LoadQueue.MANIFEST:
b = !a._loadAsJSONP;
break;
case createjs.LoadQueue.XML:
case createjs.LoadQueue.TEXT:
b = !0;
break;
case createjs.LoadQueue.SOUND:
case createjs.LoadQueue.JSONP:
b = !1;
break;
case null:
return null
}
return b ? new createjs.XHRLoader(a, this._crossOrigin) : new createjs.TagLoader(a)
}, b._loadNext = function() {
if (!this._paused) {
this._loadStartWasDispatched || (this._sendLoadStart(), this._loadStartWasDispatched = !0), this._numItems == this._numItemsLoaded ? (this.loaded = !0, this._sendComplete(), this.next && this.next.load && this.next.load()) : this.loaded = !1;
for (var a = 0; a < this._loadQueue.length && !(this._currentLoads.length >= this._maxConnections); a++) {
var b = this._loadQueue[a];
if (this.maintainScriptOrder && b instanceof createjs.TagLoader && b.getItem().type == createjs.LoadQueue.JAVASCRIPT) {
if (this._currentlyLoadingScript) continue;
this._currentlyLoadingScript = !0
}
this._loadQueue.splice(a, 1), a--, this._loadItem(b)
}
}
}, b._loadItem = function(a) {
a.on("progress", this._handleProgress, this), a.on("complete", this._handleFileComplete, this), a.on("error", this._handleFileError, this), this._currentLoads.push(a), this._sendFileStart(a.getItem()), a.load()
}, b._handleFileError = function(a) {
var b = a.target;
this._numItemsLoaded++, this._updateProgress();
var c = new createjs.Event("error");
c.text = "FILE_LOAD_ERROR", c.item = b.getItem(), this._sendError(c), this.stopOnError || (this._removeLoadItem(b), this._loadNext())
}, b._handleFileComplete = function(a) {
var b = a.target,
c = b.getItem();
if (this._loadedResults[c.id] = b.getResult(), b instanceof createjs.XHRLoader && (this._loadedRawResults[c.id] = b.getResult(!0)), this._removeLoadItem(b), this.maintainScriptOrder && c.type == createjs.LoadQueue.JAVASCRIPT) {
if (!(b instanceof createjs.TagLoader)) return this._loadedScripts[createjs.indexOf(this._scriptOrder, c)] = c, this._checkScriptLoadOrder(b), void 0;
this._currentlyLoadingScript = !1
}
if (delete c._loadAsJSONP, c.type == createjs.LoadQueue.MANIFEST) {
var d = b.getResult();
null != d && void 0 !== d.manifest && this.loadManifest(d, !0)
}
this._processFinishedLoad(c, b)
}, b._processFinishedLoad = function(a, b) {
this._numItemsLoaded++, this._updateProgress(), this._sendFileComplete(a, b), this._loadNext()
}, b._checkScriptLoadOrder = function() {
for (var a = this._loadedScripts.length, b = 0; a > b; b++) {
var c = this._loadedScripts[b];
if (null === c) break;
if (c !== !0) {
var d = this._loadedResults[c.id];
(document.body || document.getElementsByTagName("body")[0]).appendChild(d), this._processFinishedLoad(c), this._loadedScripts[b] = !0
}
}
}, b._removeLoadItem = function(a) {
for (var b = this._currentLoads.length, c = 0; b > c; c++)
if (this._currentLoads[c] == a) {
this._currentLoads.splice(c, 1);
break
}
}, b._handleProgress = function(a) {
var b = a.target;
this._sendFileProgress(b.getItem(), b.progress), this._updateProgress()
}, b._updateProgress = function() {
var a = this._numItemsLoaded / this._numItems,
b = this._numItems - this._numItemsLoaded;
if (b > 0) {
for (var c = 0, d = 0, e = this._currentLoads.length; e > d; d++) c += this._currentLoads[d].progress;
a += c / b * (b / this._numItems)
}
this._sendProgress(a)
}, b._disposeItem = function(a) {
delete this._loadedResults[a.id], delete this._loadedRawResults[a.id], delete this._loadItemsById[a.id], delete this._loadItemsBySrc[a.src]
}, b._createTag = function(a) {
var b = null;
switch (a.type) {
case createjs.LoadQueue.IMAGE:
return b = document.createElement("img"), "" == this._crossOrigin || this._isLocal(a) || (b.crossOrigin = this._crossOrigin), b;
case createjs.LoadQueue.SOUND:
return b = document.createElement("audio"), b.autoplay = !1, b;
case createjs.LoadQueue.JSON:
case createjs.LoadQueue.JSONP:
case createjs.LoadQueue.JAVASCRIPT:
case createjs.LoadQueue.MANIFEST:
return b = document.createElement("script"), b.type = "text/javascript", b;
case createjs.LoadQueue.CSS:
return b = this.useXHR ? document.createElement("style") : document.createElement("link"), b.rel = "stylesheet", b.type = "text/css", b;
case createjs.LoadQueue.SVG:
return this.useXHR ? b = document.createElement("svg") : (b = document.createElement("object"), b.type = "image/svg+xml"), b
}
return null
}, b._getTypeByExtension = function(a) {
if (null == a) return createjs.LoadQueue.TEXT;
switch (a.toLowerCase()) {
case "jpeg":
case "jpg":
case "gif":
case "png":
case "webp":
case "bmp":
return createjs.LoadQueue.IMAGE;
case "ogg":
case "mp3":
case "wav":
return createjs.LoadQueue.SOUND;
case "json":
return createjs.LoadQueue.JSON;
case "xml":
return createjs.LoadQueue.XML;
case "css":
return createjs.LoadQueue.CSS;
case "js":
return createjs.LoadQueue.JAVASCRIPT;
case "svg":
return createjs.LoadQueue.SVG;
default:
return createjs.LoadQueue.TEXT
}
}, b._sendFileProgress = function(a, b) {
if (this._isCanceled()) return this._cleanUp(), void 0;
if (this.hasEventListener("fileprogress")) {
var c = new createjs.Event("fileprogress");
c.progress = b, c.loaded = b, c.total = 1, c.item = a, this.dispatchEvent(c)
}
}, b._sendFileComplete = function(a, b) {
if (!this._isCanceled()) {
var c = new createjs.Event("fileload");
c.loader = b, c.item = a, c.result = this._loadedResults[a.id], c.rawResult = this._loadedRawResults[a.id], a.completeHandler && a.completeHandler(c), this.hasEventListener("fileload") && this.dispatchEvent(c)
}
}, b._sendFileStart = function(a) {
var b = new createjs.Event("filestart");
b.item = a, this.hasEventListener("filestart") && this.dispatchEvent(b)
}, b.toString = function() {
return "[PreloadJS LoadQueue]"
}, createjs.LoadQueue = a;
var d = function() {};
d.init = function() {
var a = navigator.userAgent;
d.isFirefox = a.indexOf("Firefox") > -1, d.isOpera = null != window.opera, d.isChrome = a.indexOf("Chrome") > -1, d.isIOS = a.indexOf("iPod") > -1 || a.indexOf("iPhone") > -1 || a.indexOf("iPad") > -1
}, d.init(), createjs.LoadQueue.BrowserDetect = d
}(), this.createjs = this.createjs || {},
function() {
"use strict";
var a = function(a) {
this.init(a)
},
b = a.prototype = new createjs.AbstractLoader;
b._loadTimeout = null, b._tagCompleteProxy = null, b._isAudio = !1, b._tag = null, b._jsonResult = null, b.init = function(a) {
this._item = a, this._tag = a.tag, this._isAudio = window.HTMLAudioElement && a.tag instanceof window.HTMLAudioElement, this._tagCompleteProxy = createjs.proxy(this._handleLoad, this)
}, b.getResult = function() {
return this._item.type == createjs.LoadQueue.JSONP || this._item.type == createjs.LoadQueue.MANIFEST ? this._jsonResult : this._tag
}, b.cancel = function() {
this.canceled = !0, this._clean()
}, b.load = function() {
var a = this._item,
b = this._tag;
clearTimeout(this._loadTimeout);
var c = createjs.LoadQueue.LOAD_TIMEOUT;
0 == c && (c = createjs.LoadQueue.loadTimeout), this._loadTimeout = setTimeout(createjs.proxy(this._handleTimeout, this), c), this._isAudio && (b.src = null, b.preload = "auto"), b.onerror = createjs.proxy(this._handleError, this), this._isAudio ? (b.onstalled = createjs.proxy(this._handleStalled, this), b.addEventListener("canplaythrough", this._tagCompleteProxy, !1)) : (b.onload = createjs.proxy(this._handleLoad, this), b.onreadystatechange = createjs.proxy(this._handleReadyStateChange, this));
var d = this.buildPath(a.src, a.values);
switch (a.type) {
case createjs.LoadQueue.CSS:
b.href = d;
break;
case createjs.LoadQueue.SVG:
b.data = d;
break;
default:
b.src = d
}
if (a.type == createjs.LoadQueue.JSONP || a.type == createjs.LoadQueue.JSON || a.type == createjs.LoadQueue.MANIFEST) {
if (null == a.callback) throw new Error("callback is required for loading JSONP requests.");
if (null != window[a.callback]) throw new Error('JSONP callback "' + a.callback + '" already exists on window. You need to specify a different callback. Or re-name the current one.');
window[a.callback] = createjs.proxy(this._handleJSONPLoad, this)
}(a.type == createjs.LoadQueue.SVG || a.type == createjs.LoadQueue.JSONP || a.type == createjs.LoadQueue.JSON || a.type == createjs.LoadQueue.MANIFEST || a.type == createjs.LoadQueue.JAVASCRIPT || a.type == createjs.LoadQueue.CSS) && (this._startTagVisibility = b.style.visibility, b.style.visibility = "hidden", (document.body || document.getElementsByTagName("body")[0]).appendChild(b)), null != b.load && b.load()
}, b._handleJSONPLoad = function(a) {
this._jsonResult = a
}, b._handleTimeout = function() {
this._clean();
var a = new createjs.Event("error");
a.text = "PRELOAD_TIMEOUT", this._sendError(a)
}, b._handleStalled = function() {}, b._handleError = function() {
this._clean();
var a = new createjs.Event("error");
this._sendError(a)
}, b._handleReadyStateChange = function() {
clearTimeout(this._loadTimeout);
var a = this.getItem().tag;
("loaded" == a.readyState || "complete" == a.readyState) && this._handleLoad()
}, b._handleLoad = function() {
if (!this._isCanceled()) {
var a = this.getItem(),
b = a.tag;
if (!(this.loaded || this._isAudio && 4 !== b.readyState)) {
switch (this.loaded = !0, a.type) {
case createjs.LoadQueue.SVG:
case createjs.LoadQueue.JSON:
case createjs.LoadQueue.JSONP:
case createjs.LoadQueue.MANIFEST:
case createjs.LoadQueue.CSS:
b.style.visibility = this._startTagVisibility, (document.body || document.getElementsByTagName("body")[0]).removeChild(b)
}
this._clean(), this._sendComplete()
}
}
}, b._clean = function() {
clearTimeout(this._loadTimeout);
var a = this.getItem(),
b = a.tag;
null != b && (b.onload = null, b.removeEventListener && b.removeEventListener("canplaythrough", this._tagCompleteProxy, !1), b.onstalled = null, b.onprogress = null, b.onerror = null, null != b.parentNode && a.type == createjs.LoadQueue.SVG && a.type == createjs.LoadQueue.JSON && a.type == createjs.LoadQueue.MANIFEST && a.type == createjs.LoadQueue.CSS && a.type == createjs.LoadQueue.JSONP && b.parentNode.removeChild(b));
var a = this.getItem();
(a.type == createjs.LoadQueue.JSONP || a.type == createjs.LoadQueue.MANIFEST) && (window[a.callback] = null)
}, b.toString = function() {
return "[PreloadJS TagLoader]"
}, createjs.TagLoader = a
}(), this.createjs = this.createjs || {},
function() {
"use strict";
var a = function(a, b) {
this.init(a, b)
},
b = a.prototype = new createjs.AbstractLoader;
b._request = null, b._loadTimeout = null, b._xhrLevel = 1, b._response = null, b._rawResponse = null, b._crossOrigin = "", b.init = function(a, b) {
this._item = a, this._crossOrigin = b, !this._createXHR(a)
}, b.getResult = function(a) {
return a && this._rawResponse ? this._rawResponse : this._response
}, b.cancel = function() {
this.canceled = !0, this._clean(), this._request.abort()
}, b.load = function() {
if (null == this._request) return this._handleError(), void 0;
if (this._request.onloadstart = createjs.proxy(this._handleLoadStart, this), this._request.onprogress = createjs.proxy(this._handleProgress, this), this._request.onabort = createjs.proxy(this._handleAbort, this), this._request.onerror = createjs.proxy(this._handleError, this), this._request.ontimeout = createjs.proxy(this._handleTimeout, this), 1 == this._xhrLevel) {
var a = createjs.LoadQueue.LOAD_TIMEOUT;
if (0 == a) a = createjs.LoadQueue.loadTimeout;
else try {
console.warn("LoadQueue.LOAD_TIMEOUT has been deprecated in favor of LoadQueue.loadTimeout")
} catch (b) {}
this._loadTimeout = setTimeout(createjs.proxy(this._handleTimeout, this), a)
}
this._request.onload = createjs.proxy(this._handleLoad, this), this._request.onreadystatechange = createjs.proxy(this._handleReadyStateChange, this);
try {
this._item.values && this._item.method != createjs.LoadQueue.GET ? this._item.method == createjs.LoadQueue.POST && this._request.send(this._formatQueryString(this._item.values)) : this._request.send()
} catch (c) {
var d = new createjs.Event("error");
d.error = c, this._sendError(d)
}
}, b.getAllResponseHeaders = function() {
return this._request.getAllResponseHeaders instanceof Function ? this._request.getAllResponseHeaders() : null
}, b.getResponseHeader = function(a) {
return this._request.getResponseHeader instanceof Function ? this._request.getResponseHeader(a) : null
}, b._handleProgress = function(a) {
if (a && !(a.loaded > 0 && 0 == a.total)) {
var b = new createjs.Event("progress");
b.loaded = a.loaded, b.total = a.total, this._sendProgress(b)
}
}, b._handleLoadStart = function() {
clearTimeout(this._loadTimeout), this._sendLoadStart()
}, b._handleAbort = function() {
this._clean();
var a = new createjs.Event("error");
a.text = "XHR_ABORTED", this._sendError(a)
}, b._handleError = function() {
this._clean();
var a = new createjs.Event("error");
this._sendError(a)
}, b._handleReadyStateChange = function() {
4 == this._request.readyState && this._handleLoad()
}, b._handleLoad = function() {
if (!this.loaded) {
if (this.loaded = !0, !this._checkError()) return this._handleError(), void 0;
this._response = this._getResponse(), this._clean();
var a = this._generateTag();
a && this._sendComplete()
}
}, b._handleTimeout = function(a) {
this._clean();
var b = new createjs.Event("error");
b.text = "PRELOAD_TIMEOUT", this._sendError(a)
}, b._checkError = function() {
var a = parseInt(this._request.status);
switch (a) {
case 404:
case 0:
return !1
}
return !0
}, b._getResponse = function() {
if (null != this._response) return this._response;
if (null != this._request.response) return this._request.response;
try {
if (null != this._request.responseText) return this._request.responseText
} catch (a) {}
try {
if (null != this._request.responseXML) return this._request.responseXML
} catch (a) {}
return null
}, b._createXHR = function(a) {
var b = this._isCrossDomain(a),
c = null;
if (b && window.XDomainRequest) c = new XDomainRequest;
else if (window.XMLHttpRequest) c = new XMLHttpRequest;
else try {
c = new ActiveXObject("Msxml2.XMLHTTP.6.0")
} catch (d) {
try {
c = new ActiveXObject("Msxml2.XMLHTTP.3.0")
} catch (d) {
try {
c = new ActiveXObject("Msxml2.XMLHTTP")
} catch (d) {
return !1
}
}
}
createjs.LoadQueue.isText(a.type) && c.overrideMimeType && c.overrideMimeType("text/plain; charset=utf-8"), this._xhrLevel = "string" == typeof c.responseType ? 2 : 1;
var e = null;
return e = a.method == createjs.LoadQueue.GET ? this.buildPath(a.src, a.values) : a.src, c.open(a.method || createjs.LoadQueue.GET, e, !0), b && c instanceof XMLHttpRequest && 1 == this._xhrLevel && c.setRequestHeader("Origin", location.origin), a.values && a.method == createjs.LoadQueue.POST && c.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"), createjs.LoadQueue.isBinary(a.type) && (c.responseType = "arraybuffer"), this._request = c, !0
}, b._clean = function() {
clearTimeout(this._loadTimeout);
var a = this._request;
a.onloadstart = null, a.onprogress = null, a.onabort = null, a.onerror = null, a.onload = null, a.ontimeout = null, a.onloadend = null, a.onreadystatechange = null
}, b._generateTag = function() {
var a = this._item.type,
b = this._item.tag;
switch (a) {
case createjs.LoadQueue.IMAGE:
return b.onload = createjs.proxy(this._handleTagReady, this), "" != this._crossOrigin && (b.crossOrigin = "Anonymous"), b.src = this.buildPath(this._item.src, this._item.values), this._rawResponse = this._response, this._response = b, !1;
case createjs.LoadQueue.JAVASCRIPT:
return b = document.createElement("script"), b.text = this._response, this._rawResponse = this._response, this._response = b, !0;
case createjs.LoadQueue.CSS:
var c = document.getElementsByTagName("head")[0];
if (c.appendChild(b), b.styleSheet) b.styleSheet.cssText = this._response;
else {
var d = document.createTextNode(this._response);
b.appendChild(d)
}
return this._rawResponse = this._response, this._response = b, !0;
case createjs.LoadQueue.XML:
var e = this._parseXML(this._response, "text/xml");
return this._rawResponse = this._response, this._response = e, !0;
case createjs.LoadQueue.SVG:
var e = this._parseXML(this._response, "image/svg+xml");
return this._rawResponse = this._response, null != e.documentElement ? (b.appendChild(e.documentElement), this._response = b) : this._response = e, !0;
case createjs.LoadQueue.JSON:
case createjs.LoadQueue.MANIFEST:
var f = {};
try {
f = JSON.parse(this._response)
} catch (g) {
f = g
}
return this._rawResponse = this._response, this._response = f, !0
}
return !0
}, b._parseXML = function(a, b) {
var c = null;
try {
if (window.DOMParser) {
var d = new DOMParser;
c = d.parseFromString(a, b)
} else c = new ActiveXObject("Microsoft.XMLDOM"), c.async = !1, c.loadXML(a)
} catch (e) {}
return c
}, b._handleTagReady = function() {
this._sendComplete()
}, b.toString = function() {
return "[PreloadJS XHRLoader]"
}, createjs.XHRLoader = a
}(), "object" != typeof JSON && (JSON = {}),
function() {
"use strict";
function f(a) {
return 10 > a ? "0" + a : a
}
function quote(a) {
return escapable.lastIndex = 0, escapable.test(a) ? '"' + a.replace(escapable, function(a) {
var b = meta[a];
return "string" == typeof b ? b : "\\u" + ("0000" + a.charCodeAt(0).toString(16)).slice(-4)
}) + '"' : '"' + a + '"'
}
function str(a, b) {
var c, d, e, f, g, h = gap,
i = b[a];
switch (i && "object" == typeof i && "function" == typeof i.toJSON && (i = i.toJSON(a)), "function" == typeof rep && (i = rep.call(b, a, i)), typeof i) {
case "string":
return quote(i);
case "number":
return isFinite(i) ? String(i) : "null";
case "boolean":
case "null":
return String(i);
case "object":
if (!i) return "null";
if (gap += indent, g = [], "[object Array]" === Object.prototype.toString.apply(i)) {
for (f = i.length, c = 0; f > c; c += 1) g[c] = str(c, i) || "null";
return e = 0 === g.length ? "[]" : gap ? "[\n" + gap + g.join(",\n" + gap) + "\n" + h + "]" : "[" + g.join(",") + "]", gap = h, e
}
if (rep && "object" == typeof rep)
for (f = rep.length, c = 0; f > c; c += 1) "string" == typeof rep[c] && (d = rep[c], e = str(d, i), e && g.push(quote(d) + (gap ? ": " : ":") + e));
else
for (d in i) Object.prototype.hasOwnProperty.call(i, d) && (e = str(d, i), e && g.push(quote(d) + (gap ? ": " : ":") + e));
return e = 0 === g.length ? "{}" : gap ? "{\n" + gap + g.join(",\n" + gap) + "\n" + h + "}" : "{" + g.join(",") + "}", gap = h, e
}
}
"function" != typeof Date.prototype.toJSON && (Date.prototype.toJSON = function() {
return isFinite(this.valueOf()) ? this.getUTCFullYear() + "-" + f(this.getUTCMonth() + 1) + "-" + f(this.getUTCDate()) + "T" + f(this.getUTCHours()) + ":" + f(this.getUTCMinutes()) + ":" + f(this.getUTCSeconds()) + "Z" : null
}, String.prototype.toJSON = Number.prototype.toJSON = Boolean.prototype.toJSON = function() {
return this.valueOf()
});
var cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,
escapable = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,
gap, indent, meta = {
"\b": "\\b",
" ": "\\t",
"\n": "\\n",
"\f": "\\f",
"\r": "\\r",
'"': '\\"',
"\\": "\\\\"
},
rep;
"function" != typeof JSON.stringify && (JSON.stringify = function(a, b, c) {
var d;
if (gap = "", indent = "", "number" == typeof c)
for (d = 0; c > d; d += 1) indent += " ";
else "string" == typeof c && (indent = c);
if (rep = b, b && "function" != typeof b && ("object" != typeof b || "number" != typeof b.length)) throw new Error("JSON.stringify");
return str("", {
"": a
})
}), "function" != typeof JSON.parse && (JSON.parse = function(text, reviver) {
function walk(a, b) {
var c, d, e = a[b];
if (e && "object" == typeof e)
for (c in e) Object.prototype.hasOwnProperty.call(e, c) && (d = walk(e, c), void 0 !== d ? e[c] = d : delete e[c]);
return reviver.call(a, b, e)
}
var j;
if (text = String(text), cx.lastIndex = 0, cx.test(text) && (text = text.replace(cx, function(a) {
return "\\u" + ("0000" + a.charCodeAt(0).toString(16)).slice(-4)
})), /^[\],:{}\s]*$/.test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, "@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, "]").replace(/(?:^|:|,)(?:\s*\[)+/g, ""))) return j = eval("(" + text + ")"), "function" == typeof reviver ? walk({
"": j
}, "") : j;
throw new SyntaxError("JSON.parse")
})
}(), this.createjs = this.createjs || {},
function() {
var a = createjs.SoundJS = createjs.SoundJS || {};
a.version = "NEXT", a.buildDate = "Thu, 12 Dec 2013 23:37:06 GMT"
}(), this.createjs = this.createjs || {},
function() {
"use strict";
function a() {
throw "Sound cannot be instantiated"
}
function b(a, b) {
this.init(a, b)
}
function c() {
this.isDefault = !0, this.addEventListener = this.removeEventListener = this.removeAllEventListeners = this.dispatchEvent = this.hasEventListener = this._listeners = this._interrupt = this._playFailed = this.pause = this.resume = this.play = this._beginPlaying = this._cleanUp = this.stop = this.setMasterVolume = this.setVolume = this.mute = this.setMute = this.getMute = this.setPan = this.getPosition = this.setPosition = this.playFailed = function() {
return !1
}, this.getVolume = this.getPan = this.getDuration = function() {
return 0
}, this.playState = a.PLAY_FAILED, this.toString = function() {
return "[Sound Default Sound Instance]"
}
}
function d() {}
var e = a;
e.DELIMITER = "|", e.INTERRUPT_ANY = "any", e.INTERRUPT_EARLY = "early", e.INTERRUPT_LATE = "late", e.INTERRUPT_NONE = "none", e.PLAY_INITED = "playInited", e.PLAY_SUCCEEDED = "playSucceeded", e.PLAY_INTERRUPTED = "playInterrupted", e.PLAY_FINISHED = "playFinished", e.PLAY_FAILED = "playFailed", e.SUPPORTED_EXTENSIONS = ["mp3", "ogg", "mpeg", "wav", "m4a", "mp4", "aiff", "wma", "mid"], e.EXTENSION_MAP = {
m4a: "mp4"
}, e.FILE_PATTERN = /^(?:(\w+:)\/{2}(\w+(?:\.\w+)*\/?))?([/.]*?(?:[^?]+)?\/)?((?:[^/?]+)\.(\w+))(?:\?(\S+)?)?$/, e.defaultInterruptBehavior = e.INTERRUPT_NONE, e.alternateExtensions = [], e._lastID = 0, e.activePlugin = null, e._pluginsRegistered = !1, e._masterVolume = 1, e._masterMute = !1, e._instances = [], e._idHash = {}, e._preloadHash = {}, e._defaultSoundInstance = null, e.addEventListener = null, e.removeEventListener = null, e.removeAllEventListeners = null, e.dispatchEvent = null, e.hasEventListener = null, e._listeners = null, createjs.EventDispatcher.initialize(e), e._sendFileLoadEvent = function(a) {
if (e._preloadHash[a])
for (var b = 0, c = e._preloadHash[a].length; c > b; b++) {
var d = e._preloadHash[a][b];
if (e._preloadHash[a][b] = !0, e.hasEventListener("fileload")) {
var f = new createjs.Event("fileload");
f.src = d.src, f.id = d.id, f.data = d.data, e.dispatchEvent(f)
}
}
}, e.getPreloadHandlers = function() {
return {
callback: createjs.proxy(e.initLoad, e),
types: ["sound"],
extensions: e.SUPPORTED_EXTENSIONS
}
}, e.registerPlugin = function(a) {
try {
console.log("createjs.Sound.registerPlugin has been deprecated. Please use registerPlugins.")
} catch (b) {}
return e._registerPlugin(a)
}, e._registerPlugin = function(a) {
return e._pluginsRegistered = !0, null == a ? !1 : a.isSupported() ? (e.activePlugin = new a, !0) : !1
}, e.registerPlugins = function(a) {
for (var b = 0, c = a.length; c > b; b++) {
var d = a[b];
if (e._registerPlugin(d)) return !0
}
return !1
}, e.initializeDefaultPlugins = function() {
return null != e.activePlugin ? !0 : e._pluginsRegistered ? !1 : e.registerPlugins([createjs.WebAudioPlugin, createjs.HTMLAudioPlugin]) ? !0 : !1
}, e.isReady = function() {
return null != e.activePlugin
}, e.getCapabilities = function() {
return null == e.activePlugin ? null : e.activePlugin._capabilities
}, e.getCapability = function(a) {
return null == e.activePlugin ? null : e.activePlugin._capabilities[a]
}, e.initLoad = function(a, b, c, d, f) {
a = a.replace(f, "");
var g = e.registerSound(a, c, d, !1, f);
return null == g ? !1 : g
}, e.registerSound = function(a, c, d, f, g) {
if (!e.initializeDefaultPlugins()) return !1;
if (a instanceof Object && (g = c, c = a.id, d = a.data, a = a.src), e.alternateExtensions.length) var h = e._parsePath2(a, "sound", c, d);
else var h = e._parsePath(a, "sound", c, d);
if (null == h) return !1;
null != g && (a = g + a, h.src = g + h.src), null != c && (e._idHash[c] = h.src);
var i = null;
null != d && (isNaN(d.channels) ? isNaN(d) || (i = parseInt(d)) : i = parseInt(d.channels));
var j = e.activePlugin.register(h.src, i);
if (null != j && (null != j.numChannels && (i = j.numChannels), b.create(h.src, i), null != d && isNaN(d) ? d.channels = h.data.channels = i || b.maxPerChannel() : d = h.data = i || b.maxPerChannel(), null != j.tag ? h.tag = j.tag : j.src && (h.src = j.src), null != j.completeHandler && (h.completeHandler = j.completeHandler), j.type && (h.type = j.type)), 0 != f)
if (e._preloadHash[h.src] || (e._preloadHash[h.src] = []), e._preloadHash[h.src].push({
src: a,
id: c,
data: d
}), 1 == e._preloadHash[h.src].length) e.activePlugin.preload(h.src, j);
else if (1 == e._preloadHash[h.src][0]) return !0;
return h
}, e.registerManifest = function(a, b) {
for (var c = [], d = 0, e = a.length; e > d; d++) c[d] = createjs.Sound.registerSound(a[d].src, a[d].id, a[d].data, a[d].preload, b);
return c
}, e.removeSound = function(a, c) {
if (null == e.activePlugin) return !1;
if (a instanceof Object && (a = a.src), a = e._getSrcById(a), e.alternateExtensions.length) var d = e._parsePath2(a);
else var d = e._parsePath(a);
if (null == d) return !1;
null != c && (d.src = c + d.src), a = d.src;
for (var f in e._idHash) e._idHash[f] == a && delete e._idHash[f];
return b.removeSrc(a), delete e._preloadHash[a], e.activePlugin.removeSound(a), !0
}, e.removeManifest = function(a, b) {
for (var c = [], d = 0, e = a.length; e > d; d++) c[d] = createjs.Sound.removeSound(a[d].src, b);
return c
}, e.removeAllSounds = function() {
e._idHash = {}, e._preloadHash = {}, b.removeAll(), e.activePlugin.removeAllSounds()
}, e.loadComplete = function(a) {
if (e.alternateExtensions.length) var b = e._parsePath2(a, "sound");
else var b = e._parsePath(a, "sound");
return a = b ? e._getSrcById(b.src) : e._getSrcById(a), 1 == e._preloadHash[a][0]
}, e._parsePath = function(a, b, c, d) {
"string" != typeof a && (a = a.toString());
var f = a.split(e.DELIMITER);
if (f.length > 1) try {
console.log('createjs.Sound.DELIMITER "|" loading approach has been deprecated. Please use the new alternateExtensions property.')
} catch (g) {}
for (var h = {
type: b || "sound",
id: c,
data: d
}, i = e.getCapabilities(), j = 0, k = f.length; k > j; j++) {
var l = f[j],
m = l.match(e.FILE_PATTERN);
if (null == m) return !1;
var n = m[4],
o = m[5];
if (i[o] && createjs.indexOf(e.SUPPORTED_EXTENSIONS, o) > -1) return h.name = n, h.src = l, h.extension = o, h
}
return null
}, e._parsePath2 = function(a, b, c, d) {
"string" != typeof a && (a = a.toString());
var f = a.match(e.FILE_PATTERN);
if (null == f) return !1;
for (var g = f[4], h = f[5], i = e.getCapabilities(), j = 0; !i[h];)
if (h = e.alternateExtensions[j++], j > e.alternateExtensions.length) return null;
a = a.replace("." + f[5], "." + h);
var k = {
type: b || "sound",
id: c,
data: d
};
return k.name = g, k.src = a, k.extension = h, k
}, e.play = function(a, b, c, d, f, g, h) {
var i = e.createInstance(a),
j = e._playInstance(i, b, c, d, f, g, h);
return j || i.playFailed(), i
}, e.createInstance = function(c) {
if (!e.initializeDefaultPlugins()) return e._defaultSoundInstance;
if (c = e._getSrcById(c), e.alternateExtensions.length) var d = e._parsePath2(c, "sound");
else var d = e._parsePath(c, "sound");
var f = null;
return null != d && null != d.src ? (b.create(d.src), f = e.activePlugin.create(d.src)) : f = a._defaultSoundInstance, f.uniqueId = e._lastID++, f
}, e.setVolume = function(a) {
if (null == Number(a)) return !1;
if (a = Math.max(0, Math.min(1, a)), e._masterVolume = a, !this.activePlugin || !this.activePlugin.setVolume || !this.activePlugin.setVolume(a))
for (var b = this._instances, c = 0, d = b.length; d > c; c++) b[c].setMasterVolume(a)
}, e.getVolume = function() {
return e._masterVolume
}, e.setMute = function(a) {
if (null == a || void 0 == a) return !1;
if (this._masterMute = a, !this.activePlugin || !this.activePlugin.setMute || !this.activePlugin.setMute(a))
for (var b = this._instances, c = 0, d = b.length; d > c; c++) b[c].setMasterMute(a);
return !0
}, e.getMute = function() {
return this._masterMute
}, e.stop = function() {
for (var a = this._instances, b = a.length; b--;) a[b].stop()
}, e._playInstance = function(a, b, c, d, f, g, h) {
if (b instanceof Object && (c = b.delay, d = b.offset, f = b.loop, g = b.volume, h = b.pan, b = b.interrupt), b = b || e.defaultInterruptBehavior, null == c && (c = 0), null == d && (d = a.getPosition()), null == f && (f = 0), null == g && (g = a.volume), null == h && (h = a.pan), 0 == c) {
var i = e._beginPlaying(a, b, d, f, g, h);
if (!i) return !1
} else {
var j = setTimeout(function() {
e._beginPlaying(a, b, d, f, g, h)
}, c);
a._delayTimeoutId = j
}
return this._instances.push(a), !0
}, e._beginPlaying = function(a, c, d, e, f, g) {
if (!b.add(a, c)) return !1;
var h = a._beginPlaying(d, e, f, g);
if (!h) {
var i = createjs.indexOf(this._instances, a);
return i > -1 && this._instances.splice(i, 1), !1
}
return !0
}, e._getSrcById = function(a) {
return null == e._idHash || null == e._idHash[a] ? a : e._idHash[a]
}, e._playFinished = function(a) {
b.remove(a);
var c = createjs.indexOf(this._instances, a);
c > -1 && this._instances.splice(c, 1)
}, createjs.Sound = a, b.channels = {}, b.create = function(a, c) {
var d = b.get(a);
return null == d ? (b.channels[a] = new b(a, c), !0) : !1
}, b.removeSrc = function(a) {
var c = b.get(a);
return null == c ? !1 : (c.removeAll(), delete b.channels[a], !0)
}, b.removeAll = function() {
for (var a in b.channels) b.channels[a].removeAll();
b.channels = {}
}, b.add = function(a, c) {
var d = b.get(a.src);
return null == d ? !1 : d.add(a, c)
}, b.remove = function(a) {
var c = b.get(a.src);
return null == c ? !1 : (c.remove(a), !0)
}, b.maxPerChannel = function() {
return f.maxDefault
}, b.get = function(a) {
return b.channels[a]
};
var f = b.prototype;
f.src = null, f.max = null, f.maxDefault = 100, f.length = 0, f.init = function(a, b) {
this.src = a, this.max = b || this.maxDefault, -1 == this.max && (this.max = this.maxDefault), this._instances = []
}, f.get = function(a) {
return this._instances[a]
}, f.add = function(a, b) {
return this.getSlot(b, a) ? (this._instances.push(a), this.length++, !0) : !1
}, f.remove = function(a) {
var b = createjs.indexOf(this._instances, a);
return -1 == b ? !1 : (this._instances.splice(b, 1), this.length--, !0)
}, f.removeAll = function() {
for (var a = this.length - 1; a >= 0; a--) this._instances[a].stop()
}, f.getSlot = function(b) {
for (var c, d, e = 0, f = this.max; f > e; e++) {
if (c = this.get(e), null == c) return !0;
(b != a.INTERRUPT_NONE || c.playState == a.PLAY_FINISHED) && (0 != e ? c.playState == a.PLAY_FINISHED || c.playState == a.PLAY_INTERRUPTED || c.playState == a.PLAY_FAILED ? d = c : (b == a.INTERRUPT_EARLY && c.getPosition() < d.getPosition() || b == a.INTERRUPT_LATE && c.getPosition() > d.getPosition()) && (d = c) : d = c)
}
return null != d ? (d._interrupt(), this.remove(d), !0) : !1
}, f.toString = function() {
return "[Sound SoundChannel]"
}, a._defaultSoundInstance = new c, d.init = function() {
var a = window.navigator.userAgent;
d.isFirefox = a.indexOf("Firefox") > -1, d.isOpera = null != window.opera, d.isChrome = a.indexOf("Chrome") > -1, d.isIOS = a.indexOf("iPod") > -1 || a.indexOf("iPhone") > -1 || a.indexOf("iPad") > -1, d.isAndroid = a.indexOf("Android") > -1, d.isBlackberry = a.indexOf("Blackberry") > -1
}, d.init(), createjs.Sound.BrowserDetect = d
}(), this.createjs = this.createjs || {},
function() {
"use strict";
function a() {
this._init()
}
var b = a;
b._capabilities = null, b.isSupported = function() {
var a = createjs.Sound.BrowserDetect.isIOS || createjs.Sound.BrowserDetect.isAndroid || createjs.Sound.BrowserDetect.isBlackberry;
return "file:" != location.protocol || a || this._isFileXHRSupported() ? (b._generateCapabilities(), null == b.context ? !1 : !0) : !1
}, b._isFileXHRSupported = function() {
var a = !0,
b = new XMLHttpRequest;
try {
b.open("GET", "fail.fail", !1)
} catch (c) {
return a = !1
}
b.onerror = function() {
a = !1
}, b.onload = function() {
a = 404 == this.status || 200 == this.status || 0 == this.status && "" != this.response
};
try {
b.send()
} catch (c) {
a = !1
}
return a
}, b._generateCapabilities = function() {
if (null == b._capabilities) {
var a = document.createElement("audio");
if (null == a.canPlayType) return null;
if (window.webkitAudioContext) b.context = new webkitAudioContext;
else {
if (!window.AudioContext) return null;
b.context = new AudioContext
}
b._compatibilitySetUp(), b.playEmptySound(), b._capabilities = {
panning: !0,
volume: !0,
tracks: -1
};
for (var c = createjs.Sound.SUPPORTED_EXTENSIONS, d = createjs.Sound.EXTENSION_MAP, e = 0, f = c.length; f > e; e++) {
var g = c[e],
h = d[g] || g;
b._capabilities[g] = "no" != a.canPlayType("audio/" + g) && "" != a.canPlayType("audio/" + g) || "no" != a.canPlayType("audio/" + h) && "" != a.canPlayType("audio/" + h)
}
b.context.destination.numberOfChannels < 2 && (b._capabilities.panning = !1), b.dynamicsCompressorNode = b.context.createDynamicsCompressor(), b.dynamicsCompressorNode.connect(b.context.destination), b.gainNode = b.context.createGain(), b.gainNode.connect(b.dynamicsCompressorNode)
}
}, b._compatibilitySetUp = function() {
if (!b.context.createGain) {
b.context.createGain = b.context.createGainNode;
var a = b.context.createBufferSource();
a.__proto__.start = a.__proto__.noteGrainOn, a.__proto__.stop = a.__proto__.noteOff, this._panningModel = 0
}
}, b.playEmptySound = function() {
var a = this.context.createBuffer(1, 1, 22050),
b = this.context.createBufferSource();
b.buffer = a, b.connect(this.context.destination), b.start(0, 0, 0)
};
var c = a.prototype;
c._capabilities = null, c._volume = 1, c.context = null, c._panningModel = "equalpower", c.dynamicsCompressorNode = null, c.gainNode = null, c._arrayBuffers = null, c._init = function() {
this._capabilities = b._capabilities, this._arrayBuffers = {}, this.context = b.context, this.gainNode = b.gainNode, this.dynamicsCompressorNode = b.dynamicsCompressorNode
}, c.register = function(a) {
this._arrayBuffers[a] = !0;
var b = new createjs.WebAudioPlugin.Loader(a, this);
return {
tag: b
}
}, c.isPreloadStarted = function(a) {
return null != this._arrayBuffers[a]
}, c.isPreloadComplete = function(a) {
return !(null == this._arrayBuffers[a] || 1 == this._arrayBuffers[a])
}, c.removeSound = function(a) {
delete this._arrayBuffers[a]
}, c.removeAllSounds = function() {
this._arrayBuffers = {}
}, c.addPreloadResults = function(a, b) {
this._arrayBuffers[a] = b
}, c._handlePreloadComplete = function() {
createjs.Sound._sendFileLoadEvent(this.src)
}, c.preload = function(a) {
this._arrayBuffers[a] = !0;
var b = new createjs.WebAudioPlugin.Loader(a, this);
b.onload = this._handlePreloadComplete, b.load()
}, c.create = function(a) {
return this.isPreloadStarted(a) || this.preload(a), new createjs.WebAudioPlugin.SoundInstance(a, this)
}, c.setVolume = function(a) {
return this._volume = a, this._updateVolume(), !0
}, c._updateVolume = function() {
var a = createjs.Sound._masterMute ? 0 : this._volume;
a != this.gainNode.gain.value && (this.gainNode.gain.value = a)
}, c.getVolume = function() {
return this._volume
}, c.setMute = function() {
return this._updateVolume(), !0
}, c.toString = function() {
return "[WebAudioPlugin]"
}, createjs.WebAudioPlugin = a
}(),
function() {
"use strict";
function a(a, b) {
this._init(a, b)
}
var b = a.prototype = new createjs.EventDispatcher;
b.src = null, b.uniqueId = -1, b.playState = null, b._owner = null, b._offset = 0, b._delay = 0, b._volume = 1;
try {
Object.defineProperty(b, "volume", {
get: function() {
return this._volume
},
set: function(a) {
return null == Number(a) ? !1 : (a = Math.max(0, Math.min(1, a)), this._volume = a, this._updateVolume(), void 0)
}
})
} catch (c) {}
b._pan = 0;
try {
Object.defineProperty(b, "pan", {
get: function() {
return this._pan
},
set: function(a) {
return this._owner._capabilities.panning && null != Number(a) ? (a = Math.max(-1, Math.min(1, a)), this._pan = a, this.panNode.setPosition(a, 0, -.5), void 0) : !1
}
})
} catch (c) {}
b._duration = 0, b._remainingLoops = 0, b._delayTimeoutId = null, b._soundCompleteTimeout = null, b.gainNode = null, b.panNode = null, b.sourceNode = null, b._sourceNodeNext = null, b._muted = !1, b._paused = !1, b._startTime = 0, b._endedHandler = null, b._sendEvent = function(a) {
var b = new createjs.Event(a);
this.dispatchEvent(b)
}, b._init = function(a, b) {
this._owner = b, this.src = a, this.gainNode = this._owner.context.createGain(), this.panNode = this._owner.context.createPanner(), this.panNode.panningModel = this._owner._panningModel, this.panNode.connect(this.gainNode), this._owner.isPreloadComplete(this.src) && (this._duration = 1e3 * this._owner._arrayBuffers[this.src].duration), this._endedHandler = createjs.proxy(this._handleSoundComplete, this)
}, b._cleanUp = function() {
this.sourceNode && this.playState == createjs.Sound.PLAY_SUCCEEDED && (this.sourceNode = this._cleanUpAudioNode(this.sourceNode), this._sourceNodeNext = this._cleanUpAudioNode(this._sourceNodeNext)), 0 != this.gainNode.numberOfOutputs && this.gainNode.disconnect(0), clearTimeout(this._delayTimeoutId), clearTimeout(this._soundCompleteTimeout), this._startTime = 0, null != window.createjs && createjs.Sound._playFinished(this)
}, b._cleanUpAudioNode = function(a) {
return a && (a.stop(0), a.disconnect(this.panNode), a = null), a
}, b._interrupt = function() {
this._cleanUp(), this.playState = createjs.Sound.PLAY_INTERRUPTED, this._paused = !1, this._sendEvent("interrupted")
}, b._handleSoundReady = function() {
if (null != window.createjs) {
if (1e3 * this._offset > this.getDuration()) return this.playFailed(), void 0;
this._offset < 0 && (this._offset = 0), this.playState = createjs.Sound.PLAY_SUCCEEDED, this._paused = !1, this.gainNode.connect(this._owner.gainNode);
var a = this._owner._arrayBuffers[this.src].duration;
this.sourceNode = this._createAndPlayAudioNode(this._owner.context.currentTime - a, this._offset), this._duration = 1e3 * a, this._startTime = this.sourceNode.startTime - this._offset, this._soundCompleteTimeout = setTimeout(this._endedHandler, 1e3 * (a - this._offset)), 0 != this._remainingLoops && (this._sourceNodeNext = this._createAndPlayAudioNode(this._startTime, 0))
}
}, b._createAndPlayAudioNode = function(a, b) {
var c = this._owner.context.createBufferSource();
return c.buffer = this._owner._arrayBuffers[this.src], c.connect(this.panNode), this._owner.context.currentTime, c.startTime = a + c.buffer.duration, c.start(c.startTime, b, c.buffer.duration - b), c
}, b.play = function(a, b, c, d, e, f) {
this._cleanUp(), createjs.Sound._playInstance(this, a, b, c, d, e, f)
}, b._beginPlaying = function(a, b, c, d) {
return null != window.createjs && this.src ? (this._offset = a / 1e3, this._remainingLoops = b, this.volume = c, this.pan = d, this._owner.isPreloadComplete(this.src) ? (this._handleSoundReady(null), this._sendEvent("succeeded"), 1) : (this.playFailed(), void 0)) : void 0
}, b.pause = function() {
return this._paused || this.playState != createjs.Sound.PLAY_SUCCEEDED ? !1 : (this._paused = !0, this._offset = this._owner.context.currentTime - this._startTime, this._cleanUpAudioNode(this.sourceNode), this._cleanUpAudioNode(this._sourceNodeNext), 0 != this.gainNode.numberOfOutputs && this.gainNode.disconnect(), clearTimeout(this._delayTimeoutId), clearTimeout(this._soundCompleteTimeout), !0)
}, b.resume = function() {
return this._paused ? (this._handleSoundReady(null), !0) : !1
}, b.stop = function() {
return this._cleanUp(), this.playState = createjs.Sound.PLAY_FINISHED, this._offset = 0, !0
}, b.setVolume = function(a) {
return this.volume = a, !0
}, b._updateVolume = function() {
var a = this._muted ? 0 : this._volume;
return a != this.gainNode.gain.value ? (this.gainNode.gain.value = a, !0) : !1
}, b.getVolume = function() {
return this.volume
}, b.setMute = function(a) {
return null == a || void 0 == a ? !1 : (this._muted = a, this._updateVolume(), !0)
}, b.getMute = function() {
return this._muted
}, b.setPan = function(a) {
return this.pan = a, this.pan != a ? !1 : void 0
}, b.getPan = function() {
return this.pan
}, b.getPosition = function() {
if (this._paused || null == this.sourceNode) var a = this._offset;
else var a = this._owner.context.currentTime - this._startTime;
return 1e3 * a
}, b.setPosition = function(a) {
return this._offset = a / 1e3, this.sourceNode && this.playState == createjs.Sound.PLAY_SUCCEEDED && (this._cleanUpAudioNode(this.sourceNode), this._cleanUpAudioNode(this._sourceNodeNext), clearTimeout(this._soundCompleteTimeout)), this._paused || this.playState != createjs.Sound.PLAY_SUCCEEDED || this._handleSoundReady(null), !0
}, b.getDuration = function() {
return this._duration
}, b._handleSoundComplete = function() {
return this._offset = 0, 0 != this._remainingLoops ? (this._remainingLoops--, this._sourceNodeNext ? (this._cleanUpAudioNode(this.sourceNode), this.sourceNode = this._sourceNodeNext, this._startTime = this.sourceNode.startTime, this._sourceNodeNext = this._createAndPlayAudioNode(this._startTime, 0), this._soundCompleteTimeout = setTimeout(this._endedHandler, this._duration)) : this._handleSoundReady(null), this._sendEvent("loop"), void 0) : (null != window.createjs && (this._cleanUp(), this.playState = createjs.Sound.PLAY_FINISHED, this._sendEvent("complete")), void 0)
}, b.playFailed = function() {
null != window.createjs && (this._cleanUp(), this.playState = createjs.Sound.PLAY_FAILED, this._sendEvent("failed"))
}, b.toString = function() {
return "[WebAudioPlugin SoundInstance]"
}, createjs.WebAudioPlugin.SoundInstance = a
}(),
function() {
"use strict";
function a(a, b) {
this._init(a, b)
}
var b = a.prototype;
b.request = null, b.owner = null, b.progress = -1, b.src = null, b.originalSrc = null, b.result = null, b.onload = null, b.onprogress = null, b.onError = null, b._init = function(a, b) {
this.src = a, this.originalSrc = a, this.owner = b
}, b.load = function(a) {
null != a && (this.src = a), this.request = new XMLHttpRequest, this.request.open("GET", this.src, !0), this.request.responseType = "arraybuffer", this.request.onload = createjs.proxy(this.handleLoad, this), this.request.onError = createjs.proxy(this.handleError, this), this.request.onprogress = createjs.proxy(this.handleProgress, this), this.request.send()
}, b.handleProgress = function(a, b) {
this.progress = a / b, null != this.onprogress && this.onprogress({
loaded: a,
total: b,
progress: this.progress
})
}, b.handleLoad = function() {
this.owner.context.decodeAudioData(this.request.response, createjs.proxy(this.handleAudioDecoded, this), createjs.proxy(this.handleError, this))
}, b.handleAudioDecoded = function(a) {
this.progress = 1, this.result = a, this.src = this.originalSrc, this.owner.addPreloadResults(this.src, this.result), this.onload && this.onload()
}, b.handleError = function(a) {
this.owner.removeSound(this.src), this.onerror && this.onerror(a)
}, b.toString = function() {
return "[WebAudioPlugin Loader]"
}, createjs.WebAudioPlugin.Loader = a
}(), this.createjs = this.createjs || {},
function() {
"use strict";
function a() {
this._init()
}
var b = a;
b.MAX_INSTANCES = 30, b._AUDIO_READY = "canplaythrough", b._AUDIO_ENDED = "ended", b._AUDIO_SEEKED = "seeked", b._AUDIO_STALLED = "stalled", b._capabilities = null, b.enableIOS = !1, b.isSupported = function() {
if (createjs.Sound.BrowserDetect.isIOS && !b.enableIOS) return !1;
b._generateCapabilities();
var a = b.tag;
return null == a || null == b._capabilities ? !1 : !0
}, b._generateCapabilities = function() {
if (null == b._capabilities) {
var a = b.tag = document.createElement("audio");
if (null == a.canPlayType) return null;
b._capabilities = {
panning: !0,
volume: !0,
tracks: -1
};
for (var c = createjs.Sound.SUPPORTED_EXTENSIONS, d = createjs.Sound.EXTENSION_MAP, e = 0, f = c.length; f > e; e++) {
var g = c[e],
h = d[g] || g;
b._capabilities[g] = "no" != a.canPlayType("audio/" + g) && "" != a.canPlayType("audio/" + g) || "no" != a.canPlayType("audio/" + h) && "" != a.canPlayType("audio/" + h)
}
}
};
var c = a.prototype;
c._capabilities = null, c._audioSources = null, c.defaultNumChannels = 2, c.loadedHandler = null, c._init = function() {
this._capabilities = b._capabilities, this._audioSources = {}
}, c.register = function(a, b) {
this._audioSources[a] = !0;
for (var c = createjs.HTMLAudioPlugin.TagPool.get(a), d = null, e = b || this.defaultNumChannels, f = 0; e > f; f++) d = this._createTag(a), c.add(d);
if (d.id = a, this.loadedHandler = createjs.proxy(this._handleTagLoad, this), d.addEventListener && d.addEventListener("canplaythrough", this.loadedHandler), null == d.onreadystatechange) d.onreadystatechange = this.loadedHandler;
else {
var g = d.onreadystatechange;
d.onreadystatechange = function() {
g(), this.loadedHandler()
}
}
return {
tag: d,
numChannels: e
}
}, c._handleTagLoad = function(a) {
a.target.removeEventListener && a.target.removeEventListener("canplaythrough", this.loadedHandler), a.target.onreadystatechange = null, a.target.src != a.target.id && createjs.HTMLAudioPlugin.TagPool.checkSrc(a.target.id)
}, c._createTag = function(a) {
var b = document.createElement("audio");
return b.autoplay = !1, b.preload = "none", b.src = a, b
}, c.removeSound = function(a) {
delete this._audioSources[a], createjs.HTMLAudioPlugin.TagPool.remove(a)
}, c.removeAllSounds = function() {
this._audioSources = {}, createjs.HTMLAudioPlugin.TagPool.removeAll()
}, c.create = function(a) {
if (!this.isPreloadStarted(a)) {
var b = createjs.HTMLAudioPlugin.TagPool.get(a),
c = this._createTag(a);
c.id = a, b.add(c), this.preload(a, {
tag: c
})
}
return new createjs.HTMLAudioPlugin.SoundInstance(a, this)
}, c.isPreloadStarted = function(a) {
return null != this._audioSources[a]
}, c.preload = function(a, b) {
this._audioSources[a] = !0, new createjs.HTMLAudioPlugin.Loader(a, b.tag)
}, c.toString = function() {
return "[HTMLAudioPlugin]"
}, createjs.HTMLAudioPlugin = a
}(),
function() {
"use strict";
function a(a, b) {
this._init(a, b)
}
var b = a.prototype = new createjs.EventDispatcher;
b.src = null, b.uniqueId = -1, b.playState = null, b._owner = null, b.loaded = !1, b._offset = 0, b._delay = 0, b._volume = 1;
try {
Object.defineProperty(b, "volume", {
get: function() {
return this._volume
},
set: function(a) {
null != Number(a) && (a = Math.max(0, Math.min(1, a)), this._volume = a, this._updateVolume())
}
})
} catch (c) {}
b.pan = 0, b._duration = 0, b._remainingLoops = 0, b._delayTimeoutId = null, b.tag = null, b._muted = !1, b._paused = !1, b._endedHandler = null, b._readyHandler = null, b._stalledHandler = null, b.loopHandler = null, b._init = function(a, b) {
this.src = a, this._owner = b, this._endedHandler = createjs.proxy(this._handleSoundComplete, this), this._readyHandler = createjs.proxy(this._handleSoundReady, this), this._stalledHandler = createjs.proxy(this._handleSoundStalled, this), this.loopHandler = createjs.proxy(this.handleSoundLoop, this)
}, b._sendEvent = function(a) {
var b = new createjs.Event(a);
this.dispatchEvent(b)
}, b._cleanUp = function() {
var a = this.tag;
if (null != a) {
a.pause(), a.removeEventListener(createjs.HTMLAudioPlugin._AUDIO_ENDED, this._endedHandler, !1), a.removeEventListener(createjs.HTMLAudioPlugin._AUDIO_READY, this._readyHandler, !1), a.removeEventListener(createjs.HTMLAudioPlugin._AUDIO_SEEKED, this.loopHandler, !1);
try {
a.currentTime = 0
} catch (b) {}
createjs.HTMLAudioPlugin.TagPool.setInstance(this.src, a), this.tag = null
}
clearTimeout(this._delayTimeoutId), null != window.createjs && createjs.Sound._playFinished(this)
}, b._interrupt = function() {
null != this.tag && (this.playState = createjs.Sound.PLAY_INTERRUPTED, this._cleanUp(), this._paused = !1, this._sendEvent("interrupted"))
}, b.play = function(a, b, c, d, e, f) {
this._cleanUp(), createjs.Sound._playInstance(this, a, b, c, d, e, f)
}, b._beginPlaying = function(a, b, c, d) {
if (null == window.createjs) return -1;
var e = this.tag = createjs.HTMLAudioPlugin.TagPool.getInstance(this.src);
return null == e ? (this.playFailed(), -1) : (e.addEventListener(createjs.HTMLAudioPlugin._AUDIO_ENDED, this._endedHandler, !1), this._offset = a, this.volume = c, this.pan = d, this._updateVolume(), this._remainingLoops = b, 4 !== e.readyState ? (e.addEventListener(createjs.HTMLAudioPlugin._AUDIO_READY, this._readyHandler, !1), e.addEventListener(createjs.HTMLAudioPlugin._AUDIO_STALLED, this._stalledHandler, !1), e.preload = "auto", e.load()) : this._handleSoundReady(null), this._sendEvent("succeeded"), 1)
}, b._handleSoundStalled = function() {
this._cleanUp(), this._sendEvent("failed")
}, b._handleSoundReady = function() {
if (null != window.createjs) {
if (this._duration = 1e3 * this.tag.duration, this.playState = createjs.Sound.PLAY_SUCCEEDED, this._paused = !1, this.tag.removeEventListener(createjs.HTMLAudioPlugin._AUDIO_READY, this._readyHandler, !1), this._offset >= this.getDuration()) return this.playFailed(), void 0;
this._offset > 0 && (this.tag.currentTime = .001 * this._offset), -1 == this._remainingLoops && (this.tag.loop = !0), 0 != this._remainingLoops && (this.tag.addEventListener(createjs.HTMLAudioPlugin._AUDIO_SEEKED, this.loopHandler, !1), this.tag.loop = !0), this.tag.play()
}
}, b.pause = function() {
return this._paused || this.playState != createjs.Sound.PLAY_SUCCEEDED || null == this.tag ? !1 : (this._paused = !0, this.tag.pause(), clearTimeout(this._delayTimeoutId), !0)
}, b.resume = function() {
return this._paused && null != this.tag ? (this._paused = !1, this.tag.play(), !0) : !1
}, b.stop = function() {
return this._offset = 0, this.pause(), this.playState = createjs.Sound.PLAY_FINISHED, this._cleanUp(), !0
}, b.setMasterVolume = function() {
return this._updateVolume(), !0
}, b.setVolume = function(a) {
return this.volume = a, !0
}, b._updateVolume = function() {
if (null != this.tag) {
var a = this._muted || createjs.Sound._masterMute ? 0 : this._volume * createjs.Sound._masterVolume;
return a != this.tag.volume && (this.tag.volume = a), !0
}
return !1
}, b.getVolume = function() {
return this.volume
}, b.setMasterMute = function() {
return this._updateVolume(), !0
}, b.setMute = function(a) {
return null == a || void 0 == a ? !1 : (this._muted = a, this._updateVolume(), !0)
}, b.getMute = function() {
return this._muted
}, b.setPan = function() {
return !1
}, b.getPan = function() {
return 0
}, b.getPosition = function() {
return null == this.tag ? this._offset : 1e3 * this.tag.currentTime
}, b.setPosition = function(a) {
if (null == this.tag) this._offset = a;
else {
this.tag.removeEventListener(createjs.HTMLAudioPlugin._AUDIO_SEEKED, this.loopHandler, !1);
try {
this.tag.currentTime = .001 * a
} catch (b) {
return !1
}
this.tag.addEventListener(createjs.HTMLAudioPlugin._AUDIO_SEEKED, this.loopHandler, !1)
}
return !0
}, b.getDuration = function() {
return this._duration
}, b._handleSoundComplete = function() {
this._offset = 0, null != window.createjs && (this.playState = createjs.Sound.PLAY_FINISHED, this._cleanUp(), this._sendEvent("complete"))
}, b.handleSoundLoop = function() {
this._offset = 0, this._remainingLoops--, 0 == this._remainingLoops && (this.tag.loop = !1, this.tag.removeEventListener(createjs.HTMLAudioPlugin._AUDIO_SEEKED, this.loopHandler, !1)), this._sendEvent("loop")
}, b.playFailed = function() {
null != window.createjs && (this.playState = createjs.Sound.PLAY_FAILED, this._cleanUp(), this._sendEvent("failed"))
}, b.toString = function() {
return "[HTMLAudioPlugin SoundInstance]"
}, createjs.HTMLAudioPlugin.SoundInstance = a
}(),
function() {
"use strict";
function a(a, b) {
this._init(a, b)
}
var b = a.prototype;
b.src = null, b.tag = null, b.preloadTimer = null, b.loadedHandler = null, b._init = function(a, b) {
if (this.src = a, this.tag = b, this.preloadTimer = setInterval(createjs.proxy(this.preloadTick, this), 200), this.loadedHandler = createjs.proxy(this.sendLoadedEvent, this), this.tag.addEventListener && this.tag.addEventListener("canplaythrough", this.loadedHandler), null == this.tag.onreadystatechange) this.tag.onreadystatechange = createjs.proxy(this.sendLoadedEvent, this);
else {
var c = this.tag.onreadystatechange;
this.tag.onreadystatechange = function() {
c(), this.tag.onreadystatechange = createjs.proxy(this.sendLoadedEvent, this)
}
}
this.tag.preload = "auto", this.tag.load()
}, b.preloadTick = function() {
var a = this.tag.buffered,
b = this.tag.duration;
a.length > 0 && a.end(0) >= b - 1 && this.handleTagLoaded()
}, b.handleTagLoaded = function() {
clearInterval(this.preloadTimer)
}, b.sendLoadedEvent = function() {
this.tag.removeEventListener && this.tag.removeEventListener("canplaythrough", this.loadedHandler), this.tag.onreadystatechange = null, createjs.Sound._sendFileLoadEvent(this.src)
}, b.toString = function() {
return "[HTMLAudioPlugin Loader]"
}, createjs.HTMLAudioPlugin.Loader = a
}(),
function() {
"use strict";
function a(a) {
this._init(a)
}
var b = a;
b.tags = {}, b.get = function(c) {
var d = b.tags[c];
return null == d && (d = b.tags[c] = new a(c)), d
}, b.remove = function(a) {
var c = b.tags[a];
return null == c ? !1 : (c.removeAll(), delete b.tags[a], !0)
}, b.removeAll = function() {
for (var a in b.tags) b.tags[a].removeAll();
b.tags = {}
}, b.getInstance = function(a) {
var c = b.tags[a];
return null == c ? null : c.get()
}, b.setInstance = function(a, c) {
var d = b.tags[a];
return null == d ? null : d.set(c)
}, b.checkSrc = function(a) {
var c = b.tags[a];
return null == c ? null : (c.checkSrcChange(), void 0)
};
var c = a.prototype;
c.src = null, c.length = 0, c.available = 0, c.tags = null, c._init = function(a) {
this.src = a, this.tags = []
}, c.add = function(a) {
this.tags.push(a), this.length++, this.available++
}, c.removeAll = function() {
for (; this.length--;) delete this.tags[this.length];
this.src = null, this.tags.length = 0
}, c.get = function() {
if (0 == this.tags.length) return null;
this.available = this.tags.length;
var a = this.tags.pop();
return null == a.parentNode && document.body.appendChild(a), a
}, c.set = function(a) {
var b = createjs.indexOf(this.tags, a); - 1 == b && this.tags.push(a), this.available = this.tags.length
}, c.checkSrcChange = function() {
for (var a = this.tags.length - 1, b = this.tags[a].src; a--;) this.tags[a].src = b
}, c.toString = function() {
return "[HTMLAudioPlugin TagPool]"
}, createjs.HTMLAudioPlugin.TagPool = a
}(), this.createjs = this.createjs || {},
function() {
"use strict";
var a = function(a, b, c) {
this.initialize(a, b, c)
},
b = a.prototype = new createjs.EventDispatcher;
a.NONE = 0, a.LOOP = 1, a.REVERSE = 2, a.IGNORE = {}, a._tweens = [], a._plugins = {}, a.get = function(b, c, d, e) {
return e && a.removeTweens(b), new a(b, c, d)
}, a.tick = function(b, c) {
for (var d = a._tweens.slice(), e = d.length - 1; e >= 0; e--) {
var f = d[e];
c && !f.ignoreGlobalPause || f._paused || f.tick(f._useTicks ? 1 : b)
}
}, a.handleEvent = function(a) {
"tick" == a.type && this.tick(a.delta, a.paused)
}, a.removeTweens = function(b) {
if (b.tweenjs_count) {
for (var c = a._tweens, d = c.length - 1; d >= 0; d--) c[d]._target == b && (c[d]._paused = !0, c.splice(d, 1));
b.tweenjs_count = 0
}
}, a.removeAllTweens = function() {
for (var b = a._tweens, c = 0, d = b.length; d > c; c++) {
var e = b[c];
e.paused = !0, e.target.tweenjs_count = 0
}
b.length = 0
}, a.hasActiveTweens = function(b) {
return b ? b.tweenjs_count : a._tweens && !!a._tweens.length
}, a.installPlugin = function(b, c) {
var d = b.priority;
null == d && (b.priority = d = 0);
for (var e = 0, f = c.length, g = a._plugins; f > e; e++) {
var h = c[e];
if (g[h]) {
for (var i = g[h], j = 0, k = i.length; k > j && !(d < i[j].priority); j++);
g[h].splice(j, 0, b)
} else g[h] = [b]
}
}, a._register = function(b, c) {
var d = b._target,
e = a._tweens;
if (c) d && (d.tweenjs_count = d.tweenjs_count ? d.tweenjs_count + 1 : 1), e.push(b), !a._inited && createjs.Ticker && (createjs.Ticker.addEventListener("tick", a), a._inited = !0);
else {
d && d.tweenjs_count--;
for (var f = e.length; f--;)
if (e[f] == b) return e.splice(f, 1), void 0
}
}, b.ignoreGlobalPause = !1, b.loop = !1, b.duration = 0, b.pluginData = null, b.target = null, b.position = null, b.passive = !1, b._paused = !1, b._curQueueProps = null, b._initQueueProps = null, b._steps = null, b._actions = null, b._prevPosition = 0, b._stepPosition = 0, b._prevPos = -1, b._target = null, b._useTicks = !1, b._inited = !1, b.initialize = function(b, c, d) {
this.target = this._target = b, c && (this._useTicks = c.useTicks, this.ignoreGlobalPause = c.ignoreGlobalPause, this.loop = c.loop, c.onChange && this.addEventListener("change", c.onChange), c.override && a.removeTweens(b)), this.pluginData = d || {}, this._curQueueProps = {}, this._initQueueProps = {}, this._steps = [], this._actions = [], c && c.paused ? this._paused = !0 : a._register(this, !0), c && null != c.position && this.setPosition(c.position, a.NONE)
}, b.wait = function(a, b) {
if (null == a || 0 >= a) return this;
var c = this._cloneProps(this._curQueueProps);
return this._addStep({
d: a,
p0: c,
e: this._linearEase,
p1: c,
v: b
})
}, b.to = function(a, b, c) {
return (isNaN(b) || 0 > b) && (b = 0), this._addStep({
d: b || 0,
p0: this._cloneProps(this._curQueueProps),
e: c,
p1: this._cloneProps(this._appendQueueProps(a))
})
}, b.call = function(a, b, c) {
return this._addAction({
f: a,
p: b ? b : [this],
o: c ? c : this._target
})
}, b.set = function(a, b) {
return this._addAction({
f: this._set,
o: this,
p: [a, b ? b : this._target]
})
}, b.play = function(a) {
return a || (a = this), this.call(a.setPaused, [!1], a)
}, b.pause = function(a) {
return a || (a = this), this.call(a.setPaused, [!0], a)
}, b.setPosition = function(a, b) {
0 > a && (a = 0), null == b && (b = 1);
var c = a,
d = !1;
if (c >= this.duration && (this.loop ? c %= this.duration : (c = this.duration, d = !0)), c == this._prevPos) return d;
var e = this._prevPos;
if (this.position = this._prevPos = c, this._prevPosition = a, this._target)
if (d) this._updateTargetProps(null, 1);
else if (this._steps.length > 0) {
for (var f = 0, g = this._steps.length; g > f && !(this._steps[f].t > c); f++);
var h = this._steps[f - 1];
this._updateTargetProps(h, (this._stepPosition = c - h.t) / h.d)
}
return 0 != b && this._actions.length > 0 && (this._useTicks ? this._runActions(c, c) : 1 == b && e > c ? (e != this.duration && this._runActions(e, this.duration), this._runActions(0, c, !0)) : this._runActions(e, c)), d && this.setPaused(!0), this.dispatchEvent("change"), d
}, b.tick = function(a) {
this._paused || this.setPosition(this._prevPosition + a)
}, b.setPaused = function(b) {
return this._paused = !!b, a._register(this, !b), this
}, b.w = b.wait, b.t = b.to, b.c = b.call, b.s = b.set, b.toString = function() {
return "[Tween]"
}, b.clone = function() {
throw "Tween can not be cloned."
}, b._updateTargetProps = function(b, c) {
var d, e, f, g, h, i;
if (b || 1 != c) {
if (this.passive = !!b.v, this.passive) return;
b.e && (c = b.e(c, 0, 1, 1)), d = b.p0, e = b.p1
} else this.passive = !1, d = e = this._curQueueProps;
for (var j in this._initQueueProps) {
null == (g = d[j]) && (d[j] = g = this._initQueueProps[j]), null == (h = e[j]) && (e[j] = h = g), f = g == h || 0 == c || 1 == c || "number" != typeof g ? 1 == c ? h : g : g + (h - g) * c;
var k = !1;
if (i = a._plugins[j])
for (var l = 0, m = i.length; m > l; l++) {
var n = i[l].tween(this, j, f, d, e, c, !!b && d == e, !b);
n == a.IGNORE ? k = !0 : f = n
}
k || (this._target[j] = f)
}
}, b._runActions = function(a, b, c) {
var d = a,
e = b,
f = -1,
g = this._actions.length,
h = 1;
for (a > b && (d = b, e = a, f = g, g = h = -1);
(f += h) != g;) {
var i = this._actions[f],
j = i.t;
(j == e || j > d && e > j || c && j == a) && i.f.apply(i.o, i.p)
}
}, b._appendQueueProps = function(b) {
var c, d, e, f, g;
for (var h in b)
if (void 0 === this._initQueueProps[h]) {
if (d = this._target[h], c = a._plugins[h])
for (e = 0, f = c.length; f > e; e++) d = c[e].init(this, h, d);
this._initQueueProps[h] = this._curQueueProps[h] = void 0 === d ? null : d
} else d = this._curQueueProps[h];
for (var h in b) {
if (d = this._curQueueProps[h], c = a._plugins[h])
for (g = g || {}, e = 0, f = c.length; f > e; e++) c[e].step && c[e].step(this, h, d, b[h], g);
this._curQueueProps[h] = b[h]
}
return g && this._appendQueueProps(g), this._curQueueProps
}, b._cloneProps = function(a) {
var b = {};
for (var c in a) b[c] = a[c];
return b
}, b._addStep = function(a) {
return a.d > 0 && (this._steps.push(a), a.t = this.duration, this.duration += a.d), this
}, b._addAction = function(a) {
return a.t = this.duration, this._actions.push(a), this
}, b._set = function(a, b) {
for (var c in a) b[c] = a[c]
}, createjs.Tween = a
}(), this.createjs = this.createjs || {},
function() {
"use strict";
var a = function(a, b, c) {
this.initialize(a, b, c)
},
b = a.prototype = new createjs.EventDispatcher;
b.ignoreGlobalPause = !1, b.duration = 0, b.loop = !1, b.position = null, b._paused = !1, b._tweens = null, b._labels = null, b._labelList = null, b._prevPosition = 0, b._prevPos = -1, b._useTicks = !1, b.initialize = function(a, b, c) {
this._tweens = [], c && (this._useTicks = c.useTicks, this.loop = c.loop, this.ignoreGlobalPause = c.ignoreGlobalPause, c.onChange && this.addEventListener("change", c.onChange)), a && this.addTween.apply(this, a), this.setLabels(b), c && c.paused ? this._paused = !0 : createjs.Tween._register(this, !0), c && null != c.position && this.setPosition(c.position, createjs.Tween.NONE)
}, b.addTween = function(a) {
var b = arguments.length;
if (b > 1) {
for (var c = 0; b > c; c++) this.addTween(arguments[c]);
return arguments[0]
}
return 0 == b ? null : (this.removeTween(a), this._tweens.push(a), a.setPaused(!0), a._paused = !1, a._useTicks = this._useTicks, a.duration > this.duration && (this.duration = a.duration), this._prevPos >= 0 && a.setPosition(this._prevPos, createjs.Tween.NONE), a)
}, b.removeTween = function(a) {
var b = arguments.length;
if (b > 1) {
for (var c = !0, d = 0; b > d; d++) c = c && this.removeTween(arguments[d]);
return c
}
if (0 == b) return !1;
for (var e = this._tweens, d = e.length; d--;)
if (e[d] == a) return e.splice(d, 1), a.duration >= this.duration && this.updateDuration(), !0;
return !1
}, b.addLabel = function(a, b) {
this._labels[a] = b;
var c = this._labelList;
if (c) {
for (var d = 0, e = c.length; e > d && !(b < c[d].position); d++);
c.splice(d, 0, {
label: a,
position: b
})
}
}, b.setLabels = function(a) {
this._labels = a ? a : {}
}, b.getLabels = function() {
var a = this._labelList;
if (!a) {
a = this._labelList = [];
var b = this._labels;
for (var c in b) a.push({
label: c,
position: b[c]
});
a.sort(function(a, b) {
return a.position - b.position
})
}
return a
}, b.getCurrentLabel = function() {
var a = this.getLabels(),
b = this.position,
c = a.length;
if (c) {
for (var d = 0; c > d && !(b < a[d].position); d++);
return 0 == d ? null : a[d - 1].label
}
return null
}, b.gotoAndPlay = function(a) {
this.setPaused(!1), this._goto(a)
}, b.gotoAndStop = function(a) {
this.setPaused(!0), this._goto(a)
}, b.setPosition = function(a, b) {
0 > a && (a = 0);
var c = this.loop ? a % this.duration : a,
d = !this.loop && a >= this.duration;
if (c == this._prevPos) return d;
this._prevPosition = a, this.position = this._prevPos = c;
for (var e = 0, f = this._tweens.length; f > e; e++)
if (this._tweens[e].setPosition(c, b), c != this._prevPos) return !1;
return d && this.setPaused(!0), this.dispatchEvent("change"), d
}, b.setPaused = function(a) {
this._paused = !!a, createjs.Tween._register(this, !a)
}, b.updateDuration = function() {
this.duration = 0;
for (var a = 0, b = this._tweens.length; b > a; a++) {
var c = this._tweens[a];
c.duration > this.duration && (this.duration = c.duration)
}
}, b.tick = function(a) {
this.setPosition(this._prevPosition + a)
}, b.resolve = function(a) {
var b = parseFloat(a);
return isNaN(b) && (b = this._labels[a]), b
}, b.toString = function() {
return "[Timeline]"
}, b.clone = function() {
throw "Timeline can not be cloned."
}, b._goto = function(a) {
var b = this.resolve(a);
null != b && this.setPosition(b)
}, createjs.Timeline = a
}(), this.createjs = this.createjs || {},
function() {
"use strict";
var a = function() {
throw "Ease cannot be instantiated."
};
a.linear = function(a) {
return a
}, a.none = a.linear, a.get = function(a) {
return -1 > a && (a = -1), a > 1 && (a = 1),
function(b) {
return 0 == a ? b : 0 > a ? b * (b * -a + 1 + a) : b * ((2 - b) * a + (1 - a))
}
}, a.getPowIn = function(a) {
return function(b) {
return Math.pow(b, a)
}
}, a.getPowOut = function(a) {
return function(b) {
return 1 - Math.pow(1 - b, a)
}
}, a.getPowInOut = function(a) {
return function(b) {
return (b *= 2) < 1 ? .5 * Math.pow(b, a) : 1 - .5 * Math.abs(Math.pow(2 - b, a))
}
}, a.quadIn = a.getPowIn(2), a.quadOut = a.getPowOut(2), a.quadInOut = a.getPowInOut(2), a.cubicIn = a.getPowIn(3), a.cubicOut = a.getPowOut(3), a.cubicInOut = a.getPowInOut(3), a.quartIn = a.getPowIn(4), a.quartOut = a.getPowOut(4), a.quartInOut = a.getPowInOut(4), a.quintIn = a.getPowIn(5), a.quintOut = a.getPowOut(5), a.quintInOut = a.getPowInOut(5), a.sineIn = function(a) {
return 1 - Math.cos(a * Math.PI / 2)
}, a.sineOut = function(a) {
return Math.sin(a * Math.PI / 2)
}, a.sineInOut = function(a) {
return -.5 * (Math.cos(Math.PI * a) - 1)
}, a.getBackIn = function(a) {
return function(b) {
return b * b * ((a + 1) * b - a)
}
}, a.backIn = a.getBackIn(1.7), a.getBackOut = function(a) {
return function(b) {
return --b * b * ((a + 1) * b + a) + 1
}
}, a.backOut = a.getBackOut(1.7), a.getBackInOut = function(a) {
return a *= 1.525,
function(b) {
return (b *= 2) < 1 ? .5 * b * b * ((a + 1) * b - a) : .5 * ((b -= 2) * b * ((a + 1) * b + a) + 2)
}
}, a.backInOut = a.getBackInOut(1.7), a.circIn = function(a) {
return -(Math.sqrt(1 - a * a) - 1)
}, a.circOut = function(a) {
return Math.sqrt(1 - --a * a)
}, a.circInOut = function(a) {
return (a *= 2) < 1 ? -.5 * (Math.sqrt(1 - a * a) - 1) : .5 * (Math.sqrt(1 - (a -= 2) * a) + 1)
}, a.bounceIn = function(b) {
return 1 - a.bounceOut(1 - b)
}, a.bounceOut = function(a) {
return 1 / 2.75 > a ? 7.5625 * a * a : 2 / 2.75 > a ? 7.5625 * (a -= 1.5 / 2.75) * a + .75 : 2.5 / 2.75 > a ? 7.5625 * (a -= 2.25 / 2.75) * a + .9375 : 7.5625 * (a -= 2.625 / 2.75) * a + .984375
}, a.bounceInOut = function(b) {
return .5 > b ? .5 * a.bounceIn(2 * b) : .5 * a.bounceOut(2 * b - 1) + .5
}, a.getElasticIn = function(a, b) {
var c = 2 * Math.PI;
return function(d) {
if (0 == d || 1 == d) return d;
var e = b / c * Math.asin(1 / a);
return -(a * Math.pow(2, 10 * (d -= 1)) * Math.sin((d - e) * c / b))
}
}, a.elasticIn = a.getElasticIn(1, .3), a.getElasticOut = function(a, b) {
var c = 2 * Math.PI;
return function(d) {
if (0 == d || 1 == d) return d;
var e = b / c * Math.asin(1 / a);
return a * Math.pow(2, -10 * d) * Math.sin((d - e) * c / b) + 1
}
}, a.elasticOut = a.getElasticOut(1, .3), a.getElasticInOut = function(a, b) {
var c = 2 * Math.PI;
return function(d) {
var e = b / c * Math.asin(1 / a);
return (d *= 2) < 1 ? -.5 * a * Math.pow(2, 10 * (d -= 1)) * Math.sin((d - e) * c / b) : .5 * a * Math.pow(2, -10 * (d -= 1)) * Math.sin((d - e) * c / b) + 1
}
}, a.elasticInOut = a.getElasticInOut(1, .3 * 1.5), createjs.Ease = a
}(), this.createjs = this.createjs || {},
function() {
"use strict";
var a = function() {
throw "MotionGuidePlugin cannot be instantiated."
};
a.priority = 0, a._rotOffS, a._rotOffE, a._rotNormS, a._rotNormE, a.install = function() {
return createjs.Tween.installPlugin(a, ["guide", "x", "y", "rotation"]), createjs.Tween.IGNORE
}, a.init = function(a, b, c) {
var d = a.target;
return d.hasOwnProperty("x") || (d.x = 0), d.hasOwnProperty("y") || (d.y = 0), d.hasOwnProperty("rotation") || (d.rotation = 0), "rotation" == b && (a.__needsRot = !0), "guide" == b ? null : c
}, a.step = function(b, c, d, e, f) {
if ("rotation" == c && (b.__rotGlobalS = d, b.__rotGlobalE = e, a.testRotData(b, f)), "guide" != c) return e;
var g, h = e;
h.hasOwnProperty("path") || (h.path = []);
var i = h.path;
if (h.hasOwnProperty("end") || (h.end = 1), h.hasOwnProperty("start") || (h.start = d && d.hasOwnProperty("end") && d.path === i ? d.end : 0), h.hasOwnProperty("_segments") && h._length) return e;
var j = i.length,
k = 10;
if (!(j >= 6 && 0 == (j - 2) % 4)) throw "invalid 'path' data, please see documentation for valid paths";
h._segments = [], h._length = 0;
for (var l = 2; j > l; l += 4) {
for (var m, n, o = i[l - 2], p = i[l - 1], q = i[l + 0], r = i[l + 1], s = i[l + 2], t = i[l + 3], u = o, v = p, w = 0, x = [], y = 1; k >= y; y++) {
var z = y / k,
A = 1 - z;
m = A * A * o + 2 * A * z * q + z * z * s, n = A * A * p + 2 * A * z * r + z * z * t, w += x[x.push(Math.sqrt((g = m - u) * g + (g = n - v) * g)) - 1], u = m, v = n
}
h._segments.push(w), h._segments.push(x), h._length += w
}
g = h.orient, h.orient = !0;
var B = {};
return a.calc(h, h.start, B), b.__rotPathS = Number(B.rotation.toFixed(5)), a.calc(h, h.end, B), b.__rotPathE = Number(B.rotation.toFixed(5)), h.orient = !1, a.calc(h, h.end, f), h.orient = g, h.orient ? (b.__guideData = h, a.testRotData(b, f), e) : e
}, a.testRotData = function(a, b) {
if (void 0 === a.__rotGlobalS || void 0 === a.__rotGlobalE) {
if (a.__needsRot) return;
a.__rotGlobalS = a.__rotGlobalE = void 0 !== a._curQueueProps.rotation ? a._curQueueProps.rotation : b.rotation = a.target.rotation || 0
}
if (void 0 !== a.__guideData) {
var c = a.__guideData,
d = a.__rotGlobalE - a.__rotGlobalS,
e = a.__rotPathE - a.__rotPathS,
f = d - e;
if ("auto" == c.orient) f > 180 ? f -= 360 : -180 > f && (f += 360);
else if ("cw" == c.orient) {
for (; 0 > f;) f += 360;
0 == f && d > 0 && 180 != d && (f += 360)
} else if ("ccw" == c.orient) {
for (f = d - (e > 180 ? 360 - e : e); f > 0;) f -= 360;
0 == f && 0 > d && -180 != d && (f -= 360)
}
c.rotDelta = f, c.rotOffS = a.__rotGlobalS - a.__rotPathS, a.__rotGlobalS = a.__rotGlobalE = a.__guideData = a.__needsRot = void 0
}
}, a.tween = function(b, c, d, e, f, g, h) {
var i = f.guide;
if (void 0 == i || i === e.guide) return d;
if (i.lastRatio != g) {
var j = (i.end - i.start) * (h ? i.end : g) + i.start;
switch (a.calc(i, j, b.target), i.orient) {
case "cw":
case "ccw":
case "auto":
b.target.rotation += i.rotOffS + i.rotDelta * g;
break;
case "fixed":
default:
b.target.rotation += i.rotOffS
}
i.lastRatio = g
}
return "rotation" != c || i.orient && "false" != i.orient ? b.target[c] : d
}, a.calc = function(b, c, d) {
void 0 == b._segments && a.validate(b), void 0 == d && (d = {
x: 0,
y: 0,
rotation: 0
});
for (var e = b._segments, f = b.path, g = b._length * c, h = e.length - 2, i = 0; g > e[i] && h > i;) g -= e[i], i += 2;
var j = e[i + 1],
k = 0;
for (h = j.length - 1; g > j[k] && h > k;) g -= j[k], k++;
var l = k / ++h + g / (h * j[k]);
i = 2 * i + 2;
var m = 1 - l;
return d.x = m * m * f[i - 2] + 2 * m * l * f[i + 0] + l * l * f[i + 2], d.y = m * m * f[i - 1] + 2 * m * l * f[i + 1] + l * l * f[i + 3], b.orient && (d.rotation = 57.2957795 * Math.atan2((f[i + 1] - f[i - 1]) * m + (f[i + 3] - f[i + 1]) * l, (f[i + 0] - f[i - 2]) * m + (f[i + 2] - f[i + 0]) * l)), d
}, createjs.MotionGuidePlugin = a
}(), this.createjs = this.createjs || {},
function() {
"use strict";
var a = createjs.TweenJS = createjs.TweenJS || {};
a.version = "NEXT", a.buildDate = "Thu, 12 Dec 2013 23:37:07 GMT"
}();
var scope;
var showTable;
var modalInstance;
var configuratorApp = angular.module("configuratorApp", ["ui.bootstrap"]);
configuratorApp.controller("ConfiguratorCtrl", ["$scope", "$window", "$modal", function($scope, $window, $modal) {
if (scope == null) scope = $scope;
$scope.openModal = function() {
modalInstance = $modal.open({
templateUrl: "form.html",
controller: ModalInstanceCtrl,
scope: $scope,
dialogClass: "modal form"
})
};
$scope.closeModal = function() {
modalInstance.dismiss("cancel")
}
}]);
function angularUpdate(parts) {
var summaryParts = new Array;
for (var i = 0; i < parts.length; i++) {
var part = partsContainer.getChildByName(parts[i]);
var found = false;
for (var j = 0; j < summaryParts.length; j++) {
if (summaryParts[j].sku == part.partData.sku) {
summaryParts[j].quantity++;
found = true;
break
}
}
if (!found) {
summaryParts.push(summaryEntry(part.partData))
}
}
scope.showTable = showTable;
scope.parts = summaryParts;
scope.$apply()
}
var ModalInstanceCtrl = function($scope, $modalInstance) {
$scope.renderPrintView = function() {
var printWindow = window.open("", "MsgWindow", "width=960,height=960");
printWindow.document.write("<link rel='stylesheet' type='text/css' href='css/bootstrap.min.css'><div class='row'><img style='display: block; margin-left: auto; margin-right: auto' src='assets/UDesignLogo.jpg'></div><BR><div class='container'><h4 align='center'>Components in Configuration</h4><div class='container'><table class='table table-bordered table-responsive'><tr><th style='color:red;'>Grainger Stock No.</th><th>Tri-Arc Part #</th><th>Quantity</th><th>Description</th></tr>");
for (var i = 0; i < scope.parts.length; i++) {
printWindow.document.write("<tr><td style='color:red;'>" + scope.parts[i].gsku + "</td><td>" + scope.parts[i].sku + "</td><td>" + scope.parts[i].quantity + "</td><td>" + scope.parts[i].description + "</td></tr>")
}
printWindow.document.write("</table></div></div><div class='row'><div class='col-sm-12'><table class='table table-responsive'><tr><td><img src='assets/TriArcLogo.jpg'></td><td></td><td><img style='float:right' src='assets/GraingerLogo.jpg'></td></table></div></div>");
printWindow.document.write("<img src='" + scope.imageData + "'>");
printWindow.document.write("<img src='" + scope.overviewImage + "'>");
printWindow.document.focus();
printWindow.print()
}
};
function summaryEntry(partData) {
var entry = {
sku: partData.sku,
price: partData.price,
gsku: partData.gsku,
description: partData.description,
quantity: 1,
cost: partData.price
};
return entry
}
function exportImage() {
focusCanvas();
scope.imageData = stage.toDataURL();
stage.update();
if (system != 3) stage.addChild(TopDownView(true));
else stage.addChild(MaxTopDownView(true));
stage.update();
scope.overviewImage = stage.toDataURL();
scope.completed = true;
restoreCanvas();
if (!VENDOR) {
scope.openModal();
scope.$apply()
} else {
var printWindow = window.open("", "MsgWindow", "width=960,height=960");
printWindow.document.write("<link rel='stylesheet' type='text/css' href='css/bootstrap.min.css'><div class='row'><img style='display: block; margin-left: auto; margin-right: auto' src='assets/UDesignLogo.jpg'></div><BR><div class='container'><h4 align='center'>Components in Configuration</h4><div class='container'><table class='table table-bordered table-responsive'><tr><th style='color:red;'>Grainger Stock No.</th><th>Tri-Arc Part #</th><th>Quantity</th><th>Description</th></tr>");
for (var i = 0; i < scope.parts.length; i++) {
printWindow.document.write("<tr><td style='color:red;'>" + scope.parts[i].gsku + "</td><td>" + scope.parts[i].sku + "</td><td>" + scope.parts[i].quantity + "</td><td>" + scope.parts[i].description + "</td></tr>")
}
printWindow.document.write("</table></div></div><div class='row'><div class='col-sm-12'><table class='table table-responsive'><tr><td><img src='assets/TriArcLogo.jpg'></td><td></td><td><img style='float:right' src='assets/GraingerLogo.jpg'></td></table></div></div>");
printWindow.document.write("<img src='" + scope.imageData + "'>");
printWindow.document.write("<img src='" + scope.overviewImage + "'>");
printWindow.focus();
printWindow.print();
scope.$apply()
}
}
function submitForm(form) {
form.parts.value = "<table class='table table-bordered table-responsive'><tr><th style='color:red;'>Grainger Stock No.</th><th>Tri-Arc Part #</th><th>Quantity</th><th>Description</th></tr>";
for (var i = 0; i < scope.parts.length; i++) {
form.parts.value += "<tr><td style='color:red;'>" + scope.parts[i].gsku + "</td><td>" + scope.parts[i].sku + "</td><td>" + scope.parts[i].quantity + "</td><td>" + scope.parts[i].description + "</td></tr>"
}
form.parts.value += "</table>";
form.image.value = scope.imageData;
if (form.name.value.length < 1 || form.company.value.length < 1 || form.email.value.length < 1 || form.phone.value.length < 1) return;
$.ajax({
url: "http://tri-arc.com/configurator/mailer.php",
type: "POST",
data: {
name: form.name.value,
company: form.company.value,
phone: form.phone.value,
email: form.email.value,
parts: form.parts.value,
comments: form.comments.value,
referrer: form.referrer.value,
image: form.image.value
},
success: function(msg) {
alert("Email Sent")
}
})
}
var stage;
var LadderType = {
Rooftop: 1,
Crossover: 2,
MaxAccess: 3
};
var TreadType = {
Perforated: 1,
Grip: 2
};
var system;
var height;
var incline;
var tread;
function init() {
if (document.getElementById("configuratorCanvas").addEventListener) {
document.getElementById("configuratorCanvas").addEventListener("mousewheel", MouseWheelHandler(), false);
document.getElementById("configuratorCanvas").addEventListener("DOMMouseScroll", MouseWheelHandler(), false)
} else {
sq.attachEvent("onmousewheel", MouseWheelHandler())
}
stage = new createjs.Stage("configuratorCanvas");
createjs.Touch.enable(stage);
stage.enableMouseOver(50);
createjs.DisplayObject.suppressCrossDomainErrors = true;
stage.setBounds(0, 0, stage.canvas.width, stage.canvas.height);
stage.setBounds(0, 0, stage.canvas.width, stage.canvas.height);
createjs.Ticker.addEventListener("tick", handleTick);
showStartMenu()
}
function handleTick(event) {
stage.setBounds(0, 0, stage.canvas.width, stage.canvas.height);
if (system == 3 && showTooltip) {
updateTooltipPosition()
}
stage.update();
angularUpdate(parts)
}
function showStartMenu() {
stage.removeAllChildren();
showTable = false;
scope.showTable = false;
scope.parts = [];
scope.$apply();
startMenu = StartMenu();
startMenu.x = stage.getBounds().width / 2;
stage.addChild(startMenu)
}
function showHeightMenu() {
stage.removeAllChildren();
switch (system) {
case 1:
heightMenu = RT_HeightMenu();
break;
case 2:
heightMenu = CO_HeightMenu();
break;
case 3:
heightMenu = MA_HeightMenu();
break;
default:
break
}
heightMenu.x = stage.getBounds().width / 2;
stage.addChild(heightMenu)
}
function showSystemOptionsMenu() {
switch (system) {
case 1:
showInclineMenu();
break;
case 2:
showPlatformTypeMenu();
break;
case 3:
showInclineMenu();
break;
default:
showInclineMenu();
break
}
}
function showInclineMenu() {
stage.removeAllChildren();
inclineMenu = InclineMenu(system != LadderType.Crossover);
inclineMenu.x = stage.getBounds().width / 2;
stage.addChild(inclineMenu)
}
function showPlatformSizeMenu() {
stage.removeAllChildren();
platformSizeMenu = PlatformSizeMenu();
platformSizeMenu.x = stage.getBounds().width / 2;
stage.addChild(platformSizeMenu)
}
function showPlatformTypeMenu() {
stage.removeAllChildren();
platformTypeMenu = PlatformTypeMenu();
platformTypeMenu.x = stage.getBounds().width / 2;
stage.addChild(platformTypeMenu)
}
function showConfigurator() {
stage.removeAllChildren();
stage.addChild(ConfiguratorContainer());
parts.length = 0;
length = new Array;
width = new Array;
iwidth = 0;
showTable = true;
showConfiguratorButtons();
switch (system) {
case 1:
partsContainer.addChild(InitialPart(LADDER(), null));
break;
case 2:
partsContainer.addChild(InitialPart(LADDER(), null));
break;
case 3:
partsContainer.addChild(InitialMaxPart(LADDER()));
break;
default:
break
}
}
function showSummary() {
stage.addChild(SummaryMenu())
}
function setIncline(i) {
incline = i
}
function setHeight(h) {
height = h
}
function setSystem(s) {
system = s
}
function MouseWheelHandler() {
return function(e) {
if (system == 3) {
var e = window.event || e;
var delta = Math.max(-1, Math.min(1, e.wheelDelta || -e.detail));
scrollPartsBar(delta);
return false
}
}
}
var id = 0;
function Part(data, parent) {
var container = new createjs.Container;
if (data.altSkus) {
switch (treadType) {
case TreadType.Perforated:
data.sku = data.sku.substr(0, data.sku.length - 1) + "2";
data.gsku = data.gSkus[0];
break;
case TreadType.Grip:
data.sku = data.sku.substr(0, data.sku.length - 1) + "6";
data.gsku = data.gSkus[1];
break;
default:
break
}
}
container.partData = data;
container.noParent = false;
container.legSlotFull = !data.hasLegSlot;
container.mountSlotFull = !data.hasMountSlot;
if (data.usesSlot == MOUNT_SLOT) parent.mountSlotFull = true;
else if (data.usesSlot == LEG_SLOT) {
parent.legSlotFull = true
}
container.legsNeeded = data.legsNeeded;
container.legsLimit = data.legsLimit;
if (parent.legsNeeded && !parent.legSlotFull) container.legsLimit = Math.min(parent.legsLimit - container.partData.length, container.legsLimit - container.partData.length);
if (container.legsLimit <= 10 && !data.actsAsLegs && !parent.legSlotFull) {
container.legsLimit = data.legsLimit;
partsContainer.addChild(Part(LEGS(), parent));
if (data.rails) alert("A leg kit was added automatically as it is needed by the rail kit.");
else alert("A leg kit was added automatically as your span is too long to be unsupported.")
}
if (parent.legSlotFull) resetChildLegCounter(parent);
container.frameOffset = (data.frameOffset + parent.frameOffset + parent.partData.childFrameOffset) % 4;
if (parent.childFrameOffset != 0) container.rotationOffset = -90 * container.frameOffset;
else container.rotationOffset = 0;
container.partData.childFrameOffset = data.childFrameOffset;
container.currentFrame = (currentFrame + container.frameOffset) % 4;
container.parentPart = parent;
container.rotation = container.rotationOffset;
container.iZOrderMod = data.iZOrderMod[container.currentFrame];
container.x = parent.x + parent.getChildByName("MOUNT").x - container.partData.connectorPoint[container.currentFrame].x;
container.y = parent.y + parent.getChildByName("MOUNT").y - container.partData.connectorPoint[container.currentFrame].y;
if (container.rotationOffset < 0) {
container.x = parent.x + parent.getChildByName("MOUNT").x + container.partData.connectorPoint[container.currentFrame].x + container.partData.rotationOffsets[(container.rotationOffset / -90 + container.currentFrame) % 4].x;
container.y = parent.y + parent.getChildByName("MOUNT").y + container.partData.connectorPoint[container.currentFrame].y + container.partData.rotationOffsets[(container.rotationOffset / -90 + container.currentFrame) % 4].y
}
var sprite = new createjs.Sprite(data.spriteSheet);
var spriteButtonHelper = new createjs.ButtonHelper(sprite);
sprite.addEventListener("click", handlePartClicked);
sprite.addEventListener("mouseover", handleMouseOver);
sprite.addEventListener("mouseout", handleMouseOut);
sprite.name = container.name = id;
id++;
sprite.regX = data.spriteCenter.x;
sprite.regY = data.spriteCenter.y;
container.addChild(sprite);
var center = new createjs.Shape;
center.name = "CENTER";
center.graphics.beginFill(null).drawCircle(0, 0, 5);
container.addChild(center);
var f = new createjs.Shape;
f.name = "MOUNT";
f.graphics.beginFill(null).drawCircle(0, 0, 5);
f.x = container.partData.mountPoint[container.currentFrame].x;
f.y = container.partData.mountPoint[container.currentFrame].y;
container.addChild(f);
var p = new createjs.Shape;
p.name = "CONNECTOR";
p.graphics.beginFill(null).drawCircle(0, 0, 5);
p.x = container.partData.connectorPoint[container.currentFrame].x;
p.y = container.partData.connectorPoint[container.currentFrame].y;
container.addChild(p);
sprite.gotoAndStop(container.currentFrame);
sprite.rotation = -camAngle - container.rotationOffset;
parts.push(sprite.name);
updateDimensions(data.width, data.length, container.currentFrame);
if (!container.partData.legs) {
SelectPartMenu(container);
selectPartMenu.originPart = container
}
return container
}
function InitialPart(data) {
var container = new createjs.Container;
if (data.altSkus) {
switch (treadType) {
case TreadType.Perforated:
data.sku = data.sku.substr(0, data.sku.length - 1) + "2";
data.gsku = data.gSkus[0];
break;
case TreadType.Grip:
data.sku = data.sku.substr(0, data.sku.length - 1) + "6";
data.gsku = data.gSkus[1];
break;
default:
break
}
}
container.partData = data;
container.noParent = true;
container.frameOffset = 0;
container.childFrameOffset = data.childFrameOffset;
container.rotationOffset = 0;
container.currentFrame = currentFrame;
container.legSlotFull = !data.hasLegSlot;
container.mountSlotFull = !data.hasMountSlot;
container.zOrderMod = data.zOrderMod[container.currentFrame];
container.iZOrderMod = data.iZOrderMod[container.currentFrame];
container.legsLimit = data.legsLimit;
container.legsNeeded = data.legsNeeded;
container.x = 0;
container.y = 0;
var sprite = new createjs.Sprite(data.spriteSheet);
var spriteButtonHelper = new createjs.ButtonHelper(sprite);
sprite.addEventListener("click", handlePartClicked);
sprite.addEventListener("mouseover", handleMouseOver);
sprite.addEventListener("mouseout", handleMouseOut);
sprite.name = container.name = id;
id++;
sprite.regX = data.spriteCenter.x;
sprite.regY = data.spriteCenter.y;
container.addChild(sprite);
var center = new createjs.Shape;
center.name = "CENTER";
center.graphics.beginFill(null).drawCircle(0, 0, 5);
container.addChild(center);
var f = new createjs.Shape;
f.name = "MOUNT";
f.graphics.beginFill(null).drawCircle(0, 0, 5);
f.x = container.partData.mountPoint[container.currentFrame].x;
f.y = container.partData.mountPoint[container.currentFrame].y;
container.addChild(f);
var p = new createjs.Shape;
p.name = "CONNECTOR";
p.graphics.beginFill(null).drawCircle(0, 0, 5);
p.x = container.partData.connectorPoint[container.currentFrame].x;
p.y = container.partData.connectorPoint[container.currentFrame].y;
container.addChild(p);
sprite.gotoAndStop(currentFrame);
parts.push(sprite.name);
length.push(data.length);
iwidth = data.width;
if (!data.legs) {
SelectPartMenu(container);
SelectPartMenu.originPart = container
}
return container
}
function updateDimensions(pwidth, plength, frame) {
switch (frame) {
case 0:
length.push(plength);
if (pwidth > iwidth && width.length == 0) iwidth = pwidth;
return;
case 1:
width.push(-plength);
return;
case 2:
length.push(-plength);
return;
case 3:
width.push(plength);
return
}
}
function resetChildLegCounter(parent) {
for (var i = 0; i < partsContainer.getNumChildren(); i++) {
childPart = partsContainer.getChildAt(i);
if (childPart.parentPart == parent && !childPart.legs) {
childPart.legsLimit = childPart.partData.legsLimit;
if (parent.legsNeeded && !parent.legSlotFull) childPart.legsLimit = Math.min(parent.legsLimit - childPart.partData.length, childPart.legsLimit - childPart.partData.length);
if (!childPart.actsAsLegs) resetChildLegCounter(childPart);
return
}
}
}
function handlePartClicked(event) {}
function handleMouseOver(event) {}
function handleMouseOut(event) {}
var configuratorContainer;
var partsContainer;
var minZoom = .5;
var maxZoom = 1.5;
var VENDOR = true;
var parts = new Array;
var camAngle;
var currentFrame;
var length;
var width;
var blength;
var bwidth;
var iwidth;
var partsMenuContainer;
var partsMenuContainerText;
var upperPartsMenuClip;
var heightTintButtonText;
function ConfiguratorContainer() {
camAngle = 0;
currentFrame = 0;
var container = new createjs.Container;
container.name = "CONFIGURATOR_CONTAINER";
configuratorContainer = container;
container.on("mousedown", function(evt) {
this.offset = {
x: this.x - evt.stageX,
y: this.y - evt.stageY
}
});
container.on("pressmove", function(evt) {
this.x = evt.stageX + this.offset.x;
this.y = evt.stageY + this.offset.y
});
var containerBackground = new createjs.Shape;
containerBackground.graphics.beginFill("#FFF").drawRect(-2048, -2048, 4096, 4096);
container.addChild(containerBackground);
partsContainer = new createjs.Container;
partsContainer.x = 400;
partsContainer.y = 400;
partsContainer.name = "CONFIGURATOR_PARTS_CONTAINER";
container.addChild(partsContainer);
return container
}
function showConfiguratorButtons() {
partsMenuContainer = new createjs.Container;
partsMenuContainer.name = "PARTS_MENU_CONTAINER";
partsMenuContainer.x = 700;
partsMenuContainer.y = 45;
stage.addChild(partsMenuContainer);
var partsMenuOutline = new createjs.Shape;
partsMenuOutline.graphics.beginFill("#ffffff").beginStroke("#e17a0f").drawRoundRect(0, -10, 260, 730, 5);
partsMenuContainer.addChild(partsMenuOutline);
upperPartsMenuClip = new createjs.Shape;
upperPartsMenuClip.graphics.beginFill("#fff").drawRect(5, 1, 250, 17);
partsMenuContainer.addChild(upperPartsMenuClip);
partsMenuContainerText = new createjs.Text("Click a part to show available\nparts to connect to it", "15px sans-serif", "#444");
partsMenuContainerText.x = 130;
partsMenuContainerText.y = 0;
partsMenuContainerText.textAlign = "center";
partsMenuContainer.addChild(partsMenuContainerText);
var topPartClipping = new createjs.Shape;
topPartClipping.graphics.beginFill("#fff").drawRect(705, 0, 250, 48);
stage.addChild(topPartClipping);
var bottomPartClip = new createjs.Shape;
bottomPartClip.graphics.beginFill("#fff").drawRect(705, 750, 250, 100);
stage.addChild(bottomPartClip);
var resetButton = new createjs.Container;
resetButton.x = 700;
resetButton.name = "RESET_BUTTON";
stage.addChild(resetButton);
var resetButtonShape = new createjs.Shape;
resetButtonShape.graphics.beginFill("#ff9e35").beginStroke("#e17a0f").drawRoundRect(0, 0, 260, 40, 5);
resetButton.addChild(resetButtonShape);
var resetButtonText = new createjs.Text("Reset", "20px sans-serif", "#fff");
resetButtonText.textAlign = "center";
resetButtonText.y = 10;
resetButtonText.x = 130;
resetButton.addChild(resetButtonText);
var resetButtonHelper = new createjs.ButtonHelper(resetButton);
resetButton.addEventListener("click", handleResetButtonClicked);
var finishButton = new createjs.Container;
finishButton.name = "FINISH_BUTTON";
finishButton.x = 700;
finishButton.y = 760;
stage.addChild(finishButton);
var finishButtonShape = new createjs.Shape;
finishButtonShape.graphics.beginFill("#ff9e35").beginStroke("#e17a0f").drawRoundRect(0, 0, 260, 40, 5);
finishButton.addChild(finishButtonShape);
var finishButtonText = new createjs.Text("Complete", "20px sans-serif", "#fff");
finishButtonText.textAlign = "center";
finishButtonText.y = 10;
finishButtonText.x = 130;
finishButton.addChild(finishButtonText);
var finishButtonHelper = new createjs.ButtonHelper(finishButton);
finishButton.addEventListener("click", handleFinishButtonClicked);
var zoomContainer = new createjs.Container;
zoomContainer.name = "ZOOM_CONTAINER";
zoomContainer.x = 10;
zoomContainer.y = 20;
stage.addChild(zoomContainer);
var zoomContainerShape = new createjs.Shape;
zoomContainerShape.graphics.beginFill("#BBB").beginStroke("#e17a0f").drawRoundRect(0, 0, 120, 80, 5);
zoomContainer.addChild(zoomContainerShape);
var zoomText = new createjs.Text("Zoom", "20px sans-serif", "#FFF");
zoomText.textAlign = "center";
zoomText.x = 60;
zoomText.y = 10;
zoomContainer.addChild(zoomText);
var zoomInButton = new createjs.Container;
zoomInButton.x = 75;
zoomInButton.y = 40;
zoomContainer.addChild(zoomInButton);
var zoomInButtonShape = new createjs.Shape;
zoomInButtonShape.graphics.beginFill("#ff9e35").beginStroke("#e17a0f").drawRoundRect(0, 0, 25, 25, 5);
zoomInButton.addChild(zoomInButtonShape);
var zoomInButtonText = new createjs.Text("+", "30px sans-serif", "#FFF");
zoomInButtonText.textAlign = "center";
zoomInButtonText.y = -7;
zoomInButtonText.x = 12;
zoomInButton.addChild(zoomInButtonText);
var zoomInButtonHelper = new createjs.ButtonHelper(zoomInButton);
zoomInButton.addEventListener("click", handleZoomInClicked);
var zoomOutButton = new createjs.Container;
zoomOutButton.x = 20;
zoomOutButton.y = 40;
zoomContainer.addChild(zoomOutButton);
var zoomOutButtonShape = new createjs.Shape;
zoomOutButtonShape.graphics.beginFill("#ff9e35").beginStroke("#e17a0f").drawRoundRect(0, 0, 25, 25, 5);
zoomOutButton.addChild(zoomOutButtonShape);
var zoomOutButtonText = new createjs.Text("-", "30px sans-serif", "#FFF");
zoomOutButtonText.textAlign = "center";
zoomOutButtonText.y = -7;
zoomOutButtonText.x = 12;
zoomOutButton.addChild(zoomOutButtonText);
var zoomOutButtonHelper = new createjs.ButtonHelper(zoomOutButton);
zoomOutButton.addEventListener("click", handleZoomOutClicked);
var bInstructionText = new createjs.Text("Click Anywhere and Drag to Move the Ladder System", "16px sans-serif", "#444");
bInstructionText.textAlign = "center";
bInstructionText.x = 480;
bInstructionText.y = 780;
bInstructionText.name = "BINSTRUCTION_TEXT";
stage.addChild(bInstructionText);
var topDownButton = new createjs.Container;
topDownButton.name = "TOP_DOWN_BUTTON";
topDownButton.x = 10;
topDownButton.y = 100;
stage.addChild(topDownButton);
var topDownButtonShape = new createjs.Shape;
topDownButtonShape.graphics.beginFill("#ff9e35").beginStroke("#e17a0f").drawRoundRect(0, 0, 120, 60, 5);
topDownButton.addChild(topDownButtonShape);
var topDownButtonText = new createjs.Text("Top-Down\nView", "16px sans-serif", "#FFF");
topDownButtonText.textAlign = "center";
topDownButtonText.y = 10;
topDownButtonText.x = 60;
topDownButton.addChild(topDownButtonText);
var topDownButtonHelper = new createjs.ButtonHelper(topDownButton);
topDownButton.addEventListener("click", handleTopDownButtonClicked);
if (system == 3) {
addHeightKeys();
var heightTintButton = new createjs.Container;
heightTintButton.name = "HEIGHT_TINT_BUTTON";
heightTintButton.x = 10;
heightTintButton.y = 280;
stage.addChild(heightTintButton);
var heightTintButtonShape = new createjs.Shape;
heightTintButtonShape.graphics.beginFill("#ff9e35").beginStroke("#e17a0f").drawRoundRect(0, 0, 120, 60, 5);
heightTintButton.addChild(heightTintButtonShape);
heightTintButtonText = new createjs.Text("Show\nHeight Tints", "16px sans-serif", "#FFF");
heightTintButtonText.textAlign = "center";
heightTintButtonText.y = 10;
heightTintButtonText.x = 60;
heightTintButton.addChild(heightTintButtonText);
var heightTintButtonHelper = new createjs.ButtonHelper(heightTintButton);
heightTintButton.addEventListener("click", handleHeightTintButtonClicked);
var autoRailsButton = new createjs.Container;
autoRailsButton.x = 10;
autoRailsButton.y = 160;
autoRailsButton.name = "AUTO_RAILS_BUTTON";
stage.addChild(autoRailsButton);
var autoRailsButtonShape = new createjs.Shape;
autoRailsButtonShape.graphics.beginFill("#ff9e35").beginStroke("#e17a0f").drawRoundRect(0, 0, 120, 60, 5);
autoRailsButton.addChild(autoRailsButtonShape);
var autoRailsButtonText = new createjs.Text("Auto Add Rails", "16px sans-serif", "#FFF");
autoRailsButtonText.textAlign = "center";
autoRailsButtonText.y = 20;
autoRailsButtonText.x = 60;
autoRailsButton.addChild(autoRailsButtonText);
var autoRailsButtonHelper = new createjs.ButtonHelper(autoRailsButton);
autoRailsButton.addEventListener("click", handleAutoRailsButtonClicked);
var undoAutoRailsButton = new createjs.Container;
undoAutoRailsButton.x = 10;
undoAutoRailsButton.y = 220;
undoAutoRailsButton.name = "UNDO_AUTO_RAILS_BUTTON";
stage.addChild(undoAutoRailsButton);
var undoAutoRailsButtonShape = new createjs.Shape;
undoAutoRailsButtonShape.graphics.beginFill("#ff9e35").beginStroke("#e17a0f").drawRoundRect(0, 0, 120, 60, 5);
undoAutoRailsButton.addChild(undoAutoRailsButtonShape);
var undoAutoRailsButtonText = new createjs.Text("Undo Auto\nAdd Rails", "16px sans-serif", "#FFF");
undoAutoRailsButtonText.textAlign = "center";
undoAutoRailsButtonText.y = 10;
undoAutoRailsButtonText.x = 60;
undoAutoRailsButton.addChild(undoAutoRailsButtonText);
var undoAutoRailsButtonHelper = new createjs.ButtonHelper(undoAutoRailsButton);
undoAutoRailsButton.addEventListener("click", handleUndoAutoRailsButtonClicked)
}
}
function showResetWarning() {
var resetWarningContainer = new createjs.Container;
resetWarningContainer.name = "RESET_WARNING_CONTAINER";
stage.addChild(resetWarningContainer);
var resetWarningBackground = new createjs.Shape;
resetWarningBackground.graphics.beginFill("#333").drawRect(0, 0, stage.getBounds().width, stage.getBounds().height);
resetWarningContainer.addChild(resetWarningBackground);
var resetWarningText = new createjs.Text("Resetting will lose all progress.\nContinue?", "40px sans-serif", "#F33");
resetWarningText.y = 50;
resetWarningText.x = stage.getBounds().width / 2;
resetWarningText.textAlign = "center";
resetWarningContainer.addChild(resetWarningText);
var confirmResetButton = new createjs.Container;
confirmResetButton.x = 450;
confirmResetButton.y = 450;
resetWarningContainer.addChild(confirmResetButton);
var confirmResetButtonText = new createjs.Text("Continue", "20px sans-serif", "#F44");
confirmResetButtonText.textAlign = "center";
confirmResetButtonText.y = 20;
confirmResetButtonText.x = 50;
confirmResetButton.addChild(confirmResetButtonText);
var confirmResetButtonShape = new createjs.Shape;
confirmResetButtonShape.graphics.beginStroke("#F44").drawRoundRect(0, 0, 100, 60, 5);
confirmResetButton.addChild(confirmResetButtonShape);
var confirmResetButtonHelper = new createjs.ButtonHelper(confirmResetButton);
confirmResetButton.addEventListener("click", handleConfirmResetButtonClicked);
var cancelResetButton = new createjs.Container;
cancelResetButton.x = 50;
cancelResetButton.y = 450;
resetWarningContainer.addChild(cancelResetButton);
var cancelResetButtonText = new createjs.Text("Cancel", "20px sans-serif", "#F44");
cancelResetButtonText.textAlign = "center";
cancelResetButtonText.y = 20;
cancelResetButtonText.x = 50;
cancelResetButton.addChild(cancelResetButtonText);
var cancelResetButtonShape = new createjs.Shape;
cancelResetButtonShape.graphics.beginStroke("#F44").drawRoundRect(0, 0, 100, 60, 5);
cancelResetButton.addChild(cancelResetButtonShape);
var cancelResetButtonHelper = new createjs.ButtonHelper(cancelResetButton);
cancelResetButton.addEventListener("click", handleCancelResetButtonClicked)
}
function handleResetButtonClicked(event) {
showStartMenu()
}
function handleConfirmResetButtonClicked(event) {
showStartMenu()
}
function handleCancelResetButtonClicked(event) {
stage.removeChild(stage.getChildByName("RESET_WARNING_CONTAINER"))
}
function handleFinishButtonClicked(event) {
if (system != 3) exportImage();
else showAutoRailsPopup(true)
}
function handleZoomInClicked(event) {
if (configuratorContainer.scaleY < 1.41) {
configuratorContainer.scaleX += .1;
configuratorContainer.scaleY += .1
}
}
function handleZoomOutClicked(event) {
if (configuratorContainer.scaleY > .51) {
configuratorContainer.scaleX -= .1;
configuratorContainer.scaleY -= .1
}
}
function focusCanvas() {
stage.removeChild(stage.getChildByName("ZOOM_CONTAINER"));
stage.removeChild(stage.getChildByName("RESET_BUTTON"));
stage.removeChild(stage.getChildByName("FINISH_BUTTON"));
stage.removeChild(stage.getChildByName("INSTRUCTION_TEXT"));
stage.removeChild(stage.getChildByName("BINSTRUCTION_TEXT"));
stage.removeChild(stage.getChildByName("PARTS_MENU_CONTAINER"));
stage.removeChild(stage.getChildByName("TOP_DOWN_BUTTON"));
if (system == 3) {
stage.removeChild(stage.getChildByName("HEIGHT_TINT_BUTTON"));
stage.removeChild(stage.getChildByName("AUTO_RAILS_BUTTON"));
stage.removeChild(stage.getChildByName("UNDO_AUTO_RAILS_BUTTON"));
if (LAST_CLICKED_MAX_ACCESS_PART != null) LAST_CLICKED_MAX_ACCESS_PART.highlight.visible = false
}
stage.update();
stage.canvas.width = 1920;
stage.canvas.height = 1600;
stage.x = 200;
stage.y = 100;
configuratorContainer.x = 0;
configuratorContainer.y = 0;
stage.scaleX = stage.scaleY = .75;
stage.update()
}
function restoreCanvas() {
if (system != 3) stage.removeChild(topDownView);
else stage.removeChild(maxTopDownView);
stage.scaleX = stage.scaleY = 1;
stage.canvas.width = 960;
stage.canvas.height = 800;
stage.x = 0;
stage.y = 0;
stage.update();
showConfiguratorButtons();
if (system != 3) SelectPartMenu(originalPart);
else addMaxRemoveButton();
stage.update()
}
function updateZOrder() {
if (system != 3) {
if (camAngle % 360 == -90 || camAngle % 360 == -180 || camAngle % 360 == 180 || camAngle % 360 == 270) defaultZOrdering();
else inverseZOrdering()
}
}
function defaultPartsOrder() {
var sortFunction = function(obj1, obj2, options) {
if (parts.indexOf(obj1.name) > parts.indexOf(obj2.name)) return 1;
if (parts.indexOf(obj1.name) < parts.indexOf(obj2.name)) return -1;
return 0
};
partsContainer.sortChildren(sortFunction)
}
function defaultZOrdering() {
var sortFunction = function(obj1, obj2, options) {
if (obj1.zOrderMod == obj2.zOrderMod) {
if (parts.indexOf(obj1.name) > parts.indexOf(obj2.name)) return 1;
if (parts.indexOf(obj1.name) < parts.indexOf(obj2.name)) return -1;
return 0
} else {
if (obj1.zOrderMod > obj2.zOrderMod) return 1;
if (obj1.zOrderMod < obj2.zOrderMod) return -1;
return 0
}
};
partsContainer.sortChildren(sortFunction)
}
function inverseZOrdering() {
var sortFunction = function(obj1, obj2, options) {
if (obj1.iZOrderMod == obj2.iZOrderMod) {
if (parts.indexOf(obj1.name) < parts.indexOf(obj2.name)) return 1;
if (parts.indexOf(obj1.name) > parts.indexOf(obj2.name)) return -1;
return 0
} else {
if (obj1.iZOrderMod > obj2.iZOrderMod) return 1;
if (obj1.iZOrderMod < obj2.iZOrderMod) return -1;
return 0
}
};
partsContainer.sortChildren(sortFunction)
}
function handleTopDownButtonClicked(event) {
if (system != 3) stage.addChild(TopDownView());
else stage.addChild(MaxTopDownView())
}
function handleHeightTintButtonClicked(event) {
showHeightTints = !showHeightTints;
if (showHeightTints) {
for (var i = 0; i < heightTints.length; i++) {
heightTints[i].visible = true
}
for (var i = 0; i < heightKeys.length; i++) {
heightKeys[i].visible = true
}
heightTintButtonText.text = "Hide\n Height Tints"
} else {
for (var i = 0; i < heightTints.length; i++) {
heightTints[i].visible = false
}
for (var i = 0; i < heightKeys.length; i++) {
heightKeys[i].visible = false
}
heightTintButtonText.text = "Show\n Height Tints"
}
}
function handleAutoRailsButtonClicked(event) {
showAutoRailsPopup(false)
}
function handleUndoAutoRailsButtonClicked(event) {
removeAutoAddedRails()
}
function showAutoRailsPopup(completed) {
toolTipText.visible = false;
var popup = new createjs.Container;
popup.name = "RAILS_POPUP";
stage.addChild(popup);
var background = new createjs.Shape;
background.graphics.beginFill("rgba(64,64,64,0.5").drawRect(0, 0, 1e3, 1e3);
popup.addChild(background);
var popupShape = new createjs.Shape;
popupShape.graphics.beginFill("#FFF").beginStroke("#e17a0f").drawRoundRect(300, 100, 360, 500, 5);
popup.addChild(popupShape);
var popupText = new createjs.Text('Platforms at 50" heights or greater require \nhandrails for code compliance.\n\nExceptions can be made if the platform is \nalongside a wall or machine that will otherwise\nprevent falls.', "16px sans-serif", "#444");
popupText.x = 320;
popupText.y = 120;
popup.addChild(popupText);
var addAllRailsButton = new createjs.Container;
addAllRailsButton.x = 320;
addAllRailsButton.y = 300;
popup.addChild(addAllRailsButton);
var addAllRailsButtonShape = new createjs.Shape;
addAllRailsButtonShape.graphics.beginFill("#ff9e35").beginStroke("#e17a0f").drawRoundRect(0, 0, 320, 60, 5);
addAllRailsButton.addChild(addAllRailsButtonShape);
var addAllRailsButtonText = new createjs.Text("Close Off All Platforms With Rails", "16px sans-serif", "#FFF");
addAllRailsButtonText.textAlign = "center";
addAllRailsButtonText.y = 20;
addAllRailsButtonText.x = 150;
addAllRailsButton.addChild(addAllRailsButtonText);
var addAllRailsButtonHelper = new createjs.ButtonHelper(addAllRailsButton);
if (!completed) addAllRailsButton.addEventListener("click", handleAddAllRailsButtonClicked);
else addAllRailsButton.addEventListener("click", handleAddAllRailsButtonCompletedClicked);
var add50RailsButton = new createjs.Container;
add50RailsButton.x = 320;
add50RailsButton.y = 380;
popup.addChild(add50RailsButton);
var add50RailsButtonShape = new createjs.Shape;
add50RailsButtonShape.graphics.beginFill("#ff9e35").beginStroke("#e17a0f").drawRoundRect(0, 0, 320, 60, 5);
add50RailsButton.addChild(add50RailsButtonShape);
var add50RailsButtonText = new createjs.Text('Close Off All Platforms 50" or Higher\n With Rails', "16px sans-serif", "#FFF");
add50RailsButtonText.textAlign = "center";
add50RailsButtonText.y = 10;
add50RailsButtonText.x = 150;
add50RailsButton.addChild(add50RailsButtonText);
var add50RailsButtonHelper = new createjs.ButtonHelper(add50RailsButton);
if (!completed) add50RailsButton.addEventListener("click", handleAdd50RailsButtonClicked);
else add50RailsButton.addEventListener("click", handleAdd50RailsButtonCompletedClicked);
var cancelRailsPopupButton = new createjs.Container;
cancelRailsPopupButton.x = 320;
cancelRailsPopupButton.y = 460;
popup.addChild(cancelRailsPopupButton);
var cancelRailsPopupButtonShape = new createjs.Shape;
cancelRailsPopupButtonShape.graphics.beginFill("#ff9e35").beginStroke("#e17a0f").drawRoundRect(0, 0, 320, 60, 5);
cancelRailsPopupButton.addChild(cancelRailsPopupButtonShape);
var cancelRailsPopupButtonText = new createjs.Text("Cancel", "16px sans-serif", "#FFF");
cancelRailsPopupButtonText.y = 20;
if (completed) {
cancelRailsPopupButtonText.y = 10;
cancelRailsPopupButtonText.text = "I Have Already Added the Rails\nNeeded for Code Compliance"
}
cancelRailsPopupButtonText.textAlign = "center";
cancelRailsPopupButtonText.x = 150;
cancelRailsPopupButton.addChild(cancelRailsPopupButtonText);
var cancelRailsPopupButtonHelper = new createjs.ButtonHelper(cancelRailsPopupButton);
if (!completed) cancelRailsPopupButton.addEventListener("click", handleCancelRailsPopupButtonClicked);
else cancelRailsPopupButton.addEventListener("click", handleCancelRailsCompleteButtonClicked)
}
function handleAddAllRailsButtonClicked(event) {
autoAddRails(true);
stage.removeChild(stage.getChildByName("RAILS_POPUP"))
}
function handleAdd50RailsButtonClicked(event) {
autoAddRails(false);
stage.removeChild(stage.getChildByName("RAILS_POPUP"))
}
function handleAddAllRailsButtonCompletedClicked(event) {
autoAddRails(true);
stage.removeChild(stage.getChildByName("RAILS_POPUP"));
exportImage()
}
function handleAdd50RailsButtonCompletedClicked(event) {
autoAddRails(false);
stage.removeChild(stage.getChildByName("RAILS_POPUP"));
exportImage()
}
function handleCancelRailsPopupButtonClicked(event) {
stage.removeChild(stage.getChildByName("RAILS_POPUP"))
}
function handleCancelRailsCompleteButtonClicked(event) {
stage.removeChild(stage.getChildByName("RAILS_POPUP"));
exportImage()
}
var PARTS = {
URTSB36: URTSB36(true),
URTL502: URTL502(true),
URTL502E: URTL502E(true),
URTL503: URTL503(true),
URTL503E: URTL503E(true),
URSL20: URSL20(true),
URTRK1: URTRK1(true),
URTOS3636: URTOS3636(true),
URTTP20L: URTTP20L(true),
URTTP20R: URTTP20R(true),
RT_LADDER50END: RT_LADDER50END(true),
RT_LADDER90END: RT_LADDER90END(true),
RT_LEGS: RT_LEGS(true),
RT_LEFTTURN: RT_LEFTTURN(true),
RT_RIGHTTURN: RT_RIGHTTURN(true),
UCB30246: UCB30246(true),
UCB20246: UCB20246(true),
CO_LEFTTURN: CO_LEFTTURN(true),
CO_RIGHTTURN: CO_RIGHTTURN(true),
CO_LADDER50END: CO_LADDER50END(true),
CO_LADDER75END: CO_LADDER75END(true),
CO_LADDER90END: CO_LADDER90END(true),
CO_LEGS: CO_LEGS(true),
URK: URK(true),
UAP3636: UAP3636(true),
UAP0250U: UAP0250U(true),
UAP0290U: UAP0290U(true),
UAP0250D: UAP0250D(true),
UAP0290D: UAP0290D(true),
UAP0350U: UAP0350U(true),
UAP0390U: UAP0390U(true),
UAP0350D: UAP0350D(true),
UAP0390D: UAP0390D(true),
UAP0450U: UAP0450U(true),
UAP0490U: UAP0490U(true),
UAP0450D: UAP0450D(true),
UAP0490D: UAP0490D(true),
UAP0550U: UAP0550U(true),
UAP0590U: UAP0590U(true),
UAP0550D: UAP0550D(true),
UAP0590D: UAP0590D(true),
UAP0650U: UAP0650U(true),
UAP0690U: UAP0690U(true),
UAP0650D: UAP0650D(true),
UAP0690D: UAP0690D(true),
UAP0750U: UAP0750U(true),
UAP0790U: UAP0790U(true),
UAP0750D: UAP0750D(true),
UAP0790D: UAP0790D(true),
UAP0850U: UAP0850U(true),
UAP0890U: UAP0890U(true),
UAP0850D: UAP0850D(true),
UAP0890D: UAP0890D(true),
UAP0950U: UAP0950U(true),
UAP0990U: UAP0990U(true),
UAP0950D: UAP0950D(true),
UAP0990D: UAP0990D(true),
UAP1050U: UAP1050U(true),
UAP1090U: UAP1090U(true),
UAP1050D: UAP1050D(true),
UAP1090D: UAP1090D(true),
UAP1150U: UAP1150U(true),
UAP1190U: UAP1190U(true),
UAP1150D: UAP1150D(true),
UAP1190D: UAP1190D(true),
UAPHR1: UAPHR1(true)
};
function refreshParts() {
PARTS["RT_LADDER50END"] = RT_LADDER50END(true);
PARTS["RT_LADDER90END"] = RT_LADDER90END(true);
PARTS["RT_LEGS"] = RT_LEGS(true);
PARTS["RT_LEFTTURN"] = RT_LEFTTURN(true);
PARTS["RT_RIGHTTURN"] = RT_RIGHTTURN(true);
PARTS["CO_LEFTTURN"] = CO_LEFTTURN(true);
PARTS["CO_RIGHTTURN"] = CO_RIGHTTURN(true);
PARTS["CO_LADDER50END"] = CO_LADDER50END(true);
PARTS["CO_LADDER75END"] = CO_LADDER75END(true);
PARTS["CO_LADDER90END"] = CO_LADDER90END(true);
PARTS["CO_LEGS"] = CO_LEGS(true)
}
var MOUNT_SLOT = 1;
var LEG_SLOT = 2;
function URTSB36(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(-32, 26), new createjs.Point(-60, -36), new createjs.Point(38, 60), new createjs.Point(-10, -110)],
connectorPoint: [new createjs.Point(36, 60), new createjs.Point(-26, 28), new createjs.Point(28, -26), new createjs.Point(60, 36)],
rotationOffsets: [new createjs.Point(0, 0), new createjs.Point(-60, 60), new createjs.Point(16, 42), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/URTSB36.PNG"],
frames: {
width: 141,
height: 163
},
animations: {}
}),
spriteCenter: new createjs.Point(70, 81),
altSkus: false,
length: 40,
width: 42,
legsNeeded: true,
legsLimit: 120,
actsAsLegs: false,
frameOffset: 0,
childFrameOffset: 0,
description: '40"L Bridge Span',
name: '40"L Bridge Span',
sku: "URTSB36",
gsku: "29RJ32",
connectableParts: ["URTSB36", "RT_LADDER50END", "RT_LADDER90END", "RT_LEFTTURN", "RT_RIGHTTURN", "URTRK1", "RT_LEGS"],
usesSlot: 1,
hasMountSlot: true,
hasLegSlot: true,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 1, 1, -1],
forceDrawLast: false,
forceDrawLastFrame: 0,
bridgeSpan: true,
turnPiece: false,
legs: false,
rails: false,
ladder: false
}
}
function URTL502(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(-19, 12), new createjs.Point(-18, -26), new createjs.Point(-26, -18), new createjs.Point(12, -19)],
connectorPoint: [new createjs.Point(18, -18), new createjs.Point(24, 26), new createjs.Point(26, 26), new createjs.Point(-18, 18)],
rotationOffsets: [new createjs.Point(0, -40), new createjs.Point(0, -40), new createjs.Point(0, 0), new createjs.Point(20, 70)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/URTL502.PNG"],
frames: {
width: 116,
height: 189
},
animations: {}
}),
spriteCenter: new createjs.Point(58, 94),
altSkus: false,
length: 30,
width: 46.25,
legsNeeded: false,
legsLimit: 4,
actsAsLegs: true,
frameOffset: 0,
childFrameOffset: 0,
description: "2 Step 50° Ladder",
name: "2 Step 50°\nLadder",
sku: "URTL502",
gsku: "29RJ17",
connectableParts: ["URTSB36", "RT_LEFTTURN", "RT_RIGHTTURN"],
usesSlot: 1,
hasMountSlot: true,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
bridgeSpan: false,
turnPiece: false,
legs: false,
rails: false,
ladder: true
}
}
function URTL502E(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(26, 26), new createjs.Point(-18, -26), new createjs.Point(-26, -18), new createjs.Point(0, 0)],
connectorPoint: [new createjs.Point(24, 26), new createjs.Point(-18, 18), new createjs.Point(18, -12), new createjs.Point(48, 42)],
rotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(18, 68), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/URTL502E.PNG"],
frames: {
width: 116,
height: 189
},
animations: {}
}),
spriteCenter: new createjs.Point(58, 94),
altSkus: false,
length: 30,
width: 46.25,
legsNeeded: false,
legsLimit: 4,
actsAsLegs: true,
frameOffset: 0,
childFrameOffset: 0,
description: "2 Step 50° Ladder",
name: "2 Step 50°\nLadder",
sku: "URTL502",
gsku: "29RJ17",
connectableParts: ["URTSB36", "RT_LEFTTURN", "RT_RIGHTTURN"],
usesSlot: 1,
hasMountSlot: false,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
bridgeSpan: false,
turnPiece: false,
legs: false,
rails: false,
ladder: true
}
}
function URTL902(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(0, 20), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
connectorPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
rotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/URTL902.PNG"],
frames: {
width: 111,
height: 181
},
animations: {}
}),
spriteCenter: new createjs.Point(55, 90),
altSkus: false,
length: 10,
width: 52.25,
legsNeeded: false,
legsLimit: 4,
actsAsLegs: true,
frameOffset: 0,
childFrameOffset: 0,
description: "2 Step 90° Ladder",
name: "2 Step 90°\nLadder",
sku: "URTL902",
gsku: "29RJ22",
connectableParts: ["URTSB36", "RT_LEFTTURN", "RT_RIGHTTURN"],
usesSlot: 1,
hasMountSlot: true,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
bridgeSpan: false,
turnPiece: false,
legs: false,
rails: false,
ladder: true
}
}
function URTL902E(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
connectorPoint: [new createjs.Point(6, 26), new createjs.Point(20, 74), new createjs.Point(0, -20), new createjs.Point(48, 110)],
rotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/URTL902E.PNG"],
frames: {
width: 111,
height: 181
},
animations: {}
}),
spriteCenter: new createjs.Point(55, 90),
altSkus: false,
length: 10,
width: 52.25,
legsNeeded: false,
legsLimit: 4,
actsAsLegs: true,
frameOffset: 0,
childFrameOffset: 0,
description: "2 Step 90° Ladder",
name: "2 Step 90°\nLadder",
sku: "URTL902",
gsku: "29RJ22",
connectableParts: ["URTSB36", "RT_LEFTTURN", "RT_RIGHTTURN"],
usesSlot: 1,
hasMountSlot: false,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
bridgeSpan: false,
turnPiece: false,
legs: false,
rails: false,
ladder: true
}
}
function URTL503(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(-12, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
connectorPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
rotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/URTL503.PNG"],
frames: {
width: 150,
height: 223
},
animations: {}
}),
spriteCenter: new createjs.Point(75, 111),
altSkus: false,
length: 40,
width: 52.75,
legsNeeded: false,
legsLimit: 4,
actsAsLegs: true,
frameOffset: 0,
childFrameOffset: 0,
description: "3 Step 50° Ladder",
name: "3 Step 50°\nLadder",
sku: "URTL503",
gsku: "29RJ18",
connectableParts: ["URTSB36", "RT_LEFTTURN", "RT_RIGHTTURN"],
usesSlot: 1,
hasMountSlot: true,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
bridgeSpan: false,
turnPiece: false,
legs: false,
rails: false,
ladder: true
}
}
function URTL503E(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
connectorPoint: [new createjs.Point(20, 26), new createjs.Point(10, 100), new createjs.Point(16, 0), new createjs.Point(62, 110)],
rotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/URTL503E.PNG"],
frames: {
width: 150,
height: 223
},
animations: {}
}),
spriteCenter: new createjs.Point(75, 111),
altSkus: false,
length: 40,
width: 52.75,
legsNeeded: false,
legsLimit: 4,
actsAsLegs: true,
frameOffset: 0,
childFrameOffset: 0,
description: "3 Step 50° Ladder",
name: "3 Step 50°\nLadder",
sku: "URTL503",
gsku: "29RJ18",
connectableParts: ["URTSB36", "RT_LEFTTURN", "RT_RIGHTTURN"],
usesSlot: 1,
hasMountSlot: false,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
bridgeSpan: false,
turnPiece: false,
legs: false,
rails: false,
ladder: true
}
}
function URTL903(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(0, 4), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
connectorPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
rotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/URTL903.PNG"],
frames: {
width: 110,
height: 202
},
animations: {}
}),
spriteCenter: new createjs.Point(55, 101),
altSkus: false,
length: 10,
width: 52.25,
legsNeeded: false,
legsLimit: 4,
actsAsLegs: true,
frameOffset: 0,
childFrameOffset: 0,
description: "3 Step 90° Ladder",
name: "3 Step 90°\nLadder",
sku: "URTL903",
gsku: "29RJ23",
connectableParts: ["URTSB36", "RT_LEFTTURN", "RT_RIGHTTURN"],
usesSlot: 1,
hasMountSlot: true,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
bridgeSpan: false,
turnPiece: false,
legs: false,
rails: false,
ladder: true
}
}
function URTL903E(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
connectorPoint: [new createjs.Point(6, 26), new createjs.Point(20, 74), new createjs.Point(0, -20), new createjs.Point(46, 110)],
rotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/URTL903E.PNG"],
frames: {
width: 110,
height: 202
},
animations: {}
}),
spriteCenter: new createjs.Point(55, 90),
altSkus: false,
length: 10,
width: 52.25,
legsNeeded: false,
legsLimit: 4,
actsAsLegs: true,
frameOffset: 0,
childFrameOffset: 0,
description: "3 Step 90° Ladder",
name: "3 Step 90°\nLadder",
sku: "URTL903",
gsku: "29RJ23",
connectableParts: ["URTSB36", "RT_LEFTTURN", "RT_RIGHTTURN"],
usesSlot: 1,
hasMountSlot: false,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
bridgeSpan: false,
turnPiece: false,
legs: false,
rails: false,
ladder: true
}
}
function URTL504(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(-22, -20), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
connectorPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
rotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/URTL504.PNG"],
frames: {
width: 165,
height: 252
},
animations: {}
}),
spriteCenter: new createjs.Point(82, 126),
altSkus: false,
length: 50,
width: 52.75,
legsNeeded: false,
legsLimit: 4,
actsAsLegs: true,
frameOffset: 0,
childFrameOffset: 0,
description: "4 Step 50° Ladder",
name: "4 Step 50°\nLadder",
sku: "URTL504",
gsku: "29RJ19",
connectableParts: ["URTSB36", "RT_LEFTTURN", "RT_RIGHTTURN"],
usesSlot: 1,
hasMountSlot: true,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
bridgeSpan: false,
turnPiece: false,
legs: false,
rails: false,
ladder: true
}
}
function URTL504E(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
connectorPoint: [new createjs.Point(54, 46), new createjs.Point(-24, 78), new createjs.Point(-4, -16), new createjs.Point(40, 90)],
rotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/URTL504E.PNG"],
frames: {
width: 165,
height: 252
},
animations: {}
}),
spriteCenter: new createjs.Point(58, 94),
altSkus: false,
length: 50,
width: 52.75,
legsNeeded: false,
legsLimit: 4,
actsAsLegs: true,
frameOffset: 0,
childFrameOffset: 0,
description: "4 Step 50° Ladder",
name: "4 Step 50°\nLadder",
sku: "URTL504",
gsku: "29RJ19",
connectableParts: ["URTSB36", "RT_LEFTTURN", "RT_RIGHTTURN"],
usesSlot: 1,
hasMountSlot: false,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
bridgeSpan: false,
turnPiece: false,
legs: false,
rails: false,
ladder: true
}
}
function URTL904(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(0, 20), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
connectorPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
rotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/URTL904.PNG"],
frames: {
width: 110,
height: 223
},
animations: {}
}),
spriteCenter: new createjs.Point(55, 90),
altSkus: false,
length: 10,
width: 52.25,
legsNeeded: false,
legsLimit: 4,
actsAsLegs: true,
frameOffset: 0,
childFrameOffset: 0,
description: "4 Step 90° Ladder",
name: "4 Step 90°\nLadder",
sku: "URTL904",
gsku: "29RJ24X",
connectableParts: ["URTSB36", "RT_LEFTTURN", "RT_RIGHTTURN"],
usesSlot: 1,
hasMountSlot: true,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
bridgeSpan: false,
turnPiece: false,
legs: false,
rails: false,
ladder: true
}
}
function URTL904E(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
connectorPoint: [new createjs.Point(8, 26), new createjs.Point(20, 74), new createjs.Point(-2, -20), new createjs.Point(48, 110)],
rotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/URTL904E.PNG"],
frames: {
width: 110,
height: 223
},
animations: {}
}),
spriteCenter: new createjs.Point(55, 90),
altSkus: false,
length: 10,
width: 52.25,
legsNeeded: false,
legsLimit: 4,
actsAsLegs: true,
frameOffset: 0,
childFrameOffset: 0,
description: "4 Step 90° Ladder",
name: "4 Step 90°\nLadder",
sku: "URTL904",
gsku: "29RJ24X",
connectableParts: ["URTSB36", "RT_LEFTTURN", "RT_RIGHTTURN"],
usesSlot: 1,
hasMountSlot: false,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
bridgeSpan: false,
turnPiece: false,
legs: false,
rails: false,
ladder: true
}
}
function URTL505(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(-32, -30), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
connectorPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
rotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/URTL505.PNG"],
frames: {
width: 180,
height: 280
},
animations: {}
}),
spriteCenter: new createjs.Point(90, 140),
altSkus: false,
length: 60,
width: 52.75,
legsNeeded: false,
legsLimit: 4,
actsAsLegs: true,
frameOffset: 0,
childFrameOffset: 0,
description: "5 Step 50° Ladder",
name: "5 Step 50°\nLadder",
sku: "URTL505",
gsku: "29RJ20",
connectableParts: ["URTSB36", "RT_LEFTTURN", "RT_RIGHTTURN"],
usesSlot: 1,
hasMountSlot: true,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
bridgeSpan: false,
turnPiece: false,
legs: false,
rails: false,
ladder: true
}
}
function URTL505E(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
connectorPoint: [new createjs.Point(38, 54), new createjs.Point(-8, 74), new createjs.Point(30, -20), new createjs.Point(72, 80)],
rotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/URTL505E.PNG"],
frames: {
width: 180,
height: 280
},
animations: {}
}),
spriteCenter: new createjs.Point(90, 90),
altSkus: false,
length: 60,
width: 52.75,
legsNeeded: false,
legsLimit: 4,
actsAsLegs: true,
frameOffset: 0,
childFrameOffset: 0,
description: "5 Step 50° Ladder",
name: "5 Step 50°\nLadder",
sku: "URTL505",
gsku: "29RJ20",
connectableParts: ["URTSB36", "RT_LEFTTURN", "RT_RIGHTTURN"],
usesSlot: 1,
hasMountSlot: false,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
bridgeSpan: false,
turnPiece: false,
legs: false,
rails: false,
ladder: true
}
}
function URTL905(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(0, 20), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
connectorPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
rotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/URTL905.PNG"],
frames: {
width: 110,
height: 244
},
animations: {}
}),
spriteCenter: new createjs.Point(55, 90),
altSkus: false,
length: 10,
width: 52.25,
legsNeeded: false,
legsLimit: 4,
actsAsLegs: true,
frameOffset: 0,
childFrameOffset: 0,
description: "5 Step 90° Ladder",
name: "5 Step 90°\nLadder",
sku: "URTL905",
gsku: "29RJ25",
connectableParts: ["URTSB36", "RT_LEFTTURN", "RT_RIGHTTURN"],
usesSlot: 1,
hasMountSlot: true,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
bridgeSpan: false,
turnPiece: false,
legs: false,
rails: false,
ladder: true
}
}
function URTL905E(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
connectorPoint: [new createjs.Point(8, 26), new createjs.Point(20, 74), new createjs.Point(0, -20), new createjs.Point(48, 110)],
rotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/URTL905E.PNG"],
frames: {
width: 110,
height: 244
},
animations: {}
}),
spriteCenter: new createjs.Point(55, 90),
altSkus: false,
length: 10,
width: 52.25,
legsNeeded: false,
legsLimit: 4,
actsAsLegs: true,
frameOffset: 0,
childFrameOffset: 0,
description: "5 Step 90° Ladder",
name: "5 Step 90°\nLadder",
sku: "URTL905",
gsku: "29RJ25",
connectableParts: ["URTSB36", "RT_LEFTTURN", "RT_RIGHTTURN"],
usesSlot: 1,
hasMountSlot: false,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
bridgeSpan: false,
turnPiece: false,
legs: false,
rails: false,
ladder: true
}
}
function URTL506(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(-32, -30), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
connectorPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
rotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/URTL506.PNG"],
frames: {
width: 195,
height: 303
},
animations: {}
}),
spriteCenter: new createjs.Point(90, 140),
altSkus: false,
length: 70,
width: 52.75,
legsNeeded: false,
legsLimit: 4,
actsAsLegs: true,
frameOffset: 0,
childFrameOffset: 0,
description: "6 Step 50° Ladder",
name: "6 Step 50°\nLadder",
sku: "URTL506",
gsku: "29RJ21",
connectableParts: ["URTSB36", "RT_LEFTTURN", "RT_RIGHTTURN"],
usesSlot: 1,
hasMountSlot: true,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
bridgeSpan: false,
turnPiece: false,
legs: false,
rails: false,
ladder: true
}
}
function URTL506E(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
connectorPoint: [new createjs.Point(44, 26), new createjs.Point(-20, 80), new createjs.Point(30, -20), new createjs.Point(80, 110)],
rotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/URTL506E.PNG"],
frames: {
width: 195,
height: 303
},
animations: {}
}),
spriteCenter: new createjs.Point(90, 90),
altSkus: false,
length: 70,
width: 52.75,
legsNeeded: false,
legsLimit: 4,
actsAsLegs: true,
frameOffset: 0,
childFrameOffset: 0,
description: "6 Step 50° Ladder",
name: "6 Step 50°\nLadder",
sku: "URTL506",
gsku: "29RJ21",
connectableParts: ["URTSB36", "RT_LEFTTURN", "RT_RIGHTTURN"],
usesSlot: 1,
hasMountSlot: false,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
bridgeSpan: false,
turnPiece: false,
legs: false,
rails: false,
ladder: true
}
}
function URTL906(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(0, 20), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
connectorPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
rotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/URTL906.PNG"],
frames: {
width: 111,
height: 265
},
animations: {}
}),
spriteCenter: new createjs.Point(55, 90),
altSkus: false,
length: 10,
width: 52.25,
legsNeeded: false,
legsLimit: 4,
actsAsLegs: true,
frameOffset: 0,
childFrameOffset: 0,
description: "6 Step 90° Ladder",
name: "6 Step 90°\nLadder",
sku: "URTL906",
gsku: "29RJ26",
connectableParts: ["URTSB36", "RT_LEFTTURN", "RT_RIGHTTURN"],
usesSlot: 1,
hasMountSlot: true,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
bridgeSpan: false,
turnPiece: false,
legs: false,
rails: false,
ladder: true
}
}
function URTL906E(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
connectorPoint: [new createjs.Point(6, 26), new createjs.Point(20, 74), new createjs.Point(0, -20), new createjs.Point(48, 110)],
rotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/URTL906E.PNG"],
frames: {
width: 111,
height: 265
},
animations: {}
}),
spriteCenter: new createjs.Point(55, 90),
altSkus: false,
length: 10,
width: 52.25,
legsNeeded: false,
legsLimit: 4,
actsAsLegs: true,
frameOffset: 0,
childFrameOffset: 0,
description: "6 Step 90° Ladder",
name: "6 Step 90°\nLadder",
sku: "URTL906",
gsku: "29RJ26",
connectableParts: ["URTSB36", "RT_LEFTTURN", "RT_RIGHTTURN"],
usesSlot: 1,
hasMountSlot: false,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
bridgeSpan: false,
turnPiece: false,
legs: false,
rails: false,
ladder: true
}
}
function URSL20(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
connectorPoint: [new createjs.Point(2, -10), new createjs.Point(30, -36), new createjs.Point(0, -36), new createjs.Point(45, 0)],
rotationOffsets: [new createjs.Point(-2, 40), new createjs.Point(0, 0), new createjs.Point(-5, 140), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/URSL20.PNG"],
frames: {
width: 113,
height: 133
},
animations: {}
}),
spriteCenter: new createjs.Point(56, 66),
altSkus: false,
length: 0,
width: 42,
legsNeeded: false,
legsLimit: 3,
actsAsLegs: true,
frameOffset: 0,
childFrameOffset: 0,
description: "Legs Kit",
name: "Legs Kit",
sku: "URSL20",
gsku: "29RJ27",
connectableParts: [],
usesSlot: 2,
hasMountSlot: false,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [-5e4, -5e4, -5e4, -5e4],
forceDrawLast: false,
forceDrawLastFrame: 0,
bridgeSpan: false,
turnPiece: false,
legs: true,
rails: false,
ladder: false
}
}
function URSL30(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
connectorPoint: [new createjs.Point(2, -4), new createjs.Point(30, -36), new createjs.Point(0, -36), new createjs.Point(45, 0)],
rotationOffsets: [new createjs.Point(-2, 40), new createjs.Point(0, 0), new createjs.Point(-5, 140), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/URSL30.PNG"],
frames: {
width: 113,
height: 155
},
animations: {}
}),
spriteCenter: new createjs.Point(56, 66),
altSkus: false,
length: 0,
width: 42,
legsNeeded: false,
legsLimit: 3,
actsAsLegs: true,
frameOffset: 0,
childFrameOffset: 0,
description: "Legs Kit",
name: "Legs Kit",
sku: "URSL30",
gsku: "29RJ28",
connectableParts: [],
usesSlot: 2,
hasMountSlot: false,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [-5e4, -5e4, -5e4, -5e4],
forceDrawLast: false,
forceDrawLastFrame: 0,
bridgeSpan: false,
turnPiece: false,
legs: true,
rails: false,
ladder: false
}
}
function URSL40(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
connectorPoint: [new createjs.Point(2, -4), new createjs.Point(30, -36), new createjs.Point(0, -36), new createjs.Point(45, 0)],
rotationOffsets: [new createjs.Point(-2, 40), new createjs.Point(0, 0), new createjs.Point(-5, 140), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/URSL40.PNG"],
frames: {
width: 113,
height: 176
},
animations: {}
}),
spriteCenter: new createjs.Point(56, 66),
altSkus: false,
length: 0,
width: 42,
legsNeeded: false,
legsLimit: 3,
actsAsLegs: true,
frameOffset: 0,
childFrameOffset: 0,
description: "Legs Kit",
name: "Legs Kit",
sku: "URSL40",
gsku: "29RJ29",
connectableParts: [],
usesSlot: 2,
hasMountSlot: false,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [-5e4, -5e4, -5e4, -5e4],
forceDrawLast: false,
forceDrawLastFrame: 0,
bridgeSpan: false,
turnPiece: false,
legs: true,
rails: false,
ladder: false
}
}
function URSL50(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
connectorPoint: [new createjs.Point(2, -4), new createjs.Point(30, -36), new createjs.Point(0, -36), new createjs.Point(45, 0)],
rotationOffsets: [new createjs.Point(-2, 40), new createjs.Point(0, 0), new createjs.Point(-5, 140), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/URSL50.PNG"],
frames: {
width: 113,
height: 197
},
animations: {}
}),
spriteCenter: new createjs.Point(56, 66),
altSkus: false,
length: 0,
width: 42,
legsNeeded: false,
legsLimit: 3,
actsAsLegs: true,
frameOffset: 0,
childFrameOffset: 0,
description: "Legs Kit",
name: "Legs Kit",
sku: "URSL50",
gsku: "29RJ30",
connectableParts: [],
usesSlot: 2,
hasMountSlot: false,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [-5e4, -5e4, -5e4, -5e4],
forceDrawLast: false,
forceDrawLastFrame: 0,
bridgeSpan: false,
turnPiece: false,
legs: true,
rails: false,
ladder: false
}
}
function URSL60(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
connectorPoint: [new createjs.Point(2, -4), new createjs.Point(30, -36), new createjs.Point(0, -36), new createjs.Point(45, 0)],
rotationOffsets: [new createjs.Point(-2, 40), new createjs.Point(0, 0), new createjs.Point(-5, 140), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/URSL60.PNG"],
frames: {
width: 113,
height: 218
},
animations: {}
}),
spriteCenter: new createjs.Point(56, 66),
altSkus: false,
length: 0,
width: 42,
legsNeeded: false,
legsLimit: 3,
actsAsLegs: true,
frameOffset: 0,
childFrameOffset: 0,
description: "Legs Kit",
name: "Legs Kit",
sku: "URSL60",
gsku: "29RJ31",
connectableParts: [],
usesSlot: 2,
hasMountSlot: false,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [-5e4, -5e4, -5e4, -5e4],
forceDrawLast: false,
forceDrawLastFrame: 0,
bridgeSpan: false,
turnPiece: false,
legs: true,
rails: false,
ladder: false
}
}
function URTRK1(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
connectorPoint: [new createjs.Point(5, 45), new createjs.Point(-45, 0), new createjs.Point(0, -45), new createjs.Point(-24, 40)],
rotationOffsets: [new createjs.Point(0, 0), new createjs.Point(70, 52), new createjs.Point(70, 52), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/URTRK1-1.PNG"],
frames: {
width: 74,
height: 126
},
animations: {}
}),
spriteCenter: new createjs.Point(37, 63),
altSkus: false,
length: 0,
width: 42,
legsNeeded: true,
legsLimit: 0,
actsAsLegs: false,
frameOffset: 0,
childFrameOffset: 0,
description: "Rail Kit",
name: "Rail Kit",
sku: "URTRK1",
gsku: "29RJ38",
connectableParts: [],
usesSlot: 1,
hasMountSlot: false,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
bridgeSpan: false,
turnPiece: false,
legs: false,
rails: true,
ladder: false
}
}
function URTOS3636(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false
}
function URTTP20L(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(-64, -60), new createjs.Point(54, 36), new createjs.Point(4, -140), new createjs.Point(-40, 6)],
connectorPoint: [new createjs.Point(32, 36), new createjs.Point(0, 45), new createjs.Point(24, -2), new createjs.Point(110, 52)],
rotationOffsets: [new createjs.Point(-2, 0), new createjs.Point(-20, 50), new createjs.Point(-20, 50), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/URTTP20L.PNG"],
frames: {
width: 163,
height: 212
},
animations: {}
}),
spriteCenter: new createjs.Point(81, 106),
altSkus: false,
length: 52.75,
width: 52.75,
legsNeeded: false,
legsLimit: 3,
actsAsLegs: true,
frameOffset: 0,
childFrameOffset: 1,
description: "Turn Platform",
name: "Turn Platform\n(Left)",
sku: "URTTP20",
gsku: "29RJ33",
canConnectParts: true,
connectableParts: ["URTSB36", "RT_LADDER50END", "RT_LADDER90END", "RT_RIGHTTURN"],
usesSlot: 1,
hasMountSlot: true,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 50, 100, -50],
forceDrawLast: true,
forceDrawLastFrame: 2,
bridgeSpan: false,
turnPiece: true,
legs: false,
rails: false,
ladder: false
}
}
function URTTP20R(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(0, -132), new createjs.Point(-20, 0), new createjs.Point(-64, -60), new createjs.Point(32, 36)],
connectorPoint: [new createjs.Point(48, 40), new createjs.Point(-20, 100), new createjs.Point(40, 0), new createjs.Point(84, 100)],
rotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/URTTP20R.PNG"],
frames: {
width: 163,
height: 212
},
animations: {}
}),
spriteCenter: new createjs.Point(81, 106),
altSkus: false,
length: 52.75,
width: 52.75,
legsNeeded: false,
legsLimit: 3,
actsAsLegs: true,
frameOffset: 0,
childFrameOffset: 3,
description: "Turn Platform",
name: "Turn Platform\n(Right)",
sku: "URTTP20",
gsku: "29RJ33",
connectableParts: ["URTSB36", "RT_LADDER50END", "RT_LADDER90END", "RT_LEFTTURN"],
usesSlot: 1,
hasMountSlot: true,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
bridgeSpan: false,
turnPiece: true,
legs: false,
rails: false,
ladder: false
}
}
function URTTP30L(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(-64, -68), new createjs.Point(52, 28), new createjs.Point(4, -146), new createjs.Point(-40, -6)],
connectorPoint: [new createjs.Point(30, 30), new createjs.Point(-18, 102), new createjs.Point(24, 6), new createjs.Point(90, 110)],
rotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/URTTP30L.PNG"],
frames: {
width: 163,
height: 233
},
animations: {}
}),
spriteCenter: new createjs.Point(81, 116),
altSkus: false,
length: 52.75,
width: 52.75,
legsNeeded: false,
legsLimit: 3,
actsAsLegs: true,
frameOffset: 0,
childFrameOffset: 1,
description: "Turn Platform",
name: "Turn Platform\n(Left)",
sku: "URTTP30",
gsku: "29RJ34",
canConnectParts: true,
connectableParts: ["URTSB36", "RT_LADDER50END", "RT_LADDER90END", "RT_RIGHTTURN"],
usesSlot: 1,
hasMountSlot: true,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 50, 100, -50],
forceDrawLast: true,
forceDrawLastFrame: 2,
bridgeSpan: false,
turnPiece: true,
legs: false,
rails: false,
ladder: false
}
}
function URTTP30R(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(0, -142), new createjs.Point(-24, -10), new createjs.Point(-64, -68), new createjs.Point(32, 28)],
connectorPoint: [new createjs.Point(48, 30), new createjs.Point(-20, 100), new createjs.Point(40, 10), new createjs.Point(84, 110)],
rotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/URTTP30R.PNG"],
frames: {
width: 163,
height: 233
},
animations: {}
}),
spriteCenter: new createjs.Point(81, 116),
altSkus: false,
length: 52.75,
width: 52.75,
legsNeeded: false,
legsLimit: 3,
actsAsLegs: true,
frameOffset: 0,
childFrameOffset: 3,
description: "Turn Platform",
name: "Turn Platform\n(Right)",
sku: "URTTP30",
gsku: "29RJ34",
connectableParts: ["URTSB36", "RT_LADDER50END", "RT_LADDER90END", "RT_LEFTTURN"],
usesSlot: 1,
hasMountSlot: true,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
bridgeSpan: false,
turnPiece: true,
legs: false,
rails: false,
ladder: false
}
}
function URTTP40R(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(0, -148), new createjs.Point(-20, -8), new createjs.Point(-68, -69), new createjs.Point(28, 27)],
connectorPoint: [new createjs.Point(48, 26), new createjs.Point(-20, 104), new createjs.Point(40, 10), new createjs.Point(84, 110)],
rotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/URTTP40R.PNG"],
frames: {
width: 163,
height: 253
},
animations: {}
}),
spriteCenter: new createjs.Point(81, 116),
altSkus: false,
length: 52.75,
width: 52.75,
legsNeeded: false,
legsLimit: 3,
actsAsLegs: true,
frameOffset: 0,
childFrameOffset: 3,
description: "Turn Platform",
name: "Turn Platform\n(Right)",
sku: "URTTP40",
gsku: "29RJ35",
connectableParts: ["URTSB36", "RT_LADDER50END", "RT_LADDER90END", "RT_LEFTTURN"],
usesSlot: 1,
hasMountSlot: true,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
bridgeSpan: false,
turnPiece: true,
legs: false,
rails: false,
ladder: false
}
}
function URTTP40L(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(-66, -68), new createjs.Point(52, 28), new createjs.Point(0, -146), new createjs.Point(-40, -6)],
connectorPoint: [new createjs.Point(30, 26), new createjs.Point(-18, 102), new createjs.Point(24, 10), new createjs.Point(90, 110)],
rotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/URTTP40L.PNG"],
frames: {
width: 163,
height: 253
},
animations: {}
}),
spriteCenter: new createjs.Point(81, 116),
altSkus: false,
length: 52.75,
width: 52.75,
legsNeeded: false,
legsLimit: 3,
actsAsLegs: true,
frameOffset: 0,
childFrameOffset: 1,
description: "Turn Platform",
name: "Turn Platform\n(Left)",
sku: "URTTP40",
gsku: "29RJ35",
canConnectParts: true,
connectableParts: ["URTSB36", "RT_LADDER50END", "RT_LADDER90END", "RT_RIGHTTURN"],
usesSlot: 1,
hasMountSlot: true,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 50, 100, -50],
forceDrawLast: true,
forceDrawLastFrame: 2,
bridgeSpan: false,
turnPiece: true,
legs: false,
rails: false,
ladder: false
}
}
function URTTP50R(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(0, -148), new createjs.Point(-20, -8), new createjs.Point(-68, -69), new createjs.Point(28, 27)],
connectorPoint: [new createjs.Point(48, 26), new createjs.Point(-20, 104), new createjs.Point(40, 10), new createjs.Point(84, 110)],
rotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/URTTP50R.PNG"],
frames: {
width: 163,
height: 276
},
animations: {}
}),
spriteCenter: new createjs.Point(81, 118),
altSkus: false,
length: 52.75,
width: 52.75,
legsNeeded: false,
legsLimit: 3,
actsAsLegs: true,
frameOffset: 0,
childFrameOffset: 3,
description: "Turn Platform",
name: "Turn Platform\n(Right)",
sku: "URTTP50",
gsku: "29RJ36",
connectableParts: ["URTSB36", "RT_LADDER50END", "RT_LADDER90END", "RT_LEFTTURN"],
usesSlot: 1,
hasMountSlot: true,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
bridgeSpan: false,
turnPiece: true,
legs: false,
rails: false,
ladder: false
}
}
function URTTP50L(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(-66, -68), new createjs.Point(52, 28), new createjs.Point(0, -146), new createjs.Point(-40, -6)],
connectorPoint: [new createjs.Point(30, 26), new createjs.Point(-18, 108), new createjs.Point(24, 10), new createjs.Point(90, 110)],
rotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/URTTP50L.PNG"],
frames: {
width: 163,
height: 276
},
animations: {}
}),
spriteCenter: new createjs.Point(81, 118),
altSkus: false,
length: 52.75,
width: 52.75,
legsNeeded: false,
legsLimit: 3,
actsAsLegs: true,
frameOffset: 0,
childFrameOffset: 1,
description: "Turn Platform",
name: "Turn Platform\n(Left)",
sku: "URTTP50",
gsku: "29RJ36",
canConnectParts: true,
connectableParts: ["URTSB36", "RT_LADDER50END", "RT_LADDER90END", "RT_RIGHTTURN"],
usesSlot: 1,
hasMountSlot: true,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 50, 100, -50],
forceDrawLast: true,
forceDrawLastFrame: 2,
bridgeSpan: false,
turnPiece: true,
legs: false,
rails: false,
ladder: false
}
}
function URTTP60R(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(0, -148), new createjs.Point(-20, -8), new createjs.Point(-68, -69), new createjs.Point(28, 27)],
connectorPoint: [new createjs.Point(48, 26), new createjs.Point(-20, 104), new createjs.Point(40, 10), new createjs.Point(84, 110)],
rotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/URTTP50R.PNG"],
frames: {
width: 163,
height: 276
},
animations: {}
}),
spriteCenter: new createjs.Point(81, 118),
altSkus: false,
length: 52.75,
width: 52.75,
legsNeeded: false,
legsLimit: 3,
actsAsLegs: true,
frameOffset: 0,
childFrameOffset: 3,
description: "Turn Platform",
name: "Turn Platform\n(Right)",
sku: "URTTP60",
gsku: "29RJ37",
connectableParts: ["URTSB36", "RT_LADDER50END", "RT_LADDER90END", "RT_LEFTTURN"],
usesSlot: 1,
hasMountSlot: true,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
bridgeSpan: false,
turnPiece: true,
legs: false,
rails: false,
ladder: false
}
}
function URTTP60L(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(-66, -68), new createjs.Point(52, 28), new createjs.Point(0, -146), new createjs.Point(-40, -6)],
connectorPoint: [new createjs.Point(30, 26), new createjs.Point(-18, 108), new createjs.Point(24, 10), new createjs.Point(90, 110)],
rotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/URTTP50L.PNG"],
frames: {
width: 163,
height: 276
},
animations: {}
}),
spriteCenter: new createjs.Point(81, 118),
altSkus: false,
length: 52.75,
width: 52.75,
legsNeeded: false,
legsLimit: 3,
actsAsLegs: true,
frameOffset: 0,
childFrameOffset: 1,
description: "Turn Platform",
name: "Turn Platform\n(Left)",
sku: "URTTP60",
gsku: "29RJ37",
canConnectParts: true,
connectableParts: ["URTSB36", "RT_LADDER50END", "RT_LADDER90END", "RT_RIGHTTURN"],
usesSlot: 1,
hasMountSlot: true,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 50, 100, -50],
forceDrawLast: true,
forceDrawLastFrame: 2,
bridgeSpan: false,
turnPiece: true,
legs: false,
rails: false,
ladder: false
}
}
function UCL5003242(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(-18, 2), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
connectorPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
rotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCL5003242.PNG"],
frames: {
width: 95,
height: 205
},
animations: {}
}),
spriteCenter: new createjs.Point(47, 102),
altSkus: true,
length: 30,
width: 30,
legsNeeded: false,
legsLimit: 4,
actsAsLegs: true,
frameOffset: 0,
childFrameOffset: 0,
description: "3 Step 50° Ladder",
name: "3 Step 50°\nLadder",
sku: "UCL500324X",
gsku: "29RJ18",
gSkus: ["21Y491", "21Y489"],
connectableParts: ["UCB30246", "UCB20246", "CO_LEFTTURN", "CO_RIGHTTURN"],
usesSlot: 1,
hasMountSlot: true,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
bridgeSpan: false,
turnPiece: false,
legs: false,
rails: false,
ladder: true
}
}
function UCL5003242E(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
connectorPoint: [new createjs.Point(20, 34), new createjs.Point(-22, -16), new createjs.Point(14, -10), new createjs.Point(18, -32)],
rotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCL5003242E.PNG"],
frames: {
width: 95,
height: 205
},
animations: {}
}),
spriteCenter: new createjs.Point(47, 92),
altSkus: true,
length: 30,
width: 30,
legsNeeded: false,
legsLimit: 4,
actsAsLegs: true,
frameOffset: 0,
childFrameOffset: 0,
description: "3 Step 50° Ladder",
name: "3 Step 50°\nLadder",
sku: "UCL500324X",
gsku: "29RJ18",
gSkus: ["21Y491", "21Y489"],
connectableParts: [],
usesSlot: 1,
hasMountSlot: false,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
bridgeSpan: false,
turnPiece: false,
legs: false,
rails: false,
ladder: true
}
}
function UCL7503242(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(-6, 4), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
connectorPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
rotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCL7503242.PNG"],
frames: {
width: 72,
height: 192
},
animations: {}
}),
spriteCenter: new createjs.Point(36, 96),
altSkus: true,
length: 21,
width: 30,
legsNeeded: false,
legsLimit: 4,
actsAsLegs: true,
frameOffset: 0,
childFrameOffset: 0,
description: "3 Step 75° Ladder",
name: "3 Step 75°\nLadder",
sku: "UCL750324X",
gsku: "29RJ18",
gSkus: ["21Y495", "21Y493"],
connectableParts: ["UCB30246", "UCB20246", "CO_LEFTTURN", "CO_RIGHTTURN"],
usesSlot: 1,
hasMountSlot: true,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
bridgeSpan: false,
turnPiece: false,
legs: false,
rails: false,
ladder: true
}
}
function UCL7503242E(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
connectorPoint: [new createjs.Point(10, 36), new createjs.Point(-8, -28), new createjs.Point(0, -30), new createjs.Point(8, -34)],
rotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCL7503242E.PNG"],
frames: {
width: 72,
height: 192
},
animations: {}
}),
spriteCenter: new createjs.Point(36, 76),
altSkus: true,
length: 21,
width: 30,
legsNeeded: false,
legsLimit: 4,
actsAsLegs: true,
frameOffset: 0,
childFrameOffset: 0,
description: "3 Step 75° Ladder",
name: "3 Step 75°\nLadder",
sku: "UCL750324X",
gsku: "29RJ18",
gSkus: ["21Y495", "21Y493"],
connectableParts: [],
usesSlot: 1,
hasMountSlot: false,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
bridgeSpan: false,
turnPiece: false,
legs: false,
rails: false,
ladder: true
}
}
function UCL9003242(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(-6, 6), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
connectorPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
rotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCL9003246.PNG"],
frames: {
width: 65,
height: 186
},
animations: {}
}),
spriteCenter: new createjs.Point(32, 93),
altSkus: false,
length: 3,
width: 30,
legsNeeded: false,
legsLimit: 4,
actsAsLegs: true,
frameOffset: 0,
childFrameOffset: 0,
description: "3 Step 90° Ladder",
name: "3 Step 90°\nLadder",
sku: "UCL9003246",
gsku: "21Y497",
connectableParts: ["UCB30246", "UCB20246", "CO_LEFTTURN", "CO_RIGHTTURN"],
usesSlot: 1,
hasMountSlot: true,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
bridgeSpan: false,
turnPiece: false,
legs: false,
rails: false,
ladder: true
}
}
function UCL9003242E(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
connectorPoint: [new createjs.Point(4, 40), new createjs.Point(-4, -32), new createjs.Point(0, -30), new createjs.Point(2, -40)],
rotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCL9003246E.PNG"],
frames: {
width: 65,
height: 186
},
animations: {}
}),
spriteCenter: new createjs.Point(32, 63),
altSkus: false,
length: 3,
width: 30,
legsNeeded: false,
legsLimit: 4,
actsAsLegs: true,
frameOffset: 0,
childFrameOffset: 0,
description: "3 Step 90° Ladder",
name: "3 Step 90°\nLadder",
sku: "UCL9003246",
gsku: "21Y497",
connectableParts: [],
usesSlot: 1,
hasMountSlot: false,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
bridgeSpan: false,
turnPiece: false,
legs: false,
rails: false,
ladder: true
}
}
function UCL5004242(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(-30, -16), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
connectorPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
rotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCL5004242.PNG"],
frames: {
width: 110,
height: 231
},
animations: {}
}),
spriteCenter: new createjs.Point(55, 115),
altSkus: true,
length: 40,
width: 30,
legsNeeded: false,
legsLimit: 4,
actsAsLegs: true,
frameOffset: 0,
childFrameOffset: 0,
description: "4 Step 50° Ladder",
name: "4 Step 50°\nLadder",
sku: "UCL500424X",
gsku: "29RJ18",
gSkus: ["21Y492", "21Y490"],
connectableParts: ["UCB30246", "UCB20246", "CO_LEFTTURN", "CO_RIGHTTURN"],
usesSlot: 1,
hasMountSlot: true,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
bridgeSpan: false,
turnPiece: false,
legs: false,
rails: false,
ladder: true
}
}
function UCL5004242E(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
connectorPoint: [new createjs.Point(28, 36), new createjs.Point(-28, -12), new createjs.Point(24, -10), new createjs.Point(28, -34)],
rotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCL5004242E.PNG"],
frames: {
width: 110,
height: 231
},
animations: {}
}),
spriteCenter: new createjs.Point(55, 95),
altSkus: true,
length: 40,
width: 30,
legsNeeded: false,
legsLimit: 4,
actsAsLegs: true,
frameOffset: 0,
childFrameOffset: 0,
description: "4 Step 50° Ladder",
name: "4 Step 50°\nLadder",
sku: "UCL500424X",
gsku: "29RJ18",
gSkus: ["21Y492", "21Y490"],
connectableParts: [],
usesSlot: 1,
hasMountSlot: false,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
bridgeSpan: false,
turnPiece: false,
legs: false,
rails: false,
ladder: true
}
}
function UCL7504242(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(-10, 4), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
connectorPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
rotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCL7504242.PNG"],
frames: {
width: 77,
height: 215
},
animations: {}
}),
spriteCenter: new createjs.Point(38, 96),
altSkus: true,
length: 28,
width: 30,
legsNeeded: false,
legsLimit: 4,
actsAsLegs: true,
frameOffset: 0,
childFrameOffset: 0,
description: "4 Step 75° Ladder",
name: "4 Step 75°\nLadder",
sku: "UCL750424X",
gsku: "29RJ18",
gSkus: ["21Y496", "21Y494"],
connectableParts: ["UCB30246", "UCB20246", "CO_LEFTTURN", "CO_RIGHTTURN"],
usesSlot: 1,
hasMountSlot: true,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
bridgeSpan: false,
turnPiece: false,
legs: false,
rails: false,
ladder: true
}
}
function UCL7504242E(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
connectorPoint: [new createjs.Point(8, 36), new createjs.Point(-8, -28), new createjs.Point(2, -30), new createjs.Point(8, -36)],
rotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCL7504242E.PNG"],
frames: {
width: 77,
height: 215
},
animations: {}
}),
spriteCenter: new createjs.Point(38, 76),
altSkus: true,
length: 28,
width: 30,
legsNeeded: false,
legsLimit: 4,
actsAsLegs: true,
frameOffset: 0,
childFrameOffset: 0,
description: "4 Step 75° Ladder",
name: "4 Step 75°\nLadder",
sku: "UCL750424X",
gsku: "29RJ18",
gSkus: ["21Y496", "21Y494"],
connectableParts: [],
usesSlot: 1,
hasMountSlot: false,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
bridgeSpan: false,
turnPiece: false,
legs: false,
rails: false,
ladder: true
}
}
function UCL9004242(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(-6, 6), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
connectorPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
rotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCL9004246.PNG"],
frames: {
width: 66,
height: 208
},
animations: {}
}),
spriteCenter: new createjs.Point(33, 93),
altSkus: true,
length: 3,
width: 30,
legsNeeded: false,
legsLimit: 4,
actsAsLegs: true,
frameOffset: 0,
childFrameOffset: 0,
description: "4 Step 90° Ladder",
name: "4 Step 90°\nLadder",
sku: "UCL900424X",
gsku: "21Y498",
connectableParts: ["UCB30246", "UCB20246", "CO_LEFTTURN", "CO_RIGHTTURN"],
usesSlot: 1,
hasMountSlot: true,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
bridgeSpan: false,
turnPiece: false,
legs: false,
rails: false,
ladder: true
}
}
function UCL9004242E(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
connectorPoint: [new createjs.Point(4, 40), new createjs.Point(-4, -32), new createjs.Point(2, -34), new createjs.Point(2, -40)],
rotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCL9004246E.PNG"],
frames: {
width: 66,
height: 208
},
animations: {}
}),
spriteCenter: new createjs.Point(33, 63),
altSkus: false,
length: 3,
width: 30,
legsNeeded: false,
legsLimit: 4,
actsAsLegs: true,
frameOffset: 0,
childFrameOffset: 0,
description: "4 Step 90° Ladder",
name: "4 Step 90°\nLadder",
sku: "UCL9004246",
gsku: "21Y498",
connectableParts: [],
usesSlot: 1,
hasMountSlot: false,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
bridgeSpan: false,
turnPiece: false,
legs: false,
rails: false,
ladder: true
}
}
function UCL5005242(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(-36, -26), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
connectorPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
rotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCL5005242.PNG"],
frames: {
width: 125,
height: 261
},
animations: {}
}),
spriteCenter: new createjs.Point(62, 130),
altSkus: true,
length: 50,
width: 30,
legsNeeded: false,
legsLimit: 4,
actsAsLegs: true,
frameOffset: 0,
childFrameOffset: 0,
description: "5 Step 50° Ladder",
name: "5 Step 50°\nLadder",
sku: "UCL500524X",
gsku: "29RJ18",
gSkus: ["15E905", "15E910"],
connectableParts: ["UCB30246", "UCB20246", "CO_LEFTTURN", "CO_RIGHTTURN"],
usesSlot: 1,
hasMountSlot: true,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
bridgeSpan: false,
turnPiece: false,
legs: false,
rails: false,
ladder: true
}
}
function UCL5005242E(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
connectorPoint: [new createjs.Point(36, 40), new createjs.Point(-34, -8), new createjs.Point(24, -10), new createjs.Point(34, -38)],
rotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCL5005242E.PNG"],
frames: {
width: 125,
height: 261
},
animations: {}
}),
spriteCenter: new createjs.Point(62, 95),
altSkus: true,
length: 50,
width: 30,
legsNeeded: false,
legsLimit: 4,
actsAsLegs: true,
frameOffset: 0,
childFrameOffset: 0,
description: "5 Step 50° Ladder",
name: "5 Step 50°\nLadder",
sku: "UCL500524X",
gsku: "29RJ18",
gSkus: ["15E905", "15E910"],
connectableParts: [],
usesSlot: 1,
hasMountSlot: false,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
bridgeSpan: false,
turnPiece: false,
legs: false,
rails: false,
ladder: true
}
}
function UCL7505242(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(-10, 4), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
connectorPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
rotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCL7505242.PNG"],
frames: {
width: 81,
height: 238
},
animations: {}
}),
spriteCenter: new createjs.Point(38, 96),
altSkus: true,
length: 35,
width: 30,
legsNeeded: false,
legsLimit: 4,
actsAsLegs: true,
frameOffset: 0,
childFrameOffset: 0,
description: "5 Step 75° Ladder",
name: "5 Step 75°\nLadder",
sku: "UCL750524X",
gsku: "29RJ18",
gSkus: ["15E914", "15E919"],
connectableParts: ["UCB30246", "UCB20246", "CO_LEFTTURN", "CO_RIGHTTURN"],
usesSlot: 1,
hasMountSlot: true,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
bridgeSpan: false,
turnPiece: false,
legs: false,
rails: false,
ladder: true
}
}
function UCL7505242E(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
connectorPoint: [new createjs.Point(16, 36), new createjs.Point(-12, -28), new createjs.Point(4, -32), new createjs.Point(8, -40)],
rotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCL7505242E.PNG"],
frames: {
width: 81,
height: 238
},
animations: {}
}),
spriteCenter: new createjs.Point(38, 76),
altSkus: true,
length: 35,
width: 30,
legsNeeded: false,
legsLimit: 4,
actsAsLegs: true,
frameOffset: 0,
childFrameOffset: 0,
description: "5 Step 75° Ladder",
name: "5 Step 75°\nLadder",
sku: "UCL750524X",
gsku: "29RJ18",
gSkus: ["15E914", "15E919"],
connectableParts: [],
usesSlot: 1,
hasMountSlot: false,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
bridgeSpan: false,
turnPiece: false,
legs: false,
rails: false,
ladder: true
}
}
function UCL9005242(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(-6, 31), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
connectorPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
rotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCL9005246.PNG"],
frames: {
width: 66,
height: 229
},
animations: {}
}),
spriteCenter: new createjs.Point(33, 63),
altSkus: false,
length: 3,
width: 30,
legsNeeded: false,
legsLimit: 4,
actsAsLegs: true,
frameOffset: 0,
childFrameOffset: 0,
description: "5 Step 90° Ladder",
name: "5 Step 90°\nLadder",
sku: "UCL9005246",
gsku: "15E924",
connectableParts: ["UCB30246", "UCB20246", "CO_LEFTTURN", "CO_RIGHTTURN"],
usesSlot: 1,
hasMountSlot: true,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
bridgeSpan: false,
turnPiece: false,
legs: false,
rails: false,
ladder: true
}
}
function UCL9005242E(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
connectorPoint: [new createjs.Point(4, 40), new createjs.Point(-4, -32), new createjs.Point(0, -30), new createjs.Point(2, -40)],
rotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCL9005246E.PNG"],
frames: {
width: 65,
height: 229
},
animations: {}
}),
spriteCenter: new createjs.Point(33, 63),
altSkus: false,
length: 3,
width: 30,
legsNeeded: false,
legsLimit: 4,
actsAsLegs: true,
frameOffset: 0,
childFrameOffset: 0,
description: "5 Step 90° Ladder",
name: "5 Step 90°\nLadder",
sku: "UCL9005246",
gsku: "15E924",
connectableParts: [],
usesSlot: 1,
hasMountSlot: false,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
bridgeSpan: false,
turnPiece: false,
legs: false,
rails: false,
ladder: true
}
}
function UCL5006242(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(-36, -26), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
connectorPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
rotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCL5006242.PNG"],
frames: {
width: 139,
height: 288
},
animations: {}
}),
spriteCenter: new createjs.Point(62, 130),
altSkus: true,
length: 60,
width: 30,
legsNeeded: false,
legsLimit: 4,
actsAsLegs: true,
frameOffset: 0,
childFrameOffset: 0,
description: "6 Step 50° Ladder",
name: "6 Step 50°\nLadder",
sku: "UCL500624X",
gsku: "29RJ18",
gSkus: ["15E905", "15E910"],
connectableParts: ["UCB30246", "UCB20246", "CO_LEFTTURN", "CO_RIGHTTURN"],
usesSlot: 1,
hasMountSlot: true,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
bridgeSpan: false,
turnPiece: false,
legs: false,
rails: false,
ladder: true
}
}
function UCL5006242E(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
connectorPoint: [new createjs.Point(48, 50), new createjs.Point(-46, -8), new createjs.Point(28, -10), new createjs.Point(38, -48)],
rotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCL5006242E.PNG"],
frames: {
width: 139,
height: 288
},
animations: {}
}),
spriteCenter: new createjs.Point(62, 95),
altSkus: true,
length: 60,
width: 30,
legsNeeded: false,
legsLimit: 4,
actsAsLegs: true,
frameOffset: 0,
childFrameOffset: 0,
description: "6 Step 50° Ladder",
name: "6 Step 50°\nLadder",
sku: "UCL500624X",
gsku: "29RJ18",
gSkus: ["15E905", "15E910"],
connectableParts: [],
usesSlot: 1,
hasMountSlot: false,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
bridgeSpan: false,
turnPiece: false,
legs: false,
rails: false,
ladder: true
}
}
function UCL7506242(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(-10, 4), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
connectorPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
rotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCL7506242.PNG"],
frames: {
width: 86,
height: 262
},
animations: {}
}),
spriteCenter: new createjs.Point(38, 96),
altSkus: true,
length: 42,
width: 30,
legsNeeded: false,
legsLimit: 4,
actsAsLegs: true,
frameOffset: 0,
childFrameOffset: 0,
description: "6 Step 75° Ladder",
name: "6 Step 75°\nLadder",
sku: "UCL750624X",
gsku: "29RJ18",
gSkus: ["15E915", "15E920"],
connectableParts: ["UCB30246", "UCB20246", "CO_LEFTTURN", "CO_RIGHTTURN"],
usesSlot: 1,
hasMountSlot: true,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
bridgeSpan: false,
turnPiece: false,
legs: false,
rails: false,
ladder: true
}
}
function UCL7506242E(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
connectorPoint: [new createjs.Point(16, 40), new createjs.Point(-18, -28), new createjs.Point(2, -30), new createjs.Point(10, -40)],
rotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCL7506242E.PNG"],
frames: {
width: 86,
height: 262
},
animations: {}
}),
spriteCenter: new createjs.Point(38, 76),
altSkus: true,
length: 42,
width: 30,
legsNeeded: false,
legsLimit: 4,
actsAsLegs: true,
frameOffset: 0,
childFrameOffset: 0,
description: "6 Step 75° Ladder",
name: "6 Step 75°\nLadder",
sku: "UCL750624X",
gsku: "29RJ18",
gSkus: ["15E915", "15E920"],
connectableParts: [],
usesSlot: 1,
hasMountSlot: false,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
bridgeSpan: false,
turnPiece: false,
legs: false,
rails: false,
ladder: true
}
}
function UCL9006242(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(-6, 31), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
connectorPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
rotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCL9006246.PNG"],
frames: {
width: 66,
height: 250
},
animations: {}
}),
spriteCenter: new createjs.Point(33, 63),
altSkus: false,
length: 3,
width: 30,
legsNeeded: false,
legsLimit: 4,
actsAsLegs: true,
frameOffset: 0,
childFrameOffset: 0,
description: "6 Step 90° Ladder",
name: "6 Step 90°\nLadder",
sku: "UCL9006246",
gsku: "15E925",
connectableParts: ["UCB30246", "UCB20246", "CO_LEFTTURN", "CO_RIGHTTURN"],
usesSlot: 1,
hasMountSlot: true,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
bridgeSpan: false,
turnPiece: false,
legs: false,
rails: false,
ladder: true
}
}
function UCL9006242E(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
connectorPoint: [new createjs.Point(4, 40), new createjs.Point(-4, -32), new createjs.Point(0, -30), new createjs.Point(2, -40)],
rotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCL9006246E.PNG"],
frames: {
width: 65,
height: 250
},
animations: {}
}),
spriteCenter: new createjs.Point(33, 63),
altSkus: false,
length: 3,
width: 30,
legsNeeded: false,
legsLimit: 4,
actsAsLegs: true,
frameOffset: 0,
childFrameOffset: 0,
description: "6 Step 90° Ladder",
name: "6 Step 90°\nLadder",
sku: "UCL9006246",
gsku: "15E925",
connectableParts: [],
usesSlot: 1,
hasMountSlot: false,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
bridgeSpan: false,
turnPiece: false,
legs: false,
rails: false,
ladder: true
}
}
function UCL5007242(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(-36, -26), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
connectorPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
rotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCL5007242.PNG"],
frames: {
width: 153,
height: 317
},
animations: {}
}),
spriteCenter: new createjs.Point(62, 130),
altSkus: true,
length: 70,
width: 30,
legsNeeded: false,
legsLimit: 4,
actsAsLegs: true,
frameOffset: 0,
childFrameOffset: 0,
description: "7 Step 50° Ladder",
name: "7 Step 50°\nLadder",
sku: "UCL500724X",
gsku: "29RJ18",
gSkus: ["15E906", "15E911"],
connectableParts: ["UCB30246", "UCB20246", "CO_LEFTTURN", "CO_RIGHTTURN"],
usesSlot: 1,
hasMountSlot: true,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
bridgeSpan: false,
turnPiece: false,
legs: false,
rails: false,
ladder: true
}
}
function UCL5007242E(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
connectorPoint: [new createjs.Point(62, 56), new createjs.Point(-62, -10), new createjs.Point(28, -10), new createjs.Point(38, -54)],
rotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCL5007242E.PNG"],
frames: {
width: 153,
height: 317
},
animations: {}
}),
spriteCenter: new createjs.Point(62, 95),
altSkus: true,
length: 70,
width: 30,
legsNeeded: false,
legsLimit: 4,
actsAsLegs: true,
frameOffset: 0,
childFrameOffset: 0,
description: "7 Step 50° Ladder",
name: "7 Step 50°\nLadder",
sku: "UCL500724X",
gsku: "29RJ18",
gSkus: ["15E906", "15E911"],
connectableParts: [],
usesSlot: 1,
hasMountSlot: false,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
bridgeSpan: false,
turnPiece: false,
legs: false,
rails: false,
ladder: true
}
}
function UCL7507242(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(-10, 4), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
connectorPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
rotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCL7507242.PNG"],
frames: {
width: 90,
height: 285
},
animations: {}
}),
spriteCenter: new createjs.Point(38, 96),
altSkus: true,
length: 49,
width: 30,
legsNeeded: false,
legsLimit: 4,
actsAsLegs: true,
frameOffset: 0,
childFrameOffset: 0,
description: "7 Step 75° Ladder",
name: "7 Step 75°\nLadder",
sku: "UCL750724X",
gsku: "29RJ18",
gSkus: ["15E916", "15E921"],
connectableParts: ["UCB30246", "UCB20246", "CO_LEFTTURN", "CO_RIGHTTURN"],
usesSlot: 1,
hasMountSlot: true,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
bridgeSpan: false,
turnPiece: false,
legs: false,
rails: false,
ladder: true
}
}
function UCL7507242E(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
connectorPoint: [new createjs.Point(26, 46), new createjs.Point(-24, -28), new createjs.Point(2, -30), new createjs.Point(10, -44)],
rotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCL7507242E.PNG"],
frames: {
width: 90,
height: 285
},
animations: {}
}),
spriteCenter: new createjs.Point(38, 76),
altSkus: true,
length: 49,
width: 30,
legsNeeded: false,
legsLimit: 4,
actsAsLegs: true,
frameOffset: 0,
childFrameOffset: 0,
description: "7 Step 75° Ladder",
name: "7 Step 75°\nLadder",
sku: "UCL750724X",
gsku: "29RJ18",
gSkus: ["15E916", "15E921"],
connectableParts: [],
usesSlot: 1,
hasMountSlot: false,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
bridgeSpan: false,
turnPiece: false,
legs: false,
rails: false,
ladder: true
}
}
function UCL9007242(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(-6, 31), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
connectorPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
rotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCL9007246.PNG"],
frames: {
width: 66,
height: 271
},
animations: {}
}),
spriteCenter: new createjs.Point(33, 63),
altSkus: false,
length: 3,
width: 30,
legsNeeded: false,
legsLimit: 4,
actsAsLegs: true,
frameOffset: 0,
childFrameOffset: 0,
description: "7 Step 90° Ladder",
name: "7 Step 90°\nLadder",
sku: "UCL9007246",
gsku: "15E926",
connectableParts: ["UCB30246", "UCB20246", "CO_LEFTTURN", "CO_RIGHTTURN"],
usesSlot: 1,
hasMountSlot: true,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
bridgeSpan: false,
turnPiece: false,
legs: false,
rails: false,
ladder: true
}
}
function UCL9007242E(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
connectorPoint: [new createjs.Point(4, 40), new createjs.Point(-4, -36), new createjs.Point(0, -34), new createjs.Point(2, -40)],
rotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCL9007246E.PNG"],
frames: {
width: 65,
height: 271
},
animations: {}
}),
spriteCenter: new createjs.Point(33, 63),
altSkus: false,
length: 3,
width: 52.75,
legsNeeded: false,
legsLimit: 4,
actsAsLegs: true,
frameOffset: 0,
childFrameOffset: 0,
description: "7 Step 90° Ladder",
name: "7 Step 90°\nLadder",
sku: "UCL9007246",
gsku: "15E926",
connectableParts: [],
usesSlot: 1,
hasMountSlot: false,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
bridgeSpan: false,
turnPiece: false,
legs: false,
rails: false,
ladder: true
}
}
function UCL5008242(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(-36, -26), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
connectorPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
rotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCL5008242.PNG"],
frames: {
width: 168,
height: 344
},
animations: {}
}),
spriteCenter: new createjs.Point(62, 130),
altSkus: true,
length: 80,
width: 30,
legsNeeded: false,
legsLimit: 4,
actsAsLegs: true,
frameOffset: 0,
childFrameOffset: 0,
description: "8 Step 50° Ladder",
name: "8 Step 50°\nLadder",
sku: "UCL500824X",
gsku: "29RJ18",
gSkus: ["15E908", "15E912"],
connectableParts: ["UCB30246", "UCB20246", "CO_LEFTTURN", "CO_RIGHTTURN"],
usesSlot: 1,
hasMountSlot: true,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
bridgeSpan: false,
turnPiece: false,
legs: false,
rails: false,
ladder: true
}
}
function UCL5008242E(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
connectorPoint: [new createjs.Point(78, 66), new createjs.Point(-80, -8), new createjs.Point(32, -8), new createjs.Point(38, -60)],
rotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCL5008242E.PNG"],
frames: {
width: 168,
height: 344
},
animations: {}
}),
spriteCenter: new createjs.Point(62, 95),
altSkus: true,
length: 80,
width: 30,
legsNeeded: false,
legsLimit: 4,
actsAsLegs: true,
frameOffset: 0,
childFrameOffset: 0,
description: "8 Step 50° Ladder",
name: "8 Step 50°\nLadder",
sku: "UCL500824X",
gsku: "29RJ18",
gSkus: ["15E908", "15E912"],
connectableParts: [],
usesSlot: 1,
hasMountSlot: false,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
bridgeSpan: false,
turnPiece: false,
legs: false,
rails: false,
ladder: true
}
}
function UCL7508242(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(-10, 4), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
connectorPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
rotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCL7508242.PNG"],
frames: {
width: 94,
height: 308
},
animations: {}
}),
spriteCenter: new createjs.Point(38, 96),
altSkus: true,
length: 56,
width: 30,
legsNeeded: false,
legsLimit: 4,
actsAsLegs: true,
frameOffset: 0,
childFrameOffset: 0,
description: "8 Step 75° Ladder",
name: "8 Step 75°\nLadder",
sku: "UCL750824X",
gsku: "29RJ18",
gSkus: ["15E917", "15E922"],
connectableParts: ["UCB30246", "UCB20246", "CO_LEFTTURN", "CO_RIGHTTURN"],
usesSlot: 1,
hasMountSlot: true,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
bridgeSpan: false,
turnPiece: false,
legs: false,
rails: false,
ladder: true
}
}
function UCL7508242E(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
connectorPoint: [new createjs.Point(26, 46), new createjs.Point(-26, -28), new createjs.Point(2, -30), new createjs.Point(10, -44)],
rotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCL7508242E.PNG"],
frames: {
width: 94,
height: 308
},
animations: {}
}),
spriteCenter: new createjs.Point(38, 76),
altSkus: true,
length: 56,
width: 30,
legsNeeded: false,
legsLimit: 4,
actsAsLegs: true,
frameOffset: 0,
childFrameOffset: 0,
description: "8 Step 75° Ladder",
name: "8 Step 75°\nLadder",
sku: "UCL750824X",
gsku: "29RJ18",
gSkus: ["15E917", "15E922"],
connectableParts: [],
usesSlot: 1,
hasMountSlot: false,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
bridgeSpan: false,
turnPiece: false,
legs: false,
rails: false,
ladder: true
}
}
function UCL9008242(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(-6, 31), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
connectorPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
rotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCL9008246.PNG"],
frames: {
width: 66,
height: 292
},
animations: {}
}),
spriteCenter: new createjs.Point(33, 65),
altSkus: false,
length: 3,
width: 30,
legsNeeded: false,
legsLimit: 4,
actsAsLegs: true,
frameOffset: 0,
childFrameOffset: 0,
description: "8 Step 90° Ladder",
name: "8 Step 90°\nLadder",
sku: "UCL9008246",
gsku: "15E927",
connectableParts: ["UCB30246", "UCB20246", "CO_LEFTTURN", "CO_RIGHTTURN"],
usesSlot: 1,
hasMountSlot: true,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
bridgeSpan: false,
turnPiece: false,
legs: false,
rails: false,
ladder: true
}
}
function UCL9008242E(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
connectorPoint: [new createjs.Point(4, 40), new createjs.Point(-4, -36), new createjs.Point(0, -36), new createjs.Point(8, -40)],
rotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCL9008246E.PNG"],
frames: {
width: 65,
height: 292
},
animations: {}
}),
spriteCenter: new createjs.Point(33, 63),
altSkus: false,
length: 3,
width: 30,
legsNeeded: false,
legsLimit: 4,
actsAsLegs: true,
frameOffset: 0,
childFrameOffset: 0,
description: "8 Step 90° Ladder",
name: "8 Step 90°\nLadder",
sku: "UCL9008246",
gsku: "15E927",
connectableParts: [],
usesSlot: 1,
hasMountSlot: false,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
bridgeSpan: false,
turnPiece: false,
legs: false,
rails: false,
ladder: true
}
}
function UCL5009242(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(-36, -26), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
connectorPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
rotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCL5009242.PNG"],
frames: {
width: 182,
height: 373
},
animations: {}
}),
spriteCenter: new createjs.Point(62, 130),
altSkus: true,
length: 90,
width: 30,
legsNeeded: false,
legsLimit: 4,
actsAsLegs: true,
frameOffset: 0,
childFrameOffset: 0,
description: "9 Step 50° Ladder",
name: "9 Step 50°\nLadder",
sku: "UCL500924X",
gsku: "29RJ18",
gSkus: ["15E908", "15E913"],
connectableParts: ["UCB30246", "UCB20246", "CO_LEFTTURN", "CO_RIGHTTURN"],
usesSlot: 1,
hasMountSlot: true,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
bridgeSpan: false,
turnPiece: false,
legs: false,
rails: false,
ladder: true
}
}
function UCL5009242E(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
connectorPoint: [new createjs.Point(92, 74), new createjs.Point(-94, -10), new createjs.Point(28, -8), new createjs.Point(33, -70)],
rotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCL5009242E.PNG"],
frames: {
width: 182,
height: 373
},
animations: {}
}),
spriteCenter: new createjs.Point(62, 95),
altSkus: true,
length: 90,
width: 30,
legsNeeded: false,
legsLimit: 4,
actsAsLegs: true,
frameOffset: 0,
childFrameOffset: 0,
description: "9 Step 50° Ladder",
name: "9 Step 50°\nLadder",
sku: "UCL500924X",
gsku: "29RJ18",
gSkus: ["15E908", "15E913"],
connectableParts: [],
usesSlot: 1,
hasMountSlot: false,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
bridgeSpan: false,
turnPiece: false,
legs: false,
rails: false,
ladder: true
}
}
function UCL7509242(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(-10, 4), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
connectorPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
rotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCL7509242.PNG"],
frames: {
width: 100,
height: 331
},
animations: {}
}),
spriteCenter: new createjs.Point(38, 96),
altSkus: true,
length: 63,
width: 30,
legsNeeded: false,
legsLimit: 4,
actsAsLegs: true,
frameOffset: 0,
childFrameOffset: 0,
description: "9 Step 75° Ladder",
name: "9 Step 75°\nLadder",
sku: "UCL750924X",
gsku: "29RJ18",
gSkus: ["15E918", "15E923"],
connectableParts: ["UCB30246", "UCB20246", "CO_LEFTTURN", "CO_RIGHTTURN"],
usesSlot: 1,
hasMountSlot: true,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
bridgeSpan: false,
turnPiece: false,
legs: false,
rails: false,
ladder: true
}
}
function UCL7509242E(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
connectorPoint: [new createjs.Point(34, 48), new createjs.Point(-34, -28), new createjs.Point(2, -30), new createjs.Point(10, -48)],
rotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCL7509242E.PNG"],
frames: {
width: 100,
height: 331
},
animations: {}
}),
spriteCenter: new createjs.Point(38, 76),
altSkus: true,
length: 63,
width: 30,
legsNeeded: false,
legsLimit: 4,
actsAsLegs: true,
frameOffset: 0,
childFrameOffset: 0,
description: "9 Step 75° Ladder",
name: "9 Step 75°\nLadder",
sku: "UCL750924X",
gsku: "29RJ18",
gSkus: ["15E918", "15E923"],
connectableParts: [],
usesSlot: 1,
hasMountSlot: false,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
bridgeSpan: false,
turnPiece: false,
legs: false,
rails: false,
ladder: true
}
}
function UCL9009242(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(-8, 31), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
connectorPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
rotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCL9009246.PNG"],
frames: {
width: 65,
height: 313
},
animations: {}
}),
spriteCenter: new createjs.Point(33, 65),
altSkus: false,
length: 3,
width: 30,
legsNeeded: false,
legsLimit: 4,
actsAsLegs: true,
frameOffset: 0,
childFrameOffset: 0,
description: "9 Step 90° Ladder",
name: "9 Step 90°\nLadder",
sku: "UCL9009246",
gsku: "15E928",
connectableParts: ["UCB30246", "UCB20246", "CO_LEFTTURN", "CO_RIGHTTURN"],
usesSlot: 1,
hasMountSlot: true,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
bridgeSpan: false,
turnPiece: false,
legs: false,
rails: false,
ladder: true
}
}
function UCL9009242E(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
connectorPoint: [new createjs.Point(4, 40), new createjs.Point(-6, -40), new createjs.Point(0, -35), new createjs.Point(8, -40)],
rotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCL9009246E.PNG"],
frames: {
width: 65,
height: 313
},
animations: {}
}),
spriteCenter: new createjs.Point(33, 63),
altSkus: false,
length: 3,
width: 30,
legsNeeded: false,
legsLimit: 4,
actsAsLegs: true,
frameOffset: 0,
childFrameOffset: 0,
description: "9 Step 90° Ladder",
name: "9 Step 90°\nLadder",
sku: "UCL9009246",
gsku: "15E928",
connectableParts: [],
usesSlot: 1,
hasMountSlot: false,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
bridgeSpan: false,
turnPiece: false,
legs: false,
rails: false,
ladder: true
}
}
function UCB30246(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(-26, 27), new createjs.Point(-28, 58), new createjs.Point(32, 57), new createjs.Point(27, 25)],
connectorPoint: [new createjs.Point(26, 54), new createjs.Point(-24, -32), new createjs.Point(18, -32), new createjs.Point(26, -52)],
rotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCB30246.PNG"],
frames: {
width: 103,
height: 145
},
animations: {}
}),
spriteCenter: new createjs.Point(51, 72),
altSkus: true,
length: 30,
width: 30,
legsNeeded: true,
legsLimit: 90,
actsAsLegs: false,
frameOffset: 0,
childFrameOffset: 0,
description: '30"L Bridge Span',
name: '30"L Bridge Span',
sku: "UCB0324X",
gsku: "29RJ18",
gSkus: ["15E931", "15E929"],
connectableParts: ["UCB30246", "UCB20246", "CO_LADDER50END", "CO_LADDER75END", "CO_LADDER90END", "CO_LEFTTURN", "CO_RIGHTTURN", "CO_LEGS", "URK"],
usesSlot: 1,
hasMountSlot: true,
hasLegSlot: true,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
bridgeSpan: true,
turnPiece: false,
legs: false,
rails: false,
ladder: false
}
}
function UCB20246(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(-18, 28), new createjs.Point(-19, 50), new createjs.Point(25, 49), new createjs.Point(17, 26)],
connectorPoint: [new createjs.Point(16, 44), new createjs.Point(-14, -36), new createjs.Point(8, -32), new createjs.Point(20, -44)],
rotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCB20246.PNG"],
frames: {
width: 86,
height: 137
},
animations: {}
}),
spriteCenter: new createjs.Point(43, 72),
altSkus: true,
length: 20,
width: 30,
legsNeeded: true,
legsLimit: 80,
actsAsLegs: false,
frameOffset: 0,
childFrameOffset: 0,
description: '20"L Bridge Span',
name: '20"L Bridge Span',
sku: "UCB2024X",
gsku: "29RJ18",
gSkus: ["15E932", "15E930"],
connectableParts: ["UCB30246", "UCB20246", "CO_LADDER50END", "CO_LADDER75END", "CO_LADDER90END", "CO_LEFTTURN", "CO_RIGHTTURN", "CO_LEGS", "URK"],
usesSlot: 1,
hasMountSlot: true,
hasLegSlot: true,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
bridgeSpan: true,
turnPiece: false,
legs: false,
rails: false,
ladder: false
}
}
function UCT03246L(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(-28, 44), new createjs.Point(34, 44), new createjs.Point(26, 10), new createjs.Point(-28, 14)],
connectorPoint: [new createjs.Point(24, 38), new createjs.Point(-22, -20), new createjs.Point(18, -18), new createjs.Point(26, -36)],
rotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCT03246L.PNG"],
frames: {
width: 107,
height: 206
},
animations: {}
}),
spriteCenter: new createjs.Point(53, 87),
altSkus: true,
length: 30,
width: 30,
legsNeeded: false,
legsLimit: 3,
actsAsLegs: true,
frameOffset: 0,
childFrameOffset: 1,
description: "Turn Platform",
name: "Turn Platform\n(Left)",
sku: "UCT0324X",
gsku: "29RJ34",
gSkus: ["21Y502", "21Y499"],
canConnectParts: true,
connectableParts: ["UCB30246", "UCB20246", "CO_LADDER50END", "CO_LADDER75END", "CO_LADDER90END", "CO_RIGHTTURN"],
usesSlot: 1,
hasMountSlot: true,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 50, 100, -50],
forceDrawLast: true,
forceDrawLastFrame: 2,
bridgeSpan: false,
turnPiece: true,
legs: false,
rails: false,
ladder: false
}
}
function UCT03246R(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(24, 4), new createjs.Point(-22, 8), new createjs.Point(-24, 34), new createjs.Point(32, 34)],
connectorPoint: [new createjs.Point(26, 32), new createjs.Point(-26, -8), new createjs.Point(20, -8), new createjs.Point(28, -32)],
rotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCT03246R.PNG"],
frames: {
width: 107,
height: 206
},
animations: {}
}),
spriteCenter: new createjs.Point(53, 95),
altSkus: true,
length: 30,
width: 30,
legsNeeded: false,
legsLimit: 3,
actsAsLegs: true,
frameOffset: 0,
childFrameOffset: 3,
description: "Turn Platform",
name: "Turn Platform\n(Right)",
sku: "UCT0324X",
gsku: "29RJ34",
gSkus: ["21Y502", "21Y499"],
connectableParts: ["UCB30246", "UCB20246", "CO_LADDER50END", "CO_LADDER75END", "CO_LADDER90END", "CO_LEFTTURN"],
usesSlot: 1,
hasMountSlot: true,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
bridgeSpan: false,
turnPiece: true,
legs: false,
rails: false,
ladder: false
}
}
function UCT04246L(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(-28, 44), new createjs.Point(34, 44), new createjs.Point(26, 10), new createjs.Point(-28, 14)],
connectorPoint: [new createjs.Point(24, 38), new createjs.Point(-22, -20), new createjs.Point(18, -18), new createjs.Point(26, -36)],
rotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCT04246L.PNG"],
frames: {
width: 107,
height: 227
},
animations: {}
}),
spriteCenter: new createjs.Point(53, 87),
altSkus: true,
length: 30,
width: 30,
legsNeeded: false,
legsLimit: 3,
actsAsLegs: true,
frameOffset: 0,
childFrameOffset: 1,
description: "Turn Platform",
name: "Turn Platform\n(Left)",
sku: "UCT0424X",
gsku: "29RJ34",
gSkus: ["21Y503", "21Y501"],
canConnectParts: true,
connectableParts: ["UCB30246", "UCB20246", "CO_LADDER50END", "CO_LADDER75END", "CO_LADDER90END", "CO_RIGHTTURN"],
usesSlot: 1,
hasMountSlot: true,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 50, 100, -50],
forceDrawLast: true,
forceDrawLastFrame: 2,
bridgeSpan: false,
turnPiece: true,
legs: false,
rails: false,
ladder: false
}
}
function UCT04246R(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(24, 4), new createjs.Point(-22, 8), new createjs.Point(-26, 36), new createjs.Point(32, 34)],
connectorPoint: [new createjs.Point(26, 32), new createjs.Point(-26, -8), new createjs.Point(22, -6), new createjs.Point(28, -32)],
rotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCT04246R.PNG"],
frames: {
width: 108,
height: 227
},
animations: {}
}),
spriteCenter: new createjs.Point(54, 95),
altSkus: true,
length: 30,
width: 30,
legsNeeded: false,
legsLimit: 3,
actsAsLegs: true,
frameOffset: 0,
childFrameOffset: 3,
description: "Turn Platform",
name: "Turn Platform\n(Right)",
sku: "UCT0424X",
gsku: "29RJ34",
gSkus: ["21Y503", "21Y501"],
connectableParts: ["UCB30246", "UCB20246", "CO_LADDER50END", "CO_LADDER75END", "CO_LADDER90END", "CO_LEFTTURN"],
usesSlot: 1,
hasMountSlot: true,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
bridgeSpan: false,
turnPiece: true,
legs: false,
rails: false,
ladder: false
}
}
function UCT05246L(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(-28, 44), new createjs.Point(34, 44), new createjs.Point(26, 10), new createjs.Point(-28, 14)],
connectorPoint: [new createjs.Point(24, 38), new createjs.Point(-22, -20), new createjs.Point(18, -18), new createjs.Point(24, -34)],
rotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCT05246L.PNG"],
frames: {
width: 107,
height: 248
},
animations: {}
}),
spriteCenter: new createjs.Point(53, 87),
altSkus: true,
length: 30,
width: 30,
legsNeeded: false,
legsLimit: 3,
actsAsLegs: true,
frameOffset: 0,
childFrameOffset: 1,
description: "Turn Platform",
name: "Turn Platform\n(Left)",
sku: "UCT0524X",
gsku: "29RJ34",
gSkus: ["15E933", "15E938"],
canConnectParts: true,
connectableParts: ["UCB30246", "UCB20246", "CO_LADDER50END", "CO_LADDER75END", "CO_LADDER90END", "CO_RIGHTTURN"],
usesSlot: 1,
hasMountSlot: true,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 50, 100, -50],
forceDrawLast: true,
forceDrawLastFrame: 2,
bridgeSpan: false,
turnPiece: true,
legs: false,
rails: false,
ladder: false
}
}
function UCT05246R(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(24, 4), new createjs.Point(-22, 8), new createjs.Point(-26, 36), new createjs.Point(32, 34)],
connectorPoint: [new createjs.Point(26, 32), new createjs.Point(-26, -8), new createjs.Point(22, -6), new createjs.Point(28, -32)],
rotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCT05246R.PNG"],
frames: {
width: 107,
height: 248
},
animations: {}
}),
spriteCenter: new createjs.Point(54, 95),
altSkus: true,
length: 30,
width: 30,
legsNeeded: false,
legsLimit: 3,
actsAsLegs: true,
frameOffset: 0,
childFrameOffset: 3,
description: "Turn Platform",
name: "Turn Platform\n(Right)",
sku: "UCT0524X",
gsku: "29RJ34",
gSkus: ["15E933", "15E938"],
connectableParts: ["UCB30246", "UCB20246", "CO_LADDER50END", "CO_LADDER75END", "CO_LADDER90END", "CO_LEFTTURN"],
usesSlot: 1,
hasMountSlot: true,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
bridgeSpan: false,
turnPiece: true,
legs: false,
rails: false,
ladder: false
}
}
function UCT06246L(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(-28, 44), new createjs.Point(34, 44), new createjs.Point(26, 10), new createjs.Point(-28, 14)],
connectorPoint: [new createjs.Point(24, 38), new createjs.Point(-22, -20), new createjs.Point(18, -18), new createjs.Point(24, -34)],
rotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCT06246L.PNG"],
frames: {
width: 107,
height: 269
},
animations: {}
}),
spriteCenter: new createjs.Point(53, 87),
altSkus: true,
length: 30,
width: 30,
legsNeeded: false,
legsLimit: 3,
actsAsLegs: true,
frameOffset: 0,
childFrameOffset: 1,
description: "Turn Platform",
name: "Turn Platform\n(Left)",
sku: "UCT0624X",
gsku: "29RJ34",
gSkus: ["15E934", "15E939"],
canConnectParts: true,
connectableParts: ["UCB30246", "UCB20246", "CO_LADDER50END", "CO_LADDER75END", "CO_LADDER90END", "CO_RIGHTTURN"],
usesSlot: 1,
hasMountSlot: true,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 50, 100, -50],
forceDrawLast: true,
forceDrawLastFrame: 2,
bridgeSpan: false,
turnPiece: true,
legs: false,
rails: false,
ladder: false
}
}
function UCT06246R(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(24, 4), new createjs.Point(-22, 8), new createjs.Point(-26, 36), new createjs.Point(32, 34)],
connectorPoint: [new createjs.Point(26, 32), new createjs.Point(-26, -8), new createjs.Point(22, -6), new createjs.Point(28, -32)],
rotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCT06246R.PNG"],
frames: {
width: 107,
height: 269
},
animations: {}
}),
spriteCenter: new createjs.Point(54, 95),
altSkus: true,
length: 30,
width: 30,
legsNeeded: false,
legsLimit: 3,
actsAsLegs: true,
frameOffset: 0,
childFrameOffset: 3,
description: "Turn Platform",
name: "Turn Platform\n(Right)",
sku: "UCT0624X",
gsku: "29RJ34",
gSkus: ["15E934", "15E939"],
connectableParts: ["UCB30246", "UCB20246", "CO_LADDER50END", "CO_LADDER75END", "CO_LADDER90END", "CO_LEFTTURN"],
usesSlot: 1,
hasMountSlot: true,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
bridgeSpan: false,
turnPiece: true,
legs: false,
rails: false,
ladder: false
}
}
function UCT07246L(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(-28, 42), new createjs.Point(34, 44), new createjs.Point(26, 10), new createjs.Point(-28, 14)],
connectorPoint: [new createjs.Point(24, 38), new createjs.Point(-22, -20), new createjs.Point(18, -18), new createjs.Point(24, -34)],
rotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCT07246L.PNG"],
frames: {
width: 107,
height: 269
},
animations: {}
}),
spriteCenter: new createjs.Point(53, 87),
altSkus: true,
length: 30,
width: 30,
legsNeeded: false,
legsLimit: 3,
actsAsLegs: true,
frameOffset: 0,
childFrameOffset: 1,
description: "Turn Platform",
name: "Turn Platform\n(Left)",
sku: "UCT0724X",
gsku: "29RJ34",
gSkus: ["15E935", "15E940"],
canConnectParts: true,
connectableParts: ["UCB30246", "UCB20246", "CO_LADDER50END", "CO_LADDER75END", "CO_LADDER90END", "CO_RIGHTTURN"],
usesSlot: 1,
hasMountSlot: true,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 50, 100, -50],
forceDrawLast: true,
forceDrawLastFrame: 2,
bridgeSpan: false,
turnPiece: true,
legs: false,
rails: false,
ladder: false
}
}
function UCT07246R(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(24, 4), new createjs.Point(-22, 8), new createjs.Point(-26, 36), new createjs.Point(32, 34)],
connectorPoint: [new createjs.Point(26, 32), new createjs.Point(-26, -8), new createjs.Point(22, -6), new createjs.Point(28, -32)],
rotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCT07246R.PNG"],
frames: {
width: 107,
height: 269
},
animations: {}
}),
spriteCenter: new createjs.Point(54, 95),
altSkus: true,
length: 30,
width: 30,
legsNeeded: false,
legsLimit: 3,
actsAsLegs: true,
frameOffset: 0,
childFrameOffset: 3,
description: "Turn Platform",
name: "Turn Platform\n(Right)",
sku: "UCT0724X",
gsku: "29RJ34",
gSkus: ["15E935", "15E940"],
connectableParts: ["UCB30246", "UCB20246", "CO_LADDER50END", "CO_LADDER75END", "CO_LADDER90END", "CO_LEFTTURN"],
usesSlot: 1,
hasMountSlot: true,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
bridgeSpan: false,
turnPiece: true,
legs: false,
rails: false,
ladder: false
}
}
function UCT08246L(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(-28, 44), new createjs.Point(34, 44), new createjs.Point(26, 10), new createjs.Point(-28, 14)],
connectorPoint: [new createjs.Point(24, 38), new createjs.Point(-22, -20), new createjs.Point(18, -18), new createjs.Point(26, -36)],
rotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCT08246L.PNG"],
frames: {
width: 107,
height: 312
},
animations: {}
}),
spriteCenter: new createjs.Point(53, 87),
altSkus: true,
length: 30,
width: 30,
legsNeeded: false,
legsLimit: 3,
actsAsLegs: true,
frameOffset: 0,
childFrameOffset: 1,
description: "Turn Platform",
name: "Turn Platform\n(Left)",
sku: "UCT0824X",
gsku: "29RJ34",
gSkus: ["15E936", "15E941"],
canConnectParts: true,
connectableParts: ["UCB30246", "UCB20246", "CO_LADDER50END", "CO_LADDER75END", "CO_LADDER90END", "CO_RIGHTTURN"],
usesSlot: 1,
hasMountSlot: true,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 50, 100, -50],
forceDrawLast: true,
forceDrawLastFrame: 2,
bridgeSpan: false,
turnPiece: true,
legs: false,
rails: false,
ladder: false
}
}
function UCT08246R(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(24, 4), new createjs.Point(-22, 8), new createjs.Point(-26, 36), new createjs.Point(32, 34)],
connectorPoint: [new createjs.Point(26, 32), new createjs.Point(-26, -8), new createjs.Point(22, -6), new createjs.Point(28, -32)],
rotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCT08246R.PNG"],
frames: {
width: 107,
height: 312
},
animations: {}
}),
spriteCenter: new createjs.Point(54, 95),
altSkus: true,
length: 30,
width: 30,
legsNeeded: false,
legsLimit: 3,
actsAsLegs: true,
frameOffset: 0,
childFrameOffset: 3,
description: "Turn Platform",
name: "Turn Platform\n(Right)",
sku: "UCT0824X",
gsku: "29RJ34",
gSkus: ["15E936", "15E941"],
connectableParts: ["UCB30246", "UCB20246", "CO_LADDER50END", "CO_LADDER75END", "CO_LADDER90END", "CO_LEFTTURN"],
usesSlot: 1,
hasMountSlot: true,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
bridgeSpan: false,
turnPiece: true,
legs: false,
rails: false,
ladder: false
}
}
function UCT09246L(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(-28, 44), new createjs.Point(34, 44), new createjs.Point(26, 10), new createjs.Point(-28, 14)],
connectorPoint: [new createjs.Point(24, 38), new createjs.Point(-22, -20), new createjs.Point(18, -18), new createjs.Point(26, -36)],
rotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCT09246L.PNG"],
frames: {
width: 108,
height: 333
},
animations: {}
}),
spriteCenter: new createjs.Point(53, 87),
altSkus: true,
length: 30,
width: 30,
legsNeeded: false,
legsLimit: 3,
actsAsLegs: true,
frameOffset: 0,
childFrameOffset: 1,
description: "Turn Platform",
name: "Turn Platform\n(Left)",
sku: "UCT0924X",
gsku: "29RJ34",
gSkus: ["15E937", "15E942"],
canConnectParts: true,
connectableParts: ["UCB30246", "UCB20246", "CO_LADDER50END", "CO_LADDER75END", "CO_LADDER90END", "CO_RIGHTTURN"],
usesSlot: 1,
hasMountSlot: true,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 50, 100, -50],
forceDrawLast: true,
forceDrawLastFrame: 2,
bridgeSpan: false,
turnPiece: true,
legs: false,
rails: false,
ladder: false
}
}
function UCT09246R(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(22, 6), new createjs.Point(-26, 6), new createjs.Point(-26, 36), new createjs.Point(32, 34)],
connectorPoint: [new createjs.Point(26, 32), new createjs.Point(-26, -8), new createjs.Point(22, -6), new createjs.Point(28, -32)],
rotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCT09246R.PNG"],
frames: {
width: 108,
height: 333
},
animations: {}
}),
spriteCenter: new createjs.Point(54, 95),
altSkus: true,
length: 30,
width: 30,
legsNeeded: false,
legsLimit: 3,
actsAsLegs: true,
frameOffset: 0,
childFrameOffset: 3,
description: "Turn Platform",
name: "Turn Platform\n(Right)",
sku: "UCT0924X",
gsku: "29RJ34",
gSkus: ["15E937", "15E942"],
connectableParts: ["UCB30246", "UCB20246", "CO_LADDER50END", "CO_LADDER75END", "CO_LADDER90END", "CO_LEFTTURN"],
usesSlot: 1,
hasMountSlot: true,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
bridgeSpan: false,
turnPiece: true,
legs: false,
rails: false,
ladder: false
}
}
function URK(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
connectorPoint: [new createjs.Point(0, 40), new createjs.Point(-66, -98), new createjs.Point(-4, -42), new createjs.Point(-72, -90)],
rotationOffsets: [new createjs.Point(0, 0), new createjs.Point(70, 52), new createjs.Point(70, 52), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/URK.PNG"],
frames: {
width: 55,
height: 118
},
animations: {}
}),
spriteCenter: new createjs.Point(27, 59),
altSkus: false,
length: 0,
width: 0,
legsNeeded: true,
legsLimit: 0,
actsAsLegs: false,
frameOffset: 0,
childFrameOffset: 0,
description: "Rail Kit",
name: "Rail Kit",
sku: "URK",
gsku: "",
connectableParts: [],
usesSlot: 1,
hasMountSlot: false,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
bridgeSpan: false,
turnPiece: false,
legs: false,
rails: true,
ladder: false
}
}
function ULK0324(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
connectorPoint: [new createjs.Point(2, -10), new createjs.Point(8, -144), new createjs.Point(-4, -38), new createjs.Point(4, -120)],
rotationOffsets: [new createjs.Point(-2, 40), new createjs.Point(0, 0), new createjs.Point(-5, 140), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/ULK0324.PNG"],
frames: {
width: 57,
height: 133
},
animations: {}
}),
spriteCenter: new createjs.Point(28, 66),
altSkus: false,
length: 0,
width: 42,
legsNeeded: false,
legsLimit: 3,
actsAsLegs: true,
frameOffset: 0,
childFrameOffset: 0,
description: "Legs Kit",
name: "Legs Kit",
sku: "ULK0324",
gsku: "21Y504",
connectableParts: [],
usesSlot: 2,
hasMountSlot: false,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [-5e4, -5e4, -5e4, -5e4],
forceDrawLast: false,
forceDrawLastFrame: 0,
bridgeSpan: false,
turnPiece: false,
legs: true,
rails: false,
ladder: false
}
}
function ULK0424(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
connectorPoint: [new createjs.Point(2, -10), new createjs.Point(8, -144), new createjs.Point(-4, -38), new createjs.Point(4, -120)],
rotationOffsets: [new createjs.Point(-2, 40), new createjs.Point(0, 0), new createjs.Point(-5, 140), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/ULK0424.PNG"],
frames: {
width: 57,
height: 154
},
animations: {}
}),
spriteCenter: new createjs.Point(28, 66),
altSkus: false,
length: 0,
width: 42,
legsNeeded: false,
legsLimit: 3,
actsAsLegs: true,
frameOffset: 0,
childFrameOffset: 0,
description: "Legs Kit",
name: "Legs Kit",
sku: "ULK0424",
gsku: "21Y505",
connectableParts: [],
usesSlot: 2,
hasMountSlot: false,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [-5e4, -5e4, -5e4, -5e4],
forceDrawLast: false,
forceDrawLastFrame: 0,
bridgeSpan: false,
turnPiece: false,
legs: true,
rails: false,
ladder: false
}
}
function ULK0524(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
connectorPoint: [new createjs.Point(2, -10), new createjs.Point(8, -144), new createjs.Point(-4, -38), new createjs.Point(4, -120)],
rotationOffsets: [new createjs.Point(-2, 40), new createjs.Point(0, 0), new createjs.Point(-5, 140), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/ULK0524.PNG"],
frames: {
width: 57,
height: 175
},
animations: {}
}),
spriteCenter: new createjs.Point(28, 66),
altSkus: false,
length: 0,
width: 42,
legsNeeded: false,
legsLimit: 3,
actsAsLegs: true,
frameOffset: 0,
childFrameOffset: 0,
description: "Legs Kit",
name: "Legs Kit",
sku: "ULK0524",
gsku: "15E943",
connectableParts: [],
usesSlot: 2,
hasMountSlot: false,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [-5e4, -5e4, -5e4, -5e4],
forceDrawLast: false,
forceDrawLastFrame: 0,
bridgeSpan: false,
turnPiece: false,
legs: true,
rails: false,
ladder: false
}
}
function ULK0624(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
connectorPoint: [new createjs.Point(2, -10), new createjs.Point(8, -144), new createjs.Point(-4, -38), new createjs.Point(4, -120)],
rotationOffsets: [new createjs.Point(-2, 40), new createjs.Point(0, 0), new createjs.Point(-5, 140), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/ULK0624.PNG"],
frames: {
width: 57,
height: 196
},
animations: {}
}),
spriteCenter: new createjs.Point(28, 66),
altSkus: false,
length: 0,
width: 42,
legsNeeded: false,
legsLimit: 3,
actsAsLegs: true,
frameOffset: 0,
childFrameOffset: 0,
description: "Legs Kit",
name: "Legs Kit",
sku: "ULK0624",
gsku: "15E944",
connectableParts: [],
usesSlot: 2,
hasMountSlot: false,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [-5e4, -5e4, -5e4, -5e4],
forceDrawLast: false,
forceDrawLastFrame: 0,
bridgeSpan: false,
turnPiece: false,
legs: true,
rails: false,
ladder: false
}
}
function ULK0724(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
connectorPoint: [new createjs.Point(2, -10), new createjs.Point(8, -144), new createjs.Point(-4, -38), new createjs.Point(4, -120)],
rotationOffsets: [new createjs.Point(-2, 40), new createjs.Point(0, 0), new createjs.Point(-5, 140), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/ULK0724.PNG"],
frames: {
width: 57,
height: 218
},
animations: {}
}),
spriteCenter: new createjs.Point(28, 66),
altSkus: false,
length: 0,
width: 42,
legsNeeded: false,
legsLimit: 3,
actsAsLegs: true,
frameOffset: 0,
childFrameOffset: 0,
description: "Legs Kit",
name: "Legs Kit",
sku: "ULK0724",
gsku: "15E945",
connectableParts: [],
usesSlot: 2,
hasMountSlot: false,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [-5e4, -5e4, -5e4, -5e4],
forceDrawLast: false,
forceDrawLastFrame: 0,
bridgeSpan: false,
turnPiece: false,
legs: true,
rails: false,
ladder: false
}
}
function ULK0824(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
connectorPoint: [new createjs.Point(2, -10), new createjs.Point(8, -144), new createjs.Point(-4, -38), new createjs.Point(4, -120)],
rotationOffsets: [new createjs.Point(-2, 40), new createjs.Point(0, 0), new createjs.Point(-5, 140), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/ULK0824.PNG"],
frames: {
width: 57,
height: 239
},
animations: {}
}),
spriteCenter: new createjs.Point(28, 66),
altSkus: false,
length: 0,
width: 42,
legsNeeded: false,
legsLimit: 3,
actsAsLegs: true,
frameOffset: 0,
childFrameOffset: 0,
description: "Legs Kit",
name: "Legs Kit",
sku: "ULK0824",
gsku: "15E946",
connectableParts: [],
usesSlot: 2,
hasMountSlot: false,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [-5e4, -5e4, -5e4, -5e4],
forceDrawLast: false,
forceDrawLastFrame: 0,
bridgeSpan: false,
turnPiece: false,
legs: true,
rails: false,
ladder: false
}
}
function ULK0924(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
mountPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
connectorPoint: [new createjs.Point(2, -10), new createjs.Point(8, -144), new createjs.Point(-4, -38), new createjs.Point(4, -120)],
rotationOffsets: [new createjs.Point(-2, 40), new createjs.Point(0, 0), new createjs.Point(-5, 140), new createjs.Point(0, 0)],
spriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/ULK0924.PNG"],
frames: {
width: 57,
height: 260
},
animations: {}
}),
spriteCenter: new createjs.Point(28, 66),
altSkus: false,
length: 0,
width: 42,
legsNeeded: false,
legsLimit: 3,
actsAsLegs: true,
frameOffset: 0,
childFrameOffset: 0,
description: "Legs Kit",
name: "Legs Kit",
sku: "ULK0924",
gsku: "15E947",
connectableParts: [],
usesSlot: 2,
hasMountSlot: false,
hasLegSlot: false,
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [-5e4, -5e4, -5e4, -5e4],
forceDrawLast: false,
forceDrawLastFrame: 0,
bridgeSpan: false,
turnPiece: false,
legs: true,
rails: false,
ladder: false
}
}
function UAP3636(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
isoMountPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoConnectorPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoRotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoSpriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCB30246.PNG"],
frames: {
width: 103,
height: 145
},
animations: {}
}),
isoSpriteCenter: new createjs.Point(51, 72),
altSkus: false,
length: 36,
width: 36,
legsNeeded: true,
isoFrameOffset: 0,
isoChildFrameOffset: 0,
description: '36"x36" Platform',
name: '36"x36" Platform',
sprite: "assets/spritesheets/UAP3636.png",
sku: "UAP3636",
gsku: "29RJ18",
connectableParts: ["UAP3636", "UAPHR1"],
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
rails: false,
ladder: false,
stackable: false,
platform: true,
heightMod: 0,
attachmentSlots: 4,
attachmentPoints: [new createjs.Point(0, -293), new createjs.Point(-293, 0), new createjs.Point(293, 0), new createjs.Point(0, 293)],
anchorPoint: new createjs.Point(0, 293),
spriteAnchor: new createjs.Point(146, 293),
spriteAnchorOffset: new createjs.Point(0, 0),
bitmapCenter: new createjs.Point(146, 146),
gridSize: new createjs.Point(1, 1),
attachmentCoordinates: [new createjs.Point(0, -1), new createjs.Point(-1, 0), new createjs.Point(1, 0), new createjs.Point(0, 1)],
renderPriority: 0,
spriteDoesntRotate: true
}
}
function UAP0250U(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
isoMountPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoConnectorPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoRotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoSpriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCB30246.PNG"],
frames: {
width: 103,
height: 145
},
animations: {}
}),
isoSpriteCenter: new createjs.Point(51, 72),
altSkus: false,
length: 18.375,
width: 34,
legsNeeded: true,
isoFrameOffset: 0,
isoChildFrameOffset: 0,
description: "2-Step 50° Ladder",
name: "2-Step \n50° Ladder (Up)",
sprite: "assets/spritesheets/UAP0250U.png",
sku: "UAP0250",
gsku: "29RJ18",
connectableParts: ["UAP3636"],
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
rails: false,
ladder: true,
stackable: true,
heightMod: 20,
attachmentSlots: 4,
attachmentPoints: [new createjs.Point(0, -293), new createjs.Point(-293, 0), new createjs.Point(293, 0), new createjs.Point(0, 293)],
anchorPoint: new createjs.Point(0, 293),
spriteAnchor: new createjs.Point(146, 293),
spriteAnchorOffset: new createjs.Point(0, 0),
bitmapCenter: new createjs.Point(146, 146),
gridSize: new createjs.Point(1, 1),
attachmentCoordinates: [new createjs.Point(0, -1), new createjs.Point(-1, 0), new createjs.Point(1, 0), new createjs.Point(0, 1)],
renderPriority: 0,
spriteDoesntRotate: false,
overrideButtonScaling: false,
buttonScale: .5,
startTextPosition: new createjs.Point(0, 75),
endTextPosition: new createjs.Point(0, -120),
directionTextPosition: new createjs.Point(0, 0)
}
}
function UAP0290U(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
isoMountPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoConnectorPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoRotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoSpriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCB30246.PNG"],
frames: {
width: 103,
height: 145
},
animations: {}
}),
isoSpriteCenter: new createjs.Point(51, 72),
altSkus: false,
length: 9,
width: 30,
legsNeeded: true,
isoFrameOffset: 0,
isoChildFrameOffset: 0,
description: "2-Step 90° Ladder",
name: "2-Step \n90° Ladder (Up)",
sprite: "assets/spritesheets/UAP0290U.png",
sku: "UAP0290",
gsku: "29RJ18",
connectableParts: ["UAP3636"],
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
rails: false,
ladder: true,
stackable: true,
heightMod: 20,
attachmentSlots: 4,
attachmentPoints: [new createjs.Point(0, -293), new createjs.Point(-293, 0), new createjs.Point(293, 0), new createjs.Point(0, 293)],
anchorPoint: new createjs.Point(0, 293),
spriteAnchor: new createjs.Point(146, 293),
spriteAnchorOffset: new createjs.Point(0, 0),
bitmapCenter: new createjs.Point(146, 146),
gridSize: new createjs.Point(1, 1),
attachmentCoordinates: [new createjs.Point(0, -1), new createjs.Point(-1, 0), new createjs.Point(1, 0), new createjs.Point(0, 1)],
renderPriority: 0,
spriteDoesntRotate: false,
overrideButtonScaling: false,
buttonScale: .5,
startTextPosition: new createjs.Point(0, 75),
endTextPosition: new createjs.Point(0, -120),
directionTextPosition: new createjs.Point(0, 0)
}
}
function UAP0350U(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
isoMountPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoConnectorPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoRotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoSpriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCB30246.PNG"],
frames: {
width: 103,
height: 145
},
animations: {}
}),
isoSpriteCenter: new createjs.Point(51, 72),
altSkus: false,
length: 26.875,
width: 34,
legsNeeded: true,
isoFrameOffset: 0,
isoChildFrameOffset: 0,
description: "3-Step 50° Ladder",
name: "3-Step \n50° Ladder (Up)",
sprite: "assets/spritesheets/UAP0350U.png",
sku: "UAP0350",
gsku: "29RJ18",
connectableParts: ["UAP3636"],
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
rails: false,
ladder: true,
stackable: true,
heightMod: 30,
attachmentSlots: 4,
attachmentPoints: [new createjs.Point(0, -293), new createjs.Point(-293, 0), new createjs.Point(293, 0), new createjs.Point(0, 293)],
anchorPoint: new createjs.Point(0, 293),
spriteAnchor: new createjs.Point(146, 293),
spriteAnchorOffset: new createjs.Point(0, 0),
bitmapCenter: new createjs.Point(146, 146),
gridSize: new createjs.Point(1, 1),
attachmentCoordinates: [new createjs.Point(0, -1), new createjs.Point(-1, 0), new createjs.Point(1, 0), new createjs.Point(0, 1)],
renderPriority: 0,
spriteDoesntRotate: false,
overrideButtonScaling: false,
buttonScale: .5,
startTextPosition: new createjs.Point(0, 75),
endTextPosition: new createjs.Point(0, -120),
directionTextPosition: new createjs.Point(0, 0)
}
}
function UAP0390U(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
isoMountPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoConnectorPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoRotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoSpriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCB30246.PNG"],
frames: {
width: 103,
height: 145
},
animations: {}
}),
isoSpriteCenter: new createjs.Point(51, 72),
altSkus: false,
length: 9,
width: 30,
legsNeeded: true,
isoFrameOffset: 0,
isoChildFrameOffset: 0,
description: "3-Step 90° Ladder",
name: "3-Step \n90° Ladder (Up)",
sprite: "assets/spritesheets/UAP0290U.png",
sku: "UAP0390",
gsku: "29RJ18",
connectableParts: ["UAP3636"],
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
rails: false,
ladder: true,
stackable: true,
heightMod: 30,
attachmentSlots: 4,
attachmentPoints: [new createjs.Point(0, -293), new createjs.Point(-293, 0), new createjs.Point(293, 0), new createjs.Point(0, 293)],
anchorPoint: new createjs.Point(0, 293),
spriteAnchor: new createjs.Point(146, 293),
spriteAnchorOffset: new createjs.Point(0, 0),
bitmapCenter: new createjs.Point(146, 146),
gridSize: new createjs.Point(1, 1),
attachmentCoordinates: [new createjs.Point(0, -1), new createjs.Point(-1, 0), new createjs.Point(1, 0), new createjs.Point(0, 1)],
renderPriority: 0,
spriteDoesntRotate: false,
overrideButtonScaling: false,
buttonScale: .5,
startTextPosition: new createjs.Point(0, 75),
endTextPosition: new createjs.Point(0, -120),
directionTextPosition: new createjs.Point(0, 0)
}
}
function UAP0250D(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
isoMountPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoConnectorPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoRotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoSpriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCB30246.PNG"],
frames: {
width: 103,
height: 145
},
animations: {}
}),
isoSpriteCenter: new createjs.Point(51, 72),
altSkus: false,
length: 18.375,
width: 34,
legsNeeded: true,
isoFrameOffset: 0,
isoChildFrameOffset: 0,
description: "2-Step 50° Ladder",
name: "2-Step \n50° Ladder (Down)",
sprite: "assets/spritesheets/UAP0250D.png",
sku: "UAP0250",
gsku: "29RJ18",
connectableParts: ["UAP3636"],
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
rails: false,
ladder: true,
stackable: true,
heightMod: -20,
attachmentSlots: 4,
attachmentPoints: [new createjs.Point(0, -293), new createjs.Point(-293, 0), new createjs.Point(293, 0), new createjs.Point(0, 293)],
anchorPoint: new createjs.Point(0, 293),
spriteAnchor: new createjs.Point(146, 293),
spriteAnchorOffset: new createjs.Point(0, 0),
bitmapCenter: new createjs.Point(146, 146),
gridSize: new createjs.Point(1, 1),
attachmentCoordinates: [new createjs.Point(0, -1), new createjs.Point(-1, 0), new createjs.Point(1, 0), new createjs.Point(0, 1)],
renderPriority: 0,
spriteDoesntRotate: false,
overrideButtonScaling: false,
buttonScale: .5,
startTextPosition: new createjs.Point(0, 75),
endTextPosition: new createjs.Point(0, -120),
directionTextPosition: new createjs.Point(0, 0)
}
}
function UAP0290D(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
isoMountPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoConnectorPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoRotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoSpriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCB30246.PNG"],
frames: {
width: 103,
height: 145
},
animations: {}
}),
isoSpriteCenter: new createjs.Point(51, 72),
altSkus: false,
length: 9,
width: 30,
legsNeeded: true,
isoFrameOffset: 0,
isoChildFrameOffset: 0,
description: "2-Step 90° Ladder",
name: "2-Step \n90° Ladder (Down)",
sprite: "assets/spritesheets/UAP0290D.png",
sku: "UAP0290",
gsku: "29RJ18",
connectableParts: [],
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
rails: false,
ladder: true,
stackable: true,
heightMod: -20,
attachmentSlots: 0,
attachmentPoints: [new createjs.Point(0, -293), new createjs.Point(-293, 0), new createjs.Point(293, 0), new createjs.Point(0, 293)],
anchorPoint: new createjs.Point(0, 293),
spriteAnchor: new createjs.Point(146, 293),
spriteAnchorOffset: new createjs.Point(0, 0),
bitmapCenter: new createjs.Point(146, 146),
gridSize: new createjs.Point(1, 1),
attachmentCoordinates: [new createjs.Point(0, -1), new createjs.Point(-1, 0), new createjs.Point(1, 0), new createjs.Point(0, 1)],
renderPriority: 0,
spriteDoesntRotate: false,
overrideButtonScaling: false,
buttonScale: .5,
startTextPosition: new createjs.Point(0, 75),
endTextPosition: new createjs.Point(0, -120),
directionTextPosition: new createjs.Point(0, 0)
}
}
function UAP0350D(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
isoMountPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoConnectorPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoRotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoSpriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCB30246.PNG"],
frames: {
width: 103,
height: 145
},
animations: {}
}),
isoSpriteCenter: new createjs.Point(51, 72),
altSkus: false,
length: 26.875,
width: 34,
legsNeeded: true,
isoFrameOffset: 0,
isoChildFrameOffset: 0,
description: "3-Step 50° Ladder",
name: "3-Step \n50° Ladder (Down)",
sprite: "assets/spritesheets/UAP0350D.png",
sku: "UAP0350",
gsku: "29RJ18",
connectableParts: ["UAP3636"],
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
rails: false,
ladder: true,
stackable: true,
heightMod: -30,
attachmentSlots: 4,
attachmentPoints: [new createjs.Point(0, -293), new createjs.Point(-293, 0), new createjs.Point(293, 0), new createjs.Point(0, 293)],
anchorPoint: new createjs.Point(0, 293),
spriteAnchor: new createjs.Point(146, 293),
spriteAnchorOffset: new createjs.Point(0, 0),
bitmapCenter: new createjs.Point(146, 146),
gridSize: new createjs.Point(1, 1),
attachmentCoordinates: [new createjs.Point(0, -1), new createjs.Point(-1, 0), new createjs.Point(1, 0), new createjs.Point(0, 1)],
renderPriority: 0,
spriteDoesntRotate: false,
overrideButtonScaling: false,
buttonScale: .5,
startTextPosition: new createjs.Point(0, 75),
endTextPosition: new createjs.Point(0, -120),
directionTextPosition: new createjs.Point(0, 0)
}
}
function UAP0390D(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
isoMountPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoConnectorPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoRotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoSpriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCB30246.PNG"],
frames: {
width: 103,
height: 145
},
animations: {}
}),
isoSpriteCenter: new createjs.Point(51, 72),
altSkus: false,
length: 9,
width: 30,
legsNeeded: true,
isoFrameOffset: 0,
isoChildFrameOffset: 0,
description: "3-Step 90° Ladder",
name: "3-Step \n90° Ladder (Down)",
sprite: "assets/spritesheets/UAP0290D.png",
sku: "UAP0390",
gsku: "29RJ18",
connectableParts: [],
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
rails: false,
ladder: true,
stackable: true,
heightMod: -30,
attachmentSlots: 0,
attachmentPoints: [new createjs.Point(0, -293), new createjs.Point(-293, 0), new createjs.Point(293, 0), new createjs.Point(0, 293)],
anchorPoint: new createjs.Point(0, 293),
spriteAnchor: new createjs.Point(146, 293),
spriteAnchorOffset: new createjs.Point(0, 0),
bitmapCenter: new createjs.Point(146, 146),
gridSize: new createjs.Point(1, 1),
attachmentCoordinates: [new createjs.Point(0, -1), new createjs.Point(-1, 0), new createjs.Point(1, 0), new createjs.Point(0, 1)],
renderPriority: 0,
spriteDoesntRotate: false,
overrideButtonScaling: false,
buttonScale: .5,
startTextPosition: new createjs.Point(0, 75),
endTextPosition: new createjs.Point(0, -120),
directionTextPosition: new createjs.Point(0, 0)
}
}
function UAP0450U(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
isoMountPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoConnectorPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoRotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoSpriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCB30246.PNG"],
frames: {
width: 103,
height: 145
},
animations: {}
}),
isoSpriteCenter: new createjs.Point(51, 72),
altSkus: false,
length: 35.25,
width: 34,
legsNeeded: true,
isoFrameOffset: 0,
isoChildFrameOffset: 0,
description: "4-Step 50° Ladder",
name: "4-Step \n50° Ladder (Up)",
sprite: "assets/spritesheets/UAP0450U.png",
sku: "UAP0450",
gsku: "29RJ18",
connectableParts: ["UAP3636"],
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
rails: false,
ladder: true,
stackable: true,
heightMod: 40,
attachmentSlots: 4,
attachmentPoints: [new createjs.Point(0, -293), new createjs.Point(-293, 0), new createjs.Point(293, 0), new createjs.Point(0, 293)],
anchorPoint: new createjs.Point(0, 293),
spriteAnchor: new createjs.Point(146, 293),
spriteAnchorOffset: new createjs.Point(0, 0),
bitmapCenter: new createjs.Point(146, 146),
gridSize: new createjs.Point(1, 1),
attachmentCoordinates: [new createjs.Point(0, -1), new createjs.Point(-1, 0), new createjs.Point(1, 0), new createjs.Point(0, 1)],
renderPriority: 0,
spriteDoesntRotate: false,
overrideButtonScaling: false,
buttonScale: .5,
startTextPosition: new createjs.Point(0, 75),
endTextPosition: new createjs.Point(0, -120),
directionTextPosition: new createjs.Point(0, 0)
}
}
function UAP0490U(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
isoMountPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoConnectorPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoRotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoSpriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCB30246.PNG"],
frames: {
width: 103,
height: 145
},
animations: {}
}),
isoSpriteCenter: new createjs.Point(51, 72),
altSkus: false,
length: 9,
width: 30,
legsNeeded: true,
isoFrameOffset: 0,
isoChildFrameOffset: 0,
description: "4-Step 90° Ladder",
name: "4-Step \n90° Ladder (Up)",
sprite: "assets/spritesheets/UAP0290U.png",
sku: "UAP0490",
gsku: "29RJ18",
connectableParts: ["UAP3636"],
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
rails: false,
ladder: true,
stackable: false,
heightMod: 40,
attachmentSlots: 4,
attachmentPoints: [new createjs.Point(0, -293), new createjs.Point(-293, 0), new createjs.Point(293, 0), new createjs.Point(0, 293)],
anchorPoint: new createjs.Point(0, 293),
spriteAnchor: new createjs.Point(146, 293),
spriteAnchorOffset: new createjs.Point(0, 0),
bitmapCenter: new createjs.Point(146, 146),
gridSize: new createjs.Point(1, 1),
attachmentCoordinates: [new createjs.Point(0, -1), new createjs.Point(-1, 0), new createjs.Point(1, 0), new createjs.Point(0, 1)],
renderPriority: 0,
spriteDoesntRotate: false,
overrideButtonScaling: false,
buttonScale: .5,
startTextPosition: new createjs.Point(0, 75),
endTextPosition: new createjs.Point(0, -120),
directionTextPosition: new createjs.Point(0, 0)
}
}
function UAP0450D(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
isoMountPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoConnectorPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoRotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoSpriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCB30246.PNG"],
frames: {
width: 103,
height: 145
},
animations: {}
}),
isoSpriteCenter: new createjs.Point(51, 72),
altSkus: false,
length: 35.25,
width: 34,
legsNeeded: true,
isoFrameOffset: 0,
isoChildFrameOffset: 0,
description: "4-Step 50° Ladder",
name: "4-Step \n50° Ladder (Down)",
sprite: "assets/spritesheets/UAP0450D.png",
sku: "UAP0450",
gsku: "29RJ18",
connectableParts: ["UAP3636"],
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
rails: false,
ladder: true,
stackable: true,
heightMod: -40,
attachmentSlots: 4,
attachmentPoints: [new createjs.Point(0, -293), new createjs.Point(-293, 0), new createjs.Point(293, 0), new createjs.Point(0, 293)],
anchorPoint: new createjs.Point(0, 293),
spriteAnchor: new createjs.Point(146, 293),
spriteAnchorOffset: new createjs.Point(0, 0),
bitmapCenter: new createjs.Point(146, 146),
gridSize: new createjs.Point(1, 1),
attachmentCoordinates: [new createjs.Point(0, -1), new createjs.Point(-1, 0), new createjs.Point(1, 0), new createjs.Point(0, 1)],
renderPriority: 0,
spriteDoesntRotate: false,
overrideButtonScaling: false,
buttonScale: .5,
startTextPosition: new createjs.Point(0, 75),
endTextPosition: new createjs.Point(0, -120),
directionTextPosition: new createjs.Point(0, 0)
}
}
function UAP0490D(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
isoMountPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoConnectorPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoRotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoSpriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCB30246.PNG"],
frames: {
width: 103,
height: 145
},
animations: {}
}),
isoSpriteCenter: new createjs.Point(51, 72),
altSkus: false,
length: 9,
width: 30,
legsNeeded: true,
isoFrameOffset: 0,
isoChildFrameOffset: 0,
description: "4-Step 90° Ladder",
name: "4-Step \n90° Ladder (Down)",
sprite: "assets/spritesheets/UAP0290D.png",
sku: "UAP0490",
gsku: "29RJ18",
connectableParts: [],
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
rails: false,
ladder: true,
stackable: false,
heightMod: -40,
attachmentSlots: 0,
attachmentPoints: [new createjs.Point(0, -293), new createjs.Point(-293, 0), new createjs.Point(293, 0), new createjs.Point(0, 293)],
anchorPoint: new createjs.Point(0, 293),
spriteAnchor: new createjs.Point(146, 293),
spriteAnchorOffset: new createjs.Point(0, 0),
bitmapCenter: new createjs.Point(146, 146),
gridSize: new createjs.Point(1, 1),
attachmentCoordinates: [new createjs.Point(0, -1), new createjs.Point(-1, 0), new createjs.Point(1, 0), new createjs.Point(0, 1)],
renderPriority: 0,
spriteDoesntRotate: false,
overrideButtonScaling: false,
buttonScale: .5,
startTextPosition: new createjs.Point(0, 75),
endTextPosition: new createjs.Point(0, -120),
directionTextPosition: new createjs.Point(0, 0)
}
}
function UAP0550U(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
isoMountPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoConnectorPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoRotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoSpriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCB30246.PNG"],
frames: {
width: 103,
height: 145
},
animations: {}
}),
isoSpriteCenter: new createjs.Point(51, 72),
altSkus: false,
length: 43.625,
width: 34,
legsNeeded: true,
isoFrameOffset: 0,
isoChildFrameOffset: 0,
description: "5-Step 50° Ladder",
name: "5-Step \n50° Ladder (Up)",
sprite: "assets/spritesheets/UAP0550U.png",
sku: "UAP0550",
gsku: "29RJ18",
connectableParts: ["UAP3636"],
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
rails: false,
ladder: true,
stackable: true,
heightMod: 50,
attachmentSlots: 4,
attachmentPoints: [new createjs.Point(0, -440), new createjs.Point(-440, 0), new createjs.Point(440, 0), new createjs.Point(0, 440)],
anchorPoint: new createjs.Point(0, 586),
spriteAnchor: new createjs.Point(146, 586),
spriteAnchorOffset: new createjs.Point(0, -146),
bitmapCenter: new createjs.Point(146, 293),
gridSize: new createjs.Point(1, 2),
attachmentCoordinates: [new createjs.Point(0, -2), new createjs.Point(-2, 0), new createjs.Point(2, 0), new createjs.Point(0, 2)],
renderPriority: 0,
spriteDoesntRotate: false,
overrideButtonScaling: false,
buttonScale: .5,
startTextPosition: new createjs.Point(0, 75),
endTextPosition: new createjs.Point(0, -120),
directionTextPosition: new createjs.Point(0, 0)
}
}
function UAP0550D(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
isoMountPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoConnectorPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoRotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoSpriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCB30246.PNG"],
frames: {
width: 103,
height: 145
},
animations: {}
}),
isoSpriteCenter: new createjs.Point(51, 72),
altSkus: false,
length: 43.625,
width: 34,
legsNeeded: true,
isoFrameOffset: 0,
isoChildFrameOffset: 0,
description: "5-Step 50° Ladder",
name: "5-Step \n50° Ladder (Down)",
sprite: "assets/spritesheets/UAP0550D.png",
sku: "UAP0550",
gsku: "29RJ18",
connectableParts: ["UAP3636"],
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
rails: false,
ladder: true,
stackable: true,
heightMod: -50,
attachmentSlots: 4,
attachmentPoints: [new createjs.Point(0, -440), new createjs.Point(-440, 0), new createjs.Point(440, 0), new createjs.Point(0, 440)],
anchorPoint: new createjs.Point(0, 586),
spriteAnchor: new createjs.Point(146, 586),
spriteAnchorOffset: new createjs.Point(0, -146),
bitmapCenter: new createjs.Point(146, 293),
gridSize: new createjs.Point(1, 2),
attachmentCoordinates: [new createjs.Point(0, -2), new createjs.Point(-2, 0), new createjs.Point(2, 0), new createjs.Point(0, 2)],
renderPriority: 0,
spriteDoesntRotate: false,
overrideButtonScaling: false,
buttonScale: .5,
startTextPosition: new createjs.Point(0, 75),
endTextPosition: new createjs.Point(0, -120),
directionTextPosition: new createjs.Point(0, 0)
}
}
function UAP0590U(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
isoMountPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoConnectorPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoRotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoSpriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCB30246.PNG"],
frames: {
width: 103,
height: 145
},
animations: {}
}),
isoSpriteCenter: new createjs.Point(51, 72),
altSkus: false,
length: 9,
width: 30,
legsNeeded: true,
isoFrameOffset: 0,
isoChildFrameOffset: 0,
description: "5-Step 90° Ladder",
name: "5-Step \n90° Ladder (Up)",
sprite: "assets/spritesheets/UAP0290U.png",
sku: "UAP0590",
gsku: "29RJ18",
connectableParts: ["UAP3636"],
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
rails: false,
ladder: true,
stackable: false,
heightMod: 50,
attachmentSlots: 4,
attachmentPoints: [new createjs.Point(0, -293), new createjs.Point(-293, 0), new createjs.Point(293, 0), new createjs.Point(0, 293)],
anchorPoint: new createjs.Point(0, 293),
spriteAnchor: new createjs.Point(146, 293),
spriteAnchorOffset: new createjs.Point(0, 0),
bitmapCenter: new createjs.Point(146, 146),
gridSize: new createjs.Point(1, 1),
attachmentCoordinates: [new createjs.Point(0, -1), new createjs.Point(-1, 0), new createjs.Point(1, 0), new createjs.Point(0, 1)],
renderPriority: 0,
spriteDoesntRotate: false,
overrideButtonScaling: false,
buttonScale: .5,
startTextPosition: new createjs.Point(0, 75),
endTextPosition: new createjs.Point(0, -120),
directionTextPosition: new createjs.Point(0, 0)
}
}
function UAP0590D(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
isoMountPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoConnectorPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoRotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoSpriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCB30246.PNG"],
frames: {
width: 103,
height: 145
},
animations: {}
}),
isoSpriteCenter: new createjs.Point(51, 72),
altSkus: false,
length: 9,
width: 30,
legsNeeded: true,
isoFrameOffset: 0,
isoChildFrameOffset: 0,
description: "5-Step 90° Ladder",
name: "5-Step \n90° Ladder (Down)",
sprite: "assets/spritesheets/UAP0290D.png",
sku: "UAP0590",
gsku: "29RJ18",
connectableParts: [],
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
rails: false,
ladder: true,
stackable: false,
heightMod: -50,
attachmentSlots: 0,
attachmentPoints: [new createjs.Point(0, -293), new createjs.Point(-293, 0), new createjs.Point(293, 0), new createjs.Point(0, 293)],
anchorPoint: new createjs.Point(0, 293),
spriteAnchor: new createjs.Point(146, 293),
spriteAnchorOffset: new createjs.Point(0, 0),
bitmapCenter: new createjs.Point(146, 146),
gridSize: new createjs.Point(1, 1),
attachmentCoordinates: [new createjs.Point(0, -1), new createjs.Point(-1, 0), new createjs.Point(1, 0), new createjs.Point(0, 1)],
renderPriority: 0,
spriteDoesntRotate: false,
overrideButtonScaling: false,
buttonScale: .5,
startTextPosition: new createjs.Point(0, 75),
endTextPosition: new createjs.Point(0, -120),
directionTextPosition: new createjs.Point(0, 0)
}
}
function UAP0650U(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
isoMountPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoConnectorPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoRotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoSpriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCB30246.PNG"],
frames: {
width: 103,
height: 145
},
animations: {}
}),
isoSpriteCenter: new createjs.Point(51, 72),
altSkus: false,
length: 52,
width: 34,
legsNeeded: true,
isoFrameOffset: 0,
isoChildFrameOffset: 0,
description: "6-Step 50° Ladder",
name: "6-Step \n50° Ladder (Up)",
sprite: "assets/spritesheets/UAP0650U.png",
sku: "UAP0650",
gsku: "29RJ18",
connectableParts: ["UAP3636"],
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
rails: false,
ladder: true,
stackable: true,
heightMod: 60,
attachmentSlots: 4,
attachmentPoints: [new createjs.Point(0, -440), new createjs.Point(-440, 0), new createjs.Point(440, 0), new createjs.Point(0, 440)],
anchorPoint: new createjs.Point(0, 586),
spriteAnchor: new createjs.Point(146, 586),
spriteAnchorOffset: new createjs.Point(0, -146),
bitmapCenter: new createjs.Point(146, 293),
gridSize: new createjs.Point(1, 2),
attachmentCoordinates: [new createjs.Point(0, -2), new createjs.Point(-2, 0), new createjs.Point(2, 0), new createjs.Point(0, 2)],
renderPriority: 0,
spriteDoesntRotate: false,
overrideButtonScaling: false,
buttonScale: .5,
startTextPosition: new createjs.Point(0, 75),
endTextPosition: new createjs.Point(0, -120),
directionTextPosition: new createjs.Point(0, 0)
}
}
function UAP0650D(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
isoMountPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoConnectorPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoRotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoSpriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCB30246.PNG"],
frames: {
width: 103,
height: 145
},
animations: {}
}),
isoSpriteCenter: new createjs.Point(51, 72),
altSkus: false,
length: 52,
width: 34,
legsNeeded: true,
isoFrameOffset: 0,
isoChildFrameOffset: 0,
description: "6-Step 50° Ladder",
name: "6-Step \n50° Ladder (Down)",
sprite: "assets/spritesheets/UAP0650D.png",
sku: "UAP0650",
gsku: "29RJ18",
connectableParts: ["UAP3636"],
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
rails: false,
ladder: true,
stackable: true,
heightMod: -60,
attachmentSlots: 4,
attachmentPoints: [new createjs.Point(0, -440), new createjs.Point(-440, 0), new createjs.Point(440, 0), new createjs.Point(0, 440)],
anchorPoint: new createjs.Point(0, 586),
spriteAnchor: new createjs.Point(146, 586),
spriteAnchorOffset: new createjs.Point(0, -146),
bitmapCenter: new createjs.Point(146, 293),
gridSize: new createjs.Point(1, 2),
attachmentCoordinates: [new createjs.Point(0, -2), new createjs.Point(-2, 0), new createjs.Point(2, 0), new createjs.Point(0, 2)],
renderPriority: 0,
spriteDoesntRotate: false,
overrideButtonScaling: false,
buttonScale: .5,
startTextPosition: new createjs.Point(0, 75),
endTextPosition: new createjs.Point(0, -120),
directionTextPosition: new createjs.Point(0, 0)
}
}
function UAP0690U(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
isoMountPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoConnectorPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoRotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoSpriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCB30246.PNG"],
frames: {
width: 103,
height: 145
},
animations: {}
}),
isoSpriteCenter: new createjs.Point(51, 72),
altSkus: false,
length: 9,
width: 30,
legsNeeded: true,
isoFrameOffset: 0,
isoChildFrameOffset: 0,
description: "6-Step 90° Ladder",
name: "6-Step \n90° Ladder (Up)",
sprite: "assets/spritesheets/UAP0290U.png",
sku: "UAP0690",
gsku: "29RJ18",
connectableParts: ["UAP3636"],
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
rails: false,
ladder: true,
stackable: false,
heightMod: 60,
attachmentSlots: 4,
attachmentPoints: [new createjs.Point(0, -293), new createjs.Point(-293, 0), new createjs.Point(293, 0), new createjs.Point(0, 293)],
anchorPoint: new createjs.Point(0, 293),
spriteAnchor: new createjs.Point(146, 293),
spriteAnchorOffset: new createjs.Point(0, 0),
bitmapCenter: new createjs.Point(146, 146),
gridSize: new createjs.Point(1, 1),
attachmentCoordinates: [new createjs.Point(0, -1), new createjs.Point(-1, 0), new createjs.Point(1, 0), new createjs.Point(0, 1)],
renderPriority: 0,
spriteDoesntRotate: false,
overrideButtonScaling: false,
buttonScale: .5,
startTextPosition: new createjs.Point(0, 75),
endTextPosition: new createjs.Point(0, -120),
directionTextPosition: new createjs.Point(0, 0)
}
}
function UAP0690D(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
isoMountPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoConnectorPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoRotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoSpriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCB30246.PNG"],
frames: {
width: 103,
height: 145
},
animations: {}
}),
isoSpriteCenter: new createjs.Point(51, 72),
altSkus: false,
length: 9,
width: 30,
legsNeeded: true,
isoFrameOffset: 0,
isoChildFrameOffset: 0,
description: "6-Step 90° Ladder",
name: "6-Step \n90° Ladder (Down)",
sprite: "assets/spritesheets/UAP0290D.png",
sku: "UAP0690",
gsku: "29RJ18",
connectableParts: [],
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
rails: false,
ladder: true,
stackable: false,
heightMod: -60,
attachmentSlots: 0,
attachmentPoints: [new createjs.Point(0, -293), new createjs.Point(-293, 0), new createjs.Point(293, 0), new createjs.Point(0, 293)],
anchorPoint: new createjs.Point(0, 293),
spriteAnchor: new createjs.Point(146, 293),
spriteAnchorOffset: new createjs.Point(0, 0),
bitmapCenter: new createjs.Point(146, 146),
gridSize: new createjs.Point(1, 1),
attachmentCoordinates: [new createjs.Point(0, -1), new createjs.Point(-1, 0), new createjs.Point(1, 0), new createjs.Point(0, 1)],
renderPriority: 0,
spriteDoesntRotate: false,
overrideButtonScaling: false,
buttonScale: .5,
startTextPosition: new createjs.Point(0, 75),
endTextPosition: new createjs.Point(0, -120),
directionTextPosition: new createjs.Point(0, 0)
}
}
function UAP0750U(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
isoMountPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoConnectorPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoRotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoSpriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCB30246.PNG"],
frames: {
width: 103,
height: 145
},
animations: {}
}),
isoSpriteCenter: new createjs.Point(51, 72),
altSkus: false,
length: 60.375,
width: 34,
legsNeeded: true,
isoFrameOffset: 0,
isoChildFrameOffset: 0,
description: "7-Step 50° Ladder",
name: "7-Step \n50° Ladder (Up)",
sprite: "assets/spritesheets/UAP0750U.png",
sku: "UAP0750",
gsku: "29RJ18",
connectableParts: ["UAP3636"],
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
rails: false,
ladder: true,
stackable: true,
heightMod: 70,
attachmentSlots: 4,
attachmentPoints: [new createjs.Point(0, -440), new createjs.Point(-440, 0), new createjs.Point(440, 0), new createjs.Point(0, 440)],
anchorPoint: new createjs.Point(0, 586),
spriteAnchor: new createjs.Point(146, 586),
spriteAnchorOffset: new createjs.Point(0, -146),
bitmapCenter: new createjs.Point(146, 293),
gridSize: new createjs.Point(1, 2),
attachmentCoordinates: [new createjs.Point(0, -2), new createjs.Point(-2, 0), new createjs.Point(2, 0), new createjs.Point(0, 2)],
renderPriority: 0,
spriteDoesntRotate: false,
overrideButtonScaling: false,
buttonScale: .5,
startTextPosition: new createjs.Point(0, 75),
endTextPosition: new createjs.Point(0, -120),
directionTextPosition: new createjs.Point(0, 0)
}
}
function UAP0750D(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
isoMountPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoConnectorPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoRotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoSpriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCB30246.PNG"],
frames: {
width: 103,
height: 145
},
animations: {}
}),
isoSpriteCenter: new createjs.Point(51, 72),
altSkus: false,
length: 60.375,
width: 34,
legsNeeded: true,
isoFrameOffset: 0,
isoChildFrameOffset: 0,
description: "7-Step 50° Ladder",
name: "7-Step \n50° Ladder (Down)",
sprite: "assets/spritesheets/UAP0750D.png",
sku: "UAP0750",
gsku: "29RJ18",
connectableParts: ["UAP3636"],
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
rails: false,
ladder: true,
stackable: true,
heightMod: -70,
attachmentSlots: 4,
attachmentPoints: [new createjs.Point(0, -440), new createjs.Point(-440, 0), new createjs.Point(440, 0), new createjs.Point(0, 440)],
anchorPoint: new createjs.Point(0, 586),
spriteAnchor: new createjs.Point(146, 586),
spriteAnchorOffset: new createjs.Point(0, -146),
bitmapCenter: new createjs.Point(146, 293),
gridSize: new createjs.Point(1, 2),
attachmentCoordinates: [new createjs.Point(0, -2), new createjs.Point(-2, 0), new createjs.Point(2, 0), new createjs.Point(0, 2)],
renderPriority: 0,
spriteDoesntRotate: false,
overrideButtonScaling: false,
buttonScale: .5,
startTextPosition: new createjs.Point(0, 75),
endTextPosition: new createjs.Point(0, -120),
directionTextPosition: new createjs.Point(0, 0)
}
}
function UAP0790U(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
isoMountPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoConnectorPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoRotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoSpriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCB30246.PNG"],
frames: {
width: 103,
height: 145
},
animations: {}
}),
isoSpriteCenter: new createjs.Point(51, 72),
altSkus: false,
length: 9,
width: 30,
legsNeeded: true,
isoFrameOffset: 0,
isoChildFrameOffset: 0,
description: "7-Step 90° Ladder",
name: "7-Step \n90° Ladder (Up)",
sprite: "assets/spritesheets/UAP0290U.png",
sku: "UAP0790",
gsku: "29RJ18",
connectableParts: ["UAP3636"],
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
rails: false,
ladder: true,
stackable: false,
heightMod: 70,
attachmentSlots: 4,
attachmentPoints: [new createjs.Point(0, -293), new createjs.Point(-293, 0), new createjs.Point(293, 0), new createjs.Point(0, 293)],
anchorPoint: new createjs.Point(0, 293),
spriteAnchor: new createjs.Point(146, 293),
spriteAnchorOffset: new createjs.Point(0, 0),
bitmapCenter: new createjs.Point(146, 146),
gridSize: new createjs.Point(1, 1),
attachmentCoordinates: [new createjs.Point(0, -1), new createjs.Point(-1, 0), new createjs.Point(1, 0), new createjs.Point(0, 1)],
renderPriority: 0,
spriteDoesntRotate: false,
overrideButtonScaling: false,
buttonScale: .5,
startTextPosition: new createjs.Point(0, 75),
endTextPosition: new createjs.Point(0, -120),
directionTextPosition: new createjs.Point(0, 0)
}
}
function UAP0790D(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
isoMountPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoConnectorPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoRotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoSpriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCB30246.PNG"],
frames: {
width: 103,
height: 145
},
animations: {}
}),
isoSpriteCenter: new createjs.Point(51, 72),
altSkus: false,
length: 9,
width: 30,
legsNeeded: true,
isoFrameOffset: 0,
isoChildFrameOffset: 0,
description: "7-Step 90° Ladder",
name: "7-Step \n90° Ladder (Down)",
sprite: "assets/spritesheets/UAP0290D.png",
sku: "UAP0790",
gsku: "29RJ18",
connectableParts: [],
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
rails: false,
ladder: true,
stackable: false,
heightMod: -70,
attachmentSlots: 0,
attachmentPoints: [new createjs.Point(0, -293), new createjs.Point(-293, 0), new createjs.Point(293, 0), new createjs.Point(0, 293)],
anchorPoint: new createjs.Point(0, 293),
spriteAnchor: new createjs.Point(146, 293),
spriteAnchorOffset: new createjs.Point(0, 0),
bitmapCenter: new createjs.Point(146, 146),
gridSize: new createjs.Point(1, 1),
attachmentCoordinates: [new createjs.Point(0, -1), new createjs.Point(-1, 0), new createjs.Point(1, 0), new createjs.Point(0, 1)],
renderPriority: 0,
spriteDoesntRotate: false,
overrideButtonScaling: false,
buttonScale: .5,
startTextPosition: new createjs.Point(0, 75),
endTextPosition: new createjs.Point(0, -120),
directionTextPosition: new createjs.Point(0, 0)
}
}
function UAP0850U(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
isoMountPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoConnectorPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoRotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoSpriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCB30246.PNG"],
frames: {
width: 103,
height: 145
},
animations: {}
}),
isoSpriteCenter: new createjs.Point(51, 72),
altSkus: false,
length: 68.75,
width: 34,
legsNeeded: true,
isoFrameOffset: 0,
isoChildFrameOffset: 0,
description: "8-Step 50° Ladder",
name: "8-Step \n50° Ladder (Up)",
sprite: "assets/spritesheets/UAP0850U.png",
sku: "UAP0850",
gsku: "29RJ18",
connectableParts: ["UAP3636"],
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
rails: false,
ladder: true,
stackable: true,
heightMod: 80,
attachmentSlots: 4,
attachmentPoints: [new createjs.Point(0, -440), new createjs.Point(-440, 0), new createjs.Point(440, 0), new createjs.Point(0, 440)],
anchorPoint: new createjs.Point(0, 586),
spriteAnchor: new createjs.Point(146, 586),
spriteAnchorOffset: new createjs.Point(0, -146),
bitmapCenter: new createjs.Point(146, 293),
gridSize: new createjs.Point(1, 2),
attachmentCoordinates: [new createjs.Point(0, -2), new createjs.Point(-2, 0), new createjs.Point(2, 0), new createjs.Point(0, 2)],
renderPriority: 0,
spriteDoesntRotate: false,
overrideButtonScaling: false,
buttonScale: .5,
startTextPosition: new createjs.Point(0, 75),
endTextPosition: new createjs.Point(0, -120),
directionTextPosition: new createjs.Point(0, 0)
}
}
function UAP0850D(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
isoMountPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoConnectorPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoRotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoSpriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCB30246.PNG"],
frames: {
width: 103,
height: 145
},
animations: {}
}),
isoSpriteCenter: new createjs.Point(51, 72),
altSkus: false,
length: 68.75,
width: 34,
legsNeeded: true,
isoFrameOffset: 0,
isoChildFrameOffset: 0,
description: "8-Step 50° Ladder",
name: "8-Step \n50° Ladder (Down)",
sprite: "assets/spritesheets/UAP0850D.png",
sku: "UAP0850",
gsku: "29RJ18",
connectableParts: ["UAP3636"],
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
rails: false,
ladder: true,
stackable: true,
heightMod: -80,
attachmentSlots: 4,
attachmentPoints: [new createjs.Point(0, -440), new createjs.Point(-440, 0), new createjs.Point(440, 0), new createjs.Point(0, 440)],
anchorPoint: new createjs.Point(0, 586),
spriteAnchor: new createjs.Point(146, 586),
spriteAnchorOffset: new createjs.Point(0, -146),
bitmapCenter: new createjs.Point(146, 293),
gridSize: new createjs.Point(1, 2),
attachmentCoordinates: [new createjs.Point(0, -2), new createjs.Point(-2, 0), new createjs.Point(2, 0), new createjs.Point(0, 2)],
renderPriority: 0,
spriteDoesntRotate: false,
overrideButtonScaling: false,
buttonScale: .5,
startTextPosition: new createjs.Point(0, 75),
endTextPosition: new createjs.Point(0, -120),
directionTextPosition: new createjs.Point(0, 0)
}
}
function UAP0890U(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
isoMountPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoConnectorPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoRotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoSpriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCB30246.PNG"],
frames: {
width: 103,
height: 145
},
animations: {}
}),
isoSpriteCenter: new createjs.Point(51, 72),
altSkus: false,
length: 9,
width: 30,
legsNeeded: true,
isoFrameOffset: 0,
isoChildFrameOffset: 0,
description: "8-Step 90° Ladder",
name: "8-Step \n90° Ladder (Up)",
sprite: "assets/spritesheets/UAP0290U.png",
sku: "UAP0890",
gsku: "29RJ18",
connectableParts: ["UAP3636"],
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
rails: false,
ladder: true,
stackable: false,
heightMod: 80,
attachmentSlots: 4,
attachmentPoints: [new createjs.Point(0, -293), new createjs.Point(-293, 0), new createjs.Point(293, 0), new createjs.Point(0, 293)],
anchorPoint: new createjs.Point(0, 293),
spriteAnchor: new createjs.Point(146, 293),
spriteAnchorOffset: new createjs.Point(0, 0),
bitmapCenter: new createjs.Point(146, 146),
gridSize: new createjs.Point(1, 1),
attachmentCoordinates: [new createjs.Point(0, -1), new createjs.Point(-1, 0), new createjs.Point(1, 0), new createjs.Point(0, 1)],
renderPriority: 0,
spriteDoesntRotate: false,
overrideButtonScaling: false,
buttonScale: .5,
startTextPosition: new createjs.Point(0, 75),
endTextPosition: new createjs.Point(0, -120),
directionTextPosition: new createjs.Point(0, 0)
}
}
function UAP0890D(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
isoMountPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoConnectorPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoRotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoSpriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCB30246.PNG"],
frames: {
width: 103,
height: 145
},
animations: {}
}),
isoSpriteCenter: new createjs.Point(51, 72),
altSkus: false,
length: 9,
width: 30,
legsNeeded: true,
isoFrameOffset: 0,
isoChildFrameOffset: 0,
description: "8-Step 90° Ladder",
name: "8-Step \n90° Ladder (Down)",
sprite: "assets/spritesheets/UAP0290D.png",
sku: "UAP0890",
gsku: "29RJ18",
connectableParts: [],
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
rails: false,
ladder: true,
stackable: false,
heightMod: -80,
attachmentSlots: 0,
attachmentPoints: [new createjs.Point(0, -293), new createjs.Point(-293, 0), new createjs.Point(293, 0), new createjs.Point(0, 293)],
anchorPoint: new createjs.Point(0, 293),
spriteAnchor: new createjs.Point(146, 293),
spriteAnchorOffset: new createjs.Point(0, 0),
bitmapCenter: new createjs.Point(146, 146),
gridSize: new createjs.Point(1, 1),
attachmentCoordinates: [new createjs.Point(0, -1), new createjs.Point(-1, 0), new createjs.Point(1, 0), new createjs.Point(0, 1)],
renderPriority: 0,
spriteDoesntRotate: false,
overrideButtonScaling: false,
buttonScale: .5,
startTextPosition: new createjs.Point(0, 75),
endTextPosition: new createjs.Point(0, -120),
directionTextPosition: new createjs.Point(0, 0)
}
}
function UAP0950U(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
isoMountPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoConnectorPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoRotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoSpriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCB30246.PNG"],
frames: {
width: 103,
height: 145
},
animations: {}
}),
isoSpriteCenter: new createjs.Point(51, 72),
altSkus: false,
length: 77.125,
width: 34,
legsNeeded: true,
isoFrameOffset: 0,
isoChildFrameOffset: 0,
description: "9-Step 50° Ladder",
name: "9-Step \n50° Ladder (Up)",
sprite: "assets/spritesheets/UAP0950U.png",
sku: "UAP0950",
gsku: "29RJ18",
connectableParts: ["UAP3636"],
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
rails: false,
ladder: true,
stackable: true,
heightMod: 90,
attachmentSlots: 4,
attachmentPoints: [new createjs.Point(0, -586), new createjs.Point(-586, 0), new createjs.Point(586, 0), new createjs.Point(0, 586)],
anchorPoint: new createjs.Point(0, 879),
spriteAnchor: new createjs.Point(146, 879),
spriteAnchorOffset: new createjs.Point(0, -293),
bitmapCenter: new createjs.Point(146, 440),
gridSize: new createjs.Point(1, 3),
attachmentCoordinates: [new createjs.Point(0, -3), new createjs.Point(-3, 0), new createjs.Point(3, 0), new createjs.Point(0, 3)],
renderPriority: 0,
spriteDoesntRotate: false,
overrideButtonScaling: false,
buttonScale: .5,
startTextPosition: new createjs.Point(0, 75),
endTextPosition: new createjs.Point(0, -120),
directionTextPosition: new createjs.Point(0, 0)
}
}
function UAP0950D(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
isoMountPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoConnectorPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoRotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoSpriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCB30246.PNG"],
frames: {
width: 103,
height: 145
},
animations: {}
}),
isoSpriteCenter: new createjs.Point(51, 72),
altSkus: false,
length: 77.125,
width: 34,
legsNeeded: true,
isoFrameOffset: 0,
isoChildFrameOffset: 0,
description: "9-Step 50° Ladder",
name: "9-Step \n50° Ladder (Down)",
sprite: "assets/spritesheets/UAP0950D.png",
sku: "UAP0950",
gsku: "29RJ18",
connectableParts: ["UAP3636"],
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
rails: false,
ladder: true,
stackable: true,
heightMod: -90,
attachmentSlots: 4,
attachmentPoints: [new createjs.Point(0, -586), new createjs.Point(-586, 0), new createjs.Point(586, 0), new createjs.Point(0, 586)],
anchorPoint: new createjs.Point(0, 879),
spriteAnchor: new createjs.Point(146, 879),
spriteAnchorOffset: new createjs.Point(0, -293),
bitmapCenter: new createjs.Point(146, 440),
gridSize: new createjs.Point(1, 3),
attachmentCoordinates: [new createjs.Point(0, -3), new createjs.Point(-3, 0), new createjs.Point(3, 0), new createjs.Point(0, 3)],
renderPriority: 0,
spriteDoesntRotate: false,
overrideButtonScaling: false,
buttonScale: .5,
startTextPosition: new createjs.Point(0, 75),
endTextPosition: new createjs.Point(0, -120),
directionTextPosition: new createjs.Point(0, 0)
}
}
function UAP0990U(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
isoMountPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoConnectorPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoRotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoSpriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCB30246.PNG"],
frames: {
width: 103,
height: 145
},
animations: {}
}),
isoSpriteCenter: new createjs.Point(51, 72),
altSkus: false,
length: 9,
width: 30,
legsNeeded: true,
isoFrameOffset: 0,
isoChildFrameOffset: 0,
description: "9-Step 90° Ladder",
name: "9-Step \n90° Ladder (Up)",
sprite: "assets/spritesheets/UAP0290U.png",
sku: "UAP0990",
gsku: "29RJ18",
connectableParts: ["UAP3636"],
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
rails: false,
ladder: true,
stackable: false,
heightMod: 90,
attachmentSlots: 4,
attachmentPoints: [new createjs.Point(0, -293), new createjs.Point(-293, 0), new createjs.Point(293, 0), new createjs.Point(0, 293)],
anchorPoint: new createjs.Point(0, 293),
spriteAnchor: new createjs.Point(146, 293),
spriteAnchorOffset: new createjs.Point(0, 0),
bitmapCenter: new createjs.Point(146, 146),
gridSize: new createjs.Point(1, 1),
attachmentCoordinates: [new createjs.Point(0, -1), new createjs.Point(-1, 0), new createjs.Point(1, 0), new createjs.Point(0, 1)],
renderPriority: 0,
spriteDoesntRotate: false,
overrideButtonScaling: false,
buttonScale: .5,
startTextPosition: new createjs.Point(0, 75),
endTextPosition: new createjs.Point(0, -120),
directionTextPosition: new createjs.Point(0, 0)
}
}
function UAP0990D(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
isoMountPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoConnectorPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoRotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoSpriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCB30246.PNG"],
frames: {
width: 103,
height: 145
},
animations: {}
}),
isoSpriteCenter: new createjs.Point(51, 72),
altSkus: false,
length: 9,
width: 30,
legsNeeded: true,
isoFrameOffset: 0,
isoChildFrameOffset: 0,
description: "9-Step 90° Ladder",
name: "9-Step \n90° Ladder (Down)",
sprite: "assets/spritesheets/UAP0290D.png",
sku: "UAP0990",
gsku: "29RJ18",
connectableParts: [],
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
rails: false,
ladder: true,
stackable: false,
heightMod: -90,
attachmentSlots: 0,
attachmentPoints: [new createjs.Point(0, -293), new createjs.Point(-293, 0), new createjs.Point(293, 0), new createjs.Point(0, 293)],
anchorPoint: new createjs.Point(0, 293),
spriteAnchor: new createjs.Point(146, 293),
spriteAnchorOffset: new createjs.Point(0, 0),
bitmapCenter: new createjs.Point(146, 146),
gridSize: new createjs.Point(1, 1),
attachmentCoordinates: [new createjs.Point(0, -1), new createjs.Point(-1, 0), new createjs.Point(1, 0), new createjs.Point(0, 1)],
renderPriority: 0,
spriteDoesntRotate: false,
overrideButtonScaling: false,
buttonScale: .5,
startTextPosition: new createjs.Point(0, 75),
endTextPosition: new createjs.Point(0, -120),
directionTextPosition: new createjs.Point(0, 0)
}
}
function UAP1050U(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
isoMountPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoConnectorPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoRotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoSpriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCB30246.PNG"],
frames: {
width: 103,
height: 145
},
animations: {}
}),
isoSpriteCenter: new createjs.Point(51, 72),
altSkus: false,
length: 85.5,
width: 34,
legsNeeded: true,
isoFrameOffset: 0,
isoChildFrameOffset: 0,
description: "10-Step 50° Ladder",
name: "10-Step \n50° Ladder (Up)",
sprite: "assets/spritesheets/UAP1050U.png",
sku: "UAP1050",
gsku: "29RJ18",
connectableParts: ["UAP3636"],
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
rails: false,
ladder: true,
stackable: true,
heightMod: 100,
attachmentSlots: 4,
attachmentPoints: [new createjs.Point(0, -586), new createjs.Point(-586, 0), new createjs.Point(586, 0), new createjs.Point(0, 586)],
anchorPoint: new createjs.Point(0, 879),
spriteAnchor: new createjs.Point(146, 879),
spriteAnchorOffset: new createjs.Point(0, -293),
bitmapCenter: new createjs.Point(146, 440),
gridSize: new createjs.Point(1, 3),
attachmentCoordinates: [new createjs.Point(0, -3), new createjs.Point(-3, 0), new createjs.Point(3, 0), new createjs.Point(0, 3)],
renderPriority: 0,
spriteDoesntRotate: false,
overrideButtonScaling: false,
buttonScale: .5,
startTextPosition: new createjs.Point(0, 75),
endTextPosition: new createjs.Point(0, -120),
directionTextPosition: new createjs.Point(0, 0)
}
}
function UAP1050D(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
isoMountPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoConnectorPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoRotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoSpriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCB30246.PNG"],
frames: {
width: 103,
height: 145
},
animations: {}
}),
isoSpriteCenter: new createjs.Point(51, 72),
altSkus: false,
length: 85.5,
width: 34,
legsNeeded: true,
isoFrameOffset: 0,
isoChildFrameOffset: 0,
description: "10-Step 50° Ladder",
name: "10-Step \n50° Ladder (Down)",
sprite: "assets/spritesheets/UAP1050D.png",
sku: "UAP1050",
gsku: "29RJ18",
connectableParts: ["UAP3636"],
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
rails: false,
ladder: true,
stackable: true,
heightMod: -100,
attachmentSlots: 4,
attachmentPoints: [new createjs.Point(0, -586), new createjs.Point(-586, 0), new createjs.Point(586, 0), new createjs.Point(0, 586)],
anchorPoint: new createjs.Point(0, 879),
spriteAnchor: new createjs.Point(146, 879),
spriteAnchorOffset: new createjs.Point(0, -293),
bitmapCenter: new createjs.Point(146, 440),
gridSize: new createjs.Point(1, 3),
attachmentCoordinates: [new createjs.Point(0, -3), new createjs.Point(-3, 0), new createjs.Point(3, 0), new createjs.Point(0, 3)],
renderPriority: 0,
spriteDoesntRotate: false,
overrideButtonScaling: false,
buttonScale: .5,
startTextPosition: new createjs.Point(0, 75),
endTextPosition: new createjs.Point(0, -120),
directionTextPosition: new createjs.Point(0, 0)
}
}
function UAP1090U(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
isoMountPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoConnectorPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoRotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoSpriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCB30246.PNG"],
frames: {
width: 103,
height: 145
},
animations: {}
}),
isoSpriteCenter: new createjs.Point(51, 72),
altSkus: false,
length: 9,
width: 30,
legsNeeded: true,
isoFrameOffset: 0,
isoChildFrameOffset: 0,
description: "10-Step 90° Ladder",
name: "10-Step \n90° Ladder (Up)",
sprite: "assets/spritesheets/UAP0290U.png",
sku: "UAP1090",
gsku: "29RJ18",
connectableParts: ["UAP3636"],
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
rails: false,
ladder: true,
stackable: false,
heightMod: 100,
attachmentSlots: 4,
attachmentPoints: [new createjs.Point(0, -293), new createjs.Point(-293, 0), new createjs.Point(293, 0), new createjs.Point(0, 293)],
anchorPoint: new createjs.Point(0, 293),
spriteAnchor: new createjs.Point(146, 293),
spriteAnchorOffset: new createjs.Point(0, 0),
bitmapCenter: new createjs.Point(146, 146),
gridSize: new createjs.Point(1, 1),
attachmentCoordinates: [new createjs.Point(0, -1), new createjs.Point(-1, 0), new createjs.Point(1, 0), new createjs.Point(0, 1)],
renderPriority: 0,
spriteDoesntRotate: false,
overrideButtonScaling: false,
buttonScale: .5,
startTextPosition: new createjs.Point(0, 75),
endTextPosition: new createjs.Point(0, -120),
directionTextPosition: new createjs.Point(0, 0)
}
}
function UAP1090D(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
isoMountPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoConnectorPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoRotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoSpriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCB30246.PNG"],
frames: {
width: 103,
height: 145
},
animations: {}
}),
isoSpriteCenter: new createjs.Point(51, 72),
altSkus: false,
length: 9,
width: 30,
legsNeeded: true,
isoFrameOffset: 0,
isoChildFrameOffset: 0,
description: "10-Step 90° Ladder",
name: "10-Step \n90° Ladder (Down)",
sprite: "assets/spritesheets/UAP0290D.png",
sku: "UAP1090",
gsku: "29RJ18",
connectableParts: [],
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
rails: false,
ladder: true,
stackable: false,
heightMod: -100,
attachmentSlots: 0,
attachmentPoints: [new createjs.Point(0, -293), new createjs.Point(-293, 0), new createjs.Point(293, 0), new createjs.Point(0, 293)],
anchorPoint: new createjs.Point(0, 293),
spriteAnchor: new createjs.Point(146, 293),
spriteAnchorOffset: new createjs.Point(0, 0),
bitmapCenter: new createjs.Point(146, 146),
gridSize: new createjs.Point(1, 1),
attachmentCoordinates: [new createjs.Point(0, -1), new createjs.Point(-1, 0), new createjs.Point(1, 0), new createjs.Point(0, 1)],
renderPriority: 0,
spriteDoesntRotate: false,
overrideButtonScaling: false,
buttonScale: .5,
startTextPosition: new createjs.Point(0, 75),
endTextPosition: new createjs.Point(0, -120),
directionTextPosition: new createjs.Point(0, 0)
}
}
function UAP1150U(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
isoMountPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoConnectorPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoRotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoSpriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCB30246.PNG"],
frames: {
width: 103,
height: 145
},
animations: {}
}),
isoSpriteCenter: new createjs.Point(51, 72),
altSkus: false,
length: 94,
width: 34,
legsNeeded: true,
isoFrameOffset: 0,
isoChildFrameOffset: 0,
description: "11-Step 50° Ladder",
name: "11-Step \n50° Ladder (Up)",
sprite: "assets/spritesheets/UAP1150U.png",
sku: "UAP1150",
gsku: "29RJ18",
connectableParts: ["UAP3636"],
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
rails: false,
ladder: true,
stackable: true,
heightMod: 110,
attachmentSlots: 4,
attachmentPoints: [new createjs.Point(0, -586), new createjs.Point(-586, 0), new createjs.Point(586, 0), new createjs.Point(0, 586)],
anchorPoint: new createjs.Point(0, 879),
spriteAnchor: new createjs.Point(146, 879),
spriteAnchorOffset: new createjs.Point(0, -293),
bitmapCenter: new createjs.Point(146, 440),
gridSize: new createjs.Point(1, 3),
attachmentCoordinates: [new createjs.Point(0, -3), new createjs.Point(-3, 0), new createjs.Point(3, 0), new createjs.Point(0, 3)],
renderPriority: 0,
spriteDoesntRotate: false,
overrideButtonScaling: false,
buttonScale: .5,
startTextPosition: new createjs.Point(0, 75),
endTextPosition: new createjs.Point(0, -120),
directionTextPosition: new createjs.Point(0, 0)
}
}
function UAP1150D(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
isoMountPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoConnectorPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoRotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoSpriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCB30246.PNG"],
frames: {
width: 103,
height: 145
},
animations: {}
}),
isoSpriteCenter: new createjs.Point(51, 72),
altSkus: false,
length: 94,
width: 34,
legsNeeded: true,
isoFrameOffset: 0,
isoChildFrameOffset: 0,
description: "11-Step 50° Ladder",
name: "11-Step \n50° Ladder (Down)",
sprite: "assets/spritesheets/UAP1150D.png",
sku: "UAP1150",
gsku: "29RJ18",
connectableParts: ["UAP3636"],
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
rails: false,
ladder: true,
stackable: true,
heightMod: -110,
attachmentSlots: 4,
attachmentPoints: [new createjs.Point(0, -586), new createjs.Point(-586, 0), new createjs.Point(586, 0), new createjs.Point(0, 586)],
anchorPoint: new createjs.Point(0, 879),
spriteAnchor: new createjs.Point(146, 879),
spriteAnchorOffset: new createjs.Point(0, -293),
bitmapCenter: new createjs.Point(146, 440),
gridSize: new createjs.Point(1, 3),
attachmentCoordinates: [new createjs.Point(0, -3), new createjs.Point(-3, 0), new createjs.Point(3, 0), new createjs.Point(0, 3)],
renderPriority: 0,
spriteDoesntRotate: false,
overrideButtonScaling: false,
buttonScale: .5,
startTextPosition: new createjs.Point(0, 75),
endTextPosition: new createjs.Point(0, -120),
directionTextPosition: new createjs.Point(0, 0)
}
}
function UAP1190U(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
isoMountPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoConnectorPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoRotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoSpriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCB30246.PNG"],
frames: {
width: 103,
height: 145
},
animations: {}
}),
isoSpriteCenter: new createjs.Point(51, 72),
altSkus: false,
length: 9,
width: 30,
legsNeeded: true,
isoFrameOffset: 0,
isoChildFrameOffset: 0,
description: "11-Step 90° Ladder",
name: "11-Step \n90° Ladder (Up)",
sprite: "assets/spritesheets/UAP0290U.png",
sku: "UAP1190",
gsku: "29RJ18",
connectableParts: ["UAP3636"],
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
rails: false,
ladder: true,
stackable: false,
heightMod: 110,
attachmentSlots: 4,
attachmentPoints: [new createjs.Point(0, -293), new createjs.Point(-293, 0), new createjs.Point(293, 0), new createjs.Point(0, 293)],
anchorPoint: new createjs.Point(0, 293),
spriteAnchor: new createjs.Point(146, 293),
spriteAnchorOffset: new createjs.Point(0, 0),
bitmapCenter: new createjs.Point(146, 146),
gridSize: new createjs.Point(1, 1),
attachmentCoordinates: [new createjs.Point(0, -1), new createjs.Point(-1, 0), new createjs.Point(1, 0), new createjs.Point(0, 1)],
renderPriority: 0,
spriteDoesntRotate: false,
overrideButtonScaling: false,
buttonScale: .5,
startTextPosition: new createjs.Point(0, 75),
endTextPosition: new createjs.Point(0, -120),
directionTextPosition: new createjs.Point(0, 0)
}
}
function UAP1190D(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
isoMountPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoConnectorPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoRotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoSpriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCB30246.PNG"],
frames: {
width: 103,
height: 145
},
animations: {}
}),
isoSpriteCenter: new createjs.Point(51, 72),
altSkus: false,
length: 9,
width: 30,
legsNeeded: true,
isoFrameOffset: 0,
isoChildFrameOffset: 0,
description: "11-Step 90° Ladder",
name: "11-Step \n90° Ladder (Down)",
sprite: "assets/spritesheets/UAP0290D.png",
sku: "UAP1190",
gsku: "29RJ18",
connectableParts: [],
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
rails: false,
ladder: true,
stackable: false,
heightMod: -110,
attachmentSlots: 0,
attachmentPoints: [new createjs.Point(0, -293), new createjs.Point(-293, 0), new createjs.Point(293, 0), new createjs.Point(0, 293)],
anchorPoint: new createjs.Point(0, 293),
spriteAnchor: new createjs.Point(146, 293),
spriteAnchorOffset: new createjs.Point(0, 0),
bitmapCenter: new createjs.Point(146, 146),
gridSize: new createjs.Point(1, 1),
attachmentCoordinates: [new createjs.Point(0, -1), new createjs.Point(-1, 0), new createjs.Point(1, 0), new createjs.Point(0, 1)],
renderPriority: 0,
spriteDoesntRotate: false,
overrideButtonScaling: false,
buttonScale: .5,
startTextPosition: new createjs.Point(0, 75),
endTextPosition: new createjs.Point(0, -120),
directionTextPosition: new createjs.Point(0, 0)
}
}
function UAP020(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
isoMountPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoConnectorPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoRotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoSpriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCB30246.PNG"],
frames: {
width: 103,
height: 145
},
animations: {}
}),
isoSpriteCenter: new createjs.Point(51, 72),
altSkus: false,
length: 36,
width: 36,
legsNeeded: true,
isoFrameOffset: 0,
isoChildFrameOffset: 0,
description: '20" Leg Kit',
name: '20" Leg Kit',
sprite: "assets/spritesheets/UAP020.png",
sku: "UAP020",
gsku: "29RJ18",
connectableParts: [],
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
rails: false,
ladder: false,
stackable: false,
heightMod: 0,
attachmentSlots: 0,
attachmentPoints: [new createjs.Point(0, -220)],
anchorPoint: new createjs.Point(0, 293),
spriteAnchor: new createjs.Point(146, 293),
spriteAnchorOffset: new createjs.Point(0, 0),
bitmapCenter: new createjs.Point(138, 74),
gridSize: new createjs.Point(1, 1),
attachmentCoordinates: [new createjs.Point(0, -1), new createjs.Point(-1, 0), new createjs.Point(1, 0)],
renderPriority: -1,
spriteDoesntRotate: true,
hiddenSprite: true,
legs: true
}
}
function UAP030(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
isoMountPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoConnectorPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoRotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoSpriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCB30246.PNG"],
frames: {
width: 103,
height: 145
},
animations: {}
}),
isoSpriteCenter: new createjs.Point(51, 72),
altSkus: false,
length: 36,
width: 36,
legsNeeded: true,
isoFrameOffset: 0,
isoChildFrameOffset: 0,
description: '30" Leg Kit',
name: '30" Leg Kit',
sprite: "assets/spritesheets/UAP020.png",
sku: "UAP030",
gsku: "29RJ18",
connectableParts: [],
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
rails: false,
ladder: false,
stackable: false,
heightMod: 0,
attachmentSlots: 0,
attachmentPoints: [new createjs.Point(0, -220)],
anchorPoint: new createjs.Point(0, 293),
spriteAnchor: new createjs.Point(146, 293),
spriteAnchorOffset: new createjs.Point(0, 0),
bitmapCenter: new createjs.Point(138, 74),
gridSize: new createjs.Point(1, 1),
attachmentCoordinates: [new createjs.Point(0, -1), new createjs.Point(-1, 0), new createjs.Point(1, 0)],
renderPriority: -1,
spriteDoesntRotate: true,
hiddenSprite: true,
legs: true
}
}
function UAP040(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
isoMountPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoConnectorPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoRotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoSpriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCB30246.PNG"],
frames: {
width: 103,
height: 145
},
animations: {}
}),
isoSpriteCenter: new createjs.Point(51, 72),
altSkus: false,
length: 36,
width: 36,
legsNeeded: true,
isoFrameOffset: 0,
isoChildFrameOffset: 0,
description: '40" Leg Kit',
name: '40" Leg Kit',
sprite: "assets/spritesheets/UAP020.png",
sku: "UAP040",
gsku: "29RJ18",
connectableParts: [],
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
rails: false,
ladder: false,
stackable: false,
heightMod: 0,
attachmentSlots: 0,
attachmentPoints: [new createjs.Point(0, -220)],
anchorPoint: new createjs.Point(0, 293),
spriteAnchor: new createjs.Point(146, 293),
spriteAnchorOffset: new createjs.Point(0, 0),
bitmapCenter: new createjs.Point(138, 74),
gridSize: new createjs.Point(1, 1),
attachmentCoordinates: [new createjs.Point(0, -1), new createjs.Point(-1, 0), new createjs.Point(1, 0)],
renderPriority: -1,
spriteDoesntRotate: true,
hiddenSprite: true,
legs: true
}
}
function UAP050(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
isoMountPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoConnectorPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoRotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoSpriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCB30246.PNG"],
frames: {
width: 103,
height: 145
},
animations: {}
}),
isoSpriteCenter: new createjs.Point(51, 72),
altSkus: false,
length: 36,
width: 36,
legsNeeded: true,
isoFrameOffset: 0,
isoChildFrameOffset: 0,
description: '50" Leg Kit',
name: '50" Leg Kit',
sprite: "assets/spritesheets/UAP020.png",
sku: "UAP050",
gsku: "29RJ18",
connectableParts: [],
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
rails: false,
ladder: false,
stackable: false,
heightMod: 0,
attachmentSlots: 0,
attachmentPoints: [new createjs.Point(0, -220)],
anchorPoint: new createjs.Point(0, 293),
spriteAnchor: new createjs.Point(146, 293),
spriteAnchorOffset: new createjs.Point(0, 0),
bitmapCenter: new createjs.Point(138, 74),
gridSize: new createjs.Point(1, 1),
attachmentCoordinates: [new createjs.Point(0, -1), new createjs.Point(-1, 0), new createjs.Point(1, 0)],
renderPriority: -1,
spriteDoesntRotate: true,
hiddenSprite: true,
legs: true
}
}
function UAP060(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
isoMountPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoConnectorPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoRotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoSpriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCB30246.PNG"],
frames: {
width: 103,
height: 145
},
animations: {}
}),
isoSpriteCenter: new createjs.Point(51, 72),
altSkus: false,
length: 36,
width: 36,
legsNeeded: true,
isoFrameOffset: 0,
isoChildFrameOffset: 0,
description: '60" Leg Kit',
name: '60" Leg Kit',
sprite: "assets/spritesheets/UAP020.png",
sku: "UAP060",
gsku: "29RJ18",
connectableParts: [],
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
rails: false,
ladder: false,
stackable: false,
heightMod: 0,
attachmentSlots: 0,
attachmentPoints: [new createjs.Point(0, -220)],
anchorPoint: new createjs.Point(0, 293),
spriteAnchor: new createjs.Point(146, 293),
spriteAnchorOffset: new createjs.Point(0, 0),
bitmapCenter: new createjs.Point(138, 74),
gridSize: new createjs.Point(1, 1),
attachmentCoordinates: [new createjs.Point(0, -1), new createjs.Point(-1, 0), new createjs.Point(1, 0)],
renderPriority: -1,
spriteDoesntRotate: true,
hiddenSprite: true,
legs: true
}
}
function UAP070(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
isoMountPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoConnectorPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoRotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoSpriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCB30246.PNG"],
frames: {
width: 103,
height: 145
},
animations: {}
}),
isoSpriteCenter: new createjs.Point(51, 72),
altSkus: false,
length: 36,
width: 36,
legsNeeded: true,
isoFrameOffset: 0,
isoChildFrameOffset: 0,
description: '70" Leg Kit',
name: '70" Leg Kit',
sprite: "assets/spritesheets/UAP020.png",
sku: "UAP070",
gsku: "29RJ18",
connectableParts: [],
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
rails: false,
ladder: false,
stackable: false,
heightMod: 0,
attachmentSlots: 0,
attachmentPoints: [new createjs.Point(0, -220)],
anchorPoint: new createjs.Point(0, 293),
spriteAnchor: new createjs.Point(146, 293),
spriteAnchorOffset: new createjs.Point(0, 0),
bitmapCenter: new createjs.Point(138, 74),
gridSize: new createjs.Point(1, 1),
attachmentCoordinates: [new createjs.Point(0, -1), new createjs.Point(-1, 0), new createjs.Point(1, 0)],
renderPriority: -1,
spriteDoesntRotate: true,
hiddenSprite: true,
legs: true
}
}
function UAP080(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
isoMountPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoConnectorPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoRotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoSpriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCB30246.PNG"],
frames: {
width: 103,
height: 145
},
animations: {}
}),
isoSpriteCenter: new createjs.Point(51, 72),
altSkus: false,
length: 36,
width: 36,
legsNeeded: true,
isoFrameOffset: 0,
isoChildFrameOffset: 0,
description: '80" Leg Kit',
name: '80" Leg Kit',
sprite: "assets/spritesheets/UAP020.png",
sku: "UAP080",
gsku: "29RJ18",
connectableParts: [],
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
rails: false,
ladder: false,
stackable: false,
heightMod: 0,
attachmentSlots: 0,
attachmentPoints: [new createjs.Point(0, -220)],
anchorPoint: new createjs.Point(0, 293),
spriteAnchor: new createjs.Point(146, 293),
spriteAnchorOffset: new createjs.Point(0, 0),
bitmapCenter: new createjs.Point(138, 74),
gridSize: new createjs.Point(1, 1),
attachmentCoordinates: [new createjs.Point(0, -1), new createjs.Point(-1, 0), new createjs.Point(1, 0)],
renderPriority: -1,
spriteDoesntRotate: true,
hiddenSprite: true,
legs: true
}
}
function UAP090(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
isoMountPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoConnectorPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoRotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoSpriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCB30246.PNG"],
frames: {
width: 103,
height: 145
},
animations: {}
}),
isoSpriteCenter: new createjs.Point(51, 72),
altSkus: false,
length: 36,
width: 36,
legsNeeded: true,
isoFrameOffset: 0,
isoChildFrameOffset: 0,
description: '90" Leg Kit',
name: '90" Leg Kit',
sprite: "assets/spritesheets/UAP020.png",
sku: "UAP090",
gsku: "29RJ18",
connectableParts: [],
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
rails: false,
ladder: false,
stackable: false,
heightMod: 0,
attachmentSlots: 0,
attachmentPoints: [new createjs.Point(0, -220)],
anchorPoint: new createjs.Point(0, 293),
spriteAnchor: new createjs.Point(146, 293),
spriteAnchorOffset: new createjs.Point(0, 0),
bitmapCenter: new createjs.Point(138, 74),
gridSize: new createjs.Point(1, 1),
attachmentCoordinates: [new createjs.Point(0, -1), new createjs.Point(-1, 0), new createjs.Point(1, 0)],
renderPriority: -1,
spriteDoesntRotate: true,
hiddenSprite: true,
legs: true
}
}
function UAP100(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
isoMountPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoConnectorPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoRotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoSpriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCB30246.PNG"],
frames: {
width: 103,
height: 145
},
animations: {}
}),
isoSpriteCenter: new createjs.Point(51, 72),
altSkus: false,
length: 36,
width: 36,
legsNeeded: true,
isoFrameOffset: 0,
isoChildFrameOffset: 0,
description: '100" Leg Kit',
name: '100" Leg Kit',
sprite: "assets/spritesheets/UAP020.png",
sku: "UAP100",
gsku: "29RJ18",
connectableParts: [],
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
rails: false,
ladder: false,
stackable: false,
heightMod: 0,
attachmentSlots: 0,
attachmentPoints: [new createjs.Point(0, -220)],
anchorPoint: new createjs.Point(0, 293),
spriteAnchor: new createjs.Point(146, 293),
spriteAnchorOffset: new createjs.Point(0, 0),
bitmapCenter: new createjs.Point(138, 74),
gridSize: new createjs.Point(1, 1),
attachmentCoordinates: [new createjs.Point(0, -1), new createjs.Point(-1, 0), new createjs.Point(1, 0)],
renderPriority: -1,
spriteDoesntRotate: true,
hiddenSprite: true,
legs: true
}
}
function UAP110(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
isoMountPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoConnectorPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoRotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoSpriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCB30246.PNG"],
frames: {
width: 103,
height: 145
},
animations: {}
}),
isoSpriteCenter: new createjs.Point(51, 72),
altSkus: false,
length: 36,
width: 36,
legsNeeded: true,
isoFrameOffset: 0,
isoChildFrameOffset: 0,
description: '110" Leg Kit',
name: '110" Leg Kit',
sprite: "assets/spritesheets/UAP020.png",
sku: "UAP110",
gsku: "29RJ18",
connectableParts: [],
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
rails: false,
ladder: false,
stackable: false,
heightMod: 0,
attachmentSlots: 0,
attachmentPoints: [new createjs.Point(0, -220)],
anchorPoint: new createjs.Point(0, 293),
spriteAnchor: new createjs.Point(146, 293),
spriteAnchorOffset: new createjs.Point(0, 0),
bitmapCenter: new createjs.Point(138, 74),
gridSize: new createjs.Point(1, 1),
attachmentCoordinates: [new createjs.Point(0, -1), new createjs.Point(-1, 0), new createjs.Point(1, 0)],
renderPriority: -1,
spriteDoesntRotate: true,
hiddenSprite: true,
legs: true
}
}
function UAPHR1(selectedFromMenu) {
selectedFromMenu = selectedFromMenu || false;
return {
isoMountPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoConnectorPoint: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoRotationOffsets: [new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0), new createjs.Point(0, 0)],
isoSpriteSheet: new createjs.SpriteSheet({
images: ["assets/spritesheets/UCB30246.PNG"],
frames: {
width: 103,
height: 145
},
animations: {}
}),
isoSpriteCenter: new createjs.Point(51, 72),
altSkus: false,
length: 36,
width: 36,
legsNeeded: false,
isoFrameOffset: 0,
isoChildFrameOffset: 0,
description: "Rail Kit",
name: "Rail Kit",
sprite: "assets/spritesheets/UAPHR1.png",
sku: "UAPHR1",
gsku: "29RJ18",
connectableParts: ["UAPHR1"],
zOrderMod: [0, 0, 0, 0],
iZOrderMod: [0, 0, 0, 0],
forceDrawLast: false,
forceDrawLastFrame: 0,
rails: true,
ladder: false,
stackable: true,
heightMod: 0,
attachmentSlots: 0,
attachmentPoints: [new createjs.Point(0, -293), new createjs.Point(-293, 0), new createjs.Point(293, 0), new createjs.Point(0, 293)],
anchorPoint: new createjs.Point(0, 293),
spriteAnchor: new createjs.Point(142, 8),
spriteAnchorOffset: new createjs.Point(0, 148),
bitmapCenter: new createjs.Point(142, 8),
gridSize: new createjs.Point(0, 1),
attachmentCoordinates: [new createjs.Point(0, -1), new createjs.Point(-1, 0), new createjs.Point(1, 0), new createjs.Point(0, 1)],
renderPriority: 1,
spriteDoesntRotate: false,
overrideButtonScaling: false,
buttonScale: .5,
startTextPosition: new createjs.Point(0, 75),
endTextPosition: new createjs.Point(0, -120)
}
}
function RT_LEFTTURN(selectedFromMenu) {
switch (height) {
case 20:
return URTTP20L(selectedFromMenu);
case 30:
return URTTP30L(selectedFromMenu);
case 40:
return URTTP40L(selectedFromMenu);
case 50:
return URTTP50L(selectedFromMenu);
case 60:
return URTTP60L(selectedFromMenu);
default:
return
}
}
function RT_RIGHTTURN(selectedFromMenu) {
switch (height) {
case 20:
return URTTP20R(selectedFromMenu);
case 30:
return URTTP30R(selectedFromMenu);
case 40:
return URTTP40R(selectedFromMenu);
case 50:
return URTTP50R(selectedFromMenu);
case 60:
return URTTP60R(selectedFromMenu);
default:
return
}
}
function CO_LEFTTURN(selectedFromMenu) {
switch (height) {
case 30:
return UCT03246L(selectedFromMenu);
case 40:
return UCT04246L(selectedFromMenu);
case 50:
return UCT05246L(selectedFromMenu);
case 60:
return UCT06246L(selectedFromMenu);
case 70:
return UCT07246L(selectedFromMenu);
case 80:
return UCT08246L(selectedFromMenu);
case 90:
return UCT09246L(selectedFromMenu);
default:
return UCT03246L(selectedFromMenu)
}
}
function CO_RIGHTTURN(selectedFromMenu) {
switch (height) {
case 30:
return UCT03246R(selectedFromMenu);
case 40:
return UCT04246R(selectedFromMenu);
case 50:
return UCT05246R(selectedFromMenu);
case 60:
return UCT06246R(selectedFromMenu);
case 70:
return UCT07246R(selectedFromMenu);
case 80:
return UCT08246R(selectedFromMenu);
case 90:
return UCT09246R(selectedFromMenu);
default:
return UCT03246R(selectedFromMenu)
}
}
function RT_LADDER50END(selectedFromMenu) {
switch (height) {
case 20:
return URTL502E(selectedFromMenu);
case 30:
return URTL503E(selectedFromMenu);
case 40:
return URTL504E(selectedFromMenu);
case 50:
return URTL505E(selectedFromMenu);
case 60:
return URTL506E(selectedFromMenu);
default:
return URTL502E(selectedFromMenu)
}
}
function RT_LADDER90END(selectedFromMenu) {
switch (height) {
case 20:
return URTL902E(selectedFromMenu);
case 30:
return URTL903E(selectedFromMenu);
case 40:
return URTL904E(selectedFromMenu);
case 50:
return URTL905E(selectedFromMenu);
case 60:
return URTL906E(selectedFromMenu);
default:
return URTL902E(selectedFromMenu)
}
}
function CO_LADDER50END(selectedFromMenu) {
switch (height) {
case 30:
return UCL5003242E(selectedFromMenu);
case 40:
return UCL5004242E(selectedFromMenu);
case 50:
return UCL5005242E(selectedFromMenu);
case 60:
return UCL5006242E(selectedFromMenu);
case 70:
return UCL5007242E(selectedFromMenu);
case 80:
return UCL5008242E(selectedFromMenu);
case 90:
return UCL5009242E(selectedFromMenu);
default:
return UCL5003242E(selectedFromMenu)
}
}
function CO_LADDER75END(selectedFromMenu) {
switch (height) {
case 30:
return UCL7503242E(selectedFromMenu);
case 40:
return UCL7504242E(selectedFromMenu);
case 50:
return UCL7505242E(selectedFromMenu);
case 60:
return UCL7506242E(selectedFromMenu);
case 70:
return UCL7507242E(selectedFromMenu);
case 80:
return UCL7508242E(selectedFromMenu);
case 90:
return UCL7509242E(selectedFromMenu);
default:
return UCL7503242E(selectedFromMenu)
}
}
function CO_LADDER90END(selectedFromMenu) {
switch (height) {
case 30:
return UCL9003242E(selectedFromMenu);
case 40:
return UCL9004242E(selectedFromMenu);
case 50:
return UCL9005242E(selectedFromMenu);
case 60:
return UCL9006242E(selectedFromMenu);
case 70:
return UCL9007242E(selectedFromMenu);
case 80:
return UCL9008242E(selectedFromMenu);
case 90:
return UCL9009242E(selectedFromMenu);
default:
return UCL9003242E(selectedFromMenu)
}
}
function RT_LEGS(selectedFromMenu) {
switch (height) {
case 20:
return URSL20(true);
case 30:
return URSL30(true);
case 40:
return URSL40(true);
case 50:
return URSL50(true);
case 60:
return URSL60(true);
default:
return
}
}
function RT_LADDER50S() {
switch (height) {
case 20:
return URTL502(false);
case 30:
return URTL503(false);
case 40:
return URTL504(false);
case 50:
return URTL505(false);
case 60:
return URTL506(false);
default:
return
}
}
function RT_LADDER90S() {
switch (height) {
case 20:
return URTL902(false);
case 30:
return URTL903(false);
case 40:
return URTL904(false);
case 50:
return URTL905(false);
case 60:
return URTL906(false);
default:
return
}
}
function CO_LADDER50S() {
switch (height) {
case 30:
return UCL5003242(false);
case 40:
return UCL5004242(false);
case 50:
return UCL5005242(false);
case 60:
return UCL5006242(false);
case 70:
return UCL5007242(false);
case 80:
return UCL5008242(false);
case 90:
return UCL5009242(false);
default:
return UCL5003242(false)
}
}
function CO_LADDER75S() {
switch (height) {
case 30:
return UCL7503242(false);
case 40:
return UCL7504242(false);
case 50:
return UCL7505242(false);
case 60:
return UCL7506242(false);
case 70:
return UCL7507242(false);
case 80:
return UCL7508242(false);
case 90:
return UCL7509242(false);
default:
return UCL7503242(false)
}
}
function CO_LADDER90S() {
switch (height) {
case 30:
return UCL9003242(false);
case 40:
return UCL9004242(false);
case 50:
return UCL9005242(false);
case 60:
return UCL9006242(false);
case 70:
return UCL9007242(false);
case 80:
return UCL9008242(false);
case 90:
return UCL9009242(false);
default:
return UCL9003242(false)
}
}
function CO_LEGS(selectedFromMenu) {
switch (height) {
case 30:
return ULK0324(true);
case 40:
return ULK0424(true);
case 50:
return ULK0524(true);
case 60:
return ULK0624(true);
case 70:
return ULK0724(true);
case 80:
return ULK0824(true);
case 90:
return ULK0924(true);
default:
return
}
}
function MA_LADDER50S() {
switch (height) {
case 20:
return UAP0250U(false);
case 30:
return UAP0350U(false);
case 40:
return UAP0450U(false);
case 50:
return UAP0550U(false);
case 60:
return UAP0650U(false);
case 70:
return UAP0750U(false);
case 80:
return UAP0850U(false);
case 90:
return UAP0950U(false);
case 100:
return UAP1050U(false);
case 110:
return UAP1150U(false);
default:
break
}
}
function MA_LADDER90S() {
switch (height) {
case 20:
return UAP0290U(false);
case 30:
return UAP0390U(false);
case 40:
return UAP0490U(false);
case 50:
return UAP0590U(false);
case 60:
return UAP0690U(false);
case 70:
return UAP0790U(false);
case 80:
return UAP0890U(false);
case 90:
return UAP0990U(false);
case 100:
return UAP1090U(false);
case 110:
return UAP1190U(false);
default:
break
}
}
function LEGS() {
switch (system) {
case 1:
return RT_LEGS(true);
break;
case 2:
return CO_LEGS(true);
break;
default:
break
}
}
function LADDER() {
switch (system) {
case 1:
switch (incline) {
case 50:
return RT_LADDER50S();
case 90:
return RT_LADDER90S();
default:
return
}
case 2:
switch (incline) {
case 50:
return CO_LADDER50S();
case 75:
return CO_LADDER75S();
case 90:
return CO_LADDER90S();
default:
return
}
case 3:
switch (incline) {
case 50:
return MA_LADDER50S();
case 90:
return MA_LADDER90S()
}
default:
return
}
}
function MA_LADDERS(currentHeight) {
var ladders = [];
switch (currentHeight) {
case 20:
ladders = ["UAP0250D", "UAP0290D", "UAP0250U", "UAP0350U", "UAP0450U", "UAP0550U", "UAP0650U", "UAP0750U", "UAP0850U", "UAP0950U", "UAP1050U"];
break;
case 30:
ladders = ["UAP0350D", "UAP0390D", "UAP0250D", "UAP0250U", "UAP0350U", "UAP0450U", "UAP0550U", "UAP0650U", "UAP0750U", "UAP0850U", "UAP0950U"];
break;
case 40:
ladders = ["UAP0450D", "UAP0490D", "UAP0250D", "UAP0350D", "UAP0250U", "UAP0350U", "UAP0450U", "UAP0550U", "UAP0650U", "UAP0750U", "UAP0850U"];
break;
case 50:
ladders = ["UAP0550D", "UAP0590D", "UAP0450D", "UAP0250D", "UAP0350D", "UAP0250U", "UAP0350U", "UAP0450U", "UAP0550U", "UAP0650U", "UAP0750U"];
break;
case 60:
ladders = ["UAP0650D", "UAP0690D", "UAP0550D", "UAP0450D", "UAP0350D", "UAP0250D", "UAP0250U", "UAP0350U", "UAP0450U", "UAP0550U", "UAP0650U"];
break;
case 70:
ladders = ["UAP0750D", "UAP0790D", "UAP0650D", "UAP0550D", "UAP0450D", "UAP0250D", "UAP0350D", "UAP0250U", "UAP0350U", "UAP0450U", "UAP0550U"];
break;
case 80:
ladders = ["UAP0850D", "UAP0890D", "UAP0750D", "UAP0650D", "UAP0550D", "UAP0450D", "UAP0250D", "UAP0350D", "UAP0250U", "UAP0350U", "UAP0450U"];
break;
case 90:
ladders = ["UAP0950D", "UAP0990D", "UAP0850D", "UAP0750D", "UAP0650D", "UAP0550D", "UAP0450D", "UAP0350D", "UAP0250D", "UAP0250U", "UAP0350U"];
break;
case 100:
ladders = ["UAP1050D", "UAP1090D", "UAP0950D", "UAP0850D", "UAP0750D", "UAP0650D", "UAP0550D", "UAP0450D", "UAP0350D", "UAP0250D", "UAP0250U"];
break;
case 110:
ladders = ["UAP1150D", "UAP1190D", "UAP0950D", "UAP0850D", "UAP0750D", "UAP0650D", "UAP0550D", "UAP0450D", "UAP0350D", "UAP0250D", "UAP1050D"];
break;
default:
break
}
return ladders
}
var MAX_ACCESS_SCALE_FACTOR = .3;
var MAP;
var LAST_CLICKED_MAX_ACCESS_PART;
var LAST_CLICKED_ATTACHMENT_POINT;
var heightLabels = new Array;
var showHeightLabels = false;
var heightTints = new Array;
var showHeightTints = false;
var heightKeys = new Array;
var legs = new Array;
var showLegs = false;
var autoAddedRails = new Array;
var toolTipText;
var showTooltip = false;
var showRemoveButton = false;
var height20Tint = "rgba(0,31,63,0.7)";
var height30Tint = "rgba(0,116,217,0.7)";
var height40Tint = "rgba(127,219,255,0.7)";
var height50Tint = "rgba(57,204,204,0.7)";
var height60Tint = "rgba(61,153,112,0.7)";
var height70Tint = "rgba(46,204,64,0.7)";
var height80Tint = "rgba(1,255,112,0.7)";
var height90Tint = "rgba(255,220,0,0.7)";
var height100Tint = "rgba(255,133,27,0.7)";
var height110Tint = "rgba(255,65,54,0.7)";
function MaxPart(data, attachmentPoint) {
var container = new createjs.Container;
if (attachmentPoint == null) {
container.partData = data;
container.name = id;
parts.push(container.name);
id++;
return container
}
container.hasLegs = false;
container.partData = data;
container.noParent = false;
container.mountPoint = attachmentPoint;
container.parentPart = attachmentPoint.parent;
attachmentPoint.filled = true;
attachmentPoint.parent.attachmentSlotsUsed++;
container.startingHeight = attachmentPoint.parent.height;
container.attachmentSlotsUsed = 0;
var attachmentPointMod = new createjs.Point(0, 0);
switch (attachmentPoint.rotOffset) {
case 0:
attachmentPointMod = new createjs.Point(data.spriteAnchorOffset.x, data.spriteAnchorOffset.y);
break;
case 90:
attachmentPointMod = new createjs.Point(-data.spriteAnchorOffset.y, data.spriteAnchorOffset.x);
break;
case -90:
attachmentPointMod = new createjs.Point(data.spriteAnchorOffset.y, data.spriteAnchorOffset.x);
break;
case 180:
attachmentPointMod = new createjs.Point(data.spriteAnchorOffset.x, -data.spriteAnchorOffset.y);
break;
default:
break
}
container.x = (container.parentPart.x / MAX_ACCESS_SCALE_FACTOR + attachmentPoint.x + attachmentPointMod.x) * MAX_ACCESS_SCALE_FACTOR;
container.y = (container.parentPart.y / MAX_ACCESS_SCALE_FACTOR + attachmentPoint.y + attachmentPointMod.y) * MAX_ACCESS_SCALE_FACTOR;
container.coordinates = attachmentPoint.coordinates;
var sprite = new createjs.Bitmap(data.sprite);
var spriteButtonHelper = new createjs.ButtonHelper(sprite);
sprite.addEventListener("click", maxHandlePartClicked);
sprite.addEventListener("mouseover", maxHandleMouseOver);
sprite.addEventListener("mouseout", maxHandleMouseOut);
sprite.name = container.name = id;
id++;
container.addChild(sprite);
var center = new createjs.Shape;
center.name = "CENTER";
container.addChild(center);
container.attachmentSlots = new Array;
container.attachmentSlotIndices = new Array;
var count = 0;
for (var i = 0; i < data.attachmentSlots; i++) {
if (data.platform || i == 0 && attachmentPoint.rotOffset == 0 || i == 1 && attachmentPoint.rotOffset == -90 || i == 2 && attachmentPoint.rotOffset == 90 || i == 3 && attachmentPoint.rotOffset == 180) {
var f = new createjs.Shape;
f.name = i;
f.graphics.beginFill("#fff").setStrokeStyle(8, "round").beginStroke("rgba(255,192,0,1)").drawRect(-146, 73, 293, 73);
f.x = container.partData.attachmentPoints[i].x;
f.y = container.partData.attachmentPoints[i].y;
f.coordinates = new createjs.Point(container.partData.attachmentCoordinates[i].x + container.coordinates.x, container.partData.attachmentCoordinates[i].y + container.coordinates.y);
f.visible = false;
f.filled = false;
switch (i) {
case 0:
f.rotOffset = data.platform ? 0 : 0;
break;
case 1:
f.rotOffset = data.platform ? -90 : 0;
break;
case 2:
f.rotOffset = data.platform ? 90 : 0;
break;
case 3:
f.rotOffset = data.platform ? 180 : 0;
break;
default:
break
}
if (data.ladder) f.rotation = f.rotOffset + attachmentPoint.rotOffset;
else f.rotation = f.rotOffset;
f.railsOnly = false;
container.addChild(f);
container.attachmentSlots[count] = f;
var attachmentPointButtonHelper = new createjs.ButtonHelper(f);
f.addEventListener("click", attachmentPointClicked);
f.addEventListener("mouseover", maxHandleMouseOverAttachmentPoint);
f.addEventListener("mouseout", maxHandleMouseOutAttachmentPoint);
count++;
container.attachmentSlotIndices.push(i)
}
}
container.attachmentCount = count;
var p = new createjs.Shape;
p.name = "CONNECTOR";
p.x = container.partData.anchorPoint.x;
p.y = container.partData.anchorPoint.y;
container.addChild(p);
sprite.regX = data.bitmapCenter.x;
sprite.regY = data.bitmapCenter.y;
parts.push(sprite.name);
container.highlight = new createjs.Shape;
container.highlight.graphics.beginFill("rgba(255,192,0,0.8)").drawRect(-container.partData.bitmapCenter.x, -container.partData.bitmapCenter.y, 2 * container.partData.bitmapCenter.x, 2 * container.partData.bitmapCenter.y);
container.addChild(container.highlight);
container.highlight.visible = false;
container.highlight.mouseEnabled = false;
container.height = container.startingHeight + container.partData.heightMod;
if (container.height != 0 && !container.partData.platform) {
if (container.partData.heightMod < 0) container.height += 10;
else container.height -= 10
}
if (data.platform) {
var heightText = new createjs.Text(container.height + '"', "100px sans-serif", "#202020");
heightText.x = -100;
heightText.y = -100;
heightText.visible = showHeightLabels;
container.addChild(heightText);
heightLabels.push(heightText);
var heightTint = new createjs.Shape;
switch (container.height) {
case 20:
heightTint.graphics.beginFill(height20Tint).drawRect(-146, -146, 293, 293);
break;
case 30:
heightTint.graphics.beginFill(height30Tint).drawRect(-146, -146, 293, 293);
break;
case 40:
heightTint.graphics.beginFill(height40Tint).drawRect(-146, -146, 293, 293);
break;
case 50:
heightTint.graphics.beginFill(height50Tint).drawRect(-146, -146, 293, 293);
break;
case 60:
heightTint.graphics.beginFill(height60Tint).drawRect(-146, -146, 293, 293);
break;
case 70:
heightTint.graphics.beginFill(height70Tint).drawRect(-146, -146, 293, 293);
break;
case 80:
heightTint.graphics.beginFill(height80Tint).drawRect(-146, -146, 293, 293);
break;
case 90:
heightTint.graphics.beginFill(height90Tint).drawRect(-146, -146, 293, 293);
break;
case 100:
heightTint.graphics.beginFill(height100Tint).drawRect(-146, -146, 293, 293);
break;
case 110:
heightTint.graphics.beginFill(height110Tint).drawRect(-146, -146, 293, 293);
break;
default:
break
}
container.addChild(heightTint);
heightTint.mouseEnabled = false;
heightTint.visible = showHeightTints;
heightTints.push(heightTint)
} else {
container.highlight.rotation = sprite.rotation = attachmentPoint.rotOffset
}
switch (attachmentPoint.rotOffset) {
case 0:
for (var x = 0; x < data.gridSize.x; x++) {
for (var y = 0; y < data.gridSize.y; y++) {
if (y == 0) {
MAP[container.coordinates.x + x][container.coordinates.y - y][4].y = container.partData.length
}
MAP[container.coordinates.x + x][container.coordinates.y - y][4].x = container.partData.width;
MAP[container.coordinates.x + x][container.coordinates.y - y][0] = container.height;
if (data.platform) MAP[container.coordinates.x + x][container.coordinates.y + y][1] = "P";
if (data.ladder) MAP[container.coordinates.x + x][container.coordinates.y - y][1] = "L"
}
}
break;
case -90:
for (var x = 0; x < data.gridSize.x; x++) {
for (var y = 0; y < data.gridSize.y; y++) {
if (y == 0) {
MAP[container.coordinates.x - y][container.coordinates.y - x][4].x = container.partData.length
}
MAP[container.coordinates.x - y][container.coordinates.y - x][4].y = container.partData.width;
MAP[container.coordinates.x - y][container.coordinates.y - x][0] = container.height;
if (data.platform) MAP[container.coordinates.x - y][container.coordinates.y - x][1] = "P";
if (data.ladder) MAP[container.coordinates.x - y][container.coordinates.y - x][1] = "L"
}
}
break;
case 180:
for (var x = 0; x < data.gridSize.x; x++) {
for (var y = 0; y < data.gridSize.y; y++) {
if (y == 0) {
MAP[container.coordinates.x + x][container.coordinates.y + y][4].y = container.partData.length
}
MAP[container.coordinates.x + x][container.coordinates.y + y][4].x = container.partData.width;
MAP[container.coordinates.x + x][container.coordinates.y + y][0] = container.height;
if (data.platform) MAP[container.coordinates.x + x][container.coordinates.y + y][1] = "P";
if (data.ladder) MAP[container.coordinates.x + x][container.coordinates.y + y][1] = "L"
}
}
break;
case 90:
for (var x = 0; x < data.gridSize.x; x++) {
for (var y = 0; y < data.gridSize.y; y++) {
if (y == 0) {
MAP[container.coordinates.x + y][container.coordinates.y - x][4].x = container.partData.length
}
MAP[container.coordinates.x + y][container.coordinates.y - x][4].y = container.partData.width;
MAP[container.coordinates.x + y][container.coordinates.y - x][0] = container.height;
if (data.platform) MAP[container.coordinates.x + y][container.coordinates.y - x][1] = "P";
if (data.ladder) MAP[container.coordinates.x + y][container.coordinates.y - x][1] = "L"
}
}
break
}
if (data.ladder) {
startingText = new createjs.Text(container.startingHeight + '"', "40px sans-serif", "#e17a0f");
startingText.x = data.startTextPosition.x;
startingText.y = data.startTextPosition.y;
endText = new createjs.Text(container.height + '"', "40px sans-serif", "#e17a0f");
startingText.textAlign = "center";
directionText = new createjs.Text("", "60px sans-serif", "#e17a0f");
if (data.heightMod > 0) directionText.text = "UP";
else {
directionText.text = "DOWN";
directionText.color = "#1e85f0";
endText.color = "#1e85f0";
startingText.color = "#1e85f0"
}
directionText.textAlign = "center";
directionText.x = data.directionTextPosition.x;
directionText.y = data.directionTextPosition.y;
endText.x = data.endTextPosition.x;
endText.y = data.endTextPosition.y;
endText.textAlign = "center";
var textContainer = new createjs.Container;
textContainer.addChild(startingText);
textContainer.addChild(endText);
textContainer.addChild(directionText);
container.addChild(textContainer);
textContainer.rotation = sprite.rotation;
if (sprite.rotation == 180) {
startingText.rotation = 180;
startingText.y += 50;
endText.y += 50;
endText.rotation = 180;
directionText.rotation = 180
}
if (container.height == 0) {
MAP[container.coordinates.x][container.coordinates.y][3] = container.height - data.heightMod;
switch (attachmentPoint.rotOffset) {
case 0:
MAP[container.coordinates.x][container.coordinates.y][2] = 3;
break;
case -90:
MAP[container.coordinates.x][container.coordinates.y][2] = 2;
break;
case 180:
MAP[container.coordinates.x][container.coordinates.y][2] = 1;
break;
case 90:
MAP[container.coordinates.x][container.coordinates.y][2] = 4;
break
}
} else {
MAP[container.coordinates.x][container.coordinates.y][3] = 0 < data.heightMod ? 10 - data.heightMod : -data.heightMod - 10;
switch (attachmentPoint.rotOffset) {
case 0:
MAP[container.coordinates.x][container.coordinates.y][2] = 3;
break;
case -90:
MAP[container.coordinates.x][container.coordinates.y][2] = 2;
break;
case 180:
MAP[container.coordinates.x][container.coordinates.y][2] = 1;
break;
case 90:
MAP[container.coordinates.x][container.coordinates.y][2] = 4;
break
}
switch (attachmentPoint.rotOffset) {
case 0:
MAP[container.coordinates.x][container.coordinates.y - data.gridSize.y + 1][2] = 1;
MAP[container.coordinates.x][container.coordinates.y - data.gridSize.y + 1][3] = 0;
break;
case -90:
MAP[container.coordinates.x - data.gridSize.y + 1][container.coordinates.y][2] = 4;
MAP[container.coordinates.x - data.gridSize.y + 1][container.coordinates.y][3] = 0;
break;
case 180:
MAP[container.coordinates.x][container.coordinates.y + data.gridSize.y - 1][2] = 3;
MAP[container.coordinates.x][container.coordinates.y + data.gridSize.y - 1][3] = 0;
break;
case 90:
MAP[container.coordinates.x + data.gridSize.y - 1][container.coordinates.y][2] = 2;
MAP[container.coordinates.x + data.gridSize.y - 1][container.coordinates.y][3] = 0;
break
}
}
}
container.scaleX = container.scaleY = MAX_ACCESS_SCALE_FACTOR;
container.parentPartAttachmentPoint = attachmentPoint;
updateMap();
printMAP();
for (var i = 0; i < attachmentPoint.parent.attachmentCount; i++) {
attachmentPoint.parent.attachmentSlots[i].visible = false
}
if (data.rails) {
var hitbox = new createjs.Shape;
hitbox.rotation = attachmentPoint.rotOffset;
hitbox.graphics.beginFill("rgba(255,255,255,0.01").drawRect(-125, -20, 250, 40);
var hitboxButtonHelper = new createjs.ButtonHelper(hitbox);
hitbox.addEventListener("click", maxHandlePartClicked);
hitbox.addEventListener("mouseover", maxHandleMouseOver);
hitbox.addEventListener("mouseout", maxHandleMouseOut);
hitbox.name = container.name;
container.addChild(hitbox)
}
return container
}
function InitialMaxPart(data) {
partsMenuContainerText.text = "Select a part to build off of";
toolTipText = new createjs.Text("Mouse over a part", "16px sans-serif", "#202020");
toolTipText.name = "TOOL_TIP_TEXT";
addMaxRemoveButton();
stage.addChild(toolTipText);
showTooltip = true;
MAP = new Array;
for (var x = 0; x < 40; x++) {
MAP[x] = new Array;
for (var y = 0; y < 40; y++) {
MAP[x][y] = new Array;
MAP[x][y].push(0);
MAP[x][y].push("E");
MAP[x][y].push(0);
MAP[x][y].push(0);
MAP[x][y].push(new createjs.Point(0, 0))
}
}
var container = new createjs.Container;
container.partData = data;
container.noParent = true;
container.startingHeight = 0;
container.attachmentSlotsUsed = 0;
container.legsNeeded = data.legsNeeded;
container.x = 0;
container.y = 0;
container.coordinates = new createjs.Point(20, 20);
var sprite = new createjs.Bitmap(data.sprite);
var spriteButtonHelper = new createjs.ButtonHelper(sprite);
sprite.addEventListener("click", maxHandlePartClicked);
sprite.addEventListener("mouseover", maxHandleMouseOver);
sprite.addEventListener("mouseout", maxHandleMouseOut);
sprite.name = container.name = id;
id++;
if (!data.hiddenSprite) container.addChild(sprite);
var center = new createjs.Shape;
center.name = "CENTER";
container.addChild(center);
container.attachmentSlotIndices = new Array;
container.attachmentSlots = new Array;
var count = 0;
for (var i = 0; i < data.attachmentSlots; i++) {
if (i == 0) {
var f = new createjs.Shape;
f.name = i;
f.graphics.beginFill("#fff").setStrokeStyle(8, "round").beginStroke("rgba(255,192,0,1)").drawRect(-146, 73, 293, 73);
f.x = container.partData.attachmentPoints[i].x;
f.y = container.partData.attachmentPoints[i].y;
f.coordinates = new createjs.Point(container.partData.attachmentCoordinates[i].x + container.coordinates.x, container.partData.attachmentCoordinates[i].y + container.coordinates.y);
f.visible = false;
f.filled = false;
switch (i) {
case 0:
f.rotOffset = 0;
break;
case 1:
f.rotOffset = -90;
break;
case 2:
f.rotOffset = 90;
break;
case 3:
f.rotOffset = 180;
break;
default:
break
}
container.addChild(f);
container.attachmentSlots[count] = f;
var attachmentPointButtonHelper = new createjs.ButtonHelper(f);
f.addEventListener("click", attachmentPointClicked);
f.addEventListener("mouseover", maxHandleMouseOverAttachmentPoint);
f.addEventListener("mouseout", maxHandleMouseOutAttachmentPoint);
count++;
container.attachmentSlotIndices.push(i)
}
}
container.attachmentCount = count;
var p = new createjs.Shape;
p.name = "CONNECTOR";
p.x = container.partData.anchorPoint.x;
p.y = container.partData.anchorPoint.y;
container.addChild(p);
sprite.regX = data.bitmapCenter.x;
sprite.regY = data.bitmapCenter.y;
parts.push(sprite.name);
container.highlight = new createjs.Shape;
container.highlight.graphics.beginFill("rgba(255,192,0,0.8)").drawRect(-container.partData.bitmapCenter.x, -container.partData.bitmapCenter.y, 2 * container.partData.bitmapCenter.x, 2 * container.partData.bitmapCenter.y);
container.addChild(container.highlight);
container.highlight.visible = false;
container.highlight.mouseEnabled = false;
container.height = container.startingHeight + container.partData.heightMod;
for (var x = 0; x < data.gridSize.x; x++) {
for (var y = 0; y < data.gridSize.y; y++) {
if (y == 0) {
MAP[container.coordinates.x + x][container.coordinates.y - y][4].y = container.partData.length
}
MAP[container.coordinates.x + x][container.coordinates.y - y][0] = container.height;
MAP[container.coordinates.x + x][container.coordinates.y - y][4].x = container.partData.width;
if (data.platform) MAP[container.coordinates.x + x][container.coordinates.y - y][1] = "P";
if (data.ladder) MAP[container.coordinates.x + x][container.coordinates.y - y][1] = "L"
}
}
if (data.ladder) {
startingText = new createjs.Text(container.startingHeight + '"', "40px sans-serif", "#e17a0f");
startingText.x = data.startTextPosition.x;
startingText.y = data.startTextPosition.y;
endText = new createjs.Text(container.height + '"', "40px sans-serif", "#e17a0f");
endText.x = data.endTextPosition.x;
endText.y = data.endTextPosition.y;
directionText = new createjs.Text("", "60px sans-serif", "#e17a0f");
if (data.heightMod > 0) directionText.text = "UP";
else {
directionText.text = "DOWN";
directionText.color = "#1e85f0";
startingText.color = "#1e85f0";
endText.color = "#1e85f0"
}
directionText.x = data.directionTextPosition.x;
directionText.y = data.directionTextPosition.y;
directionText.textAlign = startingText.textAlign = endText.textAlign = "center";
container.addChild(directionText);
container.addChild(startingText);
container.addChild(endText);
MAP[container.coordinates.x][container.coordinates.y - data.gridSize.y + 1][2] = 1;
if (container.height == 0) container.attachmentSlotsUsed = 0
}
container.scaleX = container.scaleY = MAX_ACCESS_SCALE_FACTOR;
updateMap();
printMAP();
return container
}
function maxHandlePartClicked(event) {
var clicked = partsContainer.getChildByName(event.target.name);
if (LAST_CLICKED_MAX_ACCESS_PART == clicked) return;
if (LAST_CLICKED_MAX_ACCESS_PART != null) {
LAST_CLICKED_MAX_ACCESS_PART.highlight.visible = false;
for (var i = 0; i < LAST_CLICKED_MAX_ACCESS_PART.attachmentCount; i++) {
LAST_CLICKED_MAX_ACCESS_PART.attachmentSlots[i].visible = false
}
}
if (LAST_CLICKED_ATTACHMENT_POINT != null) {
LAST_CLICKED_ATTACHMENT_POINT.visible = false;
LAST_CLICKED_ATTACHMENT_POINT = null
}
if (partsMenuContainer.getChildByName("PART_BUTTONS_CONTAINER")) {
partsMenuContainer.removeChild(partsMenuContainer.getChildByName("PART_BUTTONS_CONTAINER"))
}
if (scrollbar != null) {
scrollbar.removeAllChildren();
partsMenuContainer.removeChild(scrollbar);
scrollbar = null
}
LAST_CLICKED_MAX_ACCESS_PART = clicked;
if (clicked.height == 0) {
partsMenuContainerText.text = "Select a part to build off of";
maxRemoveButton.visible = true;
return
}
if (clicked.attachmentSlotsUsed != clicked.partData.attachmentSlots) {
var updateText = false;
for (var i = 0; i < clicked.attachmentCount; i++) {
k = clicked.attachmentSlotIndices[i];
if (MAP[clicked.coordinates.x + clicked.partData.attachmentCoordinates[k].x][clicked.coordinates.y + clicked.partData.attachmentCoordinates[k].y][0] == 0 && !clicked.attachmentSlots[i].filled && MAP[clicked.coordinates.x + clicked.partData.attachmentCoordinates[k].x][clicked.coordinates.y + clicked.partData.attachmentCoordinates[k].y][1] == "E") {
clicked.attachmentSlots[i].visible = true;
clicked.attachmentSlots[i].railsOnly = false;
clicked.attachmentSlots[i].graphics.beginFill("#fff").setStrokeStyle(8, "round").beginStroke("rgba(255,192,0,1)").drawRect(-146, 73, 293, 73);
updateText = true
} else if ((MAP[clicked.coordinates.x + clicked.partData.attachmentCoordinates[k].x][clicked.coordinates.y + clicked.partData.attachmentCoordinates[k].y][0] != clicked.height || MAP[clicked.coordinates.x + clicked.partData.attachmentCoordinates[k].x][clicked.coordinates.y + clicked.partData.attachmentCoordinates[k].y][1] != "P" && (clicked.noParent || clicked.parentPart.coordinates.x != clicked.coordinates.x + clicked.partData.attachmentCoordinates[k].x && clicked.parentPart.coordinates.y != clicked.coordinates.y + clicked.partData.attachmentCoordinates[k].y)) && !clicked.attachmentSlots[i].filled) {
clicked.attachmentSlots[i].visible = true;
clicked.attachmentSlots[i].railsOnly = true;
clicked.attachmentSlots[i].graphics.beginFill("#fff").setStrokeStyle(8, "round").beginStroke("rgba(255,192,0,1)").drawRect(-146, 73, 293, 73);
updateText = true
}
}
if (updateText) {
partsMenuContainerText.text = "Select an attachment point";
toolTipText.text = "Mouse over an attachment point"
}
} else partsMenuContainerText.text = "Select a part to build off of";
LAST_CLICKED_ATTACHMENT_POINT = null;
if (!clicked.noParent && clicked.attachmentSlotsUsed == 0) {
maxRemoveButton.visible = true
} else maxRemoveButton.visible = false
}
function updateMap() {
for (var x = 0; x < 40; x++) {
for (var y = 0; y < 40; y++) {
if (MAP[y][x][0] == " X ") {
MAP[y][x][0] = 0
}
if (MAP[y][x][1] != "L") {
MAP[y][x][2] = 0
}
}
}
for (var i = 0; i < legs.length; i++) {
if (parts.indexOf(legs[i].name) != -1) {
parts.splice(parts.indexOf(legs[i].name), 1);
partsContainer.removeChild(legs[i])
}
}
legs = new Array;
for (var x = 1; x < 39; x++) {
for (var y = 1; y < 39; y++) {
if (MAP[y][x][0] != " X " && MAP[y][x][0] != 0) {
continue
}
var surroundingHeights = new Array;
surroundingHeights.push(MAP[y - 1][x][0]);
surroundingHeights.push(MAP[y + 1][x][0]);
surroundingHeights.push(MAP[y][x - 1][0]);
surroundingHeights.push(MAP[y][x + 1][0]);
var uniq = new Array;
for (var i = 0; i < surroundingHeights.length; i++) {
if (surroundingHeights[i] == 0 || surroundingHeights[i] == " X ") continue;
if (uniq.indexOf(surroundingHeights[i]) == -1) uniq.push(surroundingHeights[i])
}
if (uniq.length > 1) MAP[y][x][0] = " X "
}
}
for (var i = 0; i < 1; i++) {
for (var x = 0; x < 40; x++) {
for (var y = 0; y < 40; y++) {
if (MAP[x][y][1] == "P" && MAP[x][y][2] == 0) {
var leg1 = false;
var leg2 = false;
var leg3 = false;
var leg4 = false;
var p1 = false;
var p2 = false;
var p3 = false;
var p4 = false;
if (x > 0) {
if (MAP[x - 1][y][1] != "E" && MAP[x - 1][y][0] == MAP[x][y][0]) p4 = true;
if (MAP[x - 1][y][2] == 0 || MAP[x - 1][y][2] == 4) {} else if (MAP[x - 1][y][2] == 2) {
leg1 = true;
leg4 = true
} else if (MAP[x - 1][y][2] == 3) {
leg4 = true
} else if (MAP[x - 1][y][2] == 1) {
leg1 = true
}
}
if (x < 39) {
if (MAP[x + 1][y][1] != "E" && MAP[x + 1][y][0] == MAP[x][y][0]) p2 = true;
if (MAP[x + 1][y][2] == 0 || MAP[x + 1][y][2] == 2) {} else if (MAP[x + 1][y][2] == 4) {
leg2 = true;
leg3 = true
} else if (MAP[x + 1][y][2] == 3) {
leg3 = true
} else if (MAP[x + 1][y][2] == 1) {
leg2 = true
}
}
if (y > 0) {
if (MAP[x][y - 1][1] != "E" && MAP[x][y - 1][0] == MAP[x][y][0]) p1 = true;
if (MAP[x][y - 1][2] == 0 || MAP[x][y - 1][2] == 1) {} else if (MAP[x][y - 1][2] == 4) {
leg1 = true
} else if (MAP[x][y - 1][2] == 2) {
leg2 = true
} else if (MAP[x][y - 1][2] == 3) {
leg1 = true;
leg2 = true
}
}
if (y < 39) {
if (MAP[x][y + 1][1] != "E" && MAP[x][y + 1][0] == MAP[x][y][0]) p3 = true;
if (MAP[x][y + 1][2] == 0 || MAP[x][y + 1][2] == 3) {} else if (MAP[x][y + 1][2] == 4) {
leg4 = true
} else if (MAP[x][y + 1][2] == 2) {
leg3 = true
} else if (MAP[x][y + 1][2] == 1) {
leg3 = true;
leg4 = true
}
}
if (x > 0 && y > 0) {
if (MAP[x - 1][y - 1][2] == 0 || MAP[x - 1][y - 1][2] == 1 || MAP[x - 1][y - 1][2] == 4) {} else if (MAP[x - 1][y - 1][2] == 2 || MAP[x - 1][y - 1][2] == 3) {
leg1 = true
}
}
if (x > 0 && y < 39) {
if (MAP[x - 1][y + 1][2] == 0 || MAP[x - 1][y + 1][2] == 3 || MAP[x - 1][y + 1][2] == 4) {} else if (MAP[x - 1][y + 1][2] == 2 || MAP[x - 1][y + 1][2] == 1) {
leg4 = true
}
}
if (x < 39 && y > 0) {
if (MAP[x + 1][y - 1][2] == 0 || MAP[x + 1][y - 1][2] == 1 || MAP[x + 1][y - 1][2] == 2) {} else if (MAP[x + 1][y - 1][2] == 4 || MAP[x + 1][y - 1][2] == 3) {
leg2 = true
}
}
if (x < 39 && y < 39) {
if (MAP[x + 1][y + 1][2] == 0 || MAP[x + 1][y + 1][2] == 3 || MAP[x + 1][y + 1][2] == 2) {} else if (MAP[x + 1][y + 1][2] == 4 || MAP[x + 1][y + 1][2] == 1) {
leg3 = true
}
}
if (!leg1 && !leg2 && !leg3 && !leg4)
if (!p1 && !p4 && !p3) MAP[x][y][2] = 4;
else MAP[x][y][2] = 1;
else if (leg1 && !leg2 && !leg3 && !leg4)
if (!p1 && p4 && p2 && p3) MAP[x][y][2] = 3;
else MAP[x][y][2] = 2;
else if (!leg1 && leg2 && !leg3 && !leg4) MAP[x][y][2] = 4;
else if (leg1 && leg2 && !leg3 && !leg4) MAP[x][y][2] = 3;
else if (!leg1 && !leg2 && leg3 && !leg4)
if (p4) MAP[x][y][2] = 1;
else MAP[x][y][2] = 4;
else if (leg1 && !leg2 && leg3 && !leg4) MAP[x][y][2] = 1;
else if (!leg1 && leg2 && leg3 && !leg4) MAP[x][y][2] = 4;
else if (leg1 && leg2 && leg3 && !leg4) MAP[x][y][2] = 0;
else if (!leg1 && !leg2 && !leg3 && leg4) MAP[x][y][2] = 1;
else if (leg1 && !leg2 && !leg3 && leg4) MAP[x][y][2] = 2;
else if (!leg1 && leg2 && !leg3 && leg4) MAP[x][y][2] = 3;
else if (leg1 && leg2 && !leg3 && leg4) MAP[x][y][2] = 0;
else if (!leg1 && !leg2 && leg3 && leg4) MAP[x][y][2] = 1;
else if (leg1 && !leg2 && leg3 && leg4) MAP[x][y][2] = 0;
else if (!leg1 && leg2 && leg3 && leg4) MAP[x][y][2] = 1;
else if (leg1 && leg2 && leg3 && leg4) MAP[x][y][2] = 0
}
}
}
}
for (var x = 0; x < 40; x++) {
for (var y = 0; y < 40; y++) {
if (MAP[x][y][2] != 0) {
var legPart;
var legHeight;
if (MAP[x][y][1] == "P") legHeight = MAP[x][y][0];
else legHeight = MAP[x][y][0] + MAP[x][y][3];
switch (legHeight) {
case 20:
legPart = MaxPart(UAP020(true), null);
break;
case 30:
legPart = MaxPart(UAP030(true), null);
break;
case 40:
legPart = MaxPart(UAP040(true), null);
break;
case 50:
legPart = MaxPart(UAP050(true), null);
break;
case 60:
legPart = MaxPart(UAP060(true), null);
break;
case 70:
legPart = MaxPart(UAP070(true), null);
break;
case 80:
legPart = MaxPart(UAP080(true), null);
break;
case 90:
legPart = MaxPart(UAP090(true), null);
break;
case 100:
legPart = MaxPart(UAP100(true), null);
break;
case 110:
legPart = MaxPart(UAP110(true), null);
break;
default:
break
}
partsContainer.addChild(legPart);
legs.push(legPart)
}
}
}
}
function printMAP() {
for (var x = 0; x < 40; x++) {
var string = "|";
for (var y = 0; y < 40; y++) {
if (MAP[y][x] != " X ") {
if (MAP[y][x] == 0) string += "0";
if (MAP[y][x] < 100) string += "0"
}
string += MAP[y][x] + "|"
}
console.log(string)
}
}
function addHeightKeys() {
var height20key = new createjs.Container;
height20key.x = 10;
height20key.y = 700;
stage.addChild(height20key);
var height20keyBackground = new createjs.Shape;
height20keyBackground.graphics.beginFill("rgba(200,200,200,0.90)").drawRect(0, 0, 120, 40);
var height20keyBlock = new createjs.Shape;
height20keyBlock.graphics.beginFill(height20Tint).drawRect(10, 10, 20, 20);
height20key.addChild(height20keyBlock);
var height20keyText = new createjs.Text('20" Height', "12px sans-serif", "#202020");
height20keyText.y = 15;
height20keyText.x = 40;
height20key.addChild(height20keyText);
height20key.visible = false;
heightKeys.push(height20key);
var height30key = new createjs.Container;
height30key.x = 10;
height30key.y = 660;
stage.addChild(height30key);
var height30keyBackground = new createjs.Shape;
height30keyBackground.graphics.beginFill("rgba(200,200,200,0.90)").drawRect(0, 0, 120, 40);
var height30keyBlock = new createjs.Shape;
height30keyBlock.graphics.beginFill(height30Tint).drawRect(10, 10, 20, 20);
height30key.addChild(height30keyBlock);
var height30keyText = new createjs.Text('30" Height', "12px sans-serif", "#202020");
height30keyText.y = 15;
height30keyText.x = 40;
height30key.addChild(height30keyText);
height30key.visible = false;
heightKeys.push(height30key);
var height40key = new createjs.Container;
height40key.x = 10;
height40key.y = 620;
stage.addChild(height40key);
var height40keyBackground = new createjs.Shape;
height40keyBackground.graphics.beginFill("rgba(200,200,200,0.90)").drawRect(0, 0, 120, 40);
var height40keyBlock = new createjs.Shape;
height40keyBlock.graphics.beginFill(height40Tint).drawRect(10, 10, 20, 20);
height40key.addChild(height40keyBlock);
var height40keyText = new createjs.Text('40" Height', "12px sans-serif", "#202020");
height40keyText.y = 15;
height40keyText.x = 40;
height40key.addChild(height40keyText);
height40key.visible = false;
heightKeys.push(height40key);
var height50key = new createjs.Container;
height50key.x = 10;
height50key.y = 580;
stage.addChild(height50key);
var height50keyBackground = new createjs.Shape;
height50keyBackground.graphics.beginFill("rgba(200,200,200,0.90)").drawRect(0, 0, 120, 40);
var height50keyBlock = new createjs.Shape;
height50keyBlock.graphics.beginFill(height50Tint).drawRect(10, 10, 20, 20);
height50key.addChild(height50keyBlock);
var height50keyText = new createjs.Text('50" Height', "12px sans-serif", "#202020");
height50keyText.y = 15;
height50keyText.x = 40;
height50key.addChild(height50keyText);
height50key.visible = false;
heightKeys.push(height50key);
var height60key = new createjs.Container;
height60key.x = 10;
height60key.y = 540;
stage.addChild(height60key);
var height60keyBackground = new createjs.Shape;
height60keyBackground.graphics.beginFill("rgba(200,200,200,0.90)").drawRect(0, 0, 120, 40);
var height60keyBlock = new createjs.Shape;
height60keyBlock.graphics.beginFill(height60Tint).drawRect(10, 10, 20, 20);
height60key.addChild(height60keyBlock);
var height60keyText = new createjs.Text('60" Height', "12px sans-serif", "#202020");
height60keyText.y = 15;
height60keyText.x = 40;
height60key.addChild(height60keyText);
height60key.visible = false;
heightKeys.push(height60key);
var height70key = new createjs.Container;
height70key.x = 10;
height70key.y = 500;
stage.addChild(height70key);
var height70keyBackground = new createjs.Shape;
height70keyBackground.graphics.beginFill("rgba(200,200,200,0.90)").drawRect(0, 0, 120, 40);
var height70keyBlock = new createjs.Shape;
height70keyBlock.graphics.beginFill(height70Tint).drawRect(10, 10, 20, 20);
height70key.addChild(height70keyBlock);
var height70keyText = new createjs.Text('70" Height', "12px sans-serif", "#202020");
height70keyText.y = 15;
height70keyText.x = 40;
height70key.addChild(height70keyText);
height70key.visible = false;
heightKeys.push(height70key);
var height80key = new createjs.Container;
height80key.x = 10;
height80key.y = 460;
stage.addChild(height80key);
var height80keyBackground = new createjs.Shape;
height80keyBackground.graphics.beginFill("rgba(200,200,200,0.90)").drawRect(0, 0, 120, 40);
var height80keyBlock = new createjs.Shape;
height80keyBlock.graphics.beginFill(height80Tint).drawRect(10, 10, 20, 20);
height80key.addChild(height80keyBlock);
var height80keyText = new createjs.Text('80" Height', "12px sans-serif", "#202020");
height80keyText.y = 15;
height80keyText.x = 40;
height80key.addChild(height80keyText);
height80key.visible = false;
heightKeys.push(height80key);
var height90key = new createjs.Container;
height90key.x = 10;
height90key.y = 420;
stage.addChild(height90key);
var height90keyBackground = new createjs.Shape;
height90keyBackground.graphics.beginFill("rgba(200,200,200,0.90)").drawRect(0, 0, 120, 40);
var height90keyBlock = new createjs.Shape;
height90keyBlock.graphics.beginFill(height90Tint).drawRect(10, 10, 20, 20);
height90key.addChild(height90keyBlock);
var height90keyText = new createjs.Text('90" Height', "12px sans-serif", "#202020");
height90keyText.y = 15;
height90keyText.x = 40;
height90key.addChild(height90keyText);
height90key.visible = false;
heightKeys.push(height90key);
var height100key = new createjs.Container;
height100key.x = 10;
height100key.y = 380;
stage.addChild(height100key);
var height100keyBackground = new createjs.Shape;
height100keyBackground.graphics.beginFill("rgba(200,200,200,0.90)").drawRect(0, 0, 120, 40);
var height100keyBlock = new createjs.Shape;
height100keyBlock.graphics.beginFill(height100Tint).drawRect(10, 10, 20, 20);
height100key.addChild(height100keyBlock);
var height100keyText = new createjs.Text('100" Height', "12px sans-serif", "#202020");
height100keyText.y = 15;
height100keyText.x = 40;
height100key.addChild(height100keyText);
height100key.visible = false;
heightKeys.push(height100key);
var height110key = new createjs.Container;
height110key.x = 10;
height110key.y = 340;
stage.addChild(height110key);
var height110keyBackground = new createjs.Shape;
height110keyBackground.graphics.beginFill("rgba(200,200,200,0.90)").drawRect(0, 0, 120, 40);
var height110keyBlock = new createjs.Shape;
height110keyBlock.graphics.beginFill(height110Tint).drawRect(10, 10, 20, 20);
height110key.addChild(height110keyBlock);
var height110keyText = new createjs.Text('110" Height', "12px sans-serif", "#202020");
height110keyText.y = 15;
height110keyText.x = 40;
height110key.addChild(height110keyText);
height110key.visible = false;
heightKeys.push(height110key)
}
function attachmentPointClicked(event) {
var point = event.target;
if (point == LAST_CLICKED_ATTACHMENT_POINT) return;
if (LAST_CLICKED_MAX_ACCESS_PART != null) LAST_CLICKED_MAX_ACCESS_PART.highlight.visible = false;
for (var i = 0; i < point.parent.attachmentCount; i++) {
point.parent.attachmentSlots[i].graphics.beginFill("#fff").setStrokeStyle(8, "round").beginStroke("rgba(255,192,0,1)").drawRect(-146, 73, 293, 73)
}
partsMenuContainerText.text = "Select a part to attach";
toolTipText.text = "Select a part from the menu on the right";
point.graphics.beginFill("rgba(255,192,0,1)").drawRect(-146, 73, 293, 73);
var spaces = calculateGridSpace(point);
stage.addChild(MaxSelectPartMenu(point.parent, point, spaces != 0 && point.parent.partData.platform, spaces == 0 && point.parent.partData.platform, spaces));
LAST_CLICKED_MAX_ACCESS_PART.highlight.visible = false;
LAST_CLICKED_ATTACHMENT_POINT = point;
maxRemoveButton.visible = false
}
function maxHandleMouseOver(event) {
var target = partsContainer.getChildByName(event.target.name);
target.highlight.visible = true;
if (LAST_CLICKED_MAX_ACCESS_PART != target) toolTipText.text = "Click to select this part"
}
function maxHandleMouseOut(event) {
var target = partsContainer.getChildByName(event.target.name);
if (LAST_CLICKED_MAX_ACCESS_PART != target || LAST_CLICKED_ATTACHMENT_POINT != null) target.highlight.visible = false;
if ((LAST_CLICKED_MAX_ACCESS_PART == null || !LAST_CLICKED_MAX_ACCESS_PART.highlight.visible) && LAST_CLICKED_ATTACHMENT_POINT == null || LAST_CLICKED_MAX_ACCESS_PART.attachmentSlotsUsed == LAST_CLICKED_MAX_ACCESS_PART.attachmentCount) toolTipText.text = "Mouse over a part";
else if (LAST_CLICKED_ATTACHMENT_POINT == null) toolTipText.text = "Mouse over an attachment point";
else toolTipText.text = "Select a part from the menu on the right"
}
function maxHandleMouseOverAttachmentPoint(event) {
if (LAST_CLICKED_ATTACHMENT_POINT != event.target) toolTipText.text = "Click to select this attachment point"
}
function maxHandleMouseOutAttachmentPoint(event) {
if (LAST_CLICKED_ATTACHMENT_POINT == null) toolTipText.text = "Mouse over an attachment point";
else toolTipText.text = "Select a part from the menu on the right"
}
function autoAddRails(all) {
var preExistingParts = new Array;
for (var i = 0; i < partsContainer.getNumChildren(); i++) {
if (partsContainer.getChildAt(i).partData.platform && (all || partsContainer.getChildAt(i).height >= 50)) {
preExistingParts.push(partsContainer.getChildAt(i))
}
}
for (var i = 0; i < preExistingParts.length; i++) {
var platform = preExistingParts[i];
if (platform.attachmentSlotsUsed == platform.attachmentCount) continue;
for (var k = 0; k < platform.attachmentCount; k++) {
if (platform.attachmentSlots[platform.attachmentSlotIndices[k]].filled) continue;
if (MAP[platform.attachmentSlots[platform.attachmentSlotIndices[k]].coordinates.x][platform.attachmentSlots[platform.attachmentSlotIndices[k]].coordinates.y][1] == "E") {
var newPart = MaxPart(UAPHR1(false), platform.attachmentSlots[platform.attachmentSlotIndices[k]]);
partsContainer.addChild(newPart);
autoAddedRails.push(newPart)
}
}
}
console.log("*********");
console.log(autoAddedRails);
angularUpdate(parts)
}
function removeAutoAddedRails() {
console.log("HIT");
console.log(autoAddedRails.length);
for (var i = 0; i < autoAddedRails.length; i++) {
removePart(autoAddedRails[i], false)
}
autoAddedRails = new Array;
console.log(autoAddedRails)
}
function calculateGridSpace(attachmentPoint) {
var startPoint = attachmentPoint.coordinates;
var openSpaces = 0;
var xCount = 0;
var x = startPoint.x;
var y = startPoint.y;
switch (attachmentPoint.rotOffset) {
case 0:
while (y > -1) {
if (MAP[x][y][0] == 0 && MAP[x][y][1] == "E" || MAP[x][y][0] == " X " && xCount == 0) {
openSpaces++;
if (MAP[x][y][0] == " X ") xCount++
} else if (MAP[x][y][0] == 0 && MAP[x][y][1] == "L" || MAP[x][y][0] != attachmentPoint.parent.height) {
openSpaces--;
break
} else break;
y--
}
break;
case -90:
while (x > -1) {
if (MAP[x][y][0] == 0 && MAP[x][y][1] == "E" || MAP[x][y][0] == " X " && xCount == 0) {
openSpaces++;
if (MAP[x][y][0] == " X ") xCount++
} else if (MAP[x][y][0] == 0 && MAP[x][y][1] == "L" || MAP[x][y][0] != attachmentPoint.parent.height) {
openSpaces--;
break
} else break;
x--
}
break;
case 90:
while (x < MAP.length) {
if (MAP[x][y][0] == 0 && MAP[x][y][1] == "E" || MAP[x][y][0] == " X " && xCount == 0) {
openSpaces++;
if (MAP[x][y][0] == " X ") xCount++
} else if (MAP[x][y][0] == 0 && MAP[x][y][1] == "L" || MAP[x][y][0] != attachmentPoint.parent.height) {
openSpaces--;
break
} else break;
x++
}
break;
case 180:
while (y < MAP[x].length) {
if (MAP[x][y][0] == 0 && MAP[x][y][1] == "E" || MAP[x][y][0] == " X " && xCount == 0) {
openSpaces++;
if (MAP[x][y][0] == " X ") xCount++
} else if (MAP[x][y][0] == 0 && MAP[x][y][1] == "L" || MAP[x][y][0] != attachmentPoint.parent.height) {
openSpaces--;
break
} else break;
y++
}
break;
default:
break
}
if (openSpaces == 1 && xCount == 1 || openSpaces < 0) return 0;
else if (openSpaces == 2 && xCount == 1) return 1;
else return openSpaces
}
function updateTooltipPosition() {
if (stage.mouseInBounds && stage.getChildIndex(maxTopDownView) == -1 && !stage.getChildByName("RAILS_POPUP")) {
toolTipText.visible = true;
toolTipText.x = stage.mouseX + 10;
toolTipText.y = stage.mouseY + 10
} else toolTipText.visible = false
}
var maxRemoveButton;
var scrollbar;
function MaxSelectPartMenu(part, attachmentPoint, autoAddLadders, railsOnly, maxLength) {
refreshParts();
selectPartMenu = new createjs.Container;
selectPartMenu.originPart = part;
selectPartMenu.attachmentPoint = attachmentPoint;
originalPart = part;
selectPartMenu.name = "SELECT_PART_MENU";
if (partsMenuContainer.getChildByName("PART_BUTTONS_CONTAINER")) {
partsMenuContainer.removeChild(partsMenuContainer.getChildByName("PART_BUTTONS_CONTAINER"))
}
var partButtonsContainer = new createjs.Container;
partButtonsContainer.name = "PART_BUTTONS_CONTAINER";
stage.getChildByName("PARTS_MENU_CONTAINER").addChild(partButtonsContainer);
addMaxPartButtons(part, partButtonsContainer, attachmentPoint.parent.height, autoAddLadders, railsOnly, maxLength);
if (partButtonsContainer.getNumChildren() > 0) {
partsMenuContainerText.text = "Select a part to add";
if (partButtonsContainer.getNumChildren() > 10) DrawScrollBar(partButtonsContainer)
} else {
partsMenuContainerText.text = ""
}
return selectPartMenu
}
function addMaxRemoveButton() {
maxRemoveButton = new createjs.Container;
maxRemoveButton.x = 0;
maxRemoveButton.y = 640;
maxRemoveButton.name = "REMOVE_BUTTON";
partsMenuContainer.addChild(maxRemoveButton);
var removeButtonShape = new createjs.Shape;
removeButtonShape.graphics.beginFill("#ff9e35").beginStroke("#e17a0f").drawRoundRect(0, 0, 260, 60, 5);
maxRemoveButton.addChild(removeButtonShape);
var removeButtonText = new createjs.Text("Remove Selected Part", "20px sans-serif", "#FFF");
removeButtonText.textAlign = "center";
removeButtonText.x = 130;
removeButtonText.y = 20;
maxRemoveButton.addChild(removeButtonText);
var removeButtonHelper = new createjs.ButtonHelper(maxRemoveButton);
maxRemoveButton.addEventListener("click", handleMaxRemoveClicked);
maxRemoveButton.visible = showRemoveButton
}
function addMaxPartButtons(part, mselectPartMenu, cheight, autoAddLadders, railsOnly, maxLength) {
var x = y = 0;
if (railsOnly == true) {
newPart = UAPHR1(true);
var partButton = new createjs.Container;
partButton.part = newPart;
partButton.x = 10;
partButton.y = 20;
mselectPartMenu.addChild(partButton);
var partButtonShape = new createjs.Shape;
partButtonShape.graphics.beginFill("#FFF").beginStroke("#e17a0f").drawRoundRect(0, 0, 100, 90, 5);
partButton.addChild(partButtonShape);
var partButtonText = new createjs.Text(newPart.name, "12px sans-serif", "#444");
partButtonText.textAlign = "center";
partButtonText.x = 50;
partButtonText.y = 92;
partButton.addChild(partButtonText);
var partImg = new createjs.Bitmap(newPart.sprite);
partImg.regX = newPart.bitmapCenter.x;
partImg.regY = newPart.bitmapCenter.y;
partImg.scaleX = partImg.scaleY = .15;
partImg.x = 50;
partImg.y = 30;
partButton.addChild(partImg);
mselectPartMenu.addChild(partButton);
var partButtonHelper = new createjs.ButtonHelper(partButton);
partButton.addEventListener("click", handleMaxPartSelected)
} else {
var possibleParts;
if (autoAddLadders) {
possibleParts = part.partData.connectableParts.concat(MA_LADDERS(cheight))
} else possibleParts = part.partData.connectableParts;
for (var i = 0; i < possibleParts.length; i++) {
newPart = PARTS[possibleParts[i]];
if (!newPart.platform && !newPart.rails && newPart.gridSize.y > maxLength - 1) continue;
var partButton = new createjs.Container;
partButton.part = newPart;
partButton.x = x * 125 + 10;
partButton.y = y * 135 + 25;
mselectPartMenu.addChild(partButton);
var partButtonShape = new createjs.Shape;
partButtonShape.graphics.beginFill("#FFF").beginStroke("#e17a0f").drawRoundRect(0, 0, 100, 90, 5);
partButton.addChild(partButtonShape);
var partButtonText = new createjs.Text(newPart.name, "12px sans-serif", "#444");
partButtonText.textAlign = "center";
partButtonText.x = 50;
partButtonText.y = 100;
partButton.addChild(partButtonText);
var partImg = new createjs.Bitmap(newPart.sprite);
partImg.regX = newPart.bitmapCenter.x;
partImg.regY = newPart.bitmapCenter.y;
partImg.scaleX = partImg.scaleY = .15 / newPart.gridSize.y;
partImg.x = 50;
partImg.y = 50;
partButton.addChild(partImg);
mselectPartMenu.addChild(partButton);
mselectPartMenu.setChildIndex(partButton, 0);
var partButtonHelper = new createjs.ButtonHelper(partButton);
partButton.addEventListener("click", handleMaxPartSelected);
partButton.addEventListener("mouseover", handleMaxPartOver);
partButton.addEventListener("mouseout", handleMaxPartOut);
x++;
if (x == 2) {
x = 0;
y++
}
}
}
partsMenuContainer.setChildIndex(mselectPartMenu, 1);
partsMenuContainer.setChildIndex(upperPartsMenuClip, partsMenuContainer.getNumChildren());
partsMenuContainer.setChildIndex(partsMenuContainerText, partsMenuContainer.getNumChildren())
}
function DrawScrollBar(partButtonsContainer) {
if (scrollbar != null) {
scrollbar.removeAllChildren();
partsMenuContainer.removeChild(scrollbar);
scrollbar = null
}
scrollbar = new createjs.Container;
var scrollbarOutline = new createjs.Shape;
scrollbarOutline.graphics.beginStroke("#e17a0f").drawRoundRect(-2, 10, 15, 690, 5);
scrollbar.addChild(scrollbarOutline);
var scrollbarBar = new createjs.Shape;
scrollbarBar.name = "scrollbarBar";
scrollbarBar.graphics.beginFill("#444").drawRoundRect(0, 12, 11, 300, 5);
scrollbar.addChild(scrollbarBar);
scrollbarBar.on("mousedown", function(evt) {
this.offset = {
x: this.x - evt.stageX,
y: this.y - evt.stageY
}
});
scrollbarBar.on("pressmove", function(evt) {
this.y = evt.stageY + this.offset.y;
this.y = Math.min(Math.max(0, this.y), 386);
partButtonsContainer.y = -this.y
});
scrollbar.x = 245;
partsMenuContainer.setBounds(0, 0, 100, 700);
partsMenuContainer.addChild(scrollbar)
}
function handleMaxRemoveClicked(event) {
removePart(LAST_CLICKED_MAX_ACCESS_PART, true)
}
function removePart(part, updateText) {
partsContainer.removeChild(partsContainer.getChildByName(part.name));
parts.splice(parts.indexOf(part.name), 1);
if (part.partData.platform) {
for (var x = 0; x < part.partData.gridSize.x; x++) {
for (var y = 0; y < part.partData.gridSize.y; y++) {
MAP[part.coordinates.x + x][part.coordinates.y - y][0] = 0;
MAP[part.coordinates.x + x][part.coordinates.y - y][1] = "E"
}
}
} else if (part.partData.ladder) {
console.log(part);
switch (part.mountPoint.rotation) {
case 0:
for (var x = 0; x < part.partData.gridSize.x; x++) {
for (var y = 0; y < part.partData.gridSize.y; y++) {
MAP[part.coordinates.x + x][part.coordinates.y - y][0] = 0;
MAP[part.coordinates.x + x][part.coordinates.y - y][1] = "E"
}
}
break;
case -90:
for (var x = 0; x < part.partData.gridSize.x; x++) {
for (var y = 0; y < part.partData.gridSize.y; y++) {
MAP[part.coordinates.x - y][part.coordinates.y - x][0] = 0;
MAP[part.coordinates.x - y][part.coordinates.y - x][1] = "E"
}
}
break;
case 90:
for (var x = 0; x < part.partData.gridSize.x; x++) {
for (var y = 0; y < part.partData.gridSize.y; y++) {
console.log(y);
MAP[part.coordinates.x + y][part.coordinates.y - x][0] = 0;
MAP[part.coordinates.x + y][part.coordinates.y - x][1] = "E"
}
}
break;
case 180:
for (var x = 0; x < part.partData.gridSize.x; x++) {
for (var y = 0; y < part.partData.gridSize.y; y++) {
MAP[part.coordinates.x + x][part.coordinates.y + y][0] = 0;
MAP[part.coordinates.x + x][part.coordinates.y + y][1] = "E"
}
}
break;
default:
break
}
}
for (var i = 0; i < part.parentPartAttachmentPoint.parent.attachmentCount; i++) {
var k = part.parentPartAttachmentPoint.parent.attachmentSlotIndices[i];
if (part.parentPartAttachmentPoint.parent.attachmentSlots[i] == part.parentPartAttachmentPoint) part.parentPartAttachmentPoint.parent.attachmentSlots[i].filled = false
}
part.parentPartAttachmentPoint.parent.attachmentSlotsUsed--;
updateMap();
printMAP();
updateZOrder();
angularUpdate(parts);
if (updateText) {
maxRemoveButton.visible = false;
partsMenuContainerText.text = "Select a part to build off of";
toolTipText.text = "Mouse over a part";
if (scrollbar != null) {
scrollbar.removeAllChildren();
partsMenuContainer.removeChild(scrollbar);
scrollbar = null
}
LAST_CLICKED_ATTACHMENT_POINT = null;
LAST_CLICKED_MAX_ACCESS_PART = null
}
}
function handleMaxPartSelected(event) {
newPart = MaxPart(event.target.parent.part, selectPartMenu.attachmentPoint);
partsContainer.addChild(newPart);
if (partsMenuContainer.getChildByName("PART_BUTTONS_CONTAINER")) {
partsMenuContainer.removeChild(partsMenuContainer.getChildByName("PART_BUTTONS_CONTAINER"))
}
if (scrollbar != null) {
scrollbar.removeAllChildren();
partsMenuContainer.removeChild(scrollbar);
scrollbar = null
}
var partButtonsContainer = new createjs.Container;
angularUpdate(parts);
partsMenuContainerText.text = "Select a part to build off of";
toolTipText.text = "Mouse over a part";
LAST_CLICKED_ATTACHMENT_POINT = null;
LAST_CLICKED_MAX_ACCESS_PART = null
}
function handleMaxPartOver(event) {
toolTipText.text = "Click to add this part"
}
function handleMaxPartOut(event) {
if (LAST_CLICKED_ATTACHMENT_POINT != null) toolTipText.text = "Select a part from the menu on the right"
}
function scrollPartsBar(delta) {
if (scrollbar != null && scrollbar.getChildByName("scrollbarBar") != null) {
bar = scrollbar.getChildByName("scrollbarBar");
bar.y = Math.min(Math.max(0, bar.y - 25 * delta), 386);
scrollbar.parent.getChildByName("PART_BUTTONS_CONTAINER").y = -bar.y
}
}
function StartMenu() {
var startMenu = new createjs.Container;
var triarcLogo = new createjs.Bitmap("assets/TriArcLogo.jpg");
triarcLogo.x = -390;
triarcLogo.y = 720;
startMenu.addChild(triarcLogo);
var graingerLogo = new createjs.Bitmap("assets/GraingerLogo.jpg");
graingerLogo.x = 160;
graingerLogo.y = 720;
startMenu.addChild(graingerLogo);
var udesignLogo = new createjs.Bitmap("assets/UDesignLogo.jpg");
udesignLogo.x = -178;
udesignLogo.y = 30;
startMenu.addChild(udesignLogo);
var udesignLogoBorder = new createjs.Shape;
udesignLogoBorder.graphics.beginStroke("#e17a0f").drawRoundRect(-184, 20, 368, 110, 5);
startMenu.addChild(udesignLogoBorder);
var startInstructionText = new createjs.Text("Click a Product to Begin", "30px sans-serif", "#404040");
startInstructionText.textAlign = "center";
startInstructionText.x = 0;
startInstructionText.y = 160;
startMenu.addChild(startInstructionText);
var rooftopButton = new createjs.Container;
rooftopButton.x = -325;
rooftopButton.y = 475;
startMenu.addChild(rooftopButton);
var rooftopButtonBorder = new createjs.Shape;
rooftopButtonBorder.graphics.beginStroke("#e17a0f").drawRoundRect(0, -180, 200, 210, 5);
rooftopButton.addChild(rooftopButtonBorder);
var rooftopButtonImage = new createjs.Bitmap("assets/rooftopicon.jpg");
rooftopButtonImage.y = -175;
rooftopButtonImage.x = 22;
rooftopButton.addChild(rooftopButtonImage);
var rooftopButtonShape = new createjs.Shape;
rooftopButtonShape.graphics.beginFill("#ff9e35").beginStroke("#e17a0f").drawRoundRect(0, 0, 200, 40, 5);
rooftopButton.addChild(rooftopButtonShape);
var rooftopButtonText = new createjs.Text("Rooftop Platform", "20px sans-serif", "#fff");
rooftopButtonText.textAlign = "center";
rooftopButtonText.y = 10;
rooftopButtonText.x = 100;
rooftopButton.addChild(rooftopButtonText);
var rooftopButtonHelper = new createjs.ButtonHelper(rooftopButton);
rooftopButton.addEventListener("click", handleRooftopButtonClick);
var crossoverButton = new createjs.Container;
crossoverButton.x = -100;
crossoverButton.y = 475;
startMenu.addChild(crossoverButton);
var crossoverButtonBorder = new createjs.Shape;
crossoverButtonBorder.graphics.beginStroke("#e17a0f").drawRoundRect(0, -180, 200, 220, 5);
crossoverButton.addChild(crossoverButtonBorder);
var crossoverButtonImage = new createjs.Bitmap("assets/crossovericon.jpg");
crossoverButtonImage.x = 10;
crossoverButtonImage.y = -175;
crossoverButton.addChild(crossoverButtonImage);
var crossoverButtonShape = new createjs.Shape;
crossoverButtonShape.graphics.beginFill("#ff9e35").beginStroke("#e17a0f").drawRoundRect(0, 0, 200, 40, 5);
crossoverButton.addChild(crossoverButtonShape);
var crossoverButtonText = new createjs.Text("Crossover Ladder", "20px sans-serif", "#fff");
crossoverButtonText.textAlign = "center";
crossoverButtonText.y = 10;
crossoverButtonText.x = 100;
crossoverButton.addChild(crossoverButtonText);
var crossoverButtonHelper = new createjs.ButtonHelper(crossoverButton);
crossoverButton.addEventListener("click", handleCrossoverButtonClick);
var maxaccessButton = new createjs.Container;
maxaccessButton.x = 125;
maxaccessButton.y = 475;
startMenu.addChild(maxaccessButton);
var maxaccessButtonBorder = new createjs.Shape;
maxaccessButtonBorder.graphics.beginStroke("#e17a0f").drawRoundRect(0, -180, 200, 220, 5);
maxaccessButton.addChild(maxaccessButtonBorder);
var maxaccessButtonImage = new createjs.Bitmap("assets/maxaccessicon.JPG");
maxaccessButtonImage.x = 10;
maxaccessButtonImage.y = -175;
maxaccessButton.addChild(maxaccessButtonImage);
var maxaccessButtonShape = new createjs.Shape;
maxaccessButtonShape.graphics.beginFill("#ff9e35").beginStroke("#e17a0f").drawRoundRect(0, 0, 200, 40, 5);
maxaccessButton.addChild(maxaccessButtonShape);
var maxaccessButtonText = new createjs.Text("Max-Access Ladder", "20px sans-serif", "#fff");
maxaccessButtonText.textAlign = "center";
maxaccessButtonText.y = 10;
maxaccessButtonText.x = 100;
maxaccessButton.addChild(maxaccessButtonText);
var maxaccessButtonHelper = new createjs.ButtonHelper(maxaccessButton);
maxaccessButton.addEventListener("click", handlemaxaccessButtonClick);
return startMenu
}
function handleRooftopButtonClick(event) {
setSystem(LadderType.Rooftop);
showHeightMenu()
}
function handleCrossoverButtonClick(event) {
setSystem(LadderType.Crossover);
showHeightMenu()
}
function handlemaxaccessButtonClick(event) {
setSystem(LadderType.MaxAccess);
showHeightMenu()
}
var stepOneHighlightShape;
var stepTwoHighlightShape;
var stepThreeHighlightShape;
var stepFourHighlightShape;
var stepFiveHighlightShape;
var stepSixHighlightShape;
var stepSevenHighlightShape;
var stepEightHighlightShape;
var stepNineHighlightShape;
var stepTenHighlightShape;
var stepElevenHighlightShape;
var twentyButtonShape;
var thirtyButtonShape;
var fortyButtonShape;
var fiftyButtonShape;
var sixtyButtonShape;
var seventyButtonShape;
var eightyButtonShape;
var ninetyButtonShape;
var hundredButtonShape;
var hundredTenButtonShape;
function RT_HeightMenu() {
var heightMenu = new createjs.Container;
var triarcLogo = new createjs.Bitmap("assets/TriArcLogo.jpg");
triarcLogo.x = -390;
triarcLogo.y = 720;
heightMenu.addChild(triarcLogo);
var graingerLogo = new createjs.Bitmap("assets/GraingerLogo.jpg");
graingerLogo.x = 160;
graingerLogo.y = 720;
heightMenu.addChild(graingerLogo);
var udesignLogo = new createjs.Bitmap("assets/UDesignLogo.jpg");
udesignLogo.x = -178;
udesignLogo.y = 30;
heightMenu.addChild(udesignLogo);
var udesignLogoBorder = new createjs.Shape;
udesignLogoBorder.graphics.beginStroke("#e17a0f").drawRoundRect(-184, 20, 368, 110, 5);
heightMenu.addChild(udesignLogoBorder);
var heightInstructionText = new createjs.Text("Select a Ladder", "30px sans-serif", "#444");
heightInstructionText.textAlign = "center";
heightInstructionText.x = 200;
heightInstructionText.y = 220;
heightMenu.addChild(heightInstructionText);
var ladderPictureContainer = new createjs.Container;
ladderPictureContainer.x = -350;
ladderPictureContainer.y = 140;
heightMenu.addChild(ladderPictureContainer);
var ladderPicture = new createjs.Bitmap("assets/rooftopSelectLadder.png");
ladderPictureContainer.addChild(ladderPicture);
var twentyButton = new createjs.Container;
twentyButton.x = 50;
twentyButton.y = 560;
heightMenu.addChild(twentyButton);
twentyButtonShape = new createjs.Shape;
twentyButtonShape.graphics.beginFill("#494c53").beginStroke("#5f6064").drawRoundRect(0, 0, 300, 40, 5);
twentyButton.addChild(twentyButtonShape);
var twentyButtonText = new createjs.Text('2 Step Ladder\n20" Platform Height / 17.5" Clearance', "16px sans-serif", "#fff");
twentyButtonText.textAlign = "center";
twentyButtonText.y = 2;
twentyButtonText.x = 150;
twentyButton.addChild(twentyButtonText);
var twentyButtonHelper = new createjs.ButtonHelper(twentyButton);
twentyButton.addEventListener("mouseover", handleTwentyButtonMouseOver);
twentyButton.addEventListener("mouseout", handleTwentyButtonMouseOut);
twentyButton.addEventListener("click", handleTwentyButtonClick);
var thirtyButton = new createjs.Container;
thirtyButton.x = 50;
thirtyButton.y = 500;
heightMenu.addChild(thirtyButton);
thirtyButtonShape = new createjs.Shape;
thirtyButtonShape.graphics.beginFill("#494c53").beginStroke("#5f6064").drawRoundRect(0, 0, 300, 40, 5);
thirtyButton.addChild(thirtyButtonShape);
var thirtyButtonText = new createjs.Text('3 Step Ladder\n30" Platform Height / 27.5" Clearance', "16px sans-serif", "#fff");
thirtyButtonText.textAlign = "center";
thirtyButtonText.y = 2;
thirtyButtonText.x = 150;
thirtyButton.addChild(thirtyButtonText);
var thirtyButtonHelper = new createjs.ButtonHelper(thirtyButton);
thirtyButton.addEventListener("mouseover", handleThirtyButtonMouseOver);
thirtyButton.addEventListener("mouseout", handleThirtyButtonMouseOut);
thirtyButton.addEventListener("click", handleThirtyButtonClick);
var fortyButton = new createjs.Container;
fortyButton.x = 50;
fortyButton.y = 440;
heightMenu.addChild(fortyButton);
fortyButtonShape = new createjs.Shape;
fortyButtonShape.graphics.beginFill("#494c53").beginStroke("#5f6064").drawRoundRect(0, 0, 300, 40, 5);
fortyButton.addChild(fortyButtonShape);
var fortyButtonText = new createjs.Text('4 Step Ladder\n40" Platform Height / 37.5" Clearance', "16px sans-serif", "#fff");
fortyButtonText.textAlign = "center";
fortyButtonText.y = 2;
fortyButtonText.x = 150;
fortyButton.addChild(fortyButtonText);
var fortyButtonHelper = new createjs.ButtonHelper(fortyButton);
fortyButton.addEventListener("mouseover", handleFortyButtonMouseOver);
fortyButton.addEventListener("mouseout", handleFortyButtonMouseOut);
fortyButton.addEventListener("click", handleFortyButtonClick);
var fiftyButton = new createjs.Container;
fiftyButton.x = 50;
fiftyButton.y = 380;
heightMenu.addChild(fiftyButton);
fiftyButtonShape = new createjs.Shape;
fiftyButtonShape.graphics.beginFill("#494c53").beginStroke("#5f6064").drawRoundRect(0, 0, 300, 40, 5);
fiftyButton.addChild(fiftyButtonShape);
var fiftyButtonText = new createjs.Text('5 Step Ladder\n50" Platform Height / 47.5" Clearance', "16px sans-serif", "#fff");
fiftyButtonText.textAlign = "center";
fiftyButtonText.y = 2;
fiftyButtonText.x = 150;
fiftyButton.addChild(fiftyButtonText);
var fiftyButtonHelper = new createjs.ButtonHelper(fiftyButton);
fiftyButton.addEventListener("mouseover", handleFiftyButtonMouseOver);
fiftyButton.addEventListener("mouseout", handleFiftyButtonMouseOut);
fiftyButton.addEventListener("click", handleFiftyButtonClick);
var sixtyButton = new createjs.Container;
sixtyButton.x = 50;
sixtyButton.y = 320;
heightMenu.addChild(sixtyButton);
sixtyButtonShape = new createjs.Shape;
sixtyButtonShape.graphics.beginFill("#494c53").beginStroke("#5f6064").drawRoundRect(0, 0, 300, 40, 5);
sixtyButton.addChild(sixtyButtonShape);
var sixtyButtonText = new createjs.Text('6 Step Ladder\n60" Platform Height / 57.5" Clearance', "16px sans-serif", "#fff");
sixtyButtonText.textAlign = "center";
sixtyButtonText.y = 2;
sixtyButtonText.x = 150;
sixtyButton.addChild(sixtyButtonText);
var sixtyButtonHelper = new createjs.ButtonHelper(sixtyButton);
sixtyButton.addEventListener("mouseover", handleSixtyButtonMouseOver);
sixtyButton.addEventListener("mouseout", handleSixtyButtonMouseOut);
sixtyButton.addEventListener("click", handleSixtyButtonClick);
stepOneHighlightShape = new createjs.Shape;
stepOneHighlightShape.graphics.beginFill("rgba(255,128,0,0.6)");
stepOneHighlightShape.graphics.moveTo(55, 518);
stepOneHighlightShape.graphics.lineTo(270, 518);
stepOneHighlightShape.graphics.lineTo(280, 550);
stepOneHighlightShape.graphics.lineTo(280, 563);
stepOneHighlightShape.graphics.lineTo(44, 563);
stepOneHighlightShape.graphics.lineTo(44, 548);
stepOneHighlightShape.graphics.lineTo(55, 518);
ladderPictureContainer.addChild(stepOneHighlightShape);
stepTwoHighlightShape = new createjs.Shape;
stepTwoHighlightShape.graphics.beginFill("rgba(255,128,0,0.6)");
stepTwoHighlightShape.graphics.moveTo(62, 443);
stepTwoHighlightShape.graphics.lineTo(262, 443);
stepTwoHighlightShape.graphics.lineTo(272, 465);
stepTwoHighlightShape.graphics.lineTo(272, 478);
stepTwoHighlightShape.graphics.lineTo(52, 478);
stepTwoHighlightShape.graphics.lineTo(52, 465);
stepTwoHighlightShape.graphics.lineTo(62, 443);
ladderPictureContainer.addChild(stepTwoHighlightShape);
stepThreeHighlightShape = new createjs.Shape;
stepThreeHighlightShape.graphics.beginFill("rgba(255,128,0,0.6)");
stepThreeHighlightShape.graphics.moveTo(70, 375);
stepThreeHighlightShape.graphics.lineTo(258, 375);
stepThreeHighlightShape.graphics.lineTo(267, 392);
stepThreeHighlightShape.graphics.lineTo(267, 402);
stepThreeHighlightShape.graphics.lineTo(60, 402);
stepThreeHighlightShape.graphics.lineTo(60, 392);
stepThreeHighlightShape.graphics.lineTo(70, 375);
ladderPictureContainer.addChild(stepThreeHighlightShape);
stepFourHighlightShape = new createjs.Shape;
stepFourHighlightShape.graphics.beginFill("rgba(255,128,0,0.6)");
stepFourHighlightShape.graphics.moveTo(75, 315);
stepFourHighlightShape.graphics.lineTo(250, 315);
stepFourHighlightShape.graphics.lineTo(262, 325);
stepFourHighlightShape.graphics.lineTo(262, 336);
stepFourHighlightShape.graphics.lineTo(66, 336);
stepFourHighlightShape.graphics.lineTo(66, 325);
stepFourHighlightShape.graphics.lineTo(75, 315);
ladderPictureContainer.addChild(stepFourHighlightShape);
stepFiveHighlightShape = new createjs.Shape;
stepFiveHighlightShape.graphics.beginFill("rgba(255,128,0,0.6)");
stepFiveHighlightShape.graphics.moveTo(78, 260);
stepFiveHighlightShape.graphics.lineTo(250, 260);
stepFiveHighlightShape.graphics.lineTo(257, 267);
stepFiveHighlightShape.graphics.lineTo(257, 278);
stepFiveHighlightShape.graphics.lineTo(70, 278);
stepFiveHighlightShape.graphics.lineTo(70, 267);
stepFiveHighlightShape.graphics.lineTo(78, 260);
ladderPictureContainer.addChild(stepFiveHighlightShape);
stepSixHighlightShape = new createjs.Shape;
stepSixHighlightShape.graphics.beginFill("rgba(255,128,0,0.6)");
stepSixHighlightShape.graphics.moveTo(78, 212);
stepSixHighlightShape.graphics.lineTo(250, 212);
stepSixHighlightShape.graphics.lineTo(252, 216);
stepSixHighlightShape.graphics.lineTo(252, 225);
stepSixHighlightShape.graphics.lineTo(76, 225);
stepSixHighlightShape.graphics.lineTo(76, 216);
stepSixHighlightShape.graphics.lineTo(78, 212);
ladderPictureContainer.addChild(stepSixHighlightShape);
ladderPictureContainer.scaleX = ladderPictureContainer.scaleY = .9;
stepOneHighlightShape.visible = false;
stepTwoHighlightShape.visible = false;
stepThreeHighlightShape.visible = false;
stepFourHighlightShape.visible = false;
stepFiveHighlightShape.visible = false;
stepSixHighlightShape.visible = false;
var backButton = new createjs.Container;
backButton.x = -430;
backButton.y = 50;
heightMenu.addChild(backButton);
backButtonShape = new createjs.Shape;
backButtonShape.graphics.beginFill("#494c53").beginStroke("#5f6064").drawRoundRect(0, 0, 60, 40, 5);
backButton.addChild(backButtonShape);
var backButtonText = new createjs.Text("Back", "16px sans-serif", "#fff");
backButtonText.textAlign = "center";
backButtonText.y = 10;
backButtonText.x = 30;
backButton.addChild(backButtonText);
var backButtonHelper = new createjs.ButtonHelper(backButton);
backButton.addEventListener("click", handleBackButtonClick);
return heightMenu
}
function CO_HeightMenu() {
var heightMenu = new createjs.Container;
var triarcLogo = new createjs.Bitmap("assets/TriArcLogo.jpg");
triarcLogo.x = -390;
triarcLogo.y = 720;
heightMenu.addChild(triarcLogo);
var graingerLogo = new createjs.Bitmap("assets/GraingerLogo.jpg");
graingerLogo.x = 160;
graingerLogo.y = 720;
heightMenu.addChild(graingerLogo);
var udesignLogo = new createjs.Bitmap("assets/UDesignLogo.jpg");
udesignLogo.x = -178;
udesignLogo.y = 30;
heightMenu.addChild(udesignLogo);
var udesignLogoBorder = new createjs.Shape;
udesignLogoBorder.graphics.beginStroke("#e17a0f").drawRoundRect(-184, 20, 368, 110, 5);
heightMenu.addChild(udesignLogoBorder);
var heightInstructionText = new createjs.Text("Select a Ladder", "30px sans-serif", "#444");
heightInstructionText.textAlign = "center";
heightInstructionText.x = 200;
heightInstructionText.y = 160;
heightMenu.addChild(heightInstructionText);
var ladderPictureContainer = new createjs.Container;
ladderPictureContainer.x = -250;
ladderPictureContainer.y = 140;
heightMenu.addChild(ladderPictureContainer);
var ladderPicture = new createjs.Bitmap("assets/crossoverSelectLadder.png");
ladderPictureContainer.addChild(ladderPicture);
var thirtyButton = new createjs.Container;
thirtyButton.x = 50;
thirtyButton.y = 600;
heightMenu.addChild(thirtyButton);
thirtyButtonShape = new createjs.Shape;
thirtyButtonShape.graphics.beginFill("#494c53").beginStroke("#5f6064").drawRoundRect(0, 0, 300, 40, 5);
thirtyButton.addChild(thirtyButtonShape);
var thirtyButtonText = new createjs.Text('3 Step Ladder\n30" Platform Height / 28" Clearance', "16px sans-serif", "#fff");
thirtyButtonText.textAlign = "center";
thirtyButtonText.y = 2;
thirtyButtonText.x = 150;
thirtyButton.addChild(thirtyButtonText);
var thirtyButtonHelper = new createjs.ButtonHelper(thirtyButton);
thirtyButton.addEventListener("mouseover", handleThirtyButtonMouseOver);
thirtyButton.addEventListener("mouseout", handleThirtyButtonMouseOut);
thirtyButton.addEventListener("click", handleThirtyButtonClick);
var fortyButton = new createjs.Container;
fortyButton.x = 50;
fortyButton.y = 540;
heightMenu.addChild(fortyButton);
fortyButtonShape = new createjs.Shape;
fortyButtonShape.graphics.beginFill("#494c53").beginStroke("#5f6064").drawRoundRect(0, 0, 300, 40, 5);
fortyButton.addChild(fortyButtonShape);
var fortyButtonText = new createjs.Text('4 Step Ladder\n40" Platform Height / 38" Clearance', "16px sans-serif", "#fff");
fortyButtonText.textAlign = "center";
fortyButtonText.y = 2;
fortyButtonText.x = 150;
fortyButton.addChild(fortyButtonText);
var fortyButtonHelper = new createjs.ButtonHelper(fortyButton);
fortyButton.addEventListener("mouseover", handleFortyButtonMouseOver);
fortyButton.addEventListener("mouseout", handleFortyButtonMouseOut);
fortyButton.addEventListener("click", handleFortyButtonClick);
var fiftyButton = new createjs.Container;
fiftyButton.x = 50;
fiftyButton.y = 480;
heightMenu.addChild(fiftyButton);
fiftyButtonShape = new createjs.Shape;
fiftyButtonShape.graphics.beginFill("#494c53").beginStroke("#5f6064").drawRoundRect(0, 0, 300, 40, 5);
fiftyButton.addChild(fiftyButtonShape);
var fiftyButtonText = new createjs.Text('5 Step Ladder\n50" Platform Height / 48" Clearance', "16px sans-serif", "#fff");
fiftyButtonText.textAlign = "center";
fiftyButtonText.y = 2;
fiftyButtonText.x = 150;
fiftyButton.addChild(fiftyButtonText);
var fiftyButtonHelper = new createjs.ButtonHelper(fiftyButton);
fiftyButton.addEventListener("mouseover", handleFiftyButtonMouseOver);
fiftyButton.addEventListener("mouseout", handleFiftyButtonMouseOut);
fiftyButton.addEventListener("click", handleFiftyButtonClick);
var sixtyButton = new createjs.Container;
sixtyButton.x = 50;
sixtyButton.y = 420;
heightMenu.addChild(sixtyButton);
sixtyButtonShape = new createjs.Shape;
sixtyButtonShape.graphics.beginFill("#494c53").beginStroke("#5f6064").drawRoundRect(0, 0, 300, 40, 5);
sixtyButton.addChild(sixtyButtonShape);
var sixtyButtonText = new createjs.Text('6 Step Ladder\n60" Platform Height / 58" Clearance', "16px sans-serif", "#fff");
sixtyButtonText.textAlign = "center";
sixtyButtonText.y = 2;
sixtyButtonText.x = 150;
sixtyButton.addChild(sixtyButtonText);
var sixtyButtonHelper = new createjs.ButtonHelper(sixtyButton);
sixtyButton.addEventListener("mouseover", handleSixtyButtonMouseOver);
sixtyButton.addEventListener("mouseout", handleSixtyButtonMouseOut);
sixtyButton.addEventListener("click", handleSixtyButtonClick);
var seventyButton = new createjs.Container;
seventyButton.x = 50;
seventyButton.y = 360;
seventyButtonShape = new createjs.Shape;
seventyButtonShape.graphics.beginFill("#494c53").beginStroke("#5f6064").drawRoundRect(0, 0, 300, 40, 5);
seventyButton.addChild(seventyButtonShape);
var seventyButtonText = new createjs.Text('7 Step Ladder\n70" Platform Height / 68" Clearance', "16px sans-serif", "#fff");
seventyButtonText.textAlign = "center";
seventyButtonText.y = 2;
seventyButtonText.x = 150;
seventyButton.addChild(seventyButtonText);
heightMenu.addChild(seventyButton);
var seventyButtonHelper = new createjs.ButtonHelper(seventyButton);
seventyButton.addEventListener("mouseover", handleSeventyButtonMouseOver);
seventyButton.addEventListener("mouseout", handleSeventyButtonMouseOut);
seventyButton.addEventListener("click", handleSeventyButtonClick);
var eightyButton = new createjs.Container;
eightyButton.x = 50;
eightyButton.y = 300;
eightyButtonShape = new createjs.Shape;
eightyButtonShape.graphics.beginFill("#494c53").beginStroke("#5f6064").drawRoundRect(0, 0, 300, 40, 5);
eightyButton.addChild(eightyButtonShape);
var eightyButtonText = new createjs.Text('8 Step Ladder\n80" Platform Height / 78" Clearance', "16px sans-serif", "#fff");
eightyButtonText.textAlign = "center";
eightyButtonText.y = 2;
eightyButtonText.x = 150;
eightyButton.addChild(eightyButtonText);
heightMenu.addChild(eightyButton);
var eightyButtonHelper = new createjs.ButtonHelper(eightyButton);
eightyButton.addEventListener("mouseover", handleEightyButtonMouseOver);
eightyButton.addEventListener("mouseout", handleEightyButtonMouseOut);
eightyButton.addEventListener("click", handleEightyButtonClick);
var ninetyButton = new createjs.Container;
ninetyButton.x = 50;
ninetyButton.y = 240;
ninetyButtonShape = new createjs.Shape;
ninetyButtonShape.graphics.beginFill("#494c53").beginStroke("#5f6064").drawRoundRect(0, 0, 300, 40, 5);
ninetyButton.addChild(ninetyButtonShape);
var ninetyButtonText = new createjs.Text('9 Step Ladder\n90" Platform Height / 88" Clearance', "16px sans-serif", "#fff");
ninetyButtonText.textAlign = "center";
ninetyButtonText.y = 2;
ninetyButtonText.x = 150;
ninetyButton.addChild(ninetyButtonText);
heightMenu.addChild(ninetyButton);
var ninetyButtonHelper = new createjs.ButtonHelper(ninetyButton);
ninetyButton.addEventListener("mouseover", handleNinetyButtonMouseOver);
ninetyButton.addEventListener("mouseout", handleNinetyButtonMouseOut);
ninetyButton.addEventListener("click", handleNinetyButtonClick);
stepOneHighlightShape = new createjs.Shape;
stepOneHighlightShape.graphics.beginFill("rgba(255,192,0,0.8)");
stepOneHighlightShape.graphics.moveTo(20, 577);
stepOneHighlightShape.graphics.lineTo(128, 577);
stepOneHighlightShape.graphics.lineTo(130, 597);
stepOneHighlightShape.graphics.lineTo(130, 605);
stepOneHighlightShape.graphics.lineTo(18, 605);
stepOneHighlightShape.graphics.lineTo(18, 597);
stepOneHighlightShape.graphics.lineTo(20, 577);
ladderPictureContainer.addChild(stepOneHighlightShape);
stepTwoHighlightShape = new createjs.Shape;
stepTwoHighlightShape.graphics.beginFill("rgba(255,192,0,0.8)");
stepTwoHighlightShape.graphics.moveTo(20, 530);
stepTwoHighlightShape.graphics.lineTo(128, 530);
stepTwoHighlightShape.graphics.lineTo(130, 548);
stepTwoHighlightShape.graphics.lineTo(130, 557);
stepTwoHighlightShape.graphics.lineTo(18, 557);
stepTwoHighlightShape.graphics.lineTo(18, 548);
stepTwoHighlightShape.graphics.lineTo(20, 530);
ladderPictureContainer.addChild(stepTwoHighlightShape);
stepThreeHighlightShape = new createjs.Shape;
stepThreeHighlightShape.graphics.beginFill("rgba(255,192,0,0.8)");
stepThreeHighlightShape.graphics.moveTo(20, 484);
stepThreeHighlightShape.graphics.lineTo(128, 484);
stepThreeHighlightShape.graphics.lineTo(130, 500);
stepThreeHighlightShape.graphics.lineTo(130, 510);
stepThreeHighlightShape.graphics.lineTo(18, 510);
stepThreeHighlightShape.graphics.lineTo(18, 500);
stepThreeHighlightShape.graphics.lineTo(20, 484);
ladderPictureContainer.addChild(stepThreeHighlightShape);
stepFourHighlightShape = new createjs.Shape;
stepFourHighlightShape.graphics.beginFill("rgba(255,192,0,0.8)");
stepFourHighlightShape.graphics.moveTo(20, 438);
stepFourHighlightShape.graphics.lineTo(128, 438);
stepFourHighlightShape.graphics.lineTo(130, 450);
stepFourHighlightShape.graphics.lineTo(130, 460);
stepFourHighlightShape.graphics.lineTo(18, 460);
stepFourHighlightShape.graphics.lineTo(18, 450);
stepFourHighlightShape.graphics.lineTo(20, 438);
ladderPictureContainer.addChild(stepFourHighlightShape);
stepFiveHighlightShape = new createjs.Shape;
stepFiveHighlightShape.graphics.beginFill("rgba(255,192,0,0.8)");
stepFiveHighlightShape.graphics.moveTo(20, 391);
stepFiveHighlightShape.graphics.lineTo(128, 391);
stepFiveHighlightShape.graphics.lineTo(130, 403);
stepFiveHighlightShape.graphics.lineTo(130, 413);
stepFiveHighlightShape.graphics.lineTo(18, 413);
stepFiveHighlightShape.graphics.lineTo(18, 403);
stepFiveHighlightShape.graphics.lineTo(20, 391);
ladderPictureContainer.addChild(stepFiveHighlightShape);
stepSixHighlightShape = new createjs.Shape;
stepSixHighlightShape.graphics.beginFill("rgba(255,192,0,0.8)");
stepSixHighlightShape.graphics.moveTo(21, 343);
stepSixHighlightShape.graphics.lineTo(129, 343);
stepSixHighlightShape.graphics.lineTo(130, 355);
stepSixHighlightShape.graphics.lineTo(130, 364);
stepSixHighlightShape.graphics.lineTo(20, 364);
stepSixHighlightShape.graphics.lineTo(20, 355);
stepSixHighlightShape.graphics.lineTo(21, 343);
ladderPictureContainer.addChild(stepSixHighlightShape);
stepSevenHighlightShape = new createjs.Shape;
stepSevenHighlightShape.graphics.beginFill("rgba(255,192,0,0.8)");
stepSevenHighlightShape.graphics.moveTo(22, 298);
stepSevenHighlightShape.graphics.lineTo(126, 298);
stepSevenHighlightShape.graphics.lineTo(130, 307);
stepSevenHighlightShape.graphics.lineTo(130, 316);
stepSevenHighlightShape.graphics.lineTo(20, 316);
stepSevenHighlightShape.graphics.lineTo(20, 307);
stepSevenHighlightShape.graphics.lineTo(22, 298);
ladderPictureContainer.addChild(stepSevenHighlightShape);
stepEightHighlightShape = new createjs.Shape;
stepEightHighlightShape.graphics.beginFill("rgba(255,192,0,0.8)");
stepEightHighlightShape.graphics.moveTo(22, 252);
stepEightHighlightShape.graphics.lineTo(124, 252);
stepEightHighlightShape.graphics.lineTo(130, 258);
stepEightHighlightShape.graphics.lineTo(130, 267);
stepEightHighlightShape.graphics.lineTo(16, 267);
stepEightHighlightShape.graphics.lineTo(16, 258);
stepEightHighlightShape.graphics.lineTo(22, 252);
ladderPictureContainer.addChild(stepEightHighlightShape);
stepNineHighlightShape = new createjs.Shape;
stepNineHighlightShape.graphics.beginFill("rgba(255,192,0,0.8)");
stepNineHighlightShape.graphics.moveTo(22, 204);
stepNineHighlightShape.graphics.lineTo(126, 204);
stepNineHighlightShape.graphics.lineTo(132, 210);
stepNineHighlightShape.graphics.lineTo(132, 220);
stepNineHighlightShape.graphics.lineTo(16, 220);
stepNineHighlightShape.graphics.lineTo(16, 210);
stepNineHighlightShape.graphics.lineTo(22, 204);
ladderPictureContainer.addChild(stepNineHighlightShape);
ladderPictureContainer.scaleX = ladderPictureContainer.scaleY = .9;
stepOneHighlightShape.visible = false;
stepTwoHighlightShape.visible = false;
stepThreeHighlightShape.visible = false;
stepFourHighlightShape.visible = false;
stepFiveHighlightShape.visible = false;
stepSixHighlightShape.visible = false;
stepSevenHighlightShape.visible = false;
stepEightHighlightShape.visible = false;
stepNineHighlightShape.visible = false;
var backButton = new createjs.Container;
backButton.x = -430;
backButton.y = 50;
heightMenu.addChild(backButton);
backButtonShape = new createjs.Shape;
backButtonShape.graphics.beginFill("#494c53").beginStroke("#5f6064").drawRoundRect(0, 0, 60, 40, 5);
backButton.addChild(backButtonShape);
var backButtonText = new createjs.Text("Back", "16px sans-serif", "#fff");
backButtonText.textAlign = "center";
backButtonText.y = 10;
backButtonText.x = 30;
backButton.addChild(backButtonText);
var backButtonHelper = new createjs.ButtonHelper(backButton);
backButton.addEventListener("click", handleBackButtonClick);
return heightMenu
}
function MA_HeightMenu() {
var heightMenu = new createjs.Container;
var triarcLogo = new createjs.Bitmap("assets/TriArcLogo.jpg");
triarcLogo.x = -390;
triarcLogo.y = 720;
heightMenu.addChild(triarcLogo);
var graingerLogo = new createjs.Bitmap("assets/GraingerLogo.jpg");
graingerLogo.x = 160;
graingerLogo.y = 720;
heightMenu.addChild(graingerLogo);
var udesignLogo = new createjs.Bitmap("assets/UDesignLogo.jpg");
udesignLogo.x = -178;
udesignLogo.y = 30;
heightMenu.addChild(udesignLogo);
var udesignLogoBorder = new createjs.Shape;
udesignLogoBorder.graphics.beginStroke("#e17a0f").drawRoundRect(-184, 20, 368, 110, 5);
heightMenu.addChild(udesignLogoBorder);
var heightInstructionText = new createjs.Text("Select a Ladder", "30px sans-serif", "#444");
heightInstructionText.textAlign = "center";
heightInstructionText.x = 200;
heightInstructionText.y = 160;
heightMenu.addChild(heightInstructionText);
var ladderPictureContainer = new createjs.Container;
ladderPictureContainer.x = -250;
ladderPictureContainer.y = 140;
heightMenu.addChild(ladderPictureContainer);
var ladderPicture = new createjs.Bitmap("assets/maxAccessSelectLadder.png");
ladderPictureContainer.addChild(ladderPicture);
var twentyButton = new createjs.Container;
twentyButton.x = 50;
twentyButton.y = 675;
heightMenu.addChild(twentyButton);
twentyButtonShape = new createjs.Shape;
twentyButtonShape.graphics.beginFill("#494c53").beginStroke("#5f6064").drawRoundRect(0, 0, 300, 40, 5);
twentyButton.addChild(twentyButtonShape);
var twentyButtonText = new createjs.Text('2 Step Ladder\n20" Platform Height / 18" Clearance', "16px sans-serif", "#fff");
twentyButtonText.textAlign = "center";
twentyButtonText.y = 2;
twentyButtonText.x = 150;
twentyButton.addChild(twentyButtonText);
var twentyButtonHelper = new createjs.ButtonHelper(twentyButton);
twentyButton.addEventListener("mouseover", handleTwentyButtonMouseOver);
twentyButton.addEventListener("mouseout", handleTwentyButtonMouseOut);
twentyButton.addEventListener("click", handleTwentyButtonClick);
var thirtyButton = new createjs.Container;
thirtyButton.x = 50;
thirtyButton.y = 625;
heightMenu.addChild(thirtyButton);
thirtyButtonShape = new createjs.Shape;
thirtyButtonShape.graphics.beginFill("#494c53").beginStroke("#5f6064").drawRoundRect(0, 0, 300, 40, 5);
thirtyButton.addChild(thirtyButtonShape);
var thirtyButtonText = new createjs.Text('3 Step Ladder\n30" Platform Height / 28" Clearance', "16px sans-serif", "#fff");
thirtyButtonText.textAlign = "center";
thirtyButtonText.y = 2;
thirtyButtonText.x = 150;
thirtyButton.addChild(thirtyButtonText);
var thirtyButtonHelper = new createjs.ButtonHelper(thirtyButton);
thirtyButton.addEventListener("mouseover", handleThirtyButtonMouseOver);
thirtyButton.addEventListener("mouseout", handleThirtyButtonMouseOut);
thirtyButton.addEventListener("click", handleThirtyButtonClick);
var fortyButton = new createjs.Container;
fortyButton.x = 50;
fortyButton.y = 575;
heightMenu.addChild(fortyButton);
fortyButtonShape = new createjs.Shape;
fortyButtonShape.graphics.beginFill("#494c53").beginStroke("#5f6064").drawRoundRect(0, 0, 300, 40, 5);
fortyButton.addChild(fortyButtonShape);
var fortyButtonText = new createjs.Text('4 Step Ladder\n40" Platform Height / 38" Clearance', "16px sans-serif", "#fff");
fortyButtonText.textAlign = "center";
fortyButtonText.y = 2;
fortyButtonText.x = 150;
fortyButton.addChild(fortyButtonText);
var fortyButtonHelper = new createjs.ButtonHelper(fortyButton);
fortyButton.addEventListener("mouseover", handleFortyButtonMouseOver);
fortyButton.addEventListener("mouseout", handleFortyButtonMouseOut);
fortyButton.addEventListener("click", handleFortyButtonClick);
var fiftyButton = new createjs.Container;
fiftyButton.x = 50;
fiftyButton.y = 525;
heightMenu.addChild(fiftyButton);
fiftyButtonShape = new createjs.Shape;
fiftyButtonShape.graphics.beginFill("#494c53").beginStroke("#5f6064").drawRoundRect(0, 0, 300, 40, 5);
fiftyButton.addChild(fiftyButtonShape);
var fiftyButtonText = new createjs.Text('5 Step Ladder\n50" Platform Height / 48" Clearance', "16px sans-serif", "#fff");
fiftyButtonText.textAlign = "center";
fiftyButtonText.y = 2;
fiftyButtonText.x = 150;
fiftyButton.addChild(fiftyButtonText);
var fiftyButtonHelper = new createjs.ButtonHelper(fiftyButton);
fiftyButton.addEventListener("mouseover", handleFiftyButtonMouseOver);
fiftyButton.addEventListener("mouseout", handleFiftyButtonMouseOut);
fiftyButton.addEventListener("click", handleFiftyButtonClick);
var sixtyButton = new createjs.Container;
sixtyButton.x = 50;
sixtyButton.y = 475;
heightMenu.addChild(sixtyButton);
sixtyButtonShape = new createjs.Shape;
sixtyButtonShape.graphics.beginFill("#494c53").beginStroke("#5f6064").drawRoundRect(0, 0, 300, 40, 5);
sixtyButton.addChild(sixtyButtonShape);
var sixtyButtonText = new createjs.Text('6 Step Ladder\n60" Platform Height / 58" Clearance', "16px sans-serif", "#fff");
sixtyButtonText.textAlign = "center";
sixtyButtonText.y = 2;
sixtyButtonText.x = 150;
sixtyButton.addChild(sixtyButtonText);
var sixtyButtonHelper = new createjs.ButtonHelper(sixtyButton);
sixtyButton.addEventListener("mouseover", handleSixtyButtonMouseOver);
sixtyButton.addEventListener("mouseout", handleSixtyButtonMouseOut);
sixtyButton.addEventListener("click", handleSixtyButtonClick);
var seventyButton = new createjs.Container;
seventyButton.x = 50;
seventyButton.y = 425;
seventyButtonShape = new createjs.Shape;
seventyButtonShape.graphics.beginFill("#494c53").beginStroke("#5f6064").drawRoundRect(0, 0, 300, 40, 5);
seventyButton.addChild(seventyButtonShape);
var seventyButtonText = new createjs.Text('7 Step Ladder\n70" Platform Height / 68" Clearance', "16px sans-serif", "#fff");
seventyButtonText.textAlign = "center";
seventyButtonText.y = 2;
seventyButtonText.x = 150;
seventyButton.addChild(seventyButtonText);
heightMenu.addChild(seventyButton);
var seventyButtonHelper = new createjs.ButtonHelper(seventyButton);
seventyButton.addEventListener("mouseover", handleSeventyButtonMouseOver);
seventyButton.addEventListener("mouseout", handleSeventyButtonMouseOut);
seventyButton.addEventListener("click", handleSeventyButtonClick);
var eightyButton = new createjs.Container;
eightyButton.x = 50;
eightyButton.y = 375;
eightyButtonShape = new createjs.Shape;
eightyButtonShape.graphics.beginFill("#494c53").beginStroke("#5f6064").drawRoundRect(0, 0, 300, 40, 5);
eightyButton.addChild(eightyButtonShape);
var eightyButtonText = new createjs.Text('8 Step Ladder\n80" Platform Height / 78" Clearance', "16px sans-serif", "#fff");
eightyButtonText.textAlign = "center";
eightyButtonText.y = 2;
eightyButtonText.x = 150;
eightyButton.addChild(eightyButtonText);
heightMenu.addChild(eightyButton);
var eightyButtonHelper = new createjs.ButtonHelper(eightyButton);
eightyButton.addEventListener("mouseover", handleEightyButtonMouseOver);
eightyButton.addEventListener("mouseout", handleEightyButtonMouseOut);
eightyButton.addEventListener("click", handleEightyButtonClick);
var ninetyButton = new createjs.Container;
ninetyButton.x = 50;
ninetyButton.y = 325;
ninetyButtonShape = new createjs.Shape;
ninetyButtonShape.graphics.beginFill("#494c53").beginStroke("#5f6064").drawRoundRect(0, 0, 300, 40, 5);
ninetyButton.addChild(ninetyButtonShape);
var ninetyButtonText = new createjs.Text('9 Step Ladder\n90" Platform Height / 88" Clearance', "16px sans-serif", "#fff");
ninetyButtonText.textAlign = "center";
ninetyButtonText.y = 2;
ninetyButtonText.x = 150;
ninetyButton.addChild(ninetyButtonText);
heightMenu.addChild(ninetyButton);
var ninetyButtonHelper = new createjs.ButtonHelper(ninetyButton);
ninetyButton.addEventListener("mouseover", handleNinetyButtonMouseOver);
ninetyButton.addEventListener("mouseout", handleNinetyButtonMouseOut);
ninetyButton.addEventListener("click", handleNinetyButtonClick);
var hundredButton = new createjs.Container;
hundredButton.x = 50;
hundredButton.y = 275;
hundredButtonShape = new createjs.Shape;
hundredButtonShape.graphics.beginFill("#494c53").beginStroke("#5f6064").drawRoundRect(0, 0, 300, 40, 5);
hundredButton.addChild(hundredButtonShape);
var hundredButtonText = new createjs.Text('10 Step Ladder\n100" Platform Height / 98" Clearance', "16px sans-serif", "#fff");
hundredButtonText.textAlign = "center";
hundredButtonText.y = 2;
hundredButtonText.x = 150;
hundredButton.addChild(hundredButtonText);
heightMenu.addChild(hundredButton);
var hundredButtonHelper = new createjs.ButtonHelper(hundredButton);
hundredButton.addEventListener("mouseover", handleHundredButtonMouseOver);
hundredButton.addEventListener("mouseout", handleHundredButtonMouseOut);
hundredButton.addEventListener("click", handleHundredButtonClick);
var hundredTenButton = new createjs.Container;
hundredTenButton.x = 50;
hundredTenButton.y = 225;
hundredTenButtonShape = new createjs.Shape;
hundredTenButtonShape.graphics.beginFill("#494c53").beginStroke("#5f6064").drawRoundRect(0, 0, 300, 40, 5);
hundredTenButton.addChild(hundredTenButtonShape);
var hundredTenButtonText = new createjs.Text('11 Step Ladder\n110" Platform Height / 108" Clearance', "16px sans-serif", "#fff");
hundredTenButtonText.textAlign = "center";
hundredTenButtonText.y = 2;
hundredTenButtonText.x = 150;
hundredTenButton.addChild(hundredTenButtonText);
heightMenu.addChild(hundredTenButton);
var hundredTenButtonHelper = new createjs.ButtonHelper(hundredTenButton);
hundredTenButton.addEventListener("mouseover", handleHundredTenButtonMouseOver);
hundredTenButton.addEventListener("mouseout", handleHundredTenButtonMouseOut);
hundredTenButton.addEventListener("click", handleHundredTenButtonClick);
stepOneHighlightShape = new createjs.Shape;
stepOneHighlightShape.graphics.beginFill("rgba(255,192,0,0.8)");
stepOneHighlightShape.graphics.moveTo(20, 600);
stepOneHighlightShape.graphics.lineTo(128, 600);
stepOneHighlightShape.graphics.lineTo(130, 615);
stepOneHighlightShape.graphics.lineTo(130, 625);
stepOneHighlightShape.graphics.lineTo(18, 625);
stepOneHighlightShape.graphics.lineTo(18, 615);
stepOneHighlightShape.graphics.lineTo(20, 600);
ladderPictureContainer.addChild(stepOneHighlightShape);
stepTwoHighlightShape = new createjs.Shape;
stepTwoHighlightShape.graphics.beginFill("rgba(255,192,0,0.8)");
stepTwoHighlightShape.graphics.moveTo(20, 548);
stepTwoHighlightShape.graphics.lineTo(128, 548);
stepTwoHighlightShape.graphics.lineTo(129, 562);
stepTwoHighlightShape.graphics.lineTo(129, 571);
stepTwoHighlightShape.graphics.lineTo(19, 571);
stepTwoHighlightShape.graphics.lineTo(19, 562);
stepTwoHighlightShape.graphics.lineTo(20, 548);
ladderPictureContainer.addChild(stepTwoHighlightShape);
stepThreeHighlightShape = new createjs.Shape;
stepThreeHighlightShape.graphics.beginFill("rgba(255,192,0,0.8)");
stepThreeHighlightShape.graphics.moveTo(20, 498);
stepThreeHighlightShape.graphics.lineTo(127, 498);
stepThreeHighlightShape.graphics.lineTo(127, 510);
stepThreeHighlightShape.graphics.lineTo(127, 521);
stepThreeHighlightShape.graphics.lineTo(19, 521);
stepThreeHighlightShape.graphics.lineTo(19, 510);
stepThreeHighlightShape.graphics.lineTo(20, 498);
ladderPictureContainer.addChild(stepThreeHighlightShape);
stepFourHighlightShape = new createjs.Shape;
stepFourHighlightShape.graphics.beginFill("rgba(255,192,0,0.8)");
stepFourHighlightShape.graphics.moveTo(20, 448);
stepFourHighlightShape.graphics.lineTo(126, 448);
stepFourHighlightShape.graphics.lineTo(127, 460);
stepFourHighlightShape.graphics.lineTo(127, 470);
stepFourHighlightShape.graphics.lineTo(18, 470);
stepFourHighlightShape.graphics.lineTo(18, 460);
stepFourHighlightShape.graphics.lineTo(20, 448);
ladderPictureContainer.addChild(stepFourHighlightShape);
stepFiveHighlightShape = new createjs.Shape;
stepFiveHighlightShape.graphics.beginFill("rgba(255,192,0,0.8)");
stepFiveHighlightShape.graphics.moveTo(22, 401);
stepFiveHighlightShape.graphics.lineTo(125, 401);
stepFiveHighlightShape.graphics.lineTo(126, 412);
stepFiveHighlightShape.graphics.lineTo(126, 422);
stepFiveHighlightShape.graphics.lineTo(21, 422);
stepFiveHighlightShape.graphics.lineTo(21, 412);
stepFiveHighlightShape.graphics.lineTo(22, 391);
ladderPictureContainer.addChild(stepFiveHighlightShape);
stepSixHighlightShape = new createjs.Shape;
stepSixHighlightShape.graphics.beginFill("rgba(255,192,0,0.8)");
stepSixHighlightShape.graphics.moveTo(25, 356);
stepSixHighlightShape.graphics.lineTo(123, 356);
stepSixHighlightShape.graphics.lineTo(126, 366);
stepSixHighlightShape.graphics.lineTo(126, 374);
stepSixHighlightShape.graphics.lineTo(22, 374);
stepSixHighlightShape.graphics.lineTo(22, 366);
stepSixHighlightShape.graphics.lineTo(25, 356);
ladderPictureContainer.addChild(stepSixHighlightShape);
stepSevenHighlightShape = new createjs.Shape;
stepSevenHighlightShape.graphics.beginFill("rgba(255,192,0,0.8)");
stepSevenHighlightShape.graphics.moveTo(24, 312);
stepSevenHighlightShape.graphics.lineTo(123, 312);
stepSevenHighlightShape.graphics.lineTo(125, 320);
stepSevenHighlightShape.graphics.lineTo(125, 330);
stepSevenHighlightShape.graphics.lineTo(22, 330);
stepSevenHighlightShape.graphics.lineTo(22, 320);
stepSevenHighlightShape.graphics.lineTo(24, 312);
ladderPictureContainer.addChild(stepSevenHighlightShape);
stepEightHighlightShape = new createjs.Shape;
stepEightHighlightShape.graphics.beginFill("rgba(255,192,0,0.8)");
stepEightHighlightShape.graphics.moveTo(25, 268);
stepEightHighlightShape.graphics.lineTo(122, 268);
stepEightHighlightShape.graphics.lineTo(124, 276);
stepEightHighlightShape.graphics.lineTo(124, 285);
stepEightHighlightShape.graphics.lineTo(23, 285);
stepEightHighlightShape.graphics.lineTo(23, 276);
stepEightHighlightShape.graphics.lineTo(25, 268);
ladderPictureContainer.addChild(stepEightHighlightShape);
stepNineHighlightShape = new createjs.Shape;
stepNineHighlightShape.graphics.beginFill("rgba(255,192,0,0.8)");
stepNineHighlightShape.graphics.moveTo(26, 225);
stepNineHighlightShape.graphics.lineTo(122, 225);
stepNineHighlightShape.graphics.lineTo(124, 233);
stepNineHighlightShape.graphics.lineTo(124, 242);
stepNineHighlightShape.graphics.lineTo(24, 242);
stepNineHighlightShape.graphics.lineTo(24, 233);
stepNineHighlightShape.graphics.lineTo(26, 225);
ladderPictureContainer.addChild(stepNineHighlightShape);
stepTenHighlightShape = new createjs.Shape;
stepTenHighlightShape.graphics.beginFill("rgba(255,192,0,0.8)");
stepTenHighlightShape.graphics.moveTo(26, 184);
stepTenHighlightShape.graphics.lineTo(120, 184);
stepTenHighlightShape.graphics.lineTo(123, 190);
stepTenHighlightShape.graphics.lineTo(123, 200);
stepTenHighlightShape.graphics.lineTo(24, 200);
stepTenHighlightShape.graphics.lineTo(24, 190);
stepTenHighlightShape.graphics.lineTo(26, 184);
ladderPictureContainer.addChild(stepTenHighlightShape);
stepElevenHighlightShape = new createjs.Shape;
stepElevenHighlightShape.graphics.beginFill("rgba(255,192,0,0.8)");
stepElevenHighlightShape.graphics.moveTo(26, 142);
stepElevenHighlightShape.graphics.lineTo(120, 142);
stepElevenHighlightShape.graphics.lineTo(122, 150);
stepElevenHighlightShape.graphics.lineTo(122, 158);
stepElevenHighlightShape.graphics.lineTo(24, 158);
stepElevenHighlightShape.graphics.lineTo(24, 150);
stepElevenHighlightShape.graphics.lineTo(26, 142);
ladderPictureContainer.addChild(stepElevenHighlightShape);
ladderPictureContainer.scaleX = ladderPictureContainer.scaleY = .9;
stepOneHighlightShape.visible = false;
stepTwoHighlightShape.visible = false;
stepThreeHighlightShape.visible = false;
stepFourHighlightShape.visible = false;
stepFiveHighlightShape.visible = false;
stepSixHighlightShape.visible = false;
stepSevenHighlightShape.visible = false;
stepEightHighlightShape.visible = false;
stepNineHighlightShape.visible = false;
stepTenHighlightShape.visible = false;
stepElevenHighlightShape.visible = false;
var backButton = new createjs.Container;
backButton.x = -430;
backButton.y = 50;
heightMenu.addChild(backButton);
backButtonShape = new createjs.Shape;
backButtonShape.graphics.beginFill("#494c53").beginStroke("#5f6064").drawRoundRect(0, 0, 60, 40, 5);
backButton.addChild(backButtonShape);
var backButtonText = new createjs.Text("Back", "16px sans-serif", "#fff");
backButtonText.textAlign = "center";
backButtonText.y = 10;
backButtonText.x = 30;
backButton.addChild(backButtonText);
var backButtonHelper = new createjs.ButtonHelper(backButton);
backButton.addEventListener("click", handleBackButtonClick);
return heightMenu
}
function handleBackButtonClick(event) {
showStartMenu()
}
function handleTwentyButtonClick(event) {
setHeight(20);
showSystemOptionsMenu()
}
function handleThirtyButtonClick(event) {
setHeight(30);
showSystemOptionsMenu()
}
function handleFortyButtonClick(event) {
setHeight(40);
showSystemOptionsMenu()
}
function handleFiftyButtonClick(event) {
setHeight(50);
showSystemOptionsMenu()
}
function handleSixtyButtonClick(event) {
setHeight(60);
showSystemOptionsMenu()
}
function handleSeventyButtonClick(event) {
setHeight(70);
showSystemOptionsMenu()
}
function handleEightyButtonClick(event) {
setHeight(80);
showSystemOptionsMenu()
}
function handleNinetyButtonClick(event) {
setHeight(90);
showSystemOptionsMenu()
}
function handleHundredButtonClick(event) {
setHeight(100);
showSystemOptionsMenu()
}
function handleHundredTenButtonClick(event) {
setHeight(110);
showSystemOptionsMenu()
}
function handleTwentyButtonMouseOver(event) {
twentyButtonShape.graphics.beginFill("#ff9e35").beginStroke("#e17a0f").drawRoundRect(0, 0, 300, 40, 5);
stepOneHighlightShape.visible = true;
stepTwoHighlightShape.visible = true
}
function handleTwentyButtonMouseOut(event) {
twentyButtonShape.graphics.beginFill("#494c53").beginStroke("#5f6064").drawRoundRect(0, 0, 300, 40, 5);
stepOneHighlightShape.visible = false;
stepTwoHighlightShape.visible = false
}
function handleThirtyButtonMouseOver(event) {
thirtyButtonShape.graphics.beginFill("#ff9e35").beginStroke("#e17a0f").drawRoundRect(0, 0, 300, 40, 5);
stepOneHighlightShape.visible = true;
stepTwoHighlightShape.visible = true;
stepThreeHighlightShape.visible = true
}
function handleThirtyButtonMouseOut(event) {
thirtyButtonShape.graphics.beginFill("#494c53").beginStroke("#5f6064").drawRoundRect(0, 0, 300, 40, 5);
stepOneHighlightShape.visible = false;
stepTwoHighlightShape.visible = false;
stepThreeHighlightShape.visible = false
}
function handleFortyButtonMouseOver(event) {
fortyButtonShape.graphics.beginFill("#ff9e35").beginStroke("#e17a0f").drawRoundRect(0, 0, 300, 40, 5);
stepOneHighlightShape.visible = true;
stepTwoHighlightShape.visible = true;
stepThreeHighlightShape.visible = true;
stepFourHighlightShape.visible = true
}
function handleFortyButtonMouseOut(event) {
fortyButtonShape.graphics.beginFill("#494c53").beginStroke("#5f6064").drawRoundRect(0, 0, 300, 40, 5);
stepOneHighlightShape.visible = false;
stepTwoHighlightShape.visible = false;
stepThreeHighlightShape.visible = false;
stepFourHighlightShape.visible = false
}
function handleFiftyButtonMouseOver(event) {
fiftyButtonShape.graphics.beginFill("#ff9e35").beginStroke("#e17a0f").drawRoundRect(0, 0, 300, 40, 5);
stepOneHighlightShape.visible = true;
stepTwoHighlightShape.visible = true;
stepThreeHighlightShape.visible = true;
stepFourHighlightShape.visible = true;
stepFiveHighlightShape.visible = true
}
function handleFiftyButtonMouseOut(event) {
fiftyButtonShape.graphics.beginFill("#494c53").beginStroke("#5f6064").drawRoundRect(0, 0, 300, 40, 5);
stepOneHighlightShape.visible = false;
stepTwoHighlightShape.visible = false;
stepThreeHighlightShape.visible = false;
stepFourHighlightShape.visible = false;
stepFiveHighlightShape.visible = false
}
function handleSixtyButtonMouseOver(event) {
sixtyButtonShape.graphics.beginFill("#ff9e35").beginStroke("#e17a0f").drawRoundRect(0, 0, 300, 40, 5);
stepOneHighlightShape.visible = true;
stepTwoHighlightShape.visible = true;
stepThreeHighlightShape.visible = true;
stepFourHighlightShape.visible = true;
stepFiveHighlightShape.visible = true;
stepSixHighlightShape.visible = true
}
function handleSixtyButtonMouseOut(event) {
sixtyButtonShape.graphics.beginFill("#494c53").beginStroke("#5f6064").drawRoundRect(0, 0, 300, 40, 5);
stepOneHighlightShape.visible = false;
stepTwoHighlightShape.visible = false;
stepThreeHighlightShape.visible = false;
stepFourHighlightShape.visible = false;
stepFiveHighlightShape.visible = false;
stepSixHighlightShape.visible = false
}
function handleSeventyButtonMouseOver(event) {
seventyButtonShape.graphics.beginFill("#ff9e35").beginStroke("#e17a0f").drawRoundRect(0, 0, 300, 40, 5);
stepOneHighlightShape.visible = true;
stepTwoHighlightShape.visible = true;
stepThreeHighlightShape.visible = true;
stepFourHighlightShape.visible = true;
stepFiveHighlightShape.visible = true;
stepSixHighlightShape.visible = true;
stepSevenHighlightShape.visible = true
}
function handleSeventyButtonMouseOut(event) {
seventyButtonShape.graphics.beginFill("#494c53").beginStroke("#5f6064").drawRoundRect(0, 0, 300, 40, 5);
stepOneHighlightShape.visible = false;
stepTwoHighlightShape.visible = false;
stepThreeHighlightShape.visible = false;
stepFourHighlightShape.visible = false;
stepFiveHighlightShape.visible = false;
stepSixHighlightShape.visible = false;
stepSevenHighlightShape.visible = false
}
function handleEightyButtonMouseOver(event) {
eightyButtonShape.graphics.beginFill("#ff9e35").beginStroke("#e17a0f").drawRoundRect(0, 0, 300, 40, 5);
stepOneHighlightShape.visible = true;
stepTwoHighlightShape.visible = true;
stepThreeHighlightShape.visible = true;
stepFourHighlightShape.visible = true;
stepFiveHighlightShape.visible = true;
stepSixHighlightShape.visible = true;
stepSevenHighlightShape.visible = true;
stepEightHighlightShape.visible = true
}
function handleEightyButtonMouseOut(event) {
eightyButtonShape.graphics.beginFill("#494c53").beginStroke("#5f6064").drawRoundRect(0, 0, 300, 40, 5);
stepOneHighlightShape.visible = false;
stepTwoHighlightShape.visible = false;
stepThreeHighlightShape.visible = false;
stepFourHighlightShape.visible = false;
stepFiveHighlightShape.visible = false;
stepSixHighlightShape.visible = false;
stepSevenHighlightShape.visible = false;
stepEightHighlightShape.visible = false
}
function handleNinetyButtonMouseOver(event) {
ninetyButtonShape.graphics.beginFill("#ff9e35").beginStroke("#e17a0f").drawRoundRect(0, 0, 300, 40, 5);
stepOneHighlightShape.visible = true;
stepTwoHighlightShape.visible = true;
stepThreeHighlightShape.visible = true;
stepFourHighlightShape.visible = true;
stepFiveHighlightShape.visible = true;
stepSixHighlightShape.visible = true;
stepSevenHighlightShape.visible = true;
stepEightHighlightShape.visible = true;
stepNineHighlightShape.visible = true
}
function handleNinetyButtonMouseOut(event) {
ninetyButtonShape.graphics.beginFill("#494c53").beginStroke("#5f6064").drawRoundRect(0, 0, 300, 40, 5);
stepOneHighlightShape.visible = false;
stepTwoHighlightShape.visible = false;
stepThreeHighlightShape.visible = false;
stepFourHighlightShape.visible = false;
stepFiveHighlightShape.visible = false;
stepSixHighlightShape.visible = false;
stepSevenHighlightShape.visible = false;
stepEightHighlightShape.visible = false;
stepNineHighlightShape.visible = false
}
function handleHundredButtonMouseOver(event) {
hundredButtonShape.graphics.beginFill("#ff9e35").beginStroke("#e17a0f").drawRoundRect(0, 0, 300, 40, 5);
stepOneHighlightShape.visible = true;
stepTwoHighlightShape.visible = true;
stepThreeHighlightShape.visible = true;
stepFourHighlightShape.visible = true;
stepFiveHighlightShape.visible = true;
stepSixHighlightShape.visible = true;
stepSevenHighlightShape.visible = true;
stepEightHighlightShape.visible = true;
stepNineHighlightShape.visible = true;
stepTenHighlightShape.visible = true
}
function handleHundredButtonMouseOut(event) {
hundredButtonShape.graphics.beginFill("#494c53").beginStroke("#5f6064").drawRoundRect(0, 0, 300, 40, 5);
stepOneHighlightShape.visible = false;
stepTwoHighlightShape.visible = false;
stepThreeHighlightShape.visible = false;
stepFourHighlightShape.visible = false;
stepFiveHighlightShape.visible = false;
stepSixHighlightShape.visible = false;
stepSevenHighlightShape.visible = false;
stepEightHighlightShape.visible = false;
stepNineHighlightShape.visible = false;
stepTenHighlightShape.visible = false
}
function handleHundredTenButtonMouseOver(event) {
hundredTenButtonShape.graphics.beginFill("#ff9e35").beginStroke("#e17a0f").drawRoundRect(0, 0, 300, 40, 5);
stepOneHighlightShape.visible = true;
stepTwoHighlightShape.visible = true;
stepThreeHighlightShape.visible = true;
stepFourHighlightShape.visible = true;
stepFiveHighlightShape.visible = true;
stepSixHighlightShape.visible = true;
stepSevenHighlightShape.visible = true;
stepEightHighlightShape.visible = true;
stepNineHighlightShape.visible = true;
stepTenHighlightShape.visible = true;
stepElevenHighlightShape.visible = true
}
function handleHundredTenButtonMouseOut(event) {
hundredTenButtonShape.graphics.beginFill("#494c53").beginStroke("#5f6064").drawRoundRect(0, 0, 300, 40, 5);
stepOneHighlightShape.visible = false;
stepTwoHighlightShape.visible = false;
stepThreeHighlightShape.visible = false;
stepFourHighlightShape.visible = false;
stepFiveHighlightShape.visible = false;
stepSixHighlightShape.visible = false;
stepSevenHighlightShape.visible = false;
stepEightHighlightShape.visible = false;
stepNineHighlightShape.visible = false;
stepTenHighlightShape.visible = false;
stepElevenHighlightShape.visible = false
}
function InclineMenu(hide75degrees) {
var inclineMenu = new createjs.Container;
var triarcLogo = new createjs.Bitmap("assets/TriArcLogo.jpg");
triarcLogo.x = -390;
triarcLogo.y = 720;
inclineMenu.addChild(triarcLogo);
var graingerLogo = new createjs.Bitmap("assets/GraingerLogo.jpg");
graingerLogo.x = 160;
graingerLogo.y = 720;
inclineMenu.addChild(graingerLogo);
var udesignLogo = new createjs.Bitmap("assets/UDesignLogo.jpg");
udesignLogo.x = -178;
udesignLogo.y = 30;
inclineMenu.addChild(udesignLogo);
var udesignLogoBorder = new createjs.Shape;
udesignLogoBorder.graphics.beginStroke("#e17a0f").drawRoundRect(-184, 20, 368, 110, 5);
inclineMenu.addChild(udesignLogoBorder);
var inclineInstructionText = new createjs.Text("Select an Incline for the First Ladder", "30px sans-serif", "#444");
inclineInstructionText.textAlign = "center";
inclineInstructionText.y = 130;
inclineMenu.addChild(inclineInstructionText);
var fiftyDegreesButton = new createjs.Container;
fiftyDegreesButton.x = -146;
fiftyDegreesButton.y = 175;
inclineMenu.addChild(fiftyDegreesButton);
var fiftyDegreesButtonShape = new createjs.Shape;
fiftyDegreesButtonShape.graphics.beginStroke("#e17a0f").drawRoundRect(-5, -5, 300, 185, 5);
fiftyDegreesButton.addChild(fiftyDegreesButtonShape);
var fiftyDegreesButtonGraphic = new createjs.Bitmap("assets/50degicon.jpg");
fiftyDegreesButton.addChild(fiftyDegreesButtonGraphic);
var fiftyDegreesButtonHelper = new createjs.ButtonHelper(fiftyDegreesButton);
fiftyDegreesButton.addEventListener("click", handleFiftyDegreesButtonClick);
if (!hide75degrees) {
var seventyFiveDegreesButton = new createjs.Container;
seventyFiveDegreesButton.x = -146;
seventyFiveDegreesButton.y = 375;
inclineMenu.addChild(seventyFiveDegreesButton);
var seventyFiveDegreesButtonShape = new createjs.Shape;
seventyFiveDegreesButtonShape.graphics.beginStroke("#e17a0f").drawRoundRect(-5, -5, 300, 185, 5);
seventyFiveDegreesButton.addChild(seventyFiveDegreesButtonShape);
var seventyFiveDegreesButtonGraphic = new createjs.Bitmap("assets/75degicon.jpg");
seventyFiveDegreesButton.addChild(seventyFiveDegreesButtonGraphic);
var seventyFiveDegreesButtonHelper = new createjs.ButtonHelper(seventyFiveDegreesButton);
seventyFiveDegreesButton.addEventListener("click", handleSeventyFiveDegreesButtonClick)
}
var ninetyDegreesButton = new createjs.Container;
ninetyDegreesButton.x = -146;
ninetyDegreesButton.y = 575;
inclineMenu.addChild(ninetyDegreesButton);
var ninetyDegreesButtonShape = new createjs.Shape;
ninetyDegreesButtonShape.graphics.beginStroke("#e17a0f").drawRoundRect(-5, -5, 300, 185, 5);
ninetyDegreesButton.addChild(ninetyDegreesButtonShape);
var ninetyDegreesButtonGraphic = new createjs.Bitmap("assets/90degicon.jpg");
ninetyDegreesButton.addChild(ninetyDegreesButtonGraphic);
var ninetyDegreesButtonHelper = new createjs.ButtonHelper(ninetyDegreesButton);
ninetyDegreesButton.addEventListener("click", handleNinetyDegreesButtonClick);
if (hide75degrees) {
fiftyDegreesButton.y = 200;
ninetyDegreesButton.y = 400
}
var backButton = new createjs.Container;
backButton.x = -430;
backButton.y = 50;
inclineMenu.addChild(backButton);
backButtonShape = new createjs.Shape;
backButtonShape.graphics.beginFill("#494c53").beginStroke("#5f6064").drawRoundRect(0, 0, 60, 40, 5);
backButton.addChild(backButtonShape);
var backButtonText = new createjs.Text("Back", "16px sans-serif", "#fff");
backButtonText.textAlign = "center";
backButtonText.y = 10;
backButtonText.x = 30;
backButton.addChild(backButtonText);
var backButtonHelper = new createjs.ButtonHelper(backButton);
backButton.addEventListener("click", handleInclineBackButtonClick);
return inclineMenu
}
function handleInclineBackButtonClick(event) {
switch (system) {
case 1:
showHeightMenu();
break;
case 2:
showPlatformTypeMenu();
break;
case 3:
showHeightMenu();
default:
break
}
}
function handleFiftyDegreesButtonClick(event) {
setIncline(50);
showConfigurator()
}
function handleSeventyFiveDegreesButtonClick(event) {
setIncline(75);
showConfigurator()
}
function handleNinetyDegreesButtonClick(event) {
setIncline(90);
showConfigurator()
}
function PlatformSizeMenu() {
var platformSizeMenu = new createjs.Container;
var instructionText = new createjs.Text("Select a Platform Size", "30px sans-serif", "#444");
instructionText.textAlign = "center";
instructionText.y = 30;
platformSizeMenu.addChild(instructionText);
return platformSizeMenu
}
var perforatedButtonShape;
var gripButtonShape;
function PlatformTypeMenu() {
var platformTypeMenu = new createjs.Container;
var triarcLogo = new createjs.Bitmap("assets/TriArcLogo.jpg");
triarcLogo.x = -390;
triarcLogo.y = 720;
platformTypeMenu.addChild(triarcLogo);
var graingerLogo = new createjs.Bitmap("assets/GraingerLogo.jpg");
graingerLogo.x = 160;
graingerLogo.y = 720;
platformTypeMenu.addChild(graingerLogo);
var udesignLogo = new createjs.Bitmap("assets/UDesignLogo.jpg");
udesignLogo.x = -178;
udesignLogo.y = 30;
platformTypeMenu.addChild(udesignLogo);
var udesignLogoBorder = new createjs.Shape;
udesignLogoBorder.graphics.beginStroke("#e17a0f").drawRoundRect(-184, 20, 368, 110, 5);
platformTypeMenu.addChild(udesignLogoBorder);
var platformTypeInstructionText = new createjs.Text("Select a Platform Tread Type", "30px sans-serif", "#444");
platformTypeInstructionText.textAlign = "center";
platformTypeInstructionText.x = 0;
platformTypeInstructionText.y = 180;
platformTypeMenu.addChild(platformTypeInstructionText);
var perforatedButton = new createjs.Container;
perforatedButton.x = -350;
perforatedButton.y = 220;
platformTypeMenu.addChild(perforatedButton);
perforatedButtonShape = new createjs.Shape;
perforatedButtonShape.graphics.beginFill("#494c53").beginStroke("#5f6064").drawRoundRect(0, 0, 300, 260, 5);
perforatedButton.addChild(perforatedButtonShape);
var perforatedButtonImage = new createjs.Bitmap("assets/perforated.jpg");
perforatedButtonImage.scaleX = perforatedButtonImage.scaleY = .5;
perforatedButtonImage.y = 20;
perforatedButtonImage.x = 20;
perforatedButton.addChild(perforatedButtonImage);
var perforatedButtonText = new createjs.Text("Perforated", "16px sans-serif", "#fff");
perforatedButtonText.textAlign = "center";
perforatedButtonText.y = 240;
perforatedButtonText.x = 150;
perforatedButton.addChild(perforatedButtonText);
var perforatedButtonHelper = new createjs.ButtonHelper(perforatedButton);
perforatedButton.addEventListener("mouseover", handleperforatedButtonMouseOver);
perforatedButton.addEventListener("mouseout", handleperforatedButtonMouseOut);
perforatedButton.addEventListener("click", handleperforatedButtonClick);
var gripButton = new createjs.Container;
gripButton.x = 50;
gripButton.y = 220;
platformTypeMenu.addChild(gripButton);
gripButtonShape = new createjs.Shape;
gripButtonShape.graphics.beginFill("#494c53").beginStroke("#5f6064").drawRoundRect(0, 0, 300, 260, 5);
gripButton.addChild(gripButtonShape);
var gripButtonImage = new createjs.Bitmap("assets/grip.jpg");
gripButtonImage.scaleX = gripButtonImage.scaleY = .5;
gripButtonImage.y = 20;
gripButtonImage.x = 20;
gripButton.addChild(gripButtonImage);
var gripButtonText = new createjs.Text("Grip Strut", "16px sans-serif", "#fff");
gripButtonText.textAlign = "center";
gripButtonText.y = 240;
gripButtonText.x = 150;
gripButton.addChild(gripButtonText);
var gripButtonHelper = new createjs.ButtonHelper(gripButton);
gripButton.addEventListener("mouseover", handlegripButtonMouseOver);
gripButton.addEventListener("mouseout", handlegripButtonMouseOut);
gripButton.addEventListener("click", handlegripButtonClick);
var backButton = new createjs.Container;
backButton.x = -430;
backButton.y = 50;
platformTypeMenu.addChild(backButton);
backButtonShape = new createjs.Shape;
backButtonShape.graphics.beginFill("#494c53").beginStroke("#5f6064").drawRoundRect(0, 0, 60, 40, 5);
backButton.addChild(backButtonShape);
var backButtonText = new createjs.Text("Back", "16px sans-serif", "#fff");
backButtonText.textAlign = "center";
backButtonText.y = 10;
backButtonText.x = 30;
backButton.addChild(backButtonText);
var backButtonHelper = new createjs.ButtonHelper(backButton);
backButton.addEventListener("click", handlePTBackButtonClick);
return platformTypeMenu
}
function handlePTBackButtonClick(event) {
showHeightMenu()
}
function handleperforatedButtonClick(event) {
treadType = TreadType.Perforated;
showInclineMenu()
}
function handlegripButtonClick(event) {
treadType = TreadType.Grip;
showInclineMenu()
}
function handleperforatedButtonMouseOver(event) {
perforatedButtonShape.graphics.beginFill("#ff9e35").beginStroke("#e17a0f").drawRoundRect(0, 0, 300, 260, 5)
}
function handleperforatedButtonMouseOut(event) {
perforatedButtonShape.graphics.beginFill("#494c53").beginStroke("#5f6064").drawRoundRect(0, 0, 300, 260, 5)
}
function handlegripButtonMouseOver(event) {
gripButtonShape.graphics.beginFill("#ff9e35").beginStroke("#e17a0f").drawRoundRect(0, 0, 300, 260, 5)
}
function handlegripButtonMouseOut(event) {
gripButtonShape.graphics.beginFill("#494c53").beginStroke("#5f6064").drawRoundRect(0, 0, 300, 260, 5)
}
var selectPartMenu;
var originalPart;
var lastPartAdded;
function SelectPartMenu(part) {
refreshParts();
selectPartMenu = new createjs.Container;
selectPartMenu.originPart = part;
originalPart = part;
selectPartMenu.name = "SELECT_PART_MENU";
if (partsMenuContainer.getChildByName("PART_BUTTONS_CONTAINER")) {
partsMenuContainer.removeChild(partsMenuContainer.getChildByName("PART_BUTTONS_CONTAINER"))
}
var partButtonsContainer = new createjs.Container;
partButtonsContainer.name = "PART_BUTTONS_CONTAINER";
stage.getChildByName("PARTS_MENU_CONTAINER").addChild(partButtonsContainer);
addPartButtons(part, partButtonsContainer);
if ((!part.mountSlotFull || part.partData.rails || part.partData.actsAsLegs && !part.partData.turnpiece) && part.parentPart != null) addRemoveButton();
if (partButtonsContainer.getNumChildren() > 0) {
partsMenuContainerText.text = "Select a part to add"
} else {
partsMenuContainerText.text = ""
}
return selectPartMenu
}
function addRemoveButton() {
var removeButton = new createjs.Container;
removeButton.x = 0;
removeButton.y = 640;
removeButton.name = "REMOVE_BUTTON";
partsMenuContainer.addChild(removeButton);
var removeButtonShape = new createjs.Shape;
removeButtonShape.graphics.beginFill("#ff9e35").beginStroke("#e17a0f").drawRoundRect(0, 0, 260, 60, 5);
removeButton.addChild(removeButtonShape);
var removeButtonText = new createjs.Text("Remove Last Part", "20px sans-serif", "#FFF");
removeButtonText.textAlign = "center";
removeButtonText.x = 130;
removeButtonText.y = 20;
removeButton.addChild(removeButtonText);
var removeButtonHelper = new createjs.ButtonHelper(removeButton);
removeButton.addEventListener("click", handleRemoveClicked)
}
function hasLadderAsChild(part) {
for (var i = 0; i < partsContainer.getNumChildren(); i++) {
childPart = partsContainer.getChildAt(i);
if (childPart.parentPart == part && childPart.partData.ladder) {
return true
}
}
return false
}
function addPartButtons(part, selectPartMenu) {
var x = y = 0;
for (var i = 0; i < part.partData.connectableParts.length; i++) {
newPart = PARTS[part.partData.connectableParts[i]];
if (newPart.usesSlot == MOUNT_SLOT && part.mountSlotFull || newPart.usesSlot == LEG_SLOT && part.legSlotFull || newPart.ladder && (part.legSlotFull && !part.partData.turnPiece) || part.mountSlotFull && newPart.legs && hasLadderAsChild(part)) continue;
var partButton = new createjs.Container;
partButton.part = newPart;
partButton.x = x * 125 + 10;
partButton.y = y * 120 + 20;
selectPartMenu.addChild(partButton);
var partButtonShape = new createjs.Shape;
partButtonShape.graphics.beginFill("#FFF").beginStroke("#e17a0f").drawRoundRect(0, 0, 100, 90, 5);
partButton.addChild(partButtonShape);
var partButtonText = new createjs.Text(newPart.name, "12px sans-serif", "#444");
partButtonText.textAlign = "center";
partButtonText.x = 50;
partButtonText.y = 92;
partButton.addChild(partButtonText);
var partImg = new createjs.Sprite(newPart.spriteSheet);
partImg.gotoAndStop(part.currentFrame + part.partData.childFrameOffset + newPart.frameOffset % 4);
partImg.regX = newPart.spriteCenter.x;
partImg.regY = newPart.spriteCenter.y;
partImg.scaleX = partImg.scaleY = .2;
partImg.x = 50;
partImg.y = 35;
partButton.addChild(partImg);
selectPartMenu.addChild(partButton);
var partButtonHelper = new createjs.ButtonHelper(partButton);
partButton.addEventListener("click", handlePartSelected);
x++;
if (x == 2) {
x = 0;
y++
}
}
}
function handleRemoveClicked(event) {
if (selectPartMenu.originPart.legSlotFull) {
for (var i = 0; i < partsContainer.getNumChildren(); i++) {
part = partsContainer.getChildAt(i);
if (part.parentPart == selectPartMenu.originPart) {
parts.splice(parts.indexOf(part.name), 1);
partsContainer.removeChild(part);
break
}
}
}
var parent = selectPartMenu.originPart.parentPart;
selectPartMenu.originPart.parentPart.mountSlotFull = false;
partsContainer.removeChild(partsContainer.getChildByName(selectPartMenu.originPart.name));
parts.splice(parts.indexOf(selectPartMenu.originPart.name), 1);
SelectPartMenu(parent);
partsMenuContainerText.text = "Select a part to add";
partsMenuContainer.removeChild(partsMenuContainer.getChildByName("REMOVE_BUTTON"));
updateZOrder();
angularUpdate(parts)
}
function handlePartSelected(event) {
newPart = Part(event.target.parent.part, selectPartMenu.originPart);
partsContainer.addChild(newPart);
if (!newPart.partData.legs) newPart.iZOrderMod = partsContainer.getChildByName(newPart.name).y;
else newPart.iZOrderMod += partsContainer.getChildByName(newPart.name).y;
updateZOrder();
angularUpdate(parts)
}
var topDownView;
function TopDownView(printView) {
if (!printView) printView = false;
topDownView = new createjs.Container;
topDownViewParts = new createjs.Container;
var topDownBackgroundShape = new createjs.Shape;
if (printView) topDownBackgroundShape.graphics.beginFill("rgba(40,40,40,1)").drawRect(0, 0, 960, 800);
else topDownBackgroundShape.graphics.beginFill("rgba(40,40,40,0.75").drawRect(0, 0, 960, 800);
topDownView.addChild(topDownBackgroundShape);
var topDownBackgroundShapeButtonHelper = new createjs.ButtonHelper(topDownBackgroundShape);
topDownBackgroundShape.addEventListener("click", backgroundClicked);
for (var x = 0; x <= 960; x += 9) {
var line = new createjs.Shape;
line.graphics.beginStroke("rgba(255,255,255,0.2)");
line.graphics.moveTo(x, 0);
line.graphics.lineTo(x, 800);
topDownViewParts.addChild(line)
}
for (var y = 0; y <= stage.canvas.height; y += 9) {
var line = new createjs.Shape;
line.graphics.beginStroke("rgba(255,255,255,0.2)");
line.graphics.moveTo(0, y);
line.graphics.lineTo(stage.canvas.width, y);
topDownViewParts.addChild(line)
}
topDownView.addChild(topDownViewParts);
var keyText = new createjs.Text("KEY", "16px sans-serif", "#FFFFFF");
keyText.textAlign = "center";
keyText.x = 880;
keyText.y = 10;
topDownView.addChild(keyText);
var ladderShape = new createjs.Shape;
ladderShape.x = 790;
ladderShape.y = 30;
ladderShape.graphics.beginFill("rgba(255,192,0,0.75)").beginStroke("#000000").drawRect(0, 0, 15, 15);
topDownView.addChild(ladderShape);
var ladderText = new createjs.Text("LADDER", "16px sans-serif", "#FFFFFF");
ladderText.textAlign = "left";
ladderText.y = 30;
ladderText.x = 815;
topDownView.addChild(ladderText);
var spanShape = new createjs.Shape;
spanShape.x = 790;
spanShape.y = 50;
spanShape.graphics.beginFill("rgba(192,192,192,0.75)").beginStroke("#000000").drawRect(0, 0, 15, 15);
topDownView.addChild(spanShape);
var spanText = new createjs.Text("BRIDGE SPAN", "16px sans-serif", "#FFFFFF");
spanText.textAlign = "left";
spanText.y = 50;
spanText.x = 815;
topDownView.addChild(spanText);
var turnShape = new createjs.Shape;
turnShape.x = 790;
turnShape.y = 70;
turnShape.graphics.beginFill("rgba(64,192,255,0.75)").beginStroke("#000000").drawRect(0, 0, 15, 15);
topDownView.addChild(turnShape);
var turnText = new createjs.Text("TURN PLATFORM", "16px sans-serif", "#FFFFFF");
turnText.textAlign = "left";
turnText.y = 70;
turnText.x = 815;
topDownView.addChild(turnText);
var totalSpanShape = new createjs.Shape;
totalSpanShape.graphics.beginStroke("#FFFFFF").setStrokeStyle(2, 2);
totalSpanShape.graphics.moveTo(797, 90);
totalSpanShape.graphics.lineTo(797, 105);
topDownView.addChild(totalSpanShape);
var totalSpanText = new createjs.Text("TOTAL LENGTH", "16px sans-serif", "#FFFFFF");
totalSpanText.y = 90;
totalSpanText.x = 815;
topDownView.addChild(totalSpanText);
var openSpanShape = new createjs.Shape;
openSpanShape.graphics.beginStroke("#00FF00").setStrokeStyle(2, 2);
openSpanShape.graphics.moveTo(797, 110);
openSpanShape.graphics.lineTo(797, 125);
topDownView.addChild(openSpanShape);
var openSpanText = new createjs.Text("OPEN LENGTH", "16px sans-serif", "#FFFFFF");
openSpanText.y = 110;
openSpanText.x = 815;
topDownView.addChild(openSpanText);
var legsShape = new createjs.Shape;
legsShape.graphics.beginStroke("#FF2020").setStrokeStyle(2, 2);
legsShape.graphics.moveTo(797, 130);
legsShape.graphics.lineTo(797, 145);
topDownView.addChild(legsShape);
var legsText = new createjs.Text("LEG KIT", "16px sans-serif", "#FFFFFF");
legsText.y = 130;
legsText.x = 815;
topDownView.addChild(legsText);
if (!printView) {
var instructionText = new createjs.Text("Click Anywhere to Close", "16px sans-serif", "#FFFFFF");
instructionText.textAlign = "center";
instructionText.x = 480;
instructionText.y = 760;
topDownView.addChild(instructionText)
}
var scaleText = new createjs.Text("Each grid line represents 1'", "16px sans-serif", "#FFFFFF");
scaleText.textAlign = "left";
scaleText.x = 10;
scaleText.y = 10;
topDownView.addChild(scaleText);
var point = new createjs.Point(477, 414);
var direction = 0;
defaultPartsOrder();
var lastPart;
var lastContainer;
var openSpan = 0;
var openSpanComponents = new Array;
var length = 0;
var startPoint = point;
for (var i = 0; i < partsContainer.getNumChildren(); i++) {
part = partsContainer.getChildAt(i);
if (part.partData.rails) continue;
if (!part.partData.bridgeSpan && openSpanComponents.length > 0) {
var openSpanLine = new createjs.Shape;
openSpanLine.graphics.beginStroke("#00FF00").setStrokeStyle(2, 2);
openSpanLine.graphics.moveTo(openSpanComponents[0].x, openSpanComponents[0].y);
openSpanLine.graphics.lineTo(point.x, point.y);
openSpanLine.PRIORITY = 1;
topDownViewParts.addChild(openSpanLine);
var openSpanLineText = new createjs.Text(Math.floor(openSpan / 12) + "' " + openSpan % 12 + '"', "10px sans-serif", "#00FF00");
var midIndex = Math.floor(openSpanComponents.length / 2);
console.log("Mid: " + midIndex);
console.log(openSpanComponents);
switch (direction) {
case 0:
openSpanLineText.x = openSpanComponents[midIndex].x - 30;
openSpanLineText.y = openSpanComponents[midIndex].y - 30;
break;
case 1:
openSpanLineText.x = openSpanComponents[midIndex].x - 30;
openSpanLineText.y = openSpanComponents[midIndex].y + 15;
break;
case 2:
openSpanLineText.x = openSpanComponents[midIndex].x + 15;
openSpanLineText.y = openSpanComponents[midIndex].y;
break;
case 3:
openSpanLineText.x = openSpanComponents[midIndex].x - 30;
openSpanLineText.y = openSpanComponents[midIndex].y + 30;
break;
default:
break
}
openSpanLineText.PRIORITY = 1;
topDownViewParts.addChild(openSpanLineText);
openSpan = 0;
openSpanComponents = new Array
}
if (part.partData.legs) {
var legShape = new createjs.Shape;
legShape.graphics.beginFill("#FF2020").beginStroke("#FF2020").setStrokeStyle(2, 2);
legShape.PRIORITY = 2;
legShape.graphics.drawRect(-(.75 * part.partData.width / 2), -3, .75 * part.partData.width, 3);
switch (direction) {
case 0:
legShape.rotation = 0;
legShape.x = point.x;
legShape.y = point.y;
break;
case 1:
legShape.rotation = -90;
legShape.x = point.x;
legShape.y = point.y;
break;
case 2:
legShape.rotation = -180;
legShape.x = point.x;
legShape.y = point.y;
break;
case 3:
legShape.rotation = -270;
legShape.x = point.x;
legShape.y = point.y;
break;
default:
break
}
topDownViewParts.addChild(legShape);
continue
}
var container = new createjs.Container;
var rect = new createjs.Shape;
rect.graphics.beginFill(fillColor(part.partData)).beginStroke("#000000").drawRect(-(.75 * part.partData.width / 2), 0, .75 * part.partData.width, -(.75 * part.partData.length));
container.addChild(rect);
var forwardPoint = new createjs.Shape;
forwardPoint.x = 0;
forwardPoint.y = -.75 * part.partData.length;
forwardPoint.name = "FORWARD";
container.addChild(forwardPoint);
var leftPoint = new createjs.Shape;
leftPoint.x = -.75 * .5 * part.partData.width;
leftPoint.y = -.75 * part.partData.length * .5;
leftPoint.name = "LEFT";
container.addChild(leftPoint);
var rightPoint = new createjs.Shape;
rightPoint.x = .75 * .5 * part.partData.width;
rightPoint.y = -.75 * part.partData.length * .5;
rightPoint.name = "RIGHT";
container.addChild(rightPoint);
switch (direction) {
case 0:
container.x = point.x;
container.y = point.y;
break;
case 1:
container.rotation = -90;
container.x = point.x;
container.y = point.y;
break;
case 2:
container.rotation = -180;
container.x = point.x;
container.y = point.y;
break;
case 3:
container.rotation = -270;
container.x = point.x;
container.y = point.y;
break;
default:
break
}
length += part.partData.length;
var oldDir = direction;
direction += part.partData.childFrameOffset;
direction = direction % 4;
if (part.partData.bridgeSpan) {
openSpanComponents.push(container);
openSpan += part.partData.length
}
if (oldDir != direction) {
var spanText = new createjs.Text(Math.floor(length / 12) + "' " + length % 12 + '"', "10px sans-serif", "#FFFFFF");
spanText.PRIORITY = 1;
var spanLine = new createjs.Shape;
spanLine.PRIORITY = 1;
spanLine.graphics.beginStroke("#FFFFFF").setStrokeStyle(2, 2);
console.log(direction);
switch (direction) {
case 0:
if (oldDir == 3) {
spanText.textAlign = "left";
spanText.x = point.x - .75 * length / 2;
spanText.y = point.y + 25;
spanLine.graphics.moveTo(startPoint.x, startPoint.y);
spanLine.graphics.lineTo(point.x + .75 * part.partData.length, point.y);
spanLine.y += 20;
length = part.partData.width;
point = new createjs.Point(container.x - container.getChildByName("LEFT").x, container.y + container.getChildByName("LEFT").y);
startPoint.x = point.x;
startPoint.y = point.y;
startPoint.y += .75 * part.partData.width
} else {
spanText.textAlign = "right";
spanText.x = point.x + .75 * length / 2;
spanText.y = point.y + 30;
spanLine.graphics.moveTo(startPoint.x, startPoint.y);
spanLine.graphics.lineTo(point.x - .75 * part.partData.length, point.y);
length = part.partData.width;
point = new createjs.Point(container.x - container.getChildByName("RIGHT").x, container.y + container.getChildByName("RIGHT").y);
startPoint.x = point.x;
startPoint.y = point.y;
startPoint.y += .75 * part.partData.width;
spanLine.y += 25
}
break;
case 1:
if (oldDir == 0) {
spanText.textAlign = "left";
spanText.x = point.x + 25;
spanText.y = point.y + .75 * length / 4;
spanLine.graphics.moveTo(startPoint.x, startPoint.y);
spanLine.graphics.lineTo(point.x, point.y - .75 * part.partData.length);
spanLine.x += 22;
length = part.partData.width;
point = new createjs.Point(container.x + container.getChildByName("LEFT").x, container.y + container.getChildByName("LEFT").y);
startPoint.x = point.x;
startPoint.y = point.y;
startPoint.x += .75 * part.partData.width
} else {
spanText.textAlign = "left";
spanText.x = point.x + 25;
spanText.y = point.y - .75 * length / 4;
spanLine.graphics.moveTo(startPoint.x, startPoint.y);
spanLine.graphics.lineTo(point.x, point.y + .75 * part.partData.length);
length = part.partData.width;
point = new createjs.Point(container.x - container.getChildByName("RIGHT").x, container.y - container.getChildByName("RIGHT").y);
startPoint.x = point.x;
startPoint.y = point.y;
spanLine.x += 20;
startPoint.x += .75 * part.partData.width
}
break;
case 2:
if (oldDir == 1) {
spanText.textAlign = "left";
spanText.x = point.x + .75 * length / 4;
spanText.y = point.y - 35;
spanLine.graphics.moveTo(startPoint.x, startPoint.y);
spanLine.graphics.lineTo(point.x - .75 * part.partData.length, point.y);
length = part.partData.width;
spanLine.y -= 22;
point = new createjs.Point(container.x + container.getChildByName("LEFT").x, container.y - container.getChildByName("LEFT").y);
startPoint.x = point.x;
startPoint.y = point.y;
startPoint.y -= .75 * part.partData.width
} else {
spanText.textAlign = "left";
spanText.x = point.x - .75 * length / 4;
spanText.y = point.y - 30;
spanLine.graphics.moveTo(startPoint.x, startPoint.y);
spanLine.graphics.lineTo(point.x, point.y);
length = part.partData.width;
point = new createjs.Point(container.x + container.getChildByName("RIGHT").x, container.y - container.getChildByName("RIGHT").y);
startPoint.x = point.x;
startPoint.y = point.y
}
break;
case 3:
if (oldDir == 2) {
spanText.textAlign = "right";
spanText.x = point.x - 25;
spanText.y = point.y - .75 * length / 4;
spanLine.graphics.moveTo(startPoint.x, startPoint.y);
spanLine.graphics.lineTo(point.x, point.y + .75 * part.partData.width);
spanLine.x -= 20;
length = part.partData.width;
point = new createjs.Point(container.x - container.getChildByName("LEFT").x, container.y - container.getChildByName("LEFT").y);
startPoint.x = point.x;
startPoint.y = point.y;
startPoint.x -= .75 * part.partData.width
} else {
spanText.textAlign = "right";
spanText.x = point.x - 25;
spanText.y = point.y + .75 * length / 4;
spanLine.graphics.moveTo(startPoint.x, startPoint.y);
spanLine.graphics.lineTo(point.x, point.y - .75 * part.partData.width);
spanLine.x -= 20;
length = part.partData.width;
point = new createjs.Point(container.x + container.getChildByName("RIGHT").x, container.y + container.getChildByName("RIGHT").y);
startPoint.x = point.x;
startPoint.y = point.y;
startPoint.x -= .75 * part.partData.width
}
break;
default:
break
}
topDownViewParts.addChild(spanLine);
topDownViewParts.addChild(spanText)
} else {
switch (direction) {
case 0:
point = new createjs.Point(point.x, point.y - .75 * part.partData.length);
break;
case 1:
point = new createjs.Point(point.x - .75 * part.partData.length, point.y);
break;
case 2:
point = new createjs.Point(point.x, point.y + .75 * part.partData.length);
break;
case 3:
point = new createjs.Point(point.x + .75 * part.partData.length, point.y);
default:
break
}
}
topDownViewParts.addChild(container);
lastPart = part;
lastContainer = container
}
if (length > 0) {
var spanText = new createjs.Text(Math.floor(length / 12) + "' " + length % 12 + '"', "10px sans-serif", "#FFFFFF");
spanText.PRIORITY = 1;
var spanLine = new createjs.Shape;
spanLine.PRIORITY = 1;
spanLine.graphics.beginStroke("#FFFFFF").setStrokeStyle(2, 2);
spanLine.graphics.moveTo(startPoint.x, startPoint.y);
spanLine.graphics.lineTo(point.x, point.y);
switch (system) {
case 1:
switch (direction) {
case 0:
spanText.textAlign = "left";
spanText.x = point.x + lastPart.partData.width;
spanText.y = point.y;
spanLine.x += .75 * lastPart.partData.width;
break;
case 1:
spanText.textAlign = "left";
spanText.x = point.x;
spanText.y = point.y - lastPart.partData.width - 5;
spanLine.y -= .75 * lastPart.partData.width;
break;
case 2:
spanText.textAlign = "right";
spanText.x = point.x - 30;
spanText.y = point.y - .75 * length / 4;
spanLine.x -= .75 * lastPart.partData.width;
break;
case 3:
spanText.textAlign = "left";
spanText.x = point.x;
spanText.y = point.y + lastPart.partData.width;
spanLine.y += .75 * lastPart.partData.width;
break;
default:
break
}
break;
case 2:
switch (direction) {
case 0:
spanText.textAlign = "left";
spanText.x = point.x + lastPart.partData.width;
spanText.y = point.y;
spanLine.x += 3 * lastPart.partData.width / 4;
break;
case 1:
spanText.textAlign = "left";
spanText.x = point.x - .75 * length / 4;
spanText.y = point.y - 5 * lastPart.partData.width / 4;
spanLine.y -= 3 * lastPart.partData.width / 4;
break;
case 2:
spanText.textAlign = "right";
spanText.x = point.x;
spanText.y = point.y;
spanLine.x -= 3 * lastPart.partData.width / 4;
break;
case 3:
spanText.textAlign = "left";
spanText.x = point.x;
spanText.y = point.y + 5 * lastPart.partData.width / 4;
spanLine.y += 3 * lastPart.partData.width / 4;
break;
default:
break
}
break;
default:
break
}
topDownViewParts.addChild(spanLine);
topDownViewParts.addChild(spanText)
}
updateZOrder();
sortElements();
topDownViewParts.scaleX = topDownViewParts.scaleY = 2.5;
topDownViewParts.x = -500;
topDownViewParts.y = -300;
return topDownView
}
function fillColor(data) {
if (data.ladder) return "rgba(255,192,64,0.75)";
else if (data.turnPiece) return "rgba(64,192,255,0.75)";
else return "rgba(192,192,192,0.75)"
}
function backgroundClicked(event) {
stage.removeChild(topDownView)
}
function sortElements() {
var sortFunction = function(obj1, obj2, options) {
if (obj1.PRIORITY && obj2.PRIORITY && obj1.PRIORITY == obj2.PRIORITY) return 0;
else if (obj1.PRIORITY && !obj2.PRIORITY || obj1.PRIORITY > obj2.PRIORITY) return 1;
else if (obj2.PRIORITY && !obj1.PRIORITY || obj2.PRIORITY > obj1.PRIORITY) return -1;
else {
return -1
}
};
topDownViewParts.sortChildren(sortFunction)
}
var maxTopDownView;
var MTDFACTOR = 2.5;
function MaxTopDownView(printView) {
toolTipText.visible = false;
if (!printView) printView = false;
maxTopDownView = new createjs.Container;
maxTopDownViewParts = new createjs.Container;
var topDownBackgroundShape = new createjs.Shape;
if (printView) topDownBackgroundShape.graphics.beginFill("rgba(40,40,40,1)").drawRect(0, 0, 960, 800);
else topDownBackgroundShape.graphics.beginFill("rgba(40,40,40,0.8").drawRect(0, 0, 960, 800);
maxTopDownView.addChild(topDownBackgroundShape);
var topDownBackgroundShapeButtonHelper = new createjs.ButtonHelper(topDownBackgroundShape);
topDownBackgroundShape.addEventListener("click", maxbackgroundClicked);
for (var x = 0; x <= 960; x += 12 * MTDFACTOR) {
var line = new createjs.Shape;
line.graphics.beginStroke("rgba(255,255,255,0.2)");
line.graphics.moveTo(x, 0);
line.graphics.lineTo(x, 800);
maxTopDownViewParts.addChild(line)
}
for (var y = 0; y <= stage.canvas.height; y += 12 * MTDFACTOR) {
var line = new createjs.Shape;
line.graphics.beginStroke("rgba(255,255,255,0.2)");
line.graphics.moveTo(0, y);
line.graphics.lineTo(stage.canvas.width, y);
maxTopDownViewParts.addChild(line)
}
maxTopDownView.addChild(maxTopDownViewParts);
var keyText = new createjs.Text("KEY", "16px sans-serif", "#FFFFFF");
keyText.textAlign = "center";
keyText.x = 860;
keyText.y = 10;
maxTopDownView.addChild(keyText);
var ladderShape = new createjs.Shape;
ladderShape.x = 770;
ladderShape.y = 30;
ladderShape.graphics.beginFill("rgba(255,192,0,0.8)").beginStroke("#000000").drawRect(0, 0, 15, 15);
maxTopDownView.addChild(ladderShape);
var ladderText = new createjs.Text("LADDER", "16px sans-serif", "#FFFFFF");
ladderText.textAlign = "left";
ladderText.y = 30;
ladderText.x = 795;
maxTopDownView.addChild(ladderText);
var spanShape = new createjs.Shape;
spanShape.x = 770;
spanShape.y = 50;
spanShape.graphics.beginFill("rgba(192,192,192,0.8)").beginStroke("#000000").drawRect(0, 0, 15, 15);
maxTopDownView.addChild(spanShape);
var spanText = new createjs.Text('36"x36" PLATFORM', "16px sans-serif", "#FFFFFF");
spanText.textAlign = "left";
spanText.y = 50;
spanText.x = 795;
maxTopDownView.addChild(spanText);
var legsShape = new createjs.Shape;
legsShape.graphics.beginStroke("#FF2020").setStrokeStyle(4, 2);
legsShape.graphics.moveTo(777, 70);
legsShape.graphics.lineTo(777, 85);
maxTopDownView.addChild(legsShape);
var legsText = new createjs.Text("LEG KIT", "16px sans-serif", "#FFFFFF");
legsText.y = 70;
legsText.x = 795;
maxTopDownView.addChild(legsText);
if (!printView) {
var instructionText = new createjs.Text("Click Anywhere to Close", "16px sans-serif", "#FFFFFF");
instructionText.textAlign = "center";
instructionText.x = 480;
instructionText.y = 760;
maxTopDownView.addChild(instructionText)
}
var scaleText = new createjs.Text("Each grid line represents 1'", "16px sans-serif", "#FFFFFF");
scaleText.textAlign = "left";
scaleText.x = 10;
scaleText.y = 10;
maxTopDownView.addChild(scaleText);
var point = new createjs.Point(477, 414);
var direction = 0;
defaultPartsOrder();
var lastPart;
var lastContainer;
var openSpan = 0;
var openSpanComponents = new Array;
var length = 0;
var startPoint = point;
for (var i = 0; i < partsContainer.getNumChildren(); i++) {
part = partsContainer.getChildAt(i);
if (part.partData.rails || part.partData.legs) continue;
var container = new createjs.Container;
var rect = new createjs.Shape;
container.partCoordinates = part.coordinates;
container.partData = part.partData;
container.partRotation = part.noParent ? 0 : part.mountPoint.rotOffset;
container.noParent = part.noParent;
container.name = part.name;
rect.graphics.beginFill(maxFillColor(part.partData)).beginStroke("#000000").drawRect(-(MTDFACTOR * part.partData.width / 2), 0, MTDFACTOR * part.partData.width, -(MTDFACTOR * part.partData.length));
container.addChild(rect);
var upPoint = new createjs.Shape;
upPoint.x = 0;
upPoint.y = -MTDFACTOR * part.partData.length;
upPoint.name = "UP";
container.addChild(upPoint);
var leftPoint = new createjs.Shape;
leftPoint.x = -MTDFACTOR * .5 * part.partData.width;
leftPoint.y = -MTDFACTOR * part.partData.length * .5;
leftPoint.name = "LEFT";
container.addChild(leftPoint);
var rightPoint = new createjs.Shape;
rightPoint.x = MTDFACTOR * .5 * part.partData.width;
rightPoint.y = -MTDFACTOR * part.partData.length * .5;
rightPoint.name = "RIGHT";
container.addChild(rightPoint);
var downPoint = new createjs.Shape;
downPoint.x = 0;
downPoint.y = 0;
downPoint.name = "DOWN";
container.addChild(downPoint);
if (part.noParent) {
container.x = 397;
container.y = 450
} else {
switch (part.mountPoint.rotOffset) {
case 0:
container.x = maxTopDownViewParts.getChildByName(part.parentPart.name).x + maxTopDownViewParts.getChildByName(part.parentPart.name).getChildByName("UP").x;
container.y = maxTopDownViewParts.getChildByName(part.parentPart.name).y + maxTopDownViewParts.getChildByName(part.parentPart.name).getChildByName("UP").y;
break;
case -90:
container.rotation = -90;
container.x = maxTopDownViewParts.getChildByName(part.parentPart.name).x + maxTopDownViewParts.getChildByName(part.parentPart.name).getChildByName("LEFT").x;
container.y = maxTopDownViewParts.getChildByName(part.parentPart.name).y + maxTopDownViewParts.getChildByName(part.parentPart.name).getChildByName("LEFT").y;
break;
case 180:
container.rotation = 180;
container.x = maxTopDownViewParts.getChildByName(part.parentPart.name).x + maxTopDownViewParts.getChildByName(part.parentPart.name).getChildByName("DOWN").x;
container.y = maxTopDownViewParts.getChildByName(part.parentPart.name).y + maxTopDownViewParts.getChildByName(part.parentPart.name).getChildByName("DOWN").y;
break;
case 90:
container.rotation = 90;
container.x = maxTopDownViewParts.getChildByName(part.parentPart.name).x + maxTopDownViewParts.getChildByName(part.parentPart.name).getChildByName("RIGHT").x;
container.y = maxTopDownViewParts.getChildByName(part.parentPart.name).y + maxTopDownViewParts.getChildByName(part.parentPart.name).getChildByName("RIGHT").y;
break;
default:
break
}
}
if (part.partData.platform) {
container.rotation = 0;
if (part.parentPart.partData.platform) {
switch (part.mountPoint.rotOffset) {
case 0:
break;
case -90:
container.x -= rightPoint.x;
container.y -= rightPoint.y;
break;
case 180:
container.x -= upPoint.x;
container.y -= upPoint.y;
break;
case 90:
container.x -= leftPoint.x;
container.y -= leftPoint.y;
break;
default:
break
}
} else {
var TD_Parent = maxTopDownViewParts.getChildByName(part.parentPart.name);
switch (TD_Parent.rotation) {
case 0:
break;
case -90:
container.y -= TD_Parent.getChildByName("UP").y;
container.x += TD_Parent.getChildByName("UP").y;
container.x -= rightPoint.x;
container.y -= rightPoint.y;
break;
case 180:
container.y -= TD_Parent.getChildByName("UP").y;
container.y -= TD_Parent.getChildByName("UP").y;
container.x -= upPoint.x;
container.y -= upPoint.y;
break;
case 90:
container.y -= TD_Parent.getChildByName("UP").y;
container.x -= TD_Parent.getChildByName("UP").y;
container.x -= leftPoint.x;
container.y -= leftPoint.y;
break
}
}
} else {
var lengthString = Math.floor(part.partData.length / 12) + "' " + part.partData.length % 12 + '"L\n x \n' + Math.floor(part.partData.width / 12) + "' " + part.partData.width % 12 + '"W';
var dimText = new createjs.Text(lengthString, "8px sans-serif", "#fff");
dimText.textAlign = "center";
dimText.y = upPoint.y;
if (container.rotation == 180) {
dimText.rotation = 180;
dimText.y += 20
}
}
length += part.partData.length;
maxTopDownViewParts.addChild(container)
}
for (var x = 0; x < 40; x++) {
for (var y = 0; y < 40; y++) {
if (MAP[x][y][2] != 0) {
for (var p = 0; p < maxTopDownViewParts.getNumChildren(); p++) {
if (maxTopDownViewParts.getChildAt(p).partCoordinates && (maxTopDownViewParts.getChildAt(p).partCoordinates.x == x && maxTopDownViewParts.getChildAt(p).partCoordinates.y == y || pointInPart(maxTopDownViewParts.getChildAt(p), x, y))) {
var legPart = maxTopDownViewParts.getChildAt(p);
var legKitLine = new createjs.Shape;
legKitLine.PRIORITY = 3;
legKitLine.graphics.beginStroke("#FF2020").setStrokeStyle(6, 2);
if (legPart.partData.platform) {
switch (MAP[x][y][2]) {
case 1:
var ly = legPart.y + legPart.getChildByName("UP").y;
var lx = legPart.x + legPart.getChildByName("UP").x;
legKitLine.graphics.moveTo(lx - 18 * MTDFACTOR, ly);
legKitLine.graphics.lineTo(lx + 18 * MTDFACTOR, ly);
break;
case 2:
var ly = legPart.y + legPart.getChildByName("RIGHT").y;
var lx = legPart.x + legPart.getChildByName("RIGHT").x;
legKitLine.graphics.moveTo(lx, ly - 18 * MTDFACTOR);
legKitLine.graphics.lineTo(lx, ly + 18 * MTDFACTOR);
break;
case 3:
var ly = legPart.y + legPart.getChildByName("DOWN").y;
var lx = legPart.x + legPart.getChildByName("DOWN").x;
legKitLine.graphics.moveTo(lx - 18 * MTDFACTOR, ly);
legKitLine.graphics.lineTo(lx + 18 * MTDFACTOR, ly);
break;
case 4:
var ly = legPart.y + legPart.getChildByName("LEFT").y;
var lx = legPart.x + legPart.getChildByName("LEFT").x;
legKitLine.graphics.moveTo(lx, ly - 18 * MTDFACTOR);
legKitLine.graphics.lineTo(lx, ly + 18 * MTDFACTOR);
break
}
maxTopDownViewParts.addChild(legKitLine)
} else {
if (MAP[x][y][3] == 0) {
var ly;
var lx;
legKitLine.rotation = -legPart.rotation;
switch (MAP[x][y][2]) {
case 1:
if (legPart.partData.heightMod > 0 || MAP[x][y] != 0) {
ly = legPart.getChildByName("UP").y;
lx = legPart.getChildByName("UP").x
} else {
ly = legPart.getChildByName("DOWN").y;
lx = legPart.getChildByName("DOWN").x
}
legKitLine.graphics.moveTo(lx - 18 * MTDFACTOR, ly);
legKitLine.graphics.lineTo(lx + 18 * MTDFACTOR, ly);
break;
case 2:
if (legPart.partData.heightMod > 0 || MAP[x][y] != 0) {
ly = legPart.getChildByName("UP").y;
lx = legPart.getChildByName("UP").x
} else {
ly = legPart.y + legPart.getChildByName("DOWN").y;
lx = legPart.x + legPart.getChildByName("DOWN").x
}
legKitLine.graphics.moveTo(-ly, lx - 18 * MTDFACTOR);
legKitLine.graphics.lineTo(-ly, lx + 18 * MTDFACTOR);
break;
case 3:
if (legPart.partData.heightMod > 0 || MAP[x][y] != 0) {
ly = legPart.getChildByName("UP").y;
lx = legPart.getChildByName("UP").x
} else {
ly = legPart.y + legPart.getChildByName("DOWN").y;
lx = legPart.x + legPart.getChildByName("DOWN").x
}
legKitLine.graphics.moveTo(lx - 18 * MTDFACTOR, ly);
legKitLine.graphics.lineTo(lx + 18 * MTDFACTOR, ly);
break;
case 4:
if (legPart.partData.heightMod > 0 || MAP[x][y] != 0) {
ly = legPart.getChildByName("UP").y;
lx = legPart.getChildByName("UP").x
} else {
ly = legPart.y + legPart.getChildByName("DOWN").y;
lx = legPart.x + legPart.getChildByName("DOWN").x
}
legKitLine.graphics.moveTo(ly, lx - 18 * MTDFACTOR);
legKitLine.graphics.lineTo(ly, lx + 18 * MTDFACTOR);
break
}
legPart.addChild(legKitLine)
} else {
legKitLine.rotation = -legPart.rotation;
switch (MAP[x][y][2]) {
case 1:
var ly = legPart.getChildByName("DOWN").y;
var lx = legPart.getChildByName("DOWN").x;
legKitLine.graphics.moveTo(lx - 18 * MTDFACTOR, ly);
legKitLine.graphics.lineTo(lx + 18 * MTDFACTOR, ly);
break;
case 2:
var ly = legPart.getChildByName("DOWN").y;
var lx = legPart.getChildByName("DOWN").x;
legKitLine.graphics.moveTo(lx, ly - 18 * MTDFACTOR);
legKitLine.graphics.lineTo(lx, ly + 18 * MTDFACTOR);
break;
case 3:
var ly = legPart.getChildByName("DOWN").y;
var lx = legPart.getChildByName("DOWN").x;
legKitLine.graphics.moveTo(lx - 18 * MTDFACTOR, ly);
legKitLine.graphics.lineTo(lx + 18 * MTDFACTOR, ly);
break;
case 4:
var ly = legPart.getChildByName("DOWN").y;
var lx = legPart.getChildByName("DOWN").x;
legKitLine.graphics.moveTo(lx, ly - 18 * MTDFACTOR);
legKitLine.graphics.lineTo(lx, ly + 18 * MTDFACTOR);
break
}
legPart.addChild(legKitLine)
}
}
}
}
}
}
}
var ymax = 0;
var xmax = 0;
var ystart = 40;
var yend = 0;
var xstart = 40;
var xend = 0;
for (var x = 0; x < 40; x++) {
for (var y = 0; y < 40; y++) {
if (MAP[x][y][1] != "E") {
if (y < ystart) ystart = y;
if (y > yend) yend = y
}
}
}
for (var y = 0; y < 40; y++) {
for (var x = 0; x < 40; x++) {
if (MAP[x][y][1] != "E") {
if (x < xstart) xstart = x;
if (x > xend) xend = x
}
}
}
var yc = 0;
var xc = 0;
var ymaxr = 0;
var xmaxr = 0;
for (var x = 0; x < 40; x++) {
yc = 0;
for (var y = 0; y < 40; y++) {
if (MAP[x][y][1] != "E") {
yc += MAP[x][y][4].y
}
}
if (yc > ymaxr) ymaxr = yc
}
for (var y = 0; y < 40; y++) {
xc = 0;
for (var x = 0; x < 40; x++) {
if (MAP[x][y][1] != "E") {
xc += MAP[x][y][4].x
}
}
if (xc > xmaxr) xmaxr = xc
}
xmax = xend - xstart + 1;
ymax = yend - ystart + 1;
var yLine = new createjs.Container;
yLine.x = 335 - 36 * (20 - xstart) * MTDFACTOR;
yLine.y = 450 - 36 * (21 - ystart) * MTDFACTOR;
maxTopDownViewParts.addChild(yLine);
var yLineShape = new createjs.Shape;
yLineShape.graphics.beginStroke("#FFF").moveTo(0, 20).lineTo(0, 36 * ymax * MTDFACTOR);
yLine.addChild(yLineShape);
var yLineText = new createjs.Text(Math.floor(ymaxr / 12) + "' " + ymaxr % 12 + '"', "16px sans-serif", "#FFFFFF");
yLine.addChild(yLineText);
yLineText.y = 36 * ymax * MTDFACTOR - 40;
yLineText.x = -75;
var xLine = new createjs.Container;
xLine.x = 350 - 36 * (20 - xstart) * MTDFACTOR;
xLine.y = 455 - 36 * (21 - ystart) * MTDFACTOR + 36 * ymax * MTDFACTOR;
maxTopDownViewParts.addChild(xLine);
var xLineShape = new createjs.Shape;
xLineShape.graphics.beginStroke("#FFF").moveTo(0, 0).lineTo(36 * xmax * MTDFACTOR, 0);
xLine.addChild(xLineShape);
var xLineText = new createjs.Text(Math.floor(xmaxr / 12) + "' " + xmaxr % 12 + '"', "16px sans-serif", "#FFFFFF");
xLine.addChild(xLineText);
updateZOrder();
maxSortElements();
maxTopDownViewParts.scaleX = maxTopDownViewParts.scaleY = 1.25;
return maxTopDownView
}
function maxFillColor(data) {
if (data.ladder) return "rgba(255,192,64,0.8)";
else return "rgba(192,192,192,0.8)"
}
function pointInPart(part, x, y) {
if (part.partData.platform) return false;
switch (part.partRotation) {
case 0:
if (part.partCoordinates.x == x && y <= part.partCoordinates.y && y > part.partCoordinates.y - part.partData.gridSize.y) return true;
break;
case -90:
if (part.partCoordinates.y == y && x <= part.partCoordinates.x && x > part.partCoordinates.x - part.partData.gridSize.y) return true;
break;
case 180:
if (part.partCoordinates.x == x && y >= part.partCoordinates.y && y < part.partCoordinates.y + part.partData.gridSize.y) return true;
break;
case 90:
if (part.partCoordinates.y == y && x >= part.partCoordinates.x && x < part.partCoordinates.x + part.partData.gridSize.y) return true;
break;
default:
break
}
return false
}
function maxbackgroundClicked(event) {
stage.removeChild(maxTopDownView);
toolTipText.visible = true
}
function maxSortElements() {
var sortFunction = function(obj1, obj2, options) {
if (obj1.PRIORITY && obj2.PRIORITY && obj1.PRIORITY == obj2.PRIORITY) return 0;
else if (obj1.PRIORITY && !obj2.PRIORITY || obj1.PRIORITY > obj2.PRIORITY) return 1;
else if (obj2.PRIORITY && !obj1.PRIORITY || obj2.PRIORITY > obj1.PRIORITY) return -1;
else {
return -1
}
};
maxTopDownView.sortChildren(sortFunction)
}