function browserdetect(){var agent=navigator.userAgent.toLowerCase();this.isIE=agent.indexOf("msie")>-1;if(this.isIE){this.ieVer=/msie\s(\d\.\d)/.exec(agent)[1];this.quirksMode=!document.compatMode||document.compatMode.indexOf("BackCompat")>-1;this.get_style=function(obj,prop){if(!(prop in obj.currentStyle))return"";var matches=/^([\d.]+)(\w*)/.exec(obj.currentStyle[prop]);if(!matches)return obj.currentStyle[prop];if(matches[1]==0)return'0';if(matches[2]&&matches[2]!=='px'){var style=obj.style.left;var rtStyle=obj.runtimeStyle.left;obj.runtimeStyle.left=obj.currentStyle.left;obj.style.left=matches[1]+matches[2];matches[0]=obj.style.pixelLeft;obj.style.left=style;obj.runtimeStyle.left=rtStyle;}
return matches[0];};this.supportsCorners=false;}
else{this.ieVer=this.quirksMode=0;this.get_style=function(obj,prop){prop=prop.replace(/([a-z])([A-Z])/g,'$1-$2').toLowerCase();return document.defaultView.getComputedStyle(obj,'').getPropertyValue(prop);};this.isSafari=agent.indexOf('safari')!=-1;this.isWebKit=agent.indexOf('webkit')!=-1;this.isOp='opera'in window;if(this.isOp)
this.supportsCorners=(this.isOp=window.opera.version())>=10.5;else{if(!this.isWebkit){if(!(this.isMoz=agent.indexOf('firefox')!==-1)){for(var i=document.childNodes.length;--i>=0;)if('style'in document.childNodes[i]){this.isMoz='MozBorderRadius'in document.childNodes[i].style;break;}}}
this.supportsCorners=this.isWebKit||this.isMoz;}}}
var curvyBrowser=new browserdetect;if(curvyBrowser.isIE){try{document.execCommand("BackgroundImageCache",false,true);}
catch(e){};}
function curvyCnrSpec(selText){this.selectorText=selText;this.tlR=this.trR=this.blR=this.brR=0;this.tlu=this.tru=this.blu=this.bru="";this.antiAlias=true;}
curvyCnrSpec.prototype.setcorner=function(tb,lr,radius,unit){if(!tb){this.tlR=this.trR=this.blR=this.brR=parseInt(radius);this.tlu=this.tru=this.blu=this.bru=unit;}
else{propname=tb.charAt(0)+lr.charAt(0);this[propname+'R']=parseInt(radius);this[propname+'u']=unit;}}
curvyCnrSpec.prototype.get=function(prop){if(/^(t|b)(l|r)(R|u)$/.test(prop))return this[prop];if(/^(t|b)(l|r)Ru$/.test(prop)){var pname=prop.charAt(0)+prop.charAt(1);return this[pname+'R']+this[pname+'u'];}
if(/^(t|b)Ru?$/.test(prop)){var tb=prop.charAt(0);tb+=this[tb+'lR']>this[tb+'rR']?'l':'r';var retval=this[tb+'R'];if(prop.length===3&&prop.charAt(2)==='u')
retval+=this[tb='u'];return retval;}
throw new Error('Don\'t recognize property '+prop);}
curvyCnrSpec.prototype.radiusdiff=function(tb){if(tb!=='t'&&tb!=='b')throw new Error("Param must be 't' or 'b'");return Math.abs(this[tb+'lR']-this[tb+'rR']);}
curvyCnrSpec.prototype.setfrom=function(obj){this.tlu=this.tru=this.blu=this.bru='px';if('tl'in obj)this.tlR=obj.tl.radius;if('tr'in obj)this.trR=obj.tr.radius;if('bl'in obj)this.blR=obj.bl.radius;if('br'in obj)this.brR=obj.br.radius;if('antiAlias'in obj)this.antiAlias=obj.antiAlias;};curvyCnrSpec.prototype.cloneOn=function(box){var props=['tl','tr','bl','br'];var converted=0;var i,propu;for(i in props)if(!isNaN(i)){propu=this[props[i]+'u'];if(propu!==''&&propu!=='px'){converted=new curvyCnrSpec;break;}}
if(!converted)
converted=this;else{var propi,propR,save=curvyBrowser.get_style(box,'left');for(i in props)if(!isNaN(i)){propi=props[i];propu=this[propi+'u'];propR=this[propi+'R'];if(propu!=='px'){var save=box.style.left;box.style.left=propR+propu;propR=box.style.pixelLeft;box.style.left=save;}
converted[propi+'R']=propR;converted[propi+'u']='px';}
box.style.left=save;}
return converted;}
curvyCnrSpec.prototype.radiusSum=function(tb){if(tb!=='t'&&tb!=='b')throw new Error("Param must be 't' or 'b'");return this[tb+'lR']+this[tb+'rR'];}
curvyCnrSpec.prototype.radiusCount=function(tb){var count=0;if(this[tb+'lR'])++count;if(this[tb+'rR'])++count;return count;}
curvyCnrSpec.prototype.cornerNames=function(){var ret=[];if(this.tlR)ret.push('tl');if(this.trR)ret.push('tr');if(this.blR)ret.push('bl');if(this.brR)ret.push('br');return ret;}
function operasheet(sheetnumber){var txt=document.styleSheets.item(sheetnumber).ownerNode.text;txt=txt.replace(/\/\*(\n|\r|.)*?\*\//g,'');var pat=new RegExp("^\\s*([\\w.#][-\\w.#, ]+)[\\n\\s]*\\{([^}]+border-((top|bottom)-(left|right)-)?radius[^}]*)\\}","mg");var matches;this.rules=[];while((matches=pat.exec(txt))!==null){var pat2=new RegExp("(..)border-((top|bottom)-(left|right)-)?radius:\\s*([\\d.]+)(in|em|px|ex|pt)","g");var submatches,cornerspec=new curvyCnrSpec(matches[1]);while((submatches=pat2.exec(matches[2]))!==null)
if(submatches[1]!=="z-")
cornerspec.setcorner(submatches[3],submatches[4],submatches[5],submatches[6]);this.rules.push(cornerspec);}}
operasheet.contains_border_radius=function(sheetnumber){return/border-((top|bottom)-(left|right)-)?radius/.test(document.styleSheets.item(sheetnumber).ownerNode.text);}
function curvyCorners(){var i,j,boxCol,settings,startIndex;if(typeof arguments[0]!=="object")throw curvyCorners.newError("First parameter of curvyCorners() must be an object.");if(arguments[0]instanceof curvyCnrSpec){settings=arguments[0];if(!settings.selectorText&&typeof arguments[1]==='string')
settings.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.");j=arguments[1];if(typeof j!=='string')j='';if(j!==''&&j.charAt(0)!=='.'&&'autoPad'in arguments[0])j='.'+j;settings=new curvyCnrSpec(j);settings.setfrom(arguments[0]);}
if(settings.selectorText){startIndex=0;var args=settings.selectorText.replace(/\s+$/,'').split(/,\s*/);boxCol=new Array;for(i=0;i<args.length;++i){if((j=args[i].lastIndexOf('#'))!==-1)
args[i]=args[i].substr(j);boxCol=boxCol.concat(curvyCorners.getElementsBySelector(args[i].split(/\s+/)));}}
else{startIndex=1;boxCol=arguments;}
for(i=startIndex,j=boxCol.length;i<j;++i){var theBox=boxCol[i];var skipCorners=false;if(!theBox.className)
theBox.className='curvyIgnore';else{skipCorners=theBox.className.indexOf('curvyIgnore')!==-1;if(!skipCorners)theBox.className+=' curvyIgnore';}
if(!skipCorners){if(theBox.className.indexOf('curvyRedraw')!==-1){if(typeof curvyCorners.redrawList==='undefined')curvyCorners.redrawList=new Array;curvyCorners.redrawList.push({node:theBox,spec:settings,copy:theBox.cloneNode(false)});}
var obj=new curvyObject(settings,theBox);obj.applyCorners();}}}
curvyCorners.prototype.applyCornersToAll=function(){throw curvyCorners.newError('This function is now redundant. Just call curvyCorners(). See documentation.');};curvyCorners.redraw=function(){if(curvyBrowser.supportsCorners)return;if(!curvyCorners.redrawList)throw curvyCorners.newError('curvyCorners.redraw() has nothing to redraw.');var old_block_value=curvyCorners.block_redraw;curvyCorners.block_redraw=true;for(var i in curvyCorners.redrawList){if(isNaN(i))continue;var o=curvyCorners.redrawList[i];if(!o.node.clientWidth)continue;var newchild=o.copy.cloneNode(false);for(var contents=o.node.firstChild;contents!=null;contents=contents.nextSibling)
if(contents.className.indexOf('autoPadDiv')!==-1)break;if(!contents){curvyCorners.alert('Couldn\'t find autoPad DIV');break;}
o.node.parentNode.replaceChild(newchild,o.node);var scripts=contents.getElementsByTagName('script');for(var j=scripts.length-1;j>=0;--j)
scripts[j].parentNode.removeChild(scripts[j]);while(contents.firstChild)newchild.appendChild(contents.removeChild(contents.firstChild));o=new curvyObject(o.spec,o.node=newchild);o.applyCorners();}
curvyCorners.block_redraw=old_block_value;}
curvyCorners.adjust=function(obj,prop,newval){if(!curvyBrowser.supportsCorners){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(onoff){curvyCorners.block_redraw=!onoff;}
curvyCorners.newError=function(errorMessage){return new Error("curvyCorners Error:\n"+errorMessage)}
curvyCorners.alert=function(errorMessage){if(typeof curvyCornersVerbose==='undefined'||curvyCornersVerbose)alert(errorMessage);}
function curvyObject(){var boxDisp;this.box=arguments[1];this.settings=arguments[0];this.topContainer=this.bottomContainer=this.shell=boxDisp=null;var boxWidth=this.box.clientWidth;if(('canHaveChildren'in this.box&&!this.box.canHaveChildren)||this.box.tagName==='TABLE')
throw new Error(this.errmsg("You cannot apply corners to "+this.box.tagName+" elements.","Error"));if(!boxWidth&&curvyBrowser.isIE){this.box.style.zoom=1;boxWidth=this.box.clientWidth;}
if(!boxWidth&&curvyBrowser.get_style(this.box,'display')==='inline'){this.box.style.display='inline-block';curvyCorners.alert(this.errmsg("Converting inline element to inline-block","warning"));boxWidth=this.box.clientWidth;}
if(!boxWidth){if(!this.box.parentNode)throw this.newError("box has no parent!");for(boxDisp=this.box;;boxDisp=boxDisp.parentNode){if(!boxDisp||boxDisp.tagName==='BODY'){this.applyCorners=function(){}
curvyCorners.alert(this.errmsg("zero-width box with no accountable parent","warning"));return;}
if(curvyBrowser.get_style(boxDisp,'display')==='none')break;}
var boxDispSave=boxDisp.style.display;boxDisp.style.display='block';boxWidth=this.box.clientWidth;}
if(!boxWidth){curvyCorners.alert(this.errmsg("zero-width box, cannot display","error"));this.applyCorners=function(){}
return;}
if(arguments[0]instanceof curvyCnrSpec)
this.spec=arguments[0].cloneOn(this.box);else{this.spec=new curvyCnrSpec('');this.spec.setfrom(this.settings);}
var borderWidth=curvyBrowser.get_style(this.box,"borderTopWidth");var borderWidthB=curvyBrowser.get_style(this.box,"borderBottomWidth");var borderWidthL=curvyBrowser.get_style(this.box,"borderLeftWidth");var borderWidthR=curvyBrowser.get_style(this.box,"borderRightWidth");var borderColour=curvyBrowser.get_style(this.box,"borderTopColor");var borderColourB=curvyBrowser.get_style(this.box,"borderBottomColor");var borderColourL=curvyBrowser.get_style(this.box,"borderLeftColor");var borderColourR=curvyBrowser.get_style(this.box,"borderRightColor");var borderStyle=curvyBrowser.get_style(this.box,"borderTopStyle");var borderStyleB=curvyBrowser.get_style(this.box,"borderBottomStyle");var borderStyleL=curvyBrowser.get_style(this.box,"borderLeftStyle");var borderStyleR=curvyBrowser.get_style(this.box,"borderRightStyle");var boxColour=curvyBrowser.get_style(this.box,"backgroundColor");var backgroundImage=curvyBrowser.get_style(this.box,"backgroundImage");var backgroundRepeat=curvyBrowser.get_style(this.box,"backgroundRepeat");var backgroundPosX,backgroundPosY;if(this.box.currentStyle&&this.box.currentStyle.backgroundPositionX){backgroundPosX=curvyBrowser.get_style(this.box,"backgroundPositionX");backgroundPosY=curvyBrowser.get_style(this.box,"backgroundPositionY");}
else{backgroundPosX=curvyBrowser.get_style(this.box,'backgroundPosition');backgroundPosX=backgroundPosX.split(' ');backgroundPosY=backgroundPosX.length===2?backgroundPosX[1]:0;backgroundPosX=backgroundPosX[0];}
var boxPosition=curvyBrowser.get_style(this.box,"position");var topPadding=curvyBrowser.get_style(this.box,"paddingTop");var bottomPadding=curvyBrowser.get_style(this.box,"paddingBottom");var leftPadding=curvyBrowser.get_style(this.box,"paddingLeft");var rightPadding=curvyBrowser.get_style(this.box,"paddingRight");var border=curvyBrowser.get_style(this.box,"border");var filter=curvyBrowser.ieVer>7?curvyBrowser.get_style(this.box,'filter'):null;var topMaxRadius=this.spec.get('tR');var botMaxRadius=this.spec.get('bR');var styleToNPx=function(val){if(typeof val==='number')return val;if(typeof val!=='string')throw new Error('unexpected styleToNPx type '+typeof val);var matches=/^[-\d.]([a-z]+)$/.exec(val);if(matches&&matches[1]!='px')throw new Error('Unexpected unit '+matches[1]);if(isNaN(val=parseInt(val)))val=0;return val;}
var min0Px=function(val){return val<=0?"0":val+"px";}
try{this.borderWidth=styleToNPx(borderWidth);this.borderWidthB=styleToNPx(borderWidthB);this.borderWidthL=styleToNPx(borderWidthL);this.borderWidthR=styleToNPx(borderWidthR);this.boxColour=curvyObject.format_colour(boxColour);this.topPadding=styleToNPx(topPadding);this.bottomPadding=styleToNPx(bottomPadding);this.leftPadding=styleToNPx(leftPadding);this.rightPadding=styleToNPx(rightPadding);this.boxWidth=boxWidth;this.boxHeight=this.box.clientHeight;this.borderColour=curvyObject.format_colour(borderColour);this.borderColourB=curvyObject.format_colour(borderColourB);this.borderColourL=curvyObject.format_colour(borderColourL);this.borderColourR=curvyObject.format_colour(borderColourR);this.borderString=this.borderWidth+"px"+" "+borderStyle+" "+this.borderColour;this.borderStringB=this.borderWidthB+"px"+" "+borderStyleB+" "+this.borderColourB;this.borderStringL=this.borderWidthL+"px"+" "+borderStyleL+" "+this.borderColourL;this.borderStringR=this.borderWidthR+"px"+" "+borderStyleR+" "+this.borderColourR;this.backgroundImage=((backgroundImage!="none")?backgroundImage:"");this.backgroundRepeat=backgroundRepeat;}
catch(e){throw this.newError(e.message);}
var clientHeight=this.boxHeight;var clientWidth=boxWidth;if(curvyBrowser.isOp){backgroundPosX=styleToNPx(backgroundPosX);backgroundPosY=styleToNPx(backgroundPosY);if(backgroundPosX){var t=clientWidth+this.borderWidthL+this.borderWidthR;if(backgroundPosX>t)backgroundPosX=t;backgroundPosX=(t/backgroundPosX*100)+'%';}
if(backgroundPosY){var t=clientHeight+this.borderWidth+this.borderWidthB;if(backgroundPosY>t)backgroundPosY=t;backgroundPosY=(t/backgroundPosY*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(boxPosition!="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=(clientWidth+this.borderWidthL+this.borderWidthR)+'px';this.box.style.height=(clientHeight+this.borderWidth+this.borderWidthB)+'px';var newMainContainer=document.createElement("div");newMainContainer.style.position="absolute";if(filter)newMainContainer.style.filter=filter;if(curvyBrowser.quirksMode){newMainContainer.style.width=(clientWidth+this.borderWidthL+this.borderWidthR)+'px';}else{newMainContainer.style.width=clientWidth+'px';}
newMainContainer.style.height=min0Px(clientHeight+this.borderWidth+this.borderWidthB-topMaxRadius-botMaxRadius);newMainContainer.style.padding="0";newMainContainer.style.top=topMaxRadius+"px";newMainContainer.style.left="0";if(this.borderWidthL)
newMainContainer.style.borderLeft=this.borderStringL;if(this.borderWidth&&!topMaxRadius)
newMainContainer.style.borderTop=this.borderString;if(this.borderWidthR)
newMainContainer.style.borderRight=this.borderStringR;if(this.borderWidthB&&!botMaxRadius)
newMainContainer.style.borderBottom=this.borderStringB;newMainContainer.style.backgroundColor=boxColour;newMainContainer.style.backgroundImage=this.backgroundImage;newMainContainer.style.backgroundRepeat=this.backgroundRepeat;newMainContainer.style.direction='ltr';this.shell=this.box.appendChild(newMainContainer);boxWidth=curvyBrowser.get_style(this.shell,"width");if(boxWidth===""||boxWidth==="auto"||boxWidth.indexOf("%")!==-1)throw this.newError('Shell width is '+boxWidth);this.boxWidth=(boxWidth!=""&&boxWidth!="auto"&&boxWidth.indexOf("%")==-1)?parseInt(boxWidth):this.shell.clientWidth;this.applyCorners=function(){this.backgroundPosX=this.backgroundPosY=0;if(this.backgroundObject){var bgOffset=function(style,imglen,boxlen){if(style===0)return 0;var retval;if(style==='right'||style==='bottom')return boxlen-imglen;if(style==='center')return(boxlen-imglen)/2;if(style.indexOf('%')>0)return(boxlen-imglen)*100/parseInt(style);return styleToNPx(style);}
this.backgroundPosX=bgOffset(backgroundPosX,this.backgroundObject.width,clientWidth);this.backgroundPosY=bgOffset(backgroundPosY,this.backgroundObject.height,clientHeight);}
else if(this.backgroundImage){this.backgroundPosX=styleToNPx(backgroundPosX);this.backgroundPosY=styleToNPx(backgroundPosY);}
if(topMaxRadius){newMainContainer=document.createElement("div");newMainContainer.style.width=this.boxWidth+"px";newMainContainer.style.fontSize="1px";newMainContainer.style.overflow="hidden";newMainContainer.style.position="absolute";newMainContainer.style.paddingLeft=this.borderWidth+"px";newMainContainer.style.paddingRight=this.borderWidth+"px";newMainContainer.style.height=topMaxRadius+"px";newMainContainer.style.top=-topMaxRadius+"px";newMainContainer.style.left=-this.borderWidthL+"px";this.topContainer=this.shell.appendChild(newMainContainer);}
if(botMaxRadius){var newMainContainer=document.createElement("div");newMainContainer.style.width=this.boxWidth+"px";newMainContainer.style.fontSize="1px";newMainContainer.style.overflow="hidden";newMainContainer.style.position="absolute";newMainContainer.style.paddingLeft=this.borderWidthB+"px";newMainContainer.style.paddingRight=this.borderWidthB+"px";newMainContainer.style.height=botMaxRadius+"px";newMainContainer.style.bottom=-botMaxRadius+"px";newMainContainer.style.left=-this.borderWidthL+"px";this.bottomContainer=this.shell.appendChild(newMainContainer);}
var corners=this.spec.cornerNames();for(var i in corners)if(!isNaN(i)){var cc=corners[i];var specRadius=this.spec[cc+'R'];var bwidth,bcolor,borderRadius,borderWidthTB;if(cc=="tr"||cc=="tl"){bwidth=this.borderWidth;bcolor=this.borderColour;borderWidthTB=this.borderWidth;}else{bwidth=this.borderWidthB;bcolor=this.borderColourB;borderWidthTB=this.borderWidthB;}
borderRadius=specRadius-borderWidthTB;var newCorner=document.createElement("div");newCorner.style.height=this.spec.get(cc+'Ru');newCorner.style.width=this.spec.get(cc+'Ru');newCorner.style.position="absolute";newCorner.style.fontSize="1px";newCorner.style.overflow="hidden";var intx,inty,outsideColour;var trans=filter?parseInt(/alpha\(opacity.(\d+)\)/.exec(filter)[1]):100;for(intx=0;intx<specRadius;++intx){var y1=(intx+1>=borderRadius)?-1:Math.floor(Math.sqrt(Math.pow(borderRadius,2)-Math.pow(intx+1,2)))-1;if(borderRadius!=specRadius){var y2=(intx>=borderRadius)?-1:Math.ceil(Math.sqrt(Math.pow(borderRadius,2)-Math.pow(intx,2)));var y3=(intx+1>=specRadius)?-1:Math.floor(Math.sqrt(Math.pow(specRadius,2)-Math.pow((intx+1),2)))-1;}
var y4=(intx>=specRadius)?-1:Math.ceil(Math.sqrt(Math.pow(specRadius,2)-Math.pow(intx,2)));if(y1>-1)this.drawPixel(intx,0,this.boxColour,trans,(y1+1),newCorner,true,specRadius);if(borderRadius!=specRadius){if(this.spec.antiAlias){for(inty=y1+1;inty<y2;++inty){if(this.backgroundImage!=""){var borderFract=curvyObject.pixelFraction(intx,inty,borderRadius)*100;this.drawPixel(intx,inty,bcolor,trans,1,newCorner,borderFract>=30,specRadius);}
else if(this.boxColour!=='transparent'){var pixelcolour=curvyObject.BlendColour(this.boxColour,bcolor,curvyObject.pixelFraction(intx,inty,borderRadius));this.drawPixel(intx,inty,pixelcolour,trans,1,newCorner,false,specRadius);}
else this.drawPixel(intx,inty,bcolor,trans>>1,1,newCorner,false,specRadius);}
if(y3>=y2){if(y2==-1)y2=0;this.drawPixel(intx,y2,bcolor,trans,(y3-y2+1),newCorner,false,0);}
outsideColour=bcolor;inty=y3;}
else{if(y3>y1){this.drawPixel(intx,(y1+1),bcolor,trans,(y3-y1),newCorner,false,0);}}}
else{outsideColour=this.boxColour;inty=y1;}
if(this.spec.antiAlias&&this.boxColour!=='transparent'){while(++inty<y4){this.drawPixel(intx,inty,outsideColour,(curvyObject.pixelFraction(intx,inty,specRadius)*trans),1,newCorner,borderWidthTB<=0,specRadius);}}}
for(var t=0,k=newCorner.childNodes.length;t<k;++t){var pixelBar=newCorner.childNodes[t];var pixelBarTop=parseInt(pixelBar.style.top);var pixelBarLeft=parseInt(pixelBar.style.left);var pixelBarHeight=parseInt(pixelBar.style.height);if(cc=="tl"||cc=="bl"){pixelBar.style.left=(specRadius-pixelBarLeft-1)+"px";}
if(cc=="tr"||cc=="tl"){pixelBar.style.top=(specRadius-pixelBarHeight-pixelBarTop)+"px";}
pixelBar.style.backgroundRepeat=this.backgroundRepeat;if(this.backgroundImage)switch(cc){case"tr":pixelBar.style.backgroundPosition=(this.backgroundPosX-this.borderWidthL+specRadius-clientWidth-pixelBarLeft)+"px "+(this.backgroundPosY+pixelBarHeight+pixelBarTop+this.borderWidth-specRadius)+"px";break;case"tl":pixelBar.style.backgroundPosition=(this.backgroundPosX-specRadius+pixelBarLeft+1+this.borderWidthL)+"px "+(this.backgroundPosY-specRadius+pixelBarHeight+pixelBarTop+this.borderWidth)+"px";break;case"bl":pixelBar.style.backgroundPosition=(this.backgroundPosX-specRadius+pixelBarLeft+1+this.borderWidthL)+"px "+(this.backgroundPosY-clientHeight-this.borderWidth+(curvyBrowser.quirksMode?pixelBarTop:-pixelBarTop)+specRadius)+"px";break;case"br":if(curvyBrowser.quirksMode){pixelBar.style.backgroundPosition=(this.backgroundPosX-this.borderWidthL-clientWidth+specRadius-pixelBarLeft)+"px "+(this.backgroundPosY-clientHeight-this.borderWidth+pixelBarTop+specRadius)+"px";}else{pixelBar.style.backgroundPosition=(this.backgroundPosX-this.borderWidthL-clientWidth+specRadius-pixelBarLeft)+"px "+(this.backgroundPosY-clientHeight-this.borderWidth+specRadius-pixelBarTop)+"px";}}}
switch(cc){case"tl":newCorner.style.top=newCorner.style.left="0";this.topContainer.appendChild(newCorner);break;case"tr":newCorner.style.top=newCorner.style.right="0";this.topContainer.appendChild(newCorner);break;case"bl":newCorner.style.bottom=newCorner.style.left="0";this.bottomContainer.appendChild(newCorner);break;case"br":newCorner.style.bottom=newCorner.style.right="0";this.bottomContainer.appendChild(newCorner);}}
var radiusDiff={t:this.spec.radiusdiff('t'),b:this.spec.radiusdiff('b')};for(z in radiusDiff){if(typeof z==='function')continue;if(!this.spec.get(z+'R'))continue;if(radiusDiff[z]){var smallerCornerType=(this.spec[z+"lR"]<this.spec[z+"rR"])?z+"l":z+"r";var newFiller=document.createElement("div");newFiller.style.height=radiusDiff[z]+"px";newFiller.style.width=this.spec.get(smallerCornerType+'Ru');newFiller.style.position="absolute";newFiller.style.fontSize="1px";newFiller.style.overflow="hidden";newFiller.style.backgroundColor=this.boxColour;if(filter)newFiller.style.filter=filter;newFiller.style.backgroundImage=this.backgroundImage;newFiller.style.backgroundRepeat=this.backgroundRepeat;switch(smallerCornerType){case"tl":newFiller.style.bottom=newFiller.style.left="0";newFiller.style.borderLeft=this.borderStringL;newFiller.style.backgroundPosition=this.backgroundPosX+"px "+(this.borderWidth+this.backgroundPosY-this.spec.tlR)+"px";this.topContainer.appendChild(newFiller);break;case"tr":newFiller.style.bottom=newFiller.style.right="0";newFiller.style.borderRight=this.borderStringR;newFiller.style.backgroundPosition=(this.backgroundPosX-this.boxWidth+this.spec.trR)+"px "+(this.borderWidth+this.backgroundPosY-this.spec.trR)+"px";this.topContainer.appendChild(newFiller);break;case"bl":newFiller.style.top=newFiller.style.left="0";newFiller.style.borderLeft=this.borderStringL;newFiller.style.backgroundPosition=this.backgroundPosX+"px "+(this.backgroundPosY-this.borderWidth-this.boxHeight+radiusDiff[z]+this.spec.blR)+"px";this.bottomContainer.appendChild(newFiller);break;case"br":newFiller.style.top=newFiller.style.right="0";newFiller.style.borderRight=this.borderStringR;newFiller.style.backgroundPosition=(this.borderWidthL+this.backgroundPosX-this.boxWidth+this.spec.brR)+"px "+(this.backgroundPosY-this.borderWidth-this.boxHeight+radiusDiff[z]+this.spec.brR)+"px";this.bottomContainer.appendChild(newFiller);}}
var newFillerBar=document.createElement("div");if(filter)newFillerBar.style.filter=filter;newFillerBar.style.position="relative";newFillerBar.style.fontSize="1px";newFillerBar.style.overflow="hidden";newFillerBar.style.width=this.fillerWidth(z);newFillerBar.style.backgroundColor=this.boxColour;newFillerBar.style.backgroundImage=this.backgroundImage;newFillerBar.style.backgroundRepeat=this.backgroundRepeat;switch(z){case"t":if(this.topContainer){if(curvyBrowser.quirksMode){newFillerBar.style.height=100+topMaxRadius+"px";}else{newFillerBar.style.height=100+topMaxRadius-this.borderWidth+"px";}
newFillerBar.style.marginLeft=this.spec.tlR?(this.spec.tlR-this.borderWidthL)+"px":"0";newFillerBar.style.borderTop=this.borderString;if(this.backgroundImage){var x_offset=this.spec.tlR?(this.borderWidthL+this.backgroundPosX-this.spec.tlR)+"px ":this.backgroundPosX+"px ";newFillerBar.style.backgroundPosition=x_offset+this.backgroundPosY+"px";this.shell.style.backgroundPosition=this.backgroundPosX+"px "+(this.backgroundPosY-topMaxRadius+this.borderWidthL)+"px";}
this.topContainer.appendChild(newFillerBar);}
break;case"b":if(this.bottomContainer){if(curvyBrowser.quirksMode){newFillerBar.style.height=botMaxRadius+"px";}else{newFillerBar.style.height=botMaxRadius-this.borderWidthB+"px";}
newFillerBar.style.marginLeft=this.spec.blR?(this.spec.blR-this.borderWidthL)+"px":"0";newFillerBar.style.borderBottom=this.borderStringB;if(this.backgroundImage){var x_offset=this.spec.blR?(this.backgroundPosX+this.borderWidthL-this.spec.blR)+"px ":this.backgroundPosX+"px ";newFillerBar.style.backgroundPosition=x_offset+(this.backgroundPosY-clientHeight-this.borderWidth+botMaxRadius)+"px";}
this.bottomContainer.appendChild(newFillerBar);}}}
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=clientWidth;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(boxDisp)boxDisp.style.display=boxDispSave;}
if(this.backgroundImage){backgroundPosX=this.backgroundCheck(backgroundPosX);backgroundPosY=this.backgroundCheck(backgroundPosY);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(style){if(style==='top'||style==='left'||parseInt(style)===0)return 0;if(!(/^[-\d.]+px$/.test(style))&&!this.backgroundObject){this.backgroundObject=new Image;var imgName=function(str){var matches=/url\("?([^'"]+)"?\)/.exec(str);return(matches?matches[1]:str);}
this.backgroundObject.src=imgName(this.backgroundImage);}
return style;}
curvyObject.dispatch=function(obj){if('dispatch'in obj)
obj.dispatch();else throw obj.newError('No dispatch function');}
curvyObject.prototype.drawPixel=function(intx,inty,colour,transAmount,height,newCorner,image,cornerRadius){var pixel=document.createElement("div");pixel.style.height=height+"px";pixel.style.width="1px";pixel.style.position="absolute";pixel.style.fontSize="1px";pixel.style.overflow="hidden";var topMaxRadius=this.spec.get('tR');pixel.style.backgroundColor=colour;if(image&&this.backgroundImage!=""){pixel.style.backgroundImage=this.backgroundImage;pixel.style.backgroundPosition="-"+(this.boxWidth-(cornerRadius-intx)+this.borderWidth)+"px -"+((this.boxHeight+topMaxRadius+inty)-this.borderWidth)+"px";}
if(transAmount!=100)curvyObject.setOpacity(pixel,transAmount);pixel.style.top=inty+"px";pixel.style.left=intx+"px";newCorner.appendChild(pixel);}
curvyObject.prototype.fillerWidth=function(tb){var b_width,f_width;b_width=curvyBrowser.quirksMode?0:this.spec.radiusCount(tb)*this.borderWidthL;if((f_width=this.boxWidth-this.spec.radiusSum(tb)+b_width)<0)
throw this.newError("Radius exceeds box width");return f_width+'px';}
curvyObject.prototype.errmsg=function(msg,gravity){var extradata="\ntag: "+this.box.tagName;if(this.box.id)extradata+="\nid: "+this.box.id;if(this.box.className)extradata+="\nclass: "+this.box.className;var parent;if((parent=this.box.parentNode)===null)
extradata+="\n(box has no parent)";else{extradata+="\nParent tag: "+parent.tagName;if(parent.id)extradata+="\nParent ID: "+parent.id;if(parent.className)extradata+="\nParent class: "+parent.className;}
if(gravity===undefined)gravity='warning';return'curvyObject '+gravity+":\n"+msg+extradata;}
curvyObject.prototype.newError=function(msg){return new Error(this.errmsg(msg,'exception'));}
curvyObject.IntToHex=function(strNum){var hexdig=['0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'];return hexdig[strNum>>>4]+''+hexdig[strNum&15];}
curvyObject.BlendColour=function(Col1,Col2,Col1Fraction){if(Col1==='transparent'||Col2==='transparent')throw this.newError('Cannot blend with transparent');if(Col1.charAt(0)!=='#'){Col1=curvyObject.format_colour(Col1);}
if(Col2.charAt(0)!=='#'){Col2=curvyObject.format_colour(Col2);}
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"#"+curvyObject.IntToHex(endRed)+curvyObject.IntToHex(endGreen)+curvyObject.IntToHex(endBlue);}
curvyObject.pixelFraction=function(x,y,r){var fraction;var rsquared=r*r;var xvalues=new Array(2);var yvalues=new Array(2);var point=0;var whatsides="";var intersect=Math.sqrt(rsquared-Math.pow(x,2));if(intersect>=y&&intersect<(y+1)){whatsides="Left";xvalues[point]=0;yvalues[point]=intersect-y;++point;}
intersect=Math.sqrt(rsquared-Math.pow(y+1,2));if(intersect>=x&&intersect<(x+1)){whatsides+="Top";xvalues[point]=intersect-x;yvalues[point]=1;++point;}
intersect=Math.sqrt(rsquared-Math.pow(x+1,2));if(intersect>=y&&intersect<(y+1)){whatsides+="Right";xvalues[point]=1;yvalues[point]=intersect-y;++point;}
intersect=Math.sqrt(rsquared-Math.pow(y,2));if(intersect>=x&&intersect<(x+1)){whatsides+="Bottom";xvalues[point]=intersect-x;yvalues[point]=0;}
switch(whatsides){case"LeftRight":fraction=Math.min(yvalues[0],yvalues[1])+((Math.max(yvalues[0],yvalues[1])-Math.min(yvalues[0],yvalues[1]))/2);break;case"TopRight":fraction=1-(((1-xvalues[0])*(1-yvalues[1]))/2);break;case"TopBottom":fraction=Math.min(xvalues[0],xvalues[1])+((Math.max(xvalues[0],xvalues[1])-Math.min(xvalues[0],xvalues[1]))/2);break;case"LeftBottom":fraction=yvalues[0]*xvalues[1]/2;break;default:fraction=1;}
return fraction;}
curvyObject.rgb2Array=function(rgbColour){var rgbValues=rgbColour.substring(4,rgbColour.indexOf(")"));return rgbValues.split(/,\s*/);}
curvyObject.rgb2Hex=function(rgbColour){try{var rgbArray=curvyObject.rgb2Array(rgbColour);var red=parseInt(rgbArray[0]);var green=parseInt(rgbArray[1]);var blue=parseInt(rgbArray[2]);var hexColour="#"+curvyObject.IntToHex(red)+curvyObject.IntToHex(green)+curvyObject.IntToHex(blue);}
catch(e){var msg='getMessage'in e?e.getMessage():e.message;throw new Error("Error ("+msg+") converting RGB value to Hex in rgb2Hex");}
return hexColour;}
curvyObject.setOpacity=function(obj,opacity){opacity=(opacity==100)?99.999:opacity;if(curvyBrowser.isSafari&&obj.tagName!="IFRAME"){var rgbArray=curvyObject.rgb2Array(obj.style.backgroundColor);var red=parseInt(rgbArray[0]);var green=parseInt(rgbArray[1]);var blue=parseInt(rgbArray[2]);obj.style.backgroundColor="rgba("+red+", "+green+", "+blue+", "+opacity/100+")";}
else if(typeof obj.style.opacity!=="undefined"){obj.style.opacity=opacity/100;}
else if(typeof obj.style.MozOpacity!=="undefined"){obj.style.MozOpacity=opacity/100;}
else if(typeof obj.style.filter!=="undefined"){obj.style.filter="alpha(opacity="+opacity+")";}
else if(typeof obj.style.KHTMLOpacity!=="undefined"){obj.style.KHTMLOpacity=opacity/100;}}
curvyCorners.addEvent=function(elm,evType,fn,useCapture){if(elm.addEventListener){elm.addEventListener(evType,fn,useCapture);return true;}
if(elm.attachEvent)return elm.attachEvent('on'+evType,fn);elm['on'+evType]=fn;return false;}
if(typeof addEvent==='undefined')addEvent=curvyCorners.addEvent;curvyObject.getComputedColour=function(colour){var d=document.createElement('DIV');d.style.backgroundColor=colour;document.body.appendChild(d);if(window.getComputedStyle){var rtn=document.defaultView.getComputedStyle(d,null).getPropertyValue('background-color');d.parentNode.removeChild(d);if(rtn.substr(0,3)==="rgb")rtn=curvyObject.rgb2Hex(rtn);return rtn;}
else{var rng=document.body.createTextRange();rng.moveToElementText(d);rng.execCommand('ForeColor',false,colour);var iClr=rng.queryCommandValue('ForeColor');var rgb="rgb("+(iClr&0xFF)+", "+((iClr&0xFF00)>>8)+", "+((iClr&0xFF0000)>>16)+")";d.parentNode.removeChild(d);rng=null;return curvyObject.rgb2Hex(rgb);}}
curvyObject.format_colour=function(colour){if(colour!=""&&colour!="transparent"){if(colour.substr(0,3)==="rgb"){colour=curvyObject.rgb2Hex(colour);}
else if(colour.charAt(0)!=='#'){colour=curvyObject.getComputedColour(colour);}
else if(colour.length===4){colour="#"+colour.charAt(1)+colour.charAt(1)+colour.charAt(2)+colour.charAt(2)+colour.charAt(3)+colour.charAt(3);}}
return colour;}
curvyCorners.getElementsByClass=function(searchClass,node){var classElements=new Array;if(node===undefined)node=document;searchClass=searchClass.split('.');var tag='*';if(searchClass.length===1){tag=searchClass[0];searchClass=false;}
else{if(searchClass[0])tag=searchClass[0];searchClass=searchClass[1];}
var i,els,elsLen;if(tag.charAt(0)==='#'){els=document.getElementById(tag.substr(1));if(els)classElements.push(els);}
else{els=node.getElementsByTagName(tag);elsLen=els.length;if(searchClass){var pattern=new RegExp("(^|\\s)"+searchClass+"(\\s|$)");for(i=0;i<elsLen;++i){if(pattern.test(els[i].className))classElements.push(els[i]);}}
else for(i=0;i<elsLen;++i)classElements.push(els[i]);}
return classElements;}
curvyCorners.getElementsBySelector=function(selectors,parent){var ret;var sel=selectors[0];if(parent===undefined)parent=document;if(sel.indexOf('#')===-1)
ret=curvyCorners.getElementsByClass(sel,parent);else{var t=parent.getElementById(sel.substr(1));if(!t)return[];ret=[t];}
if(selectors.length>1){var subret=[];for(var i=ret.length;--i>=0;)
subret=subret.concat(curvyCorners.getElementsBySelector(selectors.slice(1),ret[i]));ret=subret;}
return ret;}
if(curvyBrowser.supportsCorners){var curvyCornersNoAutoScan=true;curvyCorners.init=function(){};}
else{curvyCorners.scanStyles=function(){function units(num){if(!parseInt(num))return'px';var matches=/^[\d.]+(\w+)$/.exec(num);return matches[1];}
var t,i,j;if(curvyBrowser.isIE){function procIEStyles(rule){var style=rule.style;if(curvyBrowser.ieVer>6.0){var allR=style['-moz-border-radius']||0;var tR=style['-moz-border-radius-topright']||0;var tL=style['-moz-border-radius-topleft']||0;var bR=style['-moz-border-radius-bottomright']||0;var bL=style['-moz-border-radius-bottomleft']||0;}
else{var allR=style['moz-border-radius']||0;var tR=style['moz-border-radius-topright']||0;var tL=style['moz-border-radius-topleft']||0;var bR=style['moz-border-radius-bottomright']||0;var bL=style['moz-border-radius-bottomleft']||0;}
if(allR){var t=allR.split('/');t=t[0].split(/\s+/);if(t[t.length-1]==='')t.pop();switch(t.length){case 3:tL=t[0];tR=bL=t[1];bR=t[2];allR=false;break;case 2:tL=bR=t[0];tR=bL=t[1];allR=false;case 1:break;case 4:tL=t[0];tR=t[1];bR=t[2];bL=t[3];allR=false;break;default:curvyCorners.alert('Illegal corners specification: '+allR);}}
if(allR||tL||tR||bR||bL){var settings=new curvyCnrSpec(rule.selectorText);if(allR)
settings.setcorner(null,null,parseInt(allR),units(allR));else{if(tR)settings.setcorner('t','r',parseInt(tR),units(tR));if(tL)settings.setcorner('t','l',parseInt(tL),units(tL));if(bL)settings.setcorner('b','l',parseInt(bL),units(bL));if(bR)settings.setcorner('b','r',parseInt(bR),units(bR));}
curvyCorners(settings);}}
for(t=0;t<document.styleSheets.length;++t){try{if(document.styleSheets[t].imports){for(i=0;i<document.styleSheets[t].imports.length;++i)
for(j=0;j<document.styleSheets[t].imports[i].rules.length;++j)
procIEStyles(document.styleSheets[t].imports[i].rules[j]);}
for(i=0;i<document.styleSheets[t].rules.length;++i)
procIEStyles(document.styleSheets[t].rules[i]);}
catch(e){if(typeof curvyCornersVerbose!=='undefined'&&curvyCornersVerbose)
alert(e.message+" - ignored");}}}
else if(curvyBrowser.isOp){for(t=0;t<document.styleSheets.length;++t){if(operasheet.contains_border_radius(t)){j=new operasheet(t);for(i in j.rules)if(!isNaN(i))
curvyCorners(j.rules[i]);}}}
else curvyCorners.alert('Scanstyles does nothing in Webkit/Firefox/Opera');};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 curvyCorners.addEvent(window,'load',curvyCorners.init,false);}
