function browserdetect() { var A = navigator.userAgent.toLowerCase(); this.isIE = A.indexOf("msie") > -1; this.ieVer = this.isIE ? /msie\s(\d\.\d)/.exec(A)[1] : 0;this.isMoz = A.indexOf("firefox") != -1;this.isSafari = A.indexOf("safari") != -1;this.quirksMode = this.isIE && (!document.compatMode || document.compatMode.indexOf("BackCompat") > -1);this.isOp = "opera" in window;this.isWebKit = A.indexOf("webkit") != -1; if (this.isIE) { this.get_style = function (D, F) { if (!(F in D.currentStyle)) { return "" } var C = /^([\d.]+)(\w*)/.exec(D.currentStyle[F]); if (!C) { return D.currentStyle[F] } if (C[1] == 0) { return "0" } if (C[2] && C[2] !== "px") { var B = D.style.left; var E = D.runtimeStyle.left; D.runtimeStyle.left = D.currentStyle.left; D.style.left = C[1] + C[2]; C[0] = D.style.pixelLeft; D.style.left = B; D.runtimeStyle.left = E } return C[0] } } else { this.get_style = function (B, C) { C = C.replace(/([a-z])([A-Z])/g, "$1-$2").toLowerCase(); return document.defaultView.getComputedStyle(B, "").getPropertyValue(C) } } } var curvyBrowser = new browserdetect; if (curvyBrowser.isIE) { try { document.execCommand("BackgroundImageCache", false, true) } catch (e) {} } function curvyCnrSpec(A) { this.selectorText = A; this.tlR = this.trR = this.blR = this.brR = 0; this.tlu = this.tru = this.blu = this.bru = ""; this.antiAlias = true } curvyCnrSpec.prototype.setcorner = function (B, C, A, D) { if (!B) { this.tlR = this.trR = this.blR = this.brR = parseInt(A); this.tlu = this.tru = this.blu = this.bru = D } else { propname = B.charAt(0) + C.charAt(0); this[propname + "R"] = parseInt(A); this[propname + "u"] = D } }; curvyCnrSpec.prototype.get = function (D) { if (/^(t|b)(l|r)(R|u)$/.test(D)) { return this[D] } if (/^(t|b)(l|r)Ru$/.test(D)) { var C = D.charAt(0) + D.charAt(1); return this[C + "R"] + this[C + "u"] } if (/^(t|b)Ru?$/.test(D)) { var B = D.charAt(0); B += this[B + "lR"] > this[B + "rR"] ? "l" : "r"; var A = this[B + "R"]; if (D.length === 3 && D.charAt(2) === "u") { A += this[B = "u"] } return A } throw new Error("Don't recognize property " + D) }; curvyCnrSpec.prototype.radiusdiff = function (A) { if (A !== "t" && A !== "b") { throw new Error("Param must be 't' or 'b'") } return Math.abs(this[A + "lR"] - this[A + "rR"]) }; curvyCnrSpec.prototype.setfrom = function (A) { this.tlu = this.tru = this.blu = this.bru = "px"; if ("tl" in A) { this.tlR = A.tl.radius } if ("tr" in A) { this.trR = A.tr.radius } if ("bl" in A) { this.blR = A.bl.radius } if ("br" in A) { this.brR = A.br.radius } if ("antiAlias" in A) { this.antiAlias = A.antiAlias } }; curvyCnrSpec.prototype.cloneOn = function (G) { var E = ["tl", "tr", "bl", "br"]; var H = 0; var C, A; for (C in E) { if (!isNaN(C)) { A = this[E[C] + "u"]; if (A !== "" && A !== "px") { H = new curvyCnrSpec; break } } } if (!H) { H = this } else { var B, D, F = curvyBrowser.get_style(G, "left"); for (C in E) { if (!isNaN(C)) { B = E[C]; A = this[B + "u"]; D = this[B + "R"]; if (A !== "px") { var F = G.style.left; G.style.left = D + A; D = G.style.pixelLeft; G.style.left = F } H[B + "R"] = D; H[B + "u"] = "px" } } G.style.left = F } return H }; curvyCnrSpec.prototype.radiusSum = function (A) { if (A !== "t" && A !== "b") { throw new Error("Param must be 't' or 'b'") } return this[A + "lR"] + this[A + "rR"] }; curvyCnrSpec.prototype.radiusCount = function (A) { var B = 0; if (this[A + "lR"]) { ++B } if (this[A + "rR"]) { ++B } return B }; curvyCnrSpec.prototype.cornerNames = function () { var A = []; if (this.tlR) { A.push("tl") } if (this.trR) { A.push("tr") } if (this.blR) { A.push("bl") } if (this.brR) { A.push("br") } return A }; function operasheet(C) { var A = document.styleSheets.item(C).ownerNode.text; A = A.replace(/\/\*(\n|\r|.)*?\*\//g, ""); var D = new RegExp("^s*([\\w.#][-\\w.#, ]+)[\\n\\s]*\\{([^}]+border-((top|bottom)-(left|right)-)?radius[^}]*)\\}", "mg"); var G; this.rules = []; while ((G = D.exec(A)) !== null) { var F = new RegExp("(..)border-((top|bottom)-(left|right)-)?radius:\\s*([\\d.]+)(in|em|px|ex|pt)", "g"); var E, B = new curvyCnrSpec(G[1]); while ((E = F.exec(G[2])) !== null) { if (E[1] !== "z-") { B.setcorner(E[3], E[4], E[5], E[6]) } } this.rules.push(B) } } operasheet.contains_border_radius = function (A) { return /border-((top|bottom)-(left|right)-)?radius/.test(document.styleSheets.item(A).ownerNode.text) }; function curvyCorners() { var G, D, E, B, J; if (typeof arguments[0] !== "object") { throw curvyCorners.newError("First parameter of curvyCorners() must be an object.") } if (arguments[0] instanceof curvyCnrSpec) { B = arguments[0]; if (!B.selectorText && typeof arguments[1] === "string") { B.selectorText = arguments[1] } } else { if (typeof arguments[1] !== "object" && typeof arguments[1] !== "string") { throw curvyCorners.newError("Second parameter of curvyCorners() must be an object or a class name.") } D = arguments[1]; if (typeof D !== "string") { D = "" } if (D !== "" && D.charAt(0) !== "." && "autoPad" in arguments[0]) { D = "." + D } B = new curvyCnrSpec(D); B.setfrom(arguments[0]) } if (B.selectorText) { J = 0; var I = B.selectorText.replace(/\s+$/, "").split(/,\s*/); E = new Array; function A(M) { var L = M.split("#"); return (L.length === 2 ? "#" : "") + L.pop() } for (G = 0; G < I.length; ++G) { var K = A(I[G]); var H = K.split(" "); switch (K.charAt(0)) { case "#": D = H.length === 1 ? K : H[0];D = document.getElementById(D.substr(1)); if (D === null) { curvyCorners.alert("No object with ID " + K + " exists yet.\nCall curvyCorners(settings, obj) when it is created.") } else { if (H.length === 1) { E.push(D) } else { E = E.concat(curvyCorners.getElementsByClass(H[1], D)) } } break; default: if (H.length === 1) { E = E.concat(curvyCorners.getElementsByClass(K)) } else { var C = curvyCorners.getElementsByClass(H[0]); for (D = 0; D < C.length; ++D) { E = E.concat(curvyCorners.getElementsByClass(H[1], C)) } } } } } else { J = 1; E = arguments } for (G = J, D = E.length; G < D; ++G) { if (E[G] && (!("IEborderRadius" in E[G].style) || E[G].style.IEborderRadius != "set")) { if (E[G].className && E[G].className.indexOf("curvyRedraw") !== -1) { if (typeof curvyCorners.redrawList === "undefined") { curvyCorners.redrawList = new Array } curvyCorners.redrawList.push({ node: E[G], spec: B, copy: E[G].cloneNode(false) }) } E[G].style.IEborderRadius = "set"; var F = new curvyObject(B, E[G]); F.applyCorners() } } } curvyCorners.prototype.applyCornersToAll = function () { curvyCorners.alert("This function is now redundant. Just call curvyCorners(). See documentation.") }; curvyCorners.redraw = function () { if (!curvyBrowser.isOp && !curvyBrowser.isIE) { return } if (!curvyCorners.redrawList) { throw curvyCorners.newError("curvyCorners.redraw() has nothing to redraw.") } var E = curvyCorners.bock_redraw; curvyCorners.block_redraw = true; for (var A in curvyCorners.redrawList) { if (isNaN(A)) { continue } var D = curvyCorners.redrawList[A]; if (!D.node.clientWidth) { continue } var B = D.copy.cloneNode(false); for (var C = D.node.firstChild; C != null; C = C.nextSibling) { if (C.className === "autoPadDiv") { break } } if (!C) { curvyCorners.alert("Couldn't find autoPad DIV"); break } D.node.parentNode.replaceChild(B, D.node); while (C.firstChild) { B.appendChild(C.removeChild(C.firstChild)) } D = new curvyObject(D.spec, D.node = B); D.applyCorners() } curvyCorners.block_redraw = E }; curvyCorners.adjust = function (obj, prop, newval) { if (curvyBrowser.isOp || curvyBrowser.isIE) { if (!curvyCorners.redrawList) { throw curvyCorners.newError("curvyCorners.adjust() has nothing to adjust.") } var i, j = curvyCorners.redrawList.length; for (i = 0; i < j; ++i) { if (curvyCorners.redrawList[i].node === obj) { break } } if (i === j) { throw curvyCorners.newError("Object not redrawable") } obj = curvyCorners.redrawList[i].copy } if (prop.indexOf(".") === -1) { obj[prop] = newval } else { eval("obj." + prop + "='" + newval + "'") } }; curvyCorners.handleWinResize = function () { if (!curvyCorners.block_redraw) { curvyCorners.redraw() } }; curvyCorners.setWinResize = function (A) { curvyCorners.block_redraw = !A }; curvyCorners.newError = function (A) { return new Error("curvyCorners Error:\n" + A) }; curvyCorners.alert = function (A) { if (typeof curvyCornersVerbose === "undefined" || curvyCornersVerbose) { alert(A) } }; function curvyObject() { var U; this.box = arguments[1]; this.settings = arguments[0]; this.topContainer = this.bottomContainer = this.shell = U = null; var K = this.box.clientWidth; if (!K && curvyBrowser.isIE) { this.box.style.zoom = 1; K = this.box.clientWidth } if (!K) { if (!this.box.parentNode) { throw this.newError("box has no parent!") } for (U = this.box;; U = U.parentNode) { if (!U || U.tagName === "BODY") { this.applyCorners = function () {}; curvyCorners.alert(this.errmsg("zero-width box with no accountable parent", "warning")); return } if (U.style.display === "none") { break } } U.style.display = "block"; K = this.box.clientWidth } if (arguments[0] instanceof curvyCnrSpec) { this.spec = arguments[0].cloneOn(this.box) } else { this.spec = new curvyCnrSpec(""); this.spec.setfrom(this.settings) } var b = curvyBrowser.get_style(this.box, "borderTopWidth"); var J = curvyBrowser.get_style(this.box, "borderBottomWidth"); var D = curvyBrowser.get_style(this.box, "borderLeftWidth"); var B = curvyBrowser.get_style(this.box, "borderRightWidth"); var I = curvyBrowser.get_style(this.box, "borderTopColor"); var G = curvyBrowser.get_style(this.box, "borderBottomColor"); var A = curvyBrowser.get_style(this.box, "borderLeftColor"); var E = curvyBrowser.get_style(this.box, "backgroundColor"); var C = curvyBrowser.get_style(this.box, "backgroundImage"); var Y = curvyBrowser.get_style(this.box, "backgroundRepeat"); if (this.box.currentStyle && this.box.currentStyle.backgroundPositionX) { var R = curvyBrowser.get_style(this.box, "backgroundPositionX"); var P = curvyBrowser.get_style(this.box, "backgroundPositionY") } else { var R = curvyBrowser.get_style(this.box, "backgroundPosition"); R = R.split(" "); var P = R[1]; R = R[0] } var O = curvyBrowser.get_style(this.box, "position"); var Z = curvyBrowser.get_style(this.box, "paddingTop"); var c = curvyBrowser.get_style(this.box, "paddingBottom"); var Q = curvyBrowser.get_style(this.box, "paddingLeft"); var a = curvyBrowser.get_style(this.box, "paddingRight"); var S = curvyBrowser.get_style(this.box, "border"); filter = curvyBrowser.ieVer > 7 ? curvyBrowser.get_style(this.box, "filter") : null; var H = this.spec.get("tR"); var M = this.spec.get("bR"); var W = function (f) { if (typeof f === "number") { return f } if (typeof f !== "string") { throw new Error("unexpected styleToNPx type " + typeof f) } var d = /^[-\d.]([a-z]+)$/.exec(f); if (d && d[1] != "px") { throw new Error("Unexpected unit " + d[1]) } if (isNaN(f = parseInt(f))) { f = 0 } return f }; var T = function (d) { return d <= 0 ? "0" : d + "px" }; try { this.borderWidth = W(b); this.borderWidthB = W(J); this.borderWidthL = W(D); this.borderWidthR = W(B); this.boxColour = curvyObject.format_colour(E); this.topPadding = W(Z); this.bottomPadding = W(c); this.leftPadding = W(Q); this.rightPadding = W(a); this.boxWidth = K; this.boxHeight = this.box.clientHeight; this.borderColour = curvyObject.format_colour(I); this.borderColourB = curvyObject.format_colour(G); this.borderColourL = curvyObject.format_colour(A); this.borderString = this.borderWidth + "px solid " + this.borderColour; this.borderStringB = this.borderWidthB + "px solid " + this.borderColourB; this.backgroundImage = ((C != "none") ? C : ""); this.backgroundRepeat = Y } catch (X) { throw this.newError("getMessage" in X ? X.getMessage() : X.message) } var F = this.boxHeight; var V = K; if (curvyBrowser.isOp) { R = W(R); P = W(P); if (R) { var N = V + this.borderWidthL + this.borderWidthR; if (R > N) { R = N } R = (N / R * 100) + "%" } if (P) { var N = F + this.borderWidth + this.borderWidthB; if (P > N) { P = N } P = (N / P * 100) + "%" } } if (curvyBrowser.quirksMode) {} else { this.boxWidth -= this.leftPadding + this.rightPadding; this.boxHeight -= this.topPadding + this.bottomPadding } this.contentContainer = document.createElement("div"); if (filter) { this.contentContainer.style.filter = filter } while (this.box.firstChild) { this.contentContainer.appendChild(this.box.removeChild(this.box.firstChild)) } if (O != "absolute") { this.box.style.position = "relative" } this.box.style.padding = "0";this.box.style.border = this.box.style.backgroundImage = "none";this.box.style.backgroundColor = "transparent";this.box.style.width = (V + this.borderWidthL + this.borderWidthR) + "px";this.box.style.height = (F + this.borderWidth + this.borderWidthB) + "px"; var L = document.createElement("div");L.style.position = "absolute"; if (filter) { L.style.filter = filter } if (curvyBrowser.quirksMode) { L.style.width = (V + this.borderWidthL + this.borderWidthR) + "px" } else { L.style.width = V + "px" } L.style.height = T(F + this.borderWidth + this.borderWidthB - H - M);L.style.padding = "0";L.style.top = H + "px";L.style.left = "0"; if (this.borderWidthL) { L.style.borderLeft = this.borderWidthL + "px solid " + this.borderColourL } if (this.borderWidth && !H) { L.style.borderTop = this.borderWidth + "px solid " + this.borderColour } if (this.borderWidthR) { L.style.borderRight = this.borderWidthR + "px solid " + this.borderColourL } if (this.borderWidthB && !M) { L.style.borderBottom = this.borderWidthB + "px solid " + this.borderColourB } L.style.backgroundColor = E;L.style.backgroundImage = this.backgroundImage;L.style.backgroundRepeat = this.backgroundRepeat;this.shell = this.box.appendChild(L);K = curvyBrowser.get_style(this.shell, "width"); if (K === "" || K === "auto" || K.indexOf("%") !== -1) { throw this.newError("Shell width is " + K) } this.boxWidth = (K != "" && K != "auto" && K.indexOf("%") == -1) ? parseInt(K) : this.shell.clientWidth;this.applyCorners = function () { if (this.backgroundObject) { var w = function (AO, i, t) { if (AO === 0) { return 0 } var k; if (AO === "right" || AO === "bottom") { return t - i } if (AO === "center") { return (t - i) / 2 } if (AO.indexOf("%") > 0) { return (t - i) * 100 / parseInt(AO) } return W(AO) }; this.backgroundPosX = w(R, this.backgroundObject.width, V); this.backgroundPosY = w(P, this.backgroundObject.height, F) } else { if (this.backgroundImage) { this.backgroundPosX = W(R); this.backgroundPosY = W(P) } } if (H) { v = document.createElement("div"); v.style.width = this.boxWidth + "px"; v.style.fontSize = "1px"; v.style.overflow = "hidden"; v.style.position = "absolute"; v.style.paddingLeft = this.borderWidth + "px"; v.style.paddingRight = this.borderWidth + "px"; v.style.height = H + "px"; v.style.top = -H + "px"; v.style.left = -this.borderWidthL + "px"; this.topContainer = this.shell.appendChild(v) } if (M) { var v = document.createElement("div"); v.style.width = this.boxWidth + "px"; v.style.fontSize = "1px"; v.style.overflow = "hidden"; v.style.position = "absolute"; v.style.paddingLeft = this.borderWidthB + "px"; v.style.paddingRight = this.borderWidthB + "px"; v.style.height = M + "px"; v.style.bottom = -M + "px"; v.style.left = -this.borderWidthL + "px"; this.bottomContainer = this.shell.appendChild(v) } var AG = this.spec.cornerNames(); for (var AK in AG) { if (!isNaN(AK)) { var AC = AG[AK]; var AD = this.spec[AC + "R"]; var AE, AH, j, AF; if (AC == "tr" || AC == "tl") { AE = this.borderWidth; AH = this.borderColour; AF = this.borderWidth } else { AE = this.borderWidthB; AH = this.borderColourB; AF = this.borderWidthB } j = AD - AF; var u = document.createElement("div"); u.style.height = this.spec.get(AC + "Ru"); u.style.width = this.spec.get(AC + "Ru"); u.style.position = "absolute"; u.style.fontSize = "1px"; u.style.overflow = "hidden"; var r, q, p; var n = filter ? parseInt(/alpha\(opacity.(\d+)\)/.exec(filter)[1]) : 100; for (r = 0; r < AD; ++r) { var m = (r + 1 >= j) ? -1 : Math.floor(Math.sqrt(Math.pow(j, 2) - Math.pow(r + 1, 2))) - 1; if (j != AD) { var h = (r >= j) ? -1 : Math.ceil(Math.sqrt(Math.pow(j, 2) - Math.pow(r, 2))); var f = (r + 1 >= AD) ? -1 : Math.floor(Math.sqrt(Math.pow(AD, 2) - Math.pow((r + 1), 2))) - 1 } var d = (r >= AD) ? -1 : Math.ceil(Math.sqrt(Math.pow(AD, 2) - Math.pow(r, 2))); if (m > -1) { this.drawPixel(r, 0, this.boxColour, n, (m + 1), u, true, AD) } if (j != AD) { if (this.spec.antiAlias) { for (q = m + 1; q < h; ++q) { if (this.backgroundImage != "") { var g = curvyObject.pixelFraction(r, q, j) * 100; this.drawPixel(r, q, AH, n, 1, u, g >= 30, AD) } else { if (this.boxColour !== "transparent") { var AB = curvyObject.BlendColour(this.boxColour, AH, curvyObject.pixelFraction(r, q, j)); this.drawPixel(r, q, AB, n, 1, u, false, AD) } else { this.drawPixel(r, q, AH, n >> 1, 1, u, false, AD) } } } if (f >= h) { if (h == -1) { h = 0 } this.drawPixel(r, h, AH, n, (f - h + 1), u, false, 0) } p = AH; q = f } else { if (f > m) { this.drawPixel(r, (m + 1), AH, n, (f - m), u, false, 0) } } } else { p = this.boxColour; q = m } if (this.spec.antiAlias) { while (++q < d) { this.drawPixel(r, q, p, (curvyObject.pixelFraction(r, q, AD) * n), 1, u, AF <= 0, AD) } } } for (var y = 0, AJ = u.childNodes.length; y < AJ; ++y) { var s = u.childNodes[y]; var AI = parseInt(s.style.top); var AM = parseInt(s.style.left); var AN = parseInt(s.style.height); if (AC == "tl" || AC == "bl") { s.style.left = (AD - AM - 1) + "px" } if (AC == "tr" || AC == "tl") { s.style.top = (AD - AN - AI) + "px" } s.style.backgroundRepeat = this.backgroundRepeat; if (this.backgroundImage) { switch (AC) { case "tr": s.style.backgroundPosition = (this.backgroundPosX - this.borderWidthL + AD - V - AM) + "px " + (this.backgroundPosY + AN + AI + this.borderWidth - AD) + "px"; break; case "tl": s.style.backgroundPosition = (this.backgroundPosX - AD + AM + this.borderWidthL) + "px " + (this.backgroundPosY - AD + AN + AI + this.borderWidth) + "px"; break; case "bl": s.style.backgroundPosition = (this.backgroundPosX - AD + AM + 1 + this.borderWidthL) + "px " + (this.backgroundPosY - F - this.borderWidth + (curvyBrowser.quirksMode ? AI : -AI) + AD) + "px"; break; case "br": if (curvyBrowser.quirksMode) { s.style.backgroundPosition = (this.backgroundPosX + this.borderWidthL - V + AD - AM) + "px " + (this.backgroundPosY - F - this.borderWidth + AI + AD) + "px" } else { s.style.backgroundPosition = (this.backgroundPosX - this.borderWidthL - V + AD - AM) + "px " + (this.backgroundPosY - F - this.borderWidth + AD - AI) + "px" } } } } switch (AC) { case "tl": u.style.top = u.style.left = "0"; this.topContainer.appendChild(u); break; case "tr": u.style.top = u.style.right = "0"; this.topContainer.appendChild(u); break; case "bl": u.style.bottom = u.style.left = "0"; this.bottomContainer.appendChild(u); break; case "br": u.style.bottom = u.style.right = "0"; this.bottomContainer.appendChild(u) } } } var x = { t: this.spec.radiusdiff("t"), b: this.spec.radiusdiff("b") }; for (z in x) { if (typeof z === "function") { continue } if (!this.spec.get(z + "R")) { continue } if (x[z]) { if (this.backgroundImage && this.spec.radiusSum(z) !== x[z]) { curvyCorners.alert(this.errmsg("Not supported: unequal non-zero top/bottom radii with background image")) } var AL = (this.spec[z + "lR"] < this.spec[z + "rR"]) ? z + "l" : z + "r"; var l = document.createElement("div");l.style.height = x[z] + "px";l.style.width = this.spec.get(AL + "Ru");l.style.position = "absolute";l.style.fontSize = "1px";l.style.overflow = "hidden";l.style.backgroundColor = this.boxColour; switch (AL) { case "tl": l.style.bottom = l.style.left = "0"; l.style.borderLeft = this.borderString; this.topContainer.appendChild(l); break; case "tr": l.style.bottom = l.style.right = "0"; l.style.borderRight = this.borderString; this.topContainer.appendChild(l); break; case "bl": l.style.top = l.style.left = "0"; l.style.borderLeft = this.borderStringB; this.bottomContainer.appendChild(l); break; case "br": l.style.top = l.style.right = "0"; l.style.borderRight = this.borderStringB; this.bottomContainer.appendChild(l) } } var o = document.createElement("div"); if (filter) { o.style.filter = filter } o.style.position = "relative"; o.style.fontSize = "1px"; o.style.overflow = "hidden"; o.style.width = this.fillerWidth(z); o.style.backgroundColor = this.boxColour; o.style.backgroundImage = this.backgroundImage; o.style.backgroundRepeat = this.backgroundRepeat; switch (z) { case "t": if (this.topContainer) { if (curvyBrowser.quirksMode) { o.style.height = 100 + H + "px" } else { o.style.height = 100 + H - this.borderWidth + "px" } o.style.marginLeft = this.spec.tlR ? (this.spec.tlR - this.borderWidthL) + "px" : "0";o.style.borderTop = this.borderString; if (this.backgroundImage) { var AA = this.spec.tlR ? (this.backgroundPosX - (H - this.borderWidthL)) + "px " : "0 ";o.style.backgroundPosition = AA + this.backgroundPosY + "px";this.shell.style.backgroundPosition = this.backgroundPosX + "px " + (this.backgroundPosY - H + this.borderWidthL) + "px" } this.topContainer.appendChild(o) } break; case "b": if (this.bottomContainer) { if (curvyBrowser.quirksMode) { o.style.height = M + "px" } else { o.style.height = M - this.borderWidthB + "px" } o.style.marginLeft = this.spec.blR ? (this.spec.blR - this.borderWidthL) + "px" : "0";o.style.borderBottom = this.borderStringB; if (this.backgroundImage) { var AA = this.spec.blR ? (this.backgroundPosX + this.borderWidthL - M) + "px " : this.backgroundPosX + "px ";o.style.backgroundPosition = AA + (this.backgroundPosY - F - this.borderWidth + M) + "px" } this.bottomContainer.appendChild(o) } } } this.contentContainer.style.position = "absolute"; this.contentContainer.className = "autoPadDiv"; this.contentContainer.style.left = this.borderWidthL + "px"; this.contentContainer.style.paddingTop = this.topPadding + "px"; this.contentContainer.style.top = this.borderWidth + "px"; this.contentContainer.style.paddingLeft = this.leftPadding + "px"; this.contentContainer.style.paddingRight = this.rightPadding + "px"; z = V; if (!curvyBrowser.quirksMode) { z -= this.leftPadding + this.rightPadding } this.contentContainer.style.width = z + "px"; this.contentContainer.style.textAlign = curvyBrowser.get_style(this.box, "textAlign"); this.box.style.textAlign = "left"; this.box.appendChild(this.contentContainer); if (U) { U.style.display = "none" } }; if (this.backgroundImage) { R = this.backgroundCheck(R); P = this.backgroundCheck(P); if (this.backgroundObject) { this.backgroundObject.holdingElement = this; this.dispatch = this.applyCorners; this.applyCorners = function () { if (this.backgroundObject.complete) { this.dispatch() } else { this.backgroundObject.onload = new Function("curvyObject.dispatch(this.holdingElement);") } } } } } curvyObject.prototype.backgroundCheck = function (B) { if (B === "top" || B === "left" || parseInt(B) === 0) { return 0 } if (!(/^[-\d.]+px$/.test(B)) && !this.backgroundObject) { this.backgroundObject = new Image; var A = function (D) { var C = /url\("?([^'"]+)"?\)/.exec(D); return (C ? C[1] : D) }; this.backgroundObject.src = A(this.backgroundImage) } return B }; curvyObject.dispatch = function (A) { if ("dispatch" in A) { A.dispatch() } else { throw A.newError("No dispatch function") } }; curvyObject.prototype.drawPixel = function (J, G, A, F, H, I, C, E) { var B = document.createElement("div"); B.style.height = H + "px"; B.style.width = "1px"; B.style.position = "absolute"; B.style.fontSize = "1px"; B.style.overflow = "hidden"; var D = this.spec.get("tR"); B.style.backgroundColor = A; if (C && this.backgroundImage != "") { B.style.backgroundImage = this.backgroundImage; B.style.backgroundPosition = "-" + (this.boxWidth - (E - J) + this.borderWidth) + "px -" + ((this.boxHeight + D + G) - this.borderWidth) + "px" } if (F != 100) { curvyObject.setOpacity(B, F) } B.style.top = G + "px"; B.style.left = J + "px"; I.appendChild(B) }; curvyObject.prototype.fillerWidth = function (A) { var B = curvyBrowser.quirksMode ? 0 : this.spec.radiusCount(A) * this.borderWidthL; return (this.boxWidth - this.spec.radiusSum(A) + B) + "px" }; curvyObject.prototype.errmsg = function (C, D) { var B = "\ntag: " + this.box.tagName; if (this.box.id) { B += "\nid: " + this.box.id } if (this.box.className) { B += "\nclass: " + this.box.className } var A; if ((A = this.box.parentNode) === null) { B += "\n(box has no parent)" } else { B += "\nParent tag: " + A.tagName; if (A.id) { B += "\nParent ID: " + A.id } if (A.className) { B += "\nParent class: " + A.className } } if (D === undefined) { D = "warning" } return "curvyObject " + D + ":\n" + C + B }; curvyObject.prototype.newError = function (A) { return new Error(this.errmsg(A, "exception")) }; curvyObject.IntToHex = function (B) { var A = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F"]; return A[B >>> 4] + "" + A[B & 15] }; curvyObject.BlendColour = function (L, J, G) { if (L === "transparent" || J === "transparent") { throw this.newError("Cannot blend with transparent") } if (L.charAt(0) !== "#") { L = curvyObject.format_colour(L) } if (J.charAt(0) !== "#") { J = curvyObject.format_colour(J) } var D = parseInt(L.substr(1, 2), 16); var K = parseInt(L.substr(3, 2), 16); var F = parseInt(L.substr(5, 2), 16); var C = parseInt(J.substr(1, 2), 16); var I = parseInt(J.substr(3, 2), 16); var E = parseInt(J.substr(5, 2), 16); if (G > 1 || G < 0) { G = 1 } var H = Math.round((D * G) + (C * (1 - G))); if (H > 255) { H = 255 } if (H < 0) { H = 0 } var B = Math.round((K * G) + (I * (1 - G))); if (B > 255) { B = 255 } if (B < 0) { B = 0 } var A = Math.round((F * G) + (E * (1 - G))); if (A > 255) { A = 255 } if (A < 0) { A = 0 } return "#" + curvyObject.IntToHex(H) + curvyObject.IntToHex(B) + curvyObject.IntToHex(A) }; curvyObject.pixelFraction = function (H, G, A) { var J; var E = A * A; var B = new Array(2); var F = new Array(2); var I = 0; var C = ""; var D = Math.sqrt(E - Math.pow(H, 2)); if (D >= G && D < (G + 1)) { C = "Left"; B[I] = 0; F[I] = D - G; ++I } D = Math.sqrt(E - Math.pow(G + 1, 2)); if (D >= H && D < (H + 1)) { C += "Top"; B[I] = D - H; F[I] = 1; ++I } D = Math.sqrt(E - Math.pow(H + 1, 2)); if (D >= G && D < (G + 1)) { C += "Right"; B[I] = 1; F[I] = D - G; ++I } D = Math.sqrt(E - Math.pow(G, 2)); if (D >= H && D < (H + 1)) { C += "Bottom"; B[I] = D - H; F[I] = 0 } switch (C) { case "LeftRight": J = Math.min(F[0], F[1]) + ((Math.max(F[0], F[1]) - Math.min(F[0], F[1])) / 2); break; case "TopRight": J = 1 - (((1 - B[0]) * (1 - F[1])) / 2); break; case "TopBottom": J = Math.min(B[0], B[1]) + ((Math.max(B[0], B[1]) - Math.min(B[0], B[1])) / 2); break; case "LeftBottom": J = F[0] * B[1] / 2; break; default: J = 1 } return J }; curvyObject.rgb2Array = function (A) { var B = A.substring(4, A.indexOf(")")); return B.split(", ") }; curvyObject.rgb2Hex = function (B) { try { var C = curvyObject.rgb2Array(B); var G = parseInt(C[0]); var E = parseInt(C[1]); var A = parseInt(C[2]); var D = "#" + curvyObject.IntToHex(G) + curvyObject.IntToHex(E) + curvyObject.IntToHex(A) } catch (F) { var H = "getMessage" in F ? F.getMessage() : F.message; throw new Error("Error (" + H + ") converting RGB value to Hex in rgb2Hex") } return D }; curvyObject.setOpacity = function (F, C) { C = (C == 100) ? 99.999 : C; if (curvyBrowser.isSafari && F.tagName != "IFRAME") { var B = curvyObject.rgb2Array(F.style.backgroundColor); var E = parseInt(B[0]); var D = parseInt(B[1]); var A = parseInt(B[2]); F.style.backgroundColor = "rgba(" + E + ", " + D + ", " + A + ", " + C / 100 + ")" } else { if (typeof F.style.opacity !== "undefined") { F.style.opacity = C / 100 } else { if (typeof F.style.MozOpacity !== "undefined") { F.style.MozOpacity = C / 100 } else { if (typeof F.style.filter != "undefined") { F.style.filter = "alpha(opacity=" + C + ")" } else { if (typeof F.style.KHTMLOpacity != "undefined") { F.style.KHTMLOpacity = C / 100 } } } } } }; function addEvent(D, C, B, A) { if (D.addEventListener) { D.addEventListener(C, B, A); return true } if (D.attachEvent) { return D.attachEvent("on" + C, B) } D["on" + C] = B; return false } curvyObject.getComputedColour = function (E) { var F = document.createElement("DIV"); F.style.backgroundColor = E; document.body.appendChild(F); if (window.getComputedStyle) { var D = document.defaultView.getComputedStyle(F, null).getPropertyValue("background-color"); F.parentNode.removeChild(F); if (D.substr(0, 3) === "rgb") { D = curvyObject.rgb2Hex(D) } return D } else { var A = document.body.createTextRange(); A.moveToElementText(F); A.execCommand("ForeColor", false, E); var B = A.queryCommandValue("ForeColor"); var C = "rgb(" + (B & 255) + ", " + ((B & 65280) >> 8) + ", " + ((B & 16711680) >> 16) + ")"; F.parentNode.removeChild(F); A = null; return curvyObject.rgb2Hex(C) } }; curvyObject.format_colour = function (A) { if (A != "" && A != "transparent") { if (A.substr(0, 3) === "rgb") { A = curvyObject.rgb2Hex(A) } else { if (A.charAt(0) !== "#") { A = curvyObject.getComputedColour(A) } else { if (A.length === 4) { A = "#" + A.charAt(1) + A.charAt(1) + A.charAt(2) + A.charAt(2) + A.charAt(3) + A.charAt(3) } } } } return A }; curvyCorners.getElementsByClass = function (H, F) { var E = new Array; if (F === undefined) { F = document } H = H.split("."); var A = "*"; if (H.length === 1) { A = H[0]; H = false } else { if (H[0]) { A = H[0] } H = H[1] } var D, C, B; if (A.charAt(0) === "#") { C = document.getElementById(A.substr(1)); if (C) { E.push(C) } } else { C = F.getElementsByTagName(A); B = C.length; if (H) { var G = new RegExp("(^|\\s)" + H + "(\\s|$)"); for (D = 0; D < B; ++D) { if (G.test(C[D].className)) { E.push(C[D]) } } } else { for (D = 0; D < B; ++D) { E.push(C[D]) } } } return E }; if (curvyBrowser.isMoz || curvyBrowser.isWebKit) { var curvyCornersNoAutoScan = true } else { curvyCorners.scanStyles = function () { function B(F) { var G = /^[\d.]+(\w+)$/.exec(F); return G[1] } var E, D, C; if (curvyBrowser.isIE) { function A(L) { var J = L.style; if (curvyBrowser.ieVer > 6) { var H = J["-webkit-border-radius"] || 0; var K = J["-webkit-border-top-right-radius"] || 0; var F = J["-webkit-border-top-left-radius"] || 0; var G = J["-webkit-border-bottom-right-radius"] || 0; var M = J["-webkit-border-bottom-left-radius"] || 0 } else { var H = J["webkit-border-radius"] || 0; var K = J["webkit-border-top-right-radius"] || 0; var F = J["webkit-border-top-left-radius"] || 0; var G = J["webkit-border-bottom-right-radius"] || 0; var M = J["webkit-border-bottom-left-radius"] || 0 } if (H || F || K || G || M) { var I = new curvyCnrSpec(L.selectorText); if (H) { I.setcorner(null, null, parseInt(H), B(H)) } else { if (K) { I.setcorner("t", "r", parseInt(K), B(K)) } if (F) { I.setcorner("t", "l", parseInt(F), B(F)) } if (M) { I.setcorner("b", "l", parseInt(M), B(M)) } if (G) { I.setcorner("b", "r", parseInt(G), B(G)) } } curvyCorners(I) } } for (E = 0; E < document.styleSheets.length; ++E) { if (document.styleSheets[E].imports) { for (D = 0; D < document.styleSheets[E].imports.length; ++D) { for (C = 0; C < document.styleSheets[E].imports[D].rules.length; ++C) { A(document.styleSheets[E].imports[D].rules[C]) } } } for (D = 0; D < document.styleSheets[E].rules.length; ++D) { A(document.styleSheets[E].rules[D]) } } } else { if (curvyBrowser.isOp) { for (E = 0; E < document.styleSheets.length; ++E) { if (operasheet.contains_border_radius(E)) { C = new operasheet(E); for (D in C.rules) { if (!isNaN(D)) { curvyCorners(C.rules[D]) } } } } } else { curvyCorners.alert("Scanstyles does nothing in Webkit/Firefox") } } }; curvyCorners.init = function () { if (arguments.callee.done) { return } arguments.callee.done = true; if (curvyBrowser.isWebKit && curvyCorners.init.timer) { clearInterval(curvyCorners.init.timer); curvyCorners.init.timer = null } curvyCorners.scanStyles() } } if (typeof curvyCornersNoAutoScan === "undefined" || curvyCornersNoAutoScan === false) { if (curvyBrowser.isOp) { document.addEventListener("DOMContentLoaded", curvyCorners.init, false) } else { addEvent(window, "load", curvyCorners.init, false) } };