﻿/*
* Copyright (c) 2009 Simo Kinnunen.
* Licensed under the MIT license.
*
* @version 1.03
*/
var Cufon = (function () { var m = function () { return m.replace.apply(null, arguments) }; var x = m.DOM = { ready: (function () { var C = false, E = { loaded: 1, complete: 1 }; var B = [], D = function () { if (C) { return } C = true; for (var F; F = B.shift(); F()) { } }; if (document.addEventListener) { document.addEventListener("DOMContentLoaded", D, false); window.addEventListener("pageshow", D, false) } if (!window.opera && document.readyState) { (function () { E[document.readyState] ? D() : setTimeout(arguments.callee, 10) })() } if (document.readyState && document.createStyleSheet) { (function () { try { document.body.doScroll("left"); D() } catch (F) { setTimeout(arguments.callee, 1) } })() } q(window, "load", D); return function (F) { if (!arguments.length) { D() } else { C ? F() : B.push(F) } } })(), root: function () { return document.documentElement || document.body } }; var n = m.CSS = { Size: function (C, B) { this.value = parseFloat(C); this.unit = String(C).match(/[a-z%]*$/)[0] || "px"; this.convert = function (D) { return D / B * this.value }; this.convertFrom = function (D) { return D / this.value * B }; this.toString = function () { return this.value + this.unit } }, addClass: function (C, B) { var D = C.className; C.className = D + (D && " ") + B; return C }, color: j(function (C) { var B = {}; B.color = C.replace(/^rgba\((.*?),\s*([\d.]+)\)/, function (E, D, F) { B.opacity = parseFloat(F); return "rgb(" + D + ")" }); return B }), fontStretch: j(function (B) { if (typeof B == "number") { return B } if (/%$/.test(B)) { return parseFloat(B) / 100 } return { "ultra-condensed": 0.5, "extra-condensed": 0.625, condensed: 0.75, "semi-condensed": 0.875, "semi-expanded": 1.125, expanded: 1.25, "extra-expanded": 1.5, "ultra-expanded": 2}[B] || 1 }), getStyle: function (C) { var B = document.defaultView; if (B && B.getComputedStyle) { return new a(B.getComputedStyle(C, null)) } if (C.currentStyle) { return new a(C.currentStyle) } return new a(C.style) }, gradient: j(function (F) { var G = { id: F, type: F.match(/^-([a-z]+)-gradient\(/)[1], stops: [] }, C = F.substr(F.indexOf("(")).match(/([\d.]+=)?(#[a-f0-9]+|[a-z]+\(.*?\)|[a-z]+)/ig); for (var E = 0, B = C.length, D; E < B; ++E) { D = C[E].split("=", 2).reverse(); G.stops.push([D[1] || E / (B - 1), D[0]]) } return G }), hasClass: function (C, B) { return RegExp("(?:^|\\s)" + B + "(?=\\s|$)").test(C.className) }, quotedList: j(function (E) { var D = [], C = /\s*((["'])([\s\S]*?[^\\])\2|[^,]+)\s*/g, B; while (B = C.exec(E)) { D.push(B[3] || B[1]) } return D }), recognizesMedia: j(function (G) { var E = document.createElement("style"), D, C, B; E.type = "text/css"; E.media = G; try { E.appendChild(document.createTextNode("/**/")) } catch (F) { } C = g("head")[0]; C.insertBefore(E, C.firstChild); D = (E.sheet || E.styleSheet); B = D && !D.disabled; C.removeChild(E); return B }), removeClass: function (D, C) { var B = RegExp("(?:^|\\s+)" + C + "(?=\\s|$)", "g"); D.className = D.className.replace(B, ""); return D }, supports: function (D, C) { var B = document.createElement("span").style; if (B[D] === undefined) { return false } B[D] = C; return B[D] === C }, textAlign: function (E, D, B, C) { if (D.get("textAlign") == "right") { if (B > 0) { E = " " + E } } else { if (B < C - 1) { E += " " } } return E }, textDecoration: function (G, F) { if (!F) { F = this.getStyle(G) } var C = { underline: null, overline: null, "line-through": null }; for (var B = G; B.parentNode && B.parentNode.nodeType == 1; ) { var E = true; for (var D in C) { if (!k(C, D) || C[D]) { continue } if (F.get("textDecoration").indexOf(D) != -1) { C[D] = F.get("color") } E = false } if (E) { break } F = this.getStyle(B = B.parentNode) } return C }, textShadow: j(function (F) { if (F == "none") { return null } var E = [], G = {}, B, C = 0; var D = /(#[a-f0-9]+|[a-z]+\(.*?\)|[a-z]+)|(-?[\d.]+[a-z%]*)|,/ig; while (B = D.exec(F)) { if (B[0] == ",") { E.push(G); G = {}; C = 0 } else { if (B[1]) { G.color = B[1] } else { G[["offX", "offY", "blur"][C++]] = B[2] } } } E.push(G); return E }), textTransform: (function () { var B = { uppercase: function (C) { return C.toUpperCase() }, lowercase: function (C) { return C.toLowerCase() }, capitalize: function (C) { return C.replace(/\b./g, function (D) { return D.toUpperCase() }) } }; return function (E, D) { var C = B[D.get("textTransform")]; return C ? C(E) : E } })(), whiteSpace: (function () { var B = { inline: 1, "inline-block": 1, "run-in": 1 }; return function (E, C, D) { if (B[C.get("display")]) { return E } if (!D.previousSibling) { E = E.replace(/^\s+/, "") } if (!D.nextSibling) { E = E.replace(/\s+$/, "") } return E } })() }; n.ready = (function () { var B = !n.recognizesMedia("all"), E = false; var D = [], H = function () { B = true; for (var K; K = D.shift(); K()) { } }; var I = g("link"), J = g("style"); function C(K) { return K.disabled || G(K.sheet, K.media || "screen") } function G(M, P) { if (!n.recognizesMedia(P || "all")) { return true } if (!M || M.disabled) { return false } try { var Q = M.cssRules, O; if (Q) { search: for (var L = 0, K = Q.length; O = Q[L], L < K; ++L) { switch (O.type) { case 2: break; case 3: if (!G(O.styleSheet, O.media.mediaText)) { return false } break; default: break search } } } } catch (N) { } return true } function F() { if (document.createStyleSheet) { return true } var L, K; for (K = 0; L = I[K]; ++K) { if (L.rel.toLowerCase() == "stylesheet" && !C(L)) { return false } } for (K = 0; L = J[K]; ++K) { if (!C(L)) { return false } } return true } x.ready(function () { if (!E) { E = n.getStyle(document.body).isUsable() } if (B || (E && F())) { H() } else { setTimeout(arguments.callee, 10) } }); return function (K) { if (B) { K() } else { D.push(K) } } })(); function s(C) { var B = this.face = C.face; this.glyphs = C.glyphs; this.w = C.w; this.baseSize = parseInt(B["units-per-em"], 10); this.family = B["font-family"].toLowerCase(); this.weight = B["font-weight"]; this.style = B["font-style"] || "normal"; this.viewBox = (function () { var E = B.bbox.split(/\s+/); var D = { minX: parseInt(E[0], 10), minY: parseInt(E[1], 10), maxX: parseInt(E[2], 10), maxY: parseInt(E[3], 10) }; D.width = D.maxX - D.minX; D.height = D.maxY - D.minY; D.toString = function () { return [this.minX, this.minY, this.width, this.height].join(" ") }; return D })(); this.ascent = -parseInt(B.ascent, 10); this.descent = -parseInt(B.descent, 10); this.height = -this.ascent + this.descent } function f() { var C = {}, B = { oblique: "italic", italic: "oblique" }; this.add = function (D) { (C[D.style] || (C[D.style] = {}))[D.weight] = D }; this.get = function (H, I) { var G = C[H] || C[B[H]] || C.normal || C.italic || C.oblique; if (!G) { return null } I = { normal: 400, bold: 700}[I] || parseInt(I, 10); if (G[I]) { return G[I] } var E = { 1: 1, 99: 0}[I % 100], K = [], F, D; if (E === undefined) { E = I > 400 } if (I == 500) { I = 400 } for (var J in G) { if (!k(G, J)) { continue } J = parseInt(J, 10); if (!F || J < F) { F = J } if (!D || J > D) { D = J } K.push(J) } if (I < F) { I = F } if (I > D) { I = D } K.sort(function (M, L) { return (E ? (M > I && L > I) ? M < L : M > L : (M < I && L < I) ? M > L : M < L) ? -1 : 1 }); return G[K[0]] } } function r() { function D(F, G) { if (F.contains) { return F.contains(G) } return F.compareDocumentPosition(G) & 16 } function B(G) { var F = G.relatedTarget; if (!F || D(this, F)) { return } C(this) } function E(F) { C(this) } function C(F) { setTimeout(function () { m.replace(F, d.get(F).options, true) }, 10) } this.attach = function (F) { if (F.onmouseenter === undefined) { q(F, "mouseover", B); q(F, "mouseout", B) } else { q(F, "mouseenter", E); q(F, "mouseleave", E) } } } function u() { var C = [], D = {}; function B(H) { var E = [], G; for (var F = 0; G = H[F]; ++F) { E[F] = C[D[G]] } return E } this.add = function (F, E) { D[F] = C.push(E) - 1 }; this.repeat = function () { var E = arguments.length ? B(arguments) : C, F; for (var G = 0; F = E[G++]; ) { m.replace(F[0], F[1], true) } } } function A() { var D = {}, B = 0; function C(E) { return E.cufid || (E.cufid = ++B) } this.get = function (E) { var F = C(E); return D[F] || (D[F] = {}) } } function a(B) { var D = {}, C = {}; this.extend = function (E) { for (var F in E) { if (k(E, F)) { D[F] = E[F] } } return this }; this.get = function (E) { return D[E] != undefined ? D[E] : B[E] }; this.getSize = function (F, E) { return C[F] || (C[F] = new n.Size(this.get(F), E)) }; this.isUsable = function () { return !!B } } function q(C, B, D) { if (C.addEventListener) { C.addEventListener(B, D, false) } else { if (C.attachEvent) { C.attachEvent("on" + B, function () { return D.call(C, window.event) }) } } } function v(C, B) { var D = d.get(C); if (D.options) { return C } if (B.hover && B.hoverables[C.nodeName.toLowerCase()]) { b.attach(C) } D.options = B; return C } function j(B) { var C = {}; return function (D) { if (!k(C, D)) { C[D] = B.apply(null, arguments) } return C[D] } } function c(F, E) { var B = n.quotedList(E.get("fontFamily").toLowerCase()), D; for (var C = 0; D = B[C]; ++C) { if (i[D]) { return i[D].get(E.get("fontStyle"), E.get("fontWeight")) } } return null } function g(B) { return document.getElementsByTagName(B) } function k(C, B) { return C.hasOwnProperty(B) } function h() { var B = {}, D, F; for (var E = 0, C = arguments.length; D = arguments[E], E < C; ++E) { for (F in D) { if (k(D, F)) { B[F] = D[F] } } } return B } function o(E, M, C, N, F, D) { var K = document.createDocumentFragment(), H; if (M === "") { return K } var L = N.separate; var I = M.split(p[L]), B = (L == "words"); if (B && t) { if (/^\s/.test(M)) { I.unshift("") } if (/\s$/.test(M)) { I.push("") } } for (var J = 0, G = I.length; J < G; ++J) { H = z[N.engine](E, B ? n.textAlign(I[J], C, J, G) : I[J], C, N, F, D, J < G - 1); if (H) { K.appendChild(H) } } return K } function l(C, J) { var B = n.getStyle(v(C, J)).extend(J); var D = c(C, B), E, H, G, F, I; for (E = C.firstChild; E; E = G) { H = E.nodeType; G = E.nextSibling; if (H == 3) { if (F) { F.appendData(E.data); C.removeChild(E) } else { F = E } if (G) { continue } } if (F) { C.replaceChild(o(D, n.whiteSpace(F.data, B, F), B, J, E, C), F); F = null } if (H == 1 && E.firstChild) { if (n.hasClass(E, "cufon")) { z[J.engine](D, null, B, J, E, C) } else { arguments.callee(E, J) } } } } var t = " ".split(/\s+/).length == 0; var d = new A(); var b = new r(); var y = new u(); var e = false; var z = {}, i = {}, w = { enableTextDecoration: false, engine: null, forceHitArea: false, hover: false, hoverables: { a: true }, printable: true, selector: (window.Sizzle || (window.jQuery && function (B) { return jQuery(B) }) || (window.dojo && dojo.query) || (window.Ext && Ext.query) || (window.$$ && function (B) { return $$(B) }) || (window.$ && function (B) { return $(B) }) || (document.querySelectorAll && function (B) { return document.querySelectorAll(B) }) || g), separate: "words", textShadow: "none" }; var p = { words: /[^\S\u00a0]+/, characters: "", none: /^/ }; m.now = function () { x.ready(); return m }; m.refresh = function () { y.repeat.apply(y, arguments); return m }; m.registerEngine = function (C, B) { if (!B) { return m } z[C] = B; return m.set("engine", C) }; m.registerFont = function (D) { var B = new s(D), C = B.family; if (!i[C]) { i[C] = new f() } i[C].add(B); return m.set("fontFamily", '"' + C + '"') }; m.replace = function (D, C, B) { C = h(w, C); if (!C.engine) { return m } if (!e) { n.addClass(x.root(), "cufon-active cufon-loading"); n.ready(function () { n.addClass(n.removeClass(x.root(), "cufon-loading"), "cufon-ready") }); e = true } if (C.hover) { C.forceHitArea = true } if (typeof C.textShadow == "string") { C.textShadow = n.textShadow(C.textShadow) } if (typeof C.color == "string" && /^-/.test(C.color)) { C.textGradient = n.gradient(C.color) } if (!B) { y.add(D, arguments) } if (D.nodeType || typeof D == "string") { D = [D] } n.ready(function () { for (var F = 0, E = D.length; F < E; ++F) { var G = D[F]; if (typeof G == "string") { m.replace(C.selector(G), C, true) } else { l(G, C) } } }); return m }; m.set = function (B, C) { w[B] = C; return m }; return m })(); Cufon.registerEngine("canvas", (function () { var b = document.createElement("canvas"); if (!b || !b.getContext || !b.getContext.apply) { return } b = null; var a = Cufon.CSS.supports("display", "inline-block"); var e = !a && (document.compatMode == "BackCompat" || /frameset|transitional/i.test(document.doctype.publicId)); var f = document.createElement("style"); f.type = "text/css"; f.appendChild(document.createTextNode((".cufon-canvas{text-indent:0;}@media screen,projection{.cufon-canvas{display:inline;display:inline-block;position:relative;vertical-align:middle;" + (e ? "" : "font-size:1px;line-height:1px;") + "}.cufon-canvas .cufon-alt{display:-moz-inline-box;display:inline-block;width:0;height:0;overflow:hidden;text-indent:-10000in;}" + (a ? ".cufon-canvas canvas{position:relative;}" : ".cufon-canvas canvas{position:absolute;}") + "}@media print{.cufon-canvas{padding:0;}.cufon-canvas canvas{display:none;}.cufon-canvas .cufon-alt{display:inline;}}").replace(/;/g, "!important;"))); document.getElementsByTagName("head")[0].appendChild(f); function d(p, h) { var n = 0, m = 0; var g = [], o = /([mrvxe])([^a-z]*)/g, k; generate: for (var j = 0; k = o.exec(p); ++j) { var l = k[2].split(","); switch (k[1]) { case "v": g[j] = { m: "bezierCurveTo", a: [n + ~ ~l[0], m + ~ ~l[1], n + ~ ~l[2], m + ~ ~l[3], n += ~ ~l[4], m += ~ ~l[5]] }; break; case "r": g[j] = { m: "lineTo", a: [n += ~ ~l[0], m += ~ ~l[1]] }; break; case "m": g[j] = { m: "moveTo", a: [n = ~ ~l[0], m = ~ ~l[1]] }; break; case "x": g[j] = { m: "closePath" }; break; case "e": break generate } h[g[j].m].apply(h, g[j].a) } return g } function c(m, k) { for (var j = 0, h = m.length; j < h; ++j) { var g = m[j]; k[g.m].apply(k, g.a) } } return function (ah, H, Z, D, L, ai) { var n = (H === null); if (n) { H = L.alt } var J = ah.viewBox; var p = Z.getSize("fontSize", ah.baseSize); var X = Z.get("letterSpacing"); X = (X == "normal") ? 0 : p.convertFrom(parseInt(X, 10)); var K = 0, Y = 0, W = 0, F = 0; var I = D.textShadow, U = []; if (I) { for (var ag = I.length; ag--; ) { var O = I[ag]; var T = p.convertFrom(parseFloat(O.offX)); var R = p.convertFrom(parseFloat(O.offY)); U[ag] = [T, R]; if (R < K) { K = R } if (T > Y) { Y = T } if (R > W) { W = R } if (T < F) { F = T } } } var al = Cufon.CSS.textTransform(H, Z).split(""), B; var o = ah.glyphs, E, r, ac; var h = 0, v, N = []; for (var ag = 0, ae = 0, ab = al.length; ag < ab; ++ag) { E = o[B = al[ag]] || ah.missingGlyph; if (!E) { continue } if (r) { h -= ac = r[B] || 0; N[ae - 1] -= ac } h += v = N[ae++] = ~ ~(E.w || ah.w) + X; r = E.k } if (v === undefined) { return null } Y += J.width - v; F += J.minX; var C, q; if (n) { C = L; q = L.firstChild } else { C = document.createElement("span"); C.className = "cufon cufon-canvas"; C.alt = H; q = document.createElement("canvas"); C.appendChild(q); if (D.printable) { var ad = document.createElement("span"); ad.className = "cufon-alt"; ad.appendChild(document.createTextNode(H)); C.appendChild(ad) } } var am = C.style; var Q = q.style; var m = p.convert(J.height); var ak = Math.ceil(m); var V = ak / m; var P = V * Cufon.CSS.fontStretch(Z.get("fontStretch")); var S = h * P; var aa = Math.ceil(p.convert(S + Y - F)); var t = Math.ceil(p.convert(J.height - K + W)); q.width = aa; q.height = t; Q.width = aa + "px"; Q.height = t + "px"; K += J.minY; Q.top = Math.round(p.convert(K - ah.ascent)) + "px"; Q.left = Math.round(p.convert(F)) + "px"; var A = Math.ceil(p.convert(S)) + "px"; if (a) { am.width = A; am.height = p.convert(ah.height) + "px" } else { am.paddingLeft = A; am.paddingBottom = (p.convert(ah.height) - 1) + "px" } var aj = q.getContext("2d"), M = m / J.height; aj.scale(M, M * V); aj.translate(-F, -K); aj.lineWidth = ah.face["underline-thickness"]; aj.save(); function s(i, g) { aj.strokeStyle = g; aj.beginPath(); aj.moveTo(0, i); aj.lineTo(h, i); aj.stroke() } var u = D.enableTextDecoration ? Cufon.CSS.textDecoration(ai, Z) : {}; if (u.underline) { s(-ah.face["underline-position"], u.underline) } if (u.overline) { s(ah.ascent, u.overline) } function af() { aj.scale(P, 1); for (var x = 0, k = 0, g = al.length; x < g; ++x) { var y = o[al[x]] || ah.missingGlyph; if (!y) { continue } if (y.d) { aj.beginPath(); if (y.code) { c(y.code, aj) } else { y.code = d("m" + y.d, aj) } aj.fill() } aj.translate(N[k++], 0) } aj.restore() } if (I) { for (var ag = I.length; ag--; ) { var O = I[ag]; aj.save(); aj.fillStyle = O.color; aj.translate.apply(aj, U[ag]); af() } } var z = D.textGradient; if (z) { var G = z.stops, w = aj.createLinearGradient(0, J.minY, 0, J.maxY); for (var ag = 0, ab = G.length; ag < ab; ++ag) { w.addColorStop.apply(w, G[ag]) } aj.fillStyle = w } else { aj.fillStyle = Z.get("color") } af(); if (u["line-through"]) { s(-ah.descent, u["line-through"]) } return C } })()); Cufon.registerEngine("vml", (function () { var e = document.namespaces; if (!e) { return } e.add("cvml", "urn:schemas-microsoft-com:vml"); e = null; var b = document.createElement("cvml:shape"); b.style.behavior = "url(#default#VML)"; if (!b.coordsize) { return } b = null; var g = (document.documentMode || 0) < 8; document.write(('<style type="text/css">.cufon-vml-canvas{text-indent:0;}@media screen{cvml\\:shape,cvml\\:rect,cvml\\:fill,cvml\\:shadow{behavior:url(#default#VML);display:block;antialias:true;position:absolute;}.cufon-vml-canvas{position:absolute;text-align:left;}.cufon-vml{display:inline-block;position:relative;vertical-align:' + (g ? "middle" : "text-bottom") + ";}.cufon-vml .cufon-alt{position:absolute;left:-10000in;font-size:1px;}a .cufon-vml{cursor:pointer}}@media print{.cufon-vml *{display:none;}.cufon-vml .cufon-alt{display:inline;}}</style>").replace(/;/g, "!important;")); function c(h, i) { return a(h, /(?:em|ex|%)$|^[a-z-]+$/i.test(i) ? "1em" : i) } function a(k, l) { if (/px$/i.test(l)) { return parseFloat(l) } var j = k.style.left, i = k.runtimeStyle.left; k.runtimeStyle.left = k.currentStyle.left; k.style.left = l.replace("%", "em"); var h = k.style.pixelLeft; k.style.left = j; k.runtimeStyle.left = i; return h } var f = {}; function d(o) { var p = o.id; if (!f[p]) { var m = o.stops, n = document.createElement("cvml:fill"), h = []; n.type = "gradient"; n.angle = 180; n.focus = "0"; n.method = "sigma"; n.color = m[0][1]; for (var l = 1, i = m.length - 1; l < i; ++l) { h.push(m[l][0] * 100 + "% " + m[l][1]) } n.colors = h.join(","); n.color2 = m[i][1]; f[p] = n } return f[p] } return function (aj, K, ad, G, O, ak, ab) { var o = (K === null); if (o) { K = O.alt } var M = aj.viewBox; var q = ad.computedFontSize || (ad.computedFontSize = new Cufon.CSS.Size(c(ak, ad.get("fontSize")) + "px", aj.baseSize)); var aa = ad.computedLSpacing; if (aa == undefined) { aa = ad.get("letterSpacing"); ad.computedLSpacing = aa = (aa == "normal") ? 0 : ~ ~q.convertFrom(a(ak, aa)) } var C, r; if (o) { C = O; r = O.firstChild } else { C = document.createElement("span"); C.className = "cufon cufon-vml"; C.alt = K; r = document.createElement("span"); r.className = "cufon-vml-canvas"; C.appendChild(r); if (G.printable) { var ag = document.createElement("span"); ag.className = "cufon-alt"; ag.appendChild(document.createTextNode(K)); C.appendChild(ag) } if (!ab) { C.appendChild(document.createElement("cvml:shape")) } } var ap = C.style; var V = r.style; var m = q.convert(M.height), am = Math.ceil(m); var Z = am / m; var T = Z * Cufon.CSS.fontStretch(ad.get("fontStretch")); var Y = M.minX, X = M.minY; V.height = am; V.top = Math.round(q.convert(X - aj.ascent)); V.left = Math.round(q.convert(Y)); ap.height = q.convert(aj.height) + "px"; var v = G.enableTextDecoration ? Cufon.CSS.textDecoration(ak, ad) : {}; var J = ad.get("color"); var ao = Cufon.CSS.textTransform(K, ad).split(""), B; var p = aj.glyphs, H, s, af; var h = 0, P = [], W = 0, x; var z, L = G.textShadow; for (var ai = 0, ah = 0, ae = ao.length; ai < ae; ++ai) { H = p[B = ao[ai]] || aj.missingGlyph; if (!H) { continue } if (s) { h -= af = s[B] || 0; P[ah - 1] -= af } h += x = P[ah++] = ~ ~(H.w || aj.w) + aa; s = H.k } if (x === undefined) { return null } var A = -Y + h + (M.width - x); var an = q.convert(A * T), ac = Math.round(an); var S = A + "," + M.height, n; var N = "r" + S + "ns"; var y = G.textGradient && d(G.textGradient); for (ai = 0, ah = 0; ai < ae; ++ai) { H = p[ao[ai]] || aj.missingGlyph; if (!H) { continue } if (o) { z = r.childNodes[ah]; while (z.firstChild) { z.removeChild(z.firstChild) } } else { z = document.createElement("cvml:shape"); r.appendChild(z) } z.stroked = "f"; z.coordsize = S; z.coordorigin = n = (Y - W) + "," + X; z.path = (H.d ? "m" + H.d + "xe" : "") + "m" + n + N; z.fillcolor = J; if (y) { z.appendChild(y.cloneNode(false)) } var al = z.style; al.width = ac; al.height = am; if (L) { var u = L[0], t = L[1]; var F = Cufon.CSS.color(u.color), D; var R = document.createElement("cvml:shadow"); R.on = "t"; R.color = F.color; R.offset = u.offX + "," + u.offY; if (t) { D = Cufon.CSS.color(t.color); R.type = "double"; R.color2 = D.color; R.offset2 = t.offX + "," + t.offY } R.opacity = F.opacity || (D && D.opacity) || 1; z.appendChild(R) } W += P[ah++] } var Q = z.nextSibling, w, E; if (G.forceHitArea) { if (!Q) { Q = document.createElement("cvml:rect"); Q.stroked = "f"; Q.className = "cufon-vml-cover"; w = document.createElement("cvml:fill"); w.opacity = 0; Q.appendChild(w); r.appendChild(Q) } E = Q.style; E.width = ac; E.height = am } else { if (Q) { r.removeChild(Q) } } ap.width = Math.max(Math.ceil(q.convert(h * T)), 0); if (g) { var U = ad.computedYAdjust; if (U === undefined) { var I = ad.get("lineHeight"); if (I == "normal") { I = "1em" } else { if (!isNaN(I)) { I += "em" } } ad.computedYAdjust = U = 0.5 * (a(ak, I) - parseFloat(ap.height)) } if (U) { ap.marginTop = Math.ceil(U) + "px"; ap.marginBottom = U + "px" } } return C } })());
