function curvyCorners(){if(typeof (arguments[0])!="object"){throw newCurvyError("First parameter of curvyCorners() must be an object.")}if(typeof (arguments[1])!="object"&&typeof (arguments[1])!="string"){throw newCurvyError("Second parameter of curvyCorners() must be an object or a class name.")}if(typeof (arguments[1])=="string"){var G=0;var A=$$("."+arguments[1])}else{var G=1;var A=arguments}var D=new Array();if(arguments[0].validTags){var F=arguments[0].validTags}else{var F=["div"]}for(var C=G,B=A.length;C<B;C++){var E=A[C].tagName.toLowerCase();if(F.indexOf[E]!==-1){D[D.length]=new curvyObject(arguments[0],A[C])}}this.objects=D;this.applyCornersToAll=function(){for(var H=0,I=this.objects.length;H<I;H++){this.objects[H].applyCorners()}}}function curvyObject(){this.box=arguments[1];this.settings=arguments[0];this.topContainer=null;this.bottomContainer=null;this.masterCorners=new Array();this.boxHeight=this.box.getStyle("height").toInt();this.boxWidth=this.box.getStyle("width").toInt();this.borderWidth=this.box.getStyle("border-top-width").toInt();this.boxColor=this.box.getStyle("background-color");this.boxPadding=this.box.getStyle("padding-top").toInt();this.borderColor=this.box.getStyle("border-top-color");this.borderString=this.borderWidth+"px solid "+this.borderColor;this.backgroundImage=this.box.getStyle("background-image");if(this.box.getStyle("position")!="absolute"){this.box.setStyle("position","relative")}this.box.setStyle("padding",0);if(window.opera){this.boxHeight=this.box.getStyle("height").toInt();this.boxWidth=this.box.getStyle("width").toInt()}if(this.settings.autoPad===true&&this.boxPadding>0){var D=Math.max(this.settings.tl?this.settings.tl.radius:0,this.settings.tr?this.settings.tr.radius:0);var C=Math.max(this.settings.bl?this.settings.bl.radius:0,this.settings.br?this.settings.br.radius:0);this.box=this.box.clone().empty().injectBefore(this.box).adopt(this.box);var B=["style","class","name","id"];for(var A=0;A<B.length;A++){this.box.getFirst().removeProperty(B[A])}this.box.getFirst().setStyles({"padding-left":this.boxPadding,"padding-right":this.boxPadding});if(D<this.boxPadding){this.box.getFirst().setStyle("padding-top",(D-this.boxPadding))}if(C<this.boxPadding){this.box.getFirst().setStyle("padding-bottom",(C-this.boxPadding))}}this.applyCorners=function(){if(this.settings.tl||this.settings.tr){var P=Math.max(this.settings.tl?this.settings.tl.radius:0,this.settings.tr?this.settings.tr.radius:0);var O=new Element("div",{styles:{width:"100%",fontSize:"1px",overflow:"hidden",position:"absolute",paddingLeft:this.borderWidth,paddingRight:this.borderWidth,height:P,top:-P,left:-this.borderWidth}});this.topContainer=O.injectTop(this.box)}if(this.settings.bl||this.settings.br){var V=Math.max(this.settings.bl?this.settings.bl.radius:0,this.settings.br?this.settings.br.radius:0);var N=new Element("div",{styles:{width:"100%",fontSize:"1px",overflow:"hidden",position:"absolute",paddingLeft:this.borderWidth,paddingRight:this.borderWidth,height:V,bottom:-V,left:-this.borderWidth}});this.bottomContainer=N.injectInside(this.box)}if(this.topContainer){this.box.style.borderTopWidth="0px"}if(this.bottomContainer){this.box.style.borderBottomWidth="0px"}var a=["tr","tl","br","bl"];for(var e in a){var Z=a[e];if(!this.settings[Z]){if(((Z=="tr"||Z=="tl")&&this.topContainer!=null)||((Z=="br"||Z=="bl")&&this.bottomContainer!=null)){var U=new Element("div",{styles:{position:"relative",fontSize:"1px",overflow:"hidden"}});if(this.backgroundImage=="none"){U.setStyle("background-color",this.boxColor)}else{U.setStyle("background-image",this.backgroundImage)}switch(Z){case"tl":U.setStyles({height:P-this.borderWidth,"margin-right":this.settings.tr.radius-(this.borderWidth*2),"border-left":this.borderString,"border-top":this.borderString,left:-this.borderWidth});break;case"tr":U.setStyles({height:P-this.borderWidth,"margin-left":this.settings.tl.radius-(this.borderWidth*2),"border-right":this.borderString,"border-top":this.borderString,"background-position":-(P+this.borderWidth)+"px 0px",left:this.borderWidth});break;case"bl":U.setStyles({height:V-this.borderWidth,"margin-right":this.settings.br.radius-(this.borderWidth*2),"border-left":this.borderString,"border-bottom":this.borderString,"background-position":(-this.borderWidth)+"px "+(-this.boxHeight-V-this.borderWidth)+"px",left:this.borderWidth});break;case"br":U.setStyles({height:V-this.borderWidth,"margin-left":this.settings.bl.radius-(this.borderWidth*2),"border-right":this.borderString,"border-bottom":this.borderString,"background-position":(-width+V+this.borderWidth)+"px "+(-this.boxHeight-V-this.borderWidth)+"px",left:this.borderWidth});break}}}else{if(this.masterCorners[this.settings[Z].radius]){var U=this.masterCorners[this.settings[Z].radius].cloneNode(true)}else{var U=new Element("div",{styles:{height:this.settings[Z].radius,width:this.settings[Z].radius,position:"absolute",overflow:"visible"}});var I=this.settings[Z].radius-this.borderWidth;for(var S=0,d=this.settings[Z].radius;S<d;S++){if((S+1)>=I){var K=-1}else{var K=Math.floor(Math.sqrt(Math.pow(I,2)-Math.pow((S+1),2)))-1}if(I!=d){if(S>=I){var H=-1}else{var H=Math.ceil(Math.sqrt(Math.pow(I,2)-Math.pow(S,2)))}if((S+1)>=d){var F=-1}else{var F=Math.floor(Math.sqrt(Math.pow(d,2)-Math.pow((S+1),2)))-1}}if(S>=d){var E=-1}else{var E=Math.ceil(Math.sqrt(Math.pow(d,2)-Math.pow(S,2)))}if(K>-1){this.drawPixel(S,0,this.boxColor,1,(K+1),U,-1,this.settings[Z].radius)}if(I!=d){for(var R=(K+1);R<H;R++){if(this.settings.antiAlias){if(this.backgroundImage!="none"){var G=pixelFraction(S,R,I);if(G<0.3){this.drawPixel(S,R,this.borderColor,1,1,U,0,this.settings[Z].radius)}else{this.drawPixel(S,R,this.borderColor,1,1,U,-1,this.settings[Z].radius)}}else{if(this.boxColor=="transparent"){this.drawPixel(S,R,this.borderColor,1-pixelFraction(S,R,I),1,U,0,this.settings[Z].radius)}else{var L=new Color(this.borderColor).mix(this.boxColor,pixelFraction(S,R,I)*100);this.drawPixel(S,R,L,1,1,U,0,this.settings[Z].radius)}}}}if(this.settings.antiAlias){if(F>=H){if(H==-1){H=0}this.drawPixel(S,H,this.borderColor,1,(F-H+1),U,0,0)}}else{if(F>=K){this.drawPixel(S,(K+1),this.borderColor,1,(F-K),U,0,0)}}var W=this.borderColor}else{var W=this.boxColor;var F=K}if(this.settings.antiAlias){for(var R=(F+1);R<E;R++){this.drawPixel(S,R,W,pixelFraction(S,R,d),1,U,((this.borderWidth>0)?0:-1),this.settings[Z].radius)}}}this.masterCorners[this.settings[Z].radius]=U.cloneNode(true)}if(Z!="br"){for(var Y=0,c=U.childNodes.length;Y<c;Y++){var T=U.childNodes[Y];var b=T.getStyle("top").toInt();var g=T.getStyle("left").toInt();var h=T.getStyle("height").toInt();if(Z=="tl"||Z=="bl"){T.setStyle("left",this.settings[Z].radius-g-1)}if(Z=="tr"||Z=="tl"){T.setStyle("top",this.settings[Z].radius-h-b)}switch(Z){case"tr":T.setStyle("background-position",-Math.abs((this.boxWidth-this.settings[Z].radius+this.borderWidth)+g)+"px "+-Math.abs(this.settings[Z].radius-h-b-this.borderWidth)+"px");break;case"tl":T.setStyle("background-position",-Math.abs((this.settings[Z].radius-g-1)-this.borderWidth)+"px "+-Math.abs(this.settings[Z].radius-h-b-this.borderWidth)+"px");break;case"bl":T.setStyle("background-position",-Math.abs((this.settings[Z].radius-g-1)-this.borderWidth)+"px "+-Math.abs((this.boxHeight+this.settings[Z].radius+b)-this.borderWidth)+"px");break}}}}if(U){switch(Z){case"tl":if(U.getStyle("position")=="absolute"){U.setStyle("top","0px");U.setStyle("left","0px")}if(this.topContainer){U.injectInside(this.topContainer)}break;case"tr":if(U.getStyle("position")=="absolute"){U.setStyle("top","0px");U.setStyle("right","0px")}if(this.topContainer){U.injectInside(this.topContainer)}break;case"bl":if(U.getStyle("position")=="absolute"){U.setStyle("bottom","0px");U.setStyle("left","0px")}if(this.bottomContainer){U.injectInside(this.bottomContainer)}break;case"br":if(U.getStyle("position")=="absolute"){U.setStyle("bottom","0px");U.setStyle("right","0px")}if(this.bottomContainer){U.injectInside(this.bottomContainer)}break}}}var X=new Array();X.t=Math.abs(this.settings.tl.radius-this.settings.tr.radius);X.b=Math.abs(this.settings.bl.radius-this.settings.br.radius);for(var Q in X){if(Q=="t"||Q=="b"){if(X[Q]){var f=((this.settings[Q+"l"].radius<this.settings[Q+"r"].radius)?Q+"l":Q+"r");var J=new Element("div",{styles:{height:X[Q],width:this.settings[f].radius,position:"absolute",overflow:"hidden","background-color":this.boxColor}});switch(f){case"tl":J.setStyles({bottom:"0px",left:"0px","border-left":this.borderString});J.injectInside(this.topContainer);break;case"tr":J.setStyles({bottom:"0px",right:"0px","border-right":this.borderString});J.injectInside(this.topContainer);break;case"bl":J.setStyles({top:"0px",left:"0px","border-left":this.borderString});J.injectInside(this.bottomContainer);break;case"br":J.setStyles({top:"0px",right:"0px","border-right":this.borderString});J.injectInside(this.bottomContainer);break}}var M=new Element("div",{styles:{position:"relative",overflow:"hidden","background-color":this.boxColor,"background-image":this.backgroundImage},id:"deco"});switch(Q){case"t":if(this.topContainer){if(this.settings.tl.radius&&this.settings.tr.radius){M.setStyles({height:P-this.borderWidth,"margin-left":this.settings.tl.radius-this.borderWidth,"margin-right":this.settings.tr.radius-this.borderWidth,"border-top":this.borderString});if(this.backgroundImage!="none"){M.setStyle("background-position",(-P-this.borderWidth)+"px 0px")}M.injectInside(this.topContainer)}this.box.setStyle("background-position","0px "+(-P+this.borderWidth)+"px")}break;case"b":if(this.bottomContainer){if(this.settings.bl.radius&&this.settings.br.radius){M.setStyles({height:V-this.borderWidth,"margin-left":this.settings.bl.radius-this.borderWidth,"margin-right":this.settings.br.radius-this.borderWidth,"border-bottom":this.borderString});if(this.backgroundImage!="none"){M.setStyle("background-position",(-V-this.borderWidth)+"px "+(-this.boxHeight-P-this.borderWidth)+"px")}M.injectInside(this.bottomContainer)}}break}}}};this.drawPixel=function(N,K,G,J,L,M,F,I){var E=new Element("div",{styles:{height:L,width:"1px",position:"absolute",overflow:"hidden"},id:"deco"});var H=Math.max(this.settings.tl?this.settings.tl.radius:0,this.settings.tr?this.settings.tr.radius:0);if(F==-1&&this.backgroundImage!="none"){E.setStyles({"background-image":this.backgroundImage,"background-position":(-this.boxWidth+I-N-this.borderWidth)+"px "+(-this.boxHeight-H-K+this.borderWidth)+"px"})}else{E.setStyle("background-color",G)}if(J!=1){E.setOpacity(J)}E.setStyles({top:K,left:N});E.injectInside(M)}}function pixelFraction(B,H,G){var F=0;var D=[];var E=[];var C="";var A=Math.sqrt((Math.pow(G,2)-Math.pow(B,2)));if((A>=H)&&(A<(H+1))){C+="Left";D.extend([0]);E.extend([A-H])}var A=Math.sqrt((Math.pow(G,2)-Math.pow(H+1,2)));if((A>=B)&&(A<(B+1))){C+="Top";D.extend([A-B]);E.extend([1])}var A=Math.sqrt((Math.pow(G,2)-Math.pow(B+1,2)));if((A>=H)&&(A<(H+1))){C+="Right";D.extend([1]);E.extend([A-H])}var A=Math.sqrt((Math.pow(G,2)-Math.pow(H,2)));if((A>=B)&&(A<(B+1))){C+="Bottom";D.extend([A-B]);E.extend([0])}switch(C){case"LeftRight":F=Math.min(E[0],E[1])+Math.abs(E[0]-E[1])/2;break;case"TopRight":F=1-(((1-D[0])*(1-E[1]))/2);break;case"TopBottom":F=Math.min(D[0],D[1])+Math.abs(D[0]-D[1])/2;break;case"LeftBottom":F=(E[0]*D[1])/2;break;default:F=1}return F}function newCurvyError(A){return new Error("curvyCorners Error:\n"+A)};
