		document.write('<style>html,body{height:100%}.r_box,.r_back,.r_back *,.r_main{outline:none;-moz-outline:none;-khtml-margin-start:0;-khtml-padding-start:0;-webkit-padding-start:0;-webkit-margin-start:0;-moz-box-sizing:border-box;box-sizing:border-box;border-box:border-box;-ms-box-sizing:border-box;-khtml-box-sizing:border-box;-webkit-box-sizing:border-box;padding:0;margin:0}.r_box{position:relative;*display:inline-block;_height:1%}.r_main{position:relative;height:100%;z-index:1}.r_back{position:absolute;width:100%;height:100%;z-index:0}.r_back *{border:1px solid red;border-width:0 1px 0 1px}.r_back div{display:block;height:100%}.r_back .r_sup,.r_back .r_sub{border:0;position:absolute;width:100%;height:0}.r_sup{top:0}.r_sup *,.r_sub *{display:block;text-decoration:none;_font:normal 0px/0px;padding:0;margin:0;height:1px;overflow:hidden;background:transparent}</style>');
		//side = all|left|right|bottom|top
		function roundCorners(node,radius,side){
			side=side||'all';var ns=node.style;
			if(window.stop&&!window.opera&&(window.postMessage||/a/.__proto__=='//')&&(''.toString+'').indexOf('[native')>-1){
				var TL=(side!='bottom'&&side!='right'?radius:'0'),
					TR=(side!='bottom'&&side!='left'?radius:'0'),
					BL=(side!='top'&&side!='right'?radius:'0'),
					BR=(side!='top'&&side!='left'?radius:'0');
			    ns.cssText+='-moz-border-radius-topleft:'+TL+'px;-webkit-border-top-left-radius:'+TL+'px;-moz-border-radius-topright:'+TR+'px;-webkit-border-top-right-radius:'+TR+'px;-moz-border-radius-bottomleft:'+BL+'px;-webkit-border-bottom-left-radius:'+BL+'px;-moz-border-radius-bottomright:'+BR+'px;-webkit-border-bottom-right-radius:'+BR+'px';
				node.wrapper=node;
				return
			}
			if(node.rounded!=side+'_'+radius/*&&radius*2<node.offsetHeight&&radius*2<node.offsetWidth*/){
				//если у тега уже есть закругление не совпадающее с заданным, удаляем его wrapper
				if(node.wrapper){
                    var wr=node.wrapper;
					ns.backgroundColor=wr.backgroundBak;
					ns.border=wr.borderBak;
					ns.width=wr.widthBak;
					
					ns.height=wr.heightBak;
                	ns['float']=ns.cssFloat=wr.floatBak;
                	ns.margin=wr.marginBak;
                	ns.top=wr.topBak;
                	ns.left=wr.leftBak;
                	ns.right=wr.rightBak;
                	ns.bottom=wr.bottomBak;
			    	ns.position=wr.positionBak;
			    	ns.display=wr.displayBak;
			    	ns.visibility=wr.visibilityBak;
			    	ns.zIndex=wr.zindexBak;
			    	
					node.className=node.className.replace(/\sr_main(\s|$)/i,'$1');
					//удаляем обертку, оставляя только исходный блок
					wr.parentNode.replaceChild(node,wr);
				}
				var thiss=arguments.callee;
				//создаем основной wrapper
				var wr=node.wrapper=node.cloneNode(!1);

				//записываем параметры округления в свойство исходного блока
				node.rounded=side+'_'+radius;
				//убираем id у копии wrappera
				wr.id='';

				wr.className+=' r_box';
				node.className+=' r_main';

                //получаем актуальный css блока
				var st=thiss.getStyle(node);

                var ml=side=='left'?'0 0 0 ':'0 ';
                var mr=side=='right'?' 0 0':'';
                
				var bl=side=='left'?'0 1px 0 ':'0 ';
                var br=side=='right'?' 0 1px':'';
                
                var tpl=[
					/*[height,border-width]*/
					0,0,
					[[1,1]],
					[[1,1],[1,1]],
					[[2,1],[1,2]],
					[[2,1],[1,1],[1,2]],
					[[2,1],[1,1],[1,1],[1,2]],
					[[2,1],[2,1],[1,2],[1,2]],
					[[2,1],[2,1],[1,1],[1,2],[1,2]],
					[[3,1],[2,1],[1,1],[1,2],[1,3]],
					[[3,1],[2,1],[1,1],[1,1],[1,2],[1,3]],
					[[3,1],[2,1],[1,1],[1,1],[1,1],[1,2],[1,3]],
					[[3,1],[2,1],[1,1],[1,1],[1,1],[1,1],[1,2],[1,3]],
					[[3,1],[2,1],[2,1],[1,1],[1,1],[1,2],[1,2],[1,3]],
					[[3,1],[2,1],[2,1],[1,1],[1,1],[1,1],[1,2],[1,2],[1,3]],
					[[3,1],[2,1],[2,1],[1,1],[1,1],[1,1],[1,1],[1,2],[1,2],[1,3]]
				];
		        var ar=[],bK=st.backgroundColor.replace(/\"/g,''),bC=st.borderStyle=='none'?bK:st.borderLeftColor,i=0;                
				
				if(tpl[radius]){
					for(var tl=tpl[radius].length,marg=1;i<tl;i++){
						
						ar[i]='<i style="border-width:'+bl+tpl[radius][i][1]+'px'+br+';height:'+tpl[radius][i][0]+'px;border-color:'+bC+';background:'+bK+';margin:'+ml+marg+'px'+mr+'"></i>';
						marg+=tpl[radius][i][1];
					}
					ar[ar.length]='<p style="border-color:'+bC+';background:'+bC+';margin:'+ml+marg+'px'+mr+'"></p>';
				}
                else{
					for(;i<radius;i++){
						ar[i]='<i style="border-color:'+bC+';background:'+bK+';margin:'+ml+(1+Math.round(radius*(1-Math.cos(Math.asin(i/radius)))))+'px'+mr+'"></i>';	
					}
                    ar[ar.length-1]='<p style="border-color:'+bC+';background:'+bC+';margin:'+ml+(1+Math.round(radius*(1-Math.cos(Math.asin((i-1)/radius)))))+'px'+mr+'"></p>';
                					
				}
                ar.reverse();
                //alert(ar.join('\n\n'))
				
				//создаем во wrapper'е вспомогательные блоки
				wr.innerHTML='<div class="r_back"><div class="r_sup"'+(side=='bottom'?' style="display:none"':'')+'>'+ar.join('')+'</div><div></div><div class="r_sub"'+(side=='top'?' style="display:none"':'')+'>'+ar.reverse().join('')+'</div></div>';

				//получаем основные блоки в подложе
				var divs=wr.getElementsByTagName('div');
				var wrs=wr.style;
				
				wrs.padding='0';
				divs[0].style.padding=side=='bottom'?'0 0 '+radius+'px 0':side=='top'?radius+'px 0 0 0':radius+'px 0 '+radius+'px 0';
				if(st.borderStyle!=='none'){
					  if(side=='bottom'){divs[0].style.borderTop='1px solid '+bC}
				      if(side=='top'){divs[0].style.borderBottom='1px solid '+bC}
				}
				divs[1].style.height=divs[3].style.height=radius+'px';
				
				divs[2].style.borderRight=divs[2].style.borderLeft=wr.borderBak='1px solid '+bC;

				divs[2].style.backgroundColor=wr.backgroundBak=bK;

				ns.background=wrs.background='none';
				ns.border=wrs.border='0';
				wrs.width=wr.widthBak=st.width;
				//st.position=='absolute'&&st.width=='auto'?node.offsetWidth+'px':st.width;
				wr.heightBak=st.height;
                wr.floatBak=st['float']||st.cssFloat;
                wrs.margin=wr.marginBak=st.margin;
                wrs.top=wr.topBak=st.top;
                wrs.left=wr.leftBak=st.left;
                wrs.right=wr.rightBak=st.right;
                wrs.bottom=wr.bottomBak=st.bottom;
			    wr.positionBak=st.position;
			    wrs.display=wr.displayBak=st.display;
			    wrs.vidibility=wr.visibilityBak=st.visibility;
			    wrs.zIndex=wr.zindexBak=st.zIndex;
			    
				wrs.position=st.position=='static'?'relative':st.position;
				

				ns.position='relative';
				ns.width='100%';
			    ns['float']=ns.cssFloat='none';
			    ns.margin=ns.top=ns.left=ns.right=ns.bottom='0';
			    ns.display='block';
			    ns.height='100%';
				
				if(!window.stop){
					if(!window.XMLHttpRequest&&st.height=='auto'){wrs.height='1%'}
					divs[0].style.filter=st.filter;
					//if(window.XMLHttpRequest&&!window.JSON){wrs.display='inline-block'}
				}
				else{divs[0].style.opacity=st.opacity}

								
				//вставляемый готовый wrapper перед исходным тегом
		    	node.parentNode.insertBefore(wr,node);
		    	//вставляем исходный тег в дополнительный wrapper
				wr.appendChild(node);
    
		    }
		}
		roundCorners.getStyle=function(ob){var g='getComputedStyle';return ob.currentStyle||(window[g]?window[g](ob,0):document.defaultView&&document.defaultView[g]?document.defaultView[g](ob):ob.style)};
