/*

    JQuery Curvy Corners by Mike Jolley
    http://blue-anvil.com
    http://code.google.com/p/jquerycurvycorners/
    ------------ 
    Version 1.9 
                                                            
    Origionaly by: Cameron Cooke and Tim Hutchison.
    Website: http://www.curvycorners.net
    
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
    
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.
    
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.

*/
  
(function($) {
$.fn.corner = function(options) {

    function BlendColour(Col1, Col2, Col1Fraction) {
        var red1 = parseInt(Col1.substr(1,2),16);
        var green1 = parseInt(Col1.substr(3,2),16);
        var blue1 = parseInt(Col1.substr(5,2),16);
        var red2 = parseInt(Col2.substr(1,2),16);
        var green2 = parseInt(Col2.substr(3,2),16);
        var blue2 = parseInt(Col2.substr(5,2),16);
        if(Col1Fraction > 1 || Col1Fraction < 0) Col1Fraction = 1;
        var endRed = Math.round((red1 * Col1Fraction) + (red2 * (1 - Col1Fraction)));
        if(endRed > 255) endRed = 255;
        if(endRed < 0) endRed = 0;
        var endGreen = Math.round((green1 * Col1Fraction) + (green2 * (1 - Col1Fraction)));
        if(endGreen > 255) endGreen = 255;
        if(endGreen < 0) endGreen = 0;
        var endBlue = Math.round((blue1 * Col1Fraction) + (blue2 * (1 - Col1Fraction)));
        if(endBlue > 255) endBlue = 255;
        if(endBlue < 0) endBlue = 0;
        return "#" + IntToHex(endRed)+ IntToHex(endGreen)+ IntToHex(endBlue);
    }
    
    function IntToHex(strNum) {
        base = strNum / 16;
        rem = strNum % 16;
        base = base - (rem / 16);
        baseS = MakeHex(base);
        remS = MakeHex(rem);
        return baseS + '' + remS;
    }
    
    function MakeHex(x) {
        if((x >= 0) && (x <= 9)) {
            return x; 
        } else {
            switch(x) {
                case 10: return "A";
                case 11: return "B";
                case 12: return "C";
                case 13: return "D";
                case 14: return "E";
                case 15: return "F";
            };
            return "F";
        };
    }
    
    function pixelFraction(x, y, r) {
        var pixelfraction = 0;
        var xvalues = new Array(1);
        var yvalues = new Array(1);
        var point = 0;
        var whatsides = "";
        var intersect = Math.sqrt((Math.pow(r,2) - Math.pow(x,2)));
        if ((intersect >= y) && (intersect < (y+1))) {
            whatsides = "Left";
            xvalues[point] = 0;
            yvalues[point] = intersect - y;
            point = point + 1;
        };
        var intersect = Math.sqrt((Math.pow(r,2) - Math.pow(y+1,2)));
        if ((intersect >= x) && (intersect < (x+1))) {
            whatsides = whatsides + "Top";
            xvalues[point] = intersect - x;
            yvalues[point] = 1;
            point = point + 1;
        };
        var intersect = Math.sqrt((Math.pow(r,2) - Math.pow(x+1,2)));
        if ((intersect >= y) && (intersect < (y+1))) {
            whatsides = whatsides + "Right";
            xvalues[point] = 1;
            yvalues[point] = intersect - y;
            point = point + 1;
        };
        var intersect = Math.sqrt((Math.pow(r,2) - Math.pow(y,2)));
        if ((intersect >= x) && (intersect < (x+1))) {
            whatsides = whatsides + "Bottom";
            xvalues[point] = intersect - x;
            yvalues[point] = 0;
        };
        switch (whatsides) {
            case "LeftRight":
            pixelfraction = Math.min(yvalues[0],yvalues[1]) + ((Math.max(yvalues[0],yvalues[1]) - Math.min(yvalues[0],yvalues[1]))/2);
            break;
            case "TopRight":
            pixelfraction = 1-(((1-xvalues[0])*(1-yvalues[1]))/2);
            break;
            case "TopBottom":
            pixelfraction = Math.min(xvalues[0],xvalues[1]) + ((Math.max(xvalues[0],xvalues[1]) - Math.min(xvalues[0],xvalues[1]))/2);
            break;
            case "LeftBottom":
            pixelfraction = (yvalues[0]*xvalues[1])/2;
            break;
            default:
            pixelfraction = 1;
        };
        return pixelfraction;
    }
    
    function rgb2Hex(rgbColour) {
        try {
            var rgbArray = rgb2Array(rgbColour);
            var red = parseInt(rgbArray[0]);
            var green = parseInt(rgbArray[1]);
            var blue = parseInt(rgbArray[2]);
            var hexColour = "#" + IntToHex(red) + IntToHex(green) + IntToHex(blue);
        } catch(e) {
            alert("There was an error converting the RGB value to Hexadecimal in function rgb2Hex");
        };
        return hexColour;
    }
    
    function rgb2Array(rgbColour) {
        var rgbValues = rgbColour.substring(4, rgbColour.indexOf(")"));
        var rgbArray = rgbValues.split(", ");
        return rgbArray;
    }
    
    function format_colour(colour) {
        var returnColour = "transparent";
        if(colour != "" && colour != "transparent")
        {
            if(colour.substr(0, 3) == "rgb" && colour.substr(0, 4) != "rgba")
            {
                returnColour = rgb2Hex(colour);
            }           
            else if(colour.length == 4)
            {
                returnColour = "#" + colour.substring(1, 2) + colour.substring(1, 2) + colour.substring(2, 3) + colour.substring(2, 3) + colour.substring(3, 4) + colour.substring(3, 4);
            }
            else
            {
                returnColour = colour;
            };
        };
        return returnColour;
    };
    function strip_px(value) {
        return parseInt((( value != "auto" && value.indexOf("%") == -1 && value != "" && value.indexOf("px") !== -1)? value.slice(0, value.indexOf("px")) : 0)) 
    }

    function drawPixel(box,intx, inty, colour, transAmount, height, newCorner, image, bgImage, cornerRadius, isBorder, borderWidth, boxWidth, settings) {
        var $$ = $(box);
        var pixel = document.createElement("div");
        $(pixel).css({  height:height,width:"1px",position:"absolute","font-size":"1px",overflow:"hidden"   });
        //var topMaxRadius = Math.max(settings["tr"].radius, settings["tl"].radius);
        var topMaxRadius = Math.max(settings.tl ? settings.tl.radius : 0, settings.tr ? settings.tr.radius : 0);
        // Dont apply background image to border pixels
        if(image == -1 && bgImage != "") {
            if(topMaxRadius>0)
                $(pixel).css("background-position","-" + ((boxWidth - cornerRadius - borderWidth)+ intx) + "px -" + (($$.height() + topMaxRadius  - borderWidth )-inty) + "px");
            else 
                $(pixel).css("background-position","-" + ((boxWidth - cornerRadius - borderWidth)+ intx) + "px -" + (($$.height() )-inty) + "px");  
            $(pixel).css({
                         "background-image":bgImage,
                         "background-repeat":$$.css("background-repeat"),
                         "background-color":colour                       
            });
        }
        else
        {
            if (!isBorder) $(pixel).css("background-color",colour).addClass('hasBackgroundColor');
            else $(pixel).css("background-color",colour);
        };
        
        if (transAmount != 100)
            setOpacity(pixel, transAmount);
            //$(pixel).css('opacity',transAmount/100);
        $(pixel).css({top:inty + "px",left:intx + "px"});
        return pixel;
    };
    
    function setOpacity(obj, opacity) {
      opacity = (opacity == 100)?99.999:opacity;
    
      if($.browser.safari && obj.tagName != "IFRAME")
      {
          // Get array of RGB values
          var rgbArray = rgb2Array(obj.style.backgroundColor);
    
          // Get RGB values
          var red   = parseInt(rgbArray[0]);
          var green = parseInt(rgbArray[1]);
          var blue  = parseInt(rgbArray[2]);
    
          // Safari using RGBA support
          obj.style.backgroundColor = "rgba(" + red + ", " + green + ", " + blue + ", " + opacity/100 + ")";
      }
      else if(typeof(obj.style.opacity) != "undefined")
      {
          // W3C
          obj.style.opacity = opacity/100;
      }
      else if(typeof(obj.style.MozOpacity) != "undefined")
      {
          // Older Mozilla
          obj.style.MozOpacity = opacity/100;
      }
      else if(typeof(obj.style.filter) != "undefined")
      {
          // IE
          obj.style.filter = "alpha(opacity:" + opacity + ")";
      }
      else if(typeof(obj.style.KHTMLOpacity) != "undefined")
      {
          // Older KHTML Based Browsers
          obj.style.KHTMLOpacity = opacity/100;
      }
    }
        
    // Apply the corners
    function applyCorners(box,settings) {
    
        var $$ = $(box); 

        // Get CSS of box and define vars
        var thebgImage          = $$.css("backgroundImage");
        var topContainer = null;
        var bottomContainer = null;
        var masterCorners = new Array();
        var contentDIV = null;
        var boxHeight           = strip_px($$.css("height")) ? strip_px($$.css("height")) : box.scrollHeight; 
        var boxWidth            = strip_px($$.css("width")) ? strip_px($$.css("width")) : box.scrollWidth; 
        var borderWidth         = strip_px($$.css("borderTopWidth")) ? strip_px($$.css("borderTopWidth")) : 0; 
        var boxPaddingTop       = strip_px($$.css("paddingTop"));
        var boxPaddingBottom    = strip_px($$.css("paddingBottom"));
        var boxPaddingLeft  = strip_px($$.css("paddingLeft"));
        
        var boxPaddingRight     = strip_px($$.css("paddingRight"));
        var boxColour           = format_colour($$.css("backgroundColor"));
        var bgImage             = (thebgImage != "none" && thebgImage!="initial") ? thebgImage : "";
        //var boxContent        = $$.html();
        var borderColour        = format_colour($$.css("borderTopColor")); 
        var borderString        = borderWidth + "px" + " solid " + borderColour;
        
        var topMaxRadius = Math.max(settings.tl ? settings.tl.radius : 0, settings.tr ? settings.tr.radius : 0);
        var botMaxRadius = Math.max(settings.bl ? settings.bl.radius : 0, settings.br ? settings.br.radius : 0);
        
        $$.addClass('hasCorners').css({"padding":"0", "borderColor":box.style.borderColour, 'overflow':'visible'});
        if(box.style.position != "absolute") $$.css("position","relative");
        if(($.browser.msie)) {
            if($.browser.version==6 && box.style.width == "auto" && box.style.height == "auto") $$.css("width","100%");
            $$.css("zoom","1");
            $("*", $$).css("zoom","normal");
        }       
        
        for(var t = 0;t < 2;t++) {
            switch(t) {
                case 0:
                if(settings.tl || settings.tr) {
                    var newMainContainer    = document.createElement("div");
                    topContainer        = box.appendChild(newMainContainer);
                    $(topContainer).css({ width:"100%", "font-size":"1px", overflow:"hidden", position:"absolute", "padding-left":borderWidth, "padding-right":borderWidth, height:topMaxRadius + "px",top:0 - topMaxRadius + "px",left:0 - borderWidth + "px"}).addClass('topContainer');
                };
                break;
                case 1:
                if(settings.bl || settings.br) {
                    var newMainContainer    = document.createElement("div");
                    bottomContainer = box.appendChild(newMainContainer);
                    $(bottomContainer).css({ width:"100%", "font-size":"1px", overflow:"hidden", position:"absolute", "padding-left":borderWidth, "padding-right":borderWidth, height:botMaxRadius,bottom:0 - botMaxRadius + "px",left:0 - borderWidth + "px"}).addClass('bottomContainer');
                };
                break;
            };
        };
        
        if(settings.autoPad == true) {
            //$$.html("");
            var contentContainer = document.createElement("div");
            var contentContainer2 = document.createElement("div");
            var clearDiv = document.createElement("div");
            
            $(contentContainer2).css({ margin:"0","padding-bottom":boxPaddingBottom,"padding-top":boxPaddingTop,"padding-left":boxPaddingLeft,"padding-right":boxPaddingRight, 'overflow':'visible'}).addClass('hasBackgroundColor content_container');

            $(contentContainer).css({position:"relative", 'float':"left",width:"100%", "margin-top":"-" + Math.abs(topMaxRadius-borderWidth) + "px", "margin-bottom":"-" + Math.abs(botMaxRadius-borderWidth) + "px"}).addClass = "autoPadDiv";
            
            $(clearDiv).css("clear","both");

            contentContainer2.appendChild(contentContainer);
            contentContainer2.appendChild(clearDiv);
            $$.wrapInner(contentContainer2);
        };
        
        if(topContainer) $$.css("border-top",0);
        if(bottomContainer) $$.css("border-bottom",0);
        var corners = ["tr", "tl", "br", "bl"];
        for(var i in corners) {
            if(i > -1 < 4) {
                var cc = corners[i];
                if(!settings[cc]) {

                    if(((cc == "tr" || cc == "tl") && topContainer != null) || ((cc == "br" || cc == "bl") && bottomContainer != null)) {
                        var newCorner = document.createElement("div");
                        $(newCorner).css({position:"relative","font-size":"1px", overflow:"hidden"});
                        
                        if(bgImage == "")
                            $(newCorner).css("background-color",boxColour);
                        else
                            $(newCorner).css("background-image",bgImage).css("background-color",boxColour);;

                        switch(cc)
                        {
                            case "tl":                          
                                $(newCorner).css({height:topMaxRadius - borderWidth,"margin-right":settings.tr.radius - (borderWidth*2), "border-left":borderString,"border-top":borderString,left:-borderWidth + "px", "background-repeat":$$.css("background-repeat"), "background-position":borderWidth + "px 0px"});
                            break;
                            case "tr":
                                $(newCorner).css({height:topMaxRadius - borderWidth,"margin-left":settings.tl.radius - (borderWidth*2), "border-right":borderString,"border-top":borderString,left:borderWidth + "px", "background-repeat":$$.css("background-repeat"), "background-position":"-" + (topMaxRadius + borderWidth) + "px 0px"});
                            break;
                            case "bl":
                                if(topMaxRadius>0)
                                    $(newCorner).css({height:botMaxRadius - borderWidth,"margin-right":settings.br.radius - (borderWidth*2), "border-left":borderString,"border-bottom":borderString,left:-borderWidth + "px", "background-repeat":$$.css("background-repeat"), "background-position":"0px -" + ($$.height() + topMaxRadius  - borderWidth +1) + "px" });
                                else
                                    $(newCorner).css({height:botMaxRadius - borderWidth,"margin-right":settings.br.radius - (borderWidth*2), "border-left":borderString,"border-bottom":borderString,left:-borderWidth + "px", "background-repeat":$$.css("background-repeat"), "background-position":"0px -" + ($$.height()) + "px" });
                            break;
                            case "br":
                                if(topMaxRadius>0)
                                    $(newCorner).css({height:botMaxRadius - borderWidth,"margin-left":settings.bl.radius - (borderWidth*2), "border-right":borderString,"border-bottom":borderString,left:borderWidth + "px", "background-repeat":$$.css("background-repeat"),  "background-position":"-" + settings.bl.radius + borderWidth + "px -" + ($$.height() + topMaxRadius  - borderWidth + 1) + "px" });
                                else
                                    $(newCorner).css({height:botMaxRadius - borderWidth,"margin-left":settings.bl.radius - (borderWidth*2), "border-right":borderString,"border-bottom":borderString,left:borderWidth + "px", "background-repeat":$$.css("background-repeat"),  "background-position":"-" + settings.bl.radius + borderWidth + "px -" + ($$.height()) + "px" });
                            break;
                        };
                    };
                } else {
                    if(masterCorners[settings[cc].radius]) {
                        var newCorner = masterCorners[settings[cc].radius].cloneNode(true);
                    } else {
                        var newCorner = document.createElement("DIV");
                        $(newCorner).css({  height:settings[cc].radius,width:settings[cc].radius,position:"absolute","font-size":"1px",overflow:"hidden"    });
                        var borderRadius = parseInt(settings[cc].radius - borderWidth);
                        for(var intx = 0, j = settings[cc].radius; intx < j; intx++) {
                            if((intx +1) >= borderRadius)
                                var y1 = -1;
                            else
                                var y1 = (Math.floor(Math.sqrt(Math.pow(borderRadius, 2) - Math.pow((intx+1), 2))) - 1);
                            if(borderRadius != j) {
                                if((intx) >= borderRadius)
                                var y2 = -1;
                                else
                                var y2 = Math.ceil(Math.sqrt(Math.pow(borderRadius,2) - Math.pow(intx, 2)));
                                if((intx+1) >= j)
                                var y3 = -1;
                                else
                                var y3 = (Math.floor(Math.sqrt(Math.pow(j ,2) - Math.pow((intx+1), 2))) - 1);
                            };
                            if((intx) >= j)
                                var y4 = -1;
                            else
                                var y4 = Math.ceil(Math.sqrt(Math.pow(j ,2) - Math.pow(intx, 2)));
                            if(y1 > -1) newCorner.appendChild(drawPixel(box,intx, 0, boxColour, 100, (y1+1), newCorner, -1, bgImage, settings[cc].radius, 0, borderWidth, boxWidth, settings));
                            if(borderRadius != j) {
                                for(var inty = (y1 + 1); inty < y2; inty++) {
                                    if(settings.antiAlias) {
                                        if(bgImage != "") {
                                            var borderFract = (pixelFraction(intx, inty, borderRadius) * 100);
                                            if(borderFract < 30) {
                                                newCorner.appendChild(drawPixel(box,intx, inty, borderColour, 100, 1, newCorner, 0, bgImage, settings[cc].radius, 1, borderWidth, boxWidth, settings));
                                            } else {
                                                newCorner.appendChild(drawPixel(box,intx, inty, borderColour, 100, 1, newCorner, -1, bgImage, settings[cc].radius, 1, borderWidth, boxWidth, settings));
                                            };
                                        } else {
                                            var pixelcolour = BlendColour(boxColour, borderColour, pixelFraction(intx, inty, borderRadius));
                                            newCorner.appendChild(drawPixel(box,intx, inty, pixelcolour, 100, 1, newCorner, 0, bgImage, settings[cc].radius, cc, 1, borderWidth, boxWidth, settings));
                                        };
                                    };
                                };
                                if(settings.antiAlias) {
                                      if(y3 >= y2)
                                      {
                                         if (y2 == -1) y2 = 0;
                                         newCorner.appendChild(drawPixel(box,intx, y2, borderColour, 100, (y3 - y2 + 1), newCorner, 0,bgImage, 0, 1, borderWidth, boxWidth, settings));
                                      }
                                } else {
                                      if(y3 >= y1)
                                      {
                                          newCorner.appendChild(drawPixel(box,intx, (y1 + 1), borderColour, 100, (y3 - y1), newCorner, 0,bgImage, 0, 1, borderWidth, boxWidth, settings));
                                      }
                                };
                                var outsideColour = borderColour;
                            } else {
                                var outsideColour = boxColour;
                                var y3 = y1;
                            };
                            if(settings.antiAlias) {
                                for(var inty = (y3 + 1); inty < y4; inty++) {
                                    newCorner.appendChild(drawPixel(box,intx, inty, outsideColour, (pixelFraction(intx, inty , j) * 100), 1, newCorner, ((borderWidth > 0)? 0 : -1),bgImage, settings[cc].radius, 1, borderWidth, boxWidth, settings));
                                };                                
                            };
                        };
                        masterCorners[settings[cc].radius] = newCorner.cloneNode(true);                                           
                    };                    
                    if(cc != "br") {
                        for(var t = 0, k = newCorner.childNodes.length; t < k; t++) {
                            var pixelBar            = newCorner.childNodes[t];
                            var pixelBarTop         = strip_px($(pixelBar).css("top"));
                            var pixelBarLeft        = strip_px($(pixelBar).css("left"));
                            var pixelBarHeight      = strip_px($(pixelBar).css("height"));
                            
                            if(cc == "tl" || cc == "bl") {
                                $(pixelBar).css("left",settings[cc].radius -pixelBarLeft -1 + "px");
                            };
                            
                            if(cc == "tr" || cc == "tl") {
                                $(pixelBar).css("top", settings[cc].radius -pixelBarHeight -pixelBarTop + "px");
                            };
                            
                            switch(cc) {
                                case "tr":
                                    $(pixelBar).css("background-position","-" + Math.abs((boxWidth - settings[cc].radius + borderWidth) + pixelBarLeft) + "px -" + Math.abs(settings[cc].radius -pixelBarHeight -pixelBarTop - borderWidth) + "px");
                                break;
                                case "tl":
                                    $(pixelBar).css("background-position","-" + Math.abs((settings[cc].radius -pixelBarLeft -1) - borderWidth) + "px -" + Math.abs(settings[cc].radius -pixelBarHeight -pixelBarTop - borderWidth) + "px");
                                break;
                                case "bl":
                                    if(topMaxRadius>0)
                                        $(pixelBar).css("background-position", "-" + Math.abs((settings[cc].radius -pixelBarLeft -1) - borderWidth) + "px -" + Math.abs(($$.height() + topMaxRadius - borderWidth + 1)) + "px");
                                    else
                                        $(pixelBar).css("background-position", "-" + Math.abs((settings[cc].radius -pixelBarLeft -1) - borderWidth) + "px -" + Math.abs(($$.height())) + "px");
                                break;
                            };
                        };
                    };
                };
                
                if(newCorner) {
                    switch(cc) {
                        case "tl":
                        if($(newCorner).css("position") == "absolute") $(newCorner).css("top","0");
                        if($(newCorner).css("position") == "absolute") $(newCorner).css("left","0");
                        if(topContainer) topContainer.appendChild(newCorner);
                        break;
                        case "tr":
                        if($(newCorner).css("position") == "absolute") $(newCorner).css("top","0");
                        if($(newCorner).css("position") == "absolute") $(newCorner).css("right","0");
                        if(topContainer) topContainer.appendChild(newCorner);
                        break;
                        case "bl":
                        if($(newCorner).css("position") == "absolute") $(newCorner).css("bottom","0");
                        if(newCorner.style.position == "absolute") $(newCorner).css("left","0");
                        if(bottomContainer) bottomContainer.appendChild(newCorner);
                        break;
                        case "br":
                        if($(newCorner).css("position") == "absolute") $(newCorner).css("bottom","0");
                        if($(newCorner).css("position") == "absolute") $(newCorner).css("right","0");
                        if(bottomContainer) bottomContainer.appendChild(newCorner);
                        break;
                    };                    
                };
            };
        };
        
        var radiusDiff = new Array();
        radiusDiff["t"] = Math.abs(settings.tl.radius - settings.tr.radius);
        radiusDiff["b"] = Math.abs(settings.bl.radius - settings.br.radius);
        for(z in radiusDiff) {
            if(z == "t" || z == "b") {
                if(radiusDiff[z]) {
                    var smallerCornerType = ((settings[z + "l"].radius < settings[z + "r"].radius)? z +"l" : z +"r");
                    var newFiller = document.createElement("div");
                    $(newFiller).css({  height:radiusDiff[z],width:settings[smallerCornerType].radius+ "px",position:"absolute","font-size":"1px",overflow:"hidden","background-color":boxColour,"background-image":bgImage });
                  switch(smallerCornerType)
                  {
                      case "tl":
                        $(newFiller).css({"bottom":"0","left":"0","border-left":borderString,"background-position":"0px -" + (settings[smallerCornerType].radius - borderWidth )});
                        topContainer.appendChild(newFiller);
                        break;
    
                      case "tr":
                        $(newFiller).css({"bottom":"0","right":"0","border-right":borderString,"background-position":"0px -" + (settings[smallerCornerType].radius - borderWidth ) + "px"});
                        topContainer.appendChild(newFiller);
                        break;
    
                      case "bl":
                        $(newFiller).css({"top":"0","left":"0","border-left":borderString,"background-position":"0px -" + ($$.height() + settings[smallerCornerType].radius - borderWidth )});
                        bottomContainer.appendChild(newFiller);
                        break;
    
                      case "br":
                        $(newFiller).css({"top":"0","right":"0","border-right":borderString,"background-position":"0px -" + ($$.height() + settings[smallerCornerType].radius - borderWidth )});
                        bottomContainer.appendChild(newFiller);
                        
                        break;
                  }
            };
                
            var newFillerBar = document.createElement("div");
            $(newFillerBar).css({   position:"relative","font-size":"1px",overflow:"hidden","background-color":boxColour,"background-image":bgImage,"background-repeat":$$.css("background-repeat")});
            switch(z) {
                    case "t":
                    if(topContainer) {
                        if(settings.tl.radius && settings.tr.radius) {
                            $(newFillerBar).css({
                                                height:topMaxRadius - borderWidth + "px",
                                                "margin-left":settings.tl.radius - borderWidth  + "px",
                                                "margin-right":settings.tr.radius - borderWidth  + "px",
                                                "border-top":borderString
                            }).addClass('hasBackgroundColor');
                        
                            if(bgImage != "")
                                $(newFillerBar).css("background-position","-" + (topMaxRadius + borderWidth) + "px 0px");
                            
                            topContainer.appendChild(newFillerBar);
                            
                        }; 
                        $$.css("background-position", "0px -" + (topMaxRadius - borderWidth +1) + "px"); 
                    }; 
                    break;
                    case "b":
                    if(bottomContainer) {
                        if(settings.bl.radius && settings.br.radius) {
                            $(newFillerBar).css({   
                                                height:botMaxRadius - borderWidth + "px",
                                                "margin-left":settings.bl.radius - borderWidth + "px",
                                                "margin-right":settings.br.radius - borderWidth + "px",
                                                "border-bottom":borderString
                            });
                        
                            if(bgImage != "" && topMaxRadius>0)
                                $(newFillerBar).css("background-position","-" + (settings.bl.radius - borderWidth) + "px -" + ($$.height() + topMaxRadius - borderWidth + 1) + "px");
                            else
                                $(newFillerBar).css("background-position","-" + (settings.bl.radius - borderWidth) + "px -" + ($$.height() ) + "px").addClass('hasBackgroundColor');
                            
                            bottomContainer.appendChild(newFillerBar);
                        };
                    };
                    break;
                };
            };
        };
        $$.prepend(topContainer);
        $$.prepend(bottomContainer);
    }

    var settings = {
      tl: { radius: 8 },
      tr: { radius: 8 },
      bl: { radius: 8 },
      br: { radius: 8 },
      antiAlias: true,
      autoPad: true,
      validTags: ["div"] };
    if ( options && typeof(options) != 'string' )
        $.extend(settings, options);
            
    return this.each(function() {
        if (!$(this).is('.hasCorners')) {
            applyCorners(this, settings);               
        }
        
    }); 
            
};
})(jQuery);
