You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1281 lines
32 KiB
1281 lines
32 KiB
if (!document.createElement("canvas").getContext) { |
|
(function () { |
|
var ab = Math; |
|
var n = ab.round; |
|
var l = ab.sin; |
|
var A = ab.cos; |
|
var H = ab.abs; |
|
var N = ab.sqrt; |
|
var d = 10; |
|
var f = d / 2; |
|
var z = +navigator.userAgent.match(/MSIE ([\d.]+)?/)[1]; |
|
function y() { |
|
return this.context_ || (this.context_ = new D(this)); |
|
} |
|
var t = Array.prototype.slice; |
|
function g(j, m, p) { |
|
var i = t.call(arguments, 2); |
|
return function () { |
|
return j.apply(m, i.concat(t.call(arguments))); |
|
}; |
|
} |
|
function af(i) { |
|
return String(i).replace(/&/g, "&").replace(/"/g, """); |
|
} |
|
function Y(m, j, i) { |
|
if (!m.namespaces[j]) { |
|
m.namespaces.add(j, i, "#default#VML"); |
|
} |
|
} |
|
function R(j) { |
|
Y(j, "g_vml_", "urn:schemas-microsoft-com:vml"); |
|
Y(j, "g_o_", "urn:schemas-microsoft-com:office:office"); |
|
if (!j.styleSheets.ex_canvas_) { |
|
var i = j.createStyleSheet(); |
|
i.owningElement.id = "ex_canvas_"; |
|
i.cssText = |
|
"canvas{display:inline-block;overflow:hidden;text-align:left;width:300px;height:150px}"; |
|
} |
|
} |
|
R(document); |
|
var e = { |
|
init: function (i) { |
|
var j = i || document; |
|
j.createElement("canvas"); |
|
j.attachEvent("onreadystatechange", g(this.init_, this, j)); |
|
}, |
|
init_: function (p) { |
|
var m = p.getElementsByTagName("canvas"); |
|
for (var j = 0; j < m.length; j++) { |
|
this.initElement(m[j]); |
|
} |
|
}, |
|
initElement: function (j) { |
|
if (!j.getContext) { |
|
j.getContext = y; |
|
R(j.ownerDocument); |
|
j.innerHTML = ""; |
|
j.attachEvent("onpropertychange", x); |
|
j.attachEvent("onresize", W); |
|
var i = j.attributes; |
|
if (i.width && i.width.specified) { |
|
j.style.width = i.width.nodeValue + "px"; |
|
} else { |
|
j.width = j.clientWidth; |
|
} |
|
if (i.height && i.height.specified) { |
|
j.style.height = i.height.nodeValue + "px"; |
|
} else { |
|
j.height = j.clientHeight; |
|
} |
|
} |
|
return j; |
|
}, |
|
}; |
|
function x(j) { |
|
var i = j.srcElement; |
|
switch (j.propertyName) { |
|
case "width": |
|
i.getContext().clearRect(); |
|
i.style.width = i.attributes.width.nodeValue + "px"; |
|
i.firstChild.style.width = i.clientWidth + "px"; |
|
break; |
|
case "height": |
|
i.getContext().clearRect(); |
|
i.style.height = i.attributes.height.nodeValue + "px"; |
|
i.firstChild.style.height = i.clientHeight + "px"; |
|
break; |
|
} |
|
} |
|
function W(j) { |
|
var i = j.srcElement; |
|
if (i.firstChild) { |
|
i.firstChild.style.width = i.clientWidth + "px"; |
|
i.firstChild.style.height = i.clientHeight + "px"; |
|
} |
|
} |
|
e.init(); |
|
var k = []; |
|
for (var ae = 0; ae < 16; ae++) { |
|
for (var ad = 0; ad < 16; ad++) { |
|
k[ae * 16 + ad] = ae.toString(16) + ad.toString(16); |
|
} |
|
} |
|
function B() { |
|
return [ |
|
[1, 0, 0], |
|
[0, 1, 0], |
|
[0, 0, 1], |
|
]; |
|
} |
|
function J(p, m) { |
|
var j = B(); |
|
for (var i = 0; i < 3; i++) { |
|
for (var ah = 0; ah < 3; ah++) { |
|
var Z = 0; |
|
for (var ag = 0; ag < 3; ag++) { |
|
Z += p[i][ag] * m[ag][ah]; |
|
} |
|
j[i][ah] = Z; |
|
} |
|
} |
|
return j; |
|
} |
|
function v(j, i) { |
|
i.fillStyle = j.fillStyle; |
|
i.lineCap = j.lineCap; |
|
i.lineJoin = j.lineJoin; |
|
i.lineWidth = j.lineWidth; |
|
i.miterLimit = j.miterLimit; |
|
i.shadowBlur = j.shadowBlur; |
|
i.shadowColor = j.shadowColor; |
|
i.shadowOffsetX = j.shadowOffsetX; |
|
i.shadowOffsetY = j.shadowOffsetY; |
|
i.strokeStyle = j.strokeStyle; |
|
i.globalAlpha = j.globalAlpha; |
|
i.font = j.font; |
|
i.textAlign = j.textAlign; |
|
i.textBaseline = j.textBaseline; |
|
i.arcScaleX_ = j.arcScaleX_; |
|
i.arcScaleY_ = j.arcScaleY_; |
|
i.lineScale_ = j.lineScale_; |
|
} |
|
var b = { |
|
aliceblue: "#F0F8FF", |
|
antiquewhite: "#FAEBD7", |
|
aquamarine: "#7FFFD4", |
|
azure: "#F0FFFF", |
|
beige: "#F5F5DC", |
|
bisque: "#FFE4C4", |
|
black: "#000000", |
|
blanchedalmond: "#FFEBCD", |
|
blueviolet: "#8A2BE2", |
|
brown: "#A52A2A", |
|
burlywood: "#DEB887", |
|
cadetblue: "#5F9EA0", |
|
chartreuse: "#7FFF00", |
|
chocolate: "#D2691E", |
|
coral: "#FF7F50", |
|
cornflowerblue: "#6495ED", |
|
cornsilk: "#FFF8DC", |
|
crimson: "#DC143C", |
|
cyan: "#00FFFF", |
|
darkblue: "#00008B", |
|
darkcyan: "#008B8B", |
|
darkgoldenrod: "#B8860B", |
|
darkgray: "#A9A9A9", |
|
darkgreen: "#006400", |
|
darkgrey: "#A9A9A9", |
|
darkkhaki: "#BDB76B", |
|
darkmagenta: "#8B008B", |
|
darkolivegreen: "#556B2F", |
|
darkorange: "#FF8C00", |
|
darkorchid: "#9932CC", |
|
darkred: "#8B0000", |
|
darksalmon: "#E9967A", |
|
darkseagreen: "#8FBC8F", |
|
darkslateblue: "#483D8B", |
|
darkslategray: "#2F4F4F", |
|
darkslategrey: "#2F4F4F", |
|
darkturquoise: "#00CED1", |
|
darkviolet: "#9400D3", |
|
deeppink: "#FF1493", |
|
deepskyblue: "#00BFFF", |
|
dimgray: "#696969", |
|
dimgrey: "#696969", |
|
dodgerblue: "#1E90FF", |
|
firebrick: "#B22222", |
|
floralwhite: "#FFFAF0", |
|
forestgreen: "#228B22", |
|
gainsboro: "#DCDCDC", |
|
ghostwhite: "#F8F8FF", |
|
gold: "#FFD700", |
|
goldenrod: "#DAA520", |
|
grey: "#808080", |
|
greenyellow: "#ADFF2F", |
|
honeydew: "#F0FFF0", |
|
hotpink: "#FF69B4", |
|
indianred: "#CD5C5C", |
|
indigo: "#4B0082", |
|
ivory: "#FFFFF0", |
|
khaki: "#F0E68C", |
|
lavender: "#E6E6FA", |
|
lavenderblush: "#FFF0F5", |
|
lawngreen: "#7CFC00", |
|
lemonchiffon: "#FFFACD", |
|
lightblue: "#ADD8E6", |
|
lightcoral: "#F08080", |
|
lightcyan: "#E0FFFF", |
|
lightgoldenrodyellow: "#FAFAD2", |
|
lightgreen: "#90EE90", |
|
lightgrey: "#D3D3D3", |
|
lightpink: "#FFB6C1", |
|
lightsalmon: "#FFA07A", |
|
lightseagreen: "#20B2AA", |
|
lightskyblue: "#87CEFA", |
|
lightslategray: "#778899", |
|
lightslategrey: "#778899", |
|
lightsteelblue: "#B0C4DE", |
|
lightyellow: "#FFFFE0", |
|
limegreen: "#32CD32", |
|
linen: "#FAF0E6", |
|
magenta: "#FF00FF", |
|
mediumaquamarine: "#66CDAA", |
|
mediumblue: "#0000CD", |
|
mediumorchid: "#BA55D3", |
|
mediumpurple: "#9370DB", |
|
mediumseagreen: "#3CB371", |
|
mediumslateblue: "#7B68EE", |
|
mediumspringgreen: "#00FA9A", |
|
mediumturquoise: "#48D1CC", |
|
mediumvioletred: "#C71585", |
|
midnightblue: "#191970", |
|
mintcream: "#F5FFFA", |
|
mistyrose: "#FFE4E1", |
|
moccasin: "#FFE4B5", |
|
navajowhite: "#FFDEAD", |
|
oldlace: "#FDF5E6", |
|
olivedrab: "#6B8E23", |
|
orange: "#FFA500", |
|
orangered: "#FF4500", |
|
orchid: "#DA70D6", |
|
palegoldenrod: "#EEE8AA", |
|
palegreen: "#98FB98", |
|
paleturquoise: "#AFEEEE", |
|
palevioletred: "#DB7093", |
|
papayawhip: "#FFEFD5", |
|
peachpuff: "#FFDAB9", |
|
peru: "#CD853F", |
|
pink: "#FFC0CB", |
|
plum: "#DDA0DD", |
|
powderblue: "#B0E0E6", |
|
rosybrown: "#BC8F8F", |
|
royalblue: "#4169E1", |
|
saddlebrown: "#8B4513", |
|
salmon: "#FA8072", |
|
sandybrown: "#F4A460", |
|
seagreen: "#2E8B57", |
|
seashell: "#FFF5EE", |
|
sienna: "#A0522D", |
|
skyblue: "#87CEEB", |
|
slateblue: "#6A5ACD", |
|
slategray: "#708090", |
|
slategrey: "#708090", |
|
snow: "#FFFAFA", |
|
springgreen: "#00FF7F", |
|
steelblue: "#4682B4", |
|
tan: "#D2B48C", |
|
thistle: "#D8BFD8", |
|
tomato: "#FF6347", |
|
turquoise: "#40E0D0", |
|
violet: "#EE82EE", |
|
wheat: "#F5DEB3", |
|
whitesmoke: "#F5F5F5", |
|
yellowgreen: "#9ACD32", |
|
}; |
|
function M(j) { |
|
var p = j.indexOf("(", 3); |
|
var i = j.indexOf(")", p + 1); |
|
var m = j.substring(p + 1, i).split(","); |
|
if (m.length != 4 || j.charAt(3) != "a") { |
|
m[3] = 1; |
|
} |
|
return m; |
|
} |
|
function c(i) { |
|
return parseFloat(i) / 100; |
|
} |
|
function r(j, m, i) { |
|
return Math.min(i, Math.max(m, j)); |
|
} |
|
function I(ag) { |
|
var i, ai, aj, ah, ak, Z; |
|
ah = (parseFloat(ag[0]) / 360) % 360; |
|
if (ah < 0) { |
|
ah++; |
|
} |
|
ak = r(c(ag[1]), 0, 1); |
|
Z = r(c(ag[2]), 0, 1); |
|
if (ak == 0) { |
|
i = ai = aj = Z; |
|
} else { |
|
var j = Z < 0.5 ? Z * (1 + ak) : Z + ak - Z * ak; |
|
var m = 2 * Z - j; |
|
i = a(m, j, ah + 1 / 3); |
|
ai = a(m, j, ah); |
|
aj = a(m, j, ah - 1 / 3); |
|
} |
|
return ( |
|
"#" + |
|
k[Math.floor(i * 255)] + |
|
k[Math.floor(ai * 255)] + |
|
k[Math.floor(aj * 255)] |
|
); |
|
} |
|
function a(j, i, m) { |
|
if (m < 0) { |
|
m++; |
|
} |
|
if (m > 1) { |
|
m--; |
|
} |
|
if (6 * m < 1) { |
|
return j + (i - j) * 6 * m; |
|
} else { |
|
if (2 * m < 1) { |
|
return i; |
|
} else { |
|
if (3 * m < 2) { |
|
return j + (i - j) * (2 / 3 - m) * 6; |
|
} else { |
|
return j; |
|
} |
|
} |
|
} |
|
} |
|
var C = {}; |
|
function F(j) { |
|
if (j in C) { |
|
return C[j]; |
|
} |
|
var ag, |
|
Z = 1; |
|
j = String(j); |
|
if (j.charAt(0) == "#") { |
|
ag = j; |
|
} else { |
|
if (/^rgb/.test(j)) { |
|
var p = M(j); |
|
var ag = "#", |
|
ah; |
|
for (var m = 0; m < 3; m++) { |
|
if (p[m].indexOf("%") != -1) { |
|
ah = Math.floor(c(p[m]) * 255); |
|
} else { |
|
ah = +p[m]; |
|
} |
|
ag += k[r(ah, 0, 255)]; |
|
} |
|
Z = +p[3]; |
|
} else { |
|
if (/^hsl/.test(j)) { |
|
var p = M(j); |
|
ag = I(p); |
|
Z = p[3]; |
|
} else { |
|
ag = b[j] || j; |
|
} |
|
} |
|
} |
|
return (C[j] = { color: ag, alpha: Z }); |
|
} |
|
var o = { |
|
style: "normal", |
|
variant: "normal", |
|
weight: "normal", |
|
size: 10, |
|
family: "sans-serif", |
|
}; |
|
var L = {}; |
|
function E(i) { |
|
if (L[i]) { |
|
return L[i]; |
|
} |
|
var p = document.createElement("div"); |
|
var m = p.style; |
|
try { |
|
m.font = i; |
|
} catch (j) {} |
|
return (L[i] = { |
|
style: m.fontStyle || o.style, |
|
variant: m.fontVariant || o.variant, |
|
weight: m.fontWeight || o.weight, |
|
size: m.fontSize || o.size, |
|
family: m.fontFamily || o.family, |
|
}); |
|
} |
|
function u(m, j) { |
|
var i = {}; |
|
for (var ah in m) { |
|
i[ah] = m[ah]; |
|
} |
|
var ag = parseFloat(j.currentStyle.fontSize), |
|
Z = parseFloat(m.size); |
|
if (typeof m.size == "number") { |
|
i.size = m.size; |
|
} else { |
|
if (m.size.indexOf("px") != -1) { |
|
i.size = Z; |
|
} else { |
|
if (m.size.indexOf("em") != -1) { |
|
i.size = ag * Z; |
|
} else { |
|
if (m.size.indexOf("%") != -1) { |
|
i.size = (ag / 100) * Z; |
|
} else { |
|
if (m.size.indexOf("pt") != -1) { |
|
i.size = Z / 0.75; |
|
} else { |
|
i.size = ag; |
|
} |
|
} |
|
} |
|
} |
|
} |
|
i.size *= 0.981; |
|
return i; |
|
} |
|
function ac(i) { |
|
return ( |
|
i.style + |
|
" " + |
|
i.variant + |
|
" " + |
|
i.weight + |
|
" " + |
|
i.size + |
|
"px " + |
|
i.family |
|
); |
|
} |
|
var s = { butt: "flat", round: "round" }; |
|
function S(i) { |
|
return s[i] || "square"; |
|
} |
|
function D(i) { |
|
this.m_ = B(); |
|
this.mStack_ = []; |
|
this.aStack_ = []; |
|
this.currentPath_ = []; |
|
this.strokeStyle = "#000"; |
|
this.fillStyle = "#000"; |
|
this.lineWidth = 1; |
|
this.lineJoin = "miter"; |
|
this.lineCap = "butt"; |
|
this.miterLimit = d * 1; |
|
this.globalAlpha = 1; |
|
this.font = "10px sans-serif"; |
|
this.textAlign = "left"; |
|
this.textBaseline = "alphabetic"; |
|
this.canvas = i; |
|
var m = |
|
"width:" + |
|
i.clientWidth + |
|
"px;height:" + |
|
i.clientHeight + |
|
"px;overflow:hidden;position:absolute"; |
|
var j = i.ownerDocument.createElement("div"); |
|
j.style.cssText = m; |
|
i.appendChild(j); |
|
var p = j.cloneNode(false); |
|
p.style.backgroundColor = "red"; |
|
p.style.filter = "alpha(opacity=0)"; |
|
i.appendChild(p); |
|
this.element_ = j; |
|
this.arcScaleX_ = 1; |
|
this.arcScaleY_ = 1; |
|
this.lineScale_ = 1; |
|
} |
|
var q = D.prototype; |
|
q.clearRect = function () { |
|
if (this.textMeasureEl_) { |
|
this.textMeasureEl_.removeNode(true); |
|
this.textMeasureEl_ = null; |
|
} |
|
this.element_.innerHTML = ""; |
|
}; |
|
q.beginPath = function () { |
|
this.currentPath_ = []; |
|
}; |
|
q.moveTo = function (j, i) { |
|
var m = V(this, j, i); |
|
this.currentPath_.push({ type: "moveTo", x: m.x, y: m.y }); |
|
this.currentX_ = m.x; |
|
this.currentY_ = m.y; |
|
}; |
|
q.lineTo = function (j, i) { |
|
var m = V(this, j, i); |
|
this.currentPath_.push({ type: "lineTo", x: m.x, y: m.y }); |
|
this.currentX_ = m.x; |
|
this.currentY_ = m.y; |
|
}; |
|
q.bezierCurveTo = function (m, j, ak, aj, ai, ag) { |
|
var i = V(this, ai, ag); |
|
var ah = V(this, m, j); |
|
var Z = V(this, ak, aj); |
|
K(this, ah, Z, i); |
|
}; |
|
function K(i, Z, m, j) { |
|
i.currentPath_.push({ |
|
type: "bezierCurveTo", |
|
cp1x: Z.x, |
|
cp1y: Z.y, |
|
cp2x: m.x, |
|
cp2y: m.y, |
|
x: j.x, |
|
y: j.y, |
|
}); |
|
i.currentX_ = j.x; |
|
i.currentY_ = j.y; |
|
} |
|
q.quadraticCurveTo = function (ai, m, j, i) { |
|
var ah = V(this, ai, m); |
|
var ag = V(this, j, i); |
|
var aj = { |
|
x: this.currentX_ + (2 / 3) * (ah.x - this.currentX_), |
|
y: this.currentY_ + (2 / 3) * (ah.y - this.currentY_), |
|
}; |
|
var Z = { |
|
x: aj.x + (ag.x - this.currentX_) / 3, |
|
y: aj.y + (ag.y - this.currentY_) / 3, |
|
}; |
|
K(this, aj, Z, ag); |
|
}; |
|
q.arc = function (al, aj, ak, ag, j, m) { |
|
ak *= d; |
|
var ap = m ? "at" : "wa"; |
|
var am = al + A(ag) * ak - f; |
|
var ao = aj + l(ag) * ak - f; |
|
var i = al + A(j) * ak - f; |
|
var an = aj + l(j) * ak - f; |
|
if (am == i && !m) { |
|
am += 0.125; |
|
} |
|
var Z = V(this, al, aj); |
|
var ai = V(this, am, ao); |
|
var ah = V(this, i, an); |
|
this.currentPath_.push({ |
|
type: ap, |
|
x: Z.x, |
|
y: Z.y, |
|
radius: ak, |
|
xStart: ai.x, |
|
yStart: ai.y, |
|
xEnd: ah.x, |
|
yEnd: ah.y, |
|
}); |
|
}; |
|
q.rect = function (m, j, i, p) { |
|
this.moveTo(m, j); |
|
this.lineTo(m + i, j); |
|
this.lineTo(m + i, j + p); |
|
this.lineTo(m, j + p); |
|
this.closePath(); |
|
}; |
|
q.strokeRect = function (m, j, i, p) { |
|
var Z = this.currentPath_; |
|
this.beginPath(); |
|
this.moveTo(m, j); |
|
this.lineTo(m + i, j); |
|
this.lineTo(m + i, j + p); |
|
this.lineTo(m, j + p); |
|
this.closePath(); |
|
this.stroke(); |
|
this.currentPath_ = Z; |
|
}; |
|
q.fillRect = function (m, j, i, p) { |
|
var Z = this.currentPath_; |
|
this.beginPath(); |
|
this.moveTo(m, j); |
|
this.lineTo(m + i, j); |
|
this.lineTo(m + i, j + p); |
|
this.lineTo(m, j + p); |
|
this.closePath(); |
|
this.fill(); |
|
this.currentPath_ = Z; |
|
}; |
|
q.createLinearGradient = function (j, p, i, m) { |
|
var Z = new U("gradient"); |
|
Z.x0_ = j; |
|
Z.y0_ = p; |
|
Z.x1_ = i; |
|
Z.y1_ = m; |
|
return Z; |
|
}; |
|
q.createRadialGradient = function (p, ag, m, j, Z, i) { |
|
var ah = new U("gradientradial"); |
|
ah.x0_ = p; |
|
ah.y0_ = ag; |
|
ah.r0_ = m; |
|
ah.x1_ = j; |
|
ah.y1_ = Z; |
|
ah.r1_ = i; |
|
return ah; |
|
}; |
|
q.drawImage = function (aq, m) { |
|
var aj, ah, al, ay, ao, am, at, aA; |
|
var ak = aq.runtimeStyle.width; |
|
var ap = aq.runtimeStyle.height; |
|
aq.runtimeStyle.width = "auto"; |
|
aq.runtimeStyle.height = "auto"; |
|
var ai = aq.width; |
|
var aw = aq.height; |
|
aq.runtimeStyle.width = ak; |
|
aq.runtimeStyle.height = ap; |
|
if (arguments.length == 3) { |
|
aj = arguments[1]; |
|
ah = arguments[2]; |
|
ao = am = 0; |
|
at = al = ai; |
|
aA = ay = aw; |
|
} else { |
|
if (arguments.length == 5) { |
|
aj = arguments[1]; |
|
ah = arguments[2]; |
|
al = arguments[3]; |
|
ay = arguments[4]; |
|
ao = am = 0; |
|
at = ai; |
|
aA = aw; |
|
} else { |
|
if (arguments.length == 9) { |
|
ao = arguments[1]; |
|
am = arguments[2]; |
|
at = arguments[3]; |
|
aA = arguments[4]; |
|
aj = arguments[5]; |
|
ah = arguments[6]; |
|
al = arguments[7]; |
|
ay = arguments[8]; |
|
} else { |
|
throw Error("Invalid number of arguments"); |
|
} |
|
} |
|
} |
|
var az = V(this, aj, ah); |
|
var p = at / 2; |
|
var j = aA / 2; |
|
var ax = []; |
|
var i = 10; |
|
var ag = 10; |
|
ax.push( |
|
" <g_vml_:group", |
|
' coordsize="', |
|
d * i, |
|
",", |
|
d * ag, |
|
'"', |
|
' coordorigin="0,0"', |
|
' style="width:', |
|
i, |
|
"px;height:", |
|
ag, |
|
"px;position:absolute;" |
|
); |
|
if ( |
|
this.m_[0][0] != 1 || |
|
this.m_[0][1] || |
|
this.m_[1][1] != 1 || |
|
this.m_[1][0] |
|
) { |
|
var Z = []; |
|
Z.push( |
|
"M11=", |
|
this.m_[0][0], |
|
",", |
|
"M12=", |
|
this.m_[1][0], |
|
",", |
|
"M21=", |
|
this.m_[0][1], |
|
",", |
|
"M22=", |
|
this.m_[1][1], |
|
",", |
|
"Dx=", |
|
n(az.x / d), |
|
",", |
|
"Dy=", |
|
n(az.y / d), |
|
"" |
|
); |
|
var av = az; |
|
var au = V(this, aj + al, ah); |
|
var ar = V(this, aj, ah + ay); |
|
var an = V(this, aj + al, ah + ay); |
|
av.x = ab.max(av.x, au.x, ar.x, an.x); |
|
av.y = ab.max(av.y, au.y, ar.y, an.y); |
|
ax.push( |
|
"padding:0 ", |
|
n(av.x / d), |
|
"px ", |
|
n(av.y / d), |
|
"px 0;filter:progid:DXImageTransform.Microsoft.Matrix(", |
|
Z.join(""), |
|
", sizingmethod='clip');" |
|
); |
|
} else { |
|
ax.push("top:", n(az.y / d), "px;left:", n(az.x / d), "px;"); |
|
} |
|
ax.push( |
|
' ">', |
|
'<g_vml_:image src="', |
|
aq.src, |
|
'"', |
|
' style="width:', |
|
d * al, |
|
"px;", |
|
" height:", |
|
d * ay, |
|
'px"', |
|
' cropleft="', |
|
ao / ai, |
|
'"', |
|
' croptop="', |
|
am / aw, |
|
'"', |
|
' cropright="', |
|
(ai - ao - at) / ai, |
|
'"', |
|
' cropbottom="', |
|
(aw - am - aA) / aw, |
|
'"', |
|
" />", |
|
"</g_vml_:group>" |
|
); |
|
this.element_.insertAdjacentHTML("BeforeEnd", ax.join("")); |
|
}; |
|
q.stroke = function (ao) { |
|
var Z = 10; |
|
var ap = 10; |
|
var ag = 5000; |
|
var ai = { x: null, y: null }; |
|
var an = { x: null, y: null }; |
|
for (var aj = 0; aj < this.currentPath_.length; aj += ag) { |
|
var am = []; |
|
var ah = false; |
|
am.push( |
|
"<g_vml_:shape", |
|
' filled="', |
|
!!ao, |
|
'"', |
|
' style="position:absolute;width:', |
|
Z, |
|
"px;height:", |
|
ap, |
|
'px;"', |
|
' coordorigin="0,0"', |
|
' coordsize="', |
|
d * Z, |
|
",", |
|
d * ap, |
|
'"', |
|
' stroked="', |
|
!ao, |
|
'"', |
|
' path="' |
|
); |
|
var aq = false; |
|
for ( |
|
var ak = aj; |
|
ak < Math.min(aj + ag, this.currentPath_.length); |
|
ak++ |
|
) { |
|
if (ak % ag == 0 && ak > 0) { |
|
am.push( |
|
" m ", |
|
n(this.currentPath_[ak - 1].x), |
|
",", |
|
n(this.currentPath_[ak - 1].y) |
|
); |
|
} |
|
var m = this.currentPath_[ak]; |
|
var al; |
|
switch (m.type) { |
|
case "moveTo": |
|
al = m; |
|
am.push(" m ", n(m.x), ",", n(m.y)); |
|
break; |
|
case "lineTo": |
|
am.push(" l ", n(m.x), ",", n(m.y)); |
|
break; |
|
case "close": |
|
am.push(" x "); |
|
m = null; |
|
break; |
|
case "bezierCurveTo": |
|
am.push( |
|
" c ", |
|
n(m.cp1x), |
|
",", |
|
n(m.cp1y), |
|
",", |
|
n(m.cp2x), |
|
",", |
|
n(m.cp2y), |
|
",", |
|
n(m.x), |
|
",", |
|
n(m.y) |
|
); |
|
break; |
|
case "at": |
|
case "wa": |
|
am.push( |
|
" ", |
|
m.type, |
|
" ", |
|
n(m.x - this.arcScaleX_ * m.radius), |
|
",", |
|
n(m.y - this.arcScaleY_ * m.radius), |
|
" ", |
|
n(m.x + this.arcScaleX_ * m.radius), |
|
",", |
|
n(m.y + this.arcScaleY_ * m.radius), |
|
" ", |
|
n(m.xStart), |
|
",", |
|
n(m.yStart), |
|
" ", |
|
n(m.xEnd), |
|
",", |
|
n(m.yEnd) |
|
); |
|
break; |
|
} |
|
if (m) { |
|
if (ai.x == null || m.x < ai.x) { |
|
ai.x = m.x; |
|
} |
|
if (an.x == null || m.x > an.x) { |
|
an.x = m.x; |
|
} |
|
if (ai.y == null || m.y < ai.y) { |
|
ai.y = m.y; |
|
} |
|
if (an.y == null || m.y > an.y) { |
|
an.y = m.y; |
|
} |
|
} |
|
} |
|
am.push(' ">'); |
|
if (!ao) { |
|
w(this, am); |
|
} else { |
|
G(this, am, ai, an); |
|
} |
|
am.push("</g_vml_:shape>"); |
|
this.element_.insertAdjacentHTML("beforeEnd", am.join("")); |
|
} |
|
}; |
|
function w(m, ag) { |
|
var j = F(m.strokeStyle); |
|
var p = j.color; |
|
var Z = j.alpha * m.globalAlpha; |
|
var i = m.lineScale_ * m.lineWidth; |
|
if (i < 1) { |
|
Z *= i; |
|
} |
|
ag.push( |
|
"<g_vml_:stroke", |
|
' opacity="', |
|
Z, |
|
'"', |
|
' joinstyle="', |
|
m.lineJoin, |
|
'"', |
|
' miterlimit="', |
|
m.miterLimit, |
|
'"', |
|
' endcap="', |
|
S(m.lineCap), |
|
'"', |
|
' weight="', |
|
i, |
|
'px"', |
|
' color="', |
|
p, |
|
'" />' |
|
); |
|
} |
|
function G(aq, ai, aK, ar) { |
|
var aj = aq.fillStyle; |
|
var aB = aq.arcScaleX_; |
|
var aA = aq.arcScaleY_; |
|
var j = ar.x - aK.x; |
|
var p = ar.y - aK.y; |
|
if (aj instanceof U) { |
|
var an = 0; |
|
var aF = { x: 0, y: 0 }; |
|
var ax = 0; |
|
var am = 1; |
|
if (aj.type_ == "gradient") { |
|
var al = aj.x0_ / aB; |
|
var m = aj.y0_ / aA; |
|
var ak = aj.x1_ / aB; |
|
var aM = aj.y1_ / aA; |
|
var aJ = V(aq, al, m); |
|
var aI = V(aq, ak, aM); |
|
var ag = aI.x - aJ.x; |
|
var Z = aI.y - aJ.y; |
|
an = (Math.atan2(ag, Z) * 180) / Math.PI; |
|
if (an < 0) { |
|
an += 360; |
|
} |
|
if (an < 0.000001) { |
|
an = 0; |
|
} |
|
} else { |
|
var aJ = V(aq, aj.x0_, aj.y0_); |
|
aF = { x: (aJ.x - aK.x) / j, y: (aJ.y - aK.y) / p }; |
|
j /= aB * d; |
|
p /= aA * d; |
|
var aD = ab.max(j, p); |
|
ax = (2 * aj.r0_) / aD; |
|
am = (2 * aj.r1_) / aD - ax; |
|
} |
|
var av = aj.colors_; |
|
av.sort(function (aN, i) { |
|
return aN.offset - i.offset; |
|
}); |
|
var ap = av.length; |
|
var au = av[0].color; |
|
var at = av[ap - 1].color; |
|
var az = av[0].alpha * aq.globalAlpha; |
|
var ay = av[ap - 1].alpha * aq.globalAlpha; |
|
var aE = []; |
|
for (var aH = 0; aH < ap; aH++) { |
|
var ao = av[aH]; |
|
aE.push(ao.offset * am + ax + " " + ao.color); |
|
} |
|
ai.push( |
|
'<g_vml_:fill type="', |
|
aj.type_, |
|
'"', |
|
' method="none" focus="100%"', |
|
' color="', |
|
au, |
|
'"', |
|
' color2="', |
|
at, |
|
'"', |
|
' colors="', |
|
aE.join(","), |
|
'"', |
|
' opacity="', |
|
ay, |
|
'"', |
|
' g_o_:opacity2="', |
|
az, |
|
'"', |
|
' angle="', |
|
an, |
|
'"', |
|
' focusposition="', |
|
aF.x, |
|
",", |
|
aF.y, |
|
'" />' |
|
); |
|
} else { |
|
if (aj instanceof T) { |
|
if (j && p) { |
|
var ah = -aK.x; |
|
var aC = -aK.y; |
|
ai.push( |
|
"<g_vml_:fill", |
|
' position="', |
|
(ah / j) * aB * aB, |
|
",", |
|
(aC / p) * aA * aA, |
|
'"', |
|
' type="tile"', |
|
' src="', |
|
aj.src_, |
|
'" />' |
|
); |
|
} |
|
} else { |
|
var aL = F(aq.fillStyle); |
|
var aw = aL.color; |
|
var aG = aL.alpha * aq.globalAlpha; |
|
ai.push('<g_vml_:fill color="', aw, '" opacity="', aG, '" />'); |
|
} |
|
} |
|
} |
|
q.fill = function () { |
|
this.stroke(true); |
|
}; |
|
q.closePath = function () { |
|
this.currentPath_.push({ type: "close" }); |
|
}; |
|
function V(j, Z, p) { |
|
var i = j.m_; |
|
return { |
|
x: d * (Z * i[0][0] + p * i[1][0] + i[2][0]) - f, |
|
y: d * (Z * i[0][1] + p * i[1][1] + i[2][1]) - f, |
|
}; |
|
} |
|
q.save = function () { |
|
var i = {}; |
|
v(this, i); |
|
this.aStack_.push(i); |
|
this.mStack_.push(this.m_); |
|
this.m_ = J(B(), this.m_); |
|
}; |
|
q.restore = function () { |
|
if (this.aStack_.length) { |
|
v(this.aStack_.pop(), this); |
|
this.m_ = this.mStack_.pop(); |
|
} |
|
}; |
|
function h(i) { |
|
return ( |
|
isFinite(i[0][0]) && |
|
isFinite(i[0][1]) && |
|
isFinite(i[1][0]) && |
|
isFinite(i[1][1]) && |
|
isFinite(i[2][0]) && |
|
isFinite(i[2][1]) |
|
); |
|
} |
|
function aa(j, i, p) { |
|
if (!h(i)) { |
|
return; |
|
} |
|
j.m_ = i; |
|
if (p) { |
|
var Z = i[0][0] * i[1][1] - i[0][1] * i[1][0]; |
|
j.lineScale_ = N(H(Z)); |
|
} |
|
} |
|
q.translate = function (m, j) { |
|
var i = [ |
|
[1, 0, 0], |
|
[0, 1, 0], |
|
[m, j, 1], |
|
]; |
|
aa(this, J(i, this.m_), false); |
|
}; |
|
q.rotate = function (j) { |
|
var p = A(j); |
|
var m = l(j); |
|
var i = [ |
|
[p, m, 0], |
|
[-m, p, 0], |
|
[0, 0, 1], |
|
]; |
|
aa(this, J(i, this.m_), false); |
|
}; |
|
q.scale = function (m, j) { |
|
this.arcScaleX_ *= m; |
|
this.arcScaleY_ *= j; |
|
var i = [ |
|
[m, 0, 0], |
|
[0, j, 0], |
|
[0, 0, 1], |
|
]; |
|
aa(this, J(i, this.m_), true); |
|
}; |
|
q.transform = function (Z, p, ah, ag, j, i) { |
|
var m = [ |
|
[Z, p, 0], |
|
[ah, ag, 0], |
|
[j, i, 1], |
|
]; |
|
aa(this, J(m, this.m_), true); |
|
}; |
|
q.setTransform = function (ag, Z, ai, ah, p, j) { |
|
var i = [ |
|
[ag, Z, 0], |
|
[ai, ah, 0], |
|
[p, j, 1], |
|
]; |
|
aa(this, i, true); |
|
}; |
|
q.drawText_ = function (am, ak, aj, ap, ai) { |
|
var ao = this.m_, |
|
at = 1000, |
|
j = 0, |
|
ar = at, |
|
ah = { x: 0, y: 0 }, |
|
ag = []; |
|
var i = u(E(this.font), this.element_); |
|
var p = ac(i); |
|
var au = this.element_.currentStyle; |
|
var Z = this.textAlign.toLowerCase(); |
|
switch (Z) { |
|
case "left": |
|
case "center": |
|
case "right": |
|
break; |
|
case "end": |
|
Z = au.direction == "ltr" ? "right" : "left"; |
|
break; |
|
case "start": |
|
Z = au.direction == "rtl" ? "right" : "left"; |
|
break; |
|
default: |
|
Z = "left"; |
|
} |
|
switch (this.textBaseline) { |
|
case "hanging": |
|
case "top": |
|
ah.y = i.size / 1.75; |
|
break; |
|
case "middle": |
|
break; |
|
default: |
|
case null: |
|
case "alphabetic": |
|
case "ideographic": |
|
case "bottom": |
|
ah.y = -i.size / 2.25; |
|
break; |
|
} |
|
switch (Z) { |
|
case "right": |
|
j = at; |
|
ar = 0.05; |
|
break; |
|
case "center": |
|
j = ar = at / 2; |
|
break; |
|
} |
|
var aq = V(this, ak + ah.x, aj + ah.y); |
|
ag.push( |
|
'<g_vml_:line from="', |
|
-j, |
|
' 0" to="', |
|
ar, |
|
' 0.05" ', |
|
' coordsize="100 100" coordorigin="0 0"', |
|
' filled="', |
|
!ai, |
|
'" stroked="', |
|
!!ai, |
|
'" style="position:absolute;width:1px;height:1px;">' |
|
); |
|
if (ai) { |
|
w(this, ag); |
|
} else { |
|
G(this, ag, { x: -j, y: 0 }, { x: ar, y: i.size }); |
|
} |
|
var an = |
|
ao[0][0].toFixed(3) + |
|
"," + |
|
ao[1][0].toFixed(3) + |
|
"," + |
|
ao[0][1].toFixed(3) + |
|
"," + |
|
ao[1][1].toFixed(3) + |
|
",0,0"; |
|
var al = n(aq.x / d) + "," + n(aq.y / d); |
|
ag.push( |
|
'<g_vml_:skew on="t" matrix="', |
|
an, |
|
'" ', |
|
' offset="', |
|
al, |
|
'" origin="', |
|
j, |
|
' 0" />', |
|
'<g_vml_:path textpathok="true" />', |
|
'<g_vml_:textpath on="true" string="', |
|
af(am), |
|
'" style="v-text-align:', |
|
Z, |
|
";font:", |
|
af(p), |
|
'" /></g_vml_:line>' |
|
); |
|
this.element_.insertAdjacentHTML("beforeEnd", ag.join("")); |
|
}; |
|
q.fillText = function (m, i, p, j) { |
|
this.drawText_(m, i, p, j, false); |
|
}; |
|
q.strokeText = function (m, i, p, j) { |
|
this.drawText_(m, i, p, j, true); |
|
}; |
|
q.measureText = function (m) { |
|
if (!this.textMeasureEl_) { |
|
var i = |
|
'<span style="position:absolute;top:-20000px;left:0;padding:0;margin:0;border:none;white-space:pre;"></span>'; |
|
this.element_.insertAdjacentHTML("beforeEnd", i); |
|
this.textMeasureEl_ = this.element_.lastChild; |
|
} |
|
var j = this.element_.ownerDocument; |
|
this.textMeasureEl_.innerHTML = ""; |
|
this.textMeasureEl_.style.font = this.font; |
|
this.textMeasureEl_.appendChild(j.createTextNode(m)); |
|
return { width: this.textMeasureEl_.offsetWidth }; |
|
}; |
|
q.clip = function () {}; |
|
q.arcTo = function () {}; |
|
q.createPattern = function (j, i) { |
|
return new T(j, i); |
|
}; |
|
function U(i) { |
|
this.type_ = i; |
|
this.x0_ = 0; |
|
this.y0_ = 0; |
|
this.r0_ = 0; |
|
this.x1_ = 0; |
|
this.y1_ = 0; |
|
this.r1_ = 0; |
|
this.colors_ = []; |
|
} |
|
U.prototype.addColorStop = function (j, i) { |
|
i = F(i); |
|
this.colors_.push({ offset: j, color: i.color, alpha: i.alpha }); |
|
}; |
|
function T(j, i) { |
|
Q(j); |
|
switch (i) { |
|
case "repeat": |
|
case null: |
|
case "": |
|
this.repetition_ = "repeat"; |
|
break; |
|
case "repeat-x": |
|
case "repeat-y": |
|
case "no-repeat": |
|
this.repetition_ = i; |
|
break; |
|
default: |
|
O("SYNTAX_ERR"); |
|
} |
|
this.src_ = j.src; |
|
this.width_ = j.width; |
|
this.height_ = j.height; |
|
} |
|
function O(i) { |
|
throw new P(i); |
|
} |
|
function Q(i) { |
|
if (!i || i.nodeType != 1 || i.tagName != "IMG") { |
|
O("TYPE_MISMATCH_ERR"); |
|
} |
|
if (i.readyState != "complete") { |
|
O("INVALID_STATE_ERR"); |
|
} |
|
} |
|
function P(i) { |
|
this.code = this[i]; |
|
this.message = i + ": DOM Exception " + this.code; |
|
} |
|
var X = (P.prototype = new Error()); |
|
X.INDEX_SIZE_ERR = 1; |
|
X.DOMSTRING_SIZE_ERR = 2; |
|
X.HIERARCHY_REQUEST_ERR = 3; |
|
X.WRONG_DOCUMENT_ERR = 4; |
|
X.INVALID_CHARACTER_ERR = 5; |
|
X.NO_DATA_ALLOWED_ERR = 6; |
|
X.NO_MODIFICATION_ALLOWED_ERR = 7; |
|
X.NOT_FOUND_ERR = 8; |
|
X.NOT_SUPPORTED_ERR = 9; |
|
X.INUSE_ATTRIBUTE_ERR = 10; |
|
X.INVALID_STATE_ERR = 11; |
|
X.SYNTAX_ERR = 12; |
|
X.INVALID_MODIFICATION_ERR = 13; |
|
X.NAMESPACE_ERR = 14; |
|
X.INVALID_ACCESS_ERR = 15; |
|
X.VALIDATION_ERR = 16; |
|
X.TYPE_MISMATCH_ERR = 17; |
|
G_vmlCanvasManager = e; |
|
CanvasRenderingContext2D = D; |
|
CanvasGradient = U; |
|
CanvasPattern = T; |
|
DOMException = P; |
|
})(); |
|
}
|
|
|