// Contributors 
// Ilkka Huotari at http://www.editsite.net
// Mathieu 'p01' HENRI at http://www.p01.org/
// http://seky.nahory.net/2005/04/rounded-corners/
// Steven Wittens at http://www.acko.net/anti-aliased-nifty-corners
// Original Nifty Corners by Alessandro Fulciniti at http://pro.html.it/esempio/nifty/
function NiftyCheck(){if(!document.getElementById||!document.createElement){return false;}
var b=navigator.userAgent.toLowerCase();if(b.indexOf("msie 5")>0&&b.indexOf("opera")==-1){return false;}
return true;}
function Rounded(className,sizex,sizey,sizex_b,sizey_b){var bk;if(!NiftyCheck())return;if(typeof(sizex_b)=='undefined')
sizex_b=sizex;if(typeof(sizey_b)=='undefined')
sizey_b=sizey;var v=getElements(className);var l=v.length;for(var i=0;i<l;i++){color=get_current_style(v[i],"background-color","transparent");bk=get_current_style(v[i].parentNode,"background-color","transparent");AddRounded(v[i],bk,color,sizex,sizey,true);AddRounded(v[i],bk,color,sizex_b,sizey_b,false);}}
Math.sqr=function(x){return x*x;};function Blend(a,b,alpha){var ca=Array(parseInt('0x'+a.substring(1,3)),parseInt('0x'+a.substring(3,5)),parseInt('0x'+a.substring(5,7)));var cb=Array(parseInt('0x'+b.substring(1,3)),parseInt('0x'+b.substring(3,5)),parseInt('0x'+b.substring(5,7)));return'#'+('0'+Math.round(ca[0]+(cb[0]-ca[0])*alpha).toString(16)).slice(-2).toString(16)
+('0'+Math.round(ca[1]+(cb[1]-ca[1])*alpha).toString(16)).slice(-2).toString(16)
+('0'+Math.round(ca[2]+(cb[2]-ca[2])*alpha).toString(16)).slice(-2).toString(16);return'#'+('0'+Math.round(ca[0]+(cb[0]-ca[0])*alpha).toString(16)).slice(-2).toString(16)
+('0'+Math.round(ca[1]+(cb[1]-ca[1])*alpha).toString(16)).slice(-2).toString(16)
+('0'+Math.round(ca[2]+(cb[2]-ca[2])*alpha).toString(16)).slice(-2).toString(16);}
function AddRounded(el,bk,color,sizex,sizey,top){if(!sizex&&!sizey)
return;var i,j;var d=document.createElement("div");d.style.backgroundColor=bk;var lastarc=0;for(i=1;i<=sizey;i++){var coverage,arc2,arc3;arc=Math.sqrt(1.0-Math.sqr(1.0-i/sizey))*sizex;var n_bg=sizex-Math.ceil(arc);var n_fg=Math.floor(lastarc);var n_aa=sizex-n_bg-n_fg;var x=document.createElement("div");var y=d;x.style.margin="0px "+n_bg+"px";x.style.height='1px';x.style.overflow='hidden';for(j=1;j<=n_aa;j++){if(j==1){if(j==n_aa){coverage=((arc+lastarc)*.5)-n_fg;}
else{arc2=Math.sqrt(1.0-Math.sqr((sizex-n_bg-j+1)/sizex))*sizey;coverage=(arc2-(sizey-i))*(arc-n_fg-n_aa+1)*.5;coverage=0;}}
else if(j==n_aa){arc2=Math.sqrt(1.0-Math.sqr((sizex-n_bg-j+1)/sizex))*sizey;coverage=1.0-(1.0-(arc2-(sizey-i)))*(1.0-(lastarc-n_fg))*.5;}
else{arc3=Math.sqrt(1.0-Math.sqr((sizex-n_bg-j)/sizex))*sizey;arc2=Math.sqrt(1.0-Math.sqr((sizex-n_bg-j+1)/sizex))*sizey;coverage=((arc2+arc3)*.5)-(sizey-i);}
x.style.backgroundColor=Blend(bk,color,coverage);if(top)
y.appendChild(x);else
y.insertBefore(x,y.firstChild);y=x;var x=document.createElement("div");x.style.height='1px';x.style.overflow='hidden';x.style.margin="0px 1px";}
x.style.backgroundColor=color;if(top)
y.appendChild(x);else
y.insertBefore(x,y.firstChild);lastarc=arc;}
if(top)
el.insertBefore(d,el.firstChild);else
el.appendChild(d);}
function getElements(className){var elements=[];var el=document.getElementsByTagName('DIV');var regexp=new RegExp("\\b"+className+"\\b");for(var i=0;i<el.length;i++)
{if(regexp.test(el[i].className))
elements.push(el[i]);}
return elements;}
function get_current_style(element,property,not_accepted)
{var ee,i,val,apr;try
{var cs=document.defaultView.getComputedStyle(element,'');val=cs.getPropertyValue(property);}
catch(ee)
{if(element.currentStyle)
{apr=property.split("-");for(i=1;i<apr.length;i++)apr[i]=apr[i].toUpperCase();apr=apr.join("");val=element.currentStyle.getAttribute(apr);}}
if((val.indexOf("rgba")>-1||val==not_accepted)&&element.parentNode)
{if(element.parentNode!=document)
val=get_current_style(element.parentNode,property,not_accepted);else
val='#FFFFFF';}
if(val.indexOf("rgb")>-1&&val.indexOf("rgba")==-1)
val=rgb2hex(val);if(val.length==4)
val='#'+val.substring(1,1)+val.substring(1,1)+val.substring(2,1)+val.substring(2,1)+val.substring(3,1)+val.substring(3,1);return val;}
function rgb2hex(value)
{var x=255;var hex='';var i;var regexp=/([0-9]+)[, ]+([0-9]+)[, ]+([0-9]+)/;var array=regexp.exec(value);for(i=1;i<4;i++)hex+=('0'+parseInt(array[i]).toString(16)).slice(-2);return'#'+hex;}
