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 = window.opera ? true : false; 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 T; this.box = arguments[1]; this.settings = arguments[0]; this.topContainer = this.bottomContainer = this.shell = T = 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 (T = this.box; ; T = T.parentNode) { if (!T || T.tagName === "BODY") { this.applyCorners = function() { }; curvyCorners.alert(this.errmsg("zero-width box with no accountable parent", "warning")); return } if (T.style.display === "none") { break } } T.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 a = 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 X = 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 Y = curvyBrowser.get_style(this.box, "paddingTop"); var b = curvyBrowser.get_style(this.box, "paddingBottom"); var Q = curvyBrowser.get_style(this.box, "paddingLeft"); var Z = 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 V = function(d) { if (typeof d === "number") { return d } if (typeof d !== "string") { throw new Error("unexpected styleToNPx type " + typeof d) } var c = /^[-\d.]([a-z]+)$/.exec(d); if (c && c[1] != "px") { throw new Error("Unexpected unit " + c[1]) } if (isNaN(d = parseInt(d))) { d = 0 } return d }; try { this.borderWidth = V(a); this.borderWidthB = V(J); this.borderWidthL = V(D); this.borderWidthR = V(B); this.boxColour = curvyObject.format_colour(E); this.topPadding = V(Y); this.bottomPadding = V(b); this.leftPadding = V(Q); this.rightPadding = V(Z); 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 = X } catch (W) { throw this.newError("getMessage" in W ? W.getMessage() : W.message) } var F = this.boxHeight; var U = K; if (curvyBrowser.isOp) { R = V(R); P = V(P); if (R) { var N = U + 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 = (U + 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 = (U + this.borderWidthL + this.borderWidthR) + "px" } else { L.style.width = U + "px" } L.style.height = (F + this.borderWidth + this.borderWidthB - H - M) + "px"; 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 v = function(AN, i, t) { if (AN === 0) { return 0 } var k; if (AN === "right" || AN === "bottom") { return t - i } if (AN === "center") { return (t - i) / 2 } if (AN.indexOf("%") > 0) { return (t - i) * 100 / parseInt(AN) } return V(AN) }; this.backgroundPosX = v(R, this.backgroundObject.width, U); this.backgroundPosY = v(P, this.backgroundObject.height, F) } else { if (this.backgroundImage) { this.backgroundPosX = V(R); this.backgroundPosY = V(P) } } if (H) { u = document.createElement("div"); u.style.width = this.boxWidth + "px"; u.style.fontSize = "1px"; u.style.overflow = "hidden"; u.style.position = "absolute"; u.style.paddingLeft = this.borderWidth + "px"; u.style.paddingRight = this.borderWidth + "px"; u.style.height = H + "px"; u.style.top = -H + "px"; u.style.left = -this.borderWidthL + "px"; this.topContainer = this.shell.appendChild(u) } if (M) { var u = document.createElement("div"); u.style.width = this.boxWidth + "px"; u.style.fontSize = "1px"; u.style.overflow = "hidden"; u.style.position = "absolute"; u.style.paddingLeft = this.borderWidthB + "px"; u.style.paddingRight = this.borderWidthB + "px"; u.style.height = M + "px"; u.style.bottom = -M + "px"; u.style.left = -this.borderWidthL + "px"; this.bottomContainer = this.shell.appendChild(u) } var AF = this.spec.cornerNames(); for (var AJ in AF) { if (!isNaN(AJ)) { var AB = AF[AJ]; var AC = this.spec[AB + "R"]; var AD, AG, h, AE; if (AB == "tr" || AB == "tl") { AD = this.borderWidth; AG = this.borderColour; AE = this.borderWidth } else { AD = this.borderWidthB; AG = this.borderColourB; AE = this.borderWidthB } h = AC - AE; var s = document.createElement("div"); s.style.height = this.spec.get(AB + "Ru"); s.style.width = this.spec.get(AB + "Ru"); s.style.position = "absolute"; s.style.fontSize = "1px"; s.style.overflow = "hidden"; var q, p, o; var m = filter ? parseInt(/alpha\(opacity.(\d+)\)/.exec(filter)[1]) : 100; for (q = 0; q < AC; ++q) { var l = (q + 1 >= h) ? -1 : Math.floor(Math.sqrt(Math.pow(h, 2) - Math.pow(q + 1, 2))) - 1; if (h != AC) { var g = (q >= h) ? -1 : Math.ceil(Math.sqrt(Math.pow(h, 2) - Math.pow(q, 2))); var d = (q + 1 >= AC) ? -1 : Math.floor(Math.sqrt(Math.pow(AC, 2) - Math.pow((q + 1), 2))) - 1 } var c = (q >= AC) ? -1 : Math.ceil(Math.sqrt(Math.pow(AC, 2) - Math.pow(q, 2))); if (l > -1) { this.drawPixel(q, 0, this.boxColour, m, (l + 1), s, true, AC) } if (h != AC) { if (this.spec.antiAlias) { for (p = l + 1; p < g; ++p) { if (this.backgroundImage != "") { var f = curvyObject.pixelFraction(q, p, h) * 100; this.drawPixel(q, p, AG, m, 1, s, f >= 30, AC) } else { if (this.boxColour !== "transparent") { var AA = curvyObject.BlendColour(this.boxColour, AG, curvyObject.pixelFraction(q, p, h)); this.drawPixel(q, p, AA, m, 1, s, false, AC) } else { this.drawPixel(q, p, AG, m >> 1, 1, s, false, AC) } } } if (d >= g) { if (g == -1) { g = 0 } this.drawPixel(q, g, AG, m, (d - g + 1), s, false, 0) } o = AG; p = d } else { if (d > l) { this.drawPixel(q, (l + 1), AG, m, (d - l), s, false, 0) } } } else { o = this.boxColour; p = l } if (this.spec.antiAlias) { while (++p < c) { this.drawPixel(q, p, o, (curvyObject.pixelFraction(q, p, AC) * m), 1, s, AE <= 0, AC) } } } for (var x = 0, AI = s.childNodes.length; x < AI; ++x) { var r = s.childNodes[x]; var AH = parseInt(r.style.top); var AL = parseInt(r.style.left); var AM = parseInt(r.style.height); if (AB == "tl" || AB == "bl") { r.style.left = (AC - AL - 1) + "px" } if (AB == "tr" || AB == "tl") { r.style.top = (AC - AM - AH) + "px" } r.style.backgroundRepeat = this.backgroundRepeat; if (this.backgroundImage) { switch (AB) { case "tr": r.style.backgroundPosition = (this.backgroundPosX - this.borderWidthL + AC - U - AL) + "px " + (this.backgroundPosY + AM + AH + this.borderWidth - AC) + "px"; break; case "tl": r.style.backgroundPosition = (this.backgroundPosX - AC + AL + this.borderWidthL) + "px " + (this.backgroundPosY - AC + AM + AH + this.borderWidth) + "px"; break; case "bl": r.style.backgroundPosition = (this.backgroundPosX - AC + AL + 1 + this.borderWidthL) + "px " + (this.backgroundPosY - F - this.borderWidth + (curvyBrowser.quirksMode ? AH : -AH) + AC) + "px"; break; case "br": if (curvyBrowser.quirksMode) { r.style.backgroundPosition = (this.backgroundPosX + this.borderWidthL - U + AC - AL) + "px " + (this.backgroundPosY - F - this.borderWidth + AH + AC) + "px" } else { r.style.backgroundPosition = (this.backgroundPosX - this.borderWidthL - U + AC - AL) + "px " + (this.backgroundPosY - F - this.borderWidth + AC - AH) + "px" } } } } switch (AB) { case "tl": s.style.top = s.style.left = "0"; this.topContainer.appendChild(s); break; case "tr": s.style.top = s.style.right = "0"; this.topContainer.appendChild(s); break; case "bl": s.style.bottom = s.style.left = "0"; this.bottomContainer.appendChild(s); break; case "br": s.style.bottom = s.style.right = "0"; this.bottomContainer.appendChild(s) } } } var w = { t: this.spec.radiusdiff("t"), b: this.spec.radiusdiff("b") }; for (z in w) { if (typeof z === "function") { continue } if (!this.spec.get(z + "R")) { continue } if (w[z]) { if (this.backgroundImage && this.spec.radiusSum(z) !== w[z]) { curvyCorners.alert(this.errmsg("Not supported: unequal non-zero top/bottom radii with background image")) } var AK = (this.spec[z + "lR"] < this.spec[z + "rR"]) ? z + "l" : z + "r"; var j = document.createElement("div"); j.style.height = w[z] + "px"; j.style.width = this.spec.get(AK + "Ru"); j.style.position = "absolute"; j.style.fontSize = "1px"; j.style.overflow = "hidden"; j.style.backgroundColor = this.boxColour; switch (AK) { case "tl": j.style.bottom = j.style.left = "0"; j.style.borderLeft = this.borderString; this.topContainer.appendChild(j); break; case "tr": j.style.bottom = j.style.right = "0"; j.style.borderRight = this.borderString; this.topContainer.appendChild(j); break; case "bl": j.style.top = j.style.left = "0"; j.style.borderLeft = this.borderStringB; this.bottomContainer.appendChild(j); break; case "br": j.style.top = j.style.right = "0"; j.style.borderRight = this.borderStringB; this.bottomContainer.appendChild(j) } } var n = document.createElement("div"); if (filter) { n.style.filter = filter } n.style.position = "relative"; n.style.fontSize = "1px"; n.style.overflow = "hidden"; n.style.width = this.fillerWidth(z); n.style.backgroundColor = this.boxColour; n.style.backgroundImage = this.backgroundImage; n.style.backgroundRepeat = this.backgroundRepeat; switch (z) { case "t": if (this.topContainer) { if (curvyBrowser.quirksMode) { n.style.height = 100 + H + "px" } else { n.style.height = 100 + H - this.borderWidth + "px" } n.style.marginLeft = this.spec.tlR ? (this.spec.tlR - this.borderWidthL) + "px" : "0"; n.style.borderTop = this.borderString; if (this.backgroundImage) { var y = this.spec.tlR ? (this.backgroundPosX - (H - this.borderWidthL)) + "px " : "0 "; n.style.backgroundPosition = y + this.backgroundPosY + "px"; this.shell.style.backgroundPosition = this.backgroundPosX + "px " + (this.backgroundPosY - H + this.borderWidthL) + "px" } this.topContainer.appendChild(n) } break; case "b": if (this.bottomContainer) { if (curvyBrowser.quirksMode) { n.style.height = M + "px" } else { n.style.height = M - this.borderWidthB + "px" } n.style.marginLeft = this.spec.blR ? (this.spec.blR - this.borderWidthL) + "px" : "0"; n.style.borderBottom = this.borderStringB; if (this.backgroundImage) { var y = this.spec.blR ? (this.backgroundPosX + this.borderWidthL - M) + "px " : this.backgroundPosX + "px "; n.style.backgroundPosition = y + (this.backgroundPosY - F - this.borderWidth + M) + "px" } this.bottomContainer.appendChild(n) } } } 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 = U; 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 (T) { T.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) { 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() } };

