/**
 * @author Vlad Yakovlev (scorpix@design.ru)
 * @copyright Art.Lebedev Studio (http://www.artlebedev.ru)
 * @version 0.1
 * @date 2009-08-11
 * @requires jQuery
 * @requires jCommon
 */
var cornerDrawer=(function(){var cssPath='.jscorner';var objects=[];if($.browser.msie||$.browser.opera){$(window).load(function(){$(cssPath).each(function(){objects.push(new CornerDrawerItem($(this)));});});}
var CornerDrawerItem=function(parentBlock){var
backColor,borderColor,borderWidth=0,width,height,paddings=[],radius=[],image,isLoaded=false,className='jscorner_shape',canvas,ctx;init();function init(){var radiusClass=findRadius(parentBlock.attr('class'));if(!radiusClass)return;radius=radiusClass.split('_');for(var i=0;i<radius.length;i++){radius[i]=parseInt(radius[i]);}
if(2>radius.length)radius[1]=radius[0];if(3>radius.length)radius[2]=radius[0];if(4>radius.length)radius[3]=radius[1];backColor=parentBlock.css('background-color');if('transparent'==backColor){backColor='#ffffff';}
borderWidth=parseInt(parentBlock.css('border-top-width'));var imageSrc=parentBlock.css('background-image');if(borderWidth){borderColor=parentBlock.css('border-top-color');}
if('none'==imageSrc){load();}else{var urlRegExp=/^url\([\"\']?([^\'\"]*)[\"]?\)$/i;image=new Image();image.onload=load;image.src=imageSrc.replace(urlRegExp,"$1");}}
function load(){parentBlock.css({background:'none',border:0});height=parentBlock.outerHeight();width=parentBlock.outerWidth();jCommon.isCanvas?createSvg():createVml();isLoaded=true;}
function createSvg(){var wrapEl=$('<span></span>');wrapEl.css({display:'block',height:'100%',left:-borderWidth,paddingLeft:borderWidth*2,paddingTop:borderWidth*2,position:'absolute',top:-borderWidth,width:'100%'}).prependTo(parentBlock);var svgNs='http://www.w3.org/2000/svg';var svgEl=document.createElementNS(svgNs,'svg');svgEl.setAttribute('class',className);wrapEl.get(0).appendChild(svgEl);var rectEl=document.createElementNS(svgNs,'rect');rectEl.setAttribute('x','0');rectEl.setAttribute('y','0');rectEl.setAttribute('width','100%');rectEl.setAttribute('height','100%');rectEl.setAttribute('fill',backColor);rectEl.setAttribute('stroke',borderColor);rectEl.setAttribute('rx',radius[0]+'px');rectEl.setAttribute('ry',radius[0]+'px');rectEl.setAttribute('stroke-width',borderWidth+'px');svgEl.appendChild(rectEl);}
function createVml(){var wrapEl=$('<span></span>');wrapEl.addClass('corner_wrap').css({display:'block',height:parentBlock.innerHeight(),left:0,position:'absolute',top:0,width:'100%'}).prependTo(parentBlock);canvas=$(document.createElement('v:shape')).addClass(className+' vml').css({height:parentBlock.innerHeight(),left:0,position:'absolute',top:0,width:'100%'}).attr({coordsize:width+' '+height,fillcolor:backColor,path:'m '+radius[0]+',0 l '+(width-radius[1])+',0 qx '+width+','+radius[1]+' l '+width+','+(height-radius[2])+' qy '+(width-radius[2])+','+height+' l '+radius[3]+','+height+' qx 0,'+(height-radius[3])+' l 0,'+radius[0]+' qy '+radius[0]+',0'});canvas.prependTo(wrapEl);image&&$(document.createElement('v:fill')).addClass('vml').attr({color:backColor,src:image.src,type:'frame'}).appendTo(canvas);borderWidth?$(document.createElement('v:stroke')).addClass('vml').attr({color:borderColor,width:borderWidth+'pt'}).appendTo(canvas):canvas.attr('stroked','False');}
function findRadius(classesPlain){var classes=classesPlain.split(' ');var prefix='cradius_';for(var i=0;i<classes.length;i++){if(prefix==classes[i].substr(0,prefix.length)){return classes[i].substr(prefix.length);}}
return false;}}})();