• Файл: raph.js
  • Полный путь: https://files.multura.space/qiwi/interface_fake-osmp_v1.0.0/system/js/raph.js
  • Дата изменения: 12/19/2011 8:40 AM
  • Размер файла: 45.98 KB
  • MIME-тип: text/plain
  • Кодировка: utf-8
 
Открыть Назад
(function(){function R(){if(R.is(arguments[0],array)){var a=arguments[0],cnv=create[apply](R,a.splice(0,3+R.is(a[0],nu))),res=cnv.set();for(var i=0,ii=a[length];i<ii;i++){var j=a[i]||{};elements[has](j.type)&&res[push](cnv[j.type]().attr(j))}return res}return create[apply](R,arguments)}R.version="1.5.2";var z=/[, ]+/,elements={circle:1,rect:1,path:1,ellipse:1,text:1,image:1},formatrg=/\{(\d+)\}/g,proto="prototype",has="hasOwnProperty",doc=document,win=window,oldRaphael={was:Object[proto][has].call(win,"Raphael"),is:win.Raphael},Paper=function(){this.customAttributes={}},paperproto,appendChild="appendChild",apply="apply",concat="concat",supportsTouch="createTouch"in doc,E="",S=" ",Str=String,split="split",events="click dblclick mousedown mousemove mouseout mouseover mouseup touchstart touchmove touchend orientationchange touchcancel gesturestart gesturechange gestureend"[split](S),touchMap={mousedown:"touchstart",mousemove:"touchmove",mouseup:"touchend"},join="join",length="length",lowerCase=Str[proto].toLowerCase,math=Math,mmax=math.max,mmin=math.min,abs=math.abs,pow=math.pow,PI=math.PI,nu="number",string="string",array="array",toString="toString",fillString="fill",objectToString=Object[proto][toString],paper={},push="push",ISURL=/^url\(['"]?([^\)]+?)['"]?\)$/i,colourRegExp=/^\s*((#[a-f\d]{6})|(#[a-f\d]{3})|rgba?\(\s*([\d\.]+%?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+(?:%?\s*,\s*[\d\.]+)?)%?\s*\)|hsba?\(\s*([\d\.]+(?:deg|\xb0|%)?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+(?:%?\s*,\s*[\d\.]+)?)%?\s*\)|hsla?\(\s*([\d\.]+(?:deg|\xb0|%)?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+(?:%?\s*,\s*[\d\.]+)?)%?\s*\))\s*$/i,isnan={"NaN":1,"Infinity":1,"-Infinity":1},bezierrg=/^(?:cubic-)?bezier\(([^,]+),([^,]+),([^,]+),([^\)]+)\)/,round=math.round,setAttribute="setAttribute",toFloat=parseFloat,toInt=parseInt,ms=" progid:DXImageTransform.Microsoft",upperCase=Str[proto].toUpperCase,availableAttrs={blur:0,"clip-rect":"0 0 1e9 1e9",cursor:"default",cx:0,cy:0,fill:"#fff","fill-opacity":1,font:'10px "Arial"',"font-family":'"Arial"',"font-size":"10","font-style":"normal","font-weight":400,gradient:0,height:0,href:"http://raphaeljs.com/",opacity:1,path:"M0,0",r:0,rotation:0,rx:0,ry:0,scale:"1 1",src:"",stroke:"#000","stroke-dasharray":"","stroke-linecap":"butt","stroke-linejoin":"butt","stroke-miterlimit":0,"stroke-opacity":1,"stroke-width":1,target:"_blank","text-anchor":"middle",title:"Raphael",translation:"0 0",width:0,x:0,y:0},availableAnimAttrs={along:"along",blur:nu,"clip-rect":"csv",cx:nu,cy:nu,fill:"colour","fill-opacity":nu,"font-size":nu,height:nu,opacity:nu,path:"path",r:nu,rotation:"csv",rx:nu,ry:nu,scale:"csv",stroke:"colour","stroke-opacity":nu,"stroke-width":nu,translation:"csv",width:nu,x:nu,y:nu},rp="replace",animKeyFrames=/^(from|to|\d+%?)$/,commaSpaces=/\s*,\s*/,hsrg={hs:1,rg:1},p2s=/,?([achlmqrstvxz]),?/gi,pathCommand=/([achlmqstvz])[\s,]*((-?\d*\.?\d*(?:e[-+]?\d+)?\s*,?\s*)+)/ig,pathValues=/(-?\d*\.?\d*(?:e[-+]?\d+)?)\s*,?\s*/ig,radial_gradient=/^r(?:\(([^,]+?)\s*,\s*([^\)]+?)\))?/,sortByKey=function(a,b){return a.key-b.key};R.type=(win.SVGAngle||doc.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")?"SVG":"VML");if(R.type=="VML"){var d=doc.createElement("div"),b;d.innerHTML='<v:shape adj="1"/>';b=d.firstChild;b.style.behavior="url(#default#VML)";if(!(b&&typeof b.adj=="object")){return R.type=null}d=null}R.svg=!(R.vml=R.type=="VML");Paper[proto]=R[proto];paperproto=Paper[proto];R._id=0;R._oid=0;R.fn={};R.is=function(o,a){a=lowerCase.call(a);if(a=="finite"){return!isnan[has](+o)}return(a=="null"&&o===null)||(a==typeof o)||(a=="object"&&o===Object(o))||(a=="array"&&Array.isArray&&Array.isArray(o))||objectToString.call(o).slice(8,-1).toLowerCase()==a};function createUUID(){var s=[],i=0;for(;i<32;i++){s[i]=(~~(math.random()*16))[toString](16)}s[12]=4;s[16]=((s[16]&3)|8)[toString](16);return"r-"+s[join]("")}R.setWindow=function(a){win=a;doc=win.document};var A=function(){return"hsb("+[this.h,this.s,this.b]+")"},hsltoString=function(){return"hsl("+[this.h,this.s,this.l]+")"},rgbtoString=function(){return this.hex};R.hsb2rgb=function(h,s,b,o){if(R.is(h,"object")&&"h"in h&&"s"in h&&"b"in h){b=h.b;s=h.s;h=h.h;o=h.o}return R.hsl2rgb(h,s,b/2,o)};R.hsl2rgb=function(h,s,l,o){if(R.is(h,"object")&&"h"in h&&"s"in h&&"l"in h){l=h.l;s=h.s;h=h.h}if(h>1||s>1||l>1){h/=360;s/=100;l/=100}var a={},channels=["r","g","b"],t2,t1,t3,r,g,b;if(!s){a={r:l,g:l,b:l}}else{if(l<.5){t2=l*(1+s)}else{t2=l+s-l*s}t1=2*l-t2;for(var i=0;i<3;i++){t3=h+1/3*-(i-1);t3<0&&t3++;t3>1&&t3--;if(t3*6<1){a[channels[i]]=t1+(t2-t1)*6*t3}else if(t3*2<1){a[channels[i]]=t2}else if(t3*3<2){a[channels[i]]=t1+(t2-t1)*(2/3-t3)*6}else{a[channels[i]]=t1}}}a.r*=255;a.g*=255;a.b*=255;a.hex="#"+(16777216|a.b|(a.g<<8)|(a.r<<16)).toString(16).slice(1);R.is(o,"finite")&&(a.opacity=o);a.toString=rgbtoString;return a};R._path2string=function(){return this.join(",")[rp](p2s,"$1")};function cacher(f,b,c){function newf(){var a=Array[proto].slice.call(arguments,0),args=a[join]("\u25ba"),cache=newf.cache=newf.cache||{},count=newf.count=newf.count||[];if(cache[has](args)){return c?c(cache[args]):cache[args]}count[length]>=1e3&&delete cache[count.shift()];count[push](args);cache[args]=f[apply](b,a);return c?c(cache[args]):cache[args]}return newf}R.getRGB=cacher(function(a){if(!a||!!((a=Str(a)).indexOf("-")+1)){return{r:-1,g:-1,b:-1,hex:"none",error:1}}if(a=="none"){return{r:-1,g:-1,b:-1,hex:"none"}}!(hsrg[has](a.toLowerCase().substring(0,2))||a.charAt()=="#")&&(a=toHex(a));var b,red,green,blue,opacity,t,values,rgb=a.match(colourRegExp);if(rgb){if(rgb[2]){blue=toInt(rgb[2].substring(5),16);green=toInt(rgb[2].substring(3,5),16);red=toInt(rgb[2].substring(1,3),16)}if(rgb[3]){blue=toInt((t=rgb[3].charAt(3))+t,16);green=toInt((t=rgb[3].charAt(2))+t,16);red=toInt((t=rgb[3].charAt(1))+t,16)}if(rgb[4]){values=rgb[4][split](commaSpaces);red=toFloat(values[0]);values[0].slice(-1)=="%"&&(red*=2.55);green=toFloat(values[1]);values[1].slice(-1)=="%"&&(green*=2.55);blue=toFloat(values[2]);values[2].slice(-1)=="%"&&(blue*=2.55);rgb[1].toLowerCase().slice(0,4)=="rgba"&&(opacity=toFloat(values[3]));values[3]&&values[3].slice(-1)=="%"&&(opacity/=100)}if(rgb[5]){values=rgb[5][split](commaSpaces);red=toFloat(values[0]);values[0].slice(-1)=="%"&&(red*=2.55);green=toFloat(values[1]);values[1].slice(-1)=="%"&&(green*=2.55);blue=toFloat(values[2]);values[2].slice(-1)=="%"&&(blue*=2.55);(values[0].slice(-3)=="deg"||values[0].slice(-1)=="\xb0")&&(red/=360);rgb[1].toLowerCase().slice(0,4)=="hsba"&&(opacity=toFloat(values[3]));values[3]&&values[3].slice(-1)=="%"&&(opacity/=100);return R.hsb2rgb(red,green,blue,opacity)}if(rgb[6]){values=rgb[6][split](commaSpaces);red=toFloat(values[0]);values[0].slice(-1)=="%"&&(red*=2.55);green=toFloat(values[1]);values[1].slice(-1)=="%"&&(green*=2.55);blue=toFloat(values[2]);values[2].slice(-1)=="%"&&(blue*=2.55);(values[0].slice(-3)=="deg"||values[0].slice(-1)=="\xb0")&&(red/=360);rgb[1].toLowerCase().slice(0,4)=="hsla"&&(opacity=toFloat(values[3]));values[3]&&values[3].slice(-1)=="%"&&(opacity/=100);return R.hsl2rgb(red,green,blue,opacity)}rgb={r:red,g:green,b:blue};rgb.hex="#"+(16777216|blue|(green<<8)|(red<<16)).toString(16).slice(1);R.is(opacity,"finite")&&(rgb.opacity=opacity);return rgb}return{r:-1,g:-1,b:-1,hex:"none",error:1}},R);R.getColor=function(a){var b=this.getColor.start=this.getColor.start||{h:0,s:1,b:a||.75},rgb=this.hsb2rgb(b.h,b.s,b.b);b.h+=.075;if(b.h>1){b.h=0;b.s-=.2;b.s<=0&&(this.getColor.start={h:0,s:1,b:b.b})}return rgb.hex};R.getColor.reset=function(){delete this.start};R.parsePathString=cacher(function(e){if(!e){return null}var f={a:7,c:6,h:1,l:2,m:2,q:4,s:4,t:2,v:1,z:0},data=[];if(R.is(e,array)&&R.is(e[0],array)){data=pathClone(e)}if(!data[length]){Str(e)[rp](pathCommand,function(a,b,c){var d=[],name=lowerCase.call(b);c[rp](pathValues,function(a,b){b&&d[push](+b)});if(name=="m"&&d[length]>2){data[push]([b][concat](d.splice(0,2)));name="l";b=b=="m"?"l":"L"}while(d[length]>=f[name]){data[push]([b][concat](d.splice(0,f[name])));if(!f[name]){break}}})}data[toString]=R._path2string;return data});var B=cacher(function(a){if(!a){return{x:0,y:0,width:0,height:0}}a=path2curve(a);var x=0,y=0,X=[],Y=[],p;for(var i=0,ii=a[length];i<ii;i++){p=a[i];if(p[0]=="M"){x=p[1];y=p[2];X[push](x);Y[push](y)}else{var b=curveDim(x,y,p[1],p[2],p[3],p[4],p[5],p[6]);X=X[concat](b.min.x,b.max.x);Y=Y[concat](b.min.y,b.max.y);x=p[5];y=p[6]}}var c=mmin[apply](0,X),ymin=mmin[apply](0,Y);return{x:c,y:ymin,width:mmax[apply](0,X)-c,height:mmax[apply](0,Y)-ymin}}),pathClone=function(a){var b=[];if(!R.is(a,array)||!R.is(a&&a[0],array)){a=R.parsePathString(a)}for(var i=0,ii=a[length];i<ii;i++){b[i]=[];for(var j=0,jj=a[i][length];j<jj;j++){b[i][j]=a[i][j]}}b[toString]=R._path2string;return b},pathToRelative=cacher(function(a){if(!R.is(a,array)||!R.is(a&&a[0],array)){a=R.parsePathString(a)}var b=[],x=0,y=0,mx=0,my=0,start=0;if(a[0][0]=="M"){x=a[0][1];y=a[0][2];mx=x;my=y;start++;b[push](["M",x,y])}for(var i=start,ii=a[length];i<ii;i++){var r=b[i]=[],pa=a[i];if(pa[0]!=lowerCase.call(pa[0])){r[0]=lowerCase.call(pa[0]);switch(r[0]){case"a":r[1]=pa[1];r[2]=pa[2];r[3]=pa[3];r[4]=pa[4];r[5]=pa[5];r[6]=+(pa[6]-x).toFixed(3);r[7]=+(pa[7]-y).toFixed(3);break;case"v":r[1]=+(pa[1]-y).toFixed(3);break;case"m":mx=pa[1];my=pa[2];default:for(var j=1,jj=pa[length];j<jj;j++){r[j]=+(pa[j]-((j%2)?x:y)).toFixed(3)}}}else{r=b[i]=[];if(pa[0]=="m"){mx=pa[1]+x;my=pa[2]+y}for(var k=0,kk=pa[length];k<kk;k++){b[i][k]=pa[k]}}var c=b[i][length];switch(b[i][0]){case"z":x=mx;y=my;break;case"h":x+=+b[i][c-1];break;case"v":y+=+b[i][c-1];break;default:x+=+b[i][c-2];y+=+b[i][c-1]}}b[toString]=R._path2string;return b},0,pathClone),pathToAbsolute=cacher(function(a){if(!R.is(a,array)||!R.is(a&&a[0],array)){a=R.parsePathString(a)}var b=[],x=0,y=0,mx=0,my=0,start=0;if(a[0][0]=="M"){x=+a[0][1];y=+a[0][2];mx=x;my=y;start++;b[0]=["M",x,y]}for(var i=start,ii=a[length];i<ii;i++){var r=b[i]=[],pa=a[i];if(pa[0]!=upperCase.call(pa[0])){r[0]=upperCase.call(pa[0]);switch(r[0]){case"A":r[1]=pa[1];r[2]=pa[2];r[3]=pa[3];r[4]=pa[4];r[5]=pa[5];r[6]=+(pa[6]+x);r[7]=+(pa[7]+y);break;case"V":r[1]=+pa[1]+y;break;case"H":r[1]=+pa[1]+x;break;case"M":mx=+pa[1]+x;my=+pa[2]+y;default:for(var j=1,jj=pa[length];j<jj;j++){r[j]=+pa[j]+((j%2)?x:y)}}}else{for(var k=0,kk=pa[length];k<kk;k++){b[i][k]=pa[k]}}switch(r[0]){case"Z":x=mx;y=my;break;case"H":x=r[1];break;case"V":y=r[1];break;case"M":mx=b[i][b[i][length]-2];my=b[i][b[i][length]-1];default:x=b[i][b[i][length]-2];y=b[i][b[i][length]-1]}}b[toString]=R._path2string;return b},null,pathClone),l2c=function(a,b,c,d){return[a,b,c,d,c,d]},q2c=function(a,b,c,d,e,f){var g=1/3,_23=2/3;return[g*a+_23*c,g*b+_23*d,g*e+_23*c,g*f+_23*d,e,f]},a2c=function(b,c,d,e,f,g,j,l,m,n){var o=PI*120/180,rad=PI/180*(+f||0),res=[],xy,rotate=cacher(function(x,y,a){var X=x*math.cos(a)-y*math.sin(a),Y=x*math.sin(a)+y*math.cos(a);return{x:X,y:Y}});if(!n){xy=rotate(b,c,-rad);b=xy.x;c=xy.y;xy=rotate(l,m,-rad);l=xy.x;m=xy.y;var p=math.cos(PI/180*f),sin=math.sin(PI/180*f),x=(b-l)/2,y=(c-m)/2;var h=(x*x)/(d*d)+(y*y)/(e*e);if(h>1){h=math.sqrt(h);d=h*d;e=h*e}var q=d*d,ry2=e*e,k=(g==j?-1:1)*math.sqrt(abs((q*ry2-q*y*y-ry2*x*x)/(q*y*y+ry2*x*x))),cx=k*d*y/e+(b+l)/2,cy=k*-e*x/d+(c+m)/2,f1=math.asin(((c-cy)/e).toFixed(9)),f2=math.asin(((m-cy)/e).toFixed(9));f1=b<cx?PI-f1:f1;f2=l<cx?PI-f2:f2;f1<0&&(f1=PI*2+f1);f2<0&&(f2=PI*2+f2);if(j&&f1>f2){f1=f1-PI*2}if(!j&&f2>f1){f2=f2-PI*2}}else{f1=n[0];f2=n[1];cx=n[2];cy=n[3]}var r=f2-f1;if(abs(r)>o){var s=f2,x2old=l,y2old=m;f2=f1+o*(j&&f2>f1?1:-1);l=cx+d*math.cos(f2);m=cy+e*math.sin(f2);res=a2c(l,m,d,e,f,0,j,x2old,y2old,[f2,s,cx,cy])}r=f2-f1;var u=math.cos(f1),s1=math.sin(f1),c2=math.cos(f2),s2=math.sin(f2),t=math.tan(r/4),hx=4/3*d*t,hy=4/3*e*t,m1=[b,c],m2=[b+hx*s1,c-hy*u],m3=[l+hx*s2,m-hy*c2],m4=[l,m];m2[0]=2*m1[0]-m2[0];m2[1]=2*m1[1]-m2[1];if(n){return[m2,m3,m4][concat](res)}else{res=[m2,m3,m4][concat](res)[join]()[split](",");var v=[];for(var i=0,ii=res[length];i<ii;i++){v[i]=i%2?rotate(res[i-1],res[i],rad).y:rotate(res[i],res[i+1],rad).x}return v}},findDotAtSegment=function(a,b,c,d,e,f,g,h,t){var i=1-t;return{x:pow(i,3)*a+pow(i,2)*3*t*c+i*3*t*t*e+pow(t,3)*g,y:pow(i,3)*b+pow(i,2)*3*t*d+i*3*t*t*f+pow(t,3)*h}},curveDim=cacher(function(d,e,f,g,h,i,j,k){var a=(h-2*f+d)-(j-2*h+f),b=2*(f-d)-2*(h-f),c=d-f,t1=(-b+math.sqrt(b*b-4*a*c))/2/a,t2=(-b-math.sqrt(b*b-4*a*c))/2/a,y=[e,k],x=[d,j],dot;abs(t1)>"1e12"&&(t1=.5);abs(t2)>"1e12"&&(t2=.5);if(t1>0&&t1<1){dot=findDotAtSegment(d,e,f,g,h,i,j,k,t1);x[push](dot.x);y[push](dot.y)}if(t2>0&&t2<1){dot=findDotAtSegment(d,e,f,g,h,i,j,k,t2);x[push](dot.x);y[push](dot.y)}a=(i-2*g+e)-(k-2*i+g);b=2*(g-e)-2*(i-g);c=e-g;t1=(-b+math.sqrt(b*b-4*a*c))/2/a;t2=(-b-math.sqrt(b*b-4*a*c))/2/a;abs(t1)>"1e12"&&(t1=.5);abs(t2)>"1e12"&&(t2=.5);if(t1>0&&t1<1){dot=findDotAtSegment(d,e,f,g,h,i,j,k,t1);x[push](dot.x);y[push](dot.y)}if(t2>0&&t2<1){dot=findDotAtSegment(d,e,f,g,h,i,j,k,t2);x[push](dot.x);y[push](dot.y)}return{min:{x:mmin[apply](0,x),y:mmin[apply](0,y)},max:{x:mmax[apply](0,x),y:mmax[apply](0,y)}}}),path2curve=cacher(function(e,f){var p=pathToAbsolute(e),p2=f&&pathToAbsolute(f),attrs={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},attrs2={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},processPath=function(a,d){var b,ny;if(!a){return["C",d.x,d.y,d.x,d.y,d.x,d.y]}!(a[0]in{T:1,Q:1})&&(d.qx=d.qy=null);switch(a[0]){case"M":d.X=a[1];d.Y=a[2];break;case"A":a=["C"][concat](a2c[apply](0,[d.x,d.y][concat](a.slice(1))));break;case"S":b=d.x+(d.x-(d.bx||d.x));ny=d.y+(d.y-(d.by||d.y));a=["C",b,ny][concat](a.slice(1));break;case"T":d.qx=d.x+(d.x-(d.qx||d.x));d.qy=d.y+(d.y-(d.qy||d.y));a=["C"][concat](q2c(d.x,d.y,d.qx,d.qy,a[1],a[2]));break;case"Q":d.qx=a[1];d.qy=a[2];a=["C"][concat](q2c(d.x,d.y,a[1],a[2],a[3],a[4]));break;case"L":a=["C"][concat](l2c(d.x,d.y,a[1],a[2]));break;case"H":a=["C"][concat](l2c(d.x,d.y,a[1],d.y));break;case"V":a=["C"][concat](l2c(d.x,d.y,d.x,a[1]));break;case"Z":a=["C"][concat](l2c(d.x,d.y,d.X,d.Y));break}return a},fixArc=function(a,i){if(a[i][length]>7){a[i].shift();var b=a[i];while(b[length]){a.splice(i++,0,["C"][concat](b.splice(0,6)))}a.splice(i,1);ii=mmax(p[length],p2&&p2[length]||0)}},fixM=function(a,b,c,d,i){if(a&&b&&a[i][0]=="M"&&b[i][0]!="M"){b.splice(i,0,["M",d.x,d.y]);c.bx=0;c.by=0;c.x=a[i][1];c.y=a[i][2];ii=mmax(p[length],p2&&p2[length]||0)}};for(var i=0,ii=mmax(p[length],p2&&p2[length]||0);i<ii;i++){p[i]=processPath(p[i],attrs);fixArc(p,i);p2&&(p2[i]=processPath(p2[i],attrs2));p2&&fixArc(p2,i);fixM(p,p2,attrs,attrs2,i);fixM(p2,p,attrs2,attrs,i);var g=p[i],seg2=p2&&p2[i],seglen=g[length],seg2len=p2&&seg2[length];attrs.x=g[seglen-2];attrs.y=g[seglen-1];attrs.bx=toFloat(g[seglen-4])||attrs.x;attrs.by=toFloat(g[seglen-3])||attrs.y;attrs2.bx=p2&&(toFloat(seg2[seg2len-4])||attrs2.x);attrs2.by=p2&&(toFloat(seg2[seg2len-3])||attrs2.y);attrs2.x=p2&&seg2[seg2len-2];attrs2.y=p2&&seg2[seg2len-1]}return p2?[p,p2]:p},null,pathClone),parseDots=cacher(function(a){var b=[];for(var i=0,ii=a[length];i<ii;i++){var c={},par=a[i].match(/^([^:]*):?([\d\.]*)/);c.color=R.getRGB(par[1]);if(c.color.error){return null}c.color=c.color.hex;par[2]&&(c.offset=par[2]+"%");b[push](c)}for(i=1,ii=b[length]-1;i<ii;i++){if(!b[i].offset){var e=toFloat(b[i-1].offset||0),end=0;for(var j=i+1;j<ii;j++){if(b[j].offset){end=b[j].offset;break}}if(!end){end=100;j=ii}end=toFloat(end);var d=(end-e)/(j-i+1);for(;i<j;i++){e+=d;b[i].offset=e+"%"}}}return b}),getContainer=function(x,y,w,h){var a;if(R.is(x,string)||R.is(x,"object")){a=R.is(x,string)?doc.getElementById(x):x;if(a.tagName){if(y==null){return{container:a,width:a.style.pixelWidth||a.offsetWidth,height:a.style.pixelHeight||a.offsetHeight}}else{return{container:a,width:y,height:w}}}}else{return{container:1,x:x,y:y,width:w,height:h}}},plugins=function(a,b){var c=this;for(var d in b){if(b[has](d)&&!(d in a)){switch(typeof b[d]){case"function":(function(f){a[d]=a===c?f:function(){return f[apply](c,arguments)}})(b[d]);break;case"object":a[d]=a[d]||{};plugins.call(this,a[d],b[d]);break;default:a[d]=b[d];break}}}},tear=function(a,b){a==b.top&&(b.top=a.prev);a==b.bottom&&(b.bottom=a.next);a.next&&(a.next.prev=a.prev);a.prev&&(a.prev.next=a.next)},removed=function(a){return function(){throw new Error("Rapha\xebl: you are calling to method \u201c"+a+"\u201d of removed object");}};R.pathToRelative=pathToRelative;if(R.svg){paperproto.svgns="http://www.w3.org/2000/svg";paperproto.xlink="http://www.w3.org/1999/xlink";round=function(a){return+a+(~~a===a)*.5};var $=function(a,b){if(b){for(var c in b){if(b[has](c)){a[setAttribute](c,Str(b[c]))}}}else{a=doc.createElementNS(paperproto.svgns,a);a.style.webkitTapHighlightColor="rgba(0,0,0,0)";return a}};R[toString]=function(){return"Your browser supports SVG.\nYou are running Rapha\xebl "+this.version};var C=function(a,b){var c=$("path");b.canvas&&b.canvas[appendChild](c);var p=new Element(c,b);p.type="path";G(p,{fill:"none",stroke:"#000",path:a});return p};var D=function(o,e,f){var g="linear",fx=.5,fy=.5,s=o.style;e=Str(e)[rp](radial_gradient,function(a,b,c){g="radial";if(b&&c){fx=toFloat(b);fy=toFloat(c);var d=((fy>.5)*2-1);pow(fx-.5,2)+pow(fy-.5,2)>.25&&(fy=math.sqrt(.25-pow(fx-.5,2))*d+.5)&&fy!=.5&&(fy=fy.toFixed(5)-1e-5*d)}return E});e=e[split](/\s*\-\s*/);if(g=="linear"){var h=e.shift();h=-toFloat(h);if(isNaN(h)){return null}var j=[0,0,math.cos(h*PI/180),math.sin(h*PI/180)],max=1/(mmax(abs(j[2]),abs(j[3]))||1);j[2]*=max;j[3]*=max;if(j[2]<0){j[0]=-j[2];j[2]=0}if(j[3]<0){j[1]=-j[3];j[3]=0}}var k=parseDots(e);if(!k){return null}var l=o.getAttribute(fillString);l=l.match(/^url\(#(.*)\)$/);l&&f.defs.removeChild(doc.getElementById(l[1]));var m=$(g+"Gradient");m.id=createUUID();$(m,g=="radial"?{fx:fx,fy:fy}:{x1:j[0],y1:j[1],x2:j[2],y2:j[3]});f.defs[appendChild](m);for(var i=0,ii=k[length];i<ii;i++){var n=$("stop");$(n,{offset:k[i].offset?k[i].offset:!i?"0%":"100%","stop-color":k[i].color||"#fff"});m[appendChild](n)}$(o,{fill:"url(#"+m.id+")",opacity:1,"fill-opacity":1});s.fill=E;s.opacity=1;s.fillOpacity=1;return 1};var F=function(o){var a=o.getBBox();$(o.pattern,{patternTransform:R.format("translate({0},{1})",a.x,a.y)})};var G=function(o,c){var d={"":[0],"none":[0],"-":[3,1],".":[1,1],"-.":[3,1,1,1],"-..":[3,1,1,1,1,1],". ":[1,3],"- ":[4,3],"--":[8,3],"- .":[4,3,1,3],"--.":[8,3,1,3],"--..":[8,3,1,3,1,3]},node=o.node,attrs=o.attrs,rot=o.rotate(),addDashes=function(o,a){a=d[lowerCase.call(a)];if(a){var b=o.attrs["stroke-width"]||"1",butt={round:b,square:b,butt:0}[o.attrs["stroke-linecap"]||c["stroke-linecap"]]||0,dashes=[];var i=a[length];while(i--){dashes[i]=a[i]*b+((i%2)?1:-1)*butt}$(node,{"stroke-dasharray":dashes[join](",")})}};c[has]("rotation")&&(rot=c.rotation);var e=Str(rot)[split](z);if(!(e.length-1)){e=null}else{e[1]=+e[1];e[2]=+e[2]}toFloat(rot)&&o.rotate(0,true);for(var f in c){if(c[has](f)){if(!availableAttrs[has](f)){continue}var g=c[f];attrs[f]=g;switch(f){case fillString:var h=Str(g).match(ISURL);if(h){el=$("pattern");var j=$("image");el.id=createUUID();$(el,{x:0,y:0,patternUnits:"userSpaceOnUse",height:1,width:1});$(j,{x:0,y:0});j.setAttributeNS(o.paper.xlink,"href",h[1]);el[appendChild](j);var k=doc.createElement("img");k.style.cssText="position:absolute;left:-9999em;top-9999em";k.onload=function(){$(el,{width:this.offsetWidth,height:this.offsetHeight});$(j,{width:this.offsetWidth,height:this.offsetHeight});doc.body.removeChild(this);o.paper.safari()};doc.body[appendChild](k);k.src=h[1];o.paper.defs[appendChild](el);node.style.fill="url(#"+el.id+")";$(node,{fill:"url(#"+el.id+")"});o.pattern=el;o.pattern&&F(o);break}var l=R.getRGB(g);if(!l.error){delete c.gradient;delete attrs.gradient;!R.is(attrs.opacity,"undefined")&&R.is(c.opacity,"undefined")&&$(node,{opacity:attrs.opacity});!R.is(attrs["fill-opacity"],"undefined")&&R.is(c["fill-opacity"],"undefined")&&$(node,{"fill-opacity":attrs["fill-opacity"]})}else if((({circle:1,ellipse:1})[has](o.type)||Str(g).charAt()!="r")&&D(node,g,o.paper)){attrs.gradient=g;attrs.fill="none";break}l[has]("opacity")&&$(node,{"fill-opacity":l.opacity>1?l.opacity/100:l.opacity});case"stroke":l=R.getRGB(g);node[setAttribute](f,l.hex);f=="stroke"&&l[has]("opacity")&&$(node,{"stroke-opacity":l.opacity>1?l.opacity/100:l.opacity});break;case"gradient":(({circle:1,ellipse:1})[has](o.type)||Str(g).charAt()!="r")&&D(node,g,o.paper);break;case"opacity":if(attrs.gradient&&!attrs[has]("stroke-opacity")){$(node,{"stroke-opacity":g>1?g/100:g})}case"fill-opacity":if(attrs.gradient){var m=doc.getElementById(node.getAttribute(fillString)[rp](/^url\(#|\)$/g,E));if(m){var n=m.getElementsByTagName("stop");n[n[length]-1][setAttribute]("stop-opacity",g)}break}default:f=="font-size"&&(g=toInt(g,10)+"px");var p=f[rp](/(\-.)/g,function(w){return upperCase.call(w.substring(1))});node.style[p]=g;node[setAttribute](f,g);break}}}tuneText(o,c);if(e){o.rotate(e.join(S))}else{toFloat(rot)&&o.rotate(rot,true)}};var H=1.2,tuneText=function(b,c){if(b.type!="text"||!(c[has]("text")||c[has]("font")||c[has]("font-size")||c[has]("x")||c[has]("y"))){return}var a=b.attrs,node=b.node,fontSize=node.firstChild?toInt(doc.defaultView.getComputedStyle(node.firstChild,E).getPropertyValue("font-size"),10):10;if(c[has]("text")){a.text=c.text;while(node.firstChild){node.removeChild(node.firstChild)}var d=Str(c.text)[split]("\n");for(var i=0,ii=d[length];i<ii;i++)if(d[i]){var e=$("tspan");i&&$(e,{dy:fontSize*H,x:a.x});e[appendChild](doc.createTextNode(d[i]));node[appendChild](e)}}else{d=node.getElementsByTagName("tspan");for(i=0,ii=d[length];i<ii;i++){i&&$(d[i],{dy:fontSize*H,x:a.x})}}$(node,{y:a.y});var f=b.getBBox(),dif=a.y-(f.y+f.height/2);dif&&R.is(dif,"finite")&&$(node,{y:a.y+dif})},Element=function(a,b){var X=0,Y=0;this[0]=a;this.id=R._oid++;this.node=a;a.raphael=this;this.paper=b;this.attrs=this.attrs||{};this.transformations=[];this._={tx:0,ty:0,rt:{deg:0,cx:0,cy:0},sx:1,sy:1};!b.bottom&&(b.bottom=this);this.prev=b.top;b.top&&(b.top.next=this);b.top=this;this.next=null};var I=Element[proto];Element[proto].rotate=function(a,b,c){if(this.removed){return this}return this};Element[proto].hide=function(){!this.removed&&(this.node.style.display="none");return this};Element[proto].show=function(){!this.removed&&(this.node.style.display="");return this};Element[proto].remove=function(){if(this.removed){return}tear(this,this.paper);this.node.parentNode.removeChild(this.node);for(var i in this){delete this[i]}this.removed=true};Element[proto].getBBox=function(){if(this.removed){return this}if(this.type=="path"){return B(this.attrs.path)}if(this.node.style.display=="none"){this.show();var a=true}var b={};try{b=this.node.getBBox()}catch(e){}finally{b=b||{}}if(this.type=="text"){b={x:b.x,y:Infinity,width:0,height:0};for(var i=0,ii=this.node.getNumberOfChars();i<ii;i++){var c=this.node.getExtentOfChar(i);(c.y<b.y)&&(b.y=c.y);(c.y+c.height-b.y>b.height)&&(b.height=c.y+c.height-b.y);(c.x+c.width-b.x>b.width)&&(b.width=c.x+c.width-b.x)}}a&&this.hide();return b};Element[proto].attr=function(a,b){if(this.removed){return this}if(a==null){var c={};for(var i in this.attrs)if(this.attrs[has](i)){c[i]=this.attrs[i]}this._.rt.deg&&(c.rotation=this.rotate());(this._.sx!=1||this._.sy!=1)&&(c.scale=this.scale());c.gradient&&c.fill=="none"&&(c.fill=c.gradient)&&delete c.gradient;return c}if(b==null&&R.is(a,string)){if(a=="translation"){return translate.call(this)}if(a=="rotation"){return this.rotate()}if(a=="scale"){return this.scale()}if(a==fillString&&this.attrs.fill=="none"&&this.attrs.gradient){return this.attrs.gradient}return this.attrs[a]}if(b==null&&R.is(a,array)){var d={};for(var j=0,jj=a.length;j<jj;j++){d[a[j]]=this.attr(a[j])}return d}if(b!=null){var e={};e[a]=b}else if(a!=null&&R.is(a,"object")){e=a}for(var f in this.paper.customAttributes)if(this.paper.customAttributes[has](f)&&e[has](f)&&R.is(this.paper.customAttributes[f],"function")){var g=this.paper.customAttributes[f].apply(this,[][concat](e[f]));this.attrs[f]=e[f];for(var h in g)if(g[has](h)){e[h]=g[h]}}G(this,e);return this};var J=function(a,x,y,r){var b=$("circle");a.canvas&&a.canvas[appendChild](b);var c=new Element(b,a);c.attrs={cx:x,cy:y,r:r,fill:"none",stroke:"#000"};c.type="circle";$(b,c.attrs);return c},theRect=function(a,x,y,w,h,r){var b=$("rect");a.canvas&&a.canvas[appendChild](b);var c=new Element(b,a);c.attrs={x:x,y:y,width:w,height:h,r:r||0,rx:r||0,ry:r||0,fill:"none",stroke:"#000"};c.type="rect";$(b,c.attrs);return c},theEllipse=function(a,x,y,b,c){var d=$("ellipse");a.canvas&&a.canvas[appendChild](d);var e=new Element(d,a);e.attrs={cx:x,cy:y,rx:b,ry:c,fill:"none",stroke:"#000"};e.type="ellipse";$(d,e.attrs);return e},theImage=function(a,b,x,y,w,h){var c=$("image");$(c,{x:x,y:y,width:w,height:h,preserveAspectRatio:"none"});c.setAttributeNS(a.xlink,"href",b);a.canvas&&a.canvas[appendChild](c);var d=new Element(c,a);d.attrs={x:x,y:y,width:w,height:h,src:b};d.type="image";return d},theText=function(a,x,y,b){var c=$("text");$(c,{x:x,y:y,"text-anchor":"middle"});a.canvas&&a.canvas[appendChild](c);var d=new Element(c,a);d.attrs={x:x,y:y,"text-anchor":"middle",text:b,font:availableAttrs.font,stroke:"none",fill:"#000"};d.type="text";G(d,d.attrs);return d},setSize=function(a,b){this.width=a||this.width;this.height=b||this.height;this.canvas[setAttribute]("width",this.width);this.canvas[setAttribute]("height",this.height);return this},create=function(){var a=getContainer[apply](0,arguments),container=a&&a.container,x=a.x,y=a.y,width=a.width,height=a.height;if(!container){throw new Error("SVG container not found.");}var b=$("svg");x=x||0;y=y||0;width=width||512;height=height||342;$(b,{xmlns:"http://www.w3.org/2000/svg",version:1.1,width:width,height:height});if(container==1){b.style.cssText="position:absolute;left:"+x+"px;top:"+y+"px";doc.body[appendChild](b)}else{if(container.firstChild){container.insertBefore(b,container.firstChild)}else{container[appendChild](b)}}container=new Paper;container.width=width;container.height=height;container.canvas=b;plugins.call(container,container,R.fn);container.clear();return container};paperproto.clear=function(){var c=this.canvas;while(c.firstChild){c.removeChild(c.firstChild)}this.bottom=this.top=null;(this.desc=$("desc"))[appendChild](doc.createTextNode("Created with Rapha\xebl"));c[appendChild](this.desc);c[appendChild](this.defs=$("defs"))};paperproto.remove=function(){this.canvas.parentNode&&this.canvas.parentNode.removeChild(this.canvas);for(var i in this){this[i]=removed(i)}}}if(R.vml){var K={M:"m",L:"l",C:"c",Z:"x",m:"t",l:"r",c:"v",z:"x"},bites=/([clmz]),?([^clmz]*)/gi,blurregexp=/ progid:\S+Blur\([^\)]+\)/g,val=/-?[^,\s-]+/g,coordsize=1e3+S+1e3,zoom=10,pathlike={path:1,rect:1},path2vml=function(f){var g=/[ahqstv]/ig,command=pathToAbsolute;Str(f).match(g)&&(command=path2curve);g=/[clmz]/g;if(command==pathToAbsolute&&!Str(f).match(g)){var h=Str(f)[rp](bites,function(b,c,d){var e=[],isMove=lowerCase.call(c)=="m",h=K[c];d[rp](val,function(a){if(isMove&&e[length]==2){h+=e+K[c=="m"?"l":"L"];e=[]}e[push](round(a*zoom))});return h+e});return h}var k=command(f),p,r;h=[];for(var i=0,ii=k[length];i<ii;i++){p=k[i];r=lowerCase.call(k[i][0]);r=="z"&&(r="x");for(var j=1,jj=p[length];j<jj;j++){r+=round(p[j]*zoom)+(j!=jj-1?",":E)}h[push](r)}return h[join](S)};R[toString]=function(){return"Your browser doesn\u2019t support SVG. Falling down to VML.\nYou are running Rapha\xebl "+this.version};C=function(a,b){var g=L("group");g.style.cssText="position:absolute;left:0;top:0;width:"+b.width+"px;height:"+b.height+"px";g.coordsize=b.coordsize;g.coordorigin=b.coordorigin;var c=L("shape"),ol=c.style;ol.width=b.width+"px";ol.height=b.height+"px";c.coordsize=coordsize;c.coordorigin=b.coordorigin;g[appendChild](c);var p=new Element(c,g,b),attr={fill:"none",stroke:"#000"};a&&(attr.path=a);p.type="path";p.path=[];p.Path=E;G(p,attr);b.canvas[appendChild](g);return p};G=function(o,b){o.attrs=o.attrs||{};var c=o.node,a=o.attrs,s=c.style,xy,newpath=(b.x!=a.x||b.y!=a.y||b.width!=a.width||b.height!=a.height||b.r!=a.r)&&o.type=="rect",res=o;for(var d in b)if(b[has](d)){a[d]=b[d]}if(newpath){a.path=rectPath(a.x,a.y,a.width,a.height,a.r);o.X=a.x;o.Y=a.y;o.W=a.width;o.H=a.height}b.href&&(c.href=b.href);b.title&&(c.title=b.title);b.target&&(c.target=b.target);b.cursor&&(s.cursor=b.cursor);"blur"in b&&o.blur(b.blur);if(b.path&&o.type=="path"||newpath){c.path=path2vml(a.path)}if(b.rotation!=null){o.rotate(b.rotation,true)}if(b.translation){xy=Str(b.translation)[split](z);translate.call(o,xy[0],xy[1]);if(o._.rt.cx!=null){o._.rt.cx+=+xy[0];o._.rt.cy+=+xy[1];o.setBox(o.attrs,xy[0],xy[1])}}if(b.scale){xy=Str(b.scale)[split](z);o.scale(+xy[0]||1,+xy[1]||+xy[0]||1,+xy[2]||null,+xy[3]||null)}if("clip-rect"in b){var e=Str(b["clip-rect"])[split](z);if(e[length]==4){e[2]=+e[2]+(+e[0]);e[3]=+e[3]+(+e[1]);var f=c.clipRect||doc.createElement("div"),dstyle=f.style,group=c.parentNode;dstyle.clip=R.format("rect({1}px {2}px {3}px {0}px)",e);if(!c.clipRect){dstyle.position="absolute";dstyle.top=0;dstyle.left=0;dstyle.width=o.paper.width+"px";dstyle.height=o.paper.height+"px";group.parentNode.insertBefore(f,group);f[appendChild](group);c.clipRect=f}}if(!b["clip-rect"]){c.clipRect&&(c.clipRect.style.clip=E)}}if(o.type=="image"&&b.src){c.src=b.src}if(o.type=="image"&&b.opacity){c.filterOpacity=ms+".Alpha(opacity="+(b.opacity*100)+")";s.filter=(c.filterMatrix||E)+(c.filterOpacity||E)}b.font&&(s.font=b.font);b["font-family"]&&(s.fontFamily='"'+b["font-family"][split](",")[0][rp](/^['"]+|['"]+$/g,E)+'"');b["font-size"]&&(s.fontSize=b["font-size"]);b["font-weight"]&&(s.fontWeight=b["font-weight"]);b["font-style"]&&(s.fontStyle=b["font-style"]);if(b.opacity!=null||b["stroke-width"]!=null||b.fill!=null||b.stroke!=null||b["stroke-width"]!=null||b["stroke-opacity"]!=null||b["fill-opacity"]!=null||b["stroke-dasharray"]!=null||b["stroke-miterlimit"]!=null||b["stroke-linejoin"]!=null||b["stroke-linecap"]!=null){c=o.shape||c;var g=(c.getElementsByTagName(fillString)&&c.getElementsByTagName(fillString)[0]),newfill=false;!g&&(newfill=g=L(fillString));if("fill-opacity"in b||"opacity"in b){var h=((+a["fill-opacity"]+1||2)-1)*((+a.opacity+1||2)-1)*((+R.getRGB(b.fill).o+1||2)-1);h=mmin(mmax(h,0),1);g.opacity=h}b.fill&&(g.on=true);if(g.on==null||b.fill=="none"){g.on=false}if(g.on&&b.fill){var i=b.fill.match(ISURL);if(i){g.src=i[1];g.type="tile"}else{g.color=R.getRGB(b.fill).hex;g.src=E;g.type="solid";if(R.getRGB(b.fill).error&&(res.type in{circle:1,ellipse:1}||Str(b.fill).charAt()!="r")&&D(res,b.fill)){a.fill="none";a.gradient=b.fill}}}newfill&&c[appendChild](g);var j=(c.getElementsByTagName("stroke")&&c.getElementsByTagName("stroke")[0]),newstroke=false;!j&&(newstroke=j=L("stroke"));if((b.stroke&&b.stroke!="none")||b["stroke-width"]||b["stroke-opacity"]!=null||b["stroke-dasharray"]||b["stroke-miterlimit"]||b["stroke-linejoin"]||b["stroke-linecap"]){j.on=true}(b.stroke=="none"||j.on==null||b.stroke==0||b["stroke-width"]==0)&&(j.on=false);var k=R.getRGB(b.stroke);j.on&&b.stroke&&(j.color=k.hex);h=((+a["stroke-opacity"]+1||2)-1)*((+a.opacity+1||2)-1)*((+k.o+1||2)-1);var l=(toFloat(b["stroke-width"])||1)*.75;h=mmin(mmax(h,0),1);b["stroke-width"]==null&&(l=a["stroke-width"]);b["stroke-width"]&&(j.weight=l);l&&l<1&&(h*=l)&&(j.weight=1);j.opacity=h;b["stroke-linejoin"]&&(j.joinstyle=b["stroke-linejoin"]||"miter");j.miterlimit=b["stroke-miterlimit"]||8;b["stroke-linecap"]&&(j.endcap=b["stroke-linecap"]=="butt"?"flat":b["stroke-linecap"]=="square"?"square":"round");if(b["stroke-dasharray"]){var m={"-":"shortdash",".":"shortdot","-.":"shortdashdot","-..":"shortdashdotdot",". ":"dot","- ":"dash","--":"longdash","- .":"dashdot","--.":"longdashdot","--..":"longdashdotdot"};j.dashstyle=m[has](b["stroke-dasharray"])?m[b["stroke-dasharray"]]:E}newstroke&&c[appendChild](j)}if(res.type=="text"){s=res.paper.span.style;a.font&&(s.font=a.font);a["font-family"]&&(s.fontFamily=a["font-family"]);a["font-size"]&&(s.fontSize=a["font-size"]);a["font-weight"]&&(s.fontWeight=a["font-weight"]);a["font-style"]&&(s.fontStyle=a["font-style"]);res.node.string&&(res.paper.span.innerHTML=Str(res.node.string)[rp](/</g,"&#60;")[rp](/&/g,"&#38;")[rp](/\n/g,"<br>"));res.W=a.w=res.paper.span.offsetWidth;res.H=a.h=res.paper.span.offsetHeight;res.X=a.x;res.Y=a.y+round(res.H/2);switch(a["text-anchor"]){case"start":res.node.style["v-text-align"]="left";res.bbx=round(res.W/2);break;case"end":res.node.style["v-text-align"]="right";res.bbx=-round(res.W/2);break;default:res.node.style["v-text-align"]="center";break}}};D=function(o,d){o.attrs=o.attrs||{};var e=o.attrs,fill,type="linear",fxfy=".5 .5";o.attrs.gradient=d;d=Str(d)[rp](radial_gradient,function(a,b,c){type="radial";if(b&&c){b=toFloat(b);c=toFloat(c);pow(b-.5,2)+pow(c-.5,2)>.25&&(c=math.sqrt(.25-pow(b-.5,2))*((c>.5)*2-1)+.5);fxfy=b+S+c}return E});d=d[split](/\s*\-\s*/);if(type=="linear"){var f=d.shift();f=-toFloat(f);if(isNaN(f)){return null}}var g=parseDots(d);if(!g){return null}o=o.shape||o.node;fill=o.getElementsByTagName(fillString)[0]||L(fillString);!fill.parentNode&&o.appendChild(fill);if(g[length]){fill.on=true;fill.method="none";fill.color=g[0].color;fill.color2=g[g[length]-1].color;var h=[];for(var i=0,ii=g[length];i<ii;i++){g[i].offset&&h[push](g[i].offset+S+g[i].color)}fill.colors&&(fill.colors.value=h[length]?h[join]():"0% "+fill.color);if(type=="radial"){fill.type="gradientradial";fill.focus="100%";fill.focussize=fxfy;fill.focusposition=fxfy}else{fill.type="gradient";fill.angle=(270-f)%360}}return 1};Element=function(a,b,c){var d=0,RotX=0,RotY=0,Scale=1;this[0]=a;this.id=R._oid++;this.node=a;a.raphael=this;this.X=0;this.Y=0;this.attrs={};this.Group=b;this.paper=c;this._={tx:0,ty:0,rt:{deg:0},sx:1,sy:1};!c.bottom&&(c.bottom=this);this.prev=c.top;c.top&&(c.top.next=this);c.top=this;this.next=null};I=Element[proto];I.rotate=function(a,b,c){if(this.removed){return this}return this};I.setBox=function(a,b,c){if(this.removed){return this}var d=this.Group.style,os=(this.shape&&this.shape.style)||this.node.style;a=a||{};for(var i in a)if(a[has](i)){this.attrs[i]=a[i]}b=b||this._.rt.cx;c=c||this._.rt.cy;var e=this.attrs,x,y,w,h;switch(this.type){case"circle":x=e.cx-e.r;y=e.cy-e.r;w=h=e.r*2;break;case"ellipse":x=e.cx-e.rx;y=e.cy-e.ry;w=e.rx*2;h=e.ry*2;break;case"image":x=+e.x;y=+e.y;w=e.width||0;h=e.height||0;break;case"text":this.textpath.v=["m",round(e.x),", ",round(e.y-2),"l",round(e.x)+1,", ",round(e.y-2)][join](E);x=e.x-round(this.W/2);y=e.y-this.H/2;w=this.W;h=this.H;break;case"rect":case"path":if(!this.attrs.path){x=0;y=0;w=this.paper.width;h=this.paper.height}else{var f=B(this.attrs.path);x=f.x;y=f.y;w=f.width;h=f.height}break;default:x=0;y=0;w=this.paper.width;h=this.paper.height;break}b=(b==null)?x+w/2:b;c=(c==null)?y+h/2:c;var g=b-this.paper.width/2,top=c-this.paper.height/2,t;d.left!=(t=g+"px")&&(d.left=t);d.top!=(t=top+"px")&&(d.top=t);this.X=pathlike[has](this.type)?-g:x;this.Y=pathlike[has](this.type)?-top:y;this.W=w;this.H=h;if(pathlike[has](this.type)){os.left!=(t=-g*zoom+"px")&&(os.left=t);os.top!=(t=-top*zoom+"px")&&(os.top=t)}else if(this.type=="text"){os.left!=(t=-g+"px")&&(os.left=t);os.top!=(t=-top+"px")&&(os.top=t)}else{d.width!=(t=this.paper.width+"px")&&(d.width=t);d.height!=(t=this.paper.height+"px")&&(d.height=t);os.left!=(t=x-g+"px")&&(os.left=t);os.top!=(t=y-top+"px")&&(os.top=t);os.width!=(t=w+"px")&&(os.width=t);os.height!=(t=h+"px")&&(os.height=t)}};I.hide=function(){!this.removed&&(this.Group.style.display="none");return this};I.show=function(){!this.removed&&(this.Group.style.display="block");return this};I.getBBox=function(){if(this.removed){return this}if(pathlike[has](this.type)){return B(this.attrs.path)}return{x:this.X+(this.bbx||0),y:this.Y,width:this.W,height:this.H}};I.remove=function(){if(this.removed){return}tear(this,this.paper);this.node.parentNode.removeChild(this.node);this.Group.parentNode.removeChild(this.Group);this.shape&&this.shape.parentNode.removeChild(this.shape);for(var i in this){delete this[i]}this.removed=true};I.attr=function(a,b){if(this.removed){return this}if(a==null){var c={};for(var i in this.attrs)if(this.attrs[has](i)){c[i]=this.attrs[i]}this._.rt.deg&&(c.rotation=this.rotate());(this._.sx!=1||this._.sy!=1)&&(c.scale=this.scale());c.gradient&&c.fill=="none"&&(c.fill=c.gradient)&&delete c.gradient;return c}if(b==null&&R.is(a,"string")){if(a=="translation"){return translate.call(this)}if(a=="rotation"){return this.rotate()}if(a=="scale"){return this.scale()}if(a==fillString&&this.attrs.fill=="none"&&this.attrs.gradient){return this.attrs.gradient}return this.attrs[a]}if(this.attrs&&b==null&&R.is(a,array)){var d,values={};for(i=0,d=a[length];i<d;i++){values[a[i]]=this.attr(a[i])}return values}var e;if(b!=null){e={};e[a]=b}b==null&&R.is(a,"object")&&(e=a);if(e){for(var f in this.paper.customAttributes)if(this.paper.customAttributes[has](f)&&e[has](f)&&R.is(this.paper.customAttributes[f],"function")){var g=this.paper.customAttributes[f].apply(this,[][concat](e[f]));this.attrs[f]=e[f];for(var h in g)if(g[has](h)){e[h]=g[h]}}if(e.text&&this.type=="text"){this.node.string=e.text}G(this,e);if(e.gradient&&(({circle:1,ellipse:1})[has](this.type)||Str(e.gradient).charAt()!="r")){D(this,e.gradient)}(!pathlike[has](this.type)||this._.rt.deg)&&this.setBox(this.attrs)}return this};J=function(a,x,y,r){var g=L("group"),o=L("oval"),ol=o.style;g.style.cssText="position:absolute;left:0;top:0;width:"+a.width+"px;height:"+a.height+"px";g.coordsize=coordsize;g.coordorigin=a.coordorigin;g[appendChild](o);var b=new Element(o,g,a);b.type="circle";G(b,{stroke:"#000",fill:"none"});b.attrs.cx=x;b.attrs.cy=y;b.attrs.r=r;b.setBox({x:x-r,y:y-r,width:r*2,height:r*2});a.canvas[appendChild](g);return b};function rectPath(x,y,w,h,r){if(r){return R.format("M{0},{1}l{2},0a{3},{3},0,0,1,{3},{3}l0,{5}a{3},{3},0,0,1,{4},{3}l{6},0a{3},{3},0,0,1,{4},{4}l0,{7}a{3},{3},0,0,1,{3},{4}z",x+r,y,w-r*2,r,-r,h-r*2,r*2-w,r*2-h)}else{return R.format("M{0},{1}l{2},0,0,{3},{4},0z",x,y,w,h,-w)}}theRect=function(b,x,y,w,h,r){var c=rectPath(x,y,w,h,r),res=b.path(c),a=res.attrs;res.X=a.x=x;res.Y=a.y=y;res.W=a.width=w;res.H=a.height=h;a.r=r;a.path=c;res.type="rect";return res};theEllipse=function(a,x,y,b,c){var g=L("group"),o=L("oval"),ol=o.style;g.style.cssText="position:absolute;left:0;top:0;width:"+a.width+"px;height:"+a.height+"px";g.coordsize=coordsize;g.coordorigin=a.coordorigin;g[appendChild](o);var d=new Element(o,g,a);d.type="ellipse";G(d,{stroke:"#000"});d.attrs.cx=x;d.attrs.cy=y;d.attrs.rx=b;d.attrs.ry=c;d.setBox({x:x-b,y:y-c,width:b*2,height:c*2});a.canvas[appendChild](g);return d};theImage=function(a,b,x,y,w,h){var g=L("group"),o=L("image");g.style.cssText="position:absolute;left:0;top:0;width:"+a.width+"px;height:"+a.height+"px";g.coordsize=coordsize;g.coordorigin=a.coordorigin;o.src=b;g[appendChild](o);var c=new Element(o,g,a);c.type="image";c.attrs.src=b;c.attrs.x=x;c.attrs.y=y;c.attrs.w=w;c.attrs.h=h;c.setBox({x:x,y:y,width:w,height:h});a.canvas[appendChild](g);return c};theText=function(a,x,y,b){var g=L("group"),el=L("shape"),ol=el.style,path=L("path"),ps=path.style,o=L("textpath");g.style.cssText="position:absolute;left:0;top:0;width:"+a.width+"px;height:"+a.height+"px";g.coordsize=coordsize;g.coordorigin=a.coordorigin;path.v=R.format("m{0},{1}l{2},{1}",round(x*10),round(y*10),round(x*10)+1);path.textpathok=true;ol.width=a.width;ol.height=a.height;o.string=Str(b);o.on=true;el[appendChild](o);el[appendChild](path);g[appendChild](el);var c=new Element(o,g,a);c.shape=el;c.textpath=path;c.type="text";c.attrs.text=b;c.attrs.x=x;c.attrs.y=y;c.attrs.w=1;c.attrs.h=1;G(c,{font:availableAttrs.font,stroke:"none",fill:"#000"});c.setBox();a.canvas[appendChild](g);return c};setSize=function(a,b){var c=this.canvas.style;a==+a&&(a+="px");b==+b&&(b+="px");c.width=a;c.height=b;c.clip="rect(0 "+a+" "+b+" 0)";return this};var L;doc.createStyleSheet().addRule(".rvml","behavior:url(#default#VML)");try{!doc.namespaces.rvml&&doc.namespaces.add("rvml","urn:schemas-microsoft-com:vml");L=function(a){return doc.createElement('<rvml:'+a+' class="rvml">')}}catch(e){L=function(a){return doc.createElement('<'+a+' xmlns="urn:schemas-microsoft.com:vml" class="rvml">')}}create=function(){var a=getContainer[apply](0,arguments),container=a.container,height=a.height,s,width=a.width,x=a.x,y=a.y;if(!container){throw new Error("VML container not found.");}var b=new Paper,c=b.canvas=doc.createElement("div"),cs=c.style;x=x||0;y=y||0;width=width||512;height=height||342;width==+width&&(width+="px");height==+height&&(height+="px");b.width=1e3;b.height=1e3;b.coordsize=zoom*1e3+S+zoom*1e3;b.coordorigin="0 0";b.span=doc.createElement("span");b.span.style.cssText="position:absolute;left:-9999em;top:-9999em;padding:0;margin:0;line-height:1;display:inline;";c[appendChild](b.span);cs.cssText=R.format("top:0;left:0;width:{0};height:{1};display:inline-block;position:relative;clip:rect(0 {0} {1} 0);overflow:hidden",width,height);if(container==1){doc.body[appendChild](c);cs.left=x+"px";cs.top=y+"px";cs.position="absolute"}else{if(container.firstChild){container.insertBefore(c,container.firstChild)}else{container[appendChild](c)}}plugins.call(b,b,R.fn);return b};paperproto.clear=function(){this.canvas.innerHTML=E;this.span=doc.createElement("span");this.span.style.cssText="position:absolute;left:-9999em;top:-9999em;padding:0;margin:0;line-height:1;display:inline;";this.canvas[appendChild](this.span);this.bottom=this.top=null};paperproto.remove=function(){this.canvas.parentNode.removeChild(this.canvas);for(var i in this){this[i]=removed(i)}return true}}var M=navigator.userAgent.match(/Version\/(.*?)\s/);if((navigator.vendor=="Apple Computer, Inc.")&&(M&&M[1]<4||navigator.platform.slice(0,2)=="iP")){paperproto.safari=function(){var a=this.rect(-99,-99,this.width+99,this.height+99).attr({stroke:"none"});win.setTimeout(function(){a.remove()})}}else{paperproto.safari=function(){}}paperproto.circle=function(x,y,r){return J(this,x||0,y||0,r||0)};paperproto.rect=function(x,y,w,h,r){return theRect(this,x||0,y||0,w||0,h||0,r||0)};paperproto.ellipse=function(x,y,a,b){return theEllipse(this,x||0,y||0,a||0,b||0)};paperproto.path=function(a){a&&!R.is(a,string)&&!R.is(a[0],array)&&(a+=E);return C(R.format[apply](R,arguments),this)};paperproto.image=function(a,x,y,w,h){return theImage(this,a||"about:blank",x||0,y||0,w||0,h||0)};paperproto.text=function(x,y,a){return theText(this,x||0,y||0,Str(a))};paperproto.set=function(a){arguments[length]>1&&(a=Array[proto].splice.call(arguments,0,arguments[length]));return new P(a)};paperproto.setSize=setSize;paperproto.top=paperproto.bottom=null;paperproto.raphael=R;function x_y(){return this.x+S+this.y}I.resetScale=function(){if(this.removed){return this}this._.sx=1;this._.sy=1;this.attrs.scale="1 1"};I.scale=function(x,y,a,b){if(this.removed){return this}return this};I.clone=function(){if(this.removed){return null}var a=this.attr();delete a.scale;delete a.translation;return this.paper[this.type]().attr(a)};var N={},getPointAtSegmentLength=function(a,b,c,d,e,f,g,h,j){var k=0,precision=100,name=[a,b,c,d,e,f,g,h].join(),cache=N[name],old,dot;!cache&&(N[name]=cache={data:[]});cache.timer&&clearTimeout(cache.timer);cache.timer=setTimeout(function(){delete N[name]},2000);if(j!=null){var l=getPointAtSegmentLength(a,b,c,d,e,f,g,h);precision=~~l*10}for(var i=0;i<precision+1;i++){if(cache.data[j]>i){dot=cache.data[i*precision]}else{dot=R.findDotsAtSegment(a,b,c,d,e,f,g,h,i/precision);cache.data[i]=dot}i&&(k+=pow(pow(old.x-dot.x,2)+pow(old.y-dot.y,2),.5));if(j!=null&&k>=j){return dot}old=dot}if(j==null){return k}},getLengthFactory=function(d,e){return function(a,b,c){a=path2curve(a);var x,y,p,l,sp="",subpaths={},point,len=0;for(var i=0,ii=a.length;i<ii;i++){p=a[i];if(p[0]=="M"){x=+p[1];y=+p[2]}else{l=getPointAtSegmentLength(x,y,p[1],p[2],p[3],p[4],p[5],p[6]);if(len+l>b){if(e&&!subpaths.start){point=getPointAtSegmentLength(x,y,p[1],p[2],p[3],p[4],p[5],p[6],b-len);sp+=["C",point.start.x,point.start.y,point.m.x,point.m.y,point.x,point.y];if(c){return sp}subpaths.start=sp;sp=["M",point.x,point.y+"C",point.n.x,point.n.y,point.end.x,point.end.y,p[5],p[6]][join]();len+=l;x=+p[5];y=+p[6];continue}if(!d&&!e){point=getPointAtSegmentLength(x,y,p[1],p[2],p[3],p[4],p[5],p[6],b-len);return{x:point.x,y:point.y,alpha:point.alpha}}}len+=l;x=+p[5];y=+p[6]}sp+=p}subpaths.end=sp;point=d?len:e?subpaths:R.findDotsAtSegment(x,y,p[1],p[2],p[3],p[4],p[5],p[6],1);point.alpha&&(point={x:point.x,y:point.y,alpha:point.alpha});return point}};var O=getLengthFactory(1),getPointAtLength=getLengthFactory(),getSubpathsAtLength=getLengthFactory(0,1);I.getTotalLength=function(){if(this.type!="path"){return}if(this.node.getTotalLength){return this.node.getTotalLength()}return O(this.attrs.path)};I.getPointAtLength=function(a){if(this.type!="path"){return}return getPointAtLength(this.attrs.path,a)};I.getSubpath=function(b,c){if(this.type!="path"){return}if(abs(this.getTotalLength()-c)<"1e-6"){return getSubpathsAtLength(this.attrs.path,b).end}var a=getSubpathsAtLength(this.attrs.path,c,1);return b?getSubpathsAtLength(a,b).end:a};var P=function(a){this.items=[];this[length]=0;this.type="set";if(a){for(var i=0,ii=a[length];i<ii;i++){if(a[i]&&(a[i].constructor==Element||a[i].constructor==P)){this[this.items[length]]=this.items[this.items[length]]=a[i];this[length]++}}}};P[proto][push]=function(){var a,len;for(var i=0,ii=arguments[length];i<ii;i++){a=arguments[i];if(a&&(a.constructor==Element||a.constructor==P)){len=this.items[length];this[len]=this.items[len]=a;this[length]++}}return this};P[proto].pop=function(){delete this[this[length]--];return this.items.pop()};for(var Q in I)if(I[has](Q)){P[proto][Q]=(function(a){return function(){for(var i=0,ii=this.items[length];i<ii;i++){this.items[i][a][apply](this.items[i],arguments)}return this}})(Q)}P[proto].attr=function(a,b){if(a&&R.is(a,array)&&R.is(a[0],"object")){for(var j=0,jj=a[length];j<jj;j++){this.items[j].attr(a[j])}}else{for(var i=0,ii=this.items[length];i<ii;i++){this.items[i].attr(a,b)}}return this};P[proto].animate=function(a,b,c,d){(R.is(c,"function")||!c)&&(d=c||null);var e=this.items[length],i=e,item,set=this,collector;d&&(collector=function(){!--e&&d.call(set)});c=R.is(c,string)?c:collector;item=this.items[--i].animate(a,b,c,collector);while(i--){this.items[i]&&!this.items[i].removed&&this.items[i].animateWith(item,a,b,c,collector)}return this};P[proto].getBBox=function(){var x=[],y=[],w=[],h=[];for(var i=this.items[length];i--;){var a=this.items[i].getBBox();x[push](a.x);y[push](a.y);w[push](a.x+a.width);h[push](a.y+a.height)}x=mmin[apply](0,x);y=mmin[apply](0,y);return{x:x,y:y,width:mmax[apply](0,w)-x,height:mmax[apply](0,h)-y}};P[proto].clone=function(s){s=new P;for(var i=0,ii=this.items[length];i<ii;i++){s[push](this.items[i].clone())}return s};R.format=function(b,c){var d=R.is(c,array)?[0][concat](c):arguments;b&&R.is(b,string)&&d[length]-1&&(b=b[rp](formatrg,function(a,i){return d[++i]==null?E:d[i]}));return b||E};R.ninja=function(){oldRaphael.was?(win.Raphael=oldRaphael.is):delete Raphael;return R};R.el=I;R.st=P[proto];oldRaphael.was?(win.Raphael=R):(Raphael=R)})();