//mx modified: style.backgroundPosition fix (30 Jun 2010)


  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";}default:;}}}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);default:;}}}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);default:;}}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);}default:;}}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);
        }
    }